From 31548cde8cefbb4cf2ac16c1bf8dde134ccd0386 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Sat, 22 May 2021 23:05:12 +0200 Subject: [PATCH] Kernel 0.94++ --- .Docs/Acosx Words.md | 2 +- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes A2osX.S.QC.txt | 26 +++- BIN/ACOS.S.CORE.txt | 67 +++++----- BIN/ACOS.S.EXP.txt | 80 ++++++++---- BIN/ACOS.S.KW.txt | 17 ++- BIN/{ACOS.S.STR.txt => ACOS.S.RT.txt} | 8 +- BIN/ACOS.S.txt | 1 + BIN/CSH.S.CORE.txt | 170 +++++++++++++++++++++----- BIN/CSH.S.EXP.txt | 16 ++- BIN/CSH.S.KW.txt | 69 ++--------- BIN/CSH.S.txt | 19 ++- LIB/LIBCIFS.S.IO.txt | 103 +++++++++++++++- LIB/LIBCIFS.S.txt | 9 +- ProDOS.FX/ProDOS.S.txt | 2 +- SBIN/INITD.S.txt | 13 +- SHARED/X.PRINTF.S.txt | 41 +++++++ 17 files changed, 467 insertions(+), 176 deletions(-) rename BIN/{ACOS.S.STR.txt => ACOS.S.RT.txt} (68%) diff --git a/.Docs/Acosx Words.md b/.Docs/Acosx Words.md index 70a6ae7c..0cd5786e 100644 --- a/.Docs/Acosx Words.md +++ b/.Docs/Acosx Words.md @@ -70,7 +70,7 @@ This document lists all of the **ACOS Words** supported in the A2osX implementat | SETINT | SETINT (*string1* [,*string1*...])
SETINT ("")
SETINT (*number*) | Not Yet Implemented | Sets the interrupt table with specified keys. | The SETINT command is used to set up 'interrupt' keys. Once setup the system will check for those keys whenever text is being displayed. If one of the keys are encountered, all further output will be suppressed until an input statement of some kind is encountered or the SETINT is reset. To reset the SETINT command, use the second syntax. If you wish to set the interrupt keys to those pre-defined by the ACOS config program, use the third syntax. SETINT(1) will set the interrupt key to the 'file stop' character. SETINT(2) will set the interrupt keys to the 'file stop' and 'file next' characters. | | | STR$ | *string*=STR$(*number*) | Not Yet Implemented | Returns string representation of a numerical expression. | Returns the numerical supplied numerical expression as a string. | | | TEXT | TEXT | Not Yet Implemented | Clear the screen and any window on the local console. | Used to clear the screen and any window on the local console. BJB REMY TODO: How is this different from HOME? | | -| THEN | THEN | Not Yet Implemented | Statement separator for logical IF statements. | Separates statements within IF statements. | | +| THEN | THEN | Impl. | Statement separator for logical IF statements. | Separates statements within IF statements. | | | TIME$ | *string*=TIME$ | Not Yet Implemented | Returns the current TIME into a string. | The TIME$ function is used to get the current time from your clock. If your system is equipped with a clock, the time will be returned in a "HH:MM:SS XM" format. If your clock is in the 24 hour configuration then it will be returned in the "HH:MM:SS" format. If you have no clock, then your estimated time on will be returned. The estimated time is based upon the number of characters output and the speed they were sent. The format for estimated time is "HH:MM:SS ET". When the clock is first reset via a MODEM(0) command, the time will be "00:00:00 ET" and will advance from there. REMY TODO: How is your implementation of no clocks? | | | TONE | TONE (*pitch*, *duration*) | Not Yet Implemented | Generates a tone on the local speaker. | The TONE function is used to generate a tone from the speaker in your computer. BJB TODO: Need to determine limits. | | | UPDATE | UPDATE | Not Yet Implemented | Flushes any cached data for the current message database. | The UPDATE statement is used to write any information about the current message base from memory out to disk (i.e. a flush operation). Normally, certain things are buffered and will stay within memory for long periods of time. In the event of a power failure or a system reset, this data will be lost before it is written out to disk. Use the UPDATE statement to force the data to be written out to disk. | | diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 779088780837d0d39ed37d44e8071cc98ec9128f..cbc43182aa90cb4640d7f7a4d03f51e61872d4c0 100644 GIT binary patch delta 62730 zcma&P3qVsx7BDJ7rB-d!)+);NKXdO5pxy8PzScbMnKNh3 zoHKLg%$YNx=Kcf!8hAP1_L9Hni(ZMHDn{r#MEz5%4&3>%SCrRbZGw8|RWBpoFJR|1 zp^=}c-dQJ%^7^MXS+Vm?;WJP^R=qRcn;?cOb{2cLD=73`3M!8c_hSeh){a&k3iLVS zjgMbh;EjD2`rJJvmrmpH`QbY$xrXPpbE-U=SA6J6`FkHd-d4kRN1W)W;dhO9-P!IX zhi{Eu@)NG#s3ieT5w$YFDKH``x#?GX0Ch9~fVPk(m0h8MhbAw(JQ+R{&~f=atNeJ) zH%+34N_IYVcAWW2Kw}O6vnv6vTia{+gdW{A&8}eTl^vIhJe8pl3LX38%K%eT1V^OC z&L_Mfc2XI>yHF*;!=Rf0H2@r2UNt_6o#e*woV1rGe~V8Og1%5V%yN{ z^g8#=A^v|q_7Vq|W)$ZZ>xzt-hfep@c*(oPC{7!rLJvUphqQ_6LuFr=^5iFYXj4p_ z9NlL$lB_uN@ue+7M&yTz`#u-qGfi6zJLS@b9oNFK?=|T+f4si=I`8mx{`N}$2LWi> zn1BG}hN_^$BaM#>mTb|~My4mNUBBS5lIpVM<%v&B%dK2d9f{(;!KPX-4W8n!@aKJt zU#azq;fH^REBzH=yvx|?uL$RTj~)JsQM^7Z`JLp0DU+ndGzzo!|u6jKZrLZ`f)LktVK@(@9hSf{U zYU8SkOX3qYB1sx*ShA+7HYyQG(ow_W%JN#>R3ytl+MSEnmDTDdO+u zO+^lBNG(}dl96sS)@ElFWh1Ep2rO9-1g0WU9%`sA1N!+K(L|&wz#qnhC}oAiSP{ke z_%bibJbMU9RD!gmQFSR$H)bwOuQlolN^*1=rE`pPkYetLHj6h@mmtY}!qs!NQF^3a zfEre=Usnr~m@~Ifm$e`(L$?4)7Lh8(ERbUG<4Bi?N1~KwFk(!UJ~7Nw&{Ig4gok>T zQ(m1>QML|AO~WXv#n`soOPRZbV|xOUlyht(A@#EV$;NWPB?3)Csuf5#0kcA%Y{{rz zw_10&!t0Pzww88$7v1<0?YJD>XvL@h;-@@vRwK+6%3muPEU7QuF;6jn$Na1FuP-_> zE=>5vs=Q72ErV~}aVz`oxcGf{yJW7L`|n)7*>d;$TehC2#qB+M0o5AWa{uF-F7KAX zk8in0HObn~eA2t4*FKKCH^ZcTzwf^5Lf;@x>r4suxksQa1K8A=qRJYu+;fCe1mXx| zK3ce9h5(--kO>4#go`1*P7zr{HRx@2x2u%+I{ zv-`IRMdoPZ*|@GKm%z9@zUvPz1r;3U?4|5+R66;0@WsOvH6h-{cP6%0Q;rQ3H5l!j zM6Djgf0q<-$oN$LPrQg=QoXM-_4d= zi<&a(d+I9cdrZkTjd{}@%iWbtS@k{C;b)Y*Q=b#FHS zYTm0zHnGFklw5wtatA8jH8tgccGiw@X3QtO-+vW4V!7UO+2St0Zn@m@z2!#v&zA3- zirafM<=5+boJj-Hw>|tN4l6gqmVgOTWe4@}uQO%N6R0F)csAn`iAJ z($ROtyMw8OF-|R!ZzMcPx)NL=q)1is1Nrdln(h+A7dzU~Z`?TsZ~J>{h!5!7hgvoU z*Qm0U3wHGP^}{s$(L_c7GQGH)oiw)?mTr>w=6*8HrG~8@327=!m#@0~o6uXm_3pmj z&VOHb{i-q9KZg}Co9z)57>lL5gej@FS>-HZm9w?^7a+CirsWnRE2fE&4P6=8kf84t z{=>f1Fy2+XXJ6`c-ecIQ&Q8jB>~xP?5r5pRZ+dKYPyBILT+?GP8R&x`Y(vvi?LC(J zo$xmJd|mr}LLXF15Dv2ZUGlN{zOOyJTWF-1NF3?vtW1!vCJ39-P6^Pl=-D{BWkuH6V&}$*3!594+Vccc8?b(=yBDL%B~or`u+A zc{!81_?36g$%O*;OVPwz}DACEJaigpEF1m5r1&rui7 z*bkC72Xz5oTPoToxpbyZep`>O?4~Z^J>{Y#ULgLwT=ev4KVAKi4k!g}MJqw8GbTKeRTbM7d|JLlZOQ}3K}`8hs2 zr&%G^ds{y{*J!2RhxO&gIcngGn%6X@%f%S7?!(z8H_x_ZWO`P|9=bFTB$4`&){jyKdC*O=nHg{cRQ)*d%mrq6hZmU~zE zh|8y ~v&OLSh#^my9I6Pt*zG%NTvUZ?fw*=_HhP5yBnkx<*&ZEt$M?>oD#pbW#PTcMF|mxGusxP>D>0rnQdFnY$Ea?@Nw2ldb z?onsbT#t1GV*iz*2fY7a|5c(f<4Oj_)+{=H=E06tgVvU>J5~=`_kV4ttl6|pNIAcD z2Ki-?Z{J>W%KWnM;#HzZa{;{vec5hs8@ke+nbt)5dLrG~ZiqL7h4ngBKzG_7G@>u9 zx%BpY`m;pZ8AHnYJG;ia^#H$~OS{DIMit+;eN!W(4EJq4_B3L@6LM*}7gRgZ4`}Y6 zwkOgD9l3Ou+|EuRM1fU8B*{i1w}V72IoV6`uOuB3o=2_5*D`%@FJYLm61FI|P( z@Ud-wIi@jDn=U)k9XAK#UAZpTg=cuRSf^ZPg!h``G0`*Cn{V ziV$~>x1-jTbX|R+>z*~AcIc0}!l=|AdO8--fK2WF#*t5JR>+}f;Dr1~JFF>G@ej^) zJHHuG|G8q5w?)(M2b_25_oDNA<>zbSsQxQn&ZxF%T$>>dOwXb9V!)tO{dS!#)Ij-v zThUox*frnf*V$&EJLKo<3-{#E_W8-C4s;&m-kMLtm-@o~&QqX?Ut06=xeRd}Pq&56 z5Fep4BtB~4=|S0H34L>-u5L3^524nr)>$|vs)Qu?^J>$aU|71EAtgVrG0aedILp^2_9 zxu-OTb=(|m^y&rjxq7QtuYJQptFpJ5-?4YFF_J)=`P)Tw$IpX}vE<2ddC;ourP6+) z{`#YHid8^w^P(-;n{udASDbOz`vyT*KMYcbzjKZFnh}{PbfIr8$sv z#gR=*aW@w?W`gLOx54%Qp$8%5D-wj$LdkI33!>c#mo$GezIO2P)HwGQrUhCySM{I9fTrUOF zfjZ*#xa7V}oY?MmDPV+@#N#q7ETnF_g%lNUyS>{)d=K)ZW1ckd+{~lw_;W0bHrwM& zR8O4KpZX-uCT9F1_~yLL0DZeCmk`!}+YRD0by05LF0otKb9%a+Q_8u@fJ2ZzPWH%<8nxz*a^={z_ z`JH4F^dK)Dzw~bExHa0u0kGM2zKJ*^nyv`Oe`~Fx98WVoqu|9CDaM=oXPom%a7vx? zhzCJ@sA9%}1aJ;<$f4`R*Q@JXIlNjj!^Xckh*R%N)FRMoy8(tMe*C^9y!hr|-SHsT?W6UB0IECg@A}p5g3;{Y z_sRslE-|dhBAOYo_B4}ycCu-Yj!xdArKzs(Z3`S@>1$fr=Hn7M5@`46Qwg+nEdKPq zB-pH@U88`6OL$Vy>khE~Jm?VgTHS*{=*FN`M^jJsxdryj1ba3ZoB4h2vL*z!*4^cD z^*1Tn4c6;}2Z2ZHHD+{OaK!Xl$I^~5z19SpGJkLU;c~NYM`&;3g+VfWmAzmYB+Wh@ z%HGCv48*I~%#1rSVPkt6PZOZY@%>=(wQ=+c1RS(v14k`6z>tQ(t>b8Repn3734{}u z%mE#UquRf}uA^(Hc>n8K8te>A^$TFA<^8Z|kS{)9Zd^Atrc>kSWcOW|kD79W?Y+KS zO-X|<0?B=|^r11f;kJhV$z{@>Zep>L+=5`iCZ_YyxuJw0939*_t2DV2N z(@OBcN*f%;$LRxLzukVx8_}1xUn(3EXhYjXx&rJsY+w4XIE9q$2U|4srvof`umhUP zr(q2MPF((NiN|0maEW1J*t3#N@OWVn&CC=1&(Ol&Mfl>srQ>*uu=HbT*qms3D`Be- zXziAV*u4(|MYk^l`^7#N7A3Ms0DBr!GlE`&S?RiD^NII|PPl}y2zd39zT9Tb{|$`^ z){z%KmL~C{@tYq@Cya`sT}m*`QS`y1UcDDU5Z+*%f6+LT+oJFwv~SL#w;O2S61oy} zezf|$tB4Z+XdO@Q38wdi(Dnypz?NTe77zr*c}sRj;CV|9_30Jobn0aPsqwU4)R*o0 zxi6>YC%}M_qo*1*=N%z*W6*g=Fx{v=-=RLAd@YtxzZOT^_@E;L>>AKf)aw>d1NbkW zNM$f%G@pEJJPqxd#5U3OV6yIp(7woZgE0BN>U@Xtyo*=2I}iRdZ66Pc z0nSwCPmZT6Y^x5&`y4oGC$ns8;dpwb=VhHl!&luDno7Fj%yP`20o$!6{YrL>r`urp zCrnSJsb{V@V_N}v3h9bX6pX%VKwmk%gHcZd>ao{Ilj-Yo2ty^H5BnmRzd$dl32mDK z!>`8`(&@T$eF}YjGCY0dl9H#%G&TB)?Sg6BB-$~VwuaEV#kvsM^E#O9m;yrsU*05C zn1kuIDWFqm$Sr_Ynbt_(KqrEWLFX^3i9lOJpk=nlL;x2w=iQTN&3WibYczdSe*WZC z7`3EhVeGSYD&3k)>xHCe5(3hk7h5M2?m-J0M=~uJQ-6l>yeHXA+mVT&Gf37Mv}U8? zymcCVH1Iswjp<+q6YPA;EEwVjkQ5AL$23@S9n)z`j=hIEdu3p|{+J0?R%{5WmwY9V@dBx)n9z zrqFi7^HX2P?oR0>k$upsphkG~bv&+18l(7r(8L-Xivf1wxu&+5o!9b%ro_yK{N2pIT#}8{P4=HJEm!(#h9?$v2yS7vCvy%*1bXNh4Rr(?>%xN?C;o@^%Vdg7?G+md}$)@>ACBeiRw_N{Bq zv4C|+;Er+3r1L~}pE%dk6z|s)?k?)}Yfk^x7@T@S8pNB4=bezoDPriB>;}K?mYfFv zZi4Sf#kLdD%tbMDXJ<42sG_@(qB~OP21R$>3AtO-l4mhO>+!tud`p1|A|*n59_4!s z21Xtja_Hm9RKobRnY7KX2~lgWIis(S1GiA$*2E`I>Qm#e?o(-W2-B{dv>VWEg7ISK zC)jxgyHpl~SAQxUJDF1uXbW`IoM)HIV(0^QKIORPjIbZ8Q9_kwgWYc!DzTf}V(`gN zrK8PbX!mbzF?16J9(8}6>uwW*r=wQ~8+qORo!|ui0zMyg`4shP7`ysGqq4gRHlGbCbe(*FI{lL^$N;>VKa;BRqG>wdJk;ty-A%&! zG}E4OG%VCx^_et`j9gycsVo`- z3a8zUG+LHUyE9z-oS(5{hF*D~-C)V?%ROyy`F0_f5U9EZ?FP*!xlTJs5uTb`@-11^ z$&2{xNvXoTlD?Kk*Qa$lR?*ke;fwJ!nIp+9h0qmCp_Bhf(b4d3ja!^-&7hBpyREb6 z))blyzP2>lv=v+)Xn!{Fc%t1{U+C0tbqAm5blqwx=qn;D3xMUmf~kP1+!?^C!H?waHRy7ds_-!#p~amMvFAN%L^@qFu{xBOwe>8 zbf5^-__tHiXfr5K-d&%!S58J0pZFmlL2Z4xuvQ+dH++%{bGY6BJT=I>x5A{PCb_Bno5fp=VQx;|d5pXZ>y2C8VV$mD zJ;EmA!{uc!aMdv)zwl0RG!eP~!y-TRu$%)JK@%z4iz(%=8b=CV?~=x-fUN_-2r$Gj zM)(4Q<#0)p0zqujZUZT7kamO3GdM!| z*hFx8cKTLD99U?K0Ygi0$u6-QEM?#?P8G~=Qss(<)ZxK;djFD5V!ZIno{QmYA3G^x`bD+4}u%<;T71iQGdEjCbp*ADx^DtyRF`I6Y5ZPH~7$< z#|3WR4rzA-pYC^EB}hKqV))Mr%K_QD%3wVJlLXsE6%_6b?S>5@ETk@>nXIJXvNZ7w z?P)G=O@+0PHdR1x=nh^tEP*Dn1{0mZfPxRQ2Ha^7bu$R;$7oS^BYd+LLf@v{0Q>YS z)9`FEEWzUaKrOxH{1&P*)}9$fFnVq`c{Rg;ZA{USVFp`Y7q4q%epbt3az6u`5Pr|0RLz7ivYn1MJg0vhrEy!qQ=#PwYvawUn-$OFQP# zviY=Yv|}!v{38#_?R=-~R4FYN*%4p>0MJR-q}|pc8q{trruWRD_mt4o`%~_U49RSJ zMKl={n(o0lbc3e5vwv$m&vnHyn+7uvYadl~*V9EZ->~ScG@ci;Gh)7KP7K``-VO7z zQ4F(`YP@U{QZc_dLqRP>w4jxyfTM2@#+wg9c%VM5?zq6|CTPwW$7{!Osd2D^kf2wS z?1Q%l^+F&6JG+Ln(nvFG=Rk7CPre(X8PYtaDW0W5Wa`tD)NziGB>SVTv}D%|yBnI@ z6HD)jquU?=v!Wl~!E3d~5f{t~9<1uTRY4oT{j>&vO8|3ONLPSQ3j+;UUw7F#hI;Rc zGXf}&ZO7BjNhg61UUg0y3?Ez1NfWhsB(xUi^6l@0t%|E(V`|NVr3N-JdGrASk;4|N z1NFkD27iA}8kY}!OLO_y3lr>l$tDm8*&@2Vy3(9KQ;x5l|AN{dpf7iCL|>BH&~aFn zZZl{HgPEAjB^R6n0Y|%A^YDWIN-2l{>IJR%STkZIIE%V;ovgRXY?rAg`)yub2G>|v zmGwe&2oEjvdKD|ZWivH4NlPjY?kNK*C96h z{@qh+X{TQsAQ#b8=#NeT%p!vwX+gXvNoeNO4}+)r24PUZj5}Ci<8AHY5tr66hyH{5 zd?UEIB{?R!_(S^pv^a;JZ4$548oqHG2d*NCB zTivz=bhFR)g*0s3EZL(M)9!aW7LNtbmTYtsRNy_Qj6{}1Z3_YWyne5#wUq9pRQH^> z3HU~9DGu+3K{uD~g#8PEKO*1{TIbSkB{WakZimkg&;=#{Xd>+XKz%#l{FU(PZk}7e`NDGp>V+rcsVgRsB}mlxpDXab)c{Wh5N(AeyTX#=Y;&Mq z&`^W}U4ZEce&4Kn$sn;G<)9v@+k{%O4J|o_ZF>Aow=__xrvahU^_}J*R0a}TO^&rY zk3FWx$>*hEFfaWc56)aecd)V2u)S-K?X5i4Rte5^fBy;UzxQ$bVd0=WoGdcZ^^xkgUAH!?{B*Wq}*c&^cy zjsky14eP5(Y5}B6ELp{57r2K@Z~U%QbQ6e^bcI`Nrh@EOq??F2YW}xT!-~q8OKMqa z$p1I;JoFfF=V5Y4Jb-k`n2;0SL%OM$q&{c{Upp=f3ZMbC9GZE+B}AYji7#bnc>DRX zXk74KYK$4Q3uj+~&YHUr_H#=?z#7o|dnu zBN5Jvn}1`D;Ps%wLVWdUSOz6lb8Ks7kOPHs3c?oz1e@KXaC)v{R2Jw@AX&)mfmZv zq#SE0>Rxn@Q%=sCiP(HVmIhMi`NMIt-Wl?-6ChPb8i0QJ?p)eotw@HiE|tZ{1gB>d zmFOV#qZBd!4Gd5`v;d*QTAlRxz;_4MlP`E$xok;52zo;gBvb*He*JD?24rL%X)BkN zOgkiB+s(uBMPae~n`K_g5}mPV4vMHmdAf`egKo*JqT-TW`(?^;Yau5mGab@Q3_1eS zEy>KChtyS%LJNvAk?Luj4pqjkd!(>r?kuEQ|0vL4M5=0B0~O309w{>-X#k? z8cB7P`B5mK2Gt-VBh~D}Z5~->7ot(M92oC-Ll&6xNA4+q{t#0Bd^GxH4qOTnF4^v> z&OD*;O(P4F>PYGS12QjjF_NqtwqL8cY@LZnz2<*r>r@VB>r@e=#Mr>ZBsN>eh$K&Q zv?d`5sF6uPnvB%d|C1Kza?)X8PzpmU8L2@RBQuq_ zWG2uBmqirt60ve5l`ASsSF*4Wi9pcA%t>mXVCpU=^{bXm{Tls8{8Ote)bR3%>?z1= zDkxur0yYs?Ddbtr+OVv+dL5Ekh+%!MwgR4!Y71k(OAPZN4J(VwmI|%Im$3IJ-YfX& zVwrmNRu9S|6!_|h2C|E)$}5p{8*sd2Nv$qXk3`#1Lsdl?3j7lp5=FHn_bM}UR!&MH zQrjNx?wmQ0^o4xu0Wmwb5J`8i#hcq?``i4y%q;^h@3-z)25P(@{bVh*GzM}}GIJle z`MD2>wKctUC-;F%%p}0vv)ro@00wJ-6I{MvN#45SI#V+VtZ^dLQvqr`o7`06ORz$r zKm%9<`vxj3_bM##ez(GMXA!kMVE~L)g8g%I^1#66djp%{{qDf#JEj-kr5-k9_6G(+ zi2}7^CFTT!sXkri7wAT{)xu) zzlw3yA-~alZ6f~DA-`FCO(M2NWKTIF{-@soo>y7f;>9@ZshrjLl200ioloUV=Ak3c z9rhc=JN%BH1JM|tyGv^|_ z#<~ar7%~O*yNEYak-cJdISOnbse|B}lo)1lAjMxi1K%@s1EiR@8K@yAilRr9&P@|2&S^0D_>$nfvvwIFL7{uCZWJLp~8qv z%%XgxaE_qCq+$BL#kDIrM2eVnOUXZh2C;k4fx|;B6nUn+<_O8N9BJd&NiTV4s2c1o z*!dsu9yoXUT|`){K9ui!IM}>det2`h)*9Y(_*HL3m_|H~kX>5-9P-z(;*Cy9)+aoN zpE@iLGAAKnBJ2j#Nvx4$vU_!qhdZmNs1yk&KvBR%lATFfV(THzB!XL3`w(uzb4WB9 zHIQZ`Q-EKRHah`nrm|*g2(_fVx;T3Q(oAEenT|WX74p#Ogo7E6pc>bfEk&9X{GqoZ zC@mE*{AL0MxZcr8dc7V6rK4f0)n)6dlPtv8t7dV^$*m<>vc#e$qTme7lPH2>L$XL$ zh=hl$vJ6S!0FbfD6VWIGE;4Tj7K?IOXFNEMsmu?~$LS)4#@EQsjNk$WtdSH#gPB>g z=H?(t5vQmLX!LCSw`aXZiA8fbA|)J=QkKYEj>tTg2+7nX>)a4qjQGba#PuRY%+$w- zyq|}DXMoyJ$P;AAB>H#=8%q42WEI2dDds8svq%v=74mc$wUhyORjVO`8L1&p_o3$I z5N-P}^|X`4w6hGmYc>S)mSb`4hA49dM`Z;^WipbjVyTekkObTYW(TB4;b3gAYNRDgc#al@`y*%FbP&pMXT* zMlc?Sg(VcRd6*Dkbqixb*gJYomafqT;MVqyR61V~#unUlQ;j7<)SvDR;73;gIzc#!f;? zV)tQg18h!KdM3aiP5m`oD^V!Tctk_HS-PYlf`=3hLk+R@kO*vlRYesNfz2mA4l(o| zJ{5b1t7jOCO2Bak%g-^&0Eh&^+%rp2Gx@ASlOd24~dA(cOpt% zei0IZ*=HnmfKmGlh%++8{138R6wjHpurv$#f$b+uWy~p>3zrAL#xwikHdc2+F!U(c zi5sOb?c2F=^cF+VEIPzC;0rb#^!!I8dYe_W^6;>ti`T8FtX`OoL`R4Ws*nOKIqO@N zuBigwG7%}jpp%&q#{uGz=v{J80IcYH&|9+FO+}IpZf=2Fc#JH&tCwP*lm32{vg4>> zEi5Qe(J%vLA98(Ry7Dh}=7~PyrtQCh8nMZVNc;&SJCLaKKb%0}dV*iqNJ&UO9d?;N zWBV0+61!vyjrkO-sG(WGSSr!yT<2YAXf(Y_^cgh)$xgF1m}x6J!#!kx2^W6>53@>Y z!R%sE-5;aH(Rdxl4>c;E+6p_=;v*k%h)WcFyeMP8n<7g|x z26VgELq>FgMWZg_&;1nP!C$kFahK50it%b{aY^Z%&2q(Ic_8me-c87%r1uA=@eWr7 z#tcAOuSj+zex-7IrCAw^78S$BcUflnlGR&DXOd7rJiz9at;@~a!2%Ro7LZxKte#wL z(W1byETnW}Rr#x|2m%vW(CiImt2vNr91AL0@qBsFvh6G}wT>fJR$W$Xu3lHif`jw` z&aJH4P|f;ITUc=51hhE2Y<+b`*=i3}SkD({tX)&JVl~5FA_|y{DuA^WmE{~jF$GoR zRxVk+VQKj`mO1%UpiTxX$Ao+u`#dYj1DMVNCUDP+6qLShd2S^vJRAvFy%&|}vI;Y| z>$1SwrLjT}O~;8o-lO7Xv5)c$a&4!iG<{C#wk4~VBL7Snm9XT;=@Jv3i${@JxK`*D z!OO<=i7DZ{9NeCm5=1W9Fgn(w$+@^b)q4^TR_xD&alCxYJ1bN3j5z%>VQgRliw3){ zLbfq=5snBIsS1kON5yP1wFo88Wg>rAyt!w%KZ62Gh8{DEvgTzKmLhrS5QyA0LNRl3 z<5$XP-aK4;En*ZuYCit@D`g~a0e)(E&M1EHLLA_glb8uJN<9G- z6!AE&28?k}c&KxMhQ&-^1y*^MD-VwHkOWp1vw;vdDKzChKE?d~8bzbR;g7b{&kRbT37E&3?scl-Plv=HIuA&O# zoXcu*seM}KQ&5smfF-SZ%8^J>cVpoy!>uvS?3#EgDBd}f`is^%1@4(lAlN$U3w-RN zQl$ov|#e;W(#{#`qDwa#2b7ex$Wrp+3@5Rvh@Xa$918*5*wbC{AAX zbE}SWjHgH?>lI(slzLZC<;LZ(`Ti%E)mETH|VMGP!&r8p59% z=Tvj}L4ZFs&gK(m3nf*;FDb{Umuvg3Kmz7ZrlzeB1O0QnbJC`7E#KkROUhAr-6dr* z?@j!VOUkr#zxWn6Q;P#m z^8O_lIP}2uva$q^_nQqowO_3CF;8bYRX!4J4Z&8I)R$llzqM{Fk*PLo^aw`jq|=K*JvtZWDthpnIVD+a^u< zCCeq7K-2e)iTVh?-KUH)gC0!~ng}M!oll+9I_D657j(rZL!fn^wx$3=3qI7}$2w=$ z%p^+GbED*5tZixQe#-F%H(;8^I?EwAAxf|z2u=v8SEFnEsd>>gV(MkBGnYCy)|pKR z>nWqwIhIP%+Qv|OVx4+C{|BXC=(ppksWEKag&--6-)TvF`hZ^f!MC{f2e2a_;e9_S zqkQ&hN!-DNKTPoo#NYg&OqFF2$?Ya@AatD2uZ+);61@y~^g>iOXOV#@Zon;Xxo^4C zGHAIAcimKdgEavyzgX_TeFV!dEx%gedXnYW3POr`!{hpu8cp-JoKl!zH!v3l(h7lD z@N&O0A{m|y@SI7cHr8JMa8DzBfB=kZ90A7>uoj|JQ3M>)74K40`*3f+GAR;D zRg^W(CZw*$Ib|)Esb^zazSkI^jjP(O8r`cFhx z#B1Z*$Nw_^?s$P-p)b>C>0rmF%h%1*Ezv!rd*y%r|NnxMl(=2LSO2~KCp|AQBGD56 zWBhvUdhJE+#iz*Ii2uLUMvt8~cE;GHV_zJ*X>8qC+t}Ukxozy9$JQ`UF6|lZtGXS! z23?cx4PBe=ZQc92k8~$>zv#Z#3C1hNM~v5xpE*8j{1f9>jo&za%XsY48Fc2n2iuwr{(PZXW}6Dgthd*%90tqg&|amE@vR z3OOiv>rU4=S1{ZzxYI1S5W;3q*NlBXOmBZs-&1pjTn2Q7?z_`+mz>xr$a&4yrgSKI zrwPB}pFL&r&L{|2-FC|!%G!pEZGMdxsmortf_9d|Aw?gIv%Y(T*seRuiDIcY@hi!- zSDbQ3sTWHnL(k9LQLgv#Q#0P>k!yF9e!N`+O10qDFTa9|^~0`vN;T$LXI>F9muPq0 zS7rzJPaJaaNeD?f3BP_(7-)uA1GkM)C3~FeVNVQ+rh*s!Tp3bBpaDGYbX^W}JW;{; zX-ERG2I6(Y9a&AvLkJmbE7w<(sILYh4kId-kOMpd_nnEfyO*ryEy3wK`~&&aEWG!= zGCV2+*kMCcL0P0CcMG`0xMF>E_PX+N6qJK6-B+p&@*$Qp_X4d(wB# zL3Q{hF3T(qnP>BS*$!%e-SpE1=G4WJDmS%8zkp#RH55`juV=z)f67Wel z1l8h)5i-GvMG|m9JOsea;5cBKVAO#m;AwaWfHN_SK}_J$SJ zaOzb8z5||3E0sm7!KoYu*D>4jHLTM&x{@iIv!QYaX@THz_nQmhKx!?>62|e!+9>8} z{7+gL9Sq?MM$Sn{Rt;N0awHr(J{D;<;2X3uNc}9Z3@}nPqo|+&oW&9}b|VgZpwv!z zfoP4b5f!^>>56sbOR85qQ(ik0NnQl1WSce-$zK|#keNFNh1Fp51LbI0Er$We2a{gL z_6N!dK`Mwf{EpA4&Db=-UxTY;Dxr7mA7T-;I^=GZ+F4jDO7@ z>E+KS4m$C)A=1Fy(AR8Z;=Uf)u#5>7Fa^hoOoDI~r2R~2Oz?O>}0 z?}UM@-^Ii);IM>9f<2N_{h3uKff(1WUA3VqHxo%A(9BHeNpNo+4ABoOCI~ z99WF0NcWdvjP#{TOE#`qyms{;%a$&!eHPmnrz?4X#UCtASMwTiL}|Jz6~YZnP1xrS zN0g_Jh$tr`+21`%Oo>I(eNcg@At@0>?I&^!!%e9MuT+RCcnFbrGMPurR*&rCkdlin zkbY%7SC#cl8B7icFt9aHngc)2SB2rrOVTN`e;WvA>Mjp4Da4PN$nfN3B!3Hv5_hrV zBMz8>NCU$RaIbiKxZkWPlOFaoFcnE5yx^fCI?8Hc>bnpv)bH{ru%zsnaxi1Bxm3~d z5MUUo95_i-y+2HTNHf|FJesG9A9rlH48{r3h~IIb?db%PK>UGeJsGJ!!c{z#GVI?R zZ&Q%s6KIS%RpYkCDDFSFnWu_1cY63oiW4IwO18mB`6(2xsIHA7BAuWL8c*yY*o6Q#)YIW$!)Dru#mq4Wt|8ba` zWn|-zBv*!79)A_#GBsQ`4quTj#H$1<74I6Z6{r&A*HJ^+(xG&cF+bxDfhtCLgCvpQ zh$pjEe^z-Ml<4Qbqa>u%j~i z987%$9B`&fdW{o5_Y0Os3wdNj5ZxFd zY*B|3A5Ra2LuhZFN6~&hJXX;RZz>TK0O^sHkVp(DBs)d|jWF^PNqLOXi<0s1Q$kgQ z*^kE#TF!f5BP(PIA(20i4e!d?D#`$cBX-hc7uJz5qQ8RIpfi-zPSsmxWn>^_;0To5 z%sSF`fRbwg%m@juAdw2_u3d+M)lh&R2vsU=5RX~>2=6eab2E)_h#aVa4ng3L0NFOt z=nx)G^;V6l7{!oW#PQ6Q7FAUvRp>*6ii!!LkgyRi#oG>?g^s$$@?qHHs8SUU?`rCLHfbPR8ok1AwhEGvCj z)I^YjPksbNrRBky6dBDPif|$zPT;}1xU_sD3K_@4g+3}xx^B3p9%^m`XCaXTC86L6 zOxv5Y*KVj>TDz)zA}XW9Em4VI)dr`w}pd2#PEOM1v47m!z?n;9bU~ z<7FaMv~Cs;W)Yd9;!Ga+U(DG^77xxwoNoe-)|X5({{`$v|Tx3M_oME(lRl#K~te63u2s7CeU#)C875348h|o=b*21lRFJ zsVdk!dLc6i*bWqyKUck(jjah*=iB-{=D~BgQVfnN9Fwi8cNSkD*f)s0pry^Tj zQOVAL;T1k+Esr&x55y|Dxym!D0G$od!l4$A><*UHj;|$SMp5k<8Zc2AUsttZL?r?t zdkW<<9>EM#QatNH^i)-De3;mTGSEQK^By#)%FzR``i0+71gP>w{Gmh@XnqNLI=sK| za3M0Yvqo9-yShkG%Qh2NMX*UCqx5Bul?E)=B*yntk?$MrZV#qR)V6U0_1B2Q8TAC+c{JG zCsx~`Hf9Ji?$N94!~_wt-jb^R_u@jr9lQpl+BrhH3^EAJ9Q5bk;{#m2%Y)306xg&5 z*=VLN8Tm-D`yni%mWKa@C;bcW&+IW|EsFT-Fh))}UOmBIN<4T`!5)vek^f#Y7g#SQ z9-M@~K?!jZCZUkmiBT*;hC78Boy@) z4^FQ=4#l{5BsnyMD|_412628454UlIwDHb}HuTex>|J7ehu4!GD3$j%UXq#Co*=Vc+$7u=jU%XTI59O;T#H#9i6kV9Tray&C5 z9tHl_V{<()B>9q40W{tXjjPT-iUMO=*hAR-idzUaAyF^eWcUR}dQ9J5Wyd5WQ4VkC zBo~Lf`!$ddULtSbz?=A6(nq3+n9IX7$c|&nh`lN!Y-X$aJ=>tFk3nWF`&P!nq@&;; zJaz?a4eozDT`CCfCrM9PK`}oLF(CSh@m}Cp5b?&mQm>)Sg;nPFndPPT^1HPz{53s zmBx%l-GfO`^&D#&3C_z4U_q-U8%*haP9LyAkwG1Q816scs!ut z;dOzSZGS$0WYV}uKpr7M!;8;kUo46v_}pS95%Sqt4okQXl#@=0_>9}D5#!lGs-O@F zGy{`IBxS)O8J}^WWBvH}9l0vTEawl|MVLWI5&#t0NgxX3Gid=LCHVxGPsM*^4e^A% zL~6iTy%C9m$Y&W+XgJJ;=@wYSVMz%J;UM!DS<+XpUc02Mx*XiV$Wc5#ej-3c@k9C8 z8~{6=(KzDAOwB?`*bp0XiU}jzol2O7s#D3G6Xz_}m^du$HUDY)2+AmvjEe2^N&~ zGRTW;H#Y%q#M7C8)SLM;M*7Vh_o6L;2^_2HnEAGuSZgR^#vKyB;+bZeR~d^LybTy5 z7Sqa&-tFwz)BXw92C3qCHvEquRg`Z%3ys);zYJ1QAv=KyW^!AWz%OqmKvGe{>a~^2 zQP68RK%-Jm*)`M^!W6r!U^;|3?x!Mg10UQ2#)kieZ8~@leo_M~P9w{|AJg4~TzCJ$c1+R=6Oo-; zVv&P|soU@ajY?&H6O=H#J7JK>CQ0Jt=uSnVw@6bk4G+O5EZ0H*1ksZ$5yqckYB0Tj zd#LxKBi#D+4$Ft)UBcNze&BnYVk+O~SnXihl7GNhh2jnCE4Gn2uQ~R=`4b%{A|a0C z5TA;Fv7>N!T#7#8IR7_m3xYm|8%rv6-X|P;|6$t}cMnIOSUP^`4OUnleG-U=$r$I8loPKrLXu6evBL4%kmU*0ZT`zf_*Qtk3nB!-6)k> zdWjeV;(LUA!^f|G?G=zI z93;H}`=18@Czc1M780<=h$m=Ryk-S)I7NH`6Frg$0K^7${DlITwQPMj?vZ#y32V7T zBCfvgaDB0Woxn>Z92(G+3RovkCSaUAe?P&{IaMSO^dH8Qvjk-Uf`)QfTBD+uEkhy& z0Lc#=2Lc|;Qj}7_Y`)4$(>1~53`(pLcswGtfN>Qgf&}>I(W-F1Mu6pEs!)Eg0PDh3 zYH8Ab~yTc(?u=>ifIRf}h^xKSwrTu-SYqEcC0*ptfB1kB3oai1mWT$}sHsMIn- zjM=6oq0tuH`-Uu3w3*9!+ciTK#M^>3GgMS?-Ei6#9CSj;eui;wW)=#11<#(LQk&t3 z(v#IS-;is}LIJN1L$ZvJJnX-17?4?nLuit(G_ov076(A;-GMbJ5;e8?ij(@=08V(sz{>vGBjQZ=et9AP_w-983YOC!?5+` zEbIsa+n=V|0Uyp$1D8 zB<8{55pgUnaJhtyS~50WA?4y~LvdfFjIG4|rhNLGoD!t=Cx;rG(>9bjB9#LsS%8R@ zgrhLewwj!hAWa}{|Fd8S60usUb7V+$q!BCG)-x;E-4EY}% zgyM*gAx<+IiWn;iS-#;AM9!K4CG#|Fg@G62|Mq;f9p4;w}~# zaRT9=U76whPZ5@%&Q$utu{#^%hpT)@c@nq(>>HQ}mjQ_SxQ3Xd8>P#0`po>%0cL_Th(r24%H(p#k0exUAX$I0rn?|s zORm9}W|frcN|Z*-D5OTm!1dX&F(i*Mf?$LajG(tJL8_zoL27b3i5|`9ml1maWHxyG6!J$okn$}4 z=9VgO?0=bin(PHcMfXtl)Z)zY#T%9*3FI;`<^cXo!&f+55vHPgN93O^E?ox>5RzQr zu;51D*EpaY+*b7^wms&G3xid#emPQn>$zY@)($xOM?_Ve(;f&33yiA-mos!(IAoxCbyZ|Fo^hd+`KMuq&$!QCua zbb}oyqi-S{a3ND;u0;WmtU&gAo?8h>0r?6;*>M1!ha|TNtKinbg|pw#tBCxfh9_r* zFTY`#F$68ou(EmhD%D!EYTm=+aATBj*%m zMn@ulh*~g@;32@H96}b%V`*+d7Cig?fqR~pZiG^ZUofTf4OxW*+e2%9Zf2<=67IM| zIpi9^tr}4+yX}xbG{ZAVAesS_#7t(%CcbBupg;>hBco&&x#9tzx`OltNWPiRjtu4= z2b^?m;j?3adxj_n$+*aXBX>vx<1Tynzrts%^PkwuBC4(Y5n*x;NAW7Z!c3C&Ac=yz z5fZqK59xc5ZwVmo#*4zruORV@VWfcV{0d{);_}t&xyvd3f8tj_lw&>DSb&XRQBu7Q zDsbh2^}x*hIpxcSsrv08eaEJc~$koU7rgG+2|Bn>^OaC&Tr{8k+ z-{h4DuOxU)ICA#i6TggOr}3NDCT@B2+9Y^QhSwB$CBthfyr#ix`jI!U%@|jnyf>Zs z!#-&bzFVAhNGl8Q6($&SXJzDOgK;lnY}&wgQ~+8Oj^5IS`ByynZhz?^tzPYm15$jh zZZ1tZT$(CenNStia71<=D&crrR?epq0JIPy15&3E6Z#4$HPhame*FEyfIymuz z)UXWrrDpi)?oL2&-auW9g(@n{o$w>bX`OEw`V5fyn+snLx^4o> ze^?ZO>(>fuR2<&%L27hB3CkjMYPH6_GE4RIzQoQ3`m z&V<99@s6dY@c*pEX~$AkIrUn3z#;?u0{EGeJG5@!iswlyFH%&+^Di!??7U>tree!% zYDPSDh;YA3%WyAq{YnkSGTc*1aRvw0;`HOGqs_pj!1z?0!S2PiMt)%+iQ~@gWzVje z$oyDL9`l~x2Z{OA%W?2i22^4^C&WGVke3g=x_@e?7HR-9_Sj?q4%1{9Vz_yZacEic|J!nt+>Xefmig8>V^f|b-_GBW*Ye*cUVWY& z!H-ntbu#~2W|P!^eoHa_`gkgph+{#3O~UqU=n(uEcV~NcXFxXm;1|=0EVdJYu3u{+ zS;zt{)_<5fDzq5>Tm?w^aS*wkApIZZZK9wBkaUSh(!ykWY|YFjZ>Ay30++HWrG4JP zx`27^zV>-d-u2m?TkErlP(2 zlek6juhb)gf6W~13Kl@>Fj*NqRy|=O3X6u_c=fJrX~AaL>Mw;v5fN4UcTe2s zDQHwY+55r?T$0{GeiETJy}EkcipAixqd?g0KSEMAR=|eTqakrulE7_~lTk2i_zCKG z#&s#x!CkH_9h2`np73CXOVbcw0$VnA1Of!K#fbulfRQM_2qFNCJ2#QtrYj~1w6({5 z78cYN6cp4R7s3zLOePSaVa=K~wd8eNSb{`TSZsB&fH0q1xom9`*HR|zR;QBi5+oQU zLtNmIo`|LcX#G0)Gg<;zu&a=0CL3IkLM(tJ5JtgW)Ub41WKA2bnZ?$QN`wQ;46ay@ zA~H#-3O88OBpKP9fDJ$m?xY6h{=UIH=pf|8iSoIIjofDe_lbG(%%w+`9`xJ8^DSgy z;YCan+Jd6OQbWRXC~!8wA6Bw#&X7j3(dZI9-j){XH<#_VXdd&4U$>=&$r53+zX)*G zuSV2k4B4?IS+HS;L}?WG#P8`o>7kpYN7PenS7+3x`Hl`O`yH}qG0QKt1V6B)h5Ih$ z9?RLsW!&R(TvVSH&a1#{$;S%(C-SihzgeF)demxG{hBqPWRlVfNl+y^;za1?@86M@ zEh=F){gHd{y*CV_#xNlPCB*#69wLf(Y2X->O}S(*2h*c*f5TsVZGhk1BF7=%ozzAy zWA+}ANcsBjE2^4t`b9$^U-x%hyw4D8W?O)Rfk#`Aws=~AEP?%;lLDs&3?BF`2RM+O zfLP}qjtyAnUiOb6w`B)XwDOC~s>$#1Fl+wgNl4MgdLRHQ;JgcslL^rR1bjDgT)UaQ z5vzKOfoH5)N`RbO6Lg3H4kb%6w`U<==WRUxe3~ldFjHE=Wi{2YZcgA47Ft@ie7)xm z?@<;+{2b36-gj~B`81{ZeNPGaJIp;{px(j2JXcN_vheF7$5>3_26<>4XF%M+4(CuQ z|Ha}lfqDCo$W#2qq0AP6leXXItUt!NV=m&3eRa4u%{$sWZxJj- z+0WP2wa;@G9JKQ+c}w$K^2qO}<=Oas`7H*`3N`z4+;15S$>n)0xFRIE-0=UE_T7O| z7U}=98v-xcO*YB4^bR3`R5~KCB-!0aNJ0{-C`1Slg(MJ=Vp#*^Rk0uz22>Oa*t>#V z?B(od@0?#>J-s_o?`(Iczt1x>@4FlD`}_UzJMM8aGtcySXP$Z5$mo||fBnW2_RWyz zT*B6d{+V>v>5bwo39S1I0iz`G>F^FAK|m$g3n(XP*-AJ_G8 zKfUMHQgW}l*Ms*hl8?mW6`kFszb=koMo-YvI-B?GF1^Lw$@c6jJ#WN4;Zw=!36HeY!ivRDqx^(g0sSoWc-Ejh*X`wer?j9n@ z=5zju$1Qm2^_43xDy5+XgQ4R0)|u1S;153Wt()4K<90-4E? zob|%yNU(f`f}+@lXTeU0c);-+VAGJg5%xK~r${9rVG7~jB(Cn_`A4y9ldm^Cop?s{ z+8VPvbKv@1U<~LTSZM^ znODVjyIioYTV=1a_mEjbbW9*zJy02F7$jUf@a8cAZ>p1>#eD^v3`h3gD2TGHZ z4z3>)IN!@(c{Y$%YASw^UTaIoYHYSlnJl)D1Ct8BPq>~_z#00gj?C9uWiHk_WI;Ewqtq)4vi{+`9({86bUv;_gB6l$r z)&dq`Yxk1VNU`b^t1Qn_Dcgjws->e>@NHRveVLux&JU*XMQ;VPk;^SXFJYkVBrVsV z{z3dwM<>m5dV#ZQj%E@W&f)H?LRqPn^IU(Dxv!4LS*= z>mgV_;F=J%>pcs_O^^z~lAl!H#2gVsPTWa&9xy~?YxXw;2H8sav(I{qvqoC%X041= z{y;sKOHQ-Df`8`@c$2hBQrp|W5~_)9%>VpretA~fcxV>N$7Id*N;ZZ}n_%0`pWHvi zW6wN}U(g)LNP?|^7(3ATnNw`smG4crPnCS_$YY4Ll;Me-AQ1{0wArH4wXglZ>loIWuE} zBdfL$>!xpsq&GC5?>DR!12fhs^kegzp=Wfzw)XC9{0Op2w&U9AJgHG4K# zvZG_I#TwVGGIi6ObIfXB05~t&id?uE`D#ueCvu{y3*(u7Qgle5q7KSa2(+8Yb6Bi7 zqP9qmd-`IqbN|Ss&e^UiMWM+{fMnV$LUG%<6lr1ufls1ktVO9bKyBQ)JSL?xc43?v zP4KRaw$W1kaIT8hSJ}hA?r+t<`QqN@bzWoUEt zPVkgiE9LKb2$t8|2VKk0rTCTi*USO2%41Vvt zzzEw}{KI*H>RC8vGsQ~NyO`j6U9Dtt}NecfGsy=0#b17hd-ss|G$FsPip zHb3BxTo@fFxSA2qKu7I&aanh6k2cl41C)TJnovh}hB$j^Q>9JOiL+O5Kd@gzpe;6J z7au?pICi0R6L!)`l69q6*}P*xz!!lKn)L5d_Ryqkj1H%EjZAPs<{V96+FpeZDYF$# z##I`m%v6x;hS&tALB=eYAo~s!tK zv!vVAsuX5}!sjEcWb9)Q1&gz*m^5MTMh1$<)_gB-KQZ9TzfZc`it+H6c!1<6>h$s- zBs8ym#Dn~<69dI_9|n0x%1e)+6F98gk4oE1p}!{XgUtOH^^cYXs683wc%0fv8zu8X z2q^bwGZjOVe~6bY4CLiKg{ETo$@LcvN$RsP#2w8jKj*bT`bh7KVuY}F#%w0qOK8{z zIBWZp>LDG>ko94l(uAxJwO29cYe=Q-3#sXE@Q)V;(rjUG8#+nrKYMPK>Nea>gOH!=C8|50z+sC_44&oOjGP9}90Hbekgr@6$j*82sCef?Vv&fJ-Ac)| z>BE2B{P0V0fRP+q5HPTD#!9C#k6H(s>)elZE*PQI&{^fC?sV!q<`-?&DUHhMlLF=U z9_Be6-vJHWxblhptGd^8^sQad-qlxHTFTNsMDwC2vE_$Bej<=rPGJ5|_?_)&J3b1N zO10M2a7b&#@}JP(1+}?8Qd8;c?CnG8olBv+*tx6|P95S8qYc_$PcQFi_a8v{wM{O0~Im5%Bw7*&A(jKEJx0gL|{O-T5L zZf9Z-`VTC_3{@zkhY(L4bB<*LhN`&paSVM}&)_#%uQqHe55Q>_^p|pie zPF8~Nx@;*-8MS{)tgQdUU{!B5afBt0_Fsup{97yz&!`GGs!nfT)7ieXb4gz>-2O3o zqk--z={C~@3HPHEc{j^2|FZYGNi=0(q2&9uUeCYU<0@ zb;0onsE1DS)5n~o8boXZY{AEAynI<;l08A#3VMp66l5kPLIX%1h2)$fN!=O7!n7}0 zSmNf@qxCAMzmmD!rYR(~o;gYFM|?-{KIoH4ruc=qpa3LKK7l(Tji)RR6x%ZR z#N~mK#7vcQVil{-=H1H!RkmDy-SWV2TONO5d0^zwe5tiFyMX^^d7v$+5cqUdk6|N* z*>>+-5%8q0>F8Z6J}y{>kh%EqV!m}nU|2fze$;Xupu<1Bl*)JWw^syGhv5P#6kg>X zG$+tfAE>Rbfj~z!Yb+}&$0#TV3octFujmX6PleGs?FbeTSy;`NcLoZEk482+z{bKy z@mL!SBh4>Yt~gS0W$EMjU7dk6e)h6}mIHb_agsUyWQlp4s(2jBKR(7l(mRT!z&@Qm zS8HH1rt+Lq1L?K^pKxj*zpRF=$mK-R-3*sbd8R{K3wO@}Ig5i_KNUk9=69SL@TZeS zx;XwT`&V`L_I7qH?`wyVY1s_^@u`7PGjRzOodN|4OZD+qpFnDmUMci-osB>d3@UU7 z2J6vQm{(Brv#^D13QbGVK_#rPjjuZ`P+*(Qcbyi!p@#U?QAWJJT($G<506^R`IzFly%=FD77**56rYFg8=cHNq;j-}G3 zMuTxX(E{!zU?W)cwD8;EUMk%}RM+%RuW#!MOmAgr9sHbk>ik2Op#>;Ae+A$BPF-FE z_Uc4+r<_I&GcS+S!<90@wJJ7&XP0$ zpM2`Ob?LU#Io^gjfB(vWJpz@3R>jwW@r>f@XqzR2%C$u>sLGY2spPFDze+luN`kHl z=_~|^YsFl;nJRHcM#Vz?fGgXG6UqX2!<-y=e+@DzTHZxs@lP*x%TRS>VgEp|4 zDuPKDsl>JpctUYqY$l3e;&zot%1B9pE#BxX3r|ES{Fklb#P8Iq*VYxIZZ`T{c882DkCU z&jj3snN+v%-Qmk7Qv>>%!Iv(l7bvPh>w0rwqWEUO9m$mzR9YVW!t5#^Oh96}TFB+( z$iq>f_;gr%MPyF`E&t(E1*G3&nY&o_)HD_vwUH%{AnsdxUk}OYuwvs&z&F%N$wCG~ z<&hTtBJ*9Oq){;$SbQ1Klgb6UzHB7~Y|H}_NwFtcZz*kITBWpYNv>9gXHDfTwR2m* zHj<_|6UXqoFAtU$P3#LSS<=zlJCl5cdB@6{uq{f)EipeQj2D=Zs)>CxL;_KR0i{qn zn_^8I7POxkYxPcsee#ULVzr*sMOTyR%wA|xaP*Q zCpGp}@~j#S79fiA)~PPXw$uR=O5ySuez`+`R6{)(xX}&SJwq~r13l=`Qkn>OkW&pr z^BUy}C~uN0z&A@`!^wGDH3kOL4*s;IfV&FmKCKpSC@!jOM_gliX(h8hPI5?3h!gg*5e>%_riK;ORRbwFOKe{mqi%1DW5UPu%6yAFZSy<3QCD-Um%TZf`R$*V) zAl(-i#180Q6qm8&WpT9I*7w$RErkXm)0WHl;uUc&lXp124n0A&_4$;n*HM`C+dsJ8)0A?RBiKQ`-xwa_l zmEr}(*fG+!Qf2-Tx*6LJ>~o{o=bQ1H1oj2|5U@)xqS2?J_Fp`pZBTjc7bCx2Ha+7K zZY%PpXYGgZ9&F-ZMGu8QopmU4^UP#2Sf;sWF zqM~V%>U-;JVPD_5lsVvZL|g>mVdPy1u>9{)$-Y`R8WC3r=(!2cBE&3pe-u*$SzZPh z`4AC%EqI2XNplbFusU2qfoIi$2tM+Juawskru|js z@_%iU%LwKdYdf0OU>%d(DCHY*xhCs;p?l1{e~W1gkich#h4SC2GuX_)7KXzRah0R) z!XpU^nE}ejc|>)0;=~Ax{|+5a{vIVOzlbz<@joCk?VmBZWfR0z-vyT<@*+SCEavzL zrP1BCiY5Ib2Lj4kD8%(E;Sp;}Ony8(im+t(4iQu!VW97kl>f#eAtoLkMOf1BQt&4W zaxyGkv5~{qq75WTvRzma_lacWNsI#mU0|y!x3c&__RE<+-lR7dG%HPRS~9M|l2%bo z(#S;tZD`3uK?af1V0HgocyD9g1QRbNv)?Jnme>+ec}k**OWj0-BS{qodnOmpNv-o~ zDQFFRkT&nXzxL$O^j4KMg(<0uq_I95w;5r5HboxZomy9D^YTE*mlh#UB;vF8%a1rC zji@@oDtUh;`-1DsUrJE*LSZ=*69uzwB!KTSw2f>4#e*%7cTzZLJIKPR2 z7MC}0rh)V(!wU`cHXTcDP})|XqNX&U1}aWlslwJ(C- zJXSW*KTbALeIn-Tk@I_$T6ea593trlDD#!COhx-Mx7#i@xo)CZt8zmU9 zTY>D=`|0HQY2hH`oigx->YFoXui@v=$_u%uVipVJ|*h-02tdH$(`-HnioP&0>u zXDnXn)83G^r@je>BB~dUMhHb34cueVBlYk}!rO!)tR3Hxc`DxJ%S-CYOTiaDs^Px( z#X}`cGcGO0>@rb?1M?)cb^&3N&SA1rx=JPS^((ub+{?fXPbRud}KbG?)rhOaDtnU-Ma641_srj+R*mf|-XS9rjP)PfWTncHQ zllvK;z2FO;TU(b8OMP+R4gb>4bJzI_;#lri(W7o&($~lZ`WEKX@FD8^Mt&z^52iMd z!UDW9$s#;|w-%FW`wa(8azh&E4afT}KQtS@HIE2SI77da`HQ~i>2-C5fgjYz2(PNJ z*gu+9hw;83Fn*GsXTmR*-;7_?*Z*(2v5!6wtZOWbB&QwqFiN@%TkoP|FsXs6v^JA6 z8LjL~qzb7ki>)C28D-1j%3j%mh304> z>Zanb;R?-B6fq3Xzu^9?@+9H4n%4bm>rUA@EiL|_^PReX#(|+Q%i zDdR6F0SBT`W50gB?t}xSWzLW7CF(6%_y`vN`_)x6l)axM(D0UQamNFtlf3+zg+YJv zpNmE8kzYSAYdBDv?&Qxd3{FlR%IXL^H|euqKYyg-Kxv%wp!=lY-?d0>U_KaEl7`Od zjwAjO#;2NCzvl_sLaM!&!F%Cq^X8|JaBp|7q5Gc6PH&Vyi)xi1-566Vjf z!z4m5;b1Po6QeLYxa=6rl*?l=aoBry3S50fv}bS}E(s?bH~iGiLC4VI-Bb{!h-c2t z${xggSK9a++k+nG)hZsQ3fJ(FtAg3KYx$u!1D=$3fp!y81 z%RVquS8UXU1csdDHsGB#ZNJI}7mCyY$1So0P+Y?+lP|0a7KLw1Ro7^ia!+guI_2g|0m! zyY{Hc1CNNJYmZac{E;@v;(J2XI)-VuKM;$`_p}^M-0)0>&|0vBo)!IP+H>>^asl29 z#Y~UsU!k-S-7m`Co67+cP0kI~;qUpAc|8Gv+R{-dl_y`3b!xBDFDPYPEd)N8Q2sag zb$<@{=DcY;Mu*Z#Hw+<2n8+NsVwjf!Tr0#!g*yd(R0;2sY(=cp4~|-?&iy?>`=pNL z=wUh7WM%Xng_%Zt0y+;bi4zgqg^fZ{5KLmQ49WwoeFcbzvGS#S)S6(<@XHVhwb(-% zbgV8{Uu0!Jwk|3SJ`@75lFz?__pAx#rR}h}n&B zW&wAB6J?ax>KZ$icdzZle#kN=ap$^Vdi`-Rsj(ZOdvZ*|Oj4p`p5tSpX3IEjitJ?G zRNl2Nn7c|nbe0|<=M|7*NS7ZZ3aMFvTOD&xk13;O1z69_T@w=(q|=V2*2YAM7gz+A;HPyRqKKE>BiuYR5vslX%58r)~sk+ z-^IJu2dCM+bNTA^K@VO-6F>9i&jR^#BK^1{?vrBj$_KMOC&xy~y4{On<3tNQi({jt z;KOe_M0h&GR<~)BVta zG>5-hNPK7>eQWrvjX`f(Z){?8me53Y(v}}wQiwjFO~s4;2x8k)`9oJ*eJCSycZ3O z6a){RcNeEf=62qGZfE)l>6gI!QDa@(^!lb&@w%n@n_43LQ}27 zq#>E_a{lcZL2u3#rhW}eg%T#w!7D7Bv|W7leN+9B-E=jk*X%74l)0`#T!VO3mR?ly zUQHQ z7&%<4nPVS{l58s9P5kZ`1D=RSXkQ8xtHDAGlhDATyFIo=v%6N}z1)V*Q&<8XO;O^O zyVUjhZdteI9;o*SdI67-D=NfwuN7BMrw3Hv`lg_|ngCyLRxl~&euPN@D3*XUA92k+ z!1c3&Ij6zRjw#4^h#pb}sSDLj8flZZ5xSd-(lu))-A(G8i9_@cRN@r@v<@`j1g!%OhoE&{qBBr56?}^UO|_m* zfoX*sDsD$N8|(|!>;zLT3)<_AvxB~lH;-+P11t=2_aDttq46ee@lneTD7#6H*F>hh zE0k54237{O(DwmpWfF@Ci;eE9#Oh-OAF-&3O5w+|pkfmv6??urpsAKm1LCcUnB+k2a;j11h8(qOxk5x*!h4UGk{!48EW*x+v(kIe1@R z&@&8gs7Q>teLd~Hz4Rsrb0wOQ;FrOgB8flT7tFA^_}hKKf}!dO6>rMU%|Xvhc#4Ys zcHmA>T}*J@^s4Ko?wF^|O^#JcD*UpjB!9Q10?8Iza5@8)FX;1ZanE`d2J zzLMqU@k5(~IktRpQ(9S|Zc0!dqnlD*5o8OdRzxcl37|8FOVPR>(Dp(-0-9xFu|rR} zSlo_|x*bBZjBbVW`iZz5jc+9u zMM_;Qy45XKvqMG^?KJvJ*n4Lt=e64yn=_Or=)t^5O9}nEv*@>?yNAoaTT0%t{xW0U z8-7{w(f`&I(!ZAqyNe{&uSFLQd)>-;Y#D9GlyF(`mdT}aN*KHS=Da&@$-90Rc>u|} z=t61fd*MZ;7hPPsm)&BMCev{jUsAgGj!R09#0v}8J1#8cU+BTHE)pZ6y2sQtjS?@c2&D)2ZXs=B3E zgzo+5_2sBUII6k6S9+c~zobk!Z^;y{XW-1`M(Jlpd;MPs+%5yD(&-F5!VKm+AD@yp zbD-my!7)w#FlKRltQJQM`$9<-V~%e)t);cG^s_%$8;7H73HVFttcY+3SB5e)6f2sH%Dc+OvGf6+`D-b+r=KFDi|FJCP zx1&#v-^Ixhu|eW<^vR(?Mo0unQXCT134*HZ8m7blG4rG#+M=K(8^8haqNLWC%OeDAI<9`i zG;lzQsFd?E(smgO3Wv5o2i9a zAiM7_l--xih>Hb2H1-6YK1`zI50@zPG8{eCb?zxmcw$cs8r?d{Y8MK9ChNR}+K!_O z@9IZc`)&_d|hg}cB^F! zEmpCNSF89nav85ZY8kIn%Xqz7#v9Z!9?w!X9leat5X(4x7UGXt#%IgJCMkkMwT#Cz z?Hol2^;r~+b>T?cEC`{<7Bh(`AjSK3Z8akW1%wxq)Dor@3@#I`)7J84{2x6}hD25_ z#pYHb6H}lLN#wPdBSLUMR4Yz5=>3omB++|9ItxN}^dgy=Y^KL3Sr$|tX$5%4lWbma z+9WTE8~`LtG*uEcQgj6G)pHyKz{HM|NYEFBgh0I#QE)sSxhPBXj$G2Ythc~fn`m%^K;%DoX#t@2h%c>q1ULcqe3B3gEk{+`elS5 zWh~6_+ta|O+8*@h)?0W%@G?(OD_A}C00Z0Q+k^SGnf&l2L4ReViEEP9EUQ_4VkQT+ zW@c@9TT7r39us`C`0Lw)UT3R90mpVW{|=3_&ygCDDRZSpq=u&(i2BQz57$7!^vMg9 z*brajLe-v=WY6j_#At9b5?pfA1)>!*h|MS@=V z5emjfx>Z-Od{!$L`moNg=Hj+UHz_JmTu|1^vB+FUC5SbuZmi^vO0dcur$@(SgX+yj z)tgQBsPZZHVxf?ndZv9PR-szo_&)Fi)LCjdk6}p>st~GYQeX8PtD(u8V-g?;n4?+ZxpKG)ix(D?6X~g!27S%j$nQQ@J0=@KyHz#(HapUyiokd-ite_u z`OJMgl{uh4+MU$!6!hRO+0yd6MN9d=-v|tkW7+qTes%gFh|lih&6k4-{D6oU3{L>w z1G4eyc$z(3>{;`{cG@_UXP zm5YwEZxPP%mz+5aTzs6!xHNUAL z_+3tnhsBY4x;ZoF2~T@AQW9=wN%puTu`m_k9w&7cBHAF*7Df}}>9+@Jxk{&Ch?E6- zv}1hzfo`TUH?UN^10i;3A((3;eTziWx1dEuWFeF?pm?q&DQ$C?rCgDdLK*3};Ugx7 zytY(+WEakvxx0fI_Iw}D-yO`eVArx**s4b;(J&Ya%fQH);TqOjk9M?C+tUf)m32nJ<98^3TD|Jtqq;Mq_!(~&*?9d69a!-`YVk0RfheuO#5%JwxP=>ZhzKm zbK09y9ncN__fdM1u>8g+Bhc|;7qv(z;1<2Zcu#6wew_bZCLW@*zsH3B^-0e6qikiE zct^{_rVJ%c$cH;vJiH*V6fnezMxipLN~y&QhidMpz|dggEv|duh!e37J-n*d!~R^b zz-i-md=a&iHl)xb{Y&uS_kT}Phd6%cmY^>k54W3ZvY@}&Khd^s9eGts|78xD< zZaet9KV(a`#ldA|$m4tan3lA$w0C&+2&~(8`PdPm%B1&1qoLwnUB`;v=e;9P`3Is^ z`AHwfT`rci9>kq2Dgx>g`x_dIxl}|7If6#{&9wIZVmCe~*n+T^{)lenx4i zbj-JATJ&2_JtD@srhApx+RNKm;&*YSmysK=L-FNo8}5v4ALs;Z|h#$zOr`zsF2-(-pP$A`@h^)9?G))#&gO;X_>!E+``KKne7`u zZ?5Z+XkIpm&ngeOC))<8!bsN=wu*Lyr8-b_s^e6gm})t)cxZ3XAilRe z^*kqEP!YCne~GA zmTIEXv2XcE#tV<`L1W?$+ABl9+3@a)8m^i(FuZ_xMI8EWkD1jn%FOhtI<(3y>Zwl> z#?Zm;^{FIJC0ygFwd?T@Qff@gP&-NG3s`>IAiBB=TUe6coLkN}R)>-k(&fmE%oxNE z{}?JM&NOQ`hbBu^5HmEn*@Jl1PoZpE4!4aCrKRKo1p+stz(hNgbuyH*$h%VQSgYEh;G&!xMy42&h@}&wdJdhmpQDm<1KG zk={yyF>77NnvHZ%C+E>@L=}H;OsF`u+H90LYNL6|*pS;cMvcT+8i{Q0IJ4U5yi|?n zo5zMK6DG)7{1XT9_Hoz;3n%e6$A$`;jyt;K$;Xa~_xJ(bmK&IRidh*nVH(967&}!I z?&fpGh4K=n$r>{QgZS#=y7b8OL6#zg>DjktkflJObgNTp2PuKSdU+tJZV<6(ly0{c zRD%^76vJB;YT#8YH7p~+%v0`)ef2Vi?rt7j-jwfN?F3m$-V8o!d?+{EfbM~csv5xl zPn{W!mHr^LMw!jmG)NKeqK%TaXIe8B?G*d+0~12pkCB~87c-W}*qeE8<;^abTd=eI zzVe^S|5Kh?QCrbmadHK(xToU&isvf6uV^Sc_TSTG8_Ju@%ztfV^U5}ron7WH|9}6> zEMH6i>g7-QhVrwmf1ArMvHpEq`OK);e=m&sVN|&6kN)x3%fqiY4ptnAe<}IrbA~!GgJ`guTzf>2gReT5iKMyc!@C32HT$KTHN|(s9PT%uO${h(M-$4 zL6Lv`7KsUxklbf5N2AsF_$E87&cW=Ie6S+0uVx{UEVke%wFQYjusMmJwjiT@E6=SmIpjC75M;;{x$!EfJHh6RFXXgV(=+4LwOT8}#?d>bAN_ zw!5u+HmuFp)U@|@u*Ah?yU27Gj7}jzoxog6><6mD0q3BJ%)gIc`(W62@Wd(Meeq?g z7s8;|u~c<(0(=PC)gyz|m2B_|m}9WCPCLK0F6=GSPF3S~nrw$}rECW|4s4~-(&=t1 zyq0En!5$@?W$WRSYs2X)!1oj!bQm74!8mEX#8ZJHH5i^s^brr9C)2>)BnGv%9`|+P zpC}e*{6-`uY$Dqbk$i?^JZN~tg~m%eOSUKXZ2nknI420Mrdn^FK9dpDP%exrU{c`$ zZ<84A!t6y}U|0h9n@Yc`U#$(D=huY`@oHXoT{tW0d~N6SWc3_g;TdX|;W2Uix+kGRkrWDN z*azA9;osx@u!9Sy+v53&p>R&-U^r(dP3SFUZSZ|09DMgRbrrD8A$ESzu5g;YOyhTk z!lQ-^wUZ@P?apv`#8F|Tu3-X=4C4dQ8N^6)@W z!K9vLgtl(^vVuu?1g0a8QdMj)P~T9%i^Ji9K~x~$77hI;~bEQcjM#op9IBnn+1w}}C$UD^hFs_ImpH#b~0)GhIHJ$%7j)avCM=Y~g2^T}9` z-!5hy%kx6XBrJ8-UX__t3T=LZ@70xN`?xJEI2SPJj7@F1xDOI@9Yi_Av5k@ z4)laOY!Nazt!AF-aDZ10<(}9(BJ_x*UJ7}Xz#Y+3XI?RJ+eZIFb#2TU0ur&p$KWCv z29m!XB`I&CbSuZ$2)r3lJgq_AATwsNa(;Mq*dO1Bt0b%w!!ONBz8&(m7>iaftQ*7@ zDNHZrQ$BcEPeq!>m+5z#5wwxU*cxZwLzc@~_IrhydYbz_NaG|g{(iZT3m)KYz2SWO z0h_XLJZKYl_zq&Ra`UG#;`w9WtK0Tli;_o>Y)NK}FQngqskg*Xu?8y4rel*EPuu;=NDw z9_P1ArQW+Ht5C4M0Z(PQaH5MuGP?lo6f;PJ2sJgL9uN#Fspe#wR2PT`nFU?wm6J7{#^g0(1 z3bs(7_!q{c%3~PYG;^M$N`X(Zc-SJ~G0R1ymMJ&d0HNfy^AES;pgD#AduzCGFw6;9 z#Zq3>A1+VrQ00$9=4FTR|J1i2W;1<9GIl zD+a>~fK6P*KkpAuaCTXoOn;A{on}GXUv6_S=~;sgfQ}%4l3K4EvZS@pnI;SP*$oW= zrmd4TW}J>(6Boq(wN6XT_5sX6buF0c)zUCn$gQqX?t`yI4&iTs z#qXu!u8Z*@oN@ip*;mrjHX{Fxq!PT5r9su+lrqLt!MyupW>aw4VOED{b)|gn7L?nu zL|+DHp9?FQ?^eqfv3i>il`!9J{K$D>ZwWN>mCkqk9cWqnn7J|ib=`0UH&1BpfiMvn9ndEgvjhW8=#h%+l}JIylTU>A9I2KdEZQ>{DqK7g z*181lR-pmbxw5Yg&WT-6D#ce%^o}UjcQO=~gwKfBn_3F=O{EN)kWfP!)J>%dKnxn< zv)cKimxMDTa5!ka#cMv_xfG3{uYD|w?;!so%Ou@1;O$O$l}=ef`m|PUqnWQ$Dl`tX zu6IC%OZ0ynOIaDyy3uGwdKY{W(ibow%gCxe=IBB$W#7?5dSl{?5;{+Kz;P*F`eezg zWof45+p$IwV*!@jYtm))eZ_ce)4i5Ry7{g9FAduxv^n(!o7b(aVXk#C69RSV(^XTU z!w5YvYpSTJj*Up8-3+6$iALoNsYqsOVp**^^QcyxWwpu+9kD6RQ-tpw=`I4UBv@`l zArNtkS*srS?n2TzDj7=`g2X=FcX`;8vPG)YY0wiRMnFzKuS^POr|Q5}#59$}{O9sT zNn!7(`18=>)bo$32%93JlP-v@z;hwDeHZU06K%OUstUIANmqokZ9Dk9E5b#QOONW~ zWvU2_{N>Toil<=YuRz%R)a0PY??kPMu)P*jDx3lBwtNPxXM}y z@mEuO_kaN`c1`JZ{hDaf^zx53n zOnX!KDQ#}411YdgJyJIkH0hsd4sc`bE5J1^=`Aaij}Yv`RodBT+&i+Qtao|kmEp{~ z_hc~ReOWM`j7G^9nD`bg$I{$qa0mEp;ePh`;dsVIsF#0yn9 zxcj+2vx*r>L1>Sg4W{5CTV%Ml~&XOI5D_p#g ziA;U99ZOb1%t~B520vV47IJgNaJ138Y8R*)(30M@1zX5(@5sDpa<#eR^mZaxWEsNj@jxJ-D^+)SuJD~^0TiEr_TdZ$1ENEX^h`6D*|X3D{yuc z!piQheZ&m4tvnKZ0|ckc}s zxhrKbp-S`%p5ft>eE;5XK?*oKs=A)_XkQVW=w25tiYAGIY{!WrvWRITix46h`EB*CrW&V6#HkXI zSTqU|{25gu&O;zhmxwhIk=QW`5zH8ch(-Z1C=o*vk(e(E5sVjw2sh?HJV7GPkch-+ zQHWr&D8#kxgxDw%n*?GuF;ygD3OFhX5yE=HY>}9)0@F!66p5KNoA16MoaqJQL}geG z=Uie<6wT!?-ViQy5yM0x7tO~o^QOwxIUZa(tQ>ga0NpD*k(b?wBXc1=z*_Eva7N`C zcQW60V|c7<_D|7i$Ub`<`mfT@w?pcEsx{R0a z54R0VTQMMa)DwQERlu-Q`LFxJMV`~51>kYyuG7)rm9oLBWP`h`EaSTQ_Wj|pjvgyZ zFW-Ap*uy8>81~!N5PF%tqE}?&**Aw1;;Yxuz>K&&X_ODoH(A**l(MGv^z3cEy<&sR zTey+J11EZNSpWji6oQ3G3X4nK5rxO`Zjm1)(| zvDln8D-1cL;w9XQEvn|NvgUrPkbIr@+!D^%e``27GQFX`23zZVB$6b6?&vsJFwr8| z5+JtUiP2Csf(y-HT>wnbWSVu#3WjPeaad2b!fmr#z`aYsB2Wl(>xpfeyx5GWZ;sS} zXPMNlB3g+VnnKHi3Peb-?;y965p9CA=vrz9A$mb`uuKGcTT^2laxYWC+09V#K}6DW zGlCen$+UW?@VUrbRKOz1v}{B~OFf}GAlNfEuBdEJFvx<9AUBa!F``$gj8qLua?xU< zWXb(?b*o@axP?-&utaLT^f&KwY?~_L8WKatB;%CS9t;d-9renU$(tA*GKAoaB+>mbVMLJ3LHh?&dj`PdJ%PVxrX5hS*n?^;9yD=OhxGl2@a0AQcUpclne!{f zIvPEZX|Vh!-dfT(^xLk_5RNb7;RArB!RX(TAH`^Fru>6Ab+LlDBPfq}A7IQTeJ}Zq zSZ`1uNQuDo-{NbMtKRs3qGY^KBkq<03A_roas*(ilp-qrC*UQ)7XUFeWMR%

q-h zFq`2WfF=JsCK-7W{{sYJ_CoGj|I03CX_4QcvMRZ8vF=q_3j7BQXqRS__H@a1`Id?0 zu{BPbUJuCakC%7j*huQeV2K;kjU|pDsyr~@wPTAyE=K~G36=C%A9FZ}D#zvs_N7zZ z>JzOfZ<6|Rfby*i*WuK${5A4lJ&;_x!g1vqeeiLS%5Ics-*5-xW`?5>WEW!>* zbnhkNH{Y}44{E^2tqzy0%lNCGgfmB69xZms%5EZ?J^0X%Zkl%|Px& z)9|n{yQBF*V=qN^Yy-z+ziL3-fzQG(#zm4#8mnpT!tZn8y4TaoxZDe!6_9?h9Cx4yQ#9`3f`-axEVD5+EthX?)* zgzEBWSv;TCH8?(!I+jGe#9=`*8k>+$8>gBvUNvKaY=&c^Xa)`*dK?EWl7|jUI8Fpw z>zH#g{Y8h(Qsz8f{7vT!OP+F6N2jV9rrG$Tk9h0g9rIh=2jpe$rLN_{f<5b-^O*dBR#wy+D(v5E2=+TYUy0Jz#dUa#1ZmiRd z({*FLZfwwvjk>W(H_p(FGj-!E-8fq}BD!&oZuIHKX5HAL8(VdwUpI8!I9E5$(~a|W zW1DVVpc@zJ#zneuv2JYFjZ1W6hi+V|8<*+E<+^c&ZtTnp~jcavduWnqY8`tZ`4Z3loZtT;I{kn0JZrrRJx9G;Lx^bIs+^!pU=*FG8ahGn~ ztsD2~#=W|6pKjc*8xQEl0o^#L8xQKnL%Q*>ZaktJkLt!_y79PfJfRzhbmK|gcuF^( z){SR$<5}H!PB)&{jTdy|McsHwH~yp>FYCrDy78)Ryrvtk>&6?p@uqJ4SvTI&jkk5< z9o=|WH{R2Y_jTg~-S|*9KGKbkb>kD=_*6GO(~ZNr@fY3rTsQtlH@?sfLpQ$Ejjwd$ zue$NIZhWH~f76Y>>&8EH<6GT0q8s1o#`n7MgKqp&H~ys?KkCL$y79Aa{GuDb>c+oy z<3GCbU)}gkH-6t{*e*6~06QQKFbEJ27z`K!&;UaL2>=Jc2}lGa0bGD&Knfrg;09p- zFuVXCzz;|RqysVlnSd-nHXsL(3&;cH0}23zfFi&!z;Hk@U<9B9Pzo3c7zHQ;lmjXN zm4GThHDEMg3}7r^9AG?P0$?Iw65u$%WWe!&DS)YfX@CG=I-mwn3#bDG0U(7qAwv4sbePJzxW1BVZHY48WOyvjArU zB7k!MeSpn?Er6|net-@*7jPcne84uq1%L|y7XdB?YzJHd*a5f{a2eooz!iX<01ns% z*bTT6a24Qcz#hOgfNKGJ0oMVp2iyR-5wH)iA8-@kX230gTLHHLZU@`}xD#*};BLS@ zfO`S=0qzGp05||R2zU_i5a40JBY;N%j{zPBJOMZacoOgw;Ay}!fM)^E0iFlE0C*Ab z65vmOmjSN;UIn}ccpdNt;7!1v0dE1`2D}4!7w{h7eZU8R4*?$mJ_dXO_!RIN;4t7X zfX@N{1NZ`90KNo#1^6rAYrr>vzXARZ_y^!yz!AWAfbRi60R9R17vM+0Pk^5RzW{y( T{2TBez<&Y1+3qxcx263b22xQs delta 59807 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 diff --git a/A2osX.S.QC.txt b/A2osX.S.QC.txt index 7adf6999..59188ba6 100644 --- a/A2osX.S.QC.txt +++ b/A2osX.S.QC.txt @@ -39,9 +39,24 @@ A2osX.QC.Start1 sei lda #$8C Reset 80 col screen ($0C=FF=HOME) jsr $C300 - lda $280 + ldx $280 beq A2osX.QC.Start2 +.2 dex + lda $280,x + cmp #'/' + bne .2 + + stx A2osX.QC.BOOT + +.3 lda $280,x + sta A2osX.QC.BOOT,x + dex + bne .3 + + jsr A2osX.QC.SetPFX + bcs A2osX.QC.Start2 + jsr A2osX.QC.Load bcs A2osX.QC.Start2 @@ -51,9 +66,7 @@ A2osX.QC.Start2 sec >LDYAI MSG.INIT1 jsr A2osX.QC.PrintYA -.3 jsr MLI - .DA #MLISETPREFIX - .DA MLISETPREFIX03 +.3 jsr A2osX.QC.SetPFX bcc .4 >LDYAI MSG.SETPREFIXKO @@ -113,6 +126,11 @@ A2osX.QC.Start2 sec A2osX.QC.JMP >DEBUGOA jmp $2000 *-------------------------------------- +A2osX.QC.SetPFX jsr MLI + .DA #MLISETPREFIX + .DA MLISETPREFIX03 + rts +*-------------------------------------- A2osX.QC.Load >LDYAI MSG.LOAD clc jsr A2osX.QC.PrintYA diff --git a/BIN/ACOS.S.CORE.txt b/BIN/ACOS.S.CORE.txt index eb44b3eb..b4b80fa1 100644 --- a/BIN/ACOS.S.CORE.txt +++ b/BIN/ACOS.S.CORE.txt @@ -160,7 +160,7 @@ CORE.Compile jsr CORE.GetChar bra .8 *-------------------------------------- .3 jsr CORE.CreateOrGetVar - bcs .90 + bcs .99 jsr CORE.GetCharNB bcs .90 @@ -425,6 +425,8 @@ CORE.CreateLabel jsr CORE.NewKey bcs .9 + >STYA ZPSID + >PUSHB.G hLabels >PUSHW ZPSID >PUSHWI ZPCodeBufPtr @@ -490,21 +492,15 @@ CORE.CreateOrGetVar jsr CORE.GetAddr bcc .2 - >LDA.G hVars - jsr CORE.NewKey + jsr CORE.NewVarKey bcs .99 - jsr CORE.GetChar - bcs .1 + >STYA ZPSID - stz ZPTYPE + jsr CORE.GetVarType + stx ZPTYPE - cmp #'$' - bne .1 - - sta ZPTYPE - - jsr CORE.GetNextChar skip $ + beq .1 lda STRID sta ZPADDR @@ -537,19 +533,9 @@ CORE.CreateOrGetVar >SYSCALL SListAddData rts *-------------------------------------- -.2 ldx #0 +.2 jsr CORE.GetVarType - jsr CORE.GetChar - bcs .3 - - cmp #'$' - bne .3 - - tax - - jsr CORE.GetNextChar skip $ - -.3 cpx ZPTYPE + cpx ZPTYPE bne .90 clc @@ -560,15 +546,22 @@ CORE.CreateOrGetVar .99 rts *-------------------------------------- +CORE.NewVarKey >LDA.G hVars + CORE.NewKey >PUSHA >PUSHW ZPInputBufPtr >SYSCALL SListNewKey - bcs CORE.GetAddr.RTS + bcs .9 - >STYA ZPSID + pha txa - jmp CORE.SkipA + jsr CORE.SkipA + + pla Y,A = KeyID + clc + +.9 rts *-------------------------------------- CORE.GetAddr >PUSHA >PUSHA for SListGetData @@ -590,9 +583,27 @@ CORE.GetAddr >PUSHA rts .9 >POP 1 -CORE.GetAddr.RTS + rts *-------------------------------------- +CORE.GetVarType jsr CORE.GetChar + bcs .9 + + cmp #'$' + bne .9 + + inc ZPInputBufPtr + bne .1 + inc ZPInputBufPtr+1 skip $ + +.1 tax NZ + + rts + +.9 ldx #0 Z + + rts +*-------------------------------------- CORE.ToUpperCase cmp #'a' bcc .8 diff --git a/BIN/ACOS.S.EXP.txt b/BIN/ACOS.S.EXP.txt index 8d17ac1f..31562dba 100644 --- a/BIN/ACOS.S.EXP.txt +++ b/BIN/ACOS.S.EXP.txt @@ -60,16 +60,17 @@ EXP.Eval.R lda EXP.AOPS bra .40 .21 jsr EXP.VARLookup - bcs .99 + bcc .22 - ldx EXP.TYPE - bne .22 + +.22 ldx EXP.TYPE + bne .23 jsr CODE.INTGET bra .40 -.22 jsr CODE.STRGET +.23 jsr CODE.STRGET bra .40 *-------------------------------------- @@ -198,13 +199,13 @@ EXP.Int16 >PUSHW ZPInputBufPtr EXP.VARLookup >LDA.G hVars >PUSHA - >PUSHA for SListGetData + >PUSHA for SListGetData/SListAddData >PUSHW ZPInputBufPtr >SYSCALL SListLookup - bcs .9 + bcs .3 - >PUSHYA ZPSID + >PUSHYA KeyID txa jsr CORE.SkipA @@ -215,31 +216,64 @@ EXP.VARLookup >LDA.G hVars >SYSCALL SListGetData bcs .99 - ldx #0 + jsr CORE.GetVarType - jsr CORE.GetChar - bcs .2 - - cmp #'$' - bne .2 - - tax - - jsr CORE.GetNextChar skip $ - -.2 cpx EXP.TYPE + cpx EXP.TYPE bne .90 clc rts -.9 >PULLA -.99 rts - .90 lda #E.TMISMATCH sec - rts +.99 rts *-------------------------------------- +.3 jsr CORE.NewVarKey + bcs .39 + + phy + pha KeyID + + jsr CORE.GetVarType + stx EXP.TYPE + + beq .11 + + lda STRID + sta EXP.ADDR + + lda STRID+1 + sta EXP.ADDR+1 + + inc STRID + bne .10 + + inc STRID+1 + bra .10 + +.11 lda ZPDataBufPtr + sta EXP.ADDR + + clc + adc #2 Word + sta ZPDataBufPtr + + lda ZPDataBufPtr+1 + sta EXP.ADDR+1 + adc #0 + sta ZPDataBufPtr+1 + +.10 pla + >PUSHA + pla + >PUSHA + >PUSHWI EXP.ADDR + >PUSHWI 3 3 bytes : ADDR + TYPE + >SYSCALL SListAddData + rts + +.39 inc pStack + rts *-------------------------------------- MAN SAVE usr/src/bin/acos.s.exp diff --git a/BIN/ACOS.S.KW.txt b/BIN/ACOS.S.KW.txt index 33035307..88f40d28 100644 --- a/BIN/ACOS.S.KW.txt +++ b/BIN/ACOS.S.KW.txt @@ -294,7 +294,22 @@ KW.RIPCO KW.SET KW.SETINT KW.TEXT -KW.THEN + lda #E.CSYN + sec + rts +*-------------------------------------- +KW.THEN ldy pCCS + lda (pData),y + eor #KWID.IF + bne .9 + + clc + rts + +.9 lda #E.NOIF + sec + rts +*-------------------------------------- KW.TONE KW.UPDATE KW.USE diff --git a/BIN/ACOS.S.STR.txt b/BIN/ACOS.S.RT.txt similarity index 68% rename from BIN/ACOS.S.STR.txt rename to BIN/ACOS.S.RT.txt index aec078c5..a6dca663 100644 --- a/BIN/ACOS.S.STR.txt +++ b/BIN/ACOS.S.RT.txt @@ -2,16 +2,14 @@ NEW AUTO 3,1 .LIST OFF *-------------------------------------- -STR.Add +RT.StrSet *-------------------------------------- -STR.replace -*-------------------------------------- -STR.Get +RT.StrGet *-------------------------------------- clc rts *-------------------------------------- MAN -SAVE usr/src/bin/acos.s.str +SAVE usr/src/bin/acos.s.rt LOAD usr/src/bin/acos.s ASM diff --git a/BIN/ACOS.S.txt b/BIN/ACOS.S.txt index 1808718d..d41b7162 100644 --- a/BIN/ACOS.S.txt +++ b/BIN/ACOS.S.txt @@ -506,6 +506,7 @@ CCODE.LEFT.LEN .EQ *-CCODE.LEFT .INB usr/src/bin/acos.s.exp .INB usr/src/bin/acos.s.fn .INB usr/src/bin/acos.s.kw + .INB usr/src/bin/acos.s.rt *-------------------------------------- CS.END *-------------------------------------- diff --git a/BIN/CSH.S.CORE.txt b/BIN/CSH.S.CORE.txt index df37fd4d..ad8c1022 100644 --- a/BIN/CSH.S.CORE.txt +++ b/BIN/CSH.S.CORE.txt @@ -3,12 +3,12 @@ NEW .LIST OFF *-------------------------------------- CSH.Init >SYSCALL SListNew - bcs .9 + bcs .99 >STA.G CSH.hDefines >SYSCALL SListNew - bcs .9 + bcs .99 >STA.G CSH.hTags @@ -19,7 +19,7 @@ CSH.Init >SYSCALL SListNew >LDYAI 256 >SYSCALL GetMem - bcs .9 +.99 bcs .9 >STYA ZPCSHCode txa @@ -49,6 +49,14 @@ CSH.Init >SYSCALL SListNew txa >STA.G CSH.hStack + >LDYAI 256 + >SYSCALL GetMem + bcs .9 + + >STYA ZPCSHfDecl + txa + >STA.G CSH.hfDecl + lda #0 >STA.G CSH.ConstPtr >STA.G CSH.StackPtr @@ -81,6 +89,9 @@ CSH.Quit >LDA.G CSH.hSymbols >LDA.G hFileBuf jsr .7 + >LDA.G CSH.hfDecl + jsr .7 + >LDA.G CSH.hStack jsr .7 @@ -115,30 +126,70 @@ CSH.Run.1 cmp #C.CR empty line.... jmp CSH.DIR .4 cmp #'}' End of block ? - bne .40 + bne .10 jsr CSH.CheckStack must be something on stack.... - bcs .9 + bcs CSH.Quit.RTS + jsr CSH.GetNextCharNB Skip '}' jsr CSH.Pop was expected.... jsr CSH.Pop get stacked Cmd... tax jmp (J.CSH.KW.END,x) - -.40 jsr CSH.IsLetter - bcc .5 +*-------------------------------------- +.10 jsr CSH.IsLetter + bcc .20 - bra .99 error, todo : PREOPS ++ --..... + bcs .29 error, todo : PREOPS ++ --..... +*-------------------------------------- +.20 >LDYA L.CSH.TMODS + jsr CSH.LookupID + bcs .50 -.5 jsr CSH.SavePtr Save Ptr, in case of while,for.... + jsr CSH.tDecl.JMP + bcs .59 + + jsr CSH.AddSymbol add with undef value... + bcs .99 OOM or DUP + + jsr CSH.GetCharNB + bcs .99 + + cmp #';' + beq .8 + + cmp #'=' + bne .21 + + jsr CSH.GetNextCharNB skip '=' + bcs .99 + + lda ZPVarType + jsr CSH.ExpEval + bcs .9 + + jsr CSH.SetVarValueFromStack X= Type, Set value to this var +.29 bcs .99 + + bra .68 + +.21 cmp #'(' + bne .99 + + jsr CSH.fDecl + bcs .99 + + bra .68 +*-------------------------------------- +.50 jsr CSH.SavePtr Save Ptr, in case of while,for.... >LDYA L.CSH.KW jsr CSH.LookupID bcs .6 not an internal CSH keyword.... jsr CSH.KW.JMP - bcs .9 +.59 bcs .9 bra .8 .6 jsr CSH.GetVar @@ -148,7 +199,13 @@ CSH.Run.1 cmp #C.CR empty line.... jsr CSH.GetVarDef Get Type & ptr... bcs .9 - jsr CSH.GetCharNB + lda ZPVarQual + bit #CSH.Q.FUNC + beq .60 + + +*-------------------------------------- +.60 jsr CSH.GetCharNB bcs .9 cmp #'=' TODO: all AOPS @@ -164,7 +221,7 @@ CSH.Run.1 cmp #C.CR empty line.... jsr CSH.SetVarValueFromStack X = Exp Type bcs .9 - jsr CSH.GetChar +.68 jsr CSH.GetCharNB cmp #';' beq .8 @@ -337,56 +394,95 @@ CSH.AddSymbol >LDA.G CSH.hSymbols .9 rts .99 lda #E.OOM - .HS 2C BIT ABS -CSH.TMISMATCH lda #E.TMISMATCH - sec +* sec rts *-------------------------------------- -CSH.fDeclaration - lda #CSH.Q.FUNC - tsb ZPVarType - - - jsr CSH.SkipLine - clc - rts - +CSH.fDecl lda ZPCSHfDecl + sta ZPVarDataPtr + + lda ZPCSHfDecl+1 + sta ZPVarDataPtr+1 + lda ZPVarID + jsr CSH.fDeclAddA + lda ZPVarID+1 + jsr CSH.fDeclAddA + >DEBUG jsr CSH.GetNextCharNB Skip ( bcs .9 .1 cmp #')' beq .5 - jsr CSH.GetDeclaration +.2 jsr CSH.fDeclGetArg bcs .99 - + jsr CSH.GetCharNB + bcs .9 + + cmp #')' + beq .5 + + cmp #',' + bne .9 + + jsr CSH.GetNextCharNB Skip , + bcs .9 + + bra .2 .5 jsr CSH.GetNextCharNB Skip ) + bcs .9 - clc - rts + cmp #';' + bne .9 + + jsr CSH.GetNextCharNB Skip ; + +.8 lda #0 + sta (ZPCSHfDecl) + + jmp CSH.SetVarValueFromStack .9 lda #E.CSYN sec .99 rts *-------------------------------------- -CSH.GetDeclaration - >ENTER 4 +CSH.fDeclGetArg >ENTER 4 - >LDYA L.CSH.MTYPES + >LDYA L.CSH.TMODS jsr CSH.LookupID bcs .9 + jsr CSH.tDecl + bcs .9 + bra .8 .9 lda #E.CSYN sec + .8 >LEAVE rts *-------------------------------------- +CSH.fDeclAddA sta (ZPCSHfDecl) + inc ZPCSHfDecl + bne .8 + + inc ZPCSHfDecl+1 + +.8 rts +*-------------------------------------- +CSH.tDecl jsr CSH.tDecl.JMP + bcs .9 + + + +.9 rts + +CSH.tDecl.JMP jmp (J.CSH.TMODS,x) +*-------------------------------------- CSH.NewKey >PUSHA >PUSHW ZPInputBufPtr >SYSCALL SListNewKey @@ -771,14 +867,19 @@ CSH.GetChar lda (ZPInputBufPtr) sec rts *--------------------------------------- +CSH.IsEndArg +*--------------------------------------- CSH.IsOPChar ldx #CSH.OPChars.Cnt-1 .1 cmp CSH.OPChars,x beq .8 + dex bpl .1 + sec rts + .8 clc rts *--------------------------------------- @@ -788,16 +889,21 @@ CSH.IsLetterOrDigit *--------------------------------------- CSH.IsLetter cmp #'_' bne .1 + clc rts + .1 cmp #'A' bcc .9 + cmp #'Z'+1 bcc CSH.IsLetterRTS cmp #'a' bcc .9 + cmp #'z'+1 + rts CC if lowercase .9 sec diff --git a/BIN/CSH.S.EXP.txt b/BIN/CSH.S.EXP.txt index c995721e..f9b4a2d6 100644 --- a/BIN/CSH.S.EXP.txt +++ b/BIN/CSH.S.EXP.txt @@ -35,15 +35,18 @@ CSH.ExpEval ldx ZPPtr1 jsr CSH.ExpEval bcs .19 + stx ZPPtr2 jsr CSH.GetCharNB bcs .19 + cmp #')' bne .19 jsr CSH.GetNextCharNB skip ) bcc .31 + .19 jmp .90 *-------------------------------------- .20 jsr CSH.IsLetter define, Fnc or Var ? @@ -81,25 +84,27 @@ CSH.ExpEval ldx ZPPtr1 .23 jsr CSH.GetNumOnStack bcs .29 + bra .30 .24 cmp #'"' String literal bne .90 + jsr CSH.AddContCharP .29 bcs .99 *-------------------------------------- .30 jsr CSH.GetCharNB bcs .90 -.31 cmp #',' +.31 cmp #';' + beq .80 + + cmp #',' beq .80 cmp #')' beq .80 - cmp #';' - beq .80 - jsr CSH.IsOPChar bcs .90 @@ -163,10 +168,13 @@ CSH.AddContCharP .1 jsr CSH.GetNextChar bcs .9 + cmp #C.CR beq .9 + cmp #'"' beq .2 + sta (ZPCSHConst),y iny bra .1 diff --git a/BIN/CSH.S.KW.txt b/BIN/CSH.S.KW.txt index 5980eb12..e4a8f839 100644 --- a/BIN/CSH.S.KW.txt +++ b/BIN/CSH.S.KW.txt @@ -116,21 +116,14 @@ CSH.STRUCT >ENTER 4 .99 >LEAVE rts *-------------------------------------- -CSH.CONST lda ZPVarQual - bit #CSH.Q.PPPOINTER - bne .1 +CSH.CONST lda #CSH.Q.CONST - lda #CSH.Q.CONST - bra .2 - -.1 lda #CSH.Q.PCONST - -.2 bit ZPVarQual - bne .9 - tsb ZPVarQual - clc - rts + >LDYA L.CSH.TMODS2 + jsr CSH.LookupID + bcs .9 + + jmp (J.CSH.TMODS2-2,x) .9 lda #E.CSYN sec @@ -224,59 +217,21 @@ CSH.TYPE stx ZPVarType bra .9 more than *** .10 jsr CSH.IsLetter - bcs .9 + bcs .8 >LDYA L.CSH.FTYPES jsr CSH.LookupID - bcs .12 + bcs .8 next char is an identifier sec ror bFastCall + lda #CSH.Q.FUNC + tsb ZPVarQual + jsr CSH.GetNextCharNB - bcs .9 + bcs .9 next char is an identifier, ",", "(",")" - jsr CSH.AddSymbol - bcs .99 - - jsr CSH.GetCharNB - bcs .9 - - bra .13 - -.12 jsr CSH.AddSymbol add with undef value... - bcs .99 OOM or DUP - - jsr CSH.GetCharNB - bcs .9 - - cmp #';' - beq .8 - - cmp #'=' - beq .2 - -.13 cmp #'(' - bne .9 - - jmp CSH.fDeclaration - -.2 jsr CSH.GetNextCharNB Skip = - bcs .9 - - lda ZPVarType - jsr CSH.ExpEval - bcs .99 - -.7 jsr CSH.SetVarValueFromStack X= Type, Set value to this var - bcs .99 - - jsr CSH.GetChar - bcs .9 - - cmp #';' - bne .9 - .8 clc rts diff --git a/BIN/CSH.S.txt b/BIN/CSH.S.txt index f9b2e2f0..c39b142c 100644 --- a/BIN/CSH.S.txt +++ b/BIN/CSH.S.txt @@ -36,6 +36,7 @@ ZPCSHCode .BS 2 ZPCSHConst .BS 2 ZPCSHData .BS 2 ZPCSHStack .BS 2 +ZPCSHfDecl .BS 2 ZPVarID .BS 2 ZPVarDef .EQ * @@ -127,7 +128,8 @@ J.CSH.cBOPS .DA CSH.BOPS.cMUL L.CSH.FN .DA CSH.FN L.CSH.DIRS .DA CSH.DIRS L.CSH.KW .DA CSH.KW -L.CSH.MTYPES .DA CSH.MTYPES +L.CSH.TMODS .DA CSH.TMODS +L.CSH.TMODS2 .DA CSH.TMODS2 L.CSH.TYPES .DA CSH.TYPES L.CSH.FTYPES .DA CSH.FTYPES J.CSH.DIRS .DA CSH.DIR.DEFINE @@ -146,8 +148,8 @@ J.CSH.KW .DA CSH.IF .DA CSH.TYPEDEF .DA CSH.STRUCT *-------------------------------------- -J.CSH.MTYPES .DA CSH.CONST - .DA CSH.SIGNED +J.CSH.TMODS .DA CSH.CONST +J.CSH.TMODS2 .DA CSH.SIGNED .DA CSH.UNSIGNED .DA CSH.SHORT J.CSH.TYPES .DA CSH.VOID @@ -534,8 +536,12 @@ CSH.KW >PSTR "if" >PSTR "sizeof" >PSTR "typedef" >PSTR "struct" -CSH.MTYPES >PSTR "const" ALL - >PSTR "signed" char,int,long + .HS 00 +*-------------------------------------- +* Type Declaration +*-------------------------------------- +CSH.TMODS >PSTR "const" ALL +CSH.TMODS2 >PSTR "signed" char,int,long >PSTR "unsigned" char,int,long >PSTR "short" int CSH.TYPES >PSTR "void" @@ -700,6 +706,9 @@ CSH.DataPtr .BS 2 CSH.hStack .BS 1 CSH.StackPtr .BS 1 +CSH.hfDecl .BS 1 +CSH.fDeclBuf .BS 2 + CSH.SaveInclude .BS 2 CSH.SaveDefine .BS 2 diff --git a/LIB/LIBCIFS.S.IO.txt b/LIB/LIBCIFS.S.IO.txt index afafb627..0937cef6 100644 --- a/LIB/LIBCIFS.S.IO.txt +++ b/LIB/LIBCIFS.S.IO.txt @@ -534,14 +534,111 @@ CIFS2.ChOwn sec rts *-------------------------------------- -CIFS.FOpen +CIFS.FOpen jsr MakeTrans2Reg + ldx #0 -CIFS2.FOpen +.1 lda SMB.Open2,x + sta (ZPReqPtr),y + iny + inx + cpx #SMB.Open2.Len + bne .1 - lda #MLI.E.BADCALL + phy + + ldy #5 + lda (pStack),y + sta pPath+1 + + dey + lda (pStack),y + sta pPath + + dey flags + lda (pStack),y + pha + + and #O.RDWR + dec + ldy #S.NETBIOS+S.SMB.H+SMB.Trans2.H.Len+9 AccessMode + sta (ZPReqPtr),y + + ldy #S.NETBIOS+S.SMB.H+SMB.Trans2.H.Len+19 OpenMode + + pla + pha + and #O.CREATE + beq .2 + + lda #$10 + sta (ZPReqPtr),y + +.2 pla + and #O.APPEND + beq .3 + + lda (ZPReqPtr),y + ora #1 + sta (ZPReqPtr),y + +.3 ply + + jsr AppendPath + + lda #0 + sta (ZPReqPtr),y + iny + + jsr SetT2ReqLenYA + + pha + >PUSHB MountTable+3 hSocket + >PUSHW ZPReqPtr + pla + >PUSHYA + + ldx #LIBTCPIP.Send + jsr GO.LIBTCPIP + bcs .9 + + jmp Sleep + +.9 >RET 6 +*-------------------------------------- +CIFS2.FOpen jsr ReadSocket + bcs .9 + + jsr GetRespData + + ldy #S.NETBIOS+S.SMB.H.STATUS + lda (ZPRespPtr),y + clc + beq .8 + + lda #MLI.E.DUPFILE + sec + +.8 jsr FreeRespData + + stz CIFS.Status + >RET 4 + +.9 cmp #E.NODATA + bne .99 + + dec CIFS.Retries + beq .98 + + lda #0 sec rts + +.98 lda #MLI.E.IO + +.99 sec + stz CIFS.Status + >RET 4 *-------------------------------------- CIFS.FClose CIFS2.FClose diff --git a/LIB/LIBCIFS.S.txt b/LIB/LIBCIFS.S.txt index b46ce19e..d8117134 100644 --- a/LIB/LIBCIFS.S.txt +++ b/LIB/LIBCIFS.S.txt @@ -20,13 +20,18 @@ ZPReqPtr .BS 2 ZPReqLen .BS 2 ZPCtxPtr .BS 2 pFD .BS 2 -pPath .BS 2 ZPPtr1 .BS 2 ZPPtr2 .BS 2 BufPtr .BS 2 hBuf .BS 1 hResp .BS 1 + +pPath .BS 2 +flags .BS 1 +ftype .BS 1 +auxtype .BS 2 + ZPRespPtr .BS 2 bFlag .BS 1 @@ -1032,7 +1037,7 @@ SMB.Open2 .DA 0 TRANS2_OPEN2 .BS 2 PrmCnt .HS 000000 Padding .HS 0000 Flags - .BS 2 Access Mode + .BS 2 AccessMode .HS 0000 Reserved1 .BS 2 FileAttributes .HS 00000000 CreationTime diff --git a/ProDOS.FX/ProDOS.S.txt b/ProDOS.FX/ProDOS.S.txt index eccd152f..4950d8d2 100644 --- a/ProDOS.FX/ProDOS.S.txt +++ b/ProDOS.FX/ProDOS.S.txt @@ -11,7 +11,7 @@ LOWERCASE .EQ 1 ACL .EQ 1 LOGO .EQ 1 *-------------------------------------- -XRWDBG .EQ 1 +XRWDBG .EQ 0 *-------------------------------------- .INB inc/zp.i .INB inc/io.i diff --git a/SBIN/INITD.S.txt b/SBIN/INITD.S.txt index b9e5e86e..2442b2b3 100644 --- a/SBIN/INITD.S.txt +++ b/SBIN/INITD.S.txt @@ -54,7 +54,9 @@ L.CMDS .DA BINSH .DA BINSHUTDOWN .DA 0 *-------------------------------------- -CS.INIT clc +CS.INIT +*-------------------------------------- +CS.QUIT clc rts *-------------------------------------- CS.RUN ldy #S.PS.PID @@ -208,9 +210,6 @@ CS.RUN.ERRMSG tax CS.DOEVENT sec rts *-------------------------------------- -CS.QUIT clc - rts -*-------------------------------------- CS.END *-------------------------------------- MSG.CTRLR .AZ "INITD:Entering ROOT mode..." @@ -224,12 +223,6 @@ BINMEM .AZ "${ROOT}bin/mem" BINPS .AZ "${ROOT}bin/ps" BINLSOF .AZ "${ROOT}bin/lsof" BINSHUTDOWN .AZ "${ROOT}bin/shutdown" -*-------------------------------------- -MLI.PARAMS .DA #4 - .DA #0 - .DA 0 - .DA #0 - .DA 0 *-------------------------------------- .DUMMY .OR 0 diff --git a/SHARED/X.PRINTF.S.txt b/SHARED/X.PRINTF.S.txt index 408e31d0..b3a5fc8a 100644 --- a/SHARED/X.PRINTF.S.txt +++ b/SHARED/X.PRINTF.S.txt @@ -4,52 +4,70 @@ NEW *-------------------------------------- PrintFYA sty PrintFYA.Next+1 sta PrintFYA.Next+2 + pla sta PrintFYA.99+1 pla sta PrintFYA.98+1 + lda $C011 RDLCBNK2 sta PrintFYA.91+1 + lda $C012 RDLCRAM sta PrintFYA.90+1 + lda $C08A RROMBNK1, make sure $D000-$FFFF ROM selected lda $CFFF get access to $C800-$CFFF internal ROM + PrintFYA.1 stz X.b0Flag stz X.DigitCount jsr PrintFYA.Next beq PrintFYA.90 cmp #'%' bne .7 + .2 jsr PrintFYA.Next beq PrintFYA.90 cmp #'0' bne .3 + ror X.b0Flag beq -> CS bra .2 + .3 bcc .4 + cmp #'9'+1 bcs .4 + and #$0f sta X.DigitCount bra .2 + .4 ldx #PrintFYA.Tbl-PrintFYA.Esc-1 .5 cmp PrintFYA.Esc,x beq .6 + dex bpl .5 + bra PrintFYA.1 + .6 txa asl tax jmp (PrintFYA.Tbl,x) + .7 cmp #'\' bne .8 + jsr PrintFYA.Next beq PrintFYA.90 cmp #'n' bne .8 + lda #$0D + .8 ora #$80 jsr $FDED COUT bra PrintFYA.1 @@ -73,9 +91,12 @@ PrintFYA.99 lda #$ff Self modified RTS LOPrintFYAPrintFYA *-------------------------------------- PrintFYA.Next lda $ffff beq .8 + inc PrintFYA.Next+1 bne .8 + inc PrintFYA.Next+2 Always !=0 + .8 rts *-------------------------------------- PrintFYA.Esc .AS "dDhHS" @@ -96,11 +117,14 @@ PrintFYA.DD plx stz X.BCDBuffer+2 ldx #16 let's roll 16 bits sed + .2 asl X.HexBuffer rol X.HexBuffer+1 php cpy will disturb carry while BCD adc ldy #0 + .3 plp + lda X.BCDBuffer,y adc X.BCDBuffer,y sta X.BCDBuffer,y @@ -108,12 +132,15 @@ PrintFYA.DD plx iny cpy #3 Last byte of X.BCDBufferBUF? bne .3 + plp dex bne .2 + cld ldx #0 ldy #5 + .4 lda X.BCDBuffer,x pha and #$0F @@ -131,12 +158,16 @@ PrintFYA.DD plx inx dey bpl .4 + lda X.DigitCount beq .5 + lda #6 sec sbc X.DigitCount + .5 tay + .6 lda X.DigitBuffer,y cmp #"0" beq .7 @@ -144,18 +175,24 @@ PrintFYA.DD plx sec ror X.b0Flag bra .8 + .7 cpy #5 beq .8 + lda #" " bit X.b0Flag bpl .81 + lda #"0" + .8 phy jsr $FDED COUT ply + .81 iny cpy #6 bne .6 + .9 jmp PrintFYA.1 *-------------------------------------- PrintFYA.HH pla @@ -170,16 +207,20 @@ PrintFYA.S pla pla sta .1+1 sta .2+1 + .1 lda $ffff beq .9 + tax ldy #1 + .2 lda $ffff,y ora #$80 jsr $FDED COUT iny dex bne .2 + .9 jmp PrintFYA.1 *-------------------------------------- X.HexBuffer .BS 2