[comp.windows.ms] Record/Playback for windows events.

scott@rlgvax.UUCP (Scott Thurlow) (01/06/89)

I am looking for a program which records keyboard events for a window
along with timing information and allows the events to be replayed
into another window.  I want to evaluate the impact of using a windows
based terminal emulator on host performance.

Does anyone know if such a program exists and where it can be found?

Thanks in advance for your help

Scott.
-- 
Scott Thurlow						Computer Consoles Inc.
Primary:	scott@rlgvax.UUCP or ..!uunet!rlgvax!scott	(703) 648-3300
Alternate:	thurlow@gpu.utcs.toronto.edu or thurlow@utorgpu.bitnet

bturner@hpcvlx.HP.COM (Bill Turner) (01/07/89)

> I am looking for a program which records keyboard events for a window
> along with timing information and allows the events to be replayed
> into another window.

Scott, this is what the journalling hook in Windows allows you to do!
Check the documentation of SetWindowsHook for WH_JOURNALRECORD
and WH_JOURNALPLAYBACK.

Journalling records hardware input events *before* they are dispatched.
So if you set the focus to one window, record the input, then set
focus to a different window and playback, this should work.

NB: journalling also records mouse events, and they are screen-relative.
Be careful about using the mouse to select things while journalling...

--Bill Turner

rogerson@PEDEV.Columbia.NCR.COM (rogerson) (01/07/89)

In article <1071@rlgvax.UUCP> scott@rlgvax.UUCP (Scott Thurlow) writes:
>I am looking for a program which records keyboard events for a window
>along with timing information and allows the events to be replayed
>into another window.  
>Does anyone know if such a program exists and where it can be found?
	Yes here is one!  I found on the Actor BBS!  
	IF YOU HAVE WINDOWS GET THIS PROGRAM!!!!
	It is fun to play with and show the power of Windows.
	When you run the program, remember that this is a STANDARD
	windows application and not a hack like TSR's in DOS.

This program is called journ201.exe.  To use uudecode to get journ201.arc
which will need to be de-arched with ARC or PK-PAK(ARC).  The arc package
includes the source in MSC, a compile version, and a short DOC file.  It
will record MOUSE and keyboard events and play them back in real time. 

I suggest that if you really want to use this program you should use the
keyboard and not the mouse.  Why? Lets say you click on PAINT.EXE and record
this and some other mouse motions.  Then later you get EXCEL and put it in
the same directory so that PAINT.EXE is not in the same place.  Then when
you play the recorded messages the mouse pointer will go to the same location
and click on that file and not PAINT.  Have fun and good luck! 

BEGIN-------Cut Everything above and including this line and uudecode-----
begin 600 journ201.arc
M&@A*3U523D%, "4E)24EO@   %80\9"-V3T!   ,:M[4D>,F#!L7;\2HT0$B
MX,""!\<T4  "$H(Q;$"T&*,QR!2-3PS2T7CD#L<66LC *:/QB@R-1)@D<4+E
M2Q I1SXZ)&C0A40%$W="="&GS!R&0GO*^5D1P5*-<AH*Y'EPZ<2@4X>6P5,&
M:=:>"=5(?:C4Z,2F;-*X64-C+%462=F\""+SB!,=,6R\</*DR(LF0:"\D GW
M*QL6<]**N5.8[$$R9<R<M=@F#)PY>=JXA3C9*<>X1(UN[KFUS$0-&@A*3U52
M3D%,+D, )24E$Q,  %<0I%4(:I(M   ,+U1 <M) @8J"*D H>5)%BI,@3%P,
M :'P31TY;L*P 2&GS)@W<LC, 1'&#1D0<-B$R3-23)@Q:T!<26/RS9V1-.'4
MH4.2S1LW9T#<24,'#8BB91""@,0@S)PY;\:D"4.GS$DZ:=K0#$K3#,@V5-/\
M=$&1"IHR(+RR\3D4*(@U95B2[ BBSARK2IG2>0/BHQLZ<MYL5&(1HT8="/,>
M,')CJ0$I9=J\L8.6\,6,&\T$;M,79%*#2Q?C< QE,QR>7N60!#$G#.6T:=B@
M+7E23)DS-#EZ!$EFJV(C.1Q/V0M']\>06TF:[.OS[M&SK%VC-1/[<T)(BV/ 
MH,B]])LVI]."7-WZ-779RD]V3+D2!-'$H+&;38-S9!@0DGM3MPJ"LIPY8KD!
MPAMF/(<62&G@AEE%EVF$4F!GR!$&9W6D]$889. 5WP%BY %"$VF,$1A49M!!
MUH=OS,$3@0:ZYT9J8&'UDVXJ8>767BVJ41AF;/BVX7E5J69&'6Z,(:,;(]WA
MU(!BT!$&3?QU"$)O3SEU5QMB]'@C=#/5=!,(,;@  PV*P851&6RPD)Y0L6T$
M1V N9>GA&&B4= 9:N2$%@AMEX,&3?P#.R&*79-@TAPOP77= $V_HET:4'A)1
MTJ,;3:%544M!$$0=0<4P6@PYX'!#7A,<(5B& DY!(!U*=D0J#C T%@,-F [7
M41ETD&HJ&ZBJ.81@(&'(%ZPTP!!#HJ$QZBA_J<E$4Z%?RB!F#$L]8$098H @
MPPQ@AHH#LO*A05]G&;*YUH!NL.'A'2#%1&2&JA%JJ+;3#J@:'"D"*"<(XIYQ
MEAR(;I@$3T.=Z\035 C5+IN8ROMEF'BP1M,8LYVKYQ@:L>$23&D1:62 BH4A
MQQEUM%'&7R/5^1J==EH5\$$&#?1"02-,S$8=Y?+0%K2'HN$#S3;CC);.4.(!
MAPL^ UWDS3GWUI&12/^L0,U+"PT"#RK*L5742H_!-%HBZ-@@&TB+4!#-&5+'
M)PA#%&%%$4Y0,44306!!40TP; =)! &!X$3)MJG&8AF4H7P47V+488899:BF
MPLP*%$1''G!854:!6==A) A[+(5!W[9J3L=%:*GHV4FT14?928\7Q%U=2";(
MYTDF5WGG#DM-T#<9%R7W-&]KLI?'QC&UKL#K5SPA!1$4W0&%R!/&L(/KW"6_
M?///2]B&#-,?SYU/;DU)1_=]@. VW%1T7U#?1GA\Y)0>J23AD2,97Q!-/$$1
MQ!1#0.2L&TUXDAM0@(0@.($(3"@""PIXP 2R@ E0F (5I, "_*6@>W9X0QI.
MXAV*/64(;2 #"JQ'A O>[R\@,$(0I  "_?'/?TN("Q+>\(8UC%!Y1& !"5D 
MOC.84 $9W& *5]C"_?6/"2" S'%$N,,=GB]N0V2A"GY(!!)&L8@O1"(45#*\
ME]BPB3ADP1,3ID(I_E (3W@"$LN(Q2."@ AL.(,9!HB$*QR0!40"T!EFI\,P
M]O"'^).)UJHB!,6A((AD "0*(8.A0IKAD!I,) 8C:3XY!$8.*&"9XUB@21!,
M47T*Z*01JN.$"95A"S: 01=P!PD+L*\ZA],-AM9D.KH0[F1TJ!_D>KBG#E5E
M#AW!4/<"*080DH$)4&+E!OI&!3G4 4\%NL]'V@"6Y6@)+4H:"2X;QQ_CH5&-
M::'"1<3P!E9R@)E2J$(1W%.@/(V3+_E!B_$8B,!UHL$RAF$#%9RR!E92@)G\
MY!=MT-.LHHSK36^(T(0\"3EZ)I!?24#2^ I21BA(X0D380,<YAC#/,RPACS<
MJ!LZZH0^C6\I".A;1\DILI.@@88Q:=8TJWD2N,C%>!6]:$9%JD3>A'2./0U)
M2?W$2@/T#9\+>FD-Q:.:WR''+3A=H44Q"@*-SG&+*R'>3]V U2["9*@G!<%1
M=^0@I<9T/,)+#O$82E&IZK2J(H7C&;KW322:893_H0,CR="]*N+P*%DI Q.<
MHM<R"+,@8_1DY>Q06 RQ0 6+I<,5!EF&[B46LH1K+!F&\P8XT#6-=L6KBB9+
ME,H6Q*_7PXK)!CM:REKV;5 <66:1JI$MM VV<J,;%E:YE 3TS9&,$])X;FDX
M^RD@( -!5@!SLS.;=*Q([VN6V/*9*)F=,']&]%^7ECM -$14126A& O04!K"
M?==)12H#"XR)3#ZM-X13>.D=4E 0A]KSO.$UK0+LRZ_RV@&_Z>T>!"7(0O8F
M\[IL@Z]\N[<'ZGUH"D? SQSF>C;O@:"8(6PO6GK@20/SJ7O<2<,CR=N1_THT
MOR P@0E $ (,'Q-**=#-Z#"" AC\,,2/=+&&8\R&K(T!#GE P2AE4TJ3O??%
M?/JA@[TK41!PF,G@#?"2::O/@'+X"+@:PD4Z\I=]SL&&-Z:(&<0I!W(Z>8A,
MF$(10/F]N,;QS &$2P<!3#$4"-FM&$V!7.<X7CJ7(<QP!>IN0@+G,,@Y,&/P
MLYUSFN>@DJ'/)TXOH*W*52ZNE<-Q+L.<(UWG.TMAJD-(05>U"F7T4FS2(NWH
M1V.":4-K&M&*]C2H4Z!JF$(ZRJ=F,T4H35*3GGD*N'+8'%8]0B1\80E%R (:
M5YA#7LL0IDJV<-^24""$*I0SV62-D^10E9,,!5/W.0]:,F)DDCRE9'CBR;CN
M0Q'C<:=O;R*<6.RBKKX$L]NJFTYUU)0Z.%C)/2L2$([TA!UW4P3>EO8BN? D
M<.B )3<^Z2Q9(+$!X^(8!3J&<0M31(<@P $.32B#[<J @GN2M<I?UF$3OC"$
M)S2!;G>TPA*^8 3ML  &3(@V=^X@+MF@ ,MT"/G(46""-DSXYDBW<0H:?#Q(
M&$#$*##Z&5Q0N];<R<D<OL+*6_YR Y:PA8@6^1R,&?4)N\!YT&O#C9V.)N<P
MO;?-+,D<:E0&H5N=Y$6?\-H30 3Z^)L.=+)[&.Y$=*FOW0!]<'#B+=R1&0]0
MZF?/WH1^N/CU"80@!E$*$@8J\IYL1.LL=SG,F5?UP7?^+B@<.'3"\/$>8>Q(
M+T.(=8%(R0Z*G>QC""%]%6#%W/.U(&^G2"#-@ 9=L^;;=,JD[IGNX+YY!SRH
M&4]Y]"T;<L]F.>#EMG%XDQR#]\4I:)$YS7& F*8__9&1W6L/>K =%:,DLZ2M
MROIM_'9() #J?==(0H7P!CR4_+PL0#?(E@1Q(P5%, 4,(05M@P(QD )(1VER
ME0)+YSI, 74H0'QG]@5L("*&10=V-F 3E )#5@9%IEY*AW4@T (-2($/4 26
M!!(H( )4ED2#1@8BP (B4 49D25H@2,<2!745P8BL'8,T'9H47\/$%GQMV$I
M)EN,165;H$H@!@D/<%=ID%=+>&83I$Y3^ "4YFA@]6O!]BR&0FQ78&P+T1 /
MP00&V'++LU6.1H2+UUMSZ'1U: !B$$S]5&'OEA"<51Q.U1MND3I>DR*E(QVP
M@1[>AS'.(7[ 47Z. 75*2%DLQF'TMQ1\DQ!)L$>>P4Y[\@8\$8C=!SF]M82.
MA )[-XFE=68P,(4) &R2188W889HF(!KV(9AA'.'=X=Y:%A[&#G2EA#/%Q[-
M,GV)>#*F%#P)QS'$E4ML96&,&'XS5W,P (E.)XF9I7[LEV(KIHKRQWX3V'0)
MX :^)'+!=!*6Z(I6F%=[I87IM&84>'\YYF%HP0=\\$93X1-GP'_^5VH!& 0#
M6( 'F( +* ,." -;%8'AN!0, '5[=8H2B(3I9UCHV(1W\H0G%X6KQ(*4-FI>
M%(8<!HO"1HM?D(8. 1%0P 1!H&Q!, 1+L%4>"1-R&(]WR(MZJ&M] QF2\1IF
M91_+$21:D1%5\8S<$8T@X(@W8(T&()*R.&PP56S'EFS+]H:Z.(4&  4<%P5U
M0!2"1W@V9I6]:&@@1A&+5WG'=7G($E%!0C&G,1(SE3HV-1*:\1W*X2&LEQ(A
M$A8SDCJH)Q(M<I>!\293415*\98_R1<&91^MEY>P5UU. #F!Q$8NY$:U5D.9
MU"CJA7;:PT.2IW8%T7N8R0*:.2$"]@1.$&%LT)D,YF!0AP1)0$(HD)II%V,K
M!@-X "MYLW1+L0!]4P7% 1AR1Q0!,B %8E-$Z71S@'QH@ *CJ7;U9P!&Z8CD
M1X'0"7Y'.8TYH)31.8W:H9W6B936F !8J2(>!W)B9WHE1V5>M@8J%WI==T?-
M>7,YYXJ-=QD,N(N*YV#U26-?61!FB5R8!S,),61!\EP?,R,X$HB>YR(ZP1/-
MZ),G88RY$6[5X9B0@TA7-)G^XV@HP#MM$ ,LX*$R$%*9M7M6Y*$@*J*OA3Y7
MI (:E5FK:6'#5WQ\*'SH!W^4Z ,<9@).2 =0>%OH,S=UTP4+>8V/% *F:$@1
M&8],Z25.:9EG6)*V"!&X2)7S&8_>R(2M&(_[Z096.8=D6:.*A:.KR&$N&EEC
MR4X7*%J215E%:@#KV%IEBF9J9I6J)5B$E84<EJ4MX -D,%$69I;<P:=^RA,M
MP&%WREIM6EJLY !]$T"_R1<9P@9. E@F0Y04D:AY2HD<]J*,U:=_RDJZDQ Z
M&1F!8ZD'4B JH2)"08G>EZ4KL +D4V$ BBP$VC@&^CXX0A-WH7TE 0+-Z"*J
MAQ;"QAHL416<$0?/]$P6>EI6))G9I47+:$,?D2$\!(J!1:*,9:)_5:WJY1-W
MNJ)0Q$9G"J/ YV"\%*IBFIQ$D7S>NI 4890QH -+X0%],P09PRR; 0) !U93
MP!)-,&''>7YK>H4JLE>Z"0FC"@)3@(ACL&6XI&TBPQ-W>IP)H*D'2Y%GYJET
M *J VEMQJEEGID)I!H_F=X=_>F83B2$>FX(@$)N1U;(M@*J*BK!66:Z,=6:8
MQ5A[Q4H/<*^=Y2'!BB/%FCB+@ZON9J0H$ )C]D[<*#X^8&,R9I]_>D%]Z#>@
M*$MDX"%Y@"OTVJ6H6E67PQ-):P <V[(K@*B!5;,4R4HIE1"_X@;^$8IH$A:O
M@2-A( 90<3-#6;%EVZ4U-I]+<0',%%BQA% >I$V%0[:DZ'1A^8L.9I0R0*^0
M8*]PFZ\G,9><,05KD 9P\*]S$+!!4;88*[)I^WX\2Y$>BSNOTYMP0 9 V!<0
MFWJ&6[8K2P:QRDJ$*XP:E'I\P2=^ JR+.[#8F+JSM'ZHJUE_J)NMFQ!%L!PL
M4DO\\: 6ZY 4"9%%R@"W>V8\>I$^FI%22)/ VF-'2(':FXT:FX[FVZ0\0Y(F
MN88IN9)"T)(O697F"W49EV0L.)X=]W%=27(F-S;KV9Y<-WHL@)3RN7<U29V 
M6Y6#VS=.D+5V 2G/,2Y# EW#B3'G4K:/:WQI$P9U0*E*Z8*7%(,S&)-K<(,@
MD(-NL 9N8!,"XJU#:)4-?*6!ZI^TBI:9!QJ;9Q*R,1)ZTEDG0TN(V!OZ%Q3D
MA >=)UTG%WLQ\Y@%45<9&JUO%$=S5')RQ0*E=R>BV9F<.9OU94?,@P9RU3UY
M)#O\L<7Z947-69JG656J>:[06">J@:QP8+1;0 ,YL)' >'%JC(*@5\!>E[ +
M2VT@\ 1+(!1+$F]/T4V-2[#-N7Y)0 2(# +V*!2=*<E$0 4-@49%F@! )U<#
M$QE48%)8'$<L,,DMYP02Q (C6((L, /]*8YW GAW($)V;+0LH,=[!W6YK#A;
MD#75AP*_; 8IH()=4(D@< )<P 4GP&,^1A7$'!EWK#@XV,PS'(\]!ABO-\W@
MH<NO;$I[M\UR\&-!%LY&5LQ[U[1EQA<<QIR=B8*3S,E2X,FN^+QDD'_Z>,IG
MP );6 1[![C_C)_F!W7-*<]$T#].T#8Y5W\)@,_ZG%#\[,H0H68!C2OV.=!?
MJGCCZQQ0]\?("WH$F 140 1) !%/< 0Q)M#O>'A&.+4T1K(6/:O 6*L[G!!+
M",30$:Q&&URQI"=4$E,5>M.S%TA)^DB[%WS"FA8TVL<V:F<8R&$:*,0#A,[J
M98!!0 1?< 520-( '6/(JX)O2L(P*(,G1X-+=(,LG+?H@2-4?8S9;'X-#&A@
M"@(:2+YE8$/$)Y\L8)#FU#>F$DLG<Q(L(FXN<-B8:M=L< >4=8%HP (H ()2
MD +=.UO@VP4L0($+@ )\6MD8.38:F0(J "!Z4 8$@@)C)(%IJH&%>!>.#6A9
MRKT]"H7ARW@836,-2-,V+: IU"8ZC18\K3@^K;DM(CQK)6[-J@"!])!**L<A
MAD)[38YR8'P6&-6*3=5"1DJFQ )874(Q%@(<)M;/28YY\$OGF(%K<1=Y[=B0
MS02FJ=+D;=X4>7.')]WH?8[L'=D1%(*>_;V@K4KK-49"B@6CG0:E?=JI?7BL
MW1PD1WR'!W7V'=8-" )G (I\T3B79)6W^X>R[;U0*-TO0-JF_4BIS5MBE1!/
ML#:VD0<_<1*KRKC4&=_FJ+&G*]TT?-L#)-UT+:; ^H)R (G<0=:89-9CTT+3
MJM8ZR-8]R!?M.()Q_3IS3=.6EUPWC8]S(#P^V>.7A!_G>743RN4C=V']E]P8
M*N2</0=Z@#%PP )P@.:&5Q"=!%EHKN;=$^=MK@=2%Z/<\;_\6&-L[N9'=^=J
M'H!"\ 53D 425 0O]P1$X#_WV 2%7LF/7NA)L,I%@ 5#H))T0P5)8)J45Q :
M !H(2D]54DY!3"Y$148 )>X   !6$%>3QJ(M 0  #$Z"-"D"HB ()6_JR'$3
MADT#!0^+8"E")0L4@E>2."'RY,J4AP^G4*DBQ""($QF=B"3I0F*1$R 5#'E"
MA*#!)D^L% DBA$F1AT2"4 EB$J=.GCY!-*G"A$H2*#YC(MD)94H2+38+QH A
M@P8(2 AV**TSAPX(,65 N'GCIH6>,G+>@* CEVQ:)F_&- 31IDR;-W+R\ W#
M\ S<D$.'++&*U2 -&#EL? T[MNS9M&O;OHT+P@Q@$%.F@.C1 P21CQ 52(3R
M1 H5U":7E,F#Y,V;-0]-2BDS!C"9W :AL F31TR8,;@5F"3"YHP9-P\U !H(
M2D]54DY!3"Y$3T, U!4#   U$7F*D 7T!   #$K>U)'C)@P;-FG<G &19@Z(
M,"#NA,D#@LX;$'/"V"GST T9$'+*P&$S$<25A&3>W'%89J,;.G-<-% P,T8*
M$""H7)Q#)XP<.B#+C'DCATS"A2W+O)RC R>4D',<&L$A4P$(2 2R"(R8YB (
M,1SAR'G3!@Z=,A_-$'T(PDQ7C@7;E'&!T\C8-A71<*231BZ(/%O1I*$S\RH!
M'E+*T!GHQ@>(+6O'(!RS!L23)5W^"I0#(NE2KE[!8K08\F/"O!S=LBE3&"O@
M.ACA"$WC%FW5F3)NYMQI$4[0H46/-@7QM$Q4$$9R5#5,1;##.UW9@)#\9LY>
MO;^)&E78]NUM!3-TZPPZLF08-YWQ-.3+7<WF@@?1=E\]O/AQ(S%@+,<:Y$R8
MA"QH!AMTH85UEUGRJ<491*HI%89<=(&@%6QSH"$0&Q_1D8=L#+G1&@%T8-=@
M7!R]809;8K64AD!SL$&1>XP9M%I:WETU@'US' 4"8HHQYL.'#:&&T8,<A>&0
M9&E0IJ,31+5A4(03<N893*!))UIY><@G1AB4?5@&'ES2X>)##H58!D5WE!%2
M=D79AM,0DZVA(Q4#B7$1@=*%A*6 <GCI$I5&MF4D4('"45V.8JP687-!!OF&
M&V-"Y,8;&[&A84<?M9'&&6@ -488=5CGI1QCR>'0HP^-P=>C9:(1!J%K\N47
M&2(I1>M+W]$@WD4B4&>="$(&%*-TT'FD4GU0277#?@1,D= 8' E+D$$@I&2<
M&R< Y>I&;!6;TAT!O@9"&Z$"E5)>05HT;AAK<#38AV=<%(9$>7Q7@VY$")1H
M&2T@J21WJ$+D@A)2.#$?1RC05FT9;KDAWVFO<79%$DZX0'$2-YUF)@A$/#'%
MA]ZJ5.5TH%H'@K3P5721GB11M'&#$:),+9X@Q/L0O2#KA=Y@W;G1D%X.L3S1
M45!N=>ZD0#DLG[HIWG=#A^@>:>1<,\W$Y%E-)7%BTSD"C-[+=;BAZHKHM9N'
M0];.@2U0=Q"U1H!TR$&1&'(<I6,=OH71F@$A@XM1'6.@028(34S10L=3I"=4
M@&Z92D=5&@A*3U523D%,+D5810 EU \  %<0L%47)@ 7   ,3;1P"[  @$$0
M!@'\^Y<00 EV#8$ @$2"P$2&D(:A6P& "IHT<T# D?/FC)PP;4#(*1.G3IJ5
M(9ND&4-RSALS=$!<2>.&S)L[<UPT4$!"BX,/M!(T"X$K ).E%R<><U*D0 !;
M $P V##+@#4! , "L B!F($ "<&J!?  @$0H .@ * 4@%0!N%@$4&)MVXH$ 
M IY,!.  0@-(A)L$$!$@0@,7%2P6 "0V(9@ !P# X!  4,,S 1)HYB# ,R0#
M!Y0\J2+%21 F!@U(*3+DB10B: \L*9(%R9,G2\ B@,(D2!8A088L&:"7"),C
M1ISD18L@]N[619@0J#*EB!0"_P(T^Q'@JWCRC 2<#^!FP'I&!- &8#B^,H %
MJEF[9N*B")8B";5!QQQ 301!%8NP@XL$ *!SAP'$>&& "8H<@,DHA 0PB!\*
MQ-7  L#4D< *P"Q23A?"=(C8(#YD&!<#N" 1@ =0&#"%)@L9M(@1#(PB1  X
M,@3 *"Q4<(P!0* % "X+Z6*0%%#\8P<#FGAFT"@H5)"(!2I4P.0_3@( I914
M7I+0*(@%L*4D 7P9YIA3:N+*F32H:8$-;3;Y9)1QYC@D"%I:((*78$$AQ3\V
M *J),TJ.PH.=/FC8(EITZ(!HD;A$$  4N.0! !0D0@&%)K^(M<X(C1CAC@6C
M^IGJJJT*N4X#@?@!CZ9UC".E/.AT ,"KK(8J:I &@5@'.#O*8R***@* H()@
MH;-% 3L2T(,= -0Q0#HP!-##'7%=T ,>V6X["0 ]>*IM.J\ L*PP8*WH@R&4
M;ON!I"94$->V%<QGPX]- 9 )E*$BVB6B66K"@UC&;DO/DC+2&"JQ "1BA#] 
MU"$!+JA\BHLDGZ+3"P'OQ@O D?E2$L"1)/0+0,$VL(EHFIKDTRAN6QH10,F#
ML9AON>ELTN < Z"L[\O B#JJ%V+Q+"^]V>KAL[YUS$'B*(H$, HB*QN 0P!H
MY6! AG5X@"C 8 T,:M(&5X!P!12#2$<0Z$0R@-PZ'$FOR@%':0.>B-:I21YB
MC<)!H!Y4X/22A0I+\<1^+NX!%H@5\:P'CF S S#HU#/ /494!P@=)NRHP+4 
MR.%!N@#<D<&E7FK*IP*.^QGP.@*0.$@[ ICX01=-*%,=8I-7?GGFN%B$CBH#
M7&%%(#[D>[@<&J#3A@#&3B#LJ%OD9;1!ZU#NK@?Y[FC (E8@L,@^B\#CP0&8
M:Y/+7O*4\@&++<<U <M'+W+$^5= P"BZM249!" 4W5J$!0R8@O]E(( 1FI#_
M)!C  =K)@(.84 44X(4O[*YWY?A=\*I3/ !8+D&8PP8N#- @"33/"CMB0 \H
M98$>@&5=C%B2,3R&BY!%0P#KT(.\OA87#$2P=/\K704982='=(V(XZ/7!!<!
M00F98 5)W$  !V  )D[  DZTF#X2805^A$**[(/'_ !0/Q8E*5L56( T^!"!
M/QA@0_J(2P)VI _T\6,==T!,*)BH0">:( !)C$  292)=8AA$1Z0XO^HB(  
M=+$Q8-20 >BE@%#H( !BHU<=MH&.3! $&'1(@-X"H+)U, ,QJS1(WQPWC(2P
MR$5TB 7L,K4I7&!K;<,R1T+6H0G$=/"#O@.>\ 93PA.R(X6XH$&#Z!& Y_F!
M 9JBP[9& 8 -*2  =%! K13 "0%H,QV%4(@='( +30B 4Q'CE <^13%<Q.!3
MJ6(&%$1V@$$0@P#YW.<E^DF,WL$#$'I8!A?H\(!\L@H7V   C31A@+W\R@C,
M>&@\ZQE/AXX*0 899SGK8(#;#0 Q5TN2E-B)EEC)$BWKN( W!5"'"*R41.M 
M!V)JQ0 (@-,<)/(",D.HS&8]"Q?1.D&;XHE4>OK)8ABK*2[<X3%MA(P<2%O6
M,*3D#V$UU:7J] <N5$:C4.2K!2K+1"XZ=(]\+ (9T0!'7 <0C+B"E:N:, $+
M3Z9!OJ%%JX@YJO+:%:,9 5,3<["HQ?@!!#J804K\0%36$,6UB6G"HENSTV3M
MP(^Q&A87B)@ 6*$*68IMR!__H(,*=N0/M;+5K7"5*SCH&M<"J&P4GV2M*0W 
MM0A8(&N 79($>NF/D&6&1,%]UN;0P0&D0:%:-#(?C7 ! PB ]5T6V<(*B#$'
M#-P#&S806X?N\(#P&H ! + # 6PP"O0N AS_& <L_K$+6/BCOOVH+S\P =;-
MP0L <4-E%1AA@!Y4K# 5LP&#$N$#"E3, Q8  ($Q4#$+:*!!*!  .BHQ '2 
MH ";NZL-'!Q@.FP 40Y&%(,016%$11A1%T:'//"Q3UL(8+[KP,<PJC"#=NRS
M!MTL*(@6@0XLT"$ P^CQ(HZQCF\<=2%=V'&"OA3E9VW((G2@EA$(@#ODGDC*
M"D((%*X<%RUS>0!]TX0I,A.R9OQ#J\^JUCW<8 "+E10,G]H0"[-LOG6@N:6:
M2)]!]AF*-W_Y65(B@";24!UW'3I!B=8$'AH-9TBK5\]E[O.?/28&>D*@T?OL
M@J&K;&D"8)K/1C" G_N&"SR#=9\W&#68)R8#2C^:'9 3T@JD<0_U5CK,>?8#
MELV\:D#[:9_Q\,>O(QVY6S-;2+\>!#L$0&9M_6/+N!!SM=2FB7HT&JJ+@(:7
M2<T.*1E $PL0C:/);6Z*17O:!;,# E)%@'T"@F1;7D"JZX" 06Q90U9@8;8_
M9>YG&P3<XBZ1L^UP[F9'&0"T@,%21O&#)0&@!DM)A <X0N 6$.8#/2R!+F!A
M@*58X .+<  B # .%SBBP%E9A U8 (!B&$ 1$M;&#+9A@W]$$@")/7DZN- /
M&]C<$3G?!7-Z_O.3O]S I7, S<=A T<$8P;_, $@#$P'%N0"O;Z8YSQ,08<%
MY.(??]B</%Q1APRLHQP&>!_*[_$+(P" %9B(!"O\@<H ($$5XKC'R7=A$4"<
MPNZ_Z"$1EB('!=A#&*.;S"/L#H0EY.$<O@#9+T"&#E$ (/, V'R#< YF7W3K
M%]U"1Q\^KWG.R\7/SP*]Z-%A!M:'GO-L:- '^B&W!52[ ,?8,D-RT99=[,4>
MA[ [. E "Q\L90CBX%5FJD6+IX0@Y2L?QP%V 1:?&T*BQ;  1T*^E \ P@=H
M, @=&N !4*2AYA90 \1+4/YA[. ><U# ;Q;1@''8XQ_1L [R8'_XYP"#\ XD
M4P +4 3F) __T 'KX ZU] @&X 8 H M@@0,64'%TD )/EQ4O1W,$UFF;HU8 
M  A8MW9LMP]'< 0,AF=G]P]K=P_1L C1\ MHX0N!  ".L#IWQP,@0 ?[P ,)
M0 ?WP ,-0 =OH "HM 9'X 2L (1T@ Y$2 ?D@(1TP 5,2 =8P ,B0 <DP ,+
M-0!"L [D, /)$ 11N%#ZX(5T0  #$(#3L AUE0X3$ VH$ !UH SK$ !0B(4K
ML(4GX(:Z((;:5(;L@(9J:(AM^(5P&(#;0(?18(=XJ(?2L Z7<'(,I@4 , #7
M< 31< Z>" CBT%7BL C$, I<X"[8, #[8 $'8 .)\ -#, 3%8 -XQ@JJP(1U
MH \Z" !5YX-^MCFJ$(5!.(1%>(0-L"Y_  "\. #KD >((8NT. 1_&(3;4(77
M@(5BL(5>X(:#.(:J8(:*N(9TT(AT8 "PP 7S,([1L(Z3V(YSH(XB,([%\(=)
MZ );J )N> N&. #CF(AI:([HJ([L.([9 (_I((^6  OUN [-0(PG=PQLEG46
M^"Q5T(,&AH9TN CIL CYD 0R1W,+8 ]T@ ".8 QK5P1LIP]%< E 0 +*U@_1
M4 X#$'X?< 6_(!KH  [Z\ 6+\ R+T \#@ ^)X )>(%$'X C>, /VD 3C, &!
MP ,[, 19E@A^8$)%H(N\J _BT Z)X 0 <')=\&N+< V,@ V.4"+"MCDQ.(/1
MD 21L CZ\'"(QG")%BKHL!?^9 #D)FU@X#R+(&^I @J+@ _51@%>E0$A4PY!
M9@ J0 Y 8#$$H A;1@! @ @%< 3&4  ZP)D%P 6<:03Q< 2620"(8 3V@)7X
MD"KB  6I @_[M$/^!%!&  K[1 ?_X$\",)E&@"Q^8  +\ ]U, ([8 Q^8%!6
M@ Y'H ^\>9C#60<-<"0W  #HU4'!A94&D -V  Y^X #4"0 B@#38^66%"057
M@ XT5YOE&66!E2"+X 7@(6\%=P<"\ \W@ Z:X"[RF0@'D A7 $(HPD)Q=@V+
MX V#>3[^D)9KZ98+ 9>+(&Q+EH=T( "DD 3Q6 H3D SS0 J+, ]T26Z*8 8D
M$W"6B0!+\6M6< 41FH"+T 6]TP0D4P7GPV^+T <*L!0L&IR)4 ") *.)(*.)
M0*.)P&^/4 0*( <$X)3K@ #H, :?]U<^6@<,\ 5>H%7. I^I%I\*L #8$)\(
M4 <+(&?C\"[5<0]EB@QR9@8*, !JNF5H&H=FFCH3L#E:-0<TA@X4A@5W>@#H
MX !+LA"9H%4R0 [H@!;#( I"X(SD4)SG5W$#( <-X(5S,*DJ40"P4 #K< "(
MP0,38 <W-@&[  < < T74IW#H C$L [W@ )A00!AH!!\X1[R$!8 $ >=& #\
M8*MRD*MW0 !@(1?NT0\" !:>XAZ[<!8 @!;NH0=_H1>YJ@[/RD+ND0O/FAGN
M80@& !;,&@#(\*P=XA[_L*W0ZAXC4$D T "Y&@C%"@#4"B3HVA;N 0OH&@&Y
M^@OHZF#N80_*.D_N 1=H00*Y^GYH,0.YVIEH$06YN@'**@6YJ@E@ P!3D*M<
MA!94$*U6X2RYZ@L9:P6Y6@$9BP706@>RVJWW$!\ D 70RDT, 19[D4,,P1SN
M87-HL070FI0,81'9"A@ < 6Y.@,% !8BZQ[( *P T 6YJ@$\FWL"0 #DPA!H
MT;2F(*MJ00"/(*O,(2 $,@=LX 9KT 9CH 9KP 9ST!![ 0D94)5?8 1)P 1%
M\ 5)X 1&(!B0H $.%@AX&[&04 %DH!#_, 03P0 64*P8T  )P "(>P (8 $6
M\ \2T  2<)\3X0!5X 9A( 9L4 9!^ 8@0!-E$ 9TH+EFD :9"P!*\ 9U( >6
MRP8@( 5E, 9O( =]ZRQ>ZP8_X0:=^P9D4 8&<;JIN[H@  5L$ 9Y( 9A, 9K
M8!"K6+F7F[F;"P)O  =E@+NC6[J^J[IAP+JN"[NR:Q#,B[F:JX2M^[ED  )&
M0+J\>[W *[S$:[S(&[4 T&D,P4):"RYN@1@$T+>6  ""  "N:A#GZ[Q.@!*\
MRP/0:L#HY4Z>$0A0L(-L 0"940+6"0"$P!QA 06"$,":.\!MP+L ( , X& (
M :CRL:Q0  C X;TA#  C;*L&L2F , 1AX 9C4 :Y!P "8A! @!@%H+_\Z[\)
MH<$@P,$%?, 3K,  P, .W!81/,%L=L$9C+Y#3, &X6 B3!C+FL4P[ 2QVP;9
M:Q ZL,(M7$XO?,)4D+IB\ 8&@6=7#*B5 <,R3,,V;!#UR[5>"QH(2D]54DY!
M3"Y( "4E)7\    2#R:@;HJ?    #"/(E#&3QDT9$$F(#'GB9 H5$! AVIC8
M0$' @04/)J1218J0)Q$EVL!1\2)!@PB)$*G2I$F6D"!RR*Q8\84*$&32A&'S
MY@P(.F7:P&$3!B@(.67FO*DC9\S!-&1 J'A14N#)@U**+)1"! 0D S&J8D0)
MA4F0+$*"#%D24D9%#1H(2D]54DY!3"Y20P E)=(!  !7"X^ J-:] @  #"/2
MN!G#I@Z9,B!$W!%(YLV=.2[0B&B@(.# @@<3JGE31XZ;,&PB3E1 44J1(4^D
M$ %!)$D0)D^.@(@! P:+F35LSIRADP8,BD."0*&2Y(F3A$;2L$'H)$R;,B.G
M4,G"I B(*U.^$&%RQ(B4($VL\KF:U4J2*4F$5 4Q%NL7*$^@5(%"44B1(TF<
M4 3!%T21EE2H%,%"!82-PS=MZ*R16&<,&3>+9 U2A<H3)%.&2'G"A,G>ODP$
M$^Z+5"E3IU!OYJAY,P9C$#=NSH@]4\9GOD2*&)$[!8F0RI:/BGBR1,3-)$2(
MW\QY4X;.&9!GTK@-@K=OX$83#@DSL P;XR"0!W4RI B3FSA>.Y<=/<9T!46<
M$*%(7P$4)D&R" DR9 E+ES#)1)-CS.W4TT\*!#544<(EM10(33T5U51KN;55
M5U^%Q1997YB%EEIB<0B77'0I8!=>>BE VE])!#9888?9T-AR,]86V62579;9
M9IU1%]J+I(G@X&D2WD2;:T;*=J1M*O:5VVY5]/9;8-F)X,0;<K0!$GC(*0?"
M>E\^U]Y[I%DW97 )4=&1&&^ =Q@.R\$9)GNMD=F7F=@)MUUWWQU'Q'CEG0="
M#C+."0)T=5(4WWP* !H                                         
<                                        
 
end