terpin@acsu.buffalo.edu (christophe d terpin) (03/19/91)
Below is the assembly source code for the homemade Atari 8 bit interface. I'm sorry I didn't post this sooner, but I've been working on a way to overlay tracks. My Spring Break is next week (3/25-4/1) so I will finally have time to write up the details on the complete system. In the meantime, the uuencoded source code below is the heart of the system (it was written using the Atari Assembler Cartridge). For those of you who know a little electronics, Midi pinouts, and the pinouts of the Atari Serial I/O connector, the basic interface consists of running the serial output through two ttl 7404 inverters to the Midi Input of your keyboard. The Midi Output from the synth is hooked to the base of an emitter-follower transistor with the emitter tied to the serial input of the Atari. I would recommend running the midi i/o through very fast optical isolators, especially if you are using a costly synthesizer. You might also want to use a three-state buffer instead of the 7404 so that you can turn off the interface when doing normal serial i/o. Anyway, BE CAREFUL. Next week I will post a complete schematic & a BASIC program that allows you to record, playback, AND overlay tracks (this part of the program still has a couple of bugs) as well as save and load songs to disk. ------------------------(cut here)--------------------------- begin 600 midi.asm M,3 @("Y4251,12 B071A<FD@36ED:2!);G1E<F9A8V4BFS(P(" N4$%'12 B M0R!497)P:6X@,3DY,2*;,S @.R!C<F5A=&5D.B P-B\X.2 @<F5V:7-E9#HP M,B\Y,9LT," [FS4P(#L@36ED:2 G5CHG($AA;F1L97*;-C @.YLW," [("!# M:')I<W1O<&AE<B!497)P:6Z;.# @.R @,30T($5G9V5R="!2;V%DFSDP(#L@ M($)U9F9A;&\L($XN62X@,30R,36;,#$P," [("!T97)P:6Y 875T87)C:"YA M8W-U+F)U9F9A;&\N961UFS Q,3 @.R!O<B!T97)P:6Y =6)U;FEX+F%C<W4N M8G5F9F%L;RYE9'6;,#$R," [FS Q,S @.R!42$E3(%-/55)#12!#3T1%($E3 M($E.(%1(19LP,30P(#L@4%5"3$E#($1/34%)3BZ;,#$U," [(%!L96%S92!F M965L(&9R964@=&\@;6]D:69Y(&%N9)LP,38P(#L@:6UP<F]V92!T:&ES(&-O M9&4N("!0;&5A<V6;,#$W," [(&QE="!M92!K;F]W(&%B;W5T(&%N>2!M86IO M<ILP,3@P(#L@:6UP<F]V96UE;G1S(&]R(&)U9W,@>6]UFS Q.3 @.R!H879E M(&1I<V-O=F5R960N($5N:F]Y(9LP,C P(#N;,#,P," [FS S,3 @.YLP,S(P M(#L@97AE8W5T:6]N(&9R;VT@071A<FE"05-)0SJ;,#,S," [,2X@4$]+12 Q M,#8L,34T.D=2+C H<V5T($A)345-*9LP,S0P(#LR+B!L;V%D($0Z34E$22Y/ M0DH@9G)O;2!$3U.;,#,U," [,RX@23U54U(H,SDT,C0L8VUD+%MS=&%R="P@ M96YD72QS<&5E9"F;,#,V," [+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TMFS S-S @.R!T;R!I;FET:6%L:7IE(%8Z(&AA;F1L97(ZFS S.# @.R!) M/5534B@S.30R-"Q!4T,H(DDB*2F;,#,Y," [($-,3U-%(",Q.D]014X@(S$L M."PP+")6.B*;,#0P," [('5S92 _(S$[(&]R(%!55" C,2!T;R!S96YD(&UI M9&D@8V]D97,@*&DN92X@/R,Q.R*004 B.RF;,#0Q," [+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2TMFS T,C @.YLP-#,P(#L@=&\@<F5S970@;F]R M;6%L('-E<FEA;"!I+V\ZFS T-# @.R!)/5534B@S.30R-"Q!4T,H(D,B*2F; M,#0U," [+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+9LP-#8P(#L@ M=&\@<F5C;W)D.ILP-#<P(#L@23U54U(H,SDT,C0L05-#*")2(BDL0412*$$D M*2PQ*9LP-#@P(#L@4$]+12 R,#0L,2 @=&\@<W1A<G0@<F5C;W)D:6YGFS T M.3 @.R!03TM%(#(P-"PP("!T;R!S=&]P(')E8V]R9&EN9YLP-3 P(#L@3" ] M(%!%14LH,C U*2LR-38J4$5%2R@R,#8IFS U,3 @.R!I<R C(&]F(&)Y=&5S M(')E8V]R9&5DFS U,C @.RTM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+9LP-3,P(#L@=&\@<&QA>6)A8VLZFS U-# @.R!)/5534B@S.30R-"Q!4T,H M(E B*2Q!1%(H020I+$%$4BA!)"DK3"PQ*9LP-34P(#LM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2V;,#4V," [('1O(')E8V]R9"!"('=H:6QE('!L M87EI;F<@03J;,#4W," [($D]55-2*#,Y-#(T+$%30R@B4B(I+$%$4BA")"DL M,2F;,#4X," [(%!/2T4@,C T+#$@.DD]55-2*#,Y-#(T+$%30R@B4"(I+$%$ M4BA!)"DL0412*$$D*2M,+#$I.E!/2T4@,C T+#";,#4Y," [+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2TM+2TMFS V,# @.YLP-C$P(#L@(&5Q=6%T97.; M,#8R," [FS V,S @055$0U1,/21$,C X(#L@<&]K97D@<F5G:7-T97*;,#8T M,"!/551"548])$-"(" @.R!C:&%R86-T97(@9F]R(&]U='!U=)LP-C4P(%-7 M251#2#T@)$-#(" [(# ]/7-T;W @<F5C;W)D:6YGFS V-C @0E5&041$(#T@ M)$-$(" [('!O:6YT97(@=&\@8G5F9F5R(&9O<B!R96-O<F1I;F>;,#8W,"!0 M3$%90E5&(#T@)$-&(#L@<&]I;G1E<B!T;R!B=69F97(@9F]R('!L87EB86-K MFS V.# @0T@@/2 D,D9#(" @.R!L87-T(&ME>2!P<F5S<V5DFS V.3 @4D5# M5D1.(#T@)#,Y(" [(')E8V5I=F4@9FQA9YLP-S P(%-%4DE.(#T@)$0R,$0@ M.R!S97)I86P@:2]OFS W,3 @4T523U54(#T@4T5224Z;,#<R," [FS W,S @ M5E-%4DE./20P,C!!(" [(&EN=&5R<G5P="!V96-T;W)F;W(@<V5R:6%L(&EN M<'5TFS W-# @5E-%4D]2(#T@)#(P0R [(&EN=&5R<G5P="!V96-T;W(@9F]R M('-E<FEA;"!O=71P=70@<F5A9'F;,#<U,"!64T523T,@/2 D,C!%(#L@:6YT M97)R=7!T('9E8W1O<B!F;W(@<V5R:6%L(&]U='!U="!C;VUP;&5T99LP-S8P M(#N;,#<W,"!!541&,STD1#(P-" [('!O:V5Y(&-H,R Z8F%U9&QOFS W.# @ M055$1C0])$0R,#8@.R!P;VME>2!C:#0@.F)A=61H:9LP-SDP(%A-5$1/3CTD M,T$@(#L@=')A;G-M:70@9&]N92!F;&%GFS X,# @4U-+0U1,/20R,S(@.R!S M97)I86P@<&]R="!C;VYT<F]L('-H861O=YLP.#$P(%-+0U1,/21$,C!&(#L@ M<V5R:6%L('!O<G0@8V]N=')O;" H5RF;,#@R,"!32U-4050])$0R,$8@.R!S M97)I86P@<&]R="!S=&%T=7,@*%(IFS X,S @4TM215,]("1$,C!!(#L@<F5S M971S(%-+4U1!5)LP.#0P(%!/2TU32STD,3 @(#L@<VAA9&]W(&]F($E2445. MFS X-3 @25)114X])$0R,$4@.R!I;G1E<G)U<'0@<F5Q=65S=)LP.#8P($A! M5$%"4STD,S%!(#L@<&]I;G1E<B!T;R!H86YD;&5R('1A8FQEFS X-S @34E$ M24P](#(R(" @.R!M:61I(&)A=60@<F%T99LP.#@P($U)1$E((#T@," @(#L@ M=F%L=65SFS X.3 @4D0@/2 T(" @(" @.R!#24\Z(&]P96X@9F]R(')E862; M,#DP,"!74B ](#@@(" @(" [($-)3SH@;W!E;B!F;W(@=W)I=&6;,#DQ,"!# M4%54(#T@,3$@(" [($-)3SH@4%54(&-O;6UA;F2;,#DR,"!#3U!%3B ](#,@ M(" [($-)3SH@3U!%3B!C;VUM86YDFS Y,S @0T-,3U-%(#T@,3(@.R!#24\Z M($-,3U-%(&-O;6UA;F2;,#DT," [FS Y-3 @.R!I;G!U="UO=71P=70@8V]N M=')O;"!B;&]C:R H:6]C8BF;,#DV," [('-T<G5C='5R93J;,#DW," [FS Y M.# @24-#3TT@/2 D,S0R(#L@8V]M;6%N9)LP.3DP($E#05@Q(#T@)#,T02 [ M(&%U>#&;,3 P,"!)0T%8,B ]("0S-$(@.R!A=7@RFS$P,3 @24-"04@@/2 D M,S0U(#L@8G5F9F5R(&%D9')E<W,@:&F;,3 R,"!)0T)!3" ]("0S-#0@.R!B M=69F97(@861D<F5S<R!L;YLQ,#,P($E#0DQ,(#T@)#,T." [(&)U9F9E<B!L M96YG=&@@;&^;,3 T,"!)0T),2" ]("0S-#D@.R!B=69F97(@;&5N9W1H(&AI MFS$P-3 @0TE/5B ]("1%-#4V(#L@0V5N=')A;"!)+T\@=F5C=&]RFS$P-C @ M.YLQ,#<P(#N;,3 X," [(&-O=6YT9&]W;B!T:6UE<G.;,3 Y," [FS$Q,# @ M0T1434$Q/20P,C(V(#L@=&EM97(Q('9E8W1O<ILQ,3$P($-$5$U!,CTD,#(R M." [('1I;65R,B!V96-T;W*;,3$R,"!#1%1-1C4@/2 D,C)%(#L@=&EM97(U M(&9L86>;,3$S,"!315160E8@/2 D130U0R [('-E="!V8FQA;FN;,3$T,"!# M3TY33TP@/2 D1# Q1B [('5S960@9F]R(&ME>6)O87)D(&-L:6-KFS$Q-3 @ M.YLQ,38P(#N;,3$W," @*CT@)#E!,#";,3$X," [FS$Q.3 @.YLQ,C P(%-4 M05)4FS$R,3 @(%!,09LQ,C(P("!03$&;,3(S," @4$Q!(" @(" @(" @(&=E M="!C;VUM86YDFS$R-# @.YLQ,C4P("!#35 @(R=)FS$R-C @($).12!/4%0R MFS$R-S @($I-4"!3151(04Y$(" [('-E='5P($-)3R!H86YD;&5RFS$R.# @ M.YLQ,CDP($]05#(@0TU0(",G4ILQ,S P("!"3D4@3U!4,YLQ,S$P("!*35 @ M4D5#3U)$(" @.R!M:61I(')E8V]R9)LQ,S(P(#N;,3,S,"!/4%0S($--4" C M)U";,3,T," @0DY%($]05#2;,3,U," @2DU0(%!,05E"04-+(#L@;6ED:2!P M;&%Y8F%C:YLQ,S8P(#N;,3,W,"!/4%0T($--4" C)T.;,3,X," @0DY%($Y/ M3U!4FS$S.3 @($I-4"!215-%5" @.R!R97-E="!S97(@<&]R=)LQ-# P($Y/ M3U!4(%-%0R @(" @.R!E<G)O<ILQ-#$P("!25%.;,30R," [+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2TM+2V;,30S," [("!-241)(")6.B(@:&%N9&QE M<ILQ-#0P(#N;,30U,"!3151(04Y$FS$T-C @($Q$62 C," @(#L@861D(&]U M<B!H86YD;&5RFS$T-S @3%!(3D0@3$1!($A!5$%"4RQ9FS$T.# @($--4" C M," @(" @.V9R964@96YT<GD_FS$T.3 @($)%42!&3U5.1" @.WEE<RXNFS$U M,# @($E.62 @(" @(" @.VYO+"!S:VEP(#,@8GET97.;,34Q," @24Y9FS$U M,C @($E.69LQ-3,P("!#4%D@(S,T(" @(#L@96YD(&]F('1A8FQE/YLQ-30P M("!"3D4@3%!(3D0@(#L@;F\N+BYK965P(&QO;VMI;F>;,34U," @4T5#(" @ M(" @(" [('EE<RXN9G5L;"!T86)L92&;,34V," @4E13(" @(" @(" [('%U M:70@=VET:"!E<G)O<ILQ-3<P(#N;,34X,"!&3U5.1"!,1$$@(R=6(" [(")6 M.B(@:&%N9&QE<ILQ-3DP("!35$$@2$%404)3+%D@(#L@<V%V92!I;B!T86)L M99LQ-C P("!)3EF;,38Q," @3$1!("-65$%"3"8R-34@.R!S=&]R92!A9&1R M97-SFS$V,C @(%-402!(051!0E,L62 @(#L@;V8@=F5C=&]RFS$V,S @($E. M62 @(" @(" @(" @(#L@=&%B;&4@:6Z;,38T," @3$1!("-65$%"3"\R-34@ M.R!H86YD;&5R('1A8FQEFS$V-3 @(%-402!(051!0E,L69LQ-C8P(#N;,38W M," [('-A=F4@:6YT97)R=7!T('9E8W1O<G.;,38X," [FS$V.3 @($Q$62 C M-9LQ-S P(%-!5D5315(@3$1!(%9315))3BQ9FS$W,3 @(%-402!3059%5D5# M+%F;,3<R," @1$59FS$W,S @($)03"!3059%4T52FS$W-# @.YLQ-S4P("!2 M5%.;,3<V," [FS$W-S @4T%6159%0R N0EE412 P+# L,"PP+# L,)LQ-S@P M(#N;,3<Y," [+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2V;,3@P," [(&)E M9VEN($U)1$D@2&%N9&QE<ILQ.#$P(#N;,3@R," [('9E8W1O<B!T86)L93J; M,3@S,"!65$%"3" N5T]21"!63U!%3BTQFS$X-# @(" @(" @+E=/4D0@5D-, M3U-%+3&;,3@U," @(" @(" N5T]21"!.3T953D,M,2 H9V5T*9LQ.#8P(" @ M(" @("Y73U)$(%90550M,9LQ.#<P(" @(" @("Y73U)$($Y/1E5.0RTQ("AS M=&%T=7,IFS$X.# @(" @(" @+E=/4D0@3D]&54Y#+3$@*'-P96-I86PIFS$X M.3 @($I-4"!624Y)5" [(&EN:71I86QI>F%T:6]NFS$Y,# @.RTM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2TM+2TMFS$Y,3 @5D-,3U-%FS$Y,C @5D]014X@ M3$1!(",PFS$Y,S @(%-402!-3T1%FS$Y-# @5DE.252;,3DU,"!215154DXQ M($Q$62 C,2 [(')E='5R;B!S=6-C97-SFS$Y-C @3D]&54Y#(%)44YLQ.3<P M(#LM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+9LQ.3@P(#N;,3DY," [ MFS(P,# @.YLR,#$P(#LM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TMFS(P M,C @.R!0550@9G5N8W1I;VZ;,C S," [FS(P-# @5E!55"!35$$@3U540E5& M(#L@<V%V92!A8V-U;75L871O<ILR,#4P("!,1$$@34]$12 [('=R:71E(&UO M9&4@/YLR,#8P("!#35 @(U=2FS(P-S @($)%42!74DU/1$4@.R!Y97,N+BZ; M,C X," @3$1!("-74B @(" [(&YO+BYS970@9FQA9YLR,#DP("!35$$@34]$ M12 @(#L@86YDFS(Q,# @($I34B!3151)3R [('-E="!U<"!F;W(@<V5R:6%L M(&]U='!U=)LR,3$P(#N;,C$R,"!74DU/1$4@3$1!($]55$)51B [(')E=')I M979E(&)Y=&6;,C$S," @4U1!(%-%4D]55" @(" @.R!S96YD(&ET(&]U=" F MFS(Q-# @5T%)5"!,1$$@6$U41$].("!W86ET(&9O<B!I<G%SFS(Q-3 @($)% M42!704E4(" @(" @("!T;R!D;R!T:&5I<ILR,38P("!,1$$@(S @(" @(" @ M(" @<W1U9F8N+BZ;,C$W," @4U1!(%A-5$1/3B @(" @(')E<V5T(&9L86>; M,C$X," @3$19(",Q(" @(" @(" @(&5X:72;,C$Y," @4E13(" @(" @(" @ M(" @('=I=&@@<W5C8V5S<YLR,C P(#LM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TMFS(R,3 @.YLR,C(P(#N;,C(S," [+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+9LR,C0P(#L@96YA8FQE('-E<FEA;"!I;G!U=)LR,C4P(#L@ M96YA8FQE('-E<FEA;"!)+T^;,C(V,"!3151)3R!,1$$@(R0W,R [($%,3$]7 M($D@)B!/(&-O;F-U<G)E;G1L>2&;,C(W,"!#3TY4(%-402!34TM#5$P@.R!S M970@=&AE('-E<FEA;"!P;W)T(&-O;G1R;VPLFS(R.# @(%-402!32T-43" @ M(" @(" @86YD('-H861O=YLR,CDP("!,1$$@4$]+35-+(" @(#L@9V5T(&ER M<65N(&UA<VN;,C,P," @04Y$(",D0T8@(" @(" [(&YO(&ME>6)O87)D(&EN M=&5R<G5P='.;,C,Q," @0TQ#FS(S,C @($]202 C)#,P(" @(" [86QL;W<@ M8F]T:"!T>7!E<YLR,S,P("!35$$@4$]+35-+(" @(&]F('-E<FEA;"!I;G1E M<G)U<'1SFS(S-# @(%-402!)4E%%3ILR,S4P("!,1$$@(TU)1$E,FS(S-C @ M(%-402!!541&,R @(" [<V5T(#,Q+C5K(&)A=62;,C,W," @3$1!("--241) M2" @("!R871E(&9O<B!I+V^;,C,X," @4U1!($%51$8T(" @("!I;B!03TM% M69LR,SDP("!,1$$@(R0R." @(" @.R!C;&]C:R!C:#,@=VET:" Q+C<Y34AZ MFS(T,# @(%-402!!541#5$P@(" [("8@;&EN:R!C:#,@=&\@8V@TFS(T,3 @ M.YLR-#(P("!,1$$@(S @(" @(" [(')E<V5T('1R86YS;6ETFS(T,S @(%-4 M02!8351$3TX@(" @9&]N92!F;&%GFS(T-# @(%)44YLR-#4P(#N;,C0V," [ MFS(T-S @34]$12 N0EE412 P(" [(')E860O=W)I=&4@;6]D92!F;&%GFS(T M.# @.YLR-#DP(#LM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2V;,C4P M," [(')E<V5T('-E<FEA;"!P;W)TFS(U,3 @4D53152;,C4R," @3$1!(",D M,#.;,C4S," @4U1!(%-32T-43" @.R!D:7-A8FQEFS(U-# @(%-402!32T-4 M3" @(" @<V5R:6%L('!O<G2;,C4U," @3$1!(%!/2TU32R @("!I;G1E<G)U M<'1SFS(U-C @($%.1" C)$,PFS(U-S @(%-402!03TM-4TN;,C4X," @4U1! M($E2445.FS(U.3 @($Q$02 C,)LR-C P("!35$$@4U=)5$-(FS(V,3 @(%-4 M02!8351$3TZ;,C8R," @3$19(",U(" @(" [(')E<W1O<F4@=F5C=&]R<YLR M-C,P(%)%4U16($Q$02!3059%5D5#+%F;,C8T," @4U1!(%9315))3BQ9FS(V M-3 @($1%69LR-C8P("!"4$P@4D535%:;,C8W," @4E13FS(V.# @.RTM+2TM M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2V;,C8Y," [FS(W,# @.YLR-S$P(#L@ M:6YT97)R=7!T('-E<G9I8V4@<F]U=&EN99LR-S(P(#L@9F]R('-E<FEA;"!I M;G!U="!R96%D>9LR-S,P(#N;,C<T," [+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+9LR-S4P($E34E-)4B!464&;,C<V," @4$A!(" @(" @(" @('-A M=F4@>2!R96=I<W1E<ILR-S<P("!,1$$@4TM35$%4(" @<F5S970@;&%T8VAE M<YLR-S@P("!35$$@4TM215,@(" @:6X@8V%S92!O9B!O=F5R<G5NFS(W.3 @ M($Q$02!35TE40T@@("!C:&5C:R!S;V9T=V%R92!S=VET8VB;,C@P," @0D51 M($Q%059)5" @('-W:71C:"!O;C^;,C@Q," @3$1!(%-%4DE.(" @('EE<RXN M+FQO860@<V5R:6%L(')E9VES=&5RFS(X,C @($Q$62 C,)LR.#,P("!35$$@ M*$)51D%$1"DL62 @<W1O<F4@:6YP=72;,C@T," [(" @(" @(" @(" @(" @ M(&EN(&)U9F9E<B FFS(X-3 @($E.0R!"549!1$0@(" @("!I;F-R96UE;G0@ M=&AEFS(X-C @($).12!,14%6250@(" @("!B=69F97(@<&]I;G1E<ILR.#<P M("!)3D,@0E5&041$*S&;,C@X," [FS(X.3 @3$5!5DE4($Q$02 C)$9&("!S M970@<F5C=F1N(&9L86>;,CDP," @4U1!(%)%0U9$3ILR.3$P("!03$$@(" @ M<F5S=&]R92!T:&6;,CDR," @5$%9(" @("!Y(')E9VES=&5RFS(Y,S @(%!, M02 @("!A;F0@=&AE(&%C8W5M=6QA=&]RFS(Y-# @(%)422 @(" F(')E='5R M;B!F<F]M(&EN=&5R<G5P="Z;,CDU," [+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2V;,CDV," [FS(Y-S @.YLR.3@P(#LM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+9LR.3DP(#L@5$E-15(@4D]55$E.19LS,# P(#N;,S Q M," [(&EN<V5R=',@82 D1D8@:6YT;R!B=69F97*;,S R," [('1O(&-O=6YT M('1I;64@:6YT97)V86R;,S S," [FS,P-# @.RTM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+2V;,S U,"!424U%4ILS,#8P("!,1$$@4U=)5$-((" @(#MA M<F4@=V4@<F5C;W)D:6YG/YLS,#<P("!"15$@4T545$E-(" @(#M.3RXN+ILS M,#@P(#N;,S Y," @3$19(",PFS,Q,# @($Q$02 C)$9&(" @(" @(#L@>65S M+BXNFS,Q,3 @(%-402 H0E5&041$*2Q9(#L@;6%R:R!B=69F97(FFS,Q,C @ M($E.0R!"549!1$0@(" @(#L@:6YC<F5M96YT('1H99LS,3,P("!"3D4@4T54 M5$E-(" @(" @(&)U9F9E<B!P;VEN=&5RFS,Q-# @($E.0R!"549!1$0K,9LS M,34P(#N;,S$V," [FS,Q-S @4T545$E-FS,Q.# @($Q$02 C5$E-15(F,C4U M(#L@<V5T('1H99LS,3DP("!35$$@0T1434$R(" @(" @('1I;65R('9E8W1O M<ILS,C P("!,1$$@(U1)3452+S(U-ILS,C$P("!35$$@0T1434$R*S&;,S(R M," [FS,R,S @.YLS,C0P("!,1$$@(TU)1$E,(" @(" [('-E="!-241)FS,R M-3 @(%-402!!541&,R @(" @(" @8F%U9"!R871EFS,R-C @($Q$02 C34E$ M24B;,S(W," @4U1!($%51$8TFS,R.# @($Q$62!414U03R @(" @(#L@<W!E M960@;&^;,S(Y," @3$18(%1%35!/*S$@(" @.R!S<&5E9"!H:9LS,S P("!, M1$$@(S(@(" @(" @(" [('5S92!T:6UE<B RFS,S,3 @($I34B!315160E8@ M(" @(#L@<W1A<G0@:70AFS,S,C @(%)44R @(" @(" @(" @(#L@9&]N92XN MFS,S,S @.RTM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+9LS,S0P(#N; M,S,U," [FS,S-C @.YLS,S<P(#LM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+9LS,S@P(#L@4D5#3U)$(')O=71I;F6;,S,Y," [FS,T,# @.YLS-#$P M(%)%0T]21)LS-#(P("!03$&;,S0S," @4U1!($)51D%$1"LQ(" [861D<F5S M<R!O9ILS-#0P("!03$$@(" @(" @(" @("!R96-O<F1I;F<@8G5F9F5RFS,T M-3 @(%-402!"549!1$2;,S0V," @4$Q!FS,T-S @(%-402!414U03RLQ(" @ M.W)E8V]R9&EN9R!S<&5E9)LS-#@P("!03$$@(" @(" @(" @(" H,#T]9F%S M=&5S="F;,S0Y," @4U1!(%1%35!/FS,U,# @($I34B!3151424T@(" @(#L@ M<V5T('1I;65R<YLS-3$P("!,1$$@(TE34E-)4B8R-36;,S4R," @4U1!(%93 M15))3B @(" @(#MS971U<"!S97)I86R;,S4S," @3$1!("-)4U)325(O,C4V M("!I;G!U="!I;G1E<G)U<'1SFS,U-# @(%-402!64T5224XK,9LS-34P("!* M4U(@4T5424\@(" @(" @.V5N86)L92!S97)I86P@:6YP=72;,S4V," @4E13 M(" @(" @(" @(" @(#L@9&]N92&;,S4W,"!414U03R N0EE412 Q+#";,S4X M," [+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2V;,S4Y," [FS,V,# @ M.YLS-C$P(#L@4$Q!64)!0TL@<F]U=&EN99LS-C(P(#N;,S8S,"!03$%90D%# M2YLS-C0P("!03$&;,S8U," @4U1!(%!,05E"548K,2 @(#L@<&QA>6)A8VL@ M8G5F9F5RFS,V-C @(%!,09LS-C<P("!35$$@4$Q!64)51ILS-C@P("!03$&; M,S8Y," @4U1!($5.1$)51BLQ(" [('!O:6YT97(@=&\@96YD(&]F(&)U9F9E M<ILS-S P("!03$&;,S<Q," @4U1!($5.1$)51ILS-S(P("!03$&;,S<S," @ M4U1!(%1%35!/*S$@(" [('!L87EB86-K('-P965DFS,W-# @(%!,09LS-S4P M("!35$$@5$5-4$^;,S<V," [FS,W-S @($Q$02 C,)LS-S@P("!35$$@1$]. M12 @(" @(#L@<F5S970@9FQA9YLS-SDP(#N;,S@P," [FS,X,3 @($Q$02 C M25-%4D]2)C(U-2 [('-E="!U<)LS.#(P("!35$$@5E-%4D]2(" @(" @("!S M97)I86P@;W5T<'5TFS,X,S @($Q$02 C25-%4D]2+S(U-B @(')E861YFS,X M-# @(%-402!64T523U(K,2 @(" @(&EN=&5R<G5P=)LS.#4P(#N;,S@V," @ M3$1!("-)4U)41"8R-34@(#L@<V5T('5PFS,X-S @(%-402!64T523T,@(" @ M(" @('-E<FEA;"!O=71P=72;,S@X," @3$1!("-)4U)41"\R-38@(" @8V]M M<&QE=&6;,S@Y," @4U1!(%9315)/0RLQ(" @(" @:6YT97)R=7!TFS,Y,# @ M($I34B!3151)3YLS.3$P("!*4U(@4T545$TU(" @.R!S=&%R="!T:6UE<B U MFS,Y,C @.YLS.3,P(#N;,SDT," [FS,Y-3 @1$5,05F;,SDV," @3$1!($-$ M5$U&-2 @.R!T:6UE<B U(&1O;F4_FS,Y-S @($)%42!24U1-(" @(#L@>65S M+BYR97-E="!I=)LS.3@P("!,1$$@0T@@(" @(" [(&YO+BZ;,SDY," @0TU0 M(",Q-#8@(" @.R!I9B!C;G1L+6,@=V%SFS0P,# @($)%42!84$Q90DX@(" @ M:&ET('1H96X@<75I=)LT,#$P("!,1$$@1$].19LT,#(P("!#35 @(S";-# S M," @0D51($1%3$%9(" @.R!N;RXN+FME97 @=V%I=&EN9YLT,#0P("!25%,@ M(" @(" @.R!Y97,N+F5X:72;-# U," [FS0P-C @.YLT,#<P(#N;-# X,"!2 M4U1-FS0P.3 @($I34B!31514334@(#L@<F5S970@=&EM97(@-9LT,3 P("!* M4U(@4$Q!64).(" [('!L87D@;F]T97.;-#$Q," @2DU0($1%3$%9(" @.R!W M86ETFS0Q,C @.YLT,3,P(%-%5%1--9LT,30P("!,1$$@(TU)1$E,FS0Q-3 @ M(%-402!!541&,R @(" @(#L@;6ED:2!B875D(')A=&6;-#$V," @3$1!("-- M241)2)LT,3<P("!35$$@055$1C2;-#$X," @3$1!(",D,3";-#$Y," @4U1! M($-$5$U&-9LT,C P("!,1%D@5$5-4$\@(" @(" [('!L87EB86-K('-P965D MFS0R,3 @($Q$6"!414U03RLQFS0R,C @($Q$02 C-9LT,C,P("!*4U(@4T54 M5D)6(" @.R!R97-T87)T('1I;65R(#6;-#(T," @4E13FS0R-3 @.RTM+2TM M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+9LT,C8P(#L@;W5T<'5T(&)U9F9E M<B!U;G1I;"!N97AT(&UA<FN;-#(W,"!03$%90DZ;-#(X," @0TQ#FS0R.3 @ M($Q$02!03$%90E5&(" @(#L@:6YC<F5M96YTFS0S,# @($%$0R C,2 @(" @ M(" @(" @8G5F9F5R('!O:6YT97*;-#,Q," @4U1!(%!,05E"54:;-#,R," @ M3$1!(%!,05E"548K,9LT,S,P("!!1$,@(S";-#,T," @4U1!(%!,05E"548K M,9LT,S4P(#N;-#,V," @0TU0($5.1$)51BLQ(" @.R!E;F0@;V8@<V]N9S^; M-#,W," @0D-#($Y/5$5.1)LT,S@P("!,1$$@4$Q!64)51ILT,SDP("!#35 @ M14Y$0E5&FS0T,# @($)#0R!.3U1%3D0@(" @(#L@;F\N+ILT-#$P("!,1$$@ M(S$@(" @(" @(" [('EE<RXN+ILT-#(P("!35$$@1$].12 @(" @(" @('-E M="!D;VYE(&9L86>;-#0S,"!84$Q90DX@4E13FS0T-# @.YLT-#4P($Y/5$5. M1)LT-#8P("!,1%D@(S";-#0W," @3$1!("A03$%90E5&*2Q9(" [(&=E="!N M;W1EFS0T.# @($--4" C)$9&(" @(#L@:7,@:70@82!M87)K/YLT-#DP("!" M15$@6%!,64).(" [('EE<RXN;&5A=F6;-#4P," @2E-2(%90550@(" @.R!O M=&AE<G=I<V4@<V5N9"!I=)LT-3$P("!*35 @4$Q!64).(" [(&%N9"!P;&%Y M(&UO<F6;-#4R," [FS0U,S @.YLT-30P(#N;-#4U,"!%3D1"548@+D)95$4@ M,"PPFS0U-C @1$].12 N0EE412 P+#";-#4W," [FS0U.# @.YLT-3DP(#N; M-#8P," [FS0V,3 @.RTM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TMFS0V M,C @.R!S97)I86P@;W5T<'5T(')E861YFS0V,S @.R!I;G1E<G)U<'0@<V5R M=FEC92!R;W5T:6YEFS0V-# @.YLT-C4P($E315)/4ILT-C8P(#N;-#8W," @ M3$1!(%!/2TU32R [(&5N86)L99LT-C@P("!/4D$@(R0P." @(" @=&AE('1R M86YS;6ET(&1O;F6;-#8Y," @4U1!(%!/2TU32R @(&EN=&5R<G5P=)LT-S P M("!35$$@25)114Z;-#<Q," @4$Q!(" @(" @(" [('!O<"!A8V-U;75L871O M<ILT-S(P("!25$F;-#<S," [FS0W-# @.RTM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+9LT-S4P(#L@5')A;G-M:70@1&]N92!);G1E<G)U<'2;-#<V," [ MFS0W-S @25-25$2;-#<X," @3$1!(",D1D8@(" @(" [<V5T('1R86YS;6ET MFS0W.3 @(%-402!8351$3TX@(" @(&1O;F4@9FQA9YLT.# P("!,1$$@4$]+ M35-+FS0X,3 @($%.1" C)$8W(" @(" @.V1I<V%B;&4@=&1IFS0X,C @(%-4 M02!03TM-4TN;-#@S," @4U1!($E2445.FS0X-# @(%!,02 @(" @(" @(" @ M.W)E<W1O<F4@86-C=6TNFS0X-3 @(%)429LT.#8P(#LM+2TM+2TM+2TM+2TM ?+2TM+2TM+2TM+2TM+2TMFW%Q<7%Q<7%Q<7%Q<7%Q<3LM end