naz@mcvax.cwi.nl (Norman H. Azadian) (02/17/89)
Posting-number: Volume 01 Issue 144 Originally-from: Norman H. Azadian <hslrswi!naz@mcvax.cwi.nl> Submitted-by: Norman H. Azadian <hslrswi!naz@mcvax.cwi.nl> Archive-name: chksum/chksum.uue [ Source is in comp.sources.misc. -- R.D. ] Chksum is a little program that I've developed and used a lot over the years. The prime difference between it and the ones that it copies, is that it can read a list of pathnames from stdin. This turns out to be very handy indeed. Also, it uses a 32-bit CRC, which means that a false match is 2**16 times less likely than with the 16-bit brands. It produces identical results on both PCs and VAXen. Performance on an AT-03 with disk caching is just over 1 MByte/minute. The maximum rate at which I can read the disk, with DOS calls, is about 1.5 MByte/minute. The 32-bit CRC routine was donated by kind souls on the net. I have tweaked it for my use, principally by adding inline optimized assembly code for my PC. I don't pretend to know what is going on inside, and I regard it as a minor miracle that it actually produces the same numbers on PCs as on VAXen. Perhaps somebody will tell me if it produces the "right" numbers. I hereby donate this program to the Public Domain for any and all purposes. Enjoy. PAPER: Norman Azadian; Hasler AG; Belpstrasse 23; 3000 Berne 14; Switzerland X.400: naz@hslrswi.hasler UUCP: ...{uunet,ukc,mcvax,...}!cernvax!hslrswi!azadian VOICE: +41 31 63 2178 BITNET: naz%hslrswi.UUCP@cernvax.BITNET [ Will also give byte counts, and total checksum for all files. Doesn't take wildcards on command line, but "stuff . | chksum -v --" worked well for me. Checksums obtained with the 4.3BSD "sum" or System V "sum -r" command. checksum size (bytes) file (between BEGIN--cut and END--cut lines) 15050 11895 this uuencoded posting checksum size (bytes) file 9977 8611 chksum.arc -- R.D. ] BEGIN--cut here--cut here begin 644 chksum.arc M&@A#2$M354TN15A%`"4EA"$``%`2PXX<-YXK```,3;1X"F`!@!\`0`!0(?#O MG[$`?*```+``P)D`(`!`.J!A(@`?'M%X;.3QG<<%`29N2`F@"DLX+)6Q],;R M'DL)`B;"R`E@",\H/-GPY,.3$4]./%GQY,63&4]N/-GQY,>3P8")%JX"<*,5 MFE9X6@40F$AB+(`;9J>8A64VFEE\9B<4F!AB[EF[2NQBL<O&[B&[I>S>LJO, M[CB[\>SVL\L!`!@`'@"D`9#Q#8`3`"P'R4P9P!P`%0#D`;`!@!X`60#\`6!' M-8`,`")UEGT!P*37`"H!J)$;0`X`F``,`@Y`'/%ZQ"4$"/YB.0`AS@TY9^9< MB8#@:ZX#"`.@F,:)WDDI>(AJ?``*`*(]3\^:O2+VP=5[8\\H@'I.]KOG#R1` M?:S^`.P#H#L#J"<"`>I]`$`4`4C$8&L,OL<@+@L&$$R%#%@4@`(!7!1!AP'X M`"(ZYBFX1P`L`'#B;R<VH6(`P+S8S8OIO.A"`"?J@&,`3NS8$20`!&#"=P'8 ML,!#.AP9``D`#,1&DP'H`J4S4!H0P$!;`%!+2I#\HU$Z.Y1S1P0[F("+`G8L M4"8P"LQ!0"(FL#G,(N6H<P"152S"SB#$\(/.-O\<8P`3%0$@J!*%BD2`!VAP ML<`_=AB@20@`2!(`GP@D8H0_/4S41P&XI)3,,H/XX0\`='@!J3^,.OJ/#82^ MBJ@FD3W&IP*)6$#H*(@.XH,4%=7AP:JM/FH#$L8:L0"MC@E'#*X6(#N*LHML MFDD`!@BQ0`06$+%`M?Y<:X`/VUH`Q`+I]/$/A0"L4TF>>Q(C"CH^!&J`MQ,) MJNU$I2(`0!T$E&H`J@D0XX4!)@#RP[\:,#H,`!8T8H0I4&B2T628@K)``IAH MZL\Z9$"*`*0&1#QQQ1<[BX`:`(A,LB8H5,BG`1YW"D`?-!QC!"DI_6.`$PL( M2FB^!B#*KP]85$2'!2Y'RB@]D*&!0@*:I&09GPRL4X#.I/!KZLT#I'-'RW;X MHTEC$V51"#!UF,#U1#Y#L8"OP*)*P2*Z+A`*HKE*JZR@=;<K`]<]_QSTH(4> M6JBO2:/*M!TC.XV&CHQ.735G6&O,\0Z;TI'`JIJD9FD6OEH1K!NOQFH#HHQN M$8`F=\J&J:]:*$W!J]Z^JBVC8;P>N\J^4J&T"J5V3<<$)E/,:!J^QZ;R.MQ* MK#P:@30O.S$(,#I!`FHHH,E$NLT\*KQ\^H/.)_TPVDD`E5-MM<J,@L.^U.YC MCCVC#`C0_N57WX]&"/JC'__@AX8E!-!R[\,4H^IPP/KU+WMH$$4#!ZA`-$QC M@@GTGP`&L+\,0E`#'!2@!QD%A!`BT'XK>UT0=I2%\>DI$,30QS[^Q`]!U8YH MC3.4`4Q'-.$1#5@I$93<B`8THB&+:,HBVKF(1JZ),.H.`]#$`P#`"&>]R0K^ MT!0_2G4J@)6*'_\Z@#$,L8]]M&`="W"$,!:!#1,HX@"((.,^_N$$`PS""`@@ M0#I68C`$F(`8'W#C`70@1SJ$#1X`<.,1EI,.]=@0)0!(QXP$E;24I(,:`-`$ M%GB2#F;HT'26?)B@A&=)*47,$/S81\44X!DK+@`:=(#`*5-9L5QXA$\$6(<W M&*>T#(!"`1Q+!010!0%&?<*$#E09($P`S'.L(PXL8YDF;,DO8N1R#'TTP3_N M(`!MWH!1Q4`F!8F1M2-,I`4]`4`1`(`$A0#`"@`8`P#*``"1T*$],"#`.0:P MBP$08P#-&$`U!N`-?OH3H`(EZ`!\0`!&),,1P;C"+[1`@%PT``#\D,<K3+"( M)EC@"_\(QSHDD,UM=O,?-YCF+:U)1SOB,6!^&)@?PL8-?X1";@,P7!T0H$E. M@B``-UU`3H'6@Y34X0BE4UH/7H6L5RF+4>&(XN]FYX,;TN%V-CC7J\C%J'W" MSGD5W%[WOM>;F:6C&<+Q`0_KT`)&O4.J8+4F[93&`$;A`Z[76Q0:Q.H]\#G+ M`$Q-U@(850`"?/5Z")BKW5ZE51MP%0T+,.Q4L1<\I55!L720P*ODICW)QM4` MZX#`9@>+AGP>]J^^`EH`ZN``1C'!LWE=QP52BQ([B-8&0&,4&F#[5^UQKZ]E M)09@<;NL%9ZHA<L(TYC*=*8TK:E-;XJ3`N94ISL!*0#D(X;Y`+4()SA@'"^H ME@$6804$&$P!BYB'&SD@`VS(X!_1&$=\%4$,18A#$=:0@3UF<`A.$&`&E_`$ M`8P@#G%HBF;E)2\"Q.O">.D#'9;XAR*\H``9'.R]\8WO(OI+@$4$^+]&.(`, MK)``+28"B^3U1[7X,2KEDLE,:%*3=-T$)SG1R4YXTA.?[/&G?RA8O"?.HA'X M05X&5`M75M"'IO!A,'S\PPCX$*3!^/%D?I@`$0<@!##H((!UH./'1C!`@\%, M,PMXX0&CX,(#3.8`*$"*`9!2`"Y@``!=6$8*%9/G!RY%3CIU81GP>M697Z7F ME_EU9GX&M(YC:`4R!UF+FF#E:!8!CT488ZG_B.4@_*$`.BQ@RE<^0)77(0Y0 M&^-.F_Y''3:0XA7OH+QU&`#G#%"'!;!+2@#P0J+)O(YYP,L#N/`'`BKF`--8 M,='PLD+3).6OU>"2TI;&-!U6,`(#\&/!E3;&2`V&,$`\@0$(P$5#=%V./Z^C M&3:C0SYZ<%$ZT*,'':'#-RR]#G,DF]L</0!'K]#-13R!`!S]@@%V,`T&[B`8 M<PC;)@"PB(,ID@&82`4&4!7N<2<Z86=@P#[P/8@_L+(.!3!!Q_U5!P488`J: M>$)WK(CO;3Y`FW=0`,S]J(@C-``3%:.4I3`%[4M/Y`\AP,4P"V&/6./"7U#` M=\TAO@AD)"T85SX"`\3]CW50`M^+.((?%W$%F2>"WR9(Q`$&8`Q\?QUAB3@" M`;"N;ZZ?]`!J9*,@,5$"+Z5#"__XM16NP`]N.\(#PE#`WU.T`GNP0LMT,,$* M_L&#'C!0!<`P@8[JP`#$/^`(AV?;.DB=^3KL8QW;8(0VZ$V`%0!C!=+X@A<^ M\&=XF4P!;H8<R7"1@#K?!L^:T#.?C5QN1;,#V-N+O:0.+5QDZZG1D=JT`NKP M@3B+#!<7K5B&@C,S3.^4ZN3^L_,A9P5-3/^OZU`'O+*YB+:#W=\`7X3`"6[P M8,@A`^*M.P!BKP"1:<(/SD%T[Q41YCY"(=_[]G9QAPU8$&ITYR7KT`W9I0_! MA@"B]VA#M@YW@V)#=D?\4`&X=PK$\6P4R`]0(`6X(`H*('J+,'K(H`58P'X" M<'!R$`W&QPY6X`M>0W(P-3#79W&]AV^`\`<9$FOI@`>)M'01-Q:Q1'50<'+W MEW_%!P]*9W,X%SJ5$@!9L`!,Z'!"F`HY$4LP)W/;Q%.=@"`L9X52%W$900<C M`',3`',1H`E`$H6XU')WD(;;M(9?J!ZX=&L3@6_'<`0\X39W`@!F=P5HIW:! MZ'5:AV_&('4,9PSI\`-Y=WR"0B+!(2CFH`#<T800)TP4AWT7=X5$2`4`Z':* MIW649@5;.'.*=',5$S,[AST[8`QTP`(Z^&T0@(>`Z'![V(?'\(>!.(@$0'7K MT`FE4G]LI8,9MP^VJ(=\.!%^F(<.=W9AIW;LD@YJ\`\<YW'_$G(C]R\FAW(J MYQUOZ'`=]P"K50*A,G^O]W\UIXHPXX;84U2H$C9=X&-&H`#I``+6Z'!9MW5= M%W9@)W98IW7[)G/^]@`#`'70F'9KYW#>Q@`$P'\*P&W_5WX!J$UPMT8$:(#R M=U;^L(`-^(!8I$6@MH,9,FT66`&M-F0?&((C.'HFB((JR()R-A&XEFCKL`PI MR0_K(`\+V(3L.#"S((5K0P<AH(SDR'`)%F8%4&R%&(T+UGL40@`5$RKJD040 MR`^O1`?+8)0`L)#=]FT"D)--F78(L`[$`"]'AGIXMFR:T`'LP7.]EUWJ$)!6 MQG7^4`+^\`^!(`X-<6)*!F4GAWL3(09\EBE68`^:0@^OQ@!R<`!U<`"<HP#< MM`X<905&5H\GAIA&0`^08@^0PIFR%RF:,!9D4)A^N61L68=6]&9QI@G.D!^X M=)6OY(,$$``Y^6H($&NSYH/Q(!Q^8`\`<`>YF5A^P)ERT&48T)F?N9:A*2E7 M\0J[MPYR0%[V4"WT4`!7,0C2D![J$`W8$`W=B0V9F9B.9@7NH"GLD),G)@^: M`@_K(`,&PPZAR&\&`P_^V$UB=T?L0`!S4`"!8`3N```0<$?PP)_^:03R(*!W MQ)F#<)C_4"K`Z47%^2]K9`%F\`"A0`8/@)NZ&69R8`2OI@\=B@]SP`-X(P88 M"@8/\('+]BH7^BH:2E:$B2G,F9=VP`^C"0"EB2D#B(+W&78'D),O*%YJ63&O M:8?6]()\X@Y7T&A):0`%@&K;"9[>2:7?"0[1(`W1@*72<&*9$F:^<J'9Z"L: M^B]F@@8/\(`6H`9HAJ8#:`*!<)1P^@1%L4;#D"L7.@H:JC,):BA&@$@,9Z$8 MJJ%7.9Z;>9L6(!X`LP,&((*&E`X'<"E_>BE6D*"EDJ!\D)L)4"KP$`!0E`X! M*H,0\`L3T7T#LR56F61+-@CZH&H#8'U31Y,3X05?D&BX,!:X5J.0@J.D69@A M.J)T``/DI0_5PF1>8&5?AY\'`&IQFA)SRA.#8`Q;=`T^EF3%>I5-NBJ[FJ,[ MBCVG"67#6JR@EJQ`B@MH*GI-]J,`Z051UJR)%`AT.A'A"F6Y(AZC(((&0P_S M*0!XJ9=\^0^OY@\=R@\EQPAV>I6@=@_+F(TF<`^1&H_I8"4&NPAW>IB)"6H4 MZ7;]NI=]J:I0]J8*RQ,@U[`/6P<QL*_C^H]!:JU0M@."NJ@&H*&49ZYIJ@UX MBF8:N@ZEH*TW"BFM:@?X(*.%N0C$"@\[X`<(T)B/N0.1,@==M@='F[2."9F1 M,IE%T*)ELZV]BBDIJZR@!DC[FBLH.@HJ.J_&:F5@2Z[K6I?F)P`WJZ<OYZ[/ M*J\=6%B1I`'^@+%MN['_>I7I\`K]D`[]T`\+2&8%0&57";(+.[(.:U0'0'47 M%P@GD)=P>@8"T!#J*:APRR[K\`U,P`9H8`1.\`9X@`5U0`9I,`=C``=N4`9% M8`9G<`0E\"$8$``<$`![=KLF$`#-L0(!0`,!D`/!&P!;(`!Z(`"=(`"@(`#6 M003,^[S.&P@```,Q(`,S0`,U8`,W@`,Y$`9B,`9D4`9F``(MP`9M``)FD`9R M,`?W!"^!P`Y4$`!-R@A>8`_\4`QVH``Z<RH`8`Q&@!RLP`,E0`<5@'@%@`Y& MT&7N`"Z.4+^TFFC^2P\@X+\)ZK_SX*>M^@\!W`)U8`"`X`3U4);UP`,KT,$4 MO`*;QP,@0'F`X`<)6@?A0,$@`'H\,`(=_,'U``'K$`T\``,@%\$PP`KHH`$" M4`C2D`<&<`_:@,.&R0\\X`*/*<0%X+9)Q@C/X`C'\`NUEPNA(0^N$`COP$K1 M<`XN\`^E$!DX'`"L4&\X+`!K_`TX3`!KC`VYX"_0@\,@D`O#M`X(D`NLM`X# MX,?6Z`<.P%$%,`C'(`#V\+\"0`=;5P&(W&4'@'J$T`YTH`&94,D$K`AN(`^( MX`;S8,1Y<"1&,`\MH,3W@`V#H`T`D`B$7"KZ<#-;8P3ZD!*U0$77@,6-X`O` MX`]&##!#.0(KL`T[H`QWT&:+(`RH=P_QP$98P,SK(`#,?`C3X`**\`GM]`17 MU@'K4`V+G,,$#`CYT&D0(,X08,*EC`=:H\W&4``PT`B.T,LK\`S5H@\K$`R: MH@\SE0)#E@A.@`\M?,%TP``!C0>Q1D=4Y@3\D`(*[0<:\,VY20$M3`\^/`#H ML`H`P'_T@`Z[T#(*_0?U@`Z=X-'Z@`<'``LP@`ZIT"Z<^<]XD`!N5`!'@`X+ MMY,(;=*P``+H\`@LG0XTX`]X3``@<$<.X(#($,^_@`7"X0;\H`#KP`SH<!M7 M``L`D`L-X<7W$`U)L`-.H`]V,`#=I0]?H#.Q'$G52`R$'-.1[,H.$$>LX`^Y MD!*,``WQO,MO3=83D0Y'\`_I@`W]@`Y.P'";$G8%\,V-C##'4`2<!`S]P'_S M@'@QP`,&?=(I/3"P@`<6W#*;\LT@0`<*P`-A(`<&P`-ZP$TL``(&T,#VH`+D MX&8'@P4-S``',`QH7<C$T`-$30##P`,JP%JUS5&0G,ALS0K#@'JT```]+`<5 MP`,Y,"8L``/1(`Z+H`S1'=T%,@#0L,;G,`R!EK^A,@"Q%SF2$C,,`I>MIR=- MN@A^H`"!<`X7'`C/```]<`_U"`"-/`"DR@/L$MXD<P7>!P!=,+399GTA0-^L M%`!T@`'[O6RXP`/S]]\!SG/NV0$&WI5+TWVB(X6"X@H*,`$`@'VUVGN;!@!\ M<`(5C@`$C`LY`06VB&?=%P?NB`"F"@!!F06(0`@@\"W:I@QH&6:$0`X,9`C@ M``A-+0<I8`4>X,'\<`0[563X6Y;CY00,4`SEU0PA8+`'\`%S@`"CP.&0"PU> M\&<*9N7R=][IB4<K8`0,L`'2D`MCL:59*@[Z,`!@NIUIK@"KS'#:8.;5@@"H MY^;IP:5R3N=VM)UTWN&6R4:`;J5RO@C00+$E,$4E^&<>`0"]\!"%T`X@!PN! MRP`!X`*,X`&UYPC%8`*A'GB]P`<#6@P/$`W=$`L#,`WM$`CE\`\?8+`#H`X< MY0'@H`#30)D[X`'>T"8AMPC"SM[[(*!RP$\"N@C3$`L$,`WCH`^.4`V+,`[[ M(%!"$'86P`HR)RBJP$J)E"NV\.T&0`OBONOB(',<Y.UAYP&^8.Z\(.Z,X`TK MX`V,4`R.8`RTH`16WI^PX`_I``@`0.K\\`ODD@NJ/L]!$`WI,`ZE!PSSL`J. M8`"$]P]6_0=N5`)$W@-T<`(_3@<$X,5T``_UON^^(+V_0/"*X``$KP+M,`X" M,`^D`'FJ<(XKWRX#8'JJ<(170.J.T`VA#@LCZ`"RH`"AT.NC<"::,!?7U9B: M(`$OL@X.0`L)H`O/8N6<#LA8T/6TP`167L8N\(<>X0*/8/&??O8W\@&:4`0@ M(O8L(+]6X'OLHJ0QM-^:`)12*`HY?HX5H_=9(`HA8&LKGO<TOO<B\"WU".?@ M8+=_KR52F"MP@&9N\`"XH`XM20P>4/GJ&J1.@"L.P`:M'@[1$`YX,_FA4/D' MB;`,^0.=W6T_D``@]V2@Q0XZN#`^"`=(N6#]=ZR=;X$,80"B?ZL/?JI2R*JN M:GT?@`O%!@7`M@ZPI^(/SHJ%B0O(\.`_=1%90/NW[SB"I,(BSP.R#].GIMF@ MU67>D`YPD(]6EHO,N(MP8P.3_RJ5_RJBKPD;H!4S@_?&)84O^`\>4(DOD_W^ MWWOX0/=,XORXH`_17_C4CRFX0`;8#R)9\(*T\`,-!UHN`"^T``0-!Q`&UI&H MLH@=K1_K"A`T"&21%P.`?H%8`(".@RZ`^/V@0^"?"QP+/-)8X*&8%02+G#!H M%N+#'`.C7"G`]>]?EV4+:?EP:(#E'`0Q9]:\N0+8S9Q"%!EAL.AD2@4\?0*5 M2?/?(FA'"WJ@%<1DSY8_@U8E:A1GP2M;K7@EYD<!RP]?PE(=NJQH5G96%MG0 M`Z&0O3HY<!$(`,4#+CD/H/RS8T!3`P"2`@PBAA*>7SH/`/&*\T!!'01.0/%8 M@(@0Y\,/&&E+9`$/A%%V("3:"V&''09^!BRZ??F"E<4*%B/X9\,U\=B:!@!X M)9F8@@`V8J>@O<B8ET7E[D[6E]<*5",($EGQE\@(O]T,UATAYH7?/_,F`/WP MO*.IOT7F5X!7;">XG>&,:7(!9,TA@$L``!2&2P\+\-?8@)%-AM)X^/$CG@+E MH62,$X4`4X<L]E6X@W=U#+`#>'14H!\"_/D'X(,$2H@?`]=E9Q8[G/!C!5K% M,,865$XXP`@PJNT@3!T7[.`/'1_($4$_`^0S0#Q/.&%/,`'0$0`I5:YCP)59 M;AE-.G0(,$\I_,#E12=W\80+`$2PA)@]P@!"AP)T#D!'`0<"0-9=5U@1BBI0 M6<`*5/`LHD\N!``PC3"+:!/(./#\$X@X#P`PP#"#2`,`3X/L`T`?"JS`J38` MX#%#.A1MVBD`]PA3:1TE3*/,(MB4D.DTZTSZSP,+3",%%)K(`4`MS1'0X6?5 M+7*-%U_<!.U5@.9EA`%`D'"?4]@PZFBOX_RJJZ;3[&"!+PK<04(=!NQ@`"\* MS,&!N8?>(02[[A(ZAP[FVJ*`'$'@:P`M_^8`1:0=:CG$(,/\,"DP_Q@PQ2(. M"*.`(\&LD`TM2K"TQ0%8R'%!(AZ@>\R["@``P"B$LG9H4=#>=+),[E758<S+ M```)!&.@L<8<=;2!0@EDI)"R'&6$008(<]`1!AUUS-$#T2GW_'/0**2@`PA( M0RV'&VFX<08(1@21!!-52%%$RD"W,34,.+"!!PL@G"%'&&Z0,470;\<]-PAB MY$%'&4.\48<;=$S-!AETVXTW&4((3KCAB"M.1M4^MYWUUEW7\7788T]1Q1!# M%#'%%"#<D08=:##-=PEPRTUWW7?GO;?;L/O-=M!&I,%&&4//830`+;0P!1UD MA%T\`&WW_GOP6H,P!MXGT`'"&W"4X08(9OA>!O=OR,%UTI<#8'7;6T_O1O77 M9[^]""7,(0+XXB.M-.B[M^$\\/%'7X8<<@C?^.XG-NYY#W-7:\/6_A?`^I$/ M=`;\'0C@)[^4Y4YN```!"$H0`QBPH0X9U&#\-$A"%9@0!$60@A2>(`40F%`% M(=S@')C'.^]M;GQ>`YO8$-@V$!1/>F%@PQCJP(:G?6\&,FB!&%8G/32480P) MI%\$@2<\NAF.#G"H@_7H\`:F(>^**:O"',)PAC+H(`'G"QH)M]"",90!#72P M0Q=("((]=.]W?"A>'OO@@CZFK(T)*-SAK!>XP<T!!$&<PQO^6(8$G"$-=OA> M&?`PN+R586E%`*``D0:'\-'AD&_87M/(P,`_HB$!2"@#&^"P@[I!\GNL2\,A MG;A*$+2A#',88QD1F3<03')U?Z1#`JCP!J>QX7IN8$,>6DF&4+*/#;*T7@_- M(,"D]6R*?[1#`JSP/S&\80YE:"4TFS9%-X3AEH<,8BC'ICK6-?&)"9S#'UN0 M`*>MX7MWU-XY<<F]`+;!B\ES`]UB``)SWA($V1,?--U0AC_6,PSW!&C8$)E. M;`)@?P;E9QO"D`?`?:\-:<##)5.WNM9ACPYI".4<7)"R(N"!B4U[6M1`($L0 ML.Y[;@B:&/YW/3-,T9>:E,,AM3<&R@T.:61@*0"F<(4D4&$(2`B"%`"PT;#= M$)%C`$$/-L@X#:H@#';0*@A.$+\3\#!H"PSJ``,ZMICF+0QR6%K8LG@G\V4. MK2`XW!K<\(8[;.^D*=V>#"T8.SR$D(,>!&$/(($``"R6`0"XH&%%V,$/QO`( MM5L:,8UY2&J*KP1UF.(,28C9QX%@LT&4(FA%&\,7GA`.'SPD05.XPA:Z%H8E M="U"8[O!T-*6A:B[K5T3R+DRY!""H-69`2P!@P/<@05A<(`[=!&%!&0B`\1H MPP$>00\UP*$&I1A#.D91"3)X0@:(V(8#2($+;N3!`^FH!C@0D0UI7&(%3+!% M`GK!AUCXX0`MP,4Y(M&!7T`"`&2`P"TZ(`\0P$(-2(A#+N;AC2#X@A!]H(8V M-+`.<G2C#5&H!37H<8Q"3&,05L`$&R8`#%2L@0QZR(<8^L&.9)1!$4_@0@`H MD`TV&&`,8^C!`_11CP8@H!'(*.@.O`"!-#"!'$$`0S7D$(<SB"(:Y!@`#XY` M#0(LH1^%:(`TUE`+!91"'ZBH10W8@`E9",$:R=C%-H"0#UZP8AQLP(8,ZL"% M;Q3A&0VP!C>RT(-HK((5,,B&"70``&]$`1!1N`8R+!`&:/RB%O2@10A&0(Q9 M6"$3E=#%,QY0BE[@PA.X$``*$("(`GQ!%ME@@#%(P*I8'((/;WA!!)B`!BRL MH@-A"$8/6F`&6QPX"-Q@3!RV$0!>@$`:F%`!!*KQCD04(A9Q^$`M;&&`4I#C M%Y^8`35P@0Y1).,`>*!!/@#P`$>@(@&6P``F'!".731`#7]H00_:@(!++"X2 M`>#"&,Q!CRBL80UB""('L`&#,A3""0`0@SS:40D#L&$/I0C`!H)!#P0(X@K$ M>$`]C)$-6)0!"NFXA034@0M?+((/B,@%/[[1@6Z((0DMT$8%YL&':3"B#$R@ MQCZP$`99-,$9(=8!'0#`BU&(`P:[H$802O$-)5RC$MC8-S&B08I]T,,:TU!# M.M(P!'YDPPTT,`(BSM`*:.`"#-J80PL(0(1R=&``,_@"$Q2@BF3PH0'=X$$< M"@`%501!`">```06X`M#@(`!R2A!+=!PA5D4HHL)H(89<O$)<H3!&0[(AS>\ M@(ED9",%(L`$-&!!"U1<XQ@7Z,$LLA"(!M#"!3O@0B]NT0HVZ`(8(!@$+MIA MBUG\0A,,$(<M!J`):<2"#CDX0C74\8H[2*,3%3#!-@@P"`MP8PX26,`8QD&( M'9"!$CY00QL:@`HMJ$$/"WB&`\C1B7\D8!(G<`4`%!`+3QR@#P`!!0`4$`M/ M'*`/$$0F/8`G;12"0VCD!?#@3YB!-%VNB+FW[$P90'%LL,EPSL`:-W8V4/,' M;L6T1%KT:(/`3$FW,V^^Y<J7[YTO1T-\W;I0S1$L,.A&6;/F9U*T4,2$8<,A M1=ZW)_'.[(IVY@HO4]T,U/JQQ(8L)-I6-,#&9(."5_:4#+`!1@^!(,/>@?E6 MY=L95.\<N8F1QU<:(XQFA5FF89`97J"DO2EA0QP:*97N,&`VX,B"7;DL"!#Q MPD2!*KYVZ"J&8D$O69*TT%I!0,TL+J?^71,6XQFT6HL\96/1P96W+;"$D=ED M0MX8=IQ&J:FC8%(;`:D,).#TPX:#=87.')`SX0J``H*4_*I$00\N<:Y6Q-J# M8X,M!IL<29/4P%>U<K?><>,3XMNV!=1(,XTA0HA#33SXS-(-&FX,HLT'S5C@ M2R!;F)"+/>'<`<L;=QQQ"P;F:($`(G"H\<`_RNQ@@!E<+!!`!/]X4L8C:;@B M!C[3_+-&&$4\PX8%>(BC`"CN2-/`-50,0H`3PLPR0`YAF'#&*?=8``8T31R1 M1A+;W.&&#TJH$8TKW&AA339F+/`-$/#L@,T-4[C"2RK%>+*+-W\\(\L1Z?Q3 M"PP<R--++XH(HXLR,$PRRQ2FC$(+"078`(TNDQAP33,I7.$-%;^<D<T(+NAA MQBRX*!$&,0)L@$87E*SPA@HW^+(`+:$XPL`P&WQ3@!:-O"-`"V/(,<8,,HA1 MAQDHE,!&'2R`4`(<S9901PH*`!#LL,4>BT(*.H`@1QETU"&'&VFX<8:SRU9[ M+;$Q)+MLM"/`(`,>U%HK++O;=OMMN..6>ZZRS`$`P!\`0-)```(C#$D$`2"L M,,,"`/!P``-(7###!%@,R3\%!X'&`\8$\''(?$#P#\>02'"RP#C`@,,-+[0L MP\L@I#&'MV7$44<:WY(10@,*D`!`Q!DC#``"`.R!,!5OO`%"&V&XD0<(8<AQ MQAPN`#`%%4$,L00(3UA1A!1&,/'$%<TFX<004A01Q!1%@+!UUU]/D806150+ 0B04)`.!)`(#X'8`"#0`:`!1& ` end END--cut here--cut here