rh2y+@andrew.cmu.edu (Russell E. Hoffman, II) (09/30/90)
Here is a little utility I was working on this weekend that sends a BREAK signal on any serial port. (i.e. it holds the RS-232 to a logic zero for 250 milliseconds -- useful for some modems and wierd protocols.) Below is a shell archive that contains the C source, the assembler 'glue' code that makes the support for the SS_Break SetStt, and the uuencoded exectuable. P.S. Many thanks to Ric and Ryan at Microware for their help! -------- cut here -------- : This is a shar archive. Extract with sh, not csh. echo x - sbreak.c sed -e 's/^X//' > sbreak.c << '' X#include <stdio.h> X#include <sg_codes.h> X#include <sgstat.h> X#include <errno.h> X#include <strings.h> X X Xmain(argc,argv) Xint argc; Xchar *argv[]; X{ X static char temp[50]; X FILE *outfile; X int err; X void help(); X if (argc<2) X { X fprintf(stderr,"%s: Must specify device! \n",argv[0]); X exit(E_BPNAM); X } X if (argv[1][0]=='-' && argv[1][1] == '?') X help(); X outfile=fopen(argv[1],"w"); X if (outfile==NULL) X { X fprintf(stderr, "%s: error opening %s\n",argv[0],argv[1]); X exit(0); X } X if (!_ss_break(fileno(outfile))) X { X err=ferror(outfile); X fclose(outfile); X exit(err); X } X fclose(outfile); X exit(0); X} X Xvoid help() X{ X printf("Syntax: sbreak [/device]\n"); X printf("Function: send break on SCF device\n"); X printf("Options: none\n"); X exit(0); X} echo x - ss_break.a sed -e 's/^X//' > ss_break.a << '' X******************** X* Stacked parameter defs X* Arguments from 'C' beyond 2 are passed on the stack X* and hence the definitions below. X* usage: move.b arg3+params(a5),d0 X* Xparams equ 8 offset from a5 to stacked parameters Xarg3 set 0 Xarg4 set 4 Xarg5 set 8 Xarg6 set 12 Xarg7 set 16 X X** _ss_break() X** X** 'C' bindings for SS_Break setstat X** X* X* Function: _ss_break - send break on serial line via SS_Break setstat X* X* X* int _ss_break( path ) X* int path; /* path number to the device as returned by open() */ X* X* Returns: 0 if all went well X* -1 on error, errno set to error number from driver X* X* Description: X* Attempts to do a SetStt of SS_Break on the specified path. Returns -1 X* if an error occurs. X* Caveats: X* Garbage in.... Garbage (possibly crash) out X* X X psect _ss_break,0,0,0,0,0 X X_ss_break: X link a5,#0 set stack frame (for symbolic debuggers, ect.. ) X move.l a0,-(sp) X move.l d1,a0 the command pointer X move.l #SS_Break,d1 SS_Break code X os9 I$SetStt X bcs.s _ss_breakerr X clr.l d0 return all ok X bra.s _ss_breakex X X_ss_breakerr X move.l #-1,d0 set error flag for return X move.l d1,errno(a6) set errno to value from driver X_ss_breakex X move.l (sp)+,a0 X unlk a5 X rts X X ends X X echo x - sbreak.uu sed -e 's/^X//' > sbreak.uu << '' Xbegin 777 sbreak XM2OP 0 ,1X 2 55 0' 0 ' XM $ & 4 ;H PB , ,%@ #$"<V)R96%K M1H 0+4: %#U# XM@!@(*P % !1G#BU,@!IF""UY ( :2H5G'@@% !F%$'U6 !*:/_^9@I9 XMB$GH__QP 6 F0C58_R!-U^L #$*G+PMT 2 \ ; $Z[" !@=D/H 0M28N$ XM= B8"X)9PS3S4(I__\@B5*"8.Y3@&?@2H)F$$IH__YG"D(H__\D2%B(8 8@ XMC21(4H)2@DJ49Q@H5$H<9ORUS&,>#!P _&884HPF5-?-8!0,+0#\ )F""9M XM 37S6 $U^L #"$++PA"*/__+P(@? $O1.NX@ 90 !'&$@3-\ YO-+RZ+ XMA"!\ !3$Z[B !P "!\ >/DZ[B @?/__C"+1SBU(@ 0M3X +4^ "" \ XM____!-"/L*Z "&4"3G6PKH $908M0( (3G5!^@!P81 O/ 0$@? '@Y. XMNX@ /P%R9' "3D C#(?3G4@+H D*Z "$YU("Z ")"N@ 1.=4CGP/ P+P > XM!$ @.1 #$ #V8,0?H :W( 3D (60,(GP !W,3KN8 &5D3-\/ U"/69=. XM=4K[ % J*BHJ(%-T86-K($]V97)F;&]W("HJ*BH- "HJ*BH@0V%N)W0@:6YS XM=&%L;"!T<F%P(&AA;F1L97(@*BHJ*@T ("HJ*BH@ &UA=&@ "(\ XM0"\(0?K_P&$ _T8B?/__@O33SD'Z_]9A*"!?4XEA(D'Z_\I3B6$:$WP #?__ XM('S__X+TT<YA /\83D !DY 82V&;\3G5.50 2.? @" \____K&$ _LQ1 XMCW "L*\ "&\B(&\ #"\00?H!!B((0>Z#+" (80 $#%B/(#P #780 <PB!O XM P@: $#! +684(&\ #"!H 0,* _ %F!&$ (Q!^@#C(@@@;P ,("@ XM!&$ PPO0 $2J\ !&8F(&\ #"\H 0@;P 0+Q!!^@"[(@A![H,L( AA .D XM4(]P &$ '%X@;P $,&@ #B (80 ! $J 9AP@;P $<"# : ,2, N@" O 1A XM NV(!=A !PP("\ !&$ "ZAP &$ '")0CTSM 0#__$Y=3G5.50 2.> @" \ XM____O&$ _>)!^@!?( AA +R0?H <2 (80 "Z$'Z (L@"&$ MYP &$ &^!, XM[0$ __Q.74YU)7,Z($UU<W0@<W!E8VEF>2!D979I8V4A( T =P E<SH@97)R XM;W(@;W!E;FEN9R E<PT 4WEN=&%X.B @('-B<F5A:R!;+V1E=FEC95T- $9U XM;F-T:6]N.B!S96YD(&)R96%K(&]N(%-#1B!D979I8V4- $]P=&EO;G,Z("!N XM;VYE#0 3E4 "\(($$B/ !U.0 ".901"@& *(#S_____+4& #"!?3EU. XM=4Y5 !(YX"@1>Z"]& 2< / :@ ,9@0@"F 8U?P <0>Z&=+'*8N8M? XM ,B #' 3.T% /_X3EU.=4Y5 !(Y\ P)$$F;P 8( MF!&&P)D @"V=*-V\ XM @ .#"H *P !9P@,*@ K )F" !K , #& 6#!( <F<&#!( 9&8$< %@ G " XM@6L #" K 0R*P 22,'0@2= @F@" +8 )P $SM# #_^$Y=3G5.50 2.?, XM,"1 )D%Z & :#"L *P "9@1P!V "< 0J & (IZ V (00*P !2( ,0 #_ XM8F9* &< '(, K9^(, !X9\A@4B %", & ^( 4(P !(@ @"F$ %UXH XM '+_LH!G$$AX )R " $80 8KEB/8%H@!0C $B " *80 7IF 0(#P "! XM@(4B " *80 7)B@ 8#9/[?_H+7P #+@ QP_V H$!-(@ Q ')GE&(2# XM9&?*8MP, !A9P#_C#$ =V>H8,H@!$SM###_\$Y=3G5.50 2.? $*G XM(B\ "" O 1A /Z>6(].74YU3E4 $CGR+ D0"9!(@L@"F$ _O0H '+_LH!F XM!)'(8 Y"IR(+( 1A /YN6(\@0" (3.T-$/_P3EU.=4Y5 !(Y\BX)$ F02AO XM "0@#&$ "+0B"R *80#^L"@ ; 21R& .2%0B"R $80#^+EB/($ @"$SM'1#_ XM[$Y=3G5.50 2.? @$'N@Q M2(!00JZ <$AO !1(;P ((B\ "$'Z!20@"&$ XM )90CP@N 6#'6<$</]@!" N@'!,[0$ __Q.74YU3E4 $CGP( M5X!00JZ XM<$AO !1"IR(O Q!^@3D( AA5E"/(%<(* % UG!'#_8 0@+H!P3.T! /_\ XM3EU.=4Y5 !(Y\" +5> 4$*N@'!(;P 40J<B+P ,0?H$Q" (8190CR!N@%!" XM$" N@'!,[0$ __Q.74YU3E4 $CGS[@F0"1!3^__]$JO #QG""HO #Q\ & 6 XM*B\ 0'P!8 Y*!&< F00!$B 2,!.DQ@:# 0 )6;J&!IP "] @N P$ "UF XM!' !8 )P "U @&A*KH!H9P(8&@P$ #!F!' P8 )P("U @&Q@&" '<@IA !+X XM$@1(@01! #!(P="!+@ 8&A $2(!(P$'NBXD0, @ 2( ( #9M(,! N9@1P XM 6 "< O0 $2J\ !&<T8!H@+P (<@IA !*P$@1(@01! #!(P="!+T "!@: XM$ 1(@$C 0>Z+B1 P" !(@ @ -FS@P$ &QF $.&!I@ $(+P<@15B%(!!A XM &<8$8O!R!%6(4@$&$ B1@."\'$ 1(@$C 0>Z+B1 P" !(@ ) )(P"( XM($58A2 080 "/& 2+P<@15B%(A!![H!4( AA &:(@!@ "B2J\ !&8&< 8O XM0 (2H9F!BHO $!\ 2Z%+P=(;P $(B\ $! $2(!(P&$ U!8CR( ( MA *H XM6(\J%V /)*AV<0+P=(> !( 58A5: (@!@/B!%6(4@$$Z38 TB!%6(4H XM4$JO 1G,B], 1@!DH49PY2C" O A3KP (2H!F[B\'( R0KP (+P B+P , XM( MA 'J4(]@ "4+P<B#" +80 ".%B/8 A! $2( $0 !%#$ ,V( _B+0 XM0# [ 9.^P "_SK^%O\Z_A;^%OX6_A;^%OX6_A;^%OX6_A;^%OX6_A;^%OX6 XM_A;^_/X6_A;^%OX6_A;^%OX6_A;^%OX6_WC^X/\Z_SK_.OX6_A;^%OX6_A;^ XM%OX6_N[^%OX6_A;_F/X6_R+^%OX6_OQ*AF8 _;)\ 2HO $!@ /VH3^\ #$SM XM'?#_X$Y=3G5.50 2.?(H"@ 1>Z 5$J$;!X@!$2 * !L$D'Z! HB"$'N@%0@ XM"&$ "<9@$!3\ "TB!" *81!![H!4( A,[042__!.74YU3E4 $CGR+ H 4?N XM@%Y@&" $<@IA !#@!@ ,!; <@H@!&$ $-HH ' )L(1EXB17<##0!!3 8 (4 XMXT'N@%ZQRV7V0A(@%TSM#1#_\$Y=3G5.50 2.>(L"@ 1>Z 5$?N@%YP!\ $ XM!@ ,!; YHQF\F "%.-![H!>L<ME]D(20>Z 5" (3.T-$/_P3EU.=4Y5 !( XMY\ZP* J 4J%9P1P06 "<&%R"I"!*@!'[H!>< _ A"P $@!P";"&; 0@!6 " XM<##2 !;!Z(QFY$7N@%1@ A3C0>Z 7K'+9?9"$D'N@%0@"$SM#7#_Z$Y=3G5. XM50 2.?,,"9 )$$H+P @*B\ ))J$2JZ :&8:8 8@+H!L3I,@!5.%2H!N\F ( XM$!I(@$C 3I,@!%.$2H!F\$JN@&AG$& &("Z ;$Z3( 53A4J ;O),[0PP__!. XM74YU3E4 $CGR# F0"1!*"\ '" *80 (+)B 2JZ :&8:8 8@+H!L3I,@!%.$ XM2H!N\F ($!I(@$C 3I-*$F;T2JZ :&<08 8@+H!L3I,@!%.$2H!N\DSM#!#_ XM]$Y=3G5.50 2.? "(N@% @%V$ C92KH!P3.T O_\3EU.=4Y5 !(YX" XM(&Z 4%*N@% 0KP #4JZ <$SM 0#__$Y=3G5.50 2.?.("@ *@$D;P @2H5L XM'GH 8!I\ 6 \>$5\_V V>$5@ GAE? !*A68J>@%@)@P$ &5GYF(0# 0 1V?B XM8A8,! !%9]1@#@P$ &=GUF(&# 0 9F? $ 1(@$C +P O!B(%(!)0DF$,4(], XM[01P__!.74YU2.<^P"@!($!,T #0>Z =$/N@;1V $J ; 02_ M2B\ (VQ< XM)#Q__P 4D0T!"P\ 3;$Z[:/A30!+84P1G#!+\ "Y@ A+84<S__&$6$N\ XM)V$ /1"$4'N@;0@"$S? WQ.=4H#9Q9![H&T#"$ ,&8$L<EE]@P1 "YG E*) XM3G5G "8- 1(0C0\ ! L/ $PY.NVCX2D!N1!+\ #!*1&>T$OP +D1 2D-F XM#KA ;@(P!)A 8 02_ P4<C_^F "$MA7S/_\2D1M#E.)2@-F"!+\ #!1S/_Z XM88I@ /]Z4T 2V%?(__Q*0&T*4XD2_ P4<C_^DI$9P#_7DI#9P9*$&< _U02 XM_ N4T1**/__9K!*0V>\4XE@ /\^2H!G)G8!)#Q__P - 0L/ $G).NVCX XM#$#__&\ _P"P1&X _OI@ /]4> !@B,"\ #__TI :@@2_ M1$!@!!+\ "N XM_ !D9P@&0 P$L!"0$A @/P "@9 # 2P$A !D ,!+ 3G4M,C$T-S0X,S8T XM. !.50 2.? H"1!,"H #$C H ( B#( ( "9Q1P(L!J P,0 "9@ XM<" *80 #K@@J ( #6<F2'@ 4'O <B"#!J X@""!J !A.D%B/<O^R@&9& XM".H !0 -8#HP*@ ,2, ( (9@8@"F$ 4@@4E*2$*\ R 2L*H "&0.""H XM!P -9A1P#;"79@X@"F$ 21*@&<$</]@ B 73.T% /_X3EU.=4Y5 !(Y\@@ XM* D02(*( 3@B&$ _T(B"B $80#_.DSM!!#_^$Y=3G5.50 2.> H$7N@O1@ XM"B *81C5_ !Q![H9TL<IB[DSM!0#_^$Y=3G5.50 2.>(H"1 > @"F=B XM,"H #$C " #V<0""H 0 -9PX@"F%6* !@!DIJ QG"C!J X@"&$ #9PP XM*@ ,2, ( )9P@@*@ $80 'J' )4 ""2 )4 !$)J Q":@ 2< E0 8 XM)4 %" $8 )P_TSM!1#_]$Y=3G5.50 2.> ("1 ( IG#' BP&H # Q )G XM!'#_8!8P*@ ,2, ( /9@8@"F$ C8@"F$*3.T$ /_\3EU.=4Y5 !(Y\R@ XM)$ P*@ ,2, ( (9AX@$K"J AG%D*G( IA &:(@ P:@ .( AA XX6(\@ XM$I"J 0H $J$9T(P*@ ,2, ( (9S8DJ@ $8"PO!"(2,&H #B ((&H &$Z0 XM6(\J '+_LH!F#@CJ 4 #22J 1P_V BF(7;DDJ$;M (Z@ P@*@ $)( R XM*@ 22,'0@25 AP $SM!3+_[$Y=3G5.50 2.?,L"1 * $@"F< -AP \!J XM QG #.,"H #$C " #V8*( IA %48 FC J Q(P @ AG(B *80#^ XMV@)J_O\ #" J 0R*@ 22,'0@25 @D@& &P@$K"J AD8BH$8#H@"F$ XM *B:@$J%; 8@!42 8 (@!3(J !)(P;"!;BP@$M"%)D"WZ@ $92"WZ@ (9!HD XMBP)J_^\ #&!&("\ )$J 9[X,@ %GOG !L*\ )&8(("H ")"2F( DJ@ ( XM FK_[P ,+R\ )"($,&H #B (80 ,Y%B/<O^R@&8$</]@ G 3.T-,/_L3EU. XM=4Y5 !(Y\ 0J=R " O 1A /[V6(],[0 "__Q.74YU3E4 $CGX* D0" * XM9PAP \!J QF!'#_8$0P*@ ,2, ( /9@8@"F$ #Y(> !<@ P:@ .( AA XM QP6(\B # J Q(P @ AG!B J 1@!" J @D$I2 TH(@ 4SM!0;_\$Y= XM3G5.50 2.? H"1 ,#P P,!J QF+$_O_X!(5S!J XB"' 80 *&%B/#!< XM 68(".H !P -8 8(Z@ & U/[P" ".H !P ,""H !P -9PY!^@N()4@ %$'Z XM"[I@#$'Z"YHE2 40?H+Q"5( !A*:@ 29A8(*@ ' UG"#5\ @ $F &-7P! XM 22JH !&8L""H @ -9P1P & *,&H $B (80 "@B( ( IA :""H P - XM9P8(Z@ ! Q,[04"__1.74YU3E4 $CGP" D0# J Q(P @ AG!B *80#\ XMOC J Q(P @ EG#B J 1A 0B FK]_P , FK^\P ,)6\ ! $9Q0(Z@ # XM U*:@ 29APU? ( !)@%' 0T(HE0 $".H @ --7P 0 2("H !#(J !)( XMP="!)4 ""2 3.T$ /_\3EU.=2\(($"S @ !F4@@! ##B6<8L0EE,&(@ XM2BC__V8,8#1* &<P#$ _V,J,!BP66?P90X,0 #_8Q9P 2!?PXE.=0Q /]C XM"'#_(%_#B4YU2BG__F;R< @7\.)3G7#B7 $!BP&5;(__IEW%) (%_#B4YU XM+P@@0$H89PQ*&&<(2AAG!$H89O"1P" (4X @7TYU+P@@0,.)$-EG#!#99P@0 XMV6<$$-EF\"!?PXE.=2\(($##B4H89PQ*&&<(2AAG!$H89O 16?__9LY@W"\( XM($##B1#9:OQ"$ (@ '\@7\.)3G5.50 2.> #U\ $&# $)N@P(]? "@QP] XM? !@QX]? "@S@]? "@SI.74YU3E4 $CGP+ D0$?NAVQ@.DJ39@HFBB=J XM 0 !& F("H !.>(T(JPDV8$)HI@#B 3(BL !.>)T(&PBF8,("H !-&K 0@ XM"F ,48M![H9TL<MCOG 3.T- O_P3EU.=4Y5 !(Y\@P(#P '_T)<"@/__ XM_@ H " $YXAA I^)$!P_["*9R@@+HM\YH@H "9*)T0 !":\AV6KS2 +80#_ XM8DJ 9@XB"B NBWQA IH< !@#" +4(!A )N("Z,$DSM#!+_\$Y=3G5.50 XM2.>,L"@ 2H1G/" $7H#FB%* *@!*KHP29A1![HP*+4B,$BU(AW0M? ("' XM>"9NC!)@&+7NC!)F$" %80#_5"1 2H!F!' 8#(F2B13NJH !&+@NJH !&8$ XM)I)@$)NJ 0@*@ $YXC5P"5% 0DO(=EJ\TM2XP2( I0@$SM#3#_[$Y=3G5. XM50 2.?/N"1 * $@"F8*( 1A /]B8 !1$J$9@@@"F$ 41@%$JNC!)G#B * XM9PH@"F$ BA*@&8&< !@ $>( I1@"9 ( 1>@&P"7H#F@%* +@"^JP $9RJ^ XMJP $9"H@!^>(T(LH0"B\AV6KS2 K 20ARE 0G1P $( Q0@&$ .0@"F XM -0H;HP28 (H5+?,8P:WU&4*8 2WU&3PN=1E["H4("L !.>(T(NPA696("L XM!"!%T*@ !+"'94@@*P $($70J $L(=C*"!%( ?GB">0" @*P $($70J $ XMD(<B!^>))X 8!" 'YXC0BRB 8 0@12B0)T< !"U,C!(@"U" 8%0@*P $4X N XM " *80 P"A ( 1A /Y:+ !*AF<L( ?GB"\ (@H@!F$ H98CR ,9R(@!E& XM)D"YRV42("L !.>(T(NPC&(,8 0@#&<&( QA &:( 9,[1WP_^!.74YU3E4 XM $CG@# D0$JNC!)G'B *9QH@"F$ -Y*@&<0( IA3"9 ( MG!B +80 !8$SM XM# #_^$Y=3G5.50 2.>( "@ 2H1L"BU\@ (P68!1*A&P"7H3FA R$ " XM &T$+42,%DSM !#__$Y=3G5.50 2.>,N"1 ( I1@"9 * LH;HP28 (H5+?, XM8P:WU&4*8 2WU&3PN=1E[" K 3GB-"+L)1F$"!4("@ !-&K 0@5":08 (F XME" L 3GB-",L(MF#B K 31K $*),H#& "*(LM3(P2($0@+HP6L*@ !&($ XM($1@ I'(( A,[1TP_^A.74YU3E4 $CGP+ D0$'NAW2QRF(:0>Z+=+'*8Q(@ XM"E& )D ,DX=EJ\UF*G !8"A'[H=L8!A*DV<2M=-E#B 3(BL !.>)T(&PBF32 XM48M![H9TL<MCX' 3.T- O_P3EU.=4Y5 !(Y\X@* J 2 $(@5A )(+ !A XM /RD)$!*@&<,+P9R " *80 !S%B/( I,[01P__!.74YU3E4 $CGS+@D0"9N XMC!JUTV4>(!,B*P $YXG0@2(J 3GB=**L(%C""U+C!I@ ",M=-F !P("H XM!+"K 1E9"ANC!)@ BA4M=1F^K7NC!)F!"U,C!(@*@ $L*L !&8&*))X & > XM("L !.>(T(HH "B ("H !)"K 0@1"% 0@1""2(@H@*P $YXAA 9"0I-" XMJP $)$1*A&<>( IA /]@8!9![H9T48NQRV,$1^Z';+?NC!IF /]63.T=,O_D XM3EU.=4Y5 !(Y^#@($ D020M AG F$*3.T'!__H8 V$J"9TJQRF)(9T0P XM"@@ !G!!#:4X(P" @ !F).**9 9A!!#:3G7BBF0&,-I@ B#:4<K__%)" XM4X)D]'0 3G40VE'*__Q20E."9/1T $YUU<+1PC *" &<$$2)3@C (" XM &8DXHID!F$$$2).=>**9 8Q(F "(2)1RO_\4D)3@F3T= !.=1$B4<K__%)" XM4X)D]'0 3G5.50 2.?(,"1 )D$H+P <8!H0$K 39Q 0$TB $A)(@9) 2,$@ XM 6 .4HI2BR $4X1*@&;>< !,[0P0__1.74YU3E4 $CGSB D0"@!*B\ (' XM$ 0L & "%,8@!5.%2H!F]DSM!'#_\$Y=3G5.50 2.?.("1 * $J+P @< 0 XM!"P 8 YP ! 2L(9F!" *8 Q2BB %4X5*@&;J< !,[01P__!.74YU2.<X "0 XM)@!(0R@!2$3 P<+#Q,3&Q$A T$%X ->$T$+7A$A 0D%(04)"2$+2@M*#2H!, XMWP <3G4O G0 2H!J!$2 = -*@6H&1($* @ !82+B"F0"1(#B"F0"1($D'TJ XM3G5AU,%!2H!.=6$&P4%*@$YU2.<X "0!9@:!_ 8&Y3@6=J* $B +2!90QG XM!' 8%QP 9*"8%8F FOVQH1F$N**=O_BBE7+__Q$@^:HPH1@/' =O_C@FH& XMM(%B"F ,M(%4R__R9P12@^**1(-@!.. XHJ2@F404H!1R__T8 [C@.**TH)E XM\%'+__;2@DS? !Q*@$YU*E]3A65B$!AG^ P UG6 P "!G[ P EGY@P XM "QGX%*"# (F<P# )V<J2&C__U.%93 0&&?&# #6<2# (&<,# XM"6<&# +&;@0BC__V"H2%!3A64($ABP 6;V8.P@3TA7+P)3@F<0Y8(@,"@ XM(9 H "# 48)B\D[53E4 $CG8(#!04J!9T(, 0 !9RX, 0 &9SH, 0 "9Q , XM 0 %9PIRT \ %@ ,>3D C64 Q8@;0 ((()@ ,43D C64 P0@ 6 XM OP@;0 (3D C6 O!.50 2.=@@,%!2H%F""!M AR & ,# $ F:N)"T XM"'("3D CF L9.50 2.=@@"! , %.0 "$90 "M$Y (]@ *T3E4 $CG XM8( @0# != !.0 "$8 "E$Y5 !(YV" 3D CV H1.50 2.=@@"! <()T XM $Y (5@ )X3E4 $CG8( @0" !(B\ %"0O !A@XDY5 !(YV" ($ P 2(O XM !0D+P 83D @V CQ.50 2.?@@"! , $"00 D $$ W0 3D @R!?9 " XM' P! -IF (6,"\ FL @X"0 '3D A&4 @)T '("3D CF0 ?0T 4Y XM (\R F >I.50 2.=@@"! , %.0 "'8 !WDY5 !(YV" ($!P DY (=@ XM '*3E4 $CG8(!.0 ""8 !L$Y5 !(YV" ($$B+0 (3D B60@#$$ TV8 XM 99@ &:3E4 $CG8( @02(M A.0 "+9> @ 6 79.50 2.=@@"!!(BT XM"$Y (IDYF 6!.50 2.=@@"!!(BT "$Y (QDSF 4A.50 2.=@@!(M XM MG)@P! %G%@P! )G!G++8 !*'("3D C60.8/)R!4Y (UD!&#H= #4 XMER("3D B&7<( %@ $ 3E4 $CG8( B &8&<LM@ #P4H'"/ #^)"Z+>)2! XM91 @+HMTTZZ+=).NBWA@ ""("Z,'K"!8@(@ 2!*3D *,5(90 O"U(BW0M XM0(MXT:Z $&"^3E4 $CG8( B %*!PCP _B0!TJZ !&42LJZ "&0,("Z !"U! XM@ 0B F R<L]@ !^3E4 $CG8(!2@, \ /XB -"N@!0@24Y ?#2&4 %XM XM0( 4TZZ $" (D($@0'0 Y(ED!C#"8 (@PE')__Q205.!9/0@ & #).5?_\ XM+HI.0 H91PM0(M\( HD;?_\3EU.=4Y5__PNBB1!3D *63J</\M08 ,8.)D XM#"U!@ QP_V $9?9P $SM 0;_]$Y=3G5.50 (@!A >80#O2F (3E4 $K\ XM(@!.0 &WJW>K0 \ %.=4YU+P5Z $J :@1Z"$2 80A$Q4S? "!.=4CG00 O XM"-'\ "A"\ !@$"(\ "F$ ^SX& 0 P$0$,@ IDZ 8 # 1 "X( XMGI]@!!$\ #!1S__Z3-\ @4YU+P%A 48809,WP "3G5(YQ_ >@ (@ ?9P)Z XM"$CG) N &< -1"1TA'Z$\$1P/_;PX,1P0 90@@/'_P !R ,_\!-%(1T/Z XM B+G1["Q< !B#F4&LK%P!&(444=@[E!'L+%P"&4(8O:RL7 ,8O!$1V\"44=G XM$"0Q< F,7 $80 )'$1'XT<H $)$2$3H1,A\!_^8? /_R?Q-$$A$YT1#^@+Z XML+% &(.90:RL4 $9 911&#N4$2PL4 (90AB]K*Q0 QD\$1$9Q(D,4 )C% XM!$1$YD3>1&$ ",0L $A&Z$X$1@/_ H" #___", %& $XX'CD%'.__HL'U)' XM) !(0N@*E#P "FT.$/P ,5)'U#P ,!#"8 ;4/ Z$,(F!DA#2,-(Q]:';B1M XM'@R @ &46$"C__[ \ #1C#!%\ #'__T(04D=@=$(@8'!(QKR#;P(L U.& XM8"#C@>.0) F >.!XY#C@>.0TH/1@B0 2$+H"@8" # 0P@* ___U'._]A" XM$")(#( " 92X0(+'O !AG#E( # .6,<$+P ,&#J4@ , Y8PYP,1" XM<# 2P$(14D=@ A" , =(P"H?1,5,WP/X3G4 #1CCN;-T%H!"-] XMF<Q0;5<'=:.1U6O<A@K(!BADK&]"#AJL"_FYYEL1;9RGG8E&*13 <!O5)[27 XM&!(_\&[JA'D;9$+D^V<98!ZV?IP2>VYT(@CY5TW/BG E6[H(SXR7G"BNR&:W XMG@RZ+ $6@%[_KJHO4OBL%TUA(S*E#_U$]*<]-?=B3XIV+]@Y2?8CU:BG,CR< XMTK*7V(F\/_ !#0<-Y-^" $:3N+6U!6X62>7E,:"AR'--.$\#Z3_Y XM]E"*_.]1\/M@4]WV=6+8LVA7,*'UN!,D:5J"=TCY,!TT7=2 5SBU&GAA)L+4 XM)6_\QF1Y1112,+-[9\P.'O&G).]K'R7!AJ;P3VYQ2E+?_&>:<<,R--YZU^1U XM%4_=?W._/'AGJ3HI5/.Z>[I$WX,KC4A_#2H;Y 2/D'_P !/&<.]49& XMU)<\G-*RE]B)O3S2 Z^>YU86/0:$FX:A*YP]/"7":$EV@SUQEYF!+>H2/:7] XM?^%Y9)<]VWS?V=>]O3X1+@OH)M:6/D5YCN(PC#L^>M?RFKRO2CZPQO>@M>V. XM/N3XM8CC:/$_&C;BZQQ#+3]08DW2\:G\/X1ZX4>N%'L_N9F9F9F9FC_P XM 0"0 ! 60 $"/0 0,.( ! ^&H $$N XMA( 06,2T !!E]>$ $'-S64 0@*@7R !"-TAVZ XM $)M&I2B 0J(PG.5 !"UKS$'I $,,:_4F- 0T'#>3?@@ !#=C17 XMA=B@ "\!80 )/&$ 0HB'TYU+P%A E>80 _"(?3G5(YT 80 T&$ "59, XMWP "3G5(YT 80 OF$ "7A,WP "3G5(YS 80 K&$ "<AA #$P4(B V$ XM +PB " "3-\ #$YU2.= &$ (IA"F$ *1,WP "3G5(YS\ > !A L(#$?_ XM_VX<;1(@/#_P !R $J$:E@(P ?8%)P '( /@!@2GPTG$=O*'8 8 QD!(8\ XM %21^*(XI%1SO_R9!)2@60$4H!@"@@# !F! (! /Y*@&8$2H%G%+"\ ! XM &0(XXGCD%-'8.AA KL3-\ _$YU2.<M '@ 80 *<'( = +BB.*14<K_^F$ XM"LQ,WP"T3G5(YRT >@!X &$ "FIT N.)XY!1RO_Z2H%J&E* #(& 9@0" XM #^#( ! 903BB%)'80 *=$3%3-\ M$YV3G5*@F<$"$( 'TJ"9@1*@$YU XM2H!F"" "(@-*@$YU2.</ 'H +@ L D)'2$="1DA&*CP #___P(7$A7H4"\ + XMPGH/"X=G!$2!0( +AF<$1(- @NA.Z$\$1@/_!$<#_WH . >81F=P:@A$1,%" XMPT//1GP #$0 -F,4* "A( !J!D2&0(% @& ( ,1 @90X$1 @+ ,F XM EO"2()(P@Q$ !!E$ 1$ ! \ S8"2$9(0TA"2,(,1 (91111!P#%@+@@N"; XMX)Y@!N*"XI/BEE',__A@ GP > #2@]&":@PH/( !$AD"!0( D!DJ 9A8@ XM 68*( 9G% 1' $!@!@1' " B G0 81QA EX2H!F! C% )J! C% -$Q4S? XM /!.=DYU2H!F#$J!9@A*@F8$?@!.=0R " &4*XHCBD>*24D=@WK"\ ! XM &0*XXKCD>.04T=@[DJ":B)2@6024H ,@ @ !E%.*(XI%21V ,#(* XM9@0" 0#^ CS_^TYU2.<\ '0 2H!K %<)@ (@P ?0D-(0V< G0H &H$",, XM'P* ___PC !3H2P1# _]B #,9V0(0P ?1$,,0P V9 "2 Q# !1B'G0 XM4T/BB.*1XI)1R__X-CP $2!0(#0O 0 !@,B0!(@!P()!#9!)$0%- XHGB XMDE'(__I@"..*XY%1R/_Z< !$@D"!0(#0O 0 V/ "( %$J 9@I*@68& XM3-\ /$YUXXKCD>.04T,( 49_)*@FHB4H%D$E* #( ( 913BB.*14D-@ XM# R"@ &8$ @$ _@B !36? /_Z4M(0TI#:@0(PP ?0D. @TS? #Q.=0Q# XM #9D %^>@"6? 48A)$0P?%1$.0A684<@!,WP \3G5T()2#!<5T )*%D8(( XM 49@;CB>.04T/6? 03 H #___Z4M*@VH$",, #TA#0D. @TS? #Q.=4CG XM/ !T $J :P#^J"8 "(, 'T)#2$-G $$* !*@&H$",, 'P* ___PC !3H XM2P1# _]D<D1##$, -F0 -@,0P 49"CFN.:Y= !Z )9\ "!$0P?%4X4H!4:% XMRH$D!<*$*@1&A,B P(6"A& D) $B ' !$, %.:YYJIX )9\ "!$0P?$4X0J XM!$:$R('"A82$*#P_\ @(1*@VH$", 'TS? #Q.=3H#= ,0P V9'AX 1# XM !1B3$1#!\30A @ !5G(E)%XHCBD60:4H%D$E* #( ( 90SBB.*14D5@ XM! (! /[:? /_Z4U(14)%2H-J! C% !\(@ 4@(5,WP \3G5$0P9# " 'Q-*$ XM9*Y2@&"J H" <@ @#_P !,WP \3G4@!$S? #Q.=7( (#R_\ 3-\ XM/$YU2.<_ "@ M80N "P"0D=(1V< ;Y"1DA&9P !MDJ$:@0(QP ?*CP #___ XMP(7$A7H4"\ +PLQ\?_#.?'_PG'P_\-Y&:0 !.F\ 8@,@ 0 !F#$J!9@@@ XM B(#8 !1@R" ! &8$2H-G\"\'>@!^ #P!S,,\!4A&2$,X <C#W(3;1TA! XM2$,X <C#W(3;1S\&/ 5(1GH . #(P]R$VT=(0S@!R,/<A-M'2$$X <C"W(3; XM1S\&/ 5(1GH 2$(X <C"W(3;1TA!2$(X <C"W(3;1S@ R,/<A-M'2$!(0S@ XMR,/<A-M'/P8\!4A&>@!(0S@ R,/<A-M'2$ X ,C"W(3;1TA". '(PMR$VT<_ XM!CP%2$9Z #@ R,+<A$A 2$(X ,C"W(1(0L#"2$#0ADS? (9V!"@\\ @ XM !EG#MY\ !!K/'8%*#SX YKCFN>:J*@3*@82%*@1&A<*%R(""A,"%2H)J XM/%*!9"Q2@ R " &4NXHCBD=Y\ !!J)'H"(#Q_\ <@!*AVHZ",4 0C XM !]@, R"@ &8$ @$ _@* ___TA'2D=J! C !]"1X"'>@!*@&8$",4 XM FH$",4 T3%3-\ _$YV3G5P "( 8.!(YS\ * "UA"X + )"1DA&9A8@/'_P XM !Z TJ$:@ !? C !]@ %T0D=(1V< 69*A&H$",< 'SH\?_#,1<Y%GD;> XM?#_P:<IO %*+P<(@@ 4>@OKJF8&2H-G #ZZ[OKJ.NY*CP ?_* '(A;F! XM@(0H \B%N8.$A'H?"\ +PGP ?@ O""!#>#]*!&\ ,QV'Y*(D8)J>D2!0(!* XM@&8HF#P (&0,V#P ( G'4X=@ "J"<93AB !8 +CB%O+__QR 0# !]@%N.) XMXY!;R__Z>@ $ P @# 0 (&0."<?8 V_*>@ )Q=J%8!0)QM@#"<7:A0P$ "!E XM!)R%8 13AIZ%2@1O5G8?DHB1@DJ :HY$@4" 2H!F(@0$ "!D"-@\ " )QV V XM"<8@ 6 "XXA;R__\<@ $ P ?8!CCB>.06\O_^@0# " ,! @9 0)QV ""<;8 XM V _S9^ & 8( 8B!WX = !A '>"( %)Y\ OI3R!?*!_81PQ$?_!L /Z6 XM2$1*1&H&",0 'T)$P+P #___@(1@!' <@!Z $J 9@0(Q0 ":@0(Q0 #1,5, XMWP#\3G9.=4J":Q1*@&H"8"2P@F8>LH-F&D3\ 1.=4J :P)@%K2 9@JV@68& XM1/P !$YU8@9$_ (3G5$_ 3G5*@&<$"$ 'TJ 3G5(YPT > B &<@:@8( XMQ ?1(%P 'XT8 ;CB>.04T<,@ 0 !E\F$ FY,WP"P3G5(YPT > B &?P XM8-8O!"@ 82YH!A@\ )@!!@\ !*@&<4:@0(1 ?" 0 'V<("$ 'P $ )$ XMQ$S? !!.=DYU2.<M 'H > !A ',9TH,AP ! !F$B \?____TJ$9P)&@ \ XM )@,G0TE$=G(FL.XH#BD5-"9OA*@&<48 X,0O_@;PCC@>.04D)F^ $ (@ XM 4J$9P)$@$3$3-\ M$YV3G5(YP_ > !A %L2D=J#F$ ;0D "8!< !R &!6 XM($ B07PTG$=N!G0 )@)@0B0\_____PQ& "!O% 1& "#MJL""<@#!B,.)1H+ XM@F .[:K"@L&(PXEP $:"PH(O!W0 81AA %B) F 2 ((@DN'V$ 51,WP/P XM3G5(YQP > F &<$>"!@!B8!9P M$A#2D-G!M@\ !!@ DA##$,! &4$>@]@ XM GH'"P-6S?_\V 7>1)Y\ #28/ @9 C8/ @P4+!00F F#P %&(@1 3IJ.FY XMZ;IZ G%4X4H!<J!@(4J!$:%PH7(@H*$8"+HN>BXF#P ($0$>@ )Q5.%1H4H XM!4:$RH# A"0!PH2S@H*%", %$J":B)2@6024H ,@ @ !E%.*(XI%21V , XM#(* 9@0" 0#^>@%,WP X3G5*@F<.P4(F )Y\ $!X(& _SY^ $S? #A. XM=2X XX]G0$A'X$\$1P!_2,<"@(!___\(P 78!HN ../9R1(1^I/!$<#_TC' XM H" #___", % B !]G$ A$ !]$_ (3G5$_ $3G5$_ 3G5(YS "( XM%V=2!D< ?R0\?X _Q8\ =@&$CG, (@ 49S@&1P/_)#Q_\ ?_%CP !$I' XM;@AP % 1@#+Y"91 @ @) " A'( 4 F *YV](1T)'@(> A$S? Q. XM=0 "X "B "] D 0$! 0$! 0$!$1$!$1$! 0$! 0$! 0$! 0$! XM 0$! 0$P(" @(" @(" @(" @(" @2$A(2$A(2$A(2" @(" @("!"0D)"0D(" XM @(" @(" @(" @(" @(" @(" B @(" @($1$1$1$1 0$! 0$! 0$! 0$! 0$ XM! 0$! 0$(" @( $ '= " !VP " 0N$ X3 ,,"@P:"X "&,P X Xend exit