From: David McClain

Subject: Re: Serial ports and ACLWIN 3

Date: 1998-10-20 10:49

Enclosed is some code I developed about a year ago for just that purpose. It
has been recently extended to handle binary streams as well as ASCII
character streams through the serial ports. The code is in two parts... The
first is C Source code for a small DLL. The second part is the CLisp FFI
interface code. It is small enough that it should be readily comprehensible
to anyone. Let me know if this helps out.

Note: This code was intended to run under Win/NT 4.0 but I have also used it
successfully under Win/95.

David McClain
Sr. Scientist
Raytheon Missile Systems Co.
Tucson, AZ  USA


-----Original Message-----
From: Stuart Watt <open.ac.uk at S.N.K.Watt>
To: allegro-cl <cs.berkeley.edu at allegro-cl>
Date: Tuesday, October 20, 1998 3:44 AM
Subject: Serial ports and ACLWIN 3


>Maybe somebody can help... > >I'm trying to talk to a PC's serial (COM) port from ACLWIN 3. Has anybody >managed to achieve this that you know of? And if so, I'd really like to >know how... > >Basically, I need to drive a video camera which talks a special serial >protocol, and plugs into one of the PC's COM ports. I can do this from a >Mac almost trivially, but I'd far rather use ACLWIN if I can, because I've >got a bunch of other stuff I'd like to attach to it. > >Regards, Stuart > >========================================== >Stuart Watt >Lecturer in Knowledge Media and Psychology >Open University, Walton Hall, Milton Keynes. MK7 6AA. UK. >WWW: http://suilven.open.ac.uk/stuart/ >Tel: +44 1908 654513; Fax: +44 1908 653169 > >
begin 666 commports.lsp <4&%C:V%G92!#3TU-4$]25%,-"CL[#0H[.R!'96YE<F%L('!U<G!O<V4@ at M.SL> <,3(O.3<- at M:6YT97)F86-E('1O($-/32!0;W)T<PT*.SL-"CL[($1-+TA-4T,> M"CL[("TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM <(D-/34U03U)44R(-"B at M+2TM+2TM+2TM+2TM+2T-"@T**&1E9G!A8VMA9V4> @ <(D-/34U/3BU,25-0(B at M*#IU<V4> <(D,M5%E015,B*0T*(" at B04Q,14#R(> H M.FYI8VMN86UE<R B4TE/(BD-"B @*#IE>'!O<G0-"B @("(\0T]-35!/4E0^ <T*(" at M(> @(E!/4E0M3U!%3B(-"B <T*(" at @(")03U)4+4-,3U-%(> @(E!/4E0M M4D5!1"(-"B <(" at @(")03U)4+5)%040M54Y424PB#0H> B4$]25"U214%$+4)9 <T*(" at M5$53(> <(" at @(E!/4E0M1%)!24XM24Y0550B#0H> B4$]25"U74DE412(- M"B <T*(" at @(")03U)4+5"51%+4)95$53(> <(" at @(E!/4E0M1DQ54T@B#0H> B M4$]25"U315154"(-"B @(")03U)4+4=%5"U315154"(-"B @(")03U)4+5-% <T*(" at M5"U"549&15)3(> <T*(" at @(E!/4E0M1T54+51)345/5513(> @(E!/4E0M <T*(" at M4T54+51)345/5513(> <(" at @(E!/4E0M3U!%3C\B#0H> B)$-/33$B#0H@ M(" <(" at B)$-/33(B#0H> <(" at B)$-/33,B#0H> <T**&EN+7!A at B)$-/330B*2D-"> <8VQA<W,- at M8VMA9V4@(D-/34U03U)44R(I#0H-"CL[(&%B<W1R86-T(&)A<V4> M"BAD969C;&%S<R <(" at \8V]M;7!O<G0^("@I#0H> @*"DI#0H-"CL[('!R:79A </'!C+6-O;6UP;W)T at M=&4@:6YS=&%N=&EA8FQE(&-L87-S#0HH9&5F8VQA<W,> M/B H/&-O;6UP;W)T/BD-"B @(" <(" at H*&ED#0H> @(" <<&]R at Z86-C97-S;W(> M="UI9 T*(" @(" <(#II9"D-"B at @.FEN:71A<F<> @(" @*&AA;F1L90T*(" @ M(" <(" at @.F%C8V5S<V]R('!O<G0M:&%N9&QE#0H> @(" <;FEL at Z:6YI=&9O<FT> M*0T*(" @(" H<V-R87 -"B @(" @(#IA8V-E<W-O<B!P;W)T+7-C<F%P#0H@ M(" @(" <<')I;G0M;V)J at Z:6YI=&9O<FT@;FEL*2DI#0H-"BAD969M971H;V0> <H<&]R=" at M96-T("> <(" at \<&,M8V]M;7!O<G0^*2!S=')E86TI#0H> H9F]R;6%T M('-T<F5A;2 <(" at B(SQ00RU#3TU-4$]25"!#3TU^02!^03XB#0H> @("AP;W)T <(" at M+6ED('!O<G0I#0H> @("AI9B <<&]R="D-"B at H<&]R="UH86YD;&4> @(" @ M(" <(" at @(D]014XB#0H> @(" <)$-/ at @(")#3$]3140B*2DI#0H-"BAD969V87(> M33$-"B <.FED(#$I*0T* at @*&UA:V4M:6YS=&%N8V4@)SQP8RUC;VUM<&]R=#X> <("AM86ME+6EN<W1A;F-E("<\<&,M8V]M;7!O at M#0HH9&5F=F%R("1#3TTR#0H> M<G0^(#II9" <T**&1E9G9A<B at R*2D-"> D0T]-,PT*(" H;6%K92UI;G-T86YC M92 G/'!C+6-O;6UP;W)T/B <)$-/330-"B at Z:60@,RDI#0H-"BAD969V87(> @ <.FED(#0I*0T*#0HH9&5F at M*&UA:V4M:6YS=&%N8V4@)SQP8RUC;VUM<&]R=#X> <)$E$3$4M4D5!1"U325I%(" at M8V]N<W1A;G0> <T**&1E9FUE=&AO9"!R at X,"D-"> <H<&]R=" at M97%U:7)E+7!O<G0M:&%N9&QE("> \<&,M8V]M;7!O<G0^*2D-"B @ M*&]R("AP;W)T+6AA;F1L92!P;W)T*0T*(" @(" <<&]R at @*&5R<F]R(")324\> <;W!E;BXB("AP;W)T+6ED('!O<G0I*2DI#0H-"CL[("TM at M="!#3TU^02!N;W0> <26YT97)F86-E("TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T- at M+2!$3$P> <(F-O;6UP;W)T+F1L;"(I#0H-"BAD969U at M"BAD969V87(@*BIC;VUM;&EB*BH> <*"AW:&EC:" at M;BUD;&P@7T]P96X> <(#IL:6)R87)Y+6YA;64@ at Z;&]N9RDI#0H> M*BIC;VUM;&EB*BH-"B <(E]/<&5N7T-O;6U0;W)T0#0B at @.F5N=')Y+6YA;64> <(#IR971U<FXM='EP92 at M#0H> <T**&1E9G5N+61L;"!?0VQO<V4@ at Z;&]N9RD-"> <.FQO;F<I*0T*(" at M*"AH86YD;&4> Z;&EB<F%R>2UN86UE("HJ8V]M;6QI8BHJ <(#IE;G1R at M#0H>2UN86UE(")?0VQO<V5?0V]M;5!O<G1 -"(-"B @.G)E='5R <H:&%N9&QE(#IL at M;BUT>7!E(#IV;VED*0T*#0HH9&5F=6XM9&QL(%]296%D("> <.FQO at M;VYG*0T*"0D@("ABiF97(@*#IC:&%R("HI*0T*"0D@("ABiL96X> M;F<I*0T*(" <(#IE;G1R at Z;&EB<F%R>2UN86UE("HJ8V]M;6QI8BHJ#0H>2UN M86UE(")?4F5A9%]#;VUM4&]R=$ Q,B(-"B @.G)E='5R;BUT>7!E(#IL;VYG M*0T*#0HH9&5F=6XM9&QL(%]7<FET92 H*&AA;F1L92 <D)(" at Z;&]N9RD-"> H <Z8VAA<B at M8G5F9F5R("> <D)(" at J*2D-"> H8G5F;&5N(#IL;VYG*2D-"B @.FQI M8G)A<GDM;F%M92 <T*(" at J*F-O;6UL:6(J*> Z96YT<GDM;F%M92 B7U=R:71E <T*(" at M7T-O;6U0;W)T0#$R(> <.FQO;F<I#0H-"BAD969U at Z<F5T=7)N+71Y<&4> <("AS971T:6YG<R at M;BUD;&P@7U-E='5P("@H:&%N9&QE(#IL;VYG*0T*"0D> H <*BDI*0T*(" at M.F-H87(> <(#IE at Z;&EB<F%R>2UN86UE("HJ8V]M;6QI8BHJ#0H> M;G1R>2UN86UE(")?4V5T=7!?0V]M;5!O<G1 ."(-"B @.G)E='5R;BUT>7!E M(#IL;VYG*0T*#0HH9&5F=6XM9&QL(%]'970M4V5T=7 <.FQO at @*"AH86YD;&4> M;F<I#0H)"2 @(" <(" at @("ABh> <(" at @*#IC:&%R("HI*0T*"0D> @(" H8G5F M;&5N(#IL;VYG*2D-"B @.FQI8G)A<GDM;F%M92 <T*(" at J*F-O;6UL:6(J*> Z M96YT<GDM;F%M92 <T*(" at B7T=E=%-E='5P7T-O;6U0;W)T0#$R(> Z<F5T=7)N <H:&%N at M+71Y<&4@.FQO;F<I#0H-"BAD969U;BUD;&P@7U-E="U"iF97)S("> <(" at M9&QE(#IL;VYG*0T*"0D> <(" at H<GAL96X@(#IL;VYG*0T*"0D> H='AL96X@ M(#IL;VYG*2D-"B @.FQI8G)A<GDM;F%M92 <T*(" at J*F-O;6UL:6(J*> Z96YT M<GDM;F%M92 B7U-E=&)U9E]#;VUM4&]R=$ Q,B(-"B @.G)E='5R;BUT>7!E <*"AH86YD;&4@ at M(#IL;VYG*0T*#0HH9&5F=6XM9&QL(%]3970M5&EM96]U=',> <*'1M;W5T<R at M.FQO;F<I#0H)"0D> <*BDI*0T*(" at H.G9O:60> Z;&EB<F%R>2UN <(#IE;G1R at M86UE("HJ8V]M;6QI8BHJ#0H>2UN86UE(")?4V5T5&EM96]U='-? M0V]M;5!O<G1 ."(-"B @.G)E='5R;BUT>7!E(#IL;VYG*0T*#0HH9&5F=6XM <(#IL;VYG*0T*"0D)("AT;6]U at M9&QL(%]'970M5&EM96]U=',@*"AH86YD;&4> <Z=F]I9" at M=',@("> <*BIC;VUM;&EB*BH- at J*2DI#0H@(#IL:6)R87)Y+6YA;64> M"B <(E]'9714:6UE;W5T<U]#;VUM4&]R=$ at @.F5N=')Y+6YA;64> <T*(" at X(> Z <H:&%N at M<F5T=7)N+71Y<&4@.FQO;F<I#0H-"BAD969U;BUD;&P@7T9L=7-H("> M9&QE(#IL;VYG*2D-"B @.FQI8G)A<GDM;F%M92 <T*(" at J*F-O;6UL:6(J*> Z M96YT<GDM;F%M92 <(#IR971U<FXM='EP at B7T9L=7-H7T-O;6U0;W)T0#0B#0H> M92 <+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM at Z;&]N9RD-"@T*.SL> M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T-"CL[ M#0HH9&5F;65T:&]D(%!O<G0M3W!E;B </'!C+6-O;6UP;W)T/BDI at H*'!O<G0> <<&]R="!N=6UB97(- at M#0H@(#L[#0H@(#L[(%!R96-O;F1I=&EO;CH@=F%L:60> M"B <4')E8V]N9&ET:6]N.B!P;W)T(&%V86EL86)L90T*(" at @.SL> [.PT*(" H <(" at M=6YL97-S("AP;W)T+6]P96X_('!O<G0I#0H> @*&QE=" H*&AA;F1L92 H <<&]R="DI*2D-"B at M7T]P96X@*'!O<G0M:60> @(" @("AI9B H97%L(&AA;F1L M92 M,2D-"B @(" @(" @(" <<V5R:6%L('!O at H97)R;W(@(D-A;B=T(&]P96X> <0T]-?D$B("AP;W)T+6ED('!O<G0I*0T*(" at M<G0> @(" @(" H<V5T9B H<&]R <(" at M="UH86YD;&4@<&]R="D@:&%N9&QE*2DI#0H> <T**&1E9FUE=&AO at @*2D-"> <H<&]R=" at M9"!0;W)T+4]P96X_("> \<&,M8V]M;7!O<G0^*2D-"B @("AP;W)T <H<&]R at M+6AA;F1L92!P;W)T*2D-"@T**&1E9FUE=&AO9"!0;W)T+4-L;W-E("> M=" \<&,M8V]M;7!O<G0^*2D-"B @.SL-"B <;VX@ at @.SL@4F5T=7)N<R!N:6P> <*')E<75I at M9F%I;'5R92P@96QS92!N;VXM;FEL#0H@(#L[#0H@("A?0VQO<V4> <("AS971F("AP;W)T+6AA;F1L92!P at M<F4M<&]R="UH86YD;&4@<&]R="DI#0H> M;W)T*2!N:6P-"B @(" @(" @*'!O<G0M<V-R87 <;FEL*0T*("!T at @<&]R="D> <*"AP;W)T(#QP8RUC at M*0T*#0HH9&5F;65T:&]D(%!O<G0M4V5T+4)U9F9E<G,> M;VUM<&]R=#XI(')X;&5N('1X;&5N*0T*(" H7U-E="U"iF97)S("AR97%U <T**&1E9FUE at M:7)E+7!O<G0M:&%N9&QE('!O<G0I(')X;&5N('1X;&5N*2D-"> <H<&]R=" at M=&AO9"!0;W)T+5-E='5P("> \<&,M8V]M;7!O<G0^*2!S971U<"US <(" at M=')I;F<I#0H> [.PT*(" <4')E8V]N9&ET:6]N.B!V86QI9"!H86YD at @.SL> M;&4-"B <*&%N9" at @(#L[(%!R96-O;F1I=&EO;CH> H<W1R:6YG<"!S971U<"US <(" at M=')I;F<I#0H> [.R @(" @(" @(" @(" @(" @(" @*'9A;&ED('-E='5P <(" at M+7-T<FEN9RDI#0H> [.PT*(" @*%]3971U<" H<F5QnR92UP;W)T+6AA M;F1L92!P;W)T*2!S971U<"US=')I;F<I*0T*#0HH9&5F;65T:&]D(%!O<G0M <H<&]R=" at M1V5T+5-E='5P("> \<&,M8V]M;7!O<G0^*2D-"B @*&QE=" H*'-T M<B <Z8VAA<B at H8W0Z8V%L;&]C871E("> J*2 Z<VEZ92 U,3(I*2D-"B @(" H <*'!L=7-P("A?1V5T+5-E='5P("AR97%U:7)E+7!O<G0M:&%N9&QE('!O at M:68> M<G0I('-T<B U,3(I*0T*"2AS=6)S=&ETqE("-<;F5W;&EN92 C7&QI;F5F M965D#0H)"2 @(" H<W5B<V5Q('-T<B <<W1R*2DI*0T* at P("AC=#IS=')L96X> M(" <*"AP;W)T at @("DI#0H-"BAD969M971H;V0@4&]R="U'970M5&EM96]U=',> M(#QP8RUC;VUM<&]R=#XI*0T*(" @*&QE=" H*'1M;W5T<R H8W0Z8V%L;&]C <Z;&]N9R at M871E("> U*2DI*0T*(" @(" @*&EF("AP;'5S<" H7T=E="U4:6UE M;W5T<R -"B @(" @(" @(" @(" @(" @("AR97%U:7)E+7!O<G0M:&%N9&QE M('!O<G0I( T*(" @(" @(" @(" @(" @(" @=&UOqS*2D-"B @(" @(" @ <*"AR<VQT("AM86ME+6%R<F%Y(#4I*2D-"B at M("AL970> @(" @(" @(" @("AD <(" at M;W1I;65S("AI(#4I#0H> @(" @(" @(" @(" H<V5T9B H87)E9B!R<VQT <(" at M(&DI#0H> @(" @(" @(" @(" @(" @(" H8W0Z8W)E9B <-2D@ at H.FQO;F<> <H9FEX;G5M(&DI*2DI*0T*(" at M=&UOqS("> @(" @(" @(" @<G-L="DI#0H@ M(" @(" <H<&]R at I*0T*#0HH9&5F;65T:&]D(%!O<G0M4V5T+51I;65OqS("> M=" \<&,M8V]M;7!O<G0^*2 -"B @(" @(" @(" @(" @(" @(" @(" @(" @ M(" <(" at @("9K97D@4DD@4DT@4DL@5$T@5$LI#0H> <H:&%N9&QE("AR at H;&5T("> M97%U:7)E+7!O<G0M:&%N9&QE('!O<G0I*0T*(" @(" @(" @*'1M;W5T<R H <Z;&]N9R at M8W0Z8V%L;&]C871E("> U*2DI*0T*(" @("AW:&5N("AP;'5S<" H <("AI9B!220T*"2 at M7T=E="U4:6UE;W5T<R!H86YD;&4@=&UOqS*2D-"@D> @ M(" <Z;&]N9R at @("AS971F("AC=#IC<F5F("> <*# at U*2!T;6]U=',> I*2!222DI M#0H)(" <(" at H:68@4DT-"@D> @(" H<V5T9B H8W0Z8W)E9B <-2D@ at H.FQO;F<> <4DTI*0T*"2 at M=&UOqS("@Q*2D> @*&EF(%)+#0H)(" @(" <*&-T at @*'-E=&8> <*#IL;VYG(#4I('1M;W5T<R at M.F-R968> <("AI9B!430T* at H,BDI(%)+*2D-"@D> M"2 @(" <Z;&]N9R at @("AS971F("AC=#IC<F5F("> <*#,I*2!4 at U*2!T;6]U=',> M32DI#0H)(" <(" at H:68@5$L-"@D> @(" H<V5T9B H8W0Z8W)E9B H.FQO;F<@ <5$LI*0T*"2 at M-2D@=&UOqS("@T*2D> <:&%N9&QE at @*%]3970M5&EM96]U=',> <(" at M('1M;W5T<RDI#0H> <T*#0HH9&5F;65T:&]D(%!O<G0M4F5A9"U" at @*2D-"> M>71E<R <(" at H*'!O<G0@/'!C+6-O;6UP;W)T/BD@#0H> @(" @(" @(" @(" @ M(" @(" @(" @(" @)F]P=&EO;F%L("AR9&QE;B T,#DV*2D-"B @.SL-"B @ <4')E8V]N9&ET:6]N.B!V86QI9"!H86YD;&4-"B at M.SL> <4')E8V]N9&ET at @.SL> M:6]N.B <*'!L=7-P(')D;&5N*2D-"B at H86YD("AI;G1E9V5R<"!R9&QE;BD> @ M.SL-"B @*&QE=" H*'-C<F%P("AP;W)T+7-C<F%P('!O<G0I*0T*(" @(" @ M(" H<G-L=" <I*2D-"B at @(R> @(" H=VAE;B!S8W)A< T*(" @(" <^ at @*&EF("> M/2!R9&QE;B H;&5N9W1H('-C<F%P*2D-"B @(" @(" @(" H<')O9VX-"B @ M(" @(" @(" <<V-R87 at @("AD96-F(')D;&5N("AL96YG=&@> I*0T*(" @(" @ M(" @(" <<G-L="!S8W)A< at @*'-E=&8> T*(" @(" @(" @(" @(" @(" @*'!O M<G0M<V-R87 <;FEL*2D-"B at @<&]R="D> @(" @(" <(" at @*'!R;V=N#0H> @(" @ M(" <, at @*'-E=&8@<F1L96X> T*(" @(" @(" @(" @(" <("AS=6)S at @(')S;'0> <<V-R87 at M97$> @,"!R9&QE;BD-"B @(" @(" @(" @(" @(" H<&]R="US8W)A M<"!P;W)T*2 H<W5B<V5Q('-C<F%P(')D;&5N*2DI*2D-"B @(" <*'!L at H:68> M=7-P(')D;&5N*0T*(" @(" @(" <)W9E8W1O<B!R<VQT at H8V]N8V%T96YA=&4> <(" at M#0H> @(" @(" <*&-T.F-A;&QO8V%T92 at @*&QE="H@*"ABh> H.F-H87(@ <<F1L96XI*0T*(" at M*BD@.G-I>F4> @(" @(" @(" @(" @(" <("A?4F5A at H;F(> M9" <<F1L96XI*2D-"B at H<F5QnR92UP;W)T+6AA;F1L92!P;W)T*2!Bh> @ M(" @(" @(" @(" <(R=C:&%R+6EN=" at H;6%P("=V96-T;W(> H<W5B<V5Q(&)U M9B P(&YB*2DI*0T*(" @(" <T**&1E9FUE=&AO9"!0;W)T at @(')S;'0I*2D-"> <(" at M+5)E860@*"AP;W)T(#QP8RUC;VUM<&]R=#XI#0H> @(" @(" @(" @(" @ M(" @(" @)F]P=&EO;F%L("AR9&QE;B T,#DV*2D-"B @("AM87 @)W-T<FEN M9R <<&]R="!R9&QE;BDI*0T* at C)VEN="UC:&%R("A0;W)T+5)E860M0GET97,> M#0HH9&5F;65T:&]D(%!O<G0M4F5A9"U5;G1I;" </'!C+6-O;6UP at H*'!O<G0> <(" at M;W)T/BD@#0H> @(" @(" @(" @(" @(" @(" @(" @(" @*&-H(&-H87)A <(" at M8W1E<BDI#0H> <H<F5A9" at H;&%B96QS("> H*0T*(" @(" @(" @(" @(" H <(" at M<&]R="UR96%D('!O<G0@)$E$3$4M4D5!1"U325I%*2DI#0H> @("AD;RH@ <*')E860I("AR96%D*2D-"B at M*"AS='(> @(" @(" @(" @*'!O<R H<&]S:71I <<W1R*2 at M;VX@8V@> <<W1R*2D-"B at H<&]S:71I;VX@8V@> @(" @(" @(" @*')S <(B(I*0T*(" at M;'0> @(" @(" <<W1R*2D- at @("@H;W(@*'IE<F]P("AL96YG=&@> M"B @(" @(" @(" @(" @('!O<RD-"B @(" @(" @(" @*'9A;'5E<PT*(" @ M(" @(" @(" @("AI9B!P;W,-"B @(" @(" @(" @(" @(" H<')O9VX-"B @ M(" @(" @(" @(" @(" @("AS971F("AP;W)T+7-C<F%P('!O<G0I("AS=6)S <Q*R!P;W,I*2D-"B at M97$@<W1R("> @(" @(" @(" @(" @(" @("AC;VYC871E M;F%T92 <,"!P;W,I*2D-"B at G<W1R:6YG(')S;'0@*'-U8G-E<2!S='(> @(" @ M(" @(" @(" @("!R<VQT*0T*(" @(" @(" @(" <(" at @('!O<RDI#0H> @(" @ <<G-L="!S='(I*2DI at M("AS971F(')S;'0@*&-O;F-A=&5N871E("=S=')I;F<> <*"AP;W)T(#QP8RUC at M*0T*#0HH9&5F;65T:&]D(%!O<G0M1')A:6XM26YPp> M;VUM<&]R=#XI*0T*(" <*'!O<G0M<V-R87 at @*'-E=&8> <;FEL*0T* at @<&]R="D> M(" @*&QA8F5L<R <*"D-"B at H*')E860> @(" @(" @(" @(" @*'!O<G0M<F5A M9"UB>71E<R!P;W)T("1)1$Q%+5)%040M4TE:12DI*0T*(" @(" <*"AS at H9&\> <(" at M='(@*')E860I("AR96%D*2DI#0H> @(" @(" <@ at H*'IE<F]P("AL96YG=&> <(" at M<W1R*2DI#0H> @(" @("DI*0T*#0HH9&5F;65T:&]D(%!O<G0M5W)I=&4@ <<W1R:6YG*2D-"B at M*"AP;W)T(#QP8RUC;VUM<&]R=#XI("AS='(> @("A?5W)I <<W1R at M=&4@*')E<75I<F4M<&]R="UH86YD;&4@<&]R="D@<W1R("AL96YG=&@> <4&]R="U7<FET92U" at M*2DI#0H-"BAD969M971H;V0>71E<R </'!C at H*'!O<G0> <(" at M+6-O;6UP;W)T/BD@*'-E<2!S97%U96YC92DI#0H> H4&]R="U7<FET92!P M;W)T("AM87 @)W-T<FEN9R C)VEN="UC:&%R('-E<2DI*0T*#0HH9&5F;65T <*"AP;W)T(#QP8RUC;VUM<&]R=#XI*0T*(" at M:&]D(%!O<G0M1FQU<V@> [.PT* M(" [.R!0<F5C;VYD:71I;VXZ('9A;&ED(&AA;F1L90T*(" [.PT*(" H7T9L <T*#0H[.R at M=7-H("AR97%U:7)E+7!O<G0M:&%N9&QE('!O<G0I*2D-"> M+2!E <8V]M;7!O<G1S+FQS<" at ;;F0@;V8> M+2 [.PT* ` end begin 666 commport.h <8V]M;7!O<G0N:" at M+R\> <0T]-(%!O<G1S('5N9&5R at M+2!);G1E<F9A8V4@=&\> <3E0-"B\O( at M(%=I;F1O=W,> <1$TO2$U30R at T*+R\> <+2TM+2TM at Q,B\Y-PT*+R\> M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM <1&QL17AP at M+2TM+2TM+2T-"@T*(VEF;F1E9B!$;&Q%>'!O<G0-"B-D969I;F4> M;W)T(%]?9&5C;'-P96,H9&QL97AP;W)T*0T*(V5N9&EF#0H-"B-I9F1E9B!? <T*("!$;&Q% at M7V-P;'5S<&QU<PT*97AT97)N(")#(B![#0HC96YD:68-">'!O <2$%.1$Q%(" at M<G0> @(" <3W!E;E]#;VUM4&]R="AL;VYG at @("!?7W-T9&-A;&P> M('=H:6-H*3L-"B <(" at @1&QL17AP;W)T('9O:60> @(" @(" @7U]S=&1C86QL M($-L;W-E7T-O;6U0;W)T*$A!3D1,12!H*3L-"B @1&QL17AP;W)T('5N<VEG <L(&-H at M;F5D(&QO;F<@7U]S=&1C86QL(%)E861?0V]M;5!O<G0H2$%.1$Q%(&> <=6YS:6=N960@ at M87(@*F)U9BP@;&]N9R!Bi,96XI.PT*("!$;&Q%>'!O<G0> <L(&-H87(@ at M;&]N9R!?7W-T9&-A;&P@5W)I=&5?0V]M;5!O<G0H2$%.1$Q%(&> <;&]N9R at M*F)U9BP@;&]N9R!Bi,96XI.PT*("!$;&Q%>'!O<G0> @(" @(" @ <*G-E at M("!?7W-T9&-A;&P@4V5T=7!?0V]M;5!O<G0H2$%.1$Q%(&@L(&-H87(> M='1I;F=S*3L-"B <(" at @1&QL17AP;W)T(&QO;F<> @(" @(" @7U]S=&1C86QL M(%-E=%1I;65OqS7T-O;6U0;W)T*$A!3D1,12!H+"!L;VYG("IT;2D[#0H@ M($1L;$5X<&]R="!L;VYG(" @(" @(" @(%]?<W1D8V%L;"!'9714:6UE;W5T <;&]N9R at M<U]#;VUM4&]R="A(04Y$3$4@:"P> J=&TI.PT*("!$;&Q%>'!O<G0@ M;&]N9R @(" @(" <4V5T8G5F7T-O;6U0;W)T*$A!3D1, at @("!?7W-T9&-A;&P> <($1L;$5X<&]R at M12!H+"!L;VYG(')BiL96XL(&QO;F<@=&)U9FQE;BD[#0H> M="!L;VYG(" @(" @(" @(%]?<W1D8V%L;"!&;'5S:%]#;VUM4&]R="A(04Y$ <($1L;$5X<&]R="!L;VYG(" at M3$4@:"D[#0H> @(" @(" @(%]?<W1D8V%L;"!' <8VAA<B at M9713971U<%]#;VUM4&]R="A(04Y$3$4@:"P> J8G5F+"!L;VYG(&)U <( at M9FQE;BD[#0H> <2$%.1$Q%(" at T*("!$;&Q%>'!O<G0> @(" @("!?7W-T9&-A <241,7T]P96Y?0V]M;5!O<G0H;&]N9R!A<F=C+"!V;VED("HJ87)G½[ at M;&P> <($1L;$5X<&]R="!V;VED(" at M#0H> @(" @(" @(%]?<W1D8V%L;"!)1$Q?0VQO <($1L;$5X at M<V5?0V]M;5!O<G0H;&]N9R!A<F=C+"!V;VED("HJ87)G½[#0H> M<&]R="!U;G-I9VYE9"!L;VYG(%]?<W1D8V%L;"!)1$Q?4F5A9%]#;VUM4&]R <*BIA<F=V*3L-"B at M="AL;VYG(&%R9V,L('9O:60> @1&QL17AP;W)T('5N<VEG <7U]S=&1C86QL($E$3%]7<FET95]#;VUM4&]R="AL;VYG(&%R at M;F5D(&QO;F<> <*BIA<F=V*3L-"B at M9V,L('9O:60> <(" at @1&QL17AP;W)T(&QO;F<> @(" @(" @ M7U]S=&1C86QL($E$3%]3971U<%]#;VUM4&]R="AL;VYG(&%R9V,L('9O:60@ M*BIA<F=V*3L-"B <(" at @1&QL17AP;W)T(&QO;F<> @(" @(" @7U]S=&1C86QL <*BIA at M($E$3%]39714:6UE;W5T<U]#;VUM4&]R="AL;VYG(&%R9V,L('9O:60> M<F=V*3L-"B <(" at @1&QL17AP;W)T(&QO;F<> @(" @(" @7U]S=&1C86QL($E$ <*BIA<F=V at M3%]'9714:6UE;W5T<U]#;VUM4&]R="AL;VYG(&%R9V,L('9O:60> M*3L-"B <(" at @1&QL17AP;W)T(&QO;F<> @(" @(" @7U]S=&1C86QL($E$3%]3 <($1L at M971Bi?0V]M;5!O<G0H;&]N9R!A<F=C+"!V;VED("HJ87)G½[#0H> M;$5X<&]R="!L;VYG(" @(" @(" @(%]?<W1D8V%L;"!)1$Q?1FQU<VA?0V]M <($1L;$5X<&]R="!L at M;5!O<G0H;&]N9R!A<F=C+"!V;VED("HJ87)G½[#0H> M;VYG(" @(" @(" @(%]?<W1D8V%L;"!)1$Q?1V5T4V5T=7!?0V]M;5!O<G0H <( at M;&]N9R!A<F=C+"!V;VED("HJ87)G½[#0H> T*(VEF9&5F(%]?8W!L=7-P <T*#0HO+R at M;'5S"0T*?3L-"B-E;F1I9> <8V]M;7!O<G0N:" at M+2!E;F0@;V8> M :+2 <T*#0H` at O+PT*#0H-"@T*#0H-"@T*#0H-"> ` end begin 666 commport.cpp <8V]M;7!O<G0N8W!P("TM($EN=&5R9F%C92!L:6)R87)Y(&9O<B!#3TT@ at M+R\> <1$TO2$U30R at M4&]R=',@5VEN9&]W<TY4#0HO+PT*+R\> @,#8O.3<-"B\O("TM M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM#0H-"B-I;F-LaE(#QS=&1L:6(N:#X-"B-I;F-L <^#0HC:6YC;'5D92 at MaE(#QS=&1I;RYH/@T*(VEN8VQU9&4@/&-T>7!E+F> \ <^#0HC:6YC;'5D92 at M<W1R<W1R96$N:#X-"B-I;F-LaE(#QI;VUA;FEP+F> \ <B#0H-"B\O("TM+2TM at M5VEN9&]W<RYH/@T*(VEN8VQU9&4@(F-O;6UP;W)T+F> M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM <4W5P<&]R= at M+2TM+2TM+2TM+2TM+2TM+2TM+2TM#0HO+R!#;VUM(%!O<G0> T* <2$%.1$Q%(%]?<W1D8V%L;"!/<&5N7T-O;6U0;W)T*&QO at M#0I$;&Q%>'!O<G0> <L at M;F<@=VAI8V@I#0I[#0H)8VAA<B!P871H6S8T73L-"@ES<')I;G1F*'!A=&> </2!#<F5A=&5& at M(")<7%Q<+EQ<0T]-)60B+"!W:&EC:"D[#0H)2$%.1$Q%(&@> <L($=%3D5224-?4D5!1'Q'14Y%4DE#7U"51%+" at M:6QE*'!A=&> <D),"P@ at -"> <,"D[#0H):68H:" at M3E5,3"P@3U!%3E]%6$E35$E.1RP@,"P> A/2!)3E9!3$E$ </2![ at M7TA!3D1,15]604Q512D-"@E[#0H)"4-/34U424U%3U544R!T;6]U=',> M,3 L,"PQ,# P+#$P+#$P,#!].PT*#0H)"5-E='5P0V]M;2AH+" T,#DV+" T <ER at M,#DV*3L-"@D)4V5T0V]M;51I;65OqS*&@L("9T;6]U=',I.PT*"7T-"> <7U]S=&1C86QL(%-E=%1I at M971U<FX@:#L-"GT-"@T*1&QL17AP;W)T(&QO;F<> <E#3TU- at M;65OqS7T-O;6U0;W)T*$A!3D1,12!H+"!L;VYG("IT;2D-"GL-"> <=&UOqS.PT*"71M;W5T<RY296%D26YT97)V86Q4:6UE;W5T at M5$E-14]55%,> M(" @(" @(" <ET;6]U=',N4F5A9%1O=&%L5&EM96]U=$UU at @/2!T;5LP73L-"> <=&U;,5T[#0H)=&UOqS+E)E8614;W1A;%1I;65Oq# at M;'1I<&QI97(@(#T> M;VYS=&%N=" @(" ]('1M6S)=.PT*"71M;W5T<RY7<FET951O=&%L5&EM96]U <ET;6]U=',N5W)I=&54;W1A;%1I;65O at M=$UU;'1I<&QI97(@/2!T;5LS73L-"> Mq#;VYS=&%N=" <=&U;-%T[#0H)<F5T=7)N(%-E=$-O;6U4:6UE;W5T at @(#T> M<RAH+" <7U]S=&1C86QL at F=&UOqS*3L-"GT-"@T*1&QL17AP;W)T(&QO;F<> M($=E=%1I;65OqS7T-O;6U0;W)T*$A!3D1,12!H+"!L;VYG("IT;2D-"GL- <=&UOqS.PT*"6EF*$=E=$-O;6U4:6UE;W5T<RAH at M"@E#3TU-5$E-14]55%,> </2!T;6]U=',N4F5A9$EN=&5R=F%L at M+"9T;6]U=',I*0T*"7L-"@D)=&U;,%T> </2!T;6]U=',N4F5A9%1O=&%L5&EM96]U=$UU at M5&EM96]U=#L-"@D)=&U;,5T> <=&UOqS+E)E8614;W1A;%1I;65Oq# at M;'1I<&QI97([#0H)"71M6S)=(#T> </2!T;6]U=',N5W)I=&54;W1A;%1I;65Oq- at M;VYS=&%N=#L-"@D)=&U;,UT> M=6QT:7!L:65R.PT*"0ET;5LT72 ]('1M;W5T<RY7<FET951O=&%L5&EM96]U <E]#0H)<F5T=7)N(# at M=$-O;G-T86YT.PT*"0ER971U<FX@,3L-"> [#0I]#0H- M"D1L;$5X<&]R="!L;VYG(%]?<W1D8V%L;"!3971Bi?0V]M;5!O<G0H2$%. <;&]N9R!T8G5F;&5N*0T* at M1$Q%(&@L(&QO;F<@<F)U9FQE;BP>PT*"7)E='5R <=&)U9FQE;BD[#0I]#0H-"D1L;$5X at M;B!3971U<$-O;6TH:"P@<F)U9FQE;BP> <:"D- at M<&]R="!L;VYG(%]?<W1D8V%L;"!&;'5S:%]#;VUM4&]R="A(04Y$3$4> <T*1&QL17AP at M"GL-"@ER971U<FX@1FQU<VA&:6QE0G5F9F5R<RAH*3L-"GT-"> <7U]S=&1C86QL(%-E='5P7T-O;6U0;W)T*$A!3D1,12!H+"!C at M;W)T(&QO;F<> <9&-B.PT*"7)E='5R;B at M:&%R("IS971T:6YG<RD-"GL-"@E$0T(> )1V5T0V]M <D)"4)U:6QD0V]M;41#0BAS971T:6YG<RP@ at M;5-T871E*&@L)F1C8BD@)B8-"> <)F1C8BD[#0I]#0H-"D1L at M)F1C8BD@)B8@#0H)"0E3971#;VUM4W1A=&4H:"P> M;$5X<&]R="!V;VED(%]?<W1D8V%L;"!#;&]S95]#;VUM4&]R="A(04Y$3$4@ <T*1&QL17AP;W)T('5N<VEG at M:"D-"GL-"@E#;&]S94AA;F1L92AH*3L-"GT-"> <L(&-H at M;F5D(&QO;F<@7U]S=&1C86QL(%)E861?0V]M;5!O<G0H2$%.1$Q%(&> <;&]N9R!N8GET at M87(@*F)U9BP@;&]N9R!Bi,96XI#0I[#0H)=6YS:6=N960> M97-?<F5A9" ](# <)FYB at [#0H-"@E296%D1FEL92AH+"!BhL(&)U9DQE;BP> <;F)Y=&5S7W)E860[#0I]#0H- at M>71E<U]R96%D+"!.54Q,*3L-"@ER971U<FX> M"D1L;$5X<&]R="!U;G-I9VYE9"!L;VYG(%]?<W1D8V%L;"!7<FET95]#;VUM <8VAA<B at M4&]R="A(04Y$3$4@:"P> <EU at J8G5F+"!L;VYG(&)U9DQE;BD-"GL-"> <T*"5=R:71E1FEL at M;G-I9VYE9"!L;VYG(&YB>71E<U]W<FET=&5N(#T@,#L-"> <ER at M92AH+"!BhL(&)U9DQE;BP@)FYB>71E<U]W<FET=&5N+"!.54Q,*3L-"> <;F)Y=&5S7W=R:71T96X[#0I]#0H-"D1L;$5X<&]R="!L;VYG(%]? at M971U<FX> <8VAA<B at M<W1D8V%L;"!'9713971U<%]#;VUM4&]R="A(04Y$3$4@:"P> J8G5F <9&-B.PT*"4-/34U424U%3U544R!T at M+"!L;VYG(&)U9FQE;BD-"GL-"@E$0T(> <1V5T0V]M at M;6]U=',[#0H-"@EI9BA'971#;VUM4W1A=&4H:"P@)F1C8BD@)B8> <D)8VAA<B at M;51I;65OqS*&@L("9T;6]U=',I*0T*"7L-"> J<W1O<&)I='-; M72 <D)8VAA<B at ]('LB,2(L(C$N-2(L(C(B?3L-"> </2![(FYO at J<&%R:71Y6UT> M;F4B+" <(F5V96XB+" at B;V1D(BP> B;6%R:R(L(")S<&%C92)].PT*"0EC:&%R M("ID=');72 <(FAA;F1S:&%K92)].PT*"0EC:&%R at ]('LB;V9F(BP@(F]N(BP> M("IR='-;72 <(FAA;F1S:&%K92(L(")T;V=G;&4B at ]('LB;V9F(BP@(F]N(BP> <D)<W1R at M?3L-"@T*"0EO<W1R<W1R96%M('-T<BABhL(&)U9FQE;BTQ*3L-"> M(#P\(")B875D(" @(" <(B at @(#T> \/"!D8V(N0F%U9%)A=&4)"0D\/"!E;F1L M#0H)"0D\/" B8FEN;6]D92 @(" <9&-B+F9":6YA<GD)"0D\/"!E at ]("(@/#P> M;F1L#0H)"0D\/" B<&%R:71Y(&5N82 <9&-B+F9087)I='D)"0D\ at ]("(@/#P> M/"!E;F1L#0H)"0D\/" <(" at B;W5T>"!#5%,> <9&-B+F9/qX0W1S at ]("(@/#P> <96YD; at M1FQO=PD)/#P> <1%-2(" at T*"0D)/#P@(F]U='@> @/2 B(#P\(&1C8BYF <(" at M3W5T>$1S<D9L;W<)"3P\(&5N9&P-"@D)"3P\(")$5%(> @(" <(B at @(#T> \ M/"!D=');9&-B+F9$=')#;VYT<F]L70D\/"!E;F1L#0H)"0D\/" B1%-2('-E <(" at M;G,> <9&-B+F9$<W)396YS:71IþT at ]("(@/#P>0D\/"!E;F1L#0H)"0D\ M/" <O6&]F9B at B5%> @(" <9&-B+F946$-O;G1I;G5E3VY8;V9F(#P\ at ]("(@/#P> <D)"3P\(")OqX(" at M(&5N9&P-"> @(" <(B at @(#T> <)"0D) at \/"!D8V(N9D]U=%> <96YD; at M/#P> <(FEN at T*"0D)/#P>" @(" @(" @/2 B(#P\(&1C8BYF26Y8"0D) <<F5P;" at M"3P\(&5N9&P-"@D)"3P\(")E<G(> <(B at @(#T> \/"!D8V(N9D5R<F]R <96YD; at M0VAA<@D)/#P> <<W1R:7 at T*"0D)/#P@(FYU;&P> @/2 B(#P\(&1C8BYF M3G5L; D)"0D\/"!E;F1L#0H)"0D\/" <(" at B4E13(&-T<FP> <<G1S at ]("(@/#P> <96YD; at M6V1C8BYF4G1S0V]N=')O;%T)/#P> <(F5R<D%B;W)T(" at T*"0D)/#P> @ M/2 B(#P\(&1C8BYF06)O<G1/;D5R<F]R"0D\/"!E;F1L#0H)"0D\/" B>&]N M(&QI;2 @(" <D)"3P\(")X at ]("(@/#P@9&-B+EAO;DQI;0D)"3P\(&5N9&P-"> M;V9F(&QI;2 <(B at @(#T> <D)"3P\ at \/"!D8V(N6&]F9DQI;0D)"3P\(&5N9&P-"> <(B at M(")B:71S+V)Y=&4@(#T> \/" <96YD at H:6YT*61C8BY">71E4VEZ90D)/#P> M; <(G!A<FET at T*"0D)/#P>2 @(" @/2 B(#P\('!A<FET>5MD8V(N4&%R:71Y M70D\/"!E;F1L#0H)"0D\/" B<W1O<"!B:71S(" <<W1O<&)I='-; at ]("(@/#P> <G at M9&-B+E-T;W!":71S73P\(&5N9&P@#0H)"0D\/"!H97@@/#P@<V5T9FEL;"> M,"<I#0H)"0D\/" <(" at B>&]N(&-H87(> ](#!X(B \/"!S971W*#(I(#P\("AI <(#T@ at M;G0I9&-B+EAO;D-H87()"3P\(&5N9&P-"@D)"3P\(")X;V9F(&-H87(> <96YD; at M,'@B(#P\('-E='<H,BD@/#P@*&EN="ED8V(N6&]F9D-H87()/#P> T* <(F5R<B!C:&%R(" at M"0D)/#P> @/2 <R*2 at P>"(@/#P@<V5T=R> \/" H:6YT*61C <96YD; at M8BY%<G)O<D-H87()/#P> <(F5O9B!C:&%R(" at T*"0D)/#P> @/2 P>"(@ <R*2 at M/#P@<V5T=R> \/" H:6YT*61C8BY%;V9#:&%R"0D\/"!E;F1L#0H)"0D\ M/" <(" at B979T(&-H87(> ](#!X(B \/"!S971W*#(I(#P\("AI;G0I9&-B+D5V <D)"3P\(&1E8R at M=$-H87()"3P\(&5N9&P-"> <D) at \/"!S971F:6QL*"<@)RD-"> M"3P\(")M<R!R:2 @(" <(B at @(#T> \/"!T;6]U=',N4F5A9$EN=&5R=F%L5&EM M96]U= <D)"3P\(")M<R!R;2 at D)"3P\(&5N9&P-"> @(" <(B at @(#T> \/"!T;6]U <D)"3P\ at M=',N4F5A9%1O=&%L5&EM96]U=$UU;'1I<&QI97()"3P\(&5N9&P-"> M(")M<R!R:R @(" <(B at @(#T> \/"!T;6]U=',N4F5A9%1O=&%L5&EM96]U=$-O M;G-T86YT"0D\/"!E;F1L#0H)"0D\/" <(" at B;7,@=&T> @(" <=&UO at ]("(@/#P> <D\/"!E;F1L#0H)"0D\ at MqS+E=R:71E5&]T86Q4:6UE;W5T375L=&EP;&EE<> M/" <(" at B;7,@=&L> @(" <=&UOqS+E=R:71E5&]T86Q4:6UE;W5T at ]("(@/#P> <#0H)"0D\/"!E;F1S.PT*#0H)"6)U9EMBiL at M0V]N<W1A;G0)"3P\(&5N9&P> </2 at M96XM,5T> <E]#0H)<F5T=7)N(# at P.PT*"0ER971U<FX@,3L-"> [#0I]#0H- M"B\O("TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM#0HO+R!! <241,#0HO+PT*1&QL17AP;W)T($A! at M<F=C+T%R9W8@:6YT97)F86-E<R!F;W(> <241,7T]P96Y?0V]M;5!O<G0H;&]N9R!A<F=C+"!V at M3D1,12!?7W-T9&-A;&P> <J*&QO;F<J at M;VED("HJ87)G½-"GL-"@ER971U<FX@3W!E;E]#;VUM4&]R="> <241, at M*6%R9W9;,%TI.PT*?0T*#0I$;&Q%>'!O<G0@=F]I9"!?7W-T9&-A;&P> <=F]I9" at M7T-L;W-E7T-O;6U0;W)T*&QO;F<@87)G8RP> J*F%R9W8I#0I[#0H) M0VQO<V5?0V]M;5!O<G0H*BA(04Y$3$4J*6%R9W9;,%TI.PT*?0T*#0I$;&Q% <241,7U)E861?0V]M;5!O at M>'!O<G0@=6YS:6=N960@;&]N9R!?7W-T9&-A;&P> <4F5A9%]# at M<G0H;&]N9R!A<F=C+"!V;VED("HJ87)G½-"GL-"@ER971U<FX> <J*$A!3D1,12HI87)G=ELP72PH8VAA<BHI87)G=ELQ72PJ*&QO at M;VUM4&]R="> <;&]N9R!? at M;F<J*6%R9W9;,ETI.PT*?0T*#0I$;&Q%>'!O<G0@=6YS:6=N960> <=F]I9" at M7W-T9&-A;&P@241,7U=R:71E7T-O;6U0;W)T*&QO;F<@87)G8RP> J M*F%R9W8I#0I[#0H)<F5T=7)N(%=R:71E7T-O;6U0;W)T*"HH2$%.1$Q%*BEA M<F=V6S!=+"AC:&%R*BEA<F=V6S%=+"HH;&]N9RHI87)G=ELR72D[#0I]#0H- M"D1L;$5X<&]R="!L;VYG(%]?<W1D8V%L;"!)1$Q?4V5T=7!?0V]M;5!O<G0H <4V5T=7!?0V]M at M;&]N9R!A<F=C+"!V;VED("HJ87)G½-"GL-"@ER971U<FX> M;5!O<G0H*BA(04Y$3$4J*6%R9W9;,%TL*&-H87(J*6%R9W9;,5TI.PT*?0T* <241,7U-E=%1I;65OqS7T-O at M#0I$;&Q%>'!O<G0@;&]N9R!?7W-T9&-A;&P> <=F]I9" at M;6U0;W)T*&QO;F<@87)G8RP> J*F%R9W8I#0I[#0H)<F5T=7)N(%-E M=%1I;65OqS7T-O;6U0;W)T*"HH2$%.1$Q%*BEA<F=V6S!=+"AL;VYG*BEA <7U]S=&1C86QL($E$3%]' at M<F=V6S%=*3L-"GT-"@T*1&QL17AP;W)T(&QO;F<> <*BIA<F=V*0T* at M9714:6UE;W5T<U]#;VUM4&]R="AL;VYG(&%R9V,L('9O:60> <J*$A!3D1,12HI87)G at M>PT*"7)E='5R;B!'9714:6UE;W5T<U]#;VUM4&]R="> M=ELP72PH;&]N9RHI87)G=ELQ72D[#0I]#0H-"D1L;$5X<&]R="!L;VYG(%]? <=F]I9" at M<W1D8V%L;"!)1$Q?4V5T8G5F7T-O;6U0;W)T*&QO;F<@87)G8RP> J <J*$A!3D1,12HI at M*F%R9W8I#0I[#0H)<F5T=7)N(%-E=&)U9E]#;VUM4&]R="> M87)G=ELP72PJ*&QO;F<J*6%R9W9;,5TL*BAL;VYG*BEA<F=V6S)=*3L-"GT- <7U]S=&1C86QL($E$3%]&;'5S:%]#;VUM4&]R at M"@T*1&QL17AP;W)T(&QO;F<> <*BIA<F=V*0T* at M="AL;VYG(&%R9V,L('9O:60>PT*"7)E='5R;B!&;'5S:%]# <J*$A!3D1,12HI87)G=ELP72D[#0I]#0H-"D1L;$5X<&]R="!L at M;VUM4&]R="> M;VYG(%]?<W1D8V%L;"!)1$Q?1V5T4V5T=7!?0V]M;5!O<G0H;&]N9R!A<F=C <1V5T4V5T=7!?0V]M;5!O<G0H at M+"!V;VED("HJ87)G½-"GL-"@ER971U<FX> M*BA(04Y$3$4J*6%R9W9;,%TL("AC:&%R*BEA<F=V6S%=+" J*&QO;F<J*6%R M9W9;,ETI.PT*?0T*#0HO+R M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM <<&]I;G0N#0I"3T],(%=) at M+2TM+2T-"@T*+R\@5VEN9&]W<R!$3$P@96YT<GD> <=6Q296%S;VXL at M3D%022!$;&Q-86EN*$A)3E-404Y#12!H26YS="P@54Q/3D<> <T* at M($Q05D])1"!L<%)E<V5RõD*0T*>PT*("!R971U<FX@5%)513L-"GT-"> <96YD(&]F(&ED;')P8VEN=&8N8W!P("TM("\O#0H` at C+R\@+2T> ` end