Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!uwm.edu!rpi!zaphod.mps.ohio-state.edu!uakari.primate.wisc.edu!aplcen!haven!udel!princeton!notecnirp!nfs From: nfs@notecnirp.Princeton.EDU (Norbert Schlenker) Newsgroups: comp.os.minix Subject: Re: Andy's comments on 1.5 Summary: More bug reports and fixes Message-ID: <24236@princeton.Princeton.EDU> Date: 17 Feb 90 05:05:51 GMT References: <5441@star.cs.vu.nl> Sender: news@princeton.Princeton.EDU Reply-To: nfs@notecnirp.UUCP (Norbert Schlenker) Organization: Dept. of Computer Science, Princeton University Lines: 426 In article <5441@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes: >................................... 1.5.3 will be coming up within a week. >I think something like 200 odd files have been affected since 1.5.0. However >I hope that 1.5.3 will be stable. That will be the base for P-H's 1.5. > >Andy Tanenbaum (ast@cs.vu.nl) I log on to send a message regarding problems with 1.5.0's commands, and I read this! Here we go anyway, in case some of these haven't been fixed yet. Norbert ------------------------------------------------------------------------- This is a short summary of my experience installing the contents of Minix 1.5.0's /usr/src/commands, along with context diffs where I think fixes should be made. But first a few comments. An extraordinary number of commands generate warnings when compiled, most of which are caused by the definition of NULL as ((void *)0). I hear rumours that this problem will be fixed in subsequent releases by inserting into each program (after the #include's) the lines: #undef NULL #define NULL 0 This is almost certain to cause long term problems on any system where sizeof(int) != sizeof(void *), like the Atari. I hope the rumour is unfounded. Better to fix the programs themselves (or the compiler!). Some very good programs that were posted on the net some time ago were not picked up for this release. I refer specifically to: Peter Housel's expr (13618@ea.ecn.purdue.edu/14047@ea.ecn.purdue.edu) which supports the colon operator; Peter Housel's login (8771@ea.ecn.purdue.edu) which updates /etc/utmp, just like init does in 1.5.0; and Terrence Holm's versions of leave, users, and who (422ubc-bdcvax.uucp), all of which use /etc/utmp instead of grubbing through /usr/adm/wtmp. Their absence in 1.5.0 must have been an oversight. What happened to termcap(1)? Quite a few programs use obsolete library functions, like the Berkeley string routines, or _cleanup(). These should be changed. Now to individual programs: ci.c rindex() --> strrchr() co.c rindex() --> strrchr() date.c Uses gets(); fgets() would be better ed.c Uses a public function named setbuf(), which conflicts with the ANSI function of the same name. It should be changed (I used setupbuf() in the cdiff below). Calls _cleanup() unnecessarily. fsck.c Needs a definition of _POSIX_SOURCE before any headers are included, because it uses NAME_MAX and LINK_MAX, neither of which can be visible in an ANSI header. Needlessly prints carriage returns in normal operation. Does a putchar(*--p), an operation virtually guaranteed to fail with an ANSI library. gres.c index() --> strchr() Needless use of printf() when puts() would do. id.c A little code rearrangement makes this go faster. mkfs.c Needs a definition of _POSIX_SOURCE. mv.c rindex() --> strrchr() nm.c Uses %X to print long integers; should be %lX. paste.c Calls _cleanup() unnecessarily. printroot.c Needs a definition of _POSIX_SOURCE. readfs.c Needs a definition of _POSIX_SOURCE. rmdir.c rindex() --> strrchr() Needs a definition of _POSIX_SOURCE. size.c Uses %D to print long integers; should be %ld. strip.c rindex() --> strrchr() tset.c index() --> strchr() tsort.c Uses sys_errlist directly instead of perror(); such code is likely to fail in an ANSI environment, since sys_errlist is going to be name-space-polluting. tty.c Needless use of printf(). which.c index() --> strchr() Here are the cdiffs for the above, shar'ed, compress'ed, and uue'ed. All cdiffs are relative to the 1.5.0 versions, since those are smaller. ------------------------------------------------------------------------ table !"#$%&'()*+,-./0123456789:;<=>? @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ begin 644 diffs_15.Z M'YV-9<:@>0,"#X@6(,:D<3&&3!HS"N:4(0/BQ LO6%[,><'Q! @?"1%%Gy MCAR-& %$&#YTR>E!\>+#);H9WD$&H@@?VDN65Z-;]R8(Z,[NM'C5T"^*->F+='E&0XXL) #p M#<>]Y5I?J9T1)0I3)'$$%45(T01[F%HJ!Z4@N#;"0_69 8(04Q#QW8Z^HN!$o M%4PPP5AC*,"1&WWZX8&"&6FP409[%IV0PK:N)>!L8]1:JV!??97!AD3=KK "n M' H."0(.-8BZUI MG/K@DZNV^FJLL_H()*ZZ\JJ?K\ *NR>Q(!B+K+(],/OMm M@Q%&A4:0X5Z+DK;Y$(<%1QYH.!&&7?,8<<8[ D]!J/+]:4""M#:]W/00V/+ L:YG;"#k MU5V"(.A@@.6A8K5E@'!'M6R ($;8(G0\A0AY-IHFP@HGNVS"3YOQ,';:^0RTj MT>R)<(<(VZ8 PA[=9B>''(.A(()".B2$U0D]CA%:&,^!,(450VA=AF1=453;UOUh MU75JSKD<77]MK=ADFXVVVFPCYW;.),7-,+-UW_U&=MOY3K1C?P<^>.'0(1[Dg MXFDT/L;CD4]>^>69;XV\YZ"7;'*G*'LF@PTVL"###62!F>W&<)@#H< IW],*f M'5+@* $AD#TJ4*#'"(<%A)3+4&I20=.DA:N^S.@X))L>["(T!IZA0(%%BPJCe MW+6_&?C/!DBBE_WNYRD0_(\&_L,!#$J%OQB]#035VV$(&A.&,8RA#!(1(0CDHQ\]!LAS"?*6O#0D(A7)R-8$z M9" %R2-5&"*;B$P$)1C1"$=2\I&$O(&:)#')Q6HXS3'$9"9AP8E.>'(6LZB,y M+4>IH%*8XA2H2(4J5L&*5J;R37->X9HVP0D(A@(#'.@@!F:I00W@.4.3U7 &x M+J3!#@78P#6M:'-P**46N>C%!&3-/\@C$'>^AH<7P(%R @&B&^!@F[;YL%!]w MJ@EUK*,"O&T'=PT"T ?-@QZ,WL<,'(I/"B"(QJ$>)S_[\5A.P1*["?7HI!?*v MT'$XY"$0B0A@:=HII"1U'S%82#M5%))2(,J"&>0 =?42H12)(RB-GC*5'A4.u M2(M(AY%2JZ0GI4-*#YRNJ?t M5+!5''7UJW74U/U.]I:!D@X'IZ/H#^U&'SJ8X8!TT,_A^E8"X[0 )*WE@AM$s M4+3?>54BN;DM6 U8L6UY;%A +-88KY&^FFL.6FH:PPZ"((^-!(A-^@?#L@R21_FC+0\.BV$5"L'q MUKH6MG.0+6T'R![=YA:S8>TM5I,6W(2A8#K5.8[@ACNW P[MN.!*[G:6VUSQp M?=);Y9,N5:KK!LA=-[N6PQQWO0M%\(J7O.;-WV;GDK^<%+1E,2"5 ,-8+ A1o M#@6Z98\)("0&P9UDAWS@@U_:\ 81Y1AB8G !A+Y 9/V 0,@PD,'*? P"&##Pn MEH8SG^(V[+@.1PX-37Y0;:(2MHJ1.+)@9*7<&E;P[^G@C"X-QNY2S(m M"8.OI>3KYKZ-X"WP8\(3AK"$SK86!"4@@W[94]E)L>=$8UC#:8QJA@S/TLT6l M=J.>38M:^O:-R^OS,@@@O09$YW>VM3T:,0&)A_"B8+RA0XC*2!>#&)RNO:NLk M,1UN?.0=TZ''):GRDX4LD";C^*M%^[62Z<#D(H<-RE*V<0#SK6!$4S3!;>2S7&&L(HD'.>^T3EC4+RSD*<%FOBF&PY^!C3Fi M!$UH0QLGT8L6FXTL:U123YH]E8[NI<=@MTS?4+Hg MWA'*3HET2*&JSYN3&?0OQO-2DHHW*W(:Q NA>CEYSROI2A 4\8A)W&0GQZ>Qf MM5*1E%C<*"J]^!T:)XS!96S6LY J+5JR$=Z@Q&5TY'C"-'R]E]]S%C#WV,>/e M?]>8@[1['959-6;&.BP6QZE?/)-"9^-RNBU+PA0S[6\F^)[.Cd M 4[-3<97]F86$XLC=^K)=P]"D>Z\U+H[-&['L<@3+^7&/#(Q#PI#UGX12IHc MQ2?O+$)=B-"SBA:*CV=SY+.N>XN-UY-NC)WKESBL!D-IO,:2?TFL:[+Y['D^UZ'H_5U2GY?7a MYWF@-UFBIWW 8(_XU(<&%0H0(,B2((Fy MB$HHN'TJR((N^'TE\19-$ 0DV )E\ 9F\!8S&((V"%S9UV!MHFXVA0)MTC?Ax M4WE09&WG VK6)3G853EMTE?@1DRA00?>Y@8Y5U[ 52-@((#U' @8 (FH#-CH!XZV#=&B(1.H(1,^!;ZM7IV8QL?B(>"81LI^#I]v M809C<"(2@864"(1Z0F!PN#S64W5U&(D_DX<\R(?&M7T'*&XH$ *M1XB2* (Du ML5\SP(5Q=R&A=EJ%Z!@D\1P0 @(DP%[N@6ADL%\F (P1(AH<5SVG\1&-H8R3t MMG]QEP!UX 8TN 9U-QN"TH!IN(:KEF)@Y'D,AFY5^&9Y"HH7.U8KDYX5;s M5G%AZ#YA4X8M96;>^![@Z$8IQG]S4&][AF-U8 :&V!*)IHA-V!(!)XW,J$H>r M%8IA,XITB(.]J(<]Z 0_*#B *(BR>(IF,Y"KYU&/:(>]>(X.P1ZWR'WM=P/QDH%H92^E>(<>:9&JB&E!V((5 8.Gp M\80U^%0)$R .'F(1+F) JP)1AXY126"P'-E,*o M!@+ER"SGB%QPEH7@TX[4B&$*%X\?9YAHEYA069&IV)B8YH[5 XNY-(@R.8NUB).XR'ISL(M1V3>_l MB$0],HP'48R)AHP,:0?-6"S/Z /12)S3>&$>=8W9N(T7)1GYJ(: R8]E)X#Dk MEI9KF3!M&6%PIHX8Q8X.AX#P.%UWV3YC6(^V88;XN&H)\)=LZ)VW](^E=5IBj M,) %J0('F9D*B6J:$SL-^9V$N9H$>)BCIR**.92QB9%5^9C?27ZL-YFYZ9'_i M:08AF0 CZ9FTTHDG.9JE2:(L*8%A4YLQ&9R.49,W"0(YR744R&*=)0,RX$(Xh M:GP;^$DZ)R \AV;D,H7H=D9LYS-5M$88TW*@A)\@4$=M&$C=XJ3.TG>'AZ,Zg M*@.,IW1]X:,9%*1E69@-.IYJ5WH1(TM(>B!*:DM0Y*10:B]2JC%46GN_1X$Uf ME*,Z:E8\Q&)=:B]-12%0A2$:XB&_=3 OV9IF= >YT5A6A0(%d M2F#5@UH2 JBO*E4J4(!5URR*VAB,^EB/^EB1.J6>^AEW<*EWD*E5%*6XUZG"["')+ *X$P"01 &z M@1!D0#EE $X0(1$481'9M!$=T4TM^QPP6Q(GD2TUE+,O:TXR01,!E1,[$0,]y M(0,&!5$,)4\(04]/@4#\E$]9L1% "Q/_1!%%.U!5E@-G$0,'M18Q4!3Q5*,Bx MQP)((D#" ;1Y!)"7$A@2T2,%-HP18 0),\ 9OD ?:w M$85ILBMQQ 9UX&0\, =YL!%TD ?9,019H.9J[B,.U^5 ;H!D[B;6Q)S^[*6JR?MA[8_F29Ku MZ[)M6UJ" ;?OH36*4K>QX;)XJ[>#T;=_&[B#6[AD>;B&H;FQ^[B0(;E(1+NBt M>[VPR[D$PKW>NQRO>[N=2P:?N[O6:[NQFUJSR[XQ [[HF[O>ZT-FVV(R$"\Ss MD+8;"#> <0:TQV8R0)O%H@(!; ?B.B6-<0(MX!'RFL +O,!/5F5X8 /2QF8Gr M$ ?:,I<@&AKL)KMNT#-8YN>UHB(%M08"U?Q1R6 AW+q M^QR-TP1-0 1$D 59@ 9@U@87X@(@0 5H4+BIV2-24 144 52X 0NT(@.F0 Xp MF+M?T*$<%[=?D+LH@,5:G**TX^1Q4+\&T,("\!R(,!S4\!S63T(7,@*K,9SX\ 0O+%In MW 44#&47G,$-S,'N^,%+"&/,EL_$-NO$"J=(FH;,<(\L88VR9YW&IUQ<>NXU- $[0/YO,\"XL\ +04,S4<[G<\Xh MLAH@H-!.,-0.?<\\;= 23='58]%WG-&"$Z**\]$]$M)O,-(M\@8FK6@&.E_Eg M8[)J]14M#0K"EQ[+7%]+0)5, >0#!2'L\T, YH"UE=ZZR_3&X!T;GBLY[,K"B3=JR?-JIW0:K/0>MK=[T!(1UB$0-DH18Z4 - L7A-ZRY0:T]3>Q55z M^P(A?DY$F^)'FU &!0,+-;9ML70TI+^0]#(;^ 1"H 13P!@)$ 9PP#T3;AS?y M-P=UD&14O@9G<")8'AME8 9L0 =*YN5L,.9D\ :#..6Q\09;+JI*Q@7V9G?@%]'E1C3BU9,>8<8@9N0.CO<2YBGE_VPB%N4 =Mw M@.AT\!4O:QQ4%2&2+@=H0+F6_AYTX!QC;AB<#@)J\ :&,>97L096CN5P;JA$v M5MACOCT=0CEC'K>U_AX=6NM7#B&2GE>HCE*;/N8W NQO;B_7>!Z^;AQ50>S&u MD>IED.QF$UY7 0=UWK)S@ 9CCD0B;AR."R&;HV2O,Q$ZD D@ )*SN0S[4A't M_KM]<>Y-W@-/'N4S,^95?N7TKN5<;N9?'N;Z7N;&<>9I7N=MSNIQOCW1L>AKs M/CEX#M9[7ND2GNV ;AR"KN:%?NB=3@>*7NP_Y.B0+NF4WNN8?O&:/NH<\ND(r M+^IC7NJGWNQAH.KVSNBN_@:PKNQJ#>VVSNWZ" >YSNV[CO!41>LLKU?!;AS#q M+O0:GS/'O@;0ONQ&S_)K\.Q '^V1 >75;B'8WN>_6>N/FQ[@+D+B3N[FON13p MX-9VVF(Q)@.*QZTGUWXT@/8Q)LC;'5@ PB.?(0==_ ;::%@81/>@\04Z"%F'o M)01)0 5'" 6 TO(W(>U0_B)]=%AV8.H4$;=UH/,#"5FN(1Q-4$2(8QQ..0(#n M X4QC<8LT&,)\'EAX ,]]@-AH ,]MLYQ(7(P8 /$%_L\*L]>2O^VY02:4$[F,7:C44RP!+-PY8=Q6Q\@3S'L:_,#4l M/\D4S&;21D'M%_LX-&L[A&NW;RD00SGLD0:\SX3'#_R?"#LYWZ&0U1?&__O)k MK]ETP/SO[7C07\C2;RUL).Z'_1J8]AN UD^-=;_&\/U<'V=)&2HC!\ 8*;.Gj MW$@"\&,>!0-.M5W3(]A,$7@"1D GQ9TOD(FPRZ,;%!Q'CU$W**(!=0WEF!M&i M((L$ 2:PR<);#*0",Q $Q HI\ 2D ((K:^UB!)9 K##Y((M'B6U_! /*,1'Ph M Q);^ZDU+*/6C*W?]=9<@I29 6CO"OHO>6:N/-4>:VQ"JC.\D>%G!F""4Q(.g MY^M].81O8KEL$!JD7TY&!$RZ-W N*E?T0!-]X0VZ+[3!X=# '20Z5_ N7$'Mf MEE9RQG0#@]]!#$H^RE<&S];'X]_A"Q(,@@]XM85V7d MZV0"=%"[ZH4AZ!?Z0AWC"\G+&/ V; L- 8V N386Z 5?*%(8**>/BV!VYc MT \NXBZ,FF8H"U/::0(!M3#RS3_BA]?L16C@ADE![1:[)=;\NX24JAJ^2, G)XNJ "&[#+:*%GE0# L@&\BA]v M948TB^SR1Z8:OI!4"4 %P %U434>F$-:4,X")(2!*^/";(-F5 %)P1.E"74&u MO#P#%"!>-S%LS BZ@L-$'" \$OX#_EA#S.@:F<1F) .=L<9\1C!L!W-P'SDr M/N-H?>"61-)A&D=F-(Z)1 YHBU4S,,) '0ASC2..9<<@45,.I'TB%V)@"+?A$P"IK!V'FB2 UCD"GR,VS(><4%)"3ND!E9X2$,o MDB]G(3$DN7B0VC%'-B 0*2))Y)-$D2H2/8:<%H,%T1Y$V8)\JAIYBREY4I!Cn M. H8>_$P]L4@\!<#(Y,<1[/A_74:D9D,+RK%#'I_*.8.Q728SF$0\08D'HD>PA@J4I^l M6P*0Z %!I+57*4^E/LO)4%K)4N=LF"ZOT;2#Q'"&0@-E&LDQ*QK0K, XLT""0>S>RE,GC5.6DS$3)@Z[B%RQ)Y@h M5LX"DJB(1&?&22U\8N/VR<6$"4BL#CS$=U%E8$#8\@E'*R2J26QE]J:AR<$?g M[6<:WK1!5KWFUQYDC/"+$A+&LA@[# -;E%]>\6?R@-#@'O M4.:NN+SU: Cf MA 4L4L)0&6B![ &?.]4_F)8 V2GR;7/,@11!)?*;>V@<%].SM8 SL!@D F!(e M*:$!#C##(^+9*@8(< %XT[7-%H^Q4T #F]-4E:)'G $P!]F>X6:(*YYA1S(&d MD/ 5V(#7.'-?0PX$HU5GT=10@3 39D('M0V$<%AVRI%:(3(EP=04=H-5^L)5c M, QH# #*RS/ G%P#W8M^5XIT8$$J6/8Z2PU@&34 RYG!&RH JPJ#8I&=@=&X H0'a MFQDN[FB^^,[# 3P19N-@FOC$69B!, VQ-KXT6/0TUY8-R(A 17*Z7,[!C#NZ3V9y M!=-TH+O*=(7/U#(^S\?^1)_84T6P3VOA/O^( HV>,Y.=M1@;@$-NP$2YC)Y'x M^J@'[8EO'$,+ !QS@]IT'[]I?SJ-86 /U),]Q,W8D0*-29$D/[7*,/@*\Y0Ww M:&@I#_0Z"T01P_]9."AA@[1"%%$<8NKQ#YF28FZI2;Zu M1AU#A9&CS"(\95 I2IVHJ!?5G^83!&!14:-%QP_YP9_DDX9R44QZ/A*;6\0!t MI&-4N$==^$'20(YBE/*B6WM*TPYH6!H($);LT,)@Iq MWH$"@"FV&*;),6$<4P88()4I^82D2*1Q--,:]$R?'F)#H-TB3KG%T5$Z;F:

$5TU&Y!RE(8R@LAR7VFPA]VB)46WN+,$8XN! J;9K"_0o M1G<1UTH'>_&5WB*B.LWU1U'W*'M;HRY0#1D'CBHX/*IQ *D:0Z2&C-9HAU Jn M"E6I>L(M(I2C8P,LX^Y49,#TD3$3P1$BLKY6FQ,3\PH)4M*m M"KTP"4P!9& 2.*HI! Q.9I@B-M(%Q0,! 05(5'M:97P+<"FIIV:_&%5M^2B%l M@[=$?Y3N0>RZ\&(;5(,1DQ[M1Z&T#!N0=.*>Y\$/'4JJ+A*J6B:Q:L+0JHV!k MJ_H K]HA I98?8UEM7N>U06E5@EG6PU$;S6NSE6*:F44'"K;J[/Q=?A5XA58j M*2=AO9R'+D_@PVB"$$)$/V28%TZ;/$P@,N$FIH=#B"W&MV;$':=.CA;']%JFi M,,;-DZ80M:)"C=,G&T&Y)H"4N3*1Q,H("D"A!IP.D)E"7Y_^BA=.9Y26"ZNRh MJ-Y#&8!44:HP4 1@Y5[EJ^4S5+7*0\Q7$!"L1(15J:!UM7# 2Q'06A(-'>L;g M5J4'[!>KTC>VJ+,*&5UHP!98,E!@Y\"!=0P)=L&&B+ZA.&)/AE!6S$I-;5$'f M*ST=E1QX&!SB8-I7^0I@=6B$M3<$UL)2V#FPPN2K@F4/\K7!GIER0N&=0P=EK^>V-=R,$-L91(

\U1 B/d M'?F8$@9[+2-9%CFJ2A\;D&*L@;6P:':%A=DB&V8Y['[1KR"VCO0-**O@7%+Uc M^+*9];^6';QZ9M5LA@6B#-8QD%C\:I9,+(I]#RKVL5A/+2LXN"SU5P9J8*@LKZTJC^6_z M(M+B$B$22Z#2505(4E5:(?MG04"@91L[5D4)V!_+:M$LM26R&I;3(MDW^V%]y M *82M3@4F)78@WEHZ4"B%1&3ML&T*B5;&YS%(G6GV[;, ED:VSMM^:UC\+=&5MR*@"3+;IFLW4.W=%:52$\\RQST;.?)KU+EV%Y9N:ILw M>]6\?;8:(MI^)X)[:?O&FM6TUS;)PEESNZP@[J %(W'*A:W:/FMRJVV;C;6Xv M0WJ>6DFK9#J!):3-Q-F RQ!F3,C7BTP):4:7%GA;RZB[L+$QPBWWV+7ZO%C5>9s MJ53'7^UC,6S/?^!:4+E="4+ZC$,WD8#ZS8-Y(^IC4B-!20 +L =K*Q'4!^TAr MO&. 7>J)HR@UP\92;(JA%RI*Q61I%=L75F2,6I%[42ZD61;#8GC9O:$K1NS6q M"%>3V.X_%*X:CJW9 8-8,3M+\5VN&M.Y!@7H^C%EIHRCKC2.9&+7%_!\39R9p MV(ADP=;X!+\;,X><6R0YHY1HYEZNR'N_8N/27KF/++K?5!$ERI>0ZIR3!>>\o MCGF;^R!&LHD!A8JFM8QL&O?4+^32O?)7:78[C< !$_#M;5SX C'87Z(9(8QFn M5W0-_)<#^E^( 8"3:NUT"34@5+!0]9I!Z" 9T"UMB.ZE@>#WDK 0&SC!-:PQm MH!$3O*:6K8L%)2;8OS0&$_Q@CPD441_X!Z<+E8 %KZ' S-EH5TW$.D49H4[OAE.k M(#ZI,DPSCFO=[2QD>"&2.+UK>'DGA7U'9E4HF1LA#D/?PZLRj M6IQ!>2?D5:GBJ):AM$;II(I61W6$B(&RP2SF+38B$WY%<%R%KS8&/@^/$!PHi M((EE%^C@ L) 1,L#1.P/63 CP(I#H(+;@),XBKK3N539/(UC:"WOR>IP8N'Eh MN-K J"H;NV82EX& TUO0D*="H>UG$:LXN'<7'_$^^B%^3#+%XDK<;"G$)0Y&g M&7030QI/;"E L2A6+:7X%*?B0 0#\$ K=L523==,8VI\JWK$-<[$&I06RS&^f M5E]N\1S(Q20-S?%B5/R+M488$,;$&&S\$?R$0I5J>FD9\,P1)X"MF(4K0AV e MCLC'+/$8-O!:W$!$RT2O2A4[@2\P!)A $)@"8V]N#($O4 2P !40' R9J%6$d M(. 1$,()" ,0&92T'A,B:B=R17:R[ $'7)_J\0:^@&D5''A5!Y2 @@(C2@#Mc M,:G[I6*P@.^4,R0Q1?8!%ODG*BZ+P9#90QVYNB,5,TI8HHQHCG)>33:3^"9+b MY3I E;F75:XB*;76SL6#' ,2,J[Q*"FY@3UD8E*K;#)4OLC,\$)H9([LD4'Ra MLAW))?DD:PWNI9)/ $O.(R\Y)LL=73([JJY=MLBB5B<[))[LD]DJ4%ZU0KF@z ML(&B[)4#LK58RDVR*4OCIQR5$0-99@]5^4FA98>$=;7RC]7,G#GCC+5?0YJ_y MP%@NR]GA+!^(M.S@PC"$:UNP,&A5$W_8,)&O&H8J.FON-E^7@)R#UMZUPVTYx M#WNMO+"'ET(?MJ[:]\8UYZ[P?5-<^ 4*,09F-BVW>#O1J.Z,D_WLHZDU(S:Vw M\D\. *6J]QN6Q?(1JB;P_ V:]EEICJ_L8'])1$RA>_3Y#3B_2]AZ/Z\3"+VHv MRS-8",$0Y4C3->F40\":THK $ 2T *S(' BM#7B-$FF#("4(4 )-H4<@- Z=u M!,0&5I!;EA=[QB'#&!B(0%,4,P,D#[*%>K8%0s M=0<.:U%$BH(N;#B!)T $3% 2: (>)09$S:18@ZK % @"1Z (>!090'3*L^RSr MANGYV8DYHN">X?/;J%[FR_WN9]T5N@*UT@S0^?D!-T;V9:@5=046H!?XP$GT'3G20p MOKS+@T6# !?=Y.9 57@/R:MG>F@>[:-E7MCHE$UA2#\Z(G:DW7%74]+0(0\To MZ04-I8U8MZ32_]A*1ZXL?0*V-%CSTFLZ3*LE,FVFT70"4-.2FDV'#3<-I^5Tn M J#3Y?4!>H8;( 'A1?IMO0F@(S?%(D $/,KG4:0IH 6,EVP-A5 )$1A!?=%>m MGR71F:\+6/S;I6V #!00U%QO#<=][3G7CDJ[R]A@6HN&:3T\!WF]6$,P'8+Bl MM:"9 O1:8.-K?=F#F5)!Y]G)(B DIG=?0M,(2J0U4j M?4@UO::3-UV/1,]@:XB/GEJ%VE9CG#F),!,00^H48*N3.16/CU:VRT9SGM'Di M@@32L!-8_Q;<.;.5R5@"VIJ=J:HD([O.(4);GEE X> $P%IL@'3.8E)VJ(1Ch M@\@/5JL,BWN<.*H5XP%$Y#!3+f M3011((G\"@7BT96!XG$$"(*9Z)23\F=)GL=M:W$,K)X2$74#^2%5M>2B4P/AOS$W1D* JH6U[XH/U2N#R0?! a MV"6V]52SL0$X\!= 3^5),\&MFYP +<#1"x M,'7!:(4"9-H+)SH2!>U)E%[I6#'X93LT'%QP>7 0#C9$>)HKX<3DA%]5: QM8"G/P($0E3AL+'%u M(O-($S ,\9$\"% D8C:\1A#("EZ#"F %[>!5(%U\]B&L5UR#@-?K%&4O%)N*t MA%$QHJ\%S)"!KT3/7E;+[CC@Q?A^-T+\W5W#-X\H/+D[G(&KVQVN(SUAMF&Zs M6T-2>N'5B-/\H)@%=G[-^7 VQ\Y_>/NZ='-RXC1F^/5:;4^FFW/N?:-T%)P$r MA"YD!I0_GFG#_K&U:'9J]TD3!(0YZ4(#^]X<0=I)0 D)?-"-(H%6Z P]]D;%q MATY['Z4!WE[L-_@FS0>,B2Q%F6N_2M/WCD60[IL+IFE(V!K=#!/GX(K,08)]p MG"+,UYF[A+^>UY]S<\T)/VXZ+]XA=WUO^CW)Z3>.L,L![@S.QX+1^H@^88@-VWm M-+Z\[=J<&%0UUP88WQ,'@)QL8A.@1/P[>IXZ&#@'[_U?V]D/_WS1'@j M"SS;B(\%?L C>% .-QZ&Z0D2KZ<*2UL)#Z<&;FZP\&97#$>XU&#,C#E??[L@i M@<<+YW#"TEN,D'_IS!4B1F<8,)U)14VWSH[]NMZX(\_3NW,X9R=V03H/]0C>h M8G)G$2;!4PWJ(8_G(#BJ50%1R=]X"\ *D\Q*^P)).Q!M(#<<$#$OO!!\FA\"g M2* )%($FL!CZ2)I?\U1@,32..Y_G]_P:2\'%XAL;3>?(3TFE'6(;FL,Y<($>f MD3(?&_+ F7=H?W[6MZ$WC]4K\;0/&W8^UN-Y/<_GA4FVc M9_,;?->+^T+/Y\E+]5#T I31UU5''Q\@_7.0])0^9UEZ2F\V,GV/V/1KH-.3b M>,]!:^.8J'_!J![AMWJ%;^H9O@U@^"+\W ?Z6D\&;KT,_/6=1]W;^EZOZX5]a M&R#V;,#8J^;=+-"4_9%$A"$=F%1@:J?73;K#3+Y%D^6O].7L&6(^DH^^6-X&z MM+CR:Q&Q>75][-O;G:C7!5&ASI7"^%OJ!=C]MO7@+MW1y M5QAP 6U"N*O!^&7[9Ox M";MO[2#0)DL=>=U!\(+$E)OS.0=T7[ 6\C!V /XTA>P1?<( _+6GFSB!(*#Gw MOP 7>15(0'"<*Y+=AJ0/308:.'GD%W[@>AI,5)CNA[RA^QE\$'#\J@?R2_UBA ,KOu MIYQV8SX0I[_O](TYX5V>(*WY'];P_,W]_/1#=LKJ]_NCIG#-T\%_E4L_XM?]t M(&'Q-_['KT6"/RDG_C_$\L\.UU]UNS_GKR*G7PJC*=LO:DD_=S?]GO][SF+:s MWQCH?Q6!_:6?]B,$_T^W^DCNGW[AG_?[?B< _*]+M$H8Z#]GJ'_\'QB4OV-@r M_OPAY6L-6]?RV^[+5\/PX3T$=N3:6>##>[CYA#BQ[_SJ+#)Q>M"'#+:NRE=Vq M%6=#7*;XK35;GNF8O?NJ'S%^ 0X!0QIPZF7 )N+$(U8^M /=p M1 )T,,[K:@J\!ONS"#'980-P\2#?[P0@?U^0*%DC\QD$P'\&;J*HQG%Z190Qo MY$3>^0KT$1O)0J *L.)8T1>P)@W(&E,@#1@SP> K /GZ&!2WZ"/-!NB0R &Un MD%*D5PAW[)3]9^W#"N[PG T>:G>&&E6C:E2->@M%40R6=H^"6.(1*Q_:@6XB 3H8YW4U!5Z#B?KK/^JP+T),l M=M@ 7#S(]SL!R-\7)$K6R'P& ?"?@9LHJG&<7A%E##F1=[X"?<1&LA"H JPXk M5O0%K$D#LL842 /&3##X"D"^/@;%+?I(LP$Z)') G4'VG[4/*U"[,]2H&E6Cj M:M1;*(IBL+1[E%'(V8N$P1JEIW,[1+^TS:2(M@ SVN5!@G$>A% .J[_=;U;Vi M0I&:@?S2*7)FEM:)^&EAVBD!=$@&3]$D=:_T R*'0I S6g M$O))0X= S@;4K:%Z_0ZM!AS.K#$$!H*S8$*^XC&$,K9Q4GJB1TGPH4DX2*]2f M,_FNNI=;GQ=2;D&'0 Z,"3-"PW%Z190Q9(]BN*#XM!BDV^$QO >IL/_R $->e M88<4]=/ LE,$ZI((F*1/ZEAK41RG5T090U:WANJ51BBIU/O)/Q) .(VV,>32d MSK-3_E$1: ]28?_E 8:\P@YI@\'7&K3L%(&Z) (Fy MZ9,ZUEH4Q^D54<:0U:VA>J412BKU?O*/!!!.HP7C8VH6N\J=\H^*2$.6/J>Gx M%WD$8@HC==!JBQ"#7P<)#EFS3'Q/U@B*Z5V8=AB/8K@^:;S( 8$;/>O NB0"w M)NF3.M83#P0H:WX&R T#8A#5.$ZOB#*&?&9HXW+X#M_!".2'+T %H$,;6!^#v M I ;!L2@*G<*(#<,B"'L?K><(<.A0QM8'QF%"HQD(5 %6'&L"*@K=%.u M+HI 71(!D_1)'>N)!P*4-3\#Y(8!,8AJ'*=71!E#/C.T<3D8@?SP!:@ =&@#t MZV-0 '+#@!A4Y4X!Y(8!,2CMG"'#H4,;6!\9A0J,9"%0!5AQK BG;-_LK0P8s M\T*YH*.'8;!"5O2 UK(#%A)T".1LP%8NA^_P'8I 72)B9T!5#I:Q&7:_VWN9r MQ^NM;\"']] X7CU;&YOEC,$=GAR ]HJ"AE^"L$)6](#6L@,6$G0(Y&S 5BZ'q M(E"7B-@94)6#96PJ[?1B=.#/F2PU3V1Z(-?&^(RT4)0^.GFE[/#o MD)3XV>W%YGW]1,3Z'9+2'_VZR;Z>/\7"#( P.#/)GB@S@U<-!E_'XS_JRNNQn M""@""J=Q'!J$\.KKWM]TS(^K@X(@"+$% O2A=R/@G07R+C,:*CJWAM^\KY^(m M6+]#4OJC7S?9U_.G6)@!$ 9G)MD396;PJL'@ZWC\1^'1YG7_MP2\L\#DD/*Ul M1N3R\2<]^>Z_/!#8D6MGV7]YX.83XI[P$\9O=1:9.#WHBS*B#W[+PD$Q*#AJk MRS,=LU@@!&# A9B?92-)& %j M#%>C_OKXF5$+J9VR_ZQ]6,FY>^)T;H?HE[:9%-$68$:[/$@P5@K^YF+IL(:Ii M*W(QA#P2%*.5UL#==<0FXL2:$!HVQ]^" D8,"EB(]5$VDH 5,%R-^NOS]NK>h MJ+\^?F;47A]]D?WYTI_W!-T[G=LA^J5M)D6T!9C1+@\2C)52D,9;%\&\68I^g MAZS+PB0-=;8;F:X7 3V\'=D9X4 $"()(2TV%')@(,32P'$S:";#J""TU /X>f MT62((@B8\& $KP:^6.1Re MLH(#P>^0QO'>YB?BJ8L:OE9%OT/696&2ACK;C4S7BX >WH[LC' @ @1!I*6Fd M0@Y,A!@:6 XF[018=826&@!_CV@R1!$$3'@P@LJ^6.2Z_>QT3,UB!+__\L#Mc M;QPBH'"/-*T1N4BM'MM_>>#VL],QY4YG8'[/ONY<&\:,4N$ AU(*a M,,$N$J-"W$2)%Q^;0T"P#4Z=*,8_DQTVRO0(TO.P0@I4!!U0=Y<#YKK/:[ _z MQ_#)PB&T0TO#'9ZSP4-MNG0W)!7w MX!^,7%#CY8A&D8=QI/(*&F /97H$Z7E8(06:DS[]%HT!?%K . B?.0*6#74v MM(&7%= -14I(;L@K\ ]&+JCQ