Return to BSD News archive
Newsgroups: comp.os.386bsd.bugs Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!agate!howland.reston.ans.net!zaphod.mps.ohio-state.edu!cs.utexas.edu!uunet!destroyer!cs.ubc.ca!newsserver.sfu.ca!sfu.ca!vanepp From: vanepp@fraser.sfu.ca (Peter Van Epp) Subject: Re: IDE_CONF.EXE, PFDISK.EXE (by popular demand) Message-ID: <vanepp.737185219@sfu.ca> Sender: news@sfu.ca Organization: Simon Fraser University, Burnaby, B.C., Canada References: <C6ssI1.HxJ@rex.uokhsc.edu> <1993May10.175619.19445@fcom.cc.utah.edu> <1993May11.170235.7400@fcom.cc.utah.edu> Date: Wed, 12 May 1993 05:40:19 GMT Lines: 337 I have been working on cleaning up bootmenu (which is where pfdisk.c is from, the whole original distribution is availible in comp.sources.misc Vol15), and have a not yet finished version that works on 386BSD. With the post of Terry's copy of pfdisk, I pulled it down and hacked in the necessary changes to make it run on 386BSD (and presumably NetBSD, but thats on another partition of my disk and hasn't been tested yet). What follows is alpha level code, it has been tried successfully on 386BSD at pl 2.3 using Julian's SCSI driver, and it successfully reads the disk geometry and reads and writes (and the written partition table looked the same under DOS). The changes to s_msdos.c have not yet been tested under DOS and may not work. As I said this is alpha code, and it is playing with your partition table so the risk is all yours (but then you have the source too). What I would like is for a variety of people with different disk types to try it out an see if the ioctl being used to get the geometry in fact works for all disk controller types (I have only tried it on an Adaptec 1542B SCSI controller with a Micpolis disk attached and the geometry gets read correctly. From loooking at the code, I believe this should still be true even if there is not a partition table on the drive (but again I haven't tried it yet). I have an IDE controller and drive, but they aren't hooked up and haven't been tried yet. Assuming this works for all disk types, this should be able to be used to solve the NetBSD installation problems (with perhaps some further changes). This should be able to read the drive geometry that NetBSD is going to use, and since it may already have the DOS partition numbers (and supplies a sector offset and length in relative sectors), the install script should be able to figure out what part of the disk DOS is using (in sectors relative to 0, and therefore geometry independent) and round up to the next untranslated cylinder boundary (wasting a few sectors) to start a BSD partition. In addition, if you fetch the binary copies of the various boot menu programs that are part of the distribution of bootmenu, you can use pfdisk from NetBSD or 386BSD to install them, and allocate a partition for DOS, OS/2 or another SYSV unix, and select between them at boot time (for instance I have OS/2, DOS, 386BSD, NetBSD, and ESIX SysV loaded, any 4 of them are bootable from the menu, the other one requires the partition table be rewritten and the machine booted to make it take effect). The further change that I see being needed is to detect that there is no partition table at all present and present the option of using the whole disk for BSD, at present I don't think pfdisk will do this (although I haven't thought about it too hard). The following is a tarred, compressed and uuencoded archive made on 386BSD and then uudecoded and re uuencoded on a Unix box, when vi complained about "line too long" when I tried to include it, so I hope it is actually Ok! It should be uudecoded, uncompressed and then untarred over top of the pfdisktc directory that Terry just posted. It contains several complete programs (makefile, s_386BSD.c pathnames.h) largely stolen from a combination of the s_srv4.c file of bootmenu and disklabel.c from 386BSD. The other files are a set of cdifs generated with 386BSD's diff -c between the code in Terry's tar file (xxx.c.orig) and my modified version, feeeding them all to patch should get you a pfdisk that will make under 386BSD and I assume but haven't tried, NetBSD and DOS using turbo C. Please try it out (carefully, after backing everything up and at your own risk!) and either post or send me information on what doesn't work (and if you have a fix to make it work, so much the better!). Peter Van Epp #include <std.disclaimer> vanepp@sfu.ca begin 660 newpfdisk.tar.Z M'YV0<,R023-G#9TQ+P H7,BPH<.'$"-*G$BQ(HB+-V[ '@HL>-'3V" "FR MY,B+-6;<H!$#AHR5-2ZVO#$#1L<:%7/JW,FSY\,Z<^B$D7,1@)PW;^CXC'@' M39DR;)9*G4JUJM6K6*<&'%CPX(LV8=:4,9.&39FL:*]ZM&&#I$BW'SF:!$&C MK@V4*EFZA-%2IHP:+CO:3$NXL$.@0HER/)HT:].G40U+GDRYLN01(*B@(0@" MK%BR9D',J0,'SALY=.: ",.@J3I)@:<$FC5C1>8*6:3/'A0+,5=R,>=.F M31DW=$"\<5-&N1D0=)R"F))E"@@R8].X24,GS7+58J"^N<-"N9S?(( V#],Y M;//AQ<.X(0.BME@=Z$UZ;DY]2H\R<Z2!!WHH&'$:"/#!499V9RCG!@A-3-$" M$4],4=X<3[4GUA>\C>&"&&'0D0*!5+R!('$*AK8<A-H)6)YZ.ERT7V<MXC'B M".@%!Y]QR(%@QH%%3"';15/DYH(5+\R PUU20.4""#.X(,-O_?T7X( CZ$@< MC\G]2)0=9<@1X'?.39<;';N!@*223#I)%PB831%&'6Q065T/<]@A!PTY"K?E M<<F%Q\9XT-UA8FW,J>8EA%-0:-T=W*$!H7QX@!"$'FB. <(0)[:18ICER4?? M<-BA]P8<W;61AAYET+?H'&"U)MJJ9=CI7QB8EC'&;T,8P4001_BWPA!][@BH MCP<FY1111?:VYI*XZ<8;""@D,<40+%S[! M)(.>D"R[<6&4:;!;[9X^+1N@H M")!&]UILLP651V@SHI"&"V4\.=]^(U;)&QEOS&%N<<<NRJ80C9H'@A-ET($P M$=&BR9L"51[<Z,!<(DN4LF&^*QMMMC4WQYF["3Q"E75L-R!Z0Z!85HC>/7AJ M=]_A-\00/8RQ:Z^_!MM#"T_\EK*Q/88AQAM@UJ==<XNZ<5JLY<V<AJJLDE%> M@B_3[$;4#P8G8,0E*Z" $4DP$60,/8 @11%!$-%$$2!L1= :+H#UX!!HR'<& M@)-^5E9S<A?D@J8CST$J@(.#P(4"T1[>FZ2%8P>'"Y!_ :" B<_Q!;E+9OY% MRI@3SN$< /<F>IY[>HYKIHDO'K= <^/JN<5$#(X>$V$$!1T:<F0(J!QI !BC MG'2.77:0,J1]=%(\UN$"P)H&3C?TTTU!QVDNT(%'H$C1T;P+N;<!PO)"U7$] M^+ JSGCX,HBAW8<A:EC&Z!Z"R#WSQSGO5*7DSWG^_B#87_O>MRL%/$$(2O#/ MZ[BR!MF9J'".<\$#OT "%/0G!1)4 !.F( 6<+3!V>LA<;B(HN@I>T'8C,!!1 MHK.>7&GJ7P';5*<^)8>KG2LY1D-:<V2@M$2%:C[I\1/!>C2E$0AJ/$_*C%,> M!*B.B6!&TAL<<400-:(\T3T?%%P9\% &$?AF! =,8-JDY\#&O0$[O9F@":N# MP3?\9H,='"/L"B([PHWPC(@KH079:+O?J)!&8SC*'-Y@AN1P"FMFJ>%J@.@U M/+1 7O1R3WD MCN1A<$XJU'4@9I *4NYD%<S_)L<DO@$198A=\%39( \Q88\ M@&"+NC)?<ZZXH0[!CPY4!(%VQL"&.F"'#+Y1 &O8$"/I@4!LTHM1!<,XA1$E MH((W2P$(H.DK8#43!"TP$0F ,$T4,'-$"H@B+)7I300V4P$)8,.#LCE-;K:@ M0<LTIS1;$ =LLD%\M"E@%.%#SF^B4YW8U*8[X5G.!,ZSGK3!)QL*J"J5Q8A\ MWW/?@_IGOC=\2#OHA.80I$G-GEV3G<:L(!PWBLPYTLU$,8(@'A\7+<E1+IPF M+6-*[XA&RK6T#)-#@P)46E.4FK&F.M7<&ILI01#,E'0X?:D"$$4'<H[4F4SM M)L^LR5$4/%5L$,W?1=T0(P%*%)U>U0X(>)!5-^AOBR#P05F=]U6*GD^B7=WB M -T 5KE*=*QNM2@ U=H]_UGTJS!EX//>,(9B&E8A.E@(.A<[E,:6B9 @V(%D MWT%9NOUGJ9A5J69GQEF%O&$A/PKM/W+X/SN:5B%C6,A95_N9UG;UM8A=R'=F MZUF'3.RV#LCM#O+YCNSY[K<*.8M"#C" XBX@-B-(;KZ6&[SF@N$( ?B"=,/ MCR] ( C8I0(\Q! $7@7 "B0 SX*L(,Q=!<0:$AO>0M @/8R( #PI4)UYYN1 M&W#AODWA0DWN0(3^+N"_A AP?P% B!? XP$.> $*R (&!O37;0S C; <P,& M,\#"9O"-&;"1@@X+@1B?"'$&1LR $A.C&"U(<5M:T!8;/(0!;+!!BENPGA9( M-QCOS3$Q#,!C2F#A!14(,C$P@PQL&$ &2([P,)8<8BP0X\DP\(T+]D!E.!2@ M&%@F AHDG (4U^#+X*U!;AT CC)7(@9H!D!["< ? @ B"3J(<X2;RF,#Y,< M0#C #*# YP*4H YH(,08($'HC$ B#+! @:(UP&@15.$%D$XO&L8,! /4A080 MR#2'(1"/3C.@-'!XA@,4C8(NF.'4\ V -B[ Z@#L0 ZP#@)Y/<)H$)CZUAA8 M<Q(J'8A>9Z (P'"UL U1@&)S&!O'QL8(N-"#9I>8 6A@0#=(76(ZH( >+.@U M,!@PCVX'(3/?ID(0$$!N<)L & C A[I7P6YM?YL-08!&&KI-[V '@ _XSH R MGIV*?@/[W4$ A'4"H 4N5" 0"&"#NA?>[:>4(0#@CCBAB(.&6(0A$J(^@*Q/ MC>UISQ@]+3# #T9>@$V LO%.,(1NFV(;+M\#.FHQA,4;01MAR$4.->VJ4NL MBFUSH1?'<,,75AX$;M=\"JH(@!EZ,>V:CV'<*"AQ*KI="J<7P>I&Z'8 ?&Z M=#@]"*U1)QW8\'4RE#T=WTY[:>J2;A!X(K? >$ P()X$8BSB[J!8QBVL4($5 M$* /@/_Y" +1!I$CHQ"*WOK709"('8 @!><F1A_40.Y)5"'H."!\B3/1=BJP M>N5MKWR'4Z"\%*RM!Z^2PJ_,(( -L (61 "\+VP^YG0,/MHV$+KNB_!O%,"7 M#T#X??#9%@ D3%X;R/\Z&Z+M@$]L?-?4N+CT?QZ(!LB &=@''S-.!C[1.\(( M/@^_F(!Q\@ 38E.$8-6F;N:!]COA_> 8<VZ7Y 2BS, !Z+BU_GMO#*/[7]+I M10. ,("D)FEL4P1S@ 8ST&E)UX":IPL0R K*TP,-('P!( X8R X:.'EDP ZX M-P5]@&0\) 4R8',,@ .PD(+/5F)EPP"-D@3PI0ZW1G5D( 94""!\'3+QP . M &L)EPICA@!<\'4(@ *WL R:D%YP5S9)P(1)< Q0.&(9('!4"#" ,'63U@4% MMX6!,'H==FMFT 6,TP5 5X8=\ 8#R'1JV&ME:((P]X:B%X>6@P Z,P9'N'5X MV"V H"2MAX>50(1&B(6(MP,D F > L[MW>*& @#V'X>P'M%0 0P93,(F5 MR %]H ('>(?O=XAB. =ZJ"1!-XI"AX8!P(FCYPY#-WBLF#DCT'\^)PJI.(OR M 'NVV&&JJ(6Z^':\2(AX2#FW@ :R$ 8(8'(!QW28D(QK5XN!P'1ED 3."(UB M8PPI0P!1=XVM< NRN(VJ:'V*-X=JTPOA" *?5XY!@ N'F KI: 2^MPCGB ," M@ M:. ;AMP]N0&^YF(_&@&Y.DS:>0(R;@#:! (S""(Z)R(L'. =%L(2>Z )# M('!2=XVMUW:>H C&" B]<)$960B*V)%XJ >^B K#.)+-EFMM\(UCP X<QP*H M<''%T0;WQ04&P'1!D%X7 *$X !=('L\J38I8(Q J0/)2(@:6908YY)(.74) M, ?$\'U.R0'^V :L>(Y]1W6P2 <A^8#&" WTH'S,)P=J:(N*,)9:0)0RL %H M.9:*T) /23J*4!I[!P(Z-P4"MVT(8)$$< Q>R8-R !>28X)0)=Z8(]N (S> M" "P*(N H J]]@R(9P CP J1)P$(T ![$ _P8&KE6'9,T)FN\)E &009L(#] M5I0!@)?HJ'CMLP.^!P_"D)D( )EYP:84!QQB Z2R %N IBZ0:]"0NHN9!) M4(_$J0BP"0*P, SV6 -8*9A:( 6A]XV42 ;SR ('F9I]. K>F'#,P'LEEIP7 M@)?',&8=UF]CV0O51@=T<'>XV)@& \5^&\&X'&^UW.KV _)Z ZU.0<H$)P. M (VP:5[268FF9@;8-@]$!P\Z68' 8 1?,)W!Q@2+$ Y[V8.] >[$)K-J0B] M)GFLYI\;<&L:(*)=$$A=L)7T@ THJJ(*L0D:]Z*2$*-7X(8*QP[G>:-?YP:* M@)8; XS\*/.H('WE7:]%P=0&0P9)PCY< *5F8MB^8\*\*1A$*4* 0O]=J5/ M@9E:JJ!TI0#Q$%Q@B@J9^8[Q2*:X$ 0?6E%!8('BT +)=0 F&:<*@0'Z5J=$ MVG;'"0M:"FD) 0 O@ 0\@'D[)WF$NEO$\'Z(JA!.T(B,.J..&GDZ< 5B&1 F M<)26JA"1\'>:^D@$L':>ZI+5():#!Y>DJA!PL! 6EZH*$0L;IXM:T 40V BR MZG2T:IG& '1)F*L+8:04L*"^JA .,'G"JA!] *;^.9Q<<*S D*SGL*NPX*P MH)D&D 9_1W36RA8V@)7:*IG<2@[42FJ*EI_BVE[R4*X+(0\*D08+\0X 4)DN ML! (D P B ;N)FQF&@12J1#@T'+(V*_Y>G&WYW$,('AO0+!<4(%TP 64V9T, MZUG,X!#.EP D&(26;$*@0*Z>073,',=V;$:JW @NQ Z$!D,$0>PD%H+05< M$'>#2G?$0' W0%=N(+-N\(LM,*#4B;-=$ "J<'L^&WM%V0./P+"C]P[9J9@* MX0Q)"P H:@1-NPDPMZM2NQ!S1Y?.<+59BJL!<''.8 U^K5:&P9Q1YYD&WMF M*Z'[1GT-H+9<H!!MJQ!DD'C*^;2@$&]=N0DMRK9ZZ[:CV;<*D0%=. -Z1ZHS M6;@Z$&P+F+@+09.S4+B.FZ5FX'=O< Z"5[G2<+E5@).:&WT3.0+$^KD=:06W M< L5"I886KH7N@M&H!!&4)57^X:PZYVR:P>T"WX(>KM5V;G/IA [P *D0J_ M"P#P,+P* 0_6>KQ0> P*<0RJP)L/R8\,T8A:F02)>X+N<+U4F;W<8+N%U[TN MIQ#<4('BZY3DJQ".8(H=0 /*FJS1\*&!P*&*H!"*H+85J[GGIQ#2< /168>H MM1.IA84.D+CKJPCS5L"%B0+R\(XOH CG^ 8S*KN5V1!O,)OY6,%T.8]A.9 9 M[ *]<*0>G)L@K! $L!"P6<+$!0_#=:Y!D,#R8)\NX,*JD*0R3*&L6P5H>8JE ML&8<M\,*8080/)5 O*+8, M$7(M&3)CVJ )*W M,;(M$ O?R "/, [BZ0"* MP %5?,6*$&>)!0 ZL)2M\'-O,)8I0,:*@(SFR0 (H,8,(((*(0/&<+R[VJ\= MEZ F"078RA8]RXPW/):]B<=>K ,<X+J$/&V&C+AQN!"-:7F,C &./*=^%\G: M.,E!][7XP YL8':G('. *%U?@(?!IA !L!!+< 7EJ9*&G,H*T0T.870!0)FP MC)^".LO+F\4<@ )/F\L2:K4 P)/RZ0J_7 0*402Q>@\G-[;('&!QF9_F*0=\ M3*%S6Z[R,'(<\!3'V@OP0)%HO,T*T<$]X*EP0 -PL(2!X $O>H2@L [[2<</ M07.JZ88*P0)D"K\1T0\ < *8<_X+!'5C*B1_,\*L0(+\01#NI=>0,+'6:*F MRLR$L 3M\-#$D @2#:P4#;X9,'(,[= +<<W9#++S^=%P-X-1@)/:6=(*,0H* M,06NV@7(]]%2Z](*$0< 8 #."PA(IG09YW_5S)-C, X\UXD+D0$]#=, 8+(J MX083"95P,,L!D(HB# " <(Y,.M76L,/N4(\98*_<1LB$H! _X-4 \)NN'(<= M )P5PT+80[O5YJ\6 [SYM//-H#BD)AV!P='ZW$*<0L;O0D$@ O"N:R*$ UW M+=>XF@9L?)Q&$'LE#0SNV H-D0H_# "*YU&ZD;P>=E#5P 'B9H5^@D+E0[' MN\VREVNQMQ#2ZY7V&=G=\([HAH2NW=FPS;JHJ('LH'6V#0!S&];#< &YO! M/ ,*P0H 60&X@(^J:-A;0)RI^M$8<)G!* M?0,)=$)MZFID'^;LLD-VAO6K( M>(?-V89] -Z]X)7'VY$N_9EYFMX<'7FFR:8@R\M]('(.L<OJ# #H.0]&P !N MVH5L3=^*J0K_+0IP&;"V*X&)6-_HV0=728VZ>,#R,+,.#N'HJA!,< S?"03[ M*]=L_<Z6VE[Z!I%U&=( 8.!!"L@Z8 1G&+0"K+,!D+Y-*=[]O;(#"PS[ R; M0)PW'KBG;0?6.@_ LF^8NIPT>=5E602W4.1P[0"1T #.4,V]#+0Z1\:;(.6* MP']*N@0ZV0>.EP)LIPTXD,$[%>:6^@P7%[,"$ ML:()(B,8' %_EM\E%?N0[ M8.1:0+Y&X B.L ._N08E)M)Z)]?.V;)BK CLR=JE3*%)GM'M +RW^.'JLM M?86IH @,\)H-7LGPX,=$L 77<)L$L DSD(*E#(BD[G\M !V;.C&R7.#JA#S M *\(, DI@ 0 VH!7EU6=<*'!$<]]ZGEM.>-=S7ZPZS'9H9\.(+S-?H* F' M!WI,? Y?W@!+RG1H:>!)"@MOS;1URY7O> R)3 WS#',93JM;Y[VH@ ^?:="F M#@!5<-;H* <\A^Z$B(^92'/8H 3;=MGY:W%76A=ST',=OAJ1X P8G0- FP$X MSN2@@'A7B@!T<'+3EKCC@.M"OLGDJ0ANG6+920COS9266NV"CN ,4*S":@ZU M>=FVJ)T=0,X>L)+SX.>@P-$)MW; #@#-(($W^7U$S+E]&WF1G@JK=N6#0-]$ MKY[DF5I(7WM*?\%(\09'F.21@ <J -YBF>V;8/7J"@!9#P""*)ZC2(7T;>9B MKQ W\(WB?0R]$ CAW<TFV/;G0-">$/>S"@SS@ "1=_<*80)2$>,<P/>I@ /+ M6@$9\.[)"X7+ZQ -(/+%>I>,KQ (D &IOAJ2KQ <T1":6)^8?['7)^HV7K<8 MZ?)[Y[,2@:*ABL8-[.RH7O>]@.H*<012W0(EGZ@ X 04X7].H-:XKQ#F &E# M+P"^'UDD$ "H$ A9N0.#O@@R0 #>)0(#" @* 0@IL! J4!JX<+4(:=L[G/UH M?6NMAY9P+_/M16['R0%<6XK.=_Z,D+GJCZ0*T0"Z]P5ND%O//_^YE>;-& B5 MD%L-')[*;@3,#@!,0-L=([+ +8 MW%N2B@!*@0T( P:8*Y" YJ@#C J-=0% ME,',N8"$+0,^OVB7#Z2-!U0(SR83_#P $ 06@B!@18%@V50 @\,%Q)4+5 B8 MP."AJT]3CXP H+J!Z*9S,32GD0QZ8!H3!EQOTE4ZKO>[4ED9P#XA( <Z "4( M#$C3U7J"7 T)\JLIB-6JH$( !B$@5VG!.,<%%8(66$?,+0P6M*A%#LC@&.@_ MH@KI-9S&-LO:(.Z+ '#0GZ4A)# 'G1]4:U4&9_#A'*$$\+Y:C/J#VFP4",*3 M5KF03\13!9_@$";"V=0/=ERP 1ZX#DY)RDP!5*:6XM68:@+Z)\NH! X(;%2 M WW@#>*!]T0*E8\I!#6E0?_<*UP ^); +;!'18!:"0/:$PW.$SF:#H"@"[P! MIC<%GAT.P#; , $(PV$T"HD1!I(#4E#D*4-8PPRE'+EZA@RH7OE">A"XMI(U M?()7B]P0 R96 3;!6N-\FR 8I1>0];Z4W5]C7P* %=4I99 !2($[M&^]H +D MI'FH$+J:0A@!Y% 1Y,//IC/TP=#ZAP@0N@& #1 0HQM!M%\@0 @H1%8C!+3. M!2@X&& >%!LMX <J(A6XB*Z U6A$5G,%XL ?;"^2X!!8@I%( DHB+3B)F8<+ MT(*:@P,V#_@96%WG$" ;Y *!(%-A(A:8 /@ "F@$S6AJ>D%76#S, !Z0!0O M@5$D D:@#GV I9@'FF)]N8CV@ = :4##"X #KB*.Q$*'("] PKRP%5, AP@ M+/ZH&=!M9H <: 1OP!J, !S %;UB&K "<%$(I;TK0'WHXE54B'CQ)(X <H, MDN)5S 0G" < 1AP 'R #2 U"$ G*L:?<P0V ")(B3C@"Q* E#@4B\ )0 $C M0 9,Q3& %9/B!G@!P, CS(%$, =*XPC( ?2@",2 4L :)^.=VP:P41*D@10@ M$N7 9[R(G" W<D5., >@8EO$ 6E Y1P!TE@:B^,<.(NE8 X<'CFP"9KC5J0# M_4 D-L<K,!TW03%P!-N '" >(X 1H$'. $P8 H -?H"-*!3+P !2 L<H!. MH ,^(PZ0 PI1 Z@!RI@3;:,1L(JVD0NT $R #(Q ,HB/<B 8B( #D ZXP#.0 M!OFQ!9S' F &\",G2 ,B*.\D ADP&D&!A)P#FA 4# %D@PVV(C9( R"RS("# MG0@.QL O.)'(AA,@@%\ &;$!"S '0" 7R$CQB -RP68< /N &2"3 ,!,",M M@ @DA\(R4&P:X $" FB!)@AH#"0>D@)/, (7@#O#%$W2YI,&.E 94H#2X MF0%$:"#!?T0 D( ODIL!(%EV0)(\DPH ;";57 ;5\%6W "4X S\'2G #JXC M%7 S^@ &-("+2 6D(A4P H)P%#""02D>&<%;' !U,E%: 64@ "R HS220$!* M H';N &@P!T80 %@ X":1:D! B0<2 (AYA,L!%M *O_!),"*Q8!3!DBXJ PZ M93" BP72"@0 <X #@!;! "W$@>P@4.P"WHE)W =R< +(%P (GL3A&H+U?Q M!O3*98D)HH"SG(I1X,D0@[>8!H@!&;B6C$D4&(-MR1^-@2* !*-+K_F 6P & M7,"I_"\+0%4N !'P8#" (B@N ^!4B@(0< :PHFO$ 7VGO:C*8% !6 $$T@57 M\5<"RV-0"C+ J60 8 0?( #P# K09GDC#N@ Z"#7OEL<, " #C(&-.@FL) M+V.!QY0L_T"R( -;60=F01[(EQ4 $2#%S *3,"V5 8P4P+(R%P >7(!!#J5 M:\8< *%%< S<P;9<F;Y/ !0 HW@)"@\9,)IM@&76@$Y [0E&V!,-T <M(-B M( :JIBX8F2!S!R@"GYDJ'8 ;>)EUQEG>S+&)>'2!TU0%%J"_D($$X"^10;$I M /" "^ 4# +>H$9,)5?P%WB2CA@ &!F$7"7:S-P;LL\H#//)@YH S6 #-1- M7M H[0$94)B&LPUL2\(( "*G,3B:5Y.]>(%M.0Q49LHD!I83 ?3*S$D 6D [ M/)L68'"R0E!0"R <!XA):R85.")Z20":@.WTF+$ =1H#R8DY=<$.B 6\4A0X M'"<I!0ZF%%@'R%,1U()!P#Q= 1BX FT "$R!8R ]1\_"3 $XP!=HSV_I"ZR M/A ';@ ;/)C[TA%700)*+V8@ 4R"C)D*+H$Y>)\R !G8@F69#>HG()@&'7$6 MY(/7^0(@00 H!/72# 30,Z ^VP $V@&BX P@'VT@#!- -L !MK,)P$N$.0#2 M)@,X 1@T<)X #JDP6<&'_ 9+((0V/?TI"MY *E@RP\!_:H,7, Q>TA@H 8.2 M$9A/1I ):B@(90"9@!>D(%C@#DE!P20%<-$*8$TKH H,@1'5F1)@$A@"GVD. ML \S\)C,H!)(T:I9"90 PSP .2 988*8M#\S01?-!UW49VY+)XI]MJ4H8 9G MDARH489Y F;F&GBCI+,%K(%K$$*SP27PG ! $VB#.YI'M0$ D %OM!#4SVSP M+]/!&YT%A]0@6 (I*BR70!1(I)!4:I*#H3D JMJIX00O-)-J EY0-P] -M ! MZ2"4&@ 4("(S@!X@I1#@A': 52H!6FDY>*5KH!,T@%DZ2F.!%6@ AK04B ,# M\$+19CJ 0.Y@# A)?I"\"( 7D ''@&'F@#Q &3D 9@"S( 8V($K, 9:Z>A1 MF2D &-0!YCD(F($<,**&@)$:@CAJ#"J!(6 '7B"=)B,O<"W)@!9]I]6@ H#( M-(!$YTVW 018D7FBS=UI#'! !Y "5: +<%/F.0/ :#X8FOE@"]R >;!*.P 2 M:*4059Y*H;^9 4X!'ZBFP%07!,VK& !$@0"(2::3"[#-%J /U('I; %_(*7^ MS2(@#""!-9"F,%6BD@%-0 Q6JC P!+% .$@ !V!^LD$]"#(50!](4QM04)/! M,CBJW'2;:H-K:0"8*AE R95$ZS2>U "-,';5 :LL114 IN*4RO!.-BA'@ ' M<(.QFALY03I ,' I\J"HRHUR0!1I >. 1P H@Z5XW!() '24"M:M0,0%</ M@3;XJD4 "0!6P;I274$\!9%K!JW* V"0@LS!,%BI1> 0G-7)&E<'P16J!Y[@ MH6K6M5H-,.I#/04YP)O. WQ:5^^J,8 LD"N,@&ZJ@NX0#E _B&#TB"JTA5 M+8 +8*B'-0#H54-P7P1!!R"MO$!:LE4EL%K[JA$-!"= #Y0"!L ,@.M=!:Y0 M2#B$@PX05PL 7<(!G( 7F-;?6@AV 9_,+51@#CJ GPH*\$$K>*7E0#@J@B>3 M"HZJ>R6M\%6Q]@)8 C<@?D),#F@K]X7J\I?RX$>^*\7\33I =\Z H( %2 " M:#7!6A\$\%E9(R9PL*7 -94"^^H*JJD#" 6[@*E25QUP,X8 CZJP#<"_6@-; MY@IRXS!P3?"@LEZA4W!./8**304LEIN>@*1*8_\K(*BN= G'WMBS2F+WP11R M \@R/K7(6L#Q,$L%:O.31',T@:0!5*KDVVN4):QW@)UQ STJ@#8 N"GE3H M),!;?VI<_;)0E;..@5H #J! %T"OKY2]]H%R0)2( 81]L^O@$XS8.;N;K,&( MF5EC("-E@)WB!EZK8(4'.V \KAD"$%9SP03P0F6,KXVG*^8*?"P@L&**UHIQ M@$;[8Q6!<Y4'QJ #R )'8 NJ0%Z%JC, N(K:5?IE08 CP 1&%<F6R:RD \K+ M3@4&.T %D%DO$ H\@2&XM+A6"HT8;.!PK.P6,*P\P+XNV5G*#<H!:?VTR)87 MH()H$ *:;6]]MCF)"U189&L+7NPIZ ^L1=854- !Y:L )BMN@#<2@(,4 L M07*5 %G@W*;;@<I-B^TZ>*O3]K_J ;_Z!O1 K?6K^+:[7@ C< AP@5--L,$ M 5P"8;!<LP!510->5MVF@)<*6UFJ(;"VAF 08%2J2G&G@7#(2-S@XFZ"C,M9 M@6W8,:+<-!EA57!J1#$!7?VRDK;$*@0.R7);KLM]N3 WYLK<F4MS:Z[-O;DX M-^?JW)W+<WNNS_VY0#?H"MVA2W2+KM$]ND@WZ2K=I<MTFZ[3?;I0-^I*W:E+ M=:NNU;VZ6#?K:MVMRW6[KM?]NF W[(K=L4MVRZ[9/;MH-^VJW;7+=MNNVWV[ M<#?NRMVY2W?KKMV]NW@W[^K=O<MW^Z[?_;N -_ *WL%+> NOX3V\B#?Q*M[% MRW@;K^-]O) W\DK>R4MY*Z_EO;R8-_-JWLW+>3NOY_V\H#?TBM[12WI+K^D] MO:@W]:K>U<MZ6Z_K?;VP-_;*WME+>VNO[;V]N#?WZM[=RWM[K^_]O< W^ K? MX4M\BZ_Q/;[(-_DJW^7+?)NO\WV^T#?Z2M_I2WVKK_6]OM@W^VK?[<M]NZ_W M_;[@-_R*W_%+?LNO^3V_Z#?]JM_URW[;K_M]O_ W_LK?^4M_ZZ_]O;_X-__J MW_W+?_NO__V_ #@ "^ !3( +L $^P @X 2O@!<R &[ #?L 0. )+X E,@2NP M!;[ &#@#:^ -S($[L ?^P" X!(O@$4R"2[ )/L$H. 6KX!7,@ENP"W[!,#@& MR^ 93(-KL V^P3@X!^O@'<R#>[ /_L% . @+X2%,A(NP$3["2#@)*^$ES(2; ML!-^PE X"DOA*4R%J[ 5OL)8. MKX2W,A;NP%_["8#@,B^$Q3(;+L!D^PV@X M#:OA-<R&V[ ;?L-P. [+X3E,A^NP';[#>#@/Z^$]S(?[L!_^PX X$ OB04R( M"[$A/L2(.!$KXD7,B!NQ(W[$D#@22^))3(DKL26^Q)@X$VOB3<R).[$G_L2@ M.!2+XE%,BDNQ*3[%J#@5J^)5S(I;L2M^Q; X%LOB64R+:[$MOL6X.!?KXEW, MBWNQ+_[%P#@8"^-A3(R+L3$^QL@X&2OC9<R,F[$S?L;0.!I+XVE,C:NQ-;[& MV#@;:^-MS(V[L3?^QN X'(OC<4R.R[$Y/L?H.!VKXW7,CMNQ.W['\#@>R^-Y M3(_KL3V^Q_@X'^OC?<R/^[$__L< .2 +Y(%,D NR03[("#DA*^2%S) ;LD-^ MR! Y(DODB4R1*[)%OL@8.2-KY(W,D3NR1_[((#DDB^213))+LDD^R2@Y):OD ME<R26[)+?LDP.2;+Y)E,DVNR3;[).#DGZ^2=S)-[LD_^R4 Y* OEH4R4B[)1 M/LI(.2DKY:7,E)NR4W[*4#DJ2^6I3)6KLE6^RE@Y*VOEK<R5N[)7_LI@.2R+ MY;%,ELNR63[+:#DMJ^6US);;LEM^RW Y+LOEN4R7Z[)=OLMX.2_KY;W,E_NR M7_[+@#DP"^;!3)@+LV$^S(@Y,2OFQ<R8&[-C?LR0.3)+YLE,F2NS9;[,F#DS M:^;-S)D[LV?^S* Y-(OFT4R:2[-I/LVH.36KYM7,FENS:W[-L#DVR^;93)MK MLVVNO5% 7^EF7J 0[$!O!@!9-!GA+0#@!GP!!% (VN 0*(1U\+<4@CIPS@O! MF_:#Z:P0*"?E! "#0"%D9RR76UJ2 [!'LF#^ 0!QH!""@4(H ><9 -B#7C 2 M+8%"(,_C>2&X A-@<A6"!% (!L#QE6?S# 80!90" \+ ' "\T6@(U@GA 6T M#@ -P#PZAB=?5X(5. T+03?O+(4@F,# (ZM))( A0#<S$#G5#-/32$0 X60 M#3RT0@ %5S!%+^<$L E,@:M3"$A %@Q<$MV_ ( >,%\.8"&4@QP- %)FNU(( M[&! $T$ L N0 ">X!]5Y(5QG ("R ( U0"V04FD!@!15!J@ \ ( V2#O88(L ML&P5@B'PT@M! J@ /PH !(%"J =G&@"H@F@@T1)!9TH$,'!&!^@L#0#T'@!P M!#R:0 . 4% ) <"$4UX ($!G9^P<U' T - % %HA(.D:W:3MX3*@SUD $:3G M:E 8'1X5M KZTK; !&@GS'U!2 "X:#U*80'D%45PA_P '9Z4#^L(N"C R MX,_W&0#L #*@$$Z!0LA_ "!'\VA7 *2%-'_6>LL@40. '2T+S$'[HW#$(!ND M Q(-#*XT&4@&]1!> 8 :X .P@,%5"!W WRIG+&T&Q+,U&(F4SU@?ZGO 1V^ M0J@ O6 -_%>%\*1?-1"PU4[:/9MH5: 0A'2[U@6>4 D\: ! !A# N@8 \#H) M*(0KL &\]*!N I!!2@$@9VH4T&WY=4 8 *H@"9PI1DTC:[3 & .2 /M_ Q( M=+=. U<ZW6("'FV>H<"D/MD*01?<@PD' +YTRUX(A !A P!A!@ .6LU>",N MUHWI,+VO 8 L &Y]@ @LA%, #_J O ( @ I:RVHR0 20@$(H!ZZN%=2#J7VE MEK/5KM<S36I9/&FM$-*M0G Q !L(VU9L , P(Q^V2];?2V$$AW8:$!#L(/. M+[LMA'K0!9X!"QAF"D$0O"U-\+1U-$-HT U:0"\$(0VJF4#A%MH ( .4VTZ= MH!VTXP8 YOIF2VX L*P7@KD>@B@,P=7I+=T<PP!S!@#80"&X@7K-L#D!PP8 MX* .J.YP*:.-;;$%!,76/B_!87VM1P%C6PA;( C\YT - %S!PY9?)Y$6+&H MT $X-;,]WFF@V2J$4I"NFG=S3MP P.2NO@78"S !C$Z9WB![M[Z=#0!J@4+P MWMI6(5QJ7 T R'>9!@ 2.DG?Z;4- .(7"P, YJP6I8$ X &6M_UFUW;P4$N" ME+V_RS, ( <9NS0J!%[0!EC '$ M*'KE*G"&C0F4 0QTX$31;<V_(H /-<! M!P#A,H-K\ W.P3NX!__@(#R$B_ 13L)+N D_X2@\A:OP%<["6[@+?^$P/(;+ M\!E.PVNX#;_A.#R'Z_ =SL-[N __X4 \B OQ(4[$B[@1/^)(/(DK\27.Q)NX M$W_B4#R*2_$I3L6KN!6_XE@\BVOQ+<[%N[@7_^)@/(R+\3%.QLNX&3_C:#R- MJ_$USL;;N!M_XW \CLOQ.4['Z[@=O^-X/(_K\3W.Q_NX'__C@#R0"_)!3L@+ MN2$_Y(@\D2OR1<[(&[DC?^20/))+\DE.R2NY);_DF#R3:_)-SLD[N2?_Y* \ ME(OR44[*2[DI/^6H/)6K\E7.RENY*W_EL#R6R_)93LMKN2V_Y;@\E^OR7<[+ M>[DO_^7 /)@+\V%.S(NY,3_FR#R9*_-ESLR;N3-_YM \FDOS:4[-J[DUO^;8 M/)MK\VW.S;NY-__FX#R<B_-Q3L[+N3D_Y^@\G:OS=<[.V[D[?^?P/)[+\WE. MS^NY/;_G^#R?Z_-]SL_[N3__YP ]H OT@4[0"[I!/^@(/:$K](7.T!NZ0W_H M$#VB2_2)3M$KND6_Z!@]HVOTC<[1.[I'_^@@/:2+])%.TDNZ23_I*#VEJ_25 MSM);NDM_Z3 ]ILOTF4[3:[I-O^DX/:?K])W.TWNZ3__I0#VH"_6A3M2+NE$_ MZD@]J2OUI<[4F[I3?^I0/:I+]:E.U:NZ5;_J6#VK:_6MSM6[NE?_ZF ]K(OU ML4[6R[I9/^MH/:VK];7.UMNZ6W_K<#VNR_6Y3M?KNEV_ZW@]K^OUO<[7^[I? M_^N /; +]L%.V N[83_LB#VQ*_;%SM@;NV-_[) ]LDOVR4[9*[MEO^R8/;-K M]LW.V3N[9__LH#VTB_;13MI+NVD_[:@]M:OVU<[:6[MK?^VP/;;+]ME.VVN[ M;;_MN#VWZ_;=SMM[NV__[< ]N OWX4[<B[MQ/^[(/;DK]^7.W)N[<W_NT#VZ M2_?I3MVKNW6_[M@]NVOW[<[=N[MW_^[@/;R+]_%.WLN[>3_OZ#V]J_?USM[; MNWM_[_ ]OLOW^4[?Z[M]O^_X/;_K]_W.W_N[?__O #[ "_@!3^ +O($_\ @^ MP2OX!<_@&[R#?_ 0/L)+^ E/X2N\A;_P&#[#:_@-S^$[O(?_\" ^Q(OX$4_B M2[R)/_$H/L6K^!7/XEN\BW_Q,#[&R_@93^-KO(V_\3@^Q^OX'<_C>[R/__% M/L@+^2%/Y(N\D3_R2#[)*_DES^2;O)-_\E ^RDOY*4_EJ[R5O_)8/LMK^2W/ MY;N\E__R8#[,B_DQ3^;+O)D_\V@^S:OY-<_FV[R;?_-P/L[+^3E/Y^N\G;_S M>#[/Z_D]S^?[O)__\X ^T OZ04_H"[VA/_2(/M$K^D7/Z!N]HW_TD#[22_I) M3^DKO:6_])@^TVOZ3<_I.[VG__2@/M2+^E%/ZO>Z1%A=H 4>Y"]XQ;S]@4*X MT3;:(8SNEAT):KU"T 2^*Q(X[VX- +JUP+8!*=,'4(0EG:LKFBB+7]8@V2OP M(]"N*S1#0&G'&@#$@E6U$+K @@8"^SI6]VZEL.T90HM# 0 73:$:>^X^78> MA0C!6X(#@+9UN93TE-[8$"$$* 1YKYWKO7:FU^(Y?],# ! &%H(7Z )N %#7 M;( O\//H$5@(;XLAC .%L/ 50F0@60] (7@"B8_P=9_%)Y6V(")D !BX ,ND M0D@& 8 6M%KY1?*[=G-D".X ?R\$,CVT'T($/5=-8%\':P P\R%"RE<(E5J> M$6]P;ZI[?M]F"/F@(? "D?TX=9"@(W;(#]SO< ]=1C"(.A3 EJOY?N%H GJ M"_Z.W$V_/R^$!L#S%\(%4 A?7R$8 XN_OLM^<.L"CD!B*00HL/K<&LW&T@TA M3^?IAP"U>]B#;F/HP"'D9H6P"R*"RUX(E1H !'X , WBET*XX!-A02]HVU(< MU'?[7@A['R($Z(>U\7M]N_)<JVTA=("*9K.W]:QG".*:[C>$P#_X(?9"4%?" M?@&X;<&_]J=WL2_V[04 4( '4ZL[]D.HWPL!3@. 4L#K8W42L >\2R%\Z \- M )* 9#40[IMQ8!.R/P_%P (^V$?(E"!B$ "3/:\CP8* ??C?@ PHA<"&P#^ M3M_> ^R&T #* #]H"./ _*M_A8"X-UK)=])V$!AX@(L)_Z_@_$]K9!\ +.KA M/?,1MZUFV0K!OL>X+01Y&@20W=QM$P'VUZ.=:QA3B9&GP0+ 0,,G"[A^CL C M4*.5?PE;!HBW 0!!GYU&\S4"54I$X XL &X, ( &R *@0,WO, #24!/DS$! M S"@EP8,I&B%0/;F#2@![X T$RY]?%+?@,8+_(#-0!"H$.@#S0"$0V]49PT: M'[ 00&OB'N6V &AP"D$U< O\06_5/6 %*@3+P#VP"3 QTQL:T ND4UX QC>U MU0,:$19X ?Q!,8I"D [T;X21#;A V0-P((63\0% <R#-MQ (,UQ@%#B]_7WZ M #@#[P "\<5( AJ9U= "+4$J(%+P)>!$Z!OBZ 2^ 885.!+T!>V+039V3:@ M/?D"?8 GHQ"< /; *Z /?()$DT)0!_!1^5O^1KD! ,7 -Z *2A?OP#[@"EX end