Many programs make use of Matt Dillon's fifo library routines to
provide access to a remote shell, for example logging into the Amiga
remotely using the Getty program from the UUCP package.

I use this facility a lot, but many of the programs I want to use
make use of the WaitForChar() DOS call, and this call has not been
supported by the fifo-handler. Programs can use WaitForChar() to check
if there is any input to be processed, and then carry on with other
activities if there is not. Calling them when logged in remotely would
result in a lockup state, not good when the machine is on the far side
of the planet !

Well, Matt has just decided to release the source to the fifo package,
and so I have added in the required support for WaitForChar(), or the
ACTION_WAIT_CHAR DOS packet. The fix shown here works for my purposes,
but it could be improved if someone has more time to spend on it. It
presently does not honor the timeout field, but assumes a zero timeout.

I also added a version string (3.74WCF) to help differentiate the
various other handlers going around.

Thanks to Matt for making the source PD, and for great help he has
given the Amiga community over the years.

Oh, and if anyone has come up with a good way to terminate remote
processes left hanging by line dropouts, I'd love to hear about it.
[Don't say "Use Unix" :-)]


David Varley
C-Born Software Systems    | Voice    +61 52 786530
14 Lunan Avenue            | AmigaFax +61 52 786355
Drumcondra, Geelong 3215   | UUCP     sol.deakin.OZ.AU!drum3!dave
Victoria, AUSTRALIA        |          dave%drum3@sol.deakin.OZ.AU


begin 777 fifofix.lzh
M+)XM;&@Q+3,?  !*90  @X,C&0  %F9I9F]L:6)<9FEF;RUH86YD;&5R+F.4X
MV\MN]MBZS#PKW2ZM_V]SU.;VNAV.CWMUS\KXM_P[3@1@8C@WW/]^P+Z_#XX/X
M;^IJ>7 *6J^5)[Y$U%4S1/I-GH93N'(_$OW0HL8%HPL==_,F8\S_Q\$<X8Z@X
M/\95GEMQ6C^@@/U,H[^:M<X>,*%F!,)Z23,5>RM40UA#X0-R'$Q-:V&5=GP]X
M_P*YULJU:+E\99W1A=>KS#*^;^TE%HQ/G"%$+%)#>,.-KUO1H(&)*"&>3KH,X
M67?\3$Y)]&1"-X].8R@*.LF% 'D\Z'A1OZZ%F)_USQB>B)2T10]]+X#7W]8KX
M$[T\;_$ZEAHJ/![H;'PM9Z(RL?0F_DIH;0OK5BX"V)%>5@LQA8!;O\'YS$=YX
MW:#OKTCL77_$:P;W>ZX%WM0(1'J^S[<,Z5$4E%_7+70>U-#R0]D)VNOQ]A=XX
M&4ULDMLZ5< ;*:@/2W_$:(#<V+N[[_X:OL'YW[4KOK]%2U7.4VY.8 :+N<'TX
M!;M:NSL&\\#JWW 39H\UTS3DP":HUH;H]872$=FN9@;NM@YBYH3GIC[KFQ3=X
M'$@/ MFL0NUV*;,C)F,W3(>PK] '\KQ4SW209WE(]G=:-()47>W2B$2=C#>JX
M"ES#0*90*\$(E"*:H)8<(I/X2FBE"S<"?,4+SK([.T@LSJ=.M:P3;(-0RP7[X
M>[XIV KLV?9H*PQ=.>Y>%:KI X$'@%!"9!@@WDEK%B3 B>K7LS2O!99U5X\DX
M(NG[/R)!%RTRG0>*%HIUO)8?DTQ)G^C='>Q>0)'+0#_1 H"+.UONO$<HDZ\-X
M^3PK#^$$.[ECP@,.XW50>^KT'R:0,KO'S<<R4#TD-]5 1$<&WT#DB&EG3(,_X
MBEX']Y-*QG\5_'!$'D23;L .T-4Q[CRA0@*P22MJ1"?CM@,D5;O?OM2O(5)#X
M%QRBQI$5=%>!-7&".+].T>QGV9\I2'!AT%]2WV'$(AYI!;H=7I!:BXP13__NX
M $WF(>V2=ECN ':L>S5KK0 H^"?^ 8<D^!)HG:;T+1BT5 CB2N/]0 20G_?QX
MU2U-G4K\@HY6H.3#0U+>!/42B@/:7PF$$OEL:!.SMPB(DJ2D<YM#C1<:C4 <X
MTA\5G-=BB<"4/\A9-N7= 9D%-Q96W@*E_\G/I\TKUJ>LTP/VW+H(;S6ARE<VX
MG %![*':L6O?-P^M^8O^8U_R''C -L/K:4"QJL0<\EC!YM5YEJHDIB,'J(<DX
M*,VE\^P3R7Q$WCHBN9'!7ES42>T\[$*[($&SJ,OR%!0!$$DD+"4L6P5@3S3,X
M+?[KJ2'""_0(.BCD6=-B#4$]BM_GGOY.GJJ@3J+:,_UN I"ZC)-H\<_*0F20X
M3A&%1P/92G5.&?TO]=RSS!P*(-X0ZC ?8JXX):K!:-^&[9#@XT1>WQ%$YJITX
MRXN%*:WS!TB^YM/="WT&$_,@L8Q3WQBXD;;+TF;@-<N:!'HJ08-7XIW3B_K!X
M#@7('G)#(WD9S,O 9C%\O%82J+;[\;#OM56V/ &M;Z.E[Z/FB"9")7F]4])1X
M2]B_8I$*<D3A0Y^,3C!XD!*K.7ULD5Z=OYL]#1&U2M$>HM7!T1^00N\GFL1 X
MAW@Y"[.9Q0<W@XA(EW>)CVPA[QW;P@)FK,B$6V<4<R^#(O=PGL->ZU/F[M _X
M<0!L@RY_APK8HQ_J:2*RDC^DTW5OF!-<("K I6FIFS(@?AWW") '>8':'1?1X
M6BKU3@^E*^/ZB4U2I "ZBQQA]KW:M- J'LQG1A;2<MD4[D*CXH @8TE!A%IGX
M;KNQJ9<@\B@N"0UHW$,X5X7[P5KF(I\XK"@T0LID*:!WYD<0 MTF@;K0M3FVX
MK-=6<9*5>5 Q66Y*2& *2'X%#ZAU((**.7%%$[[5AF:N9(&@TKA7#ZDF4A@LX
MT9#O87QAH4#8HS::[8R5WYP?(UTM=O%Q>DK7@)<^3-XG'8G]$1?DZW)V454;X
M'VYAL/J\SL7PK+R+;AEM-!J@I9<6'#-QB'AF'E#:$C!FGM&?5/NK1CD4ZP&BX
MHS&G(<\8"(BB<CF#%Y/=C&3G*+43X',O@JM4Z?#F>R5RH]HEWK2ZQ^R]K&O9X
M_;.#J>"TU<5XO>OB" !X($,@*7HQG@7]WB^8"$:HA(E&/$UY\N)D57%-0-LDX
M3.R$U**M$7!5[HAUX5G0.@K-'W=!#]<O]_$K5?EBR$@L12[GE2:?.\)*9@OJX
MWY?:V'7\ 1TXBJ;$\P8<)]&'%XP]O#; ;8;3PYI4;G9!NBI$4F:1<=D[Q\5RX
ME)9A.*';F"#7IM9SPE%]'GB?.M^I.$T'#MR''XQ')0OH:QM+PV^4/K\#&UUKX
M?FP7F+S"<^&=!/O:[H*86E"511"]5$(R59&U/YKU27 3N/+(K6B7G4LE#I4]X
M5G3O9R/"XY)BFQJVLP&.WA!<[2A9@XZA^#E4;]M8Y(=(25A, E,9(3'QN3L&X
M^[^:&2GNB0QS ET<VM]QA*'.[=S&4XY0% E,\B,B-D'#F<AY/8I]8 /,E=AOX
MBNL;7X'.EQE,V242$AIWTDZWI[(796?Q'7-%H=8MB,P'_H8KPHH([^] @Z3SX
M9ZVE97HVVI&?YU7'6"U>OOR03->^8<6)N^G5'%FPW"J:./V@=SR9<V]_FY_HX
M.RZ5?LB,>/WZ-#P\+NS7%[)?W?\#M_PM^K-\NO8N/%]*&QQZ$"*^ZLJ+2*#!X
M !$GY=*Z>NB!<+(E6I8Q\, I#'?-\(]W O,;Y\%:KI.*ZWT:&6+W+>]HY.^SX
MREPWHNR(DS2N$TVH7>!ZG 2NF!B*-9BVFYRK!&N9MKF@^U3?K$1[5-U_*ZI3X
M=L&H\M>P*M=8]0EU;?P/[E@6X:'="_' G2@Z+G0NOR/@Y69=9T_'#6EC>GN9X
M+L^7'0H\89L<2O\!2_JQ-%IWKV/Z?<R:8;J>V:%-U 7<W>RO:=(>DQ>?/>*=X
M]*::OZ4E&4@O7#3A/<[SDNCU!;<=AU,XD=^HA ,X+_BK[X3P"M/*_Z=:S7CZX
M>5K5S1PS_2K<XY<SUV$HTVMRXVIYW#%M77C:LCB>71GIE]%$>2O,N4ZBAR25X
MY)"NY,.MN..ZF?W; >8'VJXY+N 5M3NB9: -+)9C'V#BX,E"]T6:EOWJY756X
M(EE@AOO5;!;&Y[_-##%*:>80VAU:3U7#@_5+B?WX/M&?BN#J[LW.:$D\*C\7X
MY2XFY3J^7@WZ<$04(T^PY?L1Q^08;( +W*QF.#D%SD#]V[ZI43337UH1U7X1X
M&4<IL05-T4LEM$.'@_.%)H?7,%1)0(<V[C13[GN']=1!"<K6^2M%_H K +7HX
MZ;4C.4(0J)\@5M=)_%CW>'4>18F=#L((!TH99P1N<><O$=V^$C<1"7CC(XB=X
MQ]O0EP_P5=^F=LQ/L_*C@H\-!99 ^N] @VOD\.\#+;-;"3DW"X'_<K18AB:8X
M(WJ"L@/G17;#K-A*IDAQ2:"F7T90;FSU W3DNPX]U+N^)4% =!)W90 I\'@$X
M&2'R78)>4)+J+*^6O^^5/I?KIMU3T7XLOSQ:6Z24G7'ZU4,^Z7EDW-J-<U5=X
M.OW3@1<,%0_M$^=$P&HC&?D+EM\6$/I*OG<(WJR>$&;#/H2J>;O\)B>1!2;VX
M7Y ESOIB?*H.X>S*Z\?7;>.[&M3@0TUP[81#5"DKNG^L*S9Q!5,<IK'MW+*UX
M_RO8'3%>Y3;5S1 URK8U(/C$?=NPP)K=UP=H#=\[32 K'7X()[0-1X$0QCW<X
M<KL:_LHT50W-L$%]C<-> 4>9_->\_MWN@?JN8"%]D+G/TKEYI&J&/:4$YD4/X
MK N/P)'0LYA+[H4)H(VM"K37]KUZ.S4G1/EU)*G>_R1!@ZA-=5,U./NL^@7*X
MMJZ\&;"V]-ZTERZ9^F&YUL2Q6!_O1S67C\SKOHHI3JB)]OO>!GCP9B.(^QW,X
M=8A2=FD\A(6P$G&N,#'=%(I#A8#,G>1[FTRT>%V]BI-Y7=DLWN#X":H>P4F"X
MF4&$YRU*.9*=O77/]<JHLSMQ.NY4/8/.9?E*:XKIH(>MZ:<$A)33X%O):&_[X
M%/[A9:;LG!,FD),WD?\]\LSU ^VW@[2]XAEG>SO"!E%NDYH21S?I6K%K7H;UX
M*3?0W.LGAA1U+3N[W7I)!.\/^[#.9LD!6Z=#\FJ>>]F[Q&IVH /849H;/XS]X
M2L@R:'[BS<H.O166/S9BHH1?BB"EDT"?])J)DHR1.D55_GV9HX883,&X-J^_X
M!(FOGHKR0.$=CB&_[,14(Q$GRP8!E%?02SUIIAF=:169=2\'S,W_'0O]0(NDX
MT-K];,,STJG8P@;H?V;6,:PY<'PL[AMKQK/]<BO%:N:.S* !-:TTQW/X?I9%X
M>U_T]; W[OY3?W5D98IMJ>!\)KP.:OVA/K<.9^(L9&T5U6TW&TM'@O/_P>J9X
M95TO<SVH]9-^EG_Q=9E-69]98UE5Z9%*%8U7]*Q*.'M.1TOYKWX0LHD?WQ15X
M("J[FW: &\:+8:)^=K]?\%5)!E[I0B1;'W489$^1LEO0CI>3'R]!V7L&WN,/X
M $L:RGPOW)BJ=D=MG65]9D^*W66AAY9J29],A(@@H7^'N&+N)FF!8G-_EITDX
M<OS*J4<N5+6<JF#JNYYN2^P#2\"6/FI8%DI_E93S2+2[M>Q\X]-X#GM+1W/JX
MF4&NI0!Z2?EU/ ;5-LP3U9X1)TGZ^+QSZ4"5S/>,3F@2].69LOV*-+,XI)VZX
M&WU^@"CX3+Y]XN0?//[HRA["KDX_\ MNF\[LFIA5_*=EF8VY$+/&QDZ&^AJFX
MDQO4/=N$KDL9O)/DX@<-*YVD]+;Q9RJG[?PWG;O'Z3O(&YVJC:W")<A=W,6FX
M/YEW5L'&VW=' Q[2:C5,S:*,T;KV]"*476NI;"_?IY79%SJ:V,T@YLD(<J-GX
M'.U!]\,??2Z+?8KSJQ=R7]Z162-$4<*C_$OP"DOKUH[8WGY:/@2+E>SI4T]<X
MWLFU==B)(I^D]+W4_2*F2<7W_7O2"EPWB9/.AO8:HA1BW.5=1(;^68^J^UBNX
MM,KT$X697[V5M:']9:,>:9F-"!>Z%WN-LANMOL)09RFE%EB*>JSK TI8Q3V!X
M+PQSJ!$M,]Z  _MCO;)LHX6,KP):)W.I<MJ.W#$D4&<6$\3Q<X0*&]?T T=UX
M2;E^YUB^(M2SKNA=S"XWO)3N35W#.K;B^1HA8..[)K9?:KZ)94>=<O.W]91_X
M2W0CPBXU1Y.O'P.7X^LR79<%V=# /5>];19S",3M&)Z@80<L>Y&Z(7M&I.U"X
MJW,N[=,O+"59RWC5U277$ )%9\4:XD;;R?\LKTA(E\JWLXF5/@Y/N]7C:M@!X
M.*V5GK^3W]97T><ZB:I'J.7<F*1J#6HO2XG; C/W C?^Q7I>L"N5ZL6"/_%TX
M8<'?'(%@[#"$6K>=XSKN").YP0-5;Z8P)@A;= ;$1E:I;#^MFZ0>M@;H4N.TX
ME>H4O]2 1*P%#'';ML7;W.<(TZ1RTVOCZ0V[T1.W?!5 V[C(7;7R_$>N]O/%X
M("M(KA#;WO$QA(ZJ'X7P*K4+=+^A]N5JH'<]=<9/V :Q'<M$8&>2#YN,LZK X
M]WC<G/TN4GEUC/ DO%N]9[4U*7=,"<,:I$4BU,FB*1[*ER<,E5N8J28.8<4EX
M]C@DH?,DE]-)<8TE.WTNE>0K2O0I)!UC8?E"'Q*RK62EYCF#Z.A27\>7!I=WX
M#56!5LLO.R>L'IRJ)B002GW=?0K-U.1VRP699U8?C@3A_Z-&M;X,)N1.9&QVX
MDL-VH7HNVKRNT=6&-\3A#&4=%!4G&M<6.8R4'ZYRCNWZ=STHR$/I MQMC>6$X
MW >@>G"(ZRM_J_T%8WC?=V"MBYQ$FNW-"V1>2/;7'#*E0&<K_>3)X)7%M4AHX
M8[%'L<=<?]  \@;8XZW\<80WL=<%AL=:PYE2]_]C'E+= S+,KDN_(2Z26V%FX
MKPIZ(,R1,EHD4^J0%*22FD@JD_RH"+@'X-9??UP^( [5P$0!'ZP?48"J"J<-X
ME^,:W7 _Q/ &S0Y][_5*%Y0D^4O1;Y81_!NF99B$!?VIINB?PCQ[??#5SI3;X
M?OY.P4Q &.TLZU5@UK%/&['$QJX,\CC)/L=D3A",[B.'_T@<3OG%",<@BV][X
MTF*[C)%.%]_?%?M@3[KZ(*+IJ&ATAO@W/-EXA3U)'2UP/SH13Z41AQQF-QJ@X
MT7>26/I!8D#9#PB, UM#);^6*,4I% L!;J<LSIA0,."_>O_4'BY_?]8EA?>8X
M<J7T_.((#\%)E)EXT,WW)9MU?\K("?!0P?O5[(ER>]Y" %]S&P$CLL#V;<4/X
MXX8?OP70N3\(&6K[^\W+"3*#\2U#!PP]_!T.D8H4&[C:6*]?[7Y:.42=^\IHX
M?^MXIE\HSRH=](ICHR^(+U7%R 3R(!=A;S$QIZH7,"."/UD$0F@1,3"&*;H$X
M-0/H""CR?:>L<'?59>2 C /[I0[CXT4@8N$?@*WJ-^YBS-@:=#,SL'RGY09:X
M_OWV"@HSG!#\P;92&;,D+$R?AUI4*WO65"4JAZ>G_2P8?7Y=/ +7_P37@MIWX
M9!+SG!_0$&$OU^+T_;2NH[H659T81S@=)F"C1/XX%IMJB]_/^=?!)H<854GVX
MO0\AM6_>#^;5J^!=9K@: 8\?7=!/GF>&^'Y["KI(--+Z\#F9ZTF+TCR9\S5&X
M> (1S*+<)KMR!4=\^40RTF)?UMU(Z!RV#Q(B*&]A=X'J#?9ZG(:[-G^K0-D8X
M5'6RWAZD=[Y^U59Z.^*N%I8H'C8T-B$KV,4&!+KM*Z6P'&8:]4_&C)]&S'MXX
M;(4EK9W PHK%W;QSWKJG[HY<.67"^NW2"#>6Z/7W(994%7.$'9NC5#+V%&F*X
MGZ^&@O(OD#.G-SLZFY[IK;,J-8,<*,+T@#N.]!%)+N$U!UD@#^EC[J+8RP/6X
MVX?4]KB1A8E#-FY_XK/5=+ 2N=%$W!GL]WQF0(DJE0"["C"]\F$)^@BT>"'JX
MUF[&Y-*??[:8]"]B.1\09(8<!!3KL5H:-6X]JH<5UK>&(3F^;6K"LX5F.W)#X
M/B'CN\&TR#8W&#10HO"&I+HZW/I;';M/NE9C I?RWY]2._K.7U?,61=38OCXX
MAZK>Q VC:[-V*F#=KF@9*NR5(G%9?:S?L,9\]^T6ROV+S:T/;Y@4B%+] =OVX
MAY92#/O^+I=X\"BG(@(BJTZ7#]9V%QW;ZBQ"JY .+<4D6^9.R>-\6LK!.AZHX
MY2<VF]QC+2H7D:>,&9S]-/_H6!VK;@^5^=817 +OFJ0Z^QF><1#+4YA+,;MLX
MP^C[0&-6POZ<T-&!@_TSYBL70UU?$/NNY9K+^X$2^(UF5#J##.^T/G)2JCZ,X
M.N8*8??3IWH 9J( O-87,Y#IYK0'S1(Z_D[0B#U#Y7.W&6-R/S"!G([%O)/EX
M]BI_Q5IW2@96,&7*&HY<)<RF:V]LE&%W\'LLKK./8(4_?C-2(U<\)WV!",.JX
MQ .R\S-7/6MLM80NK;18[P/_?35\T\U<1M?EVONQY)/_ES^+?#[,6+_C;<)+X
M.@*,G&V_A&KK74R+(.1;UVY!9.X6]?6_8/_ [*%!!;O@O3;1X]E'#$:_@IY.X
MW2G.#Q\%CI4KDL#&/IRO4S2+Z77/+-V8]N;"#@*C^NB5^H',*9.5 ##<-(HMX
M516MPIE&T^.LQ"V*Z_/W3H#*2^2BH,05I$QE;J!:ZM.P+<H!=@RYKR.6 G,+X
M)GV%JX8[->"PA&YX1S^R_OL+-0H:)MK1+4/> H_]>*EXJUC!E!8:)_XQF3B-X
MR</W2<=/_VFV[%VG!F6^=3DYQLG)TG,*DO=)\-DL^)>Z$ /_-*P (NJ2J7-BX
MG39$R6Y4)([,=12^:4>W.ZIPYOF=_EW[-SL/_S"]F6JK_@=3%V>>FG;.[;-)X
MV"2!0[C.@-6KEZ]E(9.7P^5"U2- P/F&]3\+??@LVV _(QU" IL"&L5BUUJUX
MH.A5^0OQ_CW3'CV(S;'(5OSVQT8]A)\UT<0R:]*_5.K,"1+4,/1!%_$LAUL5X
M0((;KH"770YWA T1=<L.RT/;1G#)<-/7W*B)E[_A+D/(^U AIP>S=&=Q)_^^X
MT9.MZ0H2P%]:ACD88 S<MWY\%V%/$BD<O=!O&6IO9>/3V'Z45MRE],T8-\_;X
M^Q3D#2DEO%I+F?WVD/'QIL/IWPC?UG@; 6L=OM/_#7^ZYPLC\<">*/]DZ'Q_X
MT"NNC<QE(9SKZ[,P_:EI4O7OA4P:@8CZ_3-]\<7#DP>^-_-?_?<R)#KP1T8;X
M< G[/J3V0D']@R5*SFC=?%\ 0(5_U1S@GV=Q8"]M.\RZILS&2;Y 26YEWQ.NX
MLWW.UT:+:J=-B;JLG4-HFDSU?]932^0V/D5M2E_FN5AU;KUZLZAW_D,I1</*X
MW?0S7Z_5B_$5CE_9=^QYR$#J_O5!S5*^.-,_!QKK"[K%^IWQA"/NKYR'P P+X
M/CW@>W=2O@?QH8D'^!$5!%_ZLC6_'TE:_J#XTAOAC^1886I[*$1.X6<B0<0LX
M+[,6(A+C;P5FE5$(51]=1$Y\8*A>(2=,QJ<6#Y '1@8V7S7SD8>(M (R=V2PX
M'#0MR?P.IW&(>/\=RIN!'%6,SNK.Z10%;LF9G1VZS&AL@YL8PI68V\9D#7%2X
MX'Z([&IIRC.)XGV5*9;G@K"#&0V6&DY=^M*1\PB2K2UFA?$8(Y\25(4XD&[8X
MG9=_R-MVK.+5[\&<<\BK]&XK?4%LZ+Q*\\17_)B^!MZ=S!)(IN2XYF47MT6"X
M\&%2A6B6>\W4!G^4&+:A"[.576J4!FYD5\Q3*>$0KY\"GH^?\ZQ1[1!"R;FIX
M6J52PD\%P)$0:A34%C;_6$ M(U@=)G]?GW =%H#C&KS!J7?[GY-D1PICRE&=X
MC_?^O3:+V/R8@CM3K,Q1,5TOAH8!/-V'/ISOI.XUQEXVLBS4NJV/Q8T-S5,$X
M38:V/35X43L1ZA2G:L:UK_/2F:GCMO=1%X0HS+B4:3;>+5B]8ADJ)Q:MEJMBX
M'>>"=4]MUX"3>ZH?W9_4U2GI#V3SN+/+-\N+]?ZA@JB"R[%9+#Y]TCY:0T*/X
M[WJ2:'&?]+*FFI91$,D3:;%&3(2!CW!?PNIU_KVHNY+"EW+SM(YUBD=Y^GYZX
MS_&-\-GC>GH$D:B2S2VR7%I6SL#6Z[^!J]4H<B*[Z[-S^*]1BB9+2[@Z6K1;X
M[LIGP4@/0X6Y,-1Y74\2NDQ4&%S]':$CW?'B&E?:''J&Y?=2LF?0Q*N"5<*@X
MGL?/,SPMY_7 E[YTTUDJ_"%3"\0;!*=,/9",9OYK+1LZY%%+<)E?N>%_B%(BX
MV7^WCT+S3'&F 9?^%D+AG-!9 ,!U*3K\&#M-@V#GS#*]JK/ SJFX\G([\3E#X
MM,_1R34VL9.+/0H+7K<^0%VG<1I= '8_\R#YU=D_AZ84[FCU<!^D_0US!^%#X
MU.VS:Q2/]BUF&7P,C1]TD6X%J#N$FYO7.<VD=35]$NU^C-D=WMUQ\^^Z>"3ZX
MPM-=]&SL8]<Q'V=CONA01960K::G[HAJ6-/SO=X"0_:'01@"H/,^X;- I<>HX
MHQ_&[P9Z3I )%) 6(SC94+NU_K:LR\5<H^%"+D-2\G)_5_SO"ZG'S$KQL.$5X
M#S4++-'!6C4$Q3Q1/L '7^3 'S$"Q//R'ZA)-5ERSW<$6X@Y]ZHZI ?8@MTMX
MF)'!(DEOLJRMXB/>C3M2F,A"F4:O?7L):(P+$%[)%(Y6)JC'L,WZ[.M0^CG7X
M=XL*]5O%>GH%Y4=#5KMJXI!ZQ=O6174D')$K9A1>X"ANR<X=</'P7G;8U2ZTX
MU:LSHJ:G$)2<];3/[TS)/M\'(%-2E <O7;2U1J**[.O-4>:$F3+W>5B* 2A)X
M^T&'^&:134SP6IZ:<3LW0-,F]]VHDF]UA-O]?%G3I-1$YM:'F]3H\[.7_93SX
M3^T]RNWD^?XB'08;#KC=UUX7[R2H& ]>6!UC0"OB@@[SN99E[_J-# ,0?;J.X
M[*P">E)M?SZ2S;\OX;FA<,H>W4FSS38C%F=^3?,!.<1^4KT)19I^00"_.$(KX
M._ESC^D0&&4QO>, I.-JA-E8^?S]\[E[Z36:^%CX24(6V'O[C5CXLAI\X&((X
MJ8K@;H&7I_\^L1]W_$)PWZR )DE8XH75Z^-P9M67?$3\,3>*=PXX_KP,]IFHX
MD&4S?'"P ?&-;BOB<YS"(#@I)UNK0NIZ_H'[^,/"8_,<Q&$[ <0C /@FV <&X
M4]].BU_*D/%FY2U59]8,O9E7_$5_XZP=[-]F.<IM#2V3SQ5SIL\"=)T8=G8MX
M1]_ 5:MAQS[1' B-?K<DBB.!,#!Q#$9 SP//39H;@^H$>LS:U>)I'VZA'.>:X
MY;X;<VECT5U%!4T1?P;<9(XE*BC.?T":#_;:RC75JJM <'B>^K(&UX/?*F )X
M)8QO,FYIY=4-PM^Q59:NKS!JG!UK%=P9?-OQ-(:M^BXW6UB&LWZ\^&%2U<D1X
M9,W;M<+&4;+=DMX=N0?!"_?S>I'V5>DSD"IJ$[D/??-+=SM&1OY6=P;S[JC;X
MELT[WT;V5"/QV*L&AR^W:=,*#S32@3#$+-'IBLH?]ZQUQ'>^^%>,KAJ@3*PNX
M7&^>^H[<\",K#!7P9(7\!ZD(38_:CEO-"BCJ\90;]&)"I'MR.<7X?LCZ))BBX
M>J47D->%7-  #-#7WB9JG'TP41#+3]&B%\FIB!*:M@+":O)PD8V3N!^2:JCHX
MHDV$-%)^^]P!?M$@!$EOB@8RP Y@W'L(D@SW@]EX8 (V<$J\!\#*'""N9QR3X
M1EWALPKF>B:GNSK@\3EYL64)27?9M^*.>&K=0II,&[U3NS0[8GI2X_8E)H!_X
M'D/>]< NX5&C<P4X]=!."$X!18G&74@L42UL:#$ME!$  -@=  ".@R,9   6X
M9FEF;VQI8EQL7&9I9F\M:&%N9&QE<NM<QF+CW_#'@#'2 'QN&[(NT8!])=!MX
MUC07U'/E\K< M@(Y#8=O=Y2GIWG(II^?@UE@"RRRXD3 7-.(9W)O;1UU1;COX
MM'5CXW6B_*JW4C_)7V/>X4/,YQ(Y4>KA O%=.$:U#GU%D451'<[&W\3"]VF0X
M,*.3ST;_"Z+\Q"O(=41D'!$>'YJ:2FP!/.&QF((BM_RU1F6\P9[7KH'%XXGDX
MHXPO4YQ0O4$&-2ZS,CBT(T.*D+FV^@7IP%NODB9T#WXE7(W_T5%1OY,B!Y_#X
MZH;LEA?#-^]@4;,EG:H#*=T';SZNH\]6Q>R6WW^Z+F%:B.QX^7-U4@'P?V&WX
M?//+SU",>[1]J6XB;#L(=R01Y1#PJ^G:\*GJG" S1II0;-K5+).-$6"7\_#2X
M!\.5;#:XT[WKD'ROS$3L:= T>> T!W@VYL2<$[PM. S)T^=,'<K7ZVBO?^5)X
M' ]/1/T0JD)O4Z4.?>J9\_%3^8=9+:IN[&8 5-V1.:#\@PU6J601R,F>L>+PX
M5<Y@VH *;O9%3M:W;T >:7!)3;CS"^@3E%V*RX:2-LB\],+F@/ZD X._%:0+X
M67BHAI./('V,A#1]PO6<BEG:*/V]9#$SC\KLZG;OO#U#M9UT[8-_$P&V^RRDX
M6I1\>!V)QW9;T!A6!:<?!96!='F:5@RD5W3@4E>LA4DUD)LDM"-7!7B&@BW?X
M6FUU:CE/SG1W4"S,\(?U3D.C 8]X(QEBE")</C$T-%SZIC!JD00:GQ?$98#YX
MA#/>_B.[^B_M_X@?K200;5 ?W!&6[\28@2\Z<U_=YW-F>\>P@%<8\H:'%LD(X
M[F>U8@3Q9 GB&=QC0%S\E[7D'6#\OH!YN0%;D0*ON_9!=4_^VA _,$ SY0&DX
M\,7T7R);'4R#+AUGB9.2?6B@5PS"@74#HE I:0'WA'Y5.L% N0WM5"): NH%X
MR_![D7I-02#YMP,=N0_[5 K:_[U OU^:H%[OQOUVJD'94[AS)RQ_J^'I'3](X
M4^EJJ=D&D[# 6:J7=F\\GS?X^OWG_R^F\.H=N+/*9\!I5V'.>6KPCI?4!(<2X
M\ZH+[] 64^J4+]KGJ?RR0#0'UZ-@_@(T FJ?.7V9P!N: UV4DN.;B6@JL?G2X
MBTKQ+>Y##LU;6ZMVUW6/8U:Z9:V=)#:4S]_E@8<D]*8+%0A94^5_#K,=PD3-X
M)OR3&7GWN59]8!<0:O!NT%*)D;^6LK^./B=DV"4269RX%C6$7P3)IZ ?G* 6X
M[@M6[729EX4Z'F5M5@C>3,CBWUC9O-H)_I!/>:Z\$I^S-*6Y)-B2J_ZQK2,RX
MK1.MBC5HJ;:2T!S$H#G+0ARI5UE_GMGDX.D4-GW'07F(CH/21__FQ>#K.R]EX
M!55H@6X\R7WRM,=,='OQV71PD6;'Z=*I[S8#+6GFYRB5)G!$Z E9AT>2#]NUX
MU^6Y(J=LWKST7(X+_[OG:+UW!=^RWI_YH@P-IVCW_.1K2WLMQSO<\T3#_]75X
M]9IOWHB?V!&OL'IVNLY:S>GYFEOR/F;:E-7$!#UP"[4PT(9.II_-R::[-9^-X
MZ?5R5<^DJDCQ 92'7"=%K\:\RFRDST!V^S07+O.,W=^_N,_XNY@SP3@,_07-X
MK"U5-I??8(%TDY0WLP<[T+9EWL$AL1[C;$87$>U#)GY'8G<Y&"X(+(G83XB>X
MGV&078.OZF>^+)$TXT<<GFP,%1N"S/=;&]QYODM7\PC,M/..C+;.WAW-C^YAX
M"=T*O*A9S-8=Z!W5>E-%=0>5(8T,T424TH_:"E"HN[7=T-H_-$2%4]M(7(%QX
M1&VZV>]@U\DC1YH1@/J-LT[(%^?0P_!IJ)Z<(9_;7OX<93PR\#\]21Y]":OAX
MD(3\W'V,_9YME:X<,K7)@URKUAC+\^':H7:LXHYW45[/U"+%G-(QU6>:%GNPX
MWBX&5'/%EUE&QN,A1S:E%]LR?<$S2G$6^'::7:#6>X0TVW<UBVE+M^GE*C5[X
M-R^LYK:<OAF4T=R(^YCI5XSCT?[^S?L[ +E]FW*0J$\9$%RVQ^K\U7'W!ONCX
MJSE9'PKA2!O4U!NQBX1=2L'ENX](PH8\<+#&\MB^X_ 9?,%5(]<V"DYO GBCX
MZ$N109>*%KTB]Q\<>G_Z'6HX1_H]R3;M)C_16K5%C+5^A/M4I\BU__N"$,\$X
MRB1B7,9HAA(&7Z*X9:TG/B]- =WE^C<4]-)]V_B?06U:PAJB4_BOZ(\?Y:&;X
M2T!VW)&:*)VG%636)5^#M](WO-^VT(^#T?OO&1_X0M/L4<9^^>?]2AT![?F&X
M&![0FMV\(B(U8#2%EYZ? =]3<I0J&7DX5>:@A^J<#E%_*1C(HA?0L%[GG^ENX
MJ>!;C<+4(Y.W5PZM&L'"U8>V]:MG;[B"GC0)H(;6SR XSP/(M\CRQY&3 C:/X
M:0@C2'"+TX[J\E1SIS%(.!1EJ0<]Q]ORO"UU0W!KHQ1NM=DF$"C^\<79T')VX
MM+>>OUU/O3:>_*_W):Q%TS/#>(K'LH^_O7GS"F(][O*T'IK.WWJY@WU7_68PX
M7>#*B1J2MV<<Q5[A,$-1.72L_CGI.NK%Y^YC["*[N*/PYN-<6^;.YH-=^ WTX
M4M!81;0*(R!\Y8/"=?0U$2$>ZSJ.'K*_9'-Q'7V"3FZM>0_AJJ9>#>PVA:4OX
MM&CP/G^="ROO(G*?Y4(=CB-<!V:'FDK6IEK:\B'VG(W5:+G<6-I,ICQ\N26KX
MT;;*NK]G(9X5'.CC/XUQ!<FH+[S04_BQ6"?(4?^^>MY$EWTL%_,X+U_B\0>1X
M-=Y/VO(2]KF,4O;@KICU'$<BVM=-Y5Y&%[GRQ-GC\V6_ <87(&_&_'_>'P34X
MSWD2;MJD@KXQ-NK!9,1X->%6KM)[I<TU.AK\0AJZ._*J&\\"SWJ+9F&>ZZ>#X
MF 50P%7Y$A6' 5_C:G'FE 9&&51<HV ^\Y>3_.,[RTIMKEO,[GY$M)[?Y;-GX
M83>B*.?UC.CQOP+[9O!HE?E)W3K,DE*=>LYK_'AGE1$7Q/"C]Z=?D,U>3EAFX
M21<T55\C,.J_1\=_E G&'_HI"R-5FW7,0KZ)M?L%.#.(YJ^Q/:33F%6;&:O#X
MT@U0WNW/>L/MWK/FJ49OMBWN-EJG%CD[.KCW@7XI](L"ES:G=YY&X<<NES:;X
MME/DC2"FM3,&-H,E<O=-38S1W4(T0&C+[HLM_.@%6SMO"3=JRGS;^\ YFOD[X
M>D!-/LI8N.[M_.+46/YIX%B]/I8VG/L$+4@:Y\5]VE8%'G)?VAY+CM_^*B_DX
M.]*3Y>RD_'^"SW8*=\%J;/+7MY:Y>V6IGB)+Z6:QBC$I_3/F".K*(5M.+.YFX
M=6C5W)WP=U&Q>S_\F.U<_%LQ<^<;$4^"0Y]LQ,UB/I06H]=I@T"T[41IC=XDX
M[L0+7)>>=[W0EB[UM:H\LOI\Y4N&&\=&L6UER)H%3#4CPU8CR<F#"6M!?$WZX
MR^S?PJTTR=@)]3A64N#0Y 2>K7F;\&J 'Z&LQ0=KC7NX-&?74-.<P*.&G'LAX
MA3#S"U^[:S/:@)_@&)ERTMR$3SHW&]"34:"?;[_/0:XZOI:K/]N?1!8_0:-9X
M"/-CR!RBH!7+4#U?#  F53PI57W_-=U= <=TGN#?%@5ZU][JN+_QB@1X^Z6\X
M_ED",]D* /@P/^[NB*<I$\P-S  J[;1*SL5!_.7TJ+/Y/UBZG\U ,N-O?!-SX
M)'BX!?Y:,YI/K_7_UT!W3[0ZK11ON2%%%]BM)(G=\5DF?*\\J&#_G*DDJ_T\X
M1+^=I;D. F*7'_M KR6%SA('>RGOP71<G"QLPIW<_CKI^Z="]0D"A"HW#VZXX
M1H"@H\],+79FJI__#A#LA!_.JQU?FH&&>6^SB@$2EC SWLM'\_[;SVDL^$@WX
M0<H)ZB[=H?HB'>@*[/(QS\A1^F_E)M1XZ^VL411?K!C+G;/KRZZLNAMRE:!YX
M*?(=[4X_K9\_N5?V/X[,D/EICE_67*&RTAGR( ^%2J]EXL^<*7FTV&$AU]'#X
MZ;!".,4SY)*MLP3#8N1BQYMCI>Y DUPU:D>=5.[@C<B7C@@_S+TEV\EM,ZO3X
MEYHXVUN'Q$#%20-3T(%6BK7X)16'U_U6^KV)\S/'A[%V!#6 0BI$8C]SS&$TX
M6[DB0H-D!A$GC,8&;Q0)*\;A\UL/CS]L2TU;+,3-F*/>W_HK!NQ$P0;HM%UKX
MC]S(;HV4R&WQH)0=:^Q[CN F8VDBV_-;D@>V4 1E1]I]*EI:-,E0@3N23H)6X
M1GZ4?J#[<@(-ZP1ILO^Z(%XN_^\8DI':$<+_*BMN*I(+F$4 JO<]7M[7K-5(X
MU*B04B;3Z*]!!*WN6! MUQY;2*Z=B&"I?;%1'J-.A1#.[+H9F-[/A9GZ[6&UX
M.[B:P#^_^6)[D]_7QIF)6O%RU"WMN)039JUB"=\H1+J2A/N@%C&DT0VK.2MCX
M_WA]WR'?W>'>_Z!/@@M[2"26KNUO[DFYAA;BZ6+^OOQ;P&-I0MW,!O+6\5!:X
MRP_F>-:]O'YU[FR!6TQTABY56-;@ZZ#$(G'K(%+\^.D^)?:V3X?^Y!D*\DN2X
MQL2TX@O#Y?L!GQ.P^[7 ^:@K-5()6Q>*F$^5]WP?#W=ZQAR#U%=^^<E,T4[]X
M4?IZKL?%$?K5BB-,/((:]6MT<VMTZ/>=LW29J=21IC_\OGWD3YXAY=2D.G4VX
MI2"6AX(@]3PZLET<I$(@ZC\]^;4JJ582?)LL_#7Z^<K]3;S>OE$MDCOH=XG3X
MU/7M;$2<Y&QE!0=J:#W.AU&D'_$V\\H8QMTY)<B*SLOUUI=04.X'0>K!3@?&X
M&1+F3?@F$+&W1^I ?S;K^QW_R8YKI"O5^[8^MK0FG#X";<VH3M_ 3V_<@)[.X
M@038[L)XNR-6M>/;"GX_9(1\$(N3ET:)Q3.#R#].",_@/%+:@^D1 >K>_!'YX
MX$<@/[]-!]-H!\>@I@?2Y_;0/B5*@_X;,#[1HAGKOH]XOTON%^V#PG[X_0;-X
M'X(]X?L"LC]@O7P'F_?4%^.V;@ ]B X>0&/D!\\QUQ(#6A :^>=R)FH(#&S(X
M>';A<WX)_BWZGB*9]4\H ^ L3KZ%*!<$ #H/BW ,MI>J+8^R9S  =&G0>Z5UX
MH+Y[H:'&YEUTIW#WXSVT_39%M9^)\'HV>9N,3V:'\D)2F>T9-L#S*:XJ0:(2X
M4%=&(]?=_*MRK7]+]J4]!7J*T_3 ]_Y23;Y_' JSU!^$0W_2)]]0-"/:F6V_X
MAGF.TOZU73<QW\L9D>G5V#B"G_%G_WH3(I(^V$K,F=\D!(9X+N ?PQ]!!RO%X
MUIB+;>@8  C#^H?OOL]UFMU$$S0:J+_U=N8RPPE);EU5&RL'=TZ-SU"H1P7@X
MC  "F%N);NE(S7&N<0>=JB\_(7/JLM0>SLIMY'+8U--_$KENS$E_R,^ ]#^(X
M_,<_HG*B+Q!\_3R7I<DGW *N<28#R/5PX,-)E _F3&AYIH/ELPAMNS,'_9VZX
M36=5&&'+L]Z@#\OVQ=N '^- #Z5@!Y ?6=G)_Y,OO3)#273/[++\%;)<">;VX
MZ1-;<=B2/B 0G1F:J#_LA//YA+C><+<6-E'7F@G./P)IK4B^,#:QE>U4'(PVX
M,KR!23_-@GM@U'D3S.X3]3XO3F8$ZX2)]V^ZA6\S^X3<V%4V0^0D)SOH[YLZX
MTU@YBZKW?L?[IN-L-:70\!_*:$:+R%>J=/2#NI&-A.9O2#W)YZ$O$ZM23Q&?X
M=(1T _5??,[#3=NY^?WD!_"VR$_]).7T+@##[8_HD[&0BGZ#YMK_ \1WP7>YX
M&L!XV&8^4**WVH?ACY@G;.4R^V09-?SEV4#\'\#_9K2Y(?16-+ET@>7OYA_VX
M!XZF%W\S_:89>C"S*9BE-YW@!\HOI110 1#=J(GUTBKFT+$LG\MANNK>7W8HX
M X6T97;36P]_-()OHGT:LSQ,;_Z(MCC-R^W9J_KA[>SX D=B->RU2=T:HX+=X
M01E78B+"4+'QF"6DKN8[%X@!.8I_O[WH<[Y&\7"Z3>%RJFF#GL;C(</BIA)DX
MXAJC# \O7I%0EY4<5KG%OO.CAOZ-U35#H+,GU"[Q;^H[:<$@)\?AN&Q>=O7 X
M)_!9""S?=-:N4AP.7 6;=#PO;0C;/L6V'%DM;&@Q+;H#  !"!@  () C&0  X
M!G)E861M91I[[/M_0+K/Y_OW\[_$_/_P;RY]_C: ;FUMWWRC R 4='0^OXKJX
MN'LY]%G7RZU,Z5[IUV=A4Q16DJA*E57S8\M9#L"@^$M[?OCF68Z$6OM?=;QLX
MP/<^D5%7</J1OP4".2,!A4&T7JQB8U)D]<*&'I1<T]M!V5M8P<6-"[>PZ>#'X
M34PQ<C9(Y\R-J"WA4N?W"/"-W D$;HV?ZJV=OX;P(X2*OO1%#,AI2_O/YXX%X
M-#^D=[0M>.5Q)%#[[*0+J=/H[ZVE,@!,FS"&XO.5E*CG:07U@ZW?[>@A!=&2X
M;,4YH._PT2!G@P_0CR[CI%>'[@A>8!K+K(/!5AIY=C'6_"B"Q!2XX8T%E2ZRX
MB[,?U[L)N>^[Y@=6#PI,SW[TWY-AS6^)^9K>N,%#(QK\1W0&%];_/_2!_ZS'X
M85JY^ECYR>QL^(Z)U9[Y\CX@BW=SY.Q [,-J>L]GUF ;?FF^[5A[NK&7 8X6X
M9/V\M3QRI.^3W334MF')(!:6=*5LT<8LIH:01IVV:BKDW,9?.5]:S8>O2GJSX
MD%WLN6"+EJ9MFK=45YW)1M;*]I&GU=Y!9%V&ZCII'_13=M.5Z@KGU:0O6@L_X
ME%10@D!0G )B6FP/S6*4O][=>"I;A' JG!^OG*C\Z5W\>^963@:$R7?;5ML>X
M4=L*L@*RT\&(AM2ZK>L=BU!^@A'FC!B1&]U5KH=+WSH<E#U<194HV,B4S1J"X
M<A]GBIN:6+P(@W,>&B8 [$@9*O815FG%*+\7_GDP!: ,7M'P_='0,:%+B9GAX
M4M'BP\0G(C%#SVX"QT1".1"%2*:^*3@>9\I&H4Q'J@WK5[/V8OBF0IU@WZI,X
MZ(33*WA$<]>Q&O#4L#FED6#!/0(%$4R-TD0%$GZ]84IY50P:'/<-IIE*\/A)X
MO!+/!(Y#A=,.SC^Z\,LPSJ0?XM)+GA'H$18+T3H-S@HKXU.?[W3E0K2(PTB%X
M6DLC)!:*C!9N@DX_]@P6[_H=GX^J@;1)N+,9.4 HZ_\[?Z!%0ZS8:[AXT=H2X
MK *3$)CWFCD:_HJ%HD]#.0V'SSK.!NPI8ELHIJ"KA,H 3[^3![JK2H]SVZZ>X
M78,#'</MXQV'^[!5. :17XL-RV[;%$2GKH!L /@*"LG%-X (/B9%1B5%A83VX
M!X.,-%.@ZHQ6B'_*(N3%+1]]]TAHK5#[=H[4C/R^8DY]CTTD4_CAM5EF'<NJX
MX"6F/QZ!!F2RJH #37UG[5CONX)D+\--<SX-JO@6Y)YSR'%0I!^#_XX36Z/(X
3PP?$AFRU:@!85)ZT:E@QA&>  ()DX
 X
end