keithd@cadovax.UUCP (Keith Doyle) (09/14/88)
Contest rules say you have to be able to drag the drawer with a demo in it to a hard disk and have it run without any assigns, assumed disk names etc. If you are using the Director and doing stuff with either sound or custom fonts, this is pretty difficult. While you can run the AmigaDOS assign command from within the Director, it uses the AmigaDOS Execute() call which won't preserve the current directory for the command being Execute()'d. Thus, commands such as EXECUTE v,"assign fonts: foo" (Director syntax) will always assume that foo is on DF0:. Don't know if this is an AmigaDOS bug or feature, it sure has been a pain regardless... So, I put together this little hack. It figures out the correct current directory, does an ASSIGN HERE: to the current directory and will run whatever list of AmigaDOS commands you might want to give it (in the icon's tooltypes). If you make sure *all* files in your Director script are referenced via HERE:, pictures, fonts, location of sound module, etc. the resultant demo should meet all of the criteria outlined in the BADGE contest rules. Hope you don't spend more time making your demo comply to the rules than you did making it do it's neet stuff in the first place. This hack will also unassign HERE: when it's done so even the memory used by the entry in the ASSIGN table will be freed. It will also work correctly from the CLI (as per BADGE rules). Perhaps this all could have been done with XICON, but it took me less time to hack this out than it would have to wander through several thousand library disks looking for my copy of the instructions on how to use it (where's my disk catalog disk again?) and I wasn't sure if it wouldn't end up having the same Execute() problem anyway. Oh and BTW, we have tested Director under 1.3 and haven't found any problems. 'Course we haven't seen the release version yet so there's still a chance that it won't work on that one... :-) We've also tested it on 68020's, and found that it works, but its speed can call even more attention to a display glitch that can happen sometimes when double buffering. The Director's DISPLAY command will complete as soon as it has signaled the system where to get the next video frame. However, the video beam may only be halfway down the screen still displaying the old buffer at the time. If you follow your display command soon after with a command that modifies the buffer that USED to be the displayed buffer, it's still on the screen until the next video frame and you can see the result as a flicker or flash in the lower quarter of the screen (in a 68000. in a 68020, it becomes the lower 3/4.) Newer ANIMs usually exhibit a color palette weirdness symptom of this problem on the lefthand side of the screen, due to the fact that they're vertical-byte oriented. The best way to solve this problem is to do your DISPLAY twice in succession to the same buffer, the second one will wait for the next video frame, so you're guranteed not to have any flicker, and it will work correctly on all processors. Good luck, and happy demomaking. This hack could be useful for other programs besides Director I suppose, kind of a tiny XICON, it can run mini-scripts stashed in your tooltypes. It uses Execute() too, so current directory isn't preserved, you'll have to use HERE: in front of everything that isn't in your c: directory. -------------cut here --------------- begin 644 demorun.arc M&@AD96UO<G5N`#,]``!`6A$``"T1*)C?_)08```,```,F`<`TH$!!0\("%@` M2\$!\1X&"#@@'4,L3O018`+BBA`Y==RX*2,'A)48+F*``/!D24`G50(J827( MV1D<*=H`0`!(`A(\`(P@80/(@!-=%41@>0(""!(T`&0(.35U*"`-58D:`,&F MY@L4`&@<I2#NR3L`()QT<5('YC]92/0$T'44@:*E/WC\^S<T4%I=#G1P>2*D MU3]V5>5^&@L%RI,40&K.K&F&0]P`G>IB6?H3`+*C$S0L%7+F:`115`B?NEQI MK`?'D`5)FRSM#!TE.A&88;%"IX)_]$"T`;X"*HE_\(03A\KA'S4EAJF=4:`< M7G$`!/[9`H-`.``%*Z!H?]%"^U@22U<`.0S]L!F?<H$<]>=O=&E=$5BD5L[N MNHU_Y+S`@FR@*;'440'PH=X_V%R&PE""6'.4`>(X1AZ#$$JHBP%Z.#955A$> M)0$@9@'``"Q\['6&")<I,)\G2[7'SG07L@,:)?8=!0$O^PU'CA*0`'"&#\J1 M@X5AY(3W#S=Y[107`/%<R,V$3)2H@!)`F($!%(9Q\^$I4HJ(08D,1-$E&+K( M2&-Y-NHR@0VC4;6:'@#@8IH\9.*VDQD*=/89?K8L)6!-(KHQ&DW.J,46"`@` MD(8;=-21!AUIO.&&"VRD(88<8<B1!P!#A.'&"72`\`8<9;@!0A*02DJII0HX M.H:EF&K*J:=HA3IJJ68\2@8(:<RJ:J]LE`%`$'/,D<89JOK@1AILZ``"&B25 M(2U:1<@AQQMR2!O$%%,D<803(,S:1ANB_NK&&Z4^"L(0.@!0!!9%#%$%%47T M<&RRRZI*K1S6OE3%/_C\](\_3XJ%7V-/+(A/>_B<X0%I%^(3!@>#R1&`+$"\ M80`<`"A:1Q#L`.("HV#0`S(8\`C\CSS0[?EQR&O5@<2G$P'P4P`$F,:'8POR MTQX_9A``QS]@>$/>3J9)D-YZ^.B(S`[KT0.Q&2[@!MP9*,2,P)I,ZP*!/3$: MQL\9#NQ,P(7\F.:$8RM3TF0`%1_UCQ^#4?TR`\-!,H`\9JC@-=@(Z$A+V?^< M[4!>/+-M&@.#'0T&`/](P?;2A8N]Y1-ZVZ.U/6=`H1P_4"#R`@)6N7#4`/HX M=C4)2K!@LAEITZE%ZD<1H(-C3T*!NRX#2.,8&!3HR0#:3_+P^P"\N-[*3H3K MJ-030R./1^/EM2UVAT_`$<#D_@`C11!-`!#O"P"$`<<0[`AB3!'M&U-+,K3+ MP`,`/ZR!`!T`B"!,%,E(7`J>,`A%L``H!$B!$P;A""2<`Q"`0(`+L!.`%)P! M`DO0!]-<\0]Q@,$`4YG'%YPPAR%H,"VN\`<:(#,(29B!`2ZXWP``<0`G<)`2 M8.B9+@"@`<>PA0QOF$.M-M6I3R4A'P'Y@S_8`I.`O*!/.`L(#`8DC&#P`P`& M0-]1'D`+%EK",6:@0%6B&#)=/(`.CL%4`1?%AD%80@A0(0!7W!@#/@!@(A"8 MHR7J>,?OS%$1(&!!`8.$"NQ``1`LU,0<%<F+)@3!"5B8RA;10`(@*$$5`&#% M4L[@@J4Q`'-//`H`7)$#.P9@$)[0(P#0`(B`R+&-EEAE*[]#)C`(`0EJ```7 MMJ@(7.IRBTA@(2CF"`HE%)($CKD@,45@G!=$X"@.<-H3!#0(4(12%P*01`K: M"(I!D,*'@"$2+$$`"&B6"I8A``(6SV"!GPR@'4]2`31%ATYU,L!"@B3%#P2) MBJ/H`PZD.0H#M.`8$HRP9BH(64QT=@X&P(`$.LEC;D``%E:4`Q!@`0$1*`H` M"%S4!$"`P`20``@D``,:SV,`%0"1`R`,0A53F>)+3:I%P%B!A:P`(P*8\`V' MBDRD)(W7#PH`@B5(P70(H"8K$.2$RR`!!@4P*318,0A6U#0`N/A!"P#@@"<J M%4%6F",KA``#*`"@E'<<!"J@*E6JL@*D4E@$"990(@X`%1#Q0A%:SH`!7=@Q M`6>0@%]-=`8&#+8!9S#`8!50M+B"`1L,F`!:VJ"'R/8/:W$M:EPA`(&@"LD# M(%""%!0!@4(,5@1F@(!E44L`QX)0!7L!@P#`8`TPX$"SB^"L9\]@@L&"X`P@ M&"Q@-3#8XU'@L&A;[!FZ(UK2%@(,S@CM:(4``244P0P"F,(BI-!&5$SN'UH0 M@@1BRD\I.`48%ZUI`VC`PF\^P0P($$)WP8<-.IF@C:P`@P?8BEY`S)$4(5A$ MHUZP@*,40!KF->DU@+$4*11!%]UM`S?X>]'_"@$6C0*?(@'`A'<@!#N,D@'Z M&"!;"&3C"@$\FP'&)ULA8`"`B6,+#'CP!Z01``8C-A5VE(`!,_!C"D@0P1MV M,H60GA@9B3N#`*@+`O3UK`XSKG$.<6RB(J^!`CHF@)!W$HL$O!#(/+X"DNT! M,K:,P6@!8,O1%C5D.2)@RP@PL8^9N%`'.N"AN4D,`!PA4$3$1GCOW6E/X2`R M[S"`F0`@P0M2@!V!X@(LFY3"D]J@T:\`P`8"501(E0"(9-+`G>T@\%$6$"06 M`""9)`"!`2Z:4!`4H010:10I2F`$`'`"U$_"P:C94`)U@L)".F2`%00U(&F, MVA5"H(DTE@(&0`2+5IDB(JZND`0G$.$)5P!`0INH,YU\<JNHTX/11(D),HF, MVP[L#D2YRC?L`$`"\/4.`E```3!PP'AO8("\008#"(`%#-3)3;]-"A8AZ$0" MQF,#!(C@;240@@T((`(A=F#*=\M@JPQ`0C!`H,,!.()D@+##%!1!`5@$Y.(F MTCC'5T<(L)A!&WJ20&)'3@%>`*`%(%``3PD`@7,/C$7G0`">=V(";QO\'_KH M34<3AUO=`@('0@*``-B!"SN6P`Q25X80R@,#BM^18%X'P3_L0?$30``X3>_L MTP&@UQ;0[NCX2#M)H5YU`,`@M5Z'P=CEOO:ZJT!+HZ."V78@'GGP'>I@D,IP MY&%O&)1''E;\#C2($"0[=GT]AC=J;M4.=1BT%@@@1X30I1X0,U"C[BXP@Q8. MSW8[_AT#@1^\>(*C>:<C7O'`:7QYZ!%Y!4R^\G;7&^TWRWF[?S[THU\(`$SO M=0$@I^YL>`_KO9X=>(`!`G5'`Y]8[WF3@@$/7D?`/]P!!@MX_3?D=X#7STY^ M`U!\[./7*G*0,!P8R-\=CM-%/Y*T'G4X?O[`$`UF4TNK-QS\<"2)HR3J<"'J M<!0"P`!Z`P_,I@2QES@X``%!T`[_\`(K@`3_H`X00`A@@`)!8G-^,P9G(`Y3 M``AG0`DE^!`+<`:40P=9P(*T4`4L2#ER<`4Y^`]T``;,D('_``.1H('JL`,> M"`__!P^P,!STX#$[X(3(H341@P;*H0X,``$W-QU7F(4`L`)8TVYZ9P]F8`)3 ML'A7*`6&`8)J]P,A(PDHLA>IP2='PU-9*#+E)W_VX`1PF"+_,(=&@S3D(`7# MH0__)P]G^#)-B!QNX"7#07X@D(9KZ'1NR(=Q^(?O%8A@``N$.'Y7J`00,!W_ MYPZ+2`]MX`RC&`V%2(5F@`)@@`%-DA9]*(?O]3%(0SEXT(F&^'B)*`^+"`]N MH`UYV#.SB(EF8(O?)06Z.#G]H`#_IP_?=4OG@`0`(`2$P&EJ0`!$``A20`1* M$`AJ8`!$$`@*0`1W%`8^H`1$H&3;R%/OQFELX4#4:(W8J(W<Z(W@*`#C&`8: M``+?@PTO$`!A(`'^*`(?`(]U$)!A8``&B9`.!`,Z$P1*$`1F``)($`0V$``T M4(U.`02`,`PBH#-`(`,"(`C#``,!(`1!<)'NR`#Q&`0F$``AJ9(7B01`(`1` M0`</``V`,`V!8`N!(`8$(`F#8%Y1H`POTY)L!F((P&,^%@G`P"@K2&<!T1<@ MH%5ALQ.#X7-.1``X`&Y+HP`_H$-V5W<*,!AFD&J^X6\I%T$!<0!G0`%YL1=A M*4KT,!@H\`%X+]43K1AU2$`OJ@!UE@`&.MQ/`8$?_X(;7Y!F#85"%IHR2 M``%;E0`04%*`D)B4`P;HP&U/1#+D2`)($%K5<$5^8P&G$P80L!0D(PC"4`O( M4`;J`)DU@VY!!P+KA@!`D7-T^`\[UW,UHP0)=3Q0@``)M1#'PP!SN8$*$`92 M`'6#`0$)U0`D58FZ0`#N@`A`8)Q]I%)/0",)E3D"X`)+P9T%0%@2\`())0$. M"`SJ^6X.2`$>(@E"@$D$4)\[(03#Z7E@$"1N@3"WF9M!H`__8`0I@`2#@&$) M10"$I0!U^`T\)S+<B9QG``,@(`%!@DD(`'5C^9YQ-IW5648"``BP0`3)!`$( M,)@,R@!"0)_V*3G`P#=[82*IA0"8A)PMBI]&`P!@@`J7M"=)Y2([I`E+P0"Y MA$>!LP$ZT0![,3?TMQ?2"0#4"0C6*0`BH%<!`$:@<)@D1CEJ0`(:"@,)U5DG MI:&]AATI2GKZ)IF4*:6725*:>8O_X`.>J0"@J0"B*9R$A0&E^1`6T)JO&9L( M`#*TR19@(`XY:I_XV1T*``8-.##\X)>YD1<,*DK`$#1SB`$U4'%YI`318)H# MX``E0(T(4*AUL*D,VE%I.A$,4`(&N!-1.J76"0#B@"6ID5C:!@"M1&*)4F?G M8'<DT!7&0#PF(`4@L*"'A#[71`!V4%!+P)OHD&SN8X<T0Y4`\)D$:@P'.@BT M,!4@`&[)6D9R5$F<IE.$>E!L00(T80RNNA/8D0)*X#XY=TA@8`[<QF]@F3ZR M<""UZ:MV=PG+$*SN`P8.(&]1@`BQH`R!90)*0`+&RECN\*`,4*UU``(Q2``F M(`DYE`)2(*_("@C**J0#@`P@,SS84*>'B0"19P"55`WLX$9Z@@!M<&?@!@M= M(0QL0`!*X$(.@%8",`BX<#2FFK(KJT<O``.-XH#(P&F;A&:RM3(GVY?@YH!N MP+3OY0`.R`DM!;1K5C,KPY=5V5`@\)59"0>>M[(M^[*6H(YMH`"X<+,YN[.I MY;-<ZYL0"@,B(Z;8H9D#P"=H50!U"P;D@*]<I:Q;I0`OP)[89`@)!0N\\`^0 M0`!D\D(.R`%;&[1(@PL@4`!@0`MNP0\_H862A$WV$#2-8B+)A'!MY`GQECWG MMD,SDS+HAD!/P@$.N#8B*@)S(TH.4")86S->,`2QPFTSD:")-4>PX`1!@I69 MLQ.IX7.)\P(W!FXF%33%:PE<`Q0`-Y:B!`VIT8UOZYIMH(14M++**DB6$)^N M0U6T<+QMY+E!4KRZ0"."1!>Z$`#"$"-4Y0OT.PB^@"#[2CU4)0S]*PP((@I+ M<4!H.D$$4$%Q^0(-D$'?84,=I`)?\$$A-$)S4+R@8`8P4+RLP#4RI0HT=:V" MM%3WJPDRA0H)UE_GZTT(8@@E4F]8>[]P0$V@@""DL!3?FCAJI`ALD9=<R5`% M2[9"1P!H"P0N"[,,Y[9PJ[,N!`%TB[D[1V@UPYT'@!WPE;BBI`"C(0DK(PXB MX&0LT$:2X`3NL"1CC!UEW$)H_`^"L,8$T,9GG,8Z(,=T_,9VHD$"T&%8Q,9F M_,::X,<.`,ANG,8BD,=IK`P9(76*_`]\@,>!G,8HT,A]?!8&8,AU_`^LX,>9 M/,>3W$&/3`R2?,C_H#I\7,J;;`J$K,EO#`T.Q#,=1DXFTL9\=D,\14Y,E,IM M9LMH[`]B8,E^C!"@S$!O?,>]W$9\Y@[^H`V^G,9\8,E;)D?H@P#/?,I9]LS^ MP`B6;,O3W&1,XP[]@`W3K,V&,,R&O,S^$%W);,S,#`@=]F&@3"!I/$S)3,__ M8`K9W!7&EL9P\:LPT&$/$!`,X,<#S0%E3"@I1`K4NI3SG"C,;`L4P0X24='8 M(0P%80!_0Q&#Z3>Q\!`,&@`Y<YX44!`-(-(,(1`)4=*0P`0P$`,R,`,T4`,V M<`,XD`-A(`9C0`9E@'5^`P*0D``P``E$!0D8"@!```D/P`"0H`!)?0`)``D& M$`"00`%);0`*(-4"4-5)+4<F/1&1"]80@-)^(]8!L!!E71#_4!!\P-($,``4 M[3=HO0`DD-$;+1#K8-%_`QH(9&5M;W)U;BYD;V,`0.$+```M$2J8-#K(%0`` M#`H4@(!$`$D:%@$'%BPCI\R).2#"@)@#I\R8-&'8I-%3A@P(+$F&/''20N.: M,B#0A!FS!@0=E71`W$G#ADW*,FS@3'S3!N4;,R#RO*D#0D@0(D>*@!!(<,P; M-W3*S(E9!BI#AA#IO`'AM`T<-GEDIGFYLR>(GR[1H-1:YXQ:.5R?3I43)@U4 MB$P).(5:UTU'$';3HI13AXU4%PD)4E$;U^I4$(0-0YP:)FK:RD&'3D0SE(U' M,2C#B#'L<BL9NF<RUX%;E4Z:AGG)E&FS%45@B:?#W&$(&*C?,5+GA)&3)T5$ MB!+GV#U#.LW>LU"W2E0IQR.9-'-:AG%#)J]*.RC'3G1=4^8;.2W-R.$)HLS8 MMX+-HP?M9@R:LW"',$DB]N70F-N%%<044R1QA!-SY'7><7/4T9-UV+7D1A@] M050&'6,@EM=BV*6T4DL=PC&<:V,4-AQ8(-0Q1QEF%%8:"$2\9I%6<+UQAU]R M0'0'9Q$UE*)R;IR15XE3L6?&4W1`M*"*R\4WQU#<@4`;&865P0((8M014QMA MA)71DUBBI"*++N8U$UD!GO42;W"L=P9=;4#T79/*M4'3<""T^<9HLT$D6U1R MV.G&<GFM"<*$9J%EZ'4-C4%C6&MZZ2-H31+F!@CJ\:2A0E>H=2F306**)$1V MC<%&';)Y=.9]0JT&@FRT7;F@;9<:&F.C-!IG:%Y/UA'EE%5>^61/3Z&D4E9; M156>H7/D,=5L,KT5VK*,356'&4!AYP((2^5%1!UK28=E6R"@L&"'XDED1AF5 MK8:2#BT8%U@0=IX1!A%/3`%"$7A8I&49*!C7[+-M<)6130HD@,*.SMUGJXR. M+KDBJ5;),6%-81T)UU@0%8%%$4-4085277')70I7ZODFA7@E0&FH'H,L<A&J MTF131G=TF14:=K44:8\HO9R:I9BN5["AZ[T14\*,SGA>6&@1800,.ERYZJ%; MY0RI:1<R)"A*.UX57\PAC]PDK%LEW.%*=-1Q<%A"0^9KT9IRRR%$7)Y$:DQV MO-;VVX!Y]<8<RO'Y8L)A$)[&&9<>>=>+BT+\J&I`R^W&H*&V"A?:=!>\ZG]+ M)9`WG3R%1KB#<+@FUW&0,X:H3T!%GAUTT38<'^?8);P7'7W]=6&&W$Y1ZEH\ MDTIQ8V9HY&A_]PT+NY-MG2&5ZFXDF$!@AAJ%%,E(3B^W9%?R!X>6I4F_)EPO M=:@22YLJ5GR>;L()&'(3<5D>"C8L89S*\E_MW%-7>@EF_N0UNT@%,'1XB()N M]"K)/>U*V['.&PZX'1`,J$`'`@$2BB"%(NB`6UJY3$R:%C'B;`L$28C)3&I2 M*$]-A%URL$]\M/(&-M`A#Q6!B(C@U+4<`:96C/E?XQ:4'#K(H4D"I`.O>">' M)#%O7Q\K6Q%Z`((3IE`LY2&#="[%+W]%)6`&6]96B+:FO/"/0BB8@W$6]IX\ M#8="/53C1"IR$3.DX2]B@)1:5@1%F8V,BJTYHE3R@H(V%,8U7T%)@V08R#LB MQT<'LU%'4M`^`MRM/7B@4")?-4'D<#&*,^N!GM3@-+A(2P=H<X$=V5"P%Q%- M(K<J95ZVDP8N4>^$BQF,5`ZY'0`-RI9I>(K!+I6X!IDEB1KDH`?GQZ#%^:4[ M"@GA6!["E=4T!"H-Q-4#(Q(EBE@D#6;0(V82%Q\VO&$,E0GFI12EEKP88214 MF,('(QB?)CR!"!\DX>10H#$G0<DCP#*,<:X6RQ*&KF01G$P=9)@X'00D`0D@ MV\PBP@(1%-.94GH#&3YXRC>D3IUS$$'"$F!/(E2!"4H10:^X(U*(0B$(59B" M4F0``XCJH"&ME`T;NO2B2-XAHU0B30C-&8::^4=+"8.$`6X*K0;.;G>M4><) M4="JN!3&(T3UB-+>DM2EXI1;UL+6#Y]5U!2,5*(CHZA%%<<XH.I`!#;]:HHF MQ-9+3>E*6G3#"6+BE[\$B#:P@:@+(#$`%&1U)[XBPQQ2MM.PK%2Q5_J="RA) MV(=&%)1I#4-%+]K6J'CE@XY+TEO/BEFE:':MRFEK:.?`T:OH8+4M3<!@"WO8 MU;8'0Y0=`&G]:-K-UE54=_F@9^$P6HBBM;>HQ>APBRM;PJ;Q0J&-+(8F.]N' M!J$\6^5-0]9U3>`@"U,T0<GK(((".#BG;0UAP6-OFZ&!O@=[C$G8',9PQ-1M MIC,>T9,81(,BT'#2+S]JT@8["-H%.44.N#I+1>ARRVXII`IP$&89\"`>=J+D MC&W`ZVS.,[<5VL17+>#LI0:\3#`9*I!YB$TGL183WITD13I)4T\`&Q84;">[ M<('J8R(3GIT-<,,ZLEE>&H)>8I9GFGC;,'$@"(*=HHJ_*#G#&S)"26YE03-S MX,Q5(3.;V8`&?3"9I1L$1"`#(>B_X;F4YB9"WS38-\OX#9/&4-*51%*/D]QT M*%,6<$$S@V!D38""GA7"SP5-6)-"W8JO1.R2V<!!5XKFSA8=2T>,W*RN/H[) M=\J0%]!4!<U6E,W;K@1.RFTZ+@B>$8H26ZR(4,MTJ:U>7JJ*SDO9QR(^>]_5 M#-7G#"(T2IDZ&F/TPY\PF`%0EL.<D!2R9L[1<T7AB9VT*I>F_U"&.TUB=",/ MF,0AL^@J]2$>2JXS.V3NKB\0:?:&K2AML0U'O,4*8'P50FX0/0?.6R9W&.!0 M$3P9&]EQP^D;P..18-_NB."!8)1FK9E3'QA7JY8T@`\F0E.'`3QH?M5JD,B8 M5!)2!6&[@PJJW*T$Y!(PS_G25HX5$1!<(0E.P-<5J/AKC\`W7#6\80Y?Z"AU MGJ7=:GL."F[-DK1T:->,N<-YUD`?&8K`+D<205S:8#*/_)LWIG+.&@B5@*<` MAW:+4O+<A$CR2Z[(B76(\:7L,A9+BT72/V68?1+&);B)UR+!&4[&%F0H#$,D MX&-O-]2T-#Y?YB%]04I8"`U%[+=K\0XGO,)[0)>^(,/]52QB._6$M=#[^#UA M'N8*7;*,2UW;Y?&88A=Z49(W;C-FPMCA7;A_'A\HK(>4)0RZ,.ML&&6%Q5=X M)YS>3WAEHM2:*RH)DK@=;R-JNH8.I,FC[I)_!HZO92RDF4N3SFU`FP,1)2^/ M^1-F7IJ<X_"`"=LA'`&EH00X06G$PPRS>%=T]?<$V3='N3!#_Q04&7M=RS-_ M'Y(P_11V@#4W&(9`*\(&9D!J0%%5?>41(514:J`B+58M]+<&!,AWC)&`K7(" M/F(IRE8N^.89>L579?`7(52`C&%[;X![N1(Z'U@>IQ9"6I1GH;-;4M0#$^9% MQN):\U5?2P-Z;51$'S)U5?=#3M)FJ3-5_+%I)^@2@B2![Y-'@@%Z75)V[U." M'C$F\=&#)6(9]+(X]Y(O2$A/(?1*;":$!!A>M2-#QT>!%N@D&2@J<.%WF.2# MGZ%'BL2$2G0]28(39G!"03!F:^AF,?$?A7=?6S85-M,>49)V8-=Q8G<I,P%W M[7=)"1AZ*F<YG1,?63<1M?05<`,I.-0D2'8H<(08"<`?$T9',5%5=8=Y%R$; MKE0&+?`Z"/0BSH-XJ0%8BE0'8P%E=BB#0[$Y&Z9P'I$G#*$2<``1#:%TZ'$[ M4H%1%J9_EEB$:_<<-,0&[1<$Z:89LWAJ#1(HV-$15M-&#Z--F_,&32(&6X58 M41)!NF.!1C(J5U)55=&%.J%%V0:/Y!,#,&!!9>9K/%%U?K)QH5)&">`4J\%' MUYA*W,($2D-[+S%Z/!,D>/44>P4":^`&-M(;"LAE@".-+X$XU%(95Y(E,2$> M:P.0%^@3;H`B6O,BO-<U*-(3%Q(?=N07Z7=$V'2-@!(G%LD8VI,4C1$54W%" M4&`8B8,2O<=-0@%@K4)W//61(;DC6]$A#2(&=D('KA$JL.1`<M`"^[4BUK%A MK8,21\D]CO&'HD%YQ1-`M=1C(&`^89D:<-9$[2<%WE-,[D(&5](BJP<C9!ED MY8$3M607E<%Z@].2OE&1%/<3\M5Y4_<5SI%.JV,;0$&8[F)!]5*&4T!->=61 M-R@>_:0BE/102^`>9$$$;Y`'I)$#+Q`#,O`".(`#"2,#,3`#+3`#,E`#+="; M,1`#Y7(#<-`&PRD#=N(13?`4+;`8=6!6"@`:"&1E;6]R=6XN:6YF;P#,```` M+1$KF(YO2P(```SC(``(``!2@18`%@!(`6`$@`(`!@P$`((&J((6!B"@"``- MQ6F`"@[84-#!@XL&&8H`(&#@'5P2(:FK$!(2@0C^"A*H\(^:2($$1/+T"6E` MA'_$A/84>31IT:$_`01]NK1H4Z5$C2+%&G7J`*A6MU+->G5L5Y$%JA+XX[0` MT1$$;3(0^>%*$B=$GESI,>2)$QTR8+P(_()HO:@@.`H)(D29/=(8H@J7( DD"I4BO2`(^>-FC)CZ+R1`P)-&3EE=)`IT^:-"S-IV+0!`!H` ` end -------------- Keith Doyle # {ucbvax,decvax}!trwrb!cadovax!keithd