.####LPP ? SRAM_V110PASS01`Op/OHL `d`|b09J0jjj 0kkkpjwkL``8GKCK F \T@  1 0,  B0pP)џ)џ)џ!AR!''A@KT!AGA9A5| x -p13/l13/ \13/XT/, 4!Q/ $10R@S/R@@ R R@@@-03/@/ / Q/0D00/0S/x 3+5+@3fc63636> ? = (LL(L (Ls M?pMlxgra_sFFpGL#x+K+H##pG(L K+ H I Hh+K+GF,LGF(H(x_FVFMFDF#%m`kK`  "#$F!+" g'\"0 $CF!" +W0 WHVKCeKUH (цRH OJOIF"NI((uKNLJ#FF!(:^(!("QFF("(x#+"(=QF"(!X!(:<(8(JF*@[FHF1"(C$P1 4"(,YF%Hv) J?h#"aceba0%F̭iM9KAKhJm+1KA Km J+y+81 y"CqF=ܭ>h i `F0h* \#T0B #p0(` S(` 0  L(`(" WFNFEFംF xF F>hBFQh` KF`+#3aQF# Cq3-3q`;`I8m0FFFGF  "F)" (2hAF3W`3`FFp""( 3h3`p𵅰r` ,m !KAKJ(Gcm]3 h1hrh; H<=(% FWFNFEFഄz`F FPFF (hI+К+@F kF PF9hzhKFqFFFIFCF`FaaFGFFB`8( `CaF 8CFZh3e0K+%`2B"0mBҌhBӄB h+ГBӃBy-c]+ "(BBBA"F_FVFMFDFKiFF++Q KFJ KJKJKJ6F( A(/yh !@FIF 6@F 3h++$5hNE #JFpSFhF)0!)"jD)XF(3h !XF>#3p@FfI +I"(lNKA#[F(3;JAFKA9K(8J37I8J #\6I7J #V5I6J #P4I5J #J3I4J #D2I3J #>1I2J #80I1J #2/I0J #,.I/J #&-I.J # ,I-J #+I,J #*I+J ##)I)J @F(I"a@F&I"\Fp̭e- ,)<H%T`la|5 I4ȷ)! khFpVFMFDFpFkRFk`)F"#BFURFkFSFkh1*JFbUAF  BABAAPF f@FdFFFpFpFF@k0k~Fh`*AFv# cU!ABAA0 :Fpk_h&ABAA ypFF@kZ0kJFh,*AFB# cU   0kq0k)mFpF0k$ k,"(hABAA 800k !4(kcAB(!"00kh!4(kcA+(! 0Fpk(k(k3h`!C!"B3h!( Cp3h!"H|pk k k3h`!C!*3h!  CpF𵁰k k k)h #@7`#C0p*h09+hZ0!L(3;x (- (+) kI k k! ! kIB k! k!! kIB k! k!iFpk9 kA k13h`!C!*r kb3h!  C>pFGFkkchF0CkE- (!3h*BBmF#J[Bc#j`+`! CFc4h0 F: mF(KB H0kh ABAA(0FWFFFkFF0k0k`")#;U#pBF#@+I+P+<+ QF  f !V+I "|CF2(I  X8!(=Ђ @P90!0k!%`(!")KA0w8$ FF QF ,CFI !I "<+0k!k0k!o0k!bFȳԷܹIkFطIaFpFF@0!6MKA6KF0+4JAFKA#[00J+/M0I* #*-I #,M,I* #**I #(I)J #'I(J #&I'J #%I&J #$I%J ##I$J ##"I"J |@F!I"@FI"rn@FIFpFܷ̭m  $m!(,8DP`!"H!"@p"!k-kn^M&6 0) 1 ppp"!kkRBM&6 0) 1 wpxpVFEF`ChF3C`hF " N#h1CFPF" (hQFU @B FFpp!"kkI(0I(0I((!(1p($!(#!("!F?"!kkj kFp7!0k!"v#rh#(k(kx(pp!(gk!"N#jh#0kW0opF_FVFMFDF𴅰FIFkF!"*JFj + `8{` FF𽂰 B9 c`!`GFI*1SC``pGRKCK`B` CCC``GFB BәBؙB  @BWFNFEFഁF #$!B3؂B/.%F%F&M'FB؂BbF"CFCBFIBRFCBF@BRFCd[*),ОBB>B+d)I[(@Bؼ4I[(3MFcFo`HF+``FFF)B``RBC*1GFFF(.%CF+#&bFhCFRh uhbh5 6[B8`9`z`FRBC*1+@F:@F@B&FmBvBaFKhC[B+0bF%`S`mBGFFF(%&'-cFhZh +.chh67@F`C``F[BC+2IBmBBaFKhC[B+0&bFvB`S`7i! pIA` @IJ #F&p!jhF kb (I bpWFNFEFംFhI(-@ihF+(!Fh,$h,yh0*3(IFls dHF! FFFRFh!D7CE pFF@g e))I*J #8Fpṷv43a22 2$0,4@e4D.L2\u2l8x:8E2-14p Ih\e KAJK #jh3`r``pjbgh h1Fpk) k <.. )Hp )Ch h1Fp"^+# )chxg;+ \I([I((YISpXJXFhVLnVJKAVK#hTJn(KA#[#vhOInn*b`((Xhn (Z(X.6DIh0(17I(>Ih @KA2K(8J?+jh(=(;(N+llil(lj,KB0(()j(*(kV(x(!Iv!(IBr.J6XI0#*jhfShfT`_Ilb(XII(ROFX8,|@h 9KAJK(I(I( N$;k+ Йh( 4(1 , |j[bpGFp h 0+2+p1# `kh.#h0+1+bh#k`3# `kh.#h0+!bh#k`Fl l hl+ЁB xB xB-1B   xB'ДB% *# *! 2xBМB + +ьF B xB aF+dS03`q`KaF *ьF# F+@3 Cd#ddF0)@0440FA`pG_FVFMFDF𴃰F QFj)Mx+*:-*^ FS;x.+hK!Fx)k7Khs\X+P#"%FF 0: *s\ AF B 2W:B;kC,x)s\bFB c0KB F) ` +;*hh/?` k!h"` ) ` =*h h*!1 54h+` ch` k!h"`  ` h?>41F:h1h(CF 4jhh3`ch;` k!h"`  ` h[ ` k!h `"` +h[+` JF1 ` 3F w k!h `" ` 73k` d k"h `! Qi7`Y` Q $, k"h `!`i i`3QiY` 3 k!h"` nIF`Kh k`2 h S`D  k!h `"V` Zi3 k` IF07 F`  k!h `"; `MF5h ;F=h  2C`V`? Y` IJK!) hihK#`KFSa -h 8F k!h"`  `;hhKF?hB 3B`^`%D Q` ,k!h"`   73`K` k"h `!`JFx KF23k`P`HD06 Fn k"h `!`LF x 0! 7T`F U k"h `! `h: hh ` ? > k"h `!x `h+0# +` & k"h `!` `h+ +`  k!h `"H `? k!h"` 8 ` ;h h;`h ?V` k!h `"` +h/Yhh i` k!h `" ;` h7l`  %@B& !"FFFvB ,kh `XF`QFhFE ,`K"h FcFUF1\\- EF[\+B 1EF\+B 2<0,9+=+@ZA;` k!h"`  `? } k!h"`  `h.w kh `q` [B\Y/,` Y k"h `! `h?(E[BFF#AF k!h `"t` (h/?(&#FF[BAF ,kh `YAFZFx`RF>h P"PBF #@B !FF k!h `"4 `; h 9h ?xb k"h `! ` h7+#;` ,k!h"`  `? h;hBe#;` k"h `! ` ;*hh/?p k!h `"` +hx+` F  7P` z ?h q ;h 8F f 9 _ ki 3 73K` QIF1 F9 E`2  > ;h; 4IF1F9 X 7Y` %JF2F:Yh A`2hQ` JF2 F:.h/?P MF5F= h `:h?^`  h7Y`  Qh i`3hY` h?` F? .h+`;h/?F`  ih7A` h?^` IF1F9X 2` MF5F=Yhi`2h Q` MF5F=h 8P zHF0F8h`:h \` ;e k!h"` JF2F:1` ` M k!h `"`ii 3` 8 k"h `!r`ii`3Qi Y`  k!h"` Y`h:h&`  k!h"` A`h:h ` k!h"` )`h:hF` k!h"` `h:h` k!h"` ` hJ ` k!h"`  ` k h `!"` h)h ?` k!h `"` ,k!h"`  `hh ?` e k!h"`  ` k h `!"` h)h ?` B k!h `"|` ,k!h"` q `hhZ ?`  k!h"` Y ` k h `!"N` h)h (`? k"h `!7 `k h `!",` h(h ?` k!h"`  ` k!h `"  `h 7;l` k"h `! ` k!h `" `h5?.` ,k!h"`  `k!h `"`3 (hv/?` t k!h `"` k"h!` `h P`7; P k!h `" ` k!h"`  1`h h?` - k"h `!g `k h `!"\` h+h/?8` k!h `"E` ,k!h"` : ` hQhi`3h?Y` k!h"`  ` k h `!" `h,h+`;h?=T` F ,k!h"`  `k!h `" `h h)h?= ` k"h `! :` k!h"`  9` s k!h `"` ,h l`5_ k!h `";`hh E``0 G ,k!h"`  `h?(3#F[BAFF kh` f` hBFQD[FP %& mB !"vBFFF k!h"` A`hI(( k!h `"+`;h ]`3 k!h"` ;h`K` ;h `1 k!h `"` k.h/h `q[BX?`S` k!h"`  `h?([BFF#AF kh` ZF`PDXBFL `j%#mB& !"FFFvB k"h `!`;hh ` `G k!h"` ` h9 h8h` :h ` ``* k"h `!d `k h !`"Y` (hI7J(#8;`  k!h"` < ` k h `!"1`< h!h7D(и#<;` k!h"`  ` k h `!"`< hh7(Ѝ#<;` k!h"`  ` k!h `"` hFI7(k#=;` k!h `" ` k!h"` ` h2I7(e:;` b++XFC+;`;` k"h `! `hEF: Y;`;`pE MF`+h D F ;` %?D ;`9###𵣰hQN #i3LJ!1QjIJKAIK3&@2#iddLd daL?JBDАB837(#&_+Hkj(hG!32a@2#˃ -KBИB#)KBj+6[;Bj+=pkj0b+k+I#Hk j$3bmhh'mhh,$̿ p#[Bkc b"(6cpFp*Hr`KA(J)K bh i") k!"Hhm+,rhZj+((I + s p( (y(K (rh(hF  $,0)LKA)K)J#h&JmKA%K#[jia"(PkbKB-;B*a)hPkj P4b!(aZb0, $ ( k`kk Fp (& k(@I *C c`k(5I 28`ck(**I -c  p @U KAJ K ]" !R<Dij8,llAlxB *3xB *ыB 3BxB ) )d3 #bpGF#bpGF#bpGF#bpGF"#TpGpGFp^FUFLFpFF@FHF !MKAKFHF+JQFKAKHFJ+I%"# I&"# I'"# I("# I)"# I*"# I+"# I,"# I-"# I."# I/"# I0"# I1"# I2"# I3"# I4"# I5"# I6"# I7"# {I8"# uI9"# oI:"# iI;"# cI<"# ]I="# WI>"# QI?"# KI@"# EIA"# ?IB"# 9IC"# 3ID"# -IE"# 'IF"# !IG"# IH"# II"# IJ"#  IK"# IL"# IM"# IN"# IO"# IP"# IQ"# IR"# IS"# IT"# IU"# IV"# IW"# IX"# IY"# IZ"# I["# I\"# I]"# I^"# I_"# I`"# Ia"# ~Ib"# y|Ic"# szId"# mxIe"# gvIf"# atIg"# [rIh"# UpIi"# OnIj"# IlIk"# CjIl"# =hIm"# 7fIn"# 1dIo"# +bIp"# %`Iq"# ^Ir"# \Is"# ZIt"#  XIu"# L ̭   $,08DT`p|ȿȰа԰ذ (08@LT\`dhlpt|ȱ̱бԱܱ Iv"# TIw"# NIx"# HIy"# BIz"# I " 9I " 4I " /I " *I " %I"  I" I" I" I"  I" I" I" I" I" I" I" I" I" I" I" I" I" I " I!" I"" I#" I$" I" JF1#b#[BUbb   $,@}`LT`lt|~ieU e$̀,<D-PՈ\}dpuxA1ՃA~}~}$8L`t(<Pdx 8PhHJHFKh k(70F0N!5)J  !,)J 0Fp5x502!(J!(!050hm+݉!(,!0F0mL!)J  !)J 0Fp5x50O k3 (4!(!0((! (p 𵁰!"kl  k k{P!8!(k[,(k!]0(k!W"!k k F0!"kh(kj(kkFX` ( (f!(kIB#0(k!p>LDKA kFp !(c k!"J km0jhH#p"k!6!,1 kz𵃰cjYij+ -!%kck(ZhX`.!- .є!8D86) .ю!87k!). ъ!bkRh3X(3!!.ђ!!"!"!"!"p!"k l k1* 1* pWFNFEFഄF"j!kAFkCFkCFk0#x-%/+"I#FF0;1hrh4=/#x-/+0; +QF hIF\ B 2W;BCFrhk1hAFk!CF)kFFF?pI(_hm+ Qhh0!kh$e+!0db0pF|5WFNFEFആF!k"KFkFGNF6LFBFh8Rh6{hhF4x=h344pBFTFXpT``-,KFk!"SFFFFpFF@!k""R)k F 0bhCFhxNBF4Xpp(krh$Fpp%5!k"+x&"6Zp0 k!J1 k)x kpF# @ AS\@CApGF#@# A*"xCp#x CpF_FVFMFDFF F#F'RFSx2Cp10<cF @:AFcF@:ACFKDFx[FBSFZxCp(D :!8((iF"#((iFBF~ #DF# ;`@B# ;`@B# ;`@BGF(LFDNh0`(? :!(D :!($(iF"#oFW(%ziF0h$#1PK"T#T0#DF#BF` #BF` #BF`#BF` Ap(+k#`c`k`;`ca+h aha#baT#\+#cb#b p## 3`@BF_FVFMFDF~LFD o( :!x(D :!p(/81"#(T#\+н /!*(81"+(zգ#RF `@B#D(v hv9z "tC k"ktrHh*j:ZCKjbk !k[)kXhY( 0"L#T iiFK#\+( ` @B # #`@B0K#\ +!q(k"K#Tlbl;d*#ld l(Cd0!(`IBd# #!`IBF_FVFMFDFLFD F(F(:!(E(:!(#QF@х))!"H#TI#T"J#TI#\+T#\+iF#0*1#QFoF@RFՉ(dz#@ L#TzC;CC"`I#\+z9c0RF``RI#\+g"$2## ###ah`#acaRF#`@АJ#T"#2 3##K#"Tl3dl+ѩcdld##d d#DHFF46*hxh*cj:ZC{jjh !h[!N+hKE)"x@!CS ;+#[ZF@Fȣ[x\C 1B8)"( #DFPF!"3.^GF/KF 3 bb5]F*hTF`h*/j:ZCcj_Fzh !h[IF@PFYF"  7RFi,2B@#ZTFiE "RBDCF+и TwVFi+"ʃI "(.#IF pKp(箕8#JF\.+% 5c]*.+'HF83x+83JF#$NkD'Fb4!p(1$_ IiDU7/\ q x.*@*T@Fr(ڹ岘tB  ,!#_$#BF*|MF,5+"!"PFbRF!Ph"hIBD*QFj:ZCKjbh !h[YF{BF*T/qRFiJFzLSlD83x .++  .!( .!B cxaF+ #3p)i"F!! k\.+O+MLFcTL, ";z.+. *LF !2p3 *! $OF{\ r1 ) %BЀ 祬#XF`c`+"@F ]x- *KF px210- *  )NFr  3p2+ "{\/ ! 0 J0F "R(ѱ y.+ѵ" :\.+**# 8BH|!hD _!2*O$&oD=  ! _01)p  ! =(~ (p PFZF$(G I64BфHFICiD83x d#@B.#3p##3I[7&DF#x+XвAF(T䲘B" ,)`!("_ DU76.FF3x+ nFF6<%"1!_$# #UB#DPF ZF(D%&SI'iD  Fd#_FVFMFDF𴉰+#x/+ўFUl$iBѢ8"#kDFF#"CHF/!lF(tJF#B9J$.#.D$"C,a d#BF" ," KB JcS㈓#ӀcS F9( JSCӈÀSCFpK]و[ECpFp$dB C M!C.h (pH "CpI#C pJ0pp@ABCK`pGF@#[BCKppG@#[BCKppGA#[BCKppGB#[BCKppGC#[BCKppGD#[BCKppGE#[BCKppGF#[BCKppGH#[BCKppGI KXnK!CKI @HF`h KB H!cyxB18) Fw%(_FVFMFDFllFdlmFeCmGlFCemFemFendfnEdfodgCoCgogog{ B hB؟Bٛ `1BӃ{ QFB hB؟Bٛ `1BӃ{Y IFE hB؟Bٛ `1aEӃ{AF[FZ@F!OXa+ KYFFHxYa+&@B(I F@FJB>OXa+exYa+&@BXF( bFKF`*-K"%F F@F`ZLXI @B#  @X0 @Bр#.=`- K".=`-K"  HF`Mp_KhpGFlM_FVFMFDFIK hFJh#hHFYJ#FFhNFX\F@E\E'KPkPzrXK@ZF@CsP`FF JQF BѻIKF `BFhC1`F$dBcF``H`I`#` hF+`# `I` h#C `#JNFhcF`3FXFK՞K@#CXBF@`CEK_Y/KBcF hAF @P`IF h+; `+ьK"KYYGKFh*чKSHFh`cтJ#HF` ` `ZLXI @B  @X0 @B.=`- K".=`-K"  `MXp_WFFF/JFhF--K-IkhbFF`CA*LZ*KF `B1(O9hK'KPsRFPbX$K8`@J@CcPCF+bF`-K" FFKPsRFPK8``CF+ #O[B `9hKBF*cF`-K" `Mp_ q XpKh3XBXApGpWFFF*O`Z"8(LXI @B  @X @B8(.=`- K"CC.=`-K" `Mp_GF[F ,* -O:h*S;`h(;h+;;`+K" FK@F,$4Bn;h+;;`+K"  `Mp-)[.ыlF"P.Ѓ\T2BK@1+CjF* pF( KB K @C#C!"v#C!k ( K @#B #CK" @C!K?_FVFMFDF uSJSLF[F"`RKF`QK"RB`PKQL`QKF`PKQL`QKQOFQKRNRM!F TFKFbPDFZPcdF`c`{`s`k`c1`@)FN FL1"%2#@M` `1B@J?K!P?K@J@L@H;%&F;K2@3@B S1@ ;*! -!bFB3B<,/K  0R0W|00|0FD0Wヱ0 0 0) @D0 #0 8<8 @ 0@"P0T@@ P 0P`P0040@ 0 0@ (,0 0  0 0(8 0 0@P 0/ `p2.  01.  0,  0/.  0..  00 @P 0 0 $ 01 7p P @0P 0 1 7y 0v 0 q0 s 0 j 0cP 8P=C"1C@^_/ W pK 0 FN/ H 0? ;|1 0P`  0-0 * 0'P @0h0l@ 0h0   0 x@\ 0D  E0Fp0t@NEJ(~?eɓJ?A`t?M&QUU?o۶m?33333?[/>: ?rrH00` H0h p @P 0H 0h `d` $&BpQ`@ڿ460/ ` @P 0$PA56Tӌ$D:?C0C^@ @6@0CS0ƌ`\0 X0 `k`d`  :0p0Pg9F=C 1C|` p 0k/ m@p/ e 0\@P 0 U 0`pO 0J  0Hy/ @PCv/ ; 0=r/ 6 07n/ / 01j/ * 0+ 0!@P 0 1 0  @P   0 00  L*R@ @ 0pHL 0HL\HLT`H 0L AH0L@+eG<9B.?9l a\ Фri7f>kA>,%jV?lf?>UUUUU?ː@1x@6@Q x RI0AH0L@T 0@H0L@\0AT5/8 ;0 `  0P &. p/ HL4 6p t00 % 16CZ56Z5 6n:>C"#1C@Plm/ e 0^4`p 6VY/ O 0P0 E 0EJ/ B 0 9P`  020@h0l@ 0h( 0# 0HL) px HLP0x0A0cWW00cx00x0, 6 0 YnD] T>UUUUUU?+eGu<7~!"*46*RG-@Pp`r QVA*_ B46I&0/@`0/0S c@Ђ0P/pZ@`T QRP 1Sp P Q d B a`0 V/ @WP   *%&@P@G/x0010 Q Š\ Bj 6 0 0a6Ì0a a 0q 0h@P 0a 0@Pp-A`Pp/16/ ` @-@a//$@-0>G/A:O-::CL\ M`p@P᡿'\;60CS<   00 \00(R(1!00 0  0`p ЍO/3\ \ 0`pL03< 000!R10 460 c \00Ƞ"&0Ƞ' 0  0!OP`pr1#::CʰA-`p@P$10 C46 0Q!Q$&0J`pA/>0\ 0`p `p5qp@/p@-̌!J#Z 4 5^ @D!VL 6R#2"<$!R \dUV@L*0b `VP0b ǠV`F P! !0b V`F P!!0b V`F P!,!0b V`F P!! R&^b1>!,°T \CUVp@/!@ Ptp@/@T1/#Z 4 5 4F 5 5Vh ``H@tP^x  10/p1QQP!1/Ɛƒ /  0@-PpC@/-/-3#/-/-/-3#/ 2RS"|"!R/.&/* b b<055 320:6// ! 02BCG ",#    31 Q1101 RS /0  R0r‚ /0 R5r/ b1 b a0/2 B 30C ; 2 3  /0011 2$  34 //+; 2 3:  B  2! 2 S01} ŠS0C !S0C !!S!1C ,!S1C !2,°RS /  0r‚ /0 R2 B 30C ; 2$ 3 34 !1 0BC 0RP1/BİCİ / @-PpC@/-/-3#/-/-/-3#/ R:0",S413`//ar$//WFNFEFഐFFKFF@3@ XCF1 FJC XC%MCaF Bـ"R K`F @ QFyCKFsC*FFFGFSRG-`00p@G/ X:Up0Pᖥ$  0/P- 0MЍ/ ?@- @P 00 C$RR0R$R  0   @/-80M Qp  0 0Ѝ/ ?0/ ?@N;0< R/%Rsp@-@QP`+ eU 80S+ P% 4,0S` /P`೼00Q @0Q 000DQ 0D000;p@/`6P0 ?@-pPM` 80SH 8C$0+S G(\ *P@E 07 0/P(0;0 0 0P@Ѝ@/PU 0@e00TP0T 0$/P@`Pʼ0@0000 S<0@b@c<0S0/p@(0S 0@00-PM ,0Ѝ0Ѝ/ ?s8RG-@P.P 80S+ pD `R@1@!  ~ 0P 00d0 pW  R P  X 00 G/# 0@f0d  00@-0 @   ?,0 R@-@ 80S @/ ?-8Z:020 <00 `pЀ@0 0P0ω08P,@徠 `$p‰,@P(ࢉ `$p(00,@ `$p(0/H))T)8)//////-0MЍ/ ?-0MЍ/ ?-MЍ/$-0MЍ/s$21C0ap@-aP &@P " p@/00@-@8 RMP" .N0 SZ R\J0S0H00000000040D00000Ѝ0@/P @GP 00s@- M` p?PP@ Ѝ@/@P m?0 EOPP0X  T0$ 0L L0(0, @  0T00R@))8)T) 0 ?--0 0( Ѝ/ ? --M 0(ЍЍ/p@-8` R@P 80S  p@/ ?p@-@PP` 80S  p@/0@-@MP0 T0  80S  Ѝ0@/ 0 ?O-  M0 P0pD P 80SY @T00@0` P: T @! 0 0 00 d`[`Q[0 d @0Q 000VZ P`@ 0P c0P@`0 j ЍO/@U  000 P`Pd e;   0 e00 0@-4@P M0 0| Ѝ0@/ ?@-pM@`0 P>00d#60CF TN00P Ѝ@/drNp 0d00X 00d0aNlQ 0 0 b `CMlGA-@QN PDnHr0 S`n `A 0 Q H 0 00Q0- ^J:Q.381Q[1TQ.6n1 UQ7w1U>0Q.9|~Y?C1 PN 00^*R 0 0 PP"A/ Pb0\ 0 00  0R0 PP0 1C 10 0  PPPa 00 L0 0PP0:40+0A 100`ChChG|MO-pPLM@ ` 80S 0B?BS ([00 V% V VP\ ("(~>0:#:S 93[% ;0.P LЍO/00!0*PP VZ 0S0lPT    `Q LP0: S0+;L 0VxY: 0Y <开80 0lc60#Z00S8 0Z5* 0` cY00  @0Y  뼀000 000B?BSuq00 S<0PbPc꼀 P ` 0Y<P`Pa00lcL00cP  0/pn 0 0Q  @0Q0000PZ 00b PW UT0 e0 0T :LPH0 | 0/pA 0Q @0Qg0000 >01'p 0/p  开0/pP 0!T)@-0 @   ?0@-PPM@ 80S) (0S00 "0*P   Q00cЍ0@/00 S<0bc0(/p 00 ?O-0 MS`Y  0S 0@P: Ppb 0pW'  R  XP1P!@P00U0S U 0 $/@PX 00dS0 pdW0p0P@T  T01;#$/P@`Pn00`S0 ЍO/@ W0 0d 0 @00dS0 PdpU7  @8 U:   00l? @0T @1 1 T PW  0=00 i 00 @4Pa 0@000 pP0P  T #R0U : $/@Pʼ0@00 0 0e 0 @ 000P 0 P 00 0 @0e X0 ;P4  000P'  P0i 00 G-p. `V@P0SP 0s /U\@X G/E-@M.~ `V@P0SP 0s /U\@pWЍE/@-MpP 0`P0 @ @ 80S 0 P `PЍ@/Q0@-4@P M0 0 Ѝ0@/ ?p@-`P@p@ D: P 00p@/V`0 ?p@-404`0fCQ @/@ULp@/p@-d0d`0fCQ @/@UV8`800fCQ @/@Up@/-- 0s Ѝ/--$0M 0gЍЍ/ ?- M Ѝ/0/8C/s/sA-@RPe QQ`90CS lLPp`cUD TT}DzD#D0-S U4@0P A/0-Sp0E0CSfhL0PKUHlEhhB\P?h2 PP8@5@00 -R 04@00Q Q0E0CS00000000pP 4Pr <Pk }$Pd v P] oPV hP`pL0E0CS( h00A`00>X00;9H006HC0R&9| ~ Y?C1}0  00 . PdP0 fP00 V0S^ 3  q@>0N@GppB R U=0x0s0b00p000cp0:#:@cGp0g00@0 U0p Y00 I 00R   0R 0R P  fP00V0S 00 P 00  pPQ,381Q[1TQ,6n1 UQ7w1U>0Q,9|~Y?C1^အ J 00\* P 0 0 @@0 @SP   0P  00 e   B* \ 0P*P(  P Pꐰ0?:#:S; 0 00g0A 100\0 00,Pb`ChC|MlGMMM0@- M@TAORP @sp0 0  Ѝ0@/0 @fH0@-4@P M0 0 Ѝ0@/ ?O-M@ZCQ` 00 Qp P @p XPE @@U p 0 Pp ` 0U  pЍO/P0 0 p0`P0& P(C0@-4@P M0 0 Ѝ0@/ ?E-`Q@ M`0R0T0SP  ЍE/ P5 0P8U] ( R(@P~ PR0@S{0@SD0@S0@SxR(0@0T( R(0(Q\ӼU, 0SK P)U (0S I L0LSR( 00TՅ@ L0L|S>R(040 0 (00 PU ( 0 S0B]S(0 (00T Յq0B]S(040 0 g( cS0@SR(0@0TS( R(0(Q\Ӄ 0A?SR0@0T=( R(00A?SoR(0@0T+( R(00A?S]R(0@0TTS p0G?SO(0  (? ?<@??96? 3(? 0 0  P3U (0T* 堄p(Q  CQ  $Q  Q  !0A]S  1 00 R x( 0T(0p(00 0$00(00  (000S0BQ  JQ  @Q R(0@0T( 0S(0(  RP 0B?S(0T 0y  0B?S(068?#83?  (6B Q %"f*(0T0^0A?S(0 R?0 (30NR(0@0TE(0 R((Q\u 0A?SrR0@0T/(0S(0  0B?Sa(0T 0 0@?SW( 0 ? 96?3? 00(0  ( P0A?S?R0@0T( R(00A?S.R(0@0T(0S(0  0B?S(0T 0 ( 0 ?< 9?6? 3? 0,C`tt0-@T 80 0S D0S R B0/P4\P  %48C0Z~X"{>J0C EMJ@Ddų`! c Ϡ R`L0CQ1P ZPO0 Cd  Pe a @p0JSS DS03 `VH 0 pP`  0Q 1C01 ?A1cc `Q 10bB 0CQ`0b0b "!!B0A43C" c 20bpW08 S000 ЍO/U000S0 [  0U ;S  0Qu$I%I$O-M0ş0Cxa$#Bb20aP Z0# 43C" c20b Gp`:_?0Q AT5L 43C" c"Bp (5_ Ue42Cc5@`$$0?Aac10fa`cV#0!Bb`0W#{NğT@c@ 2`10!0T $3`20!0T1^v>D 0C0$32C^P00aQ00[ 00 0 ЍO/3 R  0S P0 0 0S 0P0 0 8#/0b $ "B20b# c 0a#0!B b0b;S a@`0 <0C@0 S L<00 ;\<0L0\D<00^:  R000 0 0 N0 0 S 0a R 0 I 7{NQ@@D 2`10!0T $3`20!0T1JV^  BR0C00 0 00C S 000CS0 1 0U0P0 0D0C,DS.RCR?D0C,S?w?D0CS;~?D&S8">D0CS4NDs/D :A B0RQH^?DSJg?0"T@b'@ T *9>D:.0C STQ?DS ?D0CoSl/? 0T@ @@ T*;DSP@A>DS=D 0CF.D4S RO>0M.DT$R=D0C S@ T*,DD0C%S0@z-y= !0T@y T*,D 0 D@$@T TP*,D>D B0CS.RER?D0C,SAw?D0CS=~?D0C&S9">D0CS5N/Ds?D B0CSR>0TI@ ^?0_TT& 00T" _?D.0C S_?D0CS񟗟hOCCCOCtOCCOCCCOCCCCCOCCOCCC|QCCCCpQCCDKCDKCDKCCDKCCCCDKCCDKCCCDKCDKCCDKCCCDKCXOCCCCCDKQCDKQCDKQCCCCCCCCCCCCCCCCQCCCCCCCCCCCCCCCCCCCCDKQCDKCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCQRCRRCtRChRCCCCXRCCLRCCCCD0CS  T RT:N@e ?D)Sb)S_8K(K(KCK KCCCJJCCDKCDKCDKCDKCDKCDKCDKCDKCDKCDKCDKCDKJJJCCJ@1:@-:@)@%:@"@@9@?0DS@@0D T*E>DSP@DC>DSyF.D=D B 0C4S RtM>D0C$Sp=D0C SO.0 0T@ T*,DD0C%S0@Dz-y= 0T@ T*C<0 ڶ$"B2 0b A00< 0P@,T@MT`/ JTP D@0S @g @00220/SR $"B20bA"000X`( P@,T@MTx 0 P2S S1S SQ@2! 0 0@0<0 0P00,ЍO/0 @@& 0 kX M000 000 0M(0$0C,00MMMpGMM$0S@-0@ 000@/O-RM MQ@ X 80Ss  8#( 0S 0 S7 0I^0,@T54 0In,@ 5%S @ϟQ^0P RP3PP, pT p$5 R05$`Up '%p(P+@ , 0NXS񟗊D^d_d_h^d_d_d_d_d_d_|^^d_ccd_dbbbbbbbbbd_d_d_d_d_d_d_d_d_d_Zd_d_d_d_d_d_d_d_d_d_Zd_d_d_d_d_d[d_d_^d_d_d_d_d_d_d_d_d_d_XcZd_d_d__Zd_d_Zd__Z4_Zd_bd_h[d_d_b(0p,(0p  (02p@((08CȠ\-0'5͵0l,0CU"OS 1@:S ($ &p@(( 08#Ƞ00 U'%OU\pS00O40$0('5 Y S   0(@eTT[:[@DT5$5 R 0P5$`O. PIn $PUW0@ KߍۍO/O. PIn 0SP$` K 0LčC~8pNPTXdDHD4ap,0 000k 0S000kk0(@eTTSS@DT$5 R 0P5$`O. PIn@DT@$5 0RP5$`O. PIn@$5 0RP5$`ҌO. PInO. {PIO. rP O. jPInzO. aPIn \ࠑ B1  b0 S n00N0Nk\ 0  ,° kkSP 8#(\L @ (M^0 pz (@(P(00I  UV @5\ M 0 p 0T SU@Y 'YM$P$P $ Q.  0Y= $(Chu8Lpu`5S O.  $ZUP_ő`PQ. 0pp 0@00( P0_(0P0@00 0@000@00@-0 @   ?O-[MM0 $ P  W4Wύ0 Y dQp' P( %Q@ W0 `g@ 0 R@0W0C S XP [ 0@ T [ߍO/M0  0 0 00C S 2P `xQXjtttttttttttttttttttttttttttttttttttt jttttutttttttttttttttttttttttttrtttttttLstt mtttttttt@ttttttttttttrtttthttt`ttrmtttttttt@t`L $ p0S@ K WlqXp0om P>0  00CS00L&S%'  'pL6M0(0Mo +0BMSstrstrtrpsTsTsTsTsTsTsTssstrtrtrtrtrtrtrsssssstrtrtrtrtrtrtrtrtrtrtrtrtrtrtrtrtrrtrtrtrtrtrtrtrtrsssssstrtrtrtrtrtrtrtrtrtrtrtrtrtrtrtrtrr\0 ` p ,`Y `Hp 0Sv 010#P00Sq 0V 0 0CZ00 4C `WWύ M/0p PGP , BQ `p,`\@, @`0Zύ 4RQ 00C00 0S0 0S P Tb @Vi ) P0Z 4RQR 0@0C\ S\0@ p``@Wp@W`@@0SQ t0T 0CZ00 4C @WWύ M/0Op P p \6M(Mop  V? V   (0b 0` $p  0Ⰰ< S< L 00CS000P` 00.M 0  \L  MW (0 0pG M(0 @ 0 S.M |00S 0.M@`pC 4@`p9l$p 1`#0$ p 0(`C0 #` 0$ p 0#p#0"n$ p 0 1  0A` P+ TQW  P E P V>,Q `B(0pB` 000C0 \  0S rP 0g eP+0 $0 `0CR  Se ` 000J0P0d0`U@ T 0 l 0 0 ` 2P M 0/ $  0  00 v Q" 00Vb M@`F t 5"VXV d0,P    V(C?3Pu@-0 @  ; ?@-@PMP`p 80S;  0Ѝ@)@-Dp\M@P` 80S '  0Ѝ@ ?0S@-0@ =000@/O-WM M(P:@  =Z 80S (@8#( 0S 0 SG M0@80dP,E450500H0X0L0`d@l5%S @V͍0 PPdpT pS.  R0450%`88UU w%`<P+ @d 0IXS@dxȀ(<<<<<<<<<|Lh|0}D||T|`l|T|4}x`0d`0  `0p7@`@`08CȠpp\-0w5͵0l,0CU'R S 45):S<  @ =P  @T `pPP40\@+@`@`08#Ƞp0p0UwRU\ SR΍00 +544XT`pPP\w5S TTT  T 0,00%0  00CS0$0@WSrWW/@$ Bm0X80<0@0D0L@P+0ANS񟗓̨$̨$$$$$$$$$$$8($$d$$$$L$$$$$<$$$$,$$$$$$$$$$8($$d$$$$L$$$$$<$$$$,$0LWSWWoL$`F6MXP4PE +0BMS񟗀HdHddܨܨܨܨܨܨܨddddddddddddddddddddddddȦdddddddddddddddddddddddddȦ$Q$@, @P0 ͍ RQ 00C0$ Q$ 0S lP T? @UC 00   [P0 ͍ RQl 0$ @0CR S$Q0$? ` 0XPL0P 0@p#0S$P 0T 0C 00 jC @ύ  0p PV`$VN$@P@$P0$ P X ` B  0FLPoP 0$ 10#R00S( 0U 0 0C 00 jC Pύ  0p Pc p`0S P UL0S0c0S m00CS000]$^$e<0DPlS0ESUUH@ H r H  0D@T 0E0H c   |eQEQH    !< S T @0SXA }@P 00` ` $Q6MXPPE4`t  X00CUX00CU-   X00C40c0` ,`( < S<(L 00CS000g$  R$ L( ^.MU{PlUwPhTJ TM@bUS UUj0PZ(Ÿ00S(0.M``"^,`(P@,`(~ 0Ⰰ PT@@1U<P-< S <0^0&52  <080n@0=m0D<0  <R`<$ B$  <0 m80 `(400.M(0z x (0SL( MpV$4`F$M4gD @b mt@P`P0,0`(PPl ,`( @P``$1  0A$vPt0\,0`((CP3u? P$LA^$P`LP XP$ T+V  KP CP P@) `@P 000C0$ Q$  0S "P 0 f0   P+0 $0$P0C\  SD P 000$0P0d$0P4@$ T $0 l 0 0 PT $\m $0XD0L<0@080I< Sm@ UU  P i< SmPU b $ 0P   ZX00C\ @Pt  U:}X00C\y @Pt  U:p   H| X00C\d @Pt  U:[U X00C@PE t U`` 0`0 u  0jP `B.0 D  0@ nDk?0CPj"D%D/ XA (0/  0   00    0 8@^ `D#0  00   @-0 @   ?@-@PMP`p 80Sl  0Ѝ@@-Dp\M@P` 80S X  0Ѝ@v ?@-`MOA /0 `Ѝ@/@-0 @   ?p@-`PP@ 80S3 0  ! Q 0aQ'0P0C0P0S  0 U00S *Pp@/PP 0 @00 PP  0 ?0@-PSE_QM@ 0p0 0 Ѝ0@/ 0@-0 @   ?O-$MH`  VGoRI S0 P 00 P@p  0p& 0`S 3 # P #R 0SP P 00 P@ 000 0S Up:$ЍO/ 00 P R 000PE00 00@-4@P M0 0 Ѝ0@/ ?0@-MP@ < 0 t@@P@TЍ0@/ ?@- Mp`@JPPW+ V`Ǖ 0F S&*=#3? =,#=, 0Ѝ@/W `lpPUW &4  0 0SR>;F> Ss:8FS*7#9>?*?#>"&!?0, , 6F>S*4#<>@>?'?? 0")! ?0, < ,< 00@0@ @|S>RHPW &4 _00]S_00]S3PW &4#0S 00( '0 0pk6;F S::#6=?-="#?0,, W!0N]Sm!0L]Sj0S 0 0 #0' 0 p??3asU1#??P#?0?$?7?? ?",#9! `,< @,< 0,C0@-@1 RMP@ 80S 8#(0% Q 00Q0 Ѝ0@/0 0cQ 00    6   0Q @0Q 000$000 00(0"( ?O-@1 MRHaV<  PR JB01@X 0S PU@DZR040S00 0N0S `0BS0P 1\ 01p 1/ R0S HaV ЍO///s-0MmЍ/@-@M`P-pNTQeppЍ@/QpGO-0\ M@01 0 0 pL0P`2@ ZP(  8!#80a"(0 (bC(Q B0*10 RY *1S 0S BY@D:@ ЍO/@ P 8#8"( ! (!"(8 ! a#8,8cB8Q0  CH*0S1 R 1S 0S BYpG:p@O-@lMQP D00D 0200@0@[Aij00!00"*46*R2  0PTP 0S00p4p0ClЍO/P `d$:**RH&`00C Q 0A:3 0a@ aCnA90D0`FA5 7l;. n/ g@P0/ d 0[@PL 0P LP4L L1 PPL0L40L40G S bBL0S$ E C< U$U< ES<<@0( PPM00\,8@ 0D0D+@ LPR T2!@B0P T (R `p@P  0ᖿ4 R[ 56  F\P00\00SL ,P1  7վLA0,ᕾ 0ɾ1 7Y@ UA31 7 ᶽ`p 0$P!P 0 PS `PL@T YYrL000H{000Q0 aCoc?`(?yPD?QP'<0Z0 0Q 0 S00046Sd P46oB `FD dpP `0L RQ \0S0!05 0  ޾ 04 0 *\ 00R0@P3 1 7# 0@PwP` ; 0@PkP3 0᯾ѽ 0 0\1 \0F@P 7` 0@P 0FP@ 09P 7L0E R00C0Ő\ T8P$p(P`<0WS<$S0 cc<$pc(Q8 R U  `H H@H@(0 SH@\P PP@@0S0^< 000< $ < $p$P HWH<Q< OP4 RG\ R00\0S> R0 PHP100L  L @L 0ើPLLL$L b0b$(0@  Pս@% RJ\(0 @S(@0lP\Pb(@Q\0$ $ppc00<$  <$ `F\0S]1 7 0hP\`P OZh46Sd1#::S_ $<  $< @X 0\ , 80V0D0 D 0S \0DS@@P 8 L`V,\`V@@P\`8 R`\ ,`P\,@0808P}0[9S K RL 00L0 00L0L \0 80S 0I1 % 0yp @@ 0 m0@@ 0P`ɽP 0] 0᾽P4Y Y1 7Q1 7pI`P@ 0:0@ @ 0`PᖽP 0( 0ችP 00L0  80S W `T@Z k H 0H4  0S`p-  RT X00 \ WC \0S H 0YH%  0 0@Hp 0cS8<$0C<$pAL@aTP   0i@0 `L PUIL1 0衻  @c 0 ᐺ0@YP`@p 1 7ᇻ`P@K 0xP0@@pY`5 6j 0ʼP@ ^ 0ѼP 0r0S 8@ HH 0\@\H 0@H  HhPu0[9S KR100L  L 0010 0`HKP0H 80LSH,LL\  0,`\01 PDB ^  @PH( HFHHAD\d0C>0$p(P60c$p(PW ` H HP-9Z" ``! 0r0S   @!  t @009Z00900g9Z X`\PQ@@q 0//0rS0-P wS aS00 0/B O\ +\ 0+S b\ 0bS 00 L @(000 -0MЍ/ ?-MЍ/G-А`PU) 0S=S  @ @@0S=SP  P 0=Sp PG/00cC10xG- M Ѝ//|G-MbЍ/@-4!0CS@0S8 PD@ 0D TS2Z T0 :DS-*D: B(0TR&*0) 0TT  T@/{P ltvP@DPlP T<0 җ@,C?Q0 Q Q 40C @ / 4P : -0CRP0 =; 0$RP/0AS,Hh|40C 0 C- M@Pp` 0  c "0a0S:pI 0 ЍC/P@-@1@D 7CT@/ 0!000A10-P0 \@ *000R0e0C00T00T0/ 2R@- @ 0101$Q / 10Q *1S Q*02SQ:L Rp@-P@ P01 0 00p@/ ㇻPL d !|P P@- MP@!46"z060T`P @ P0  `!300 000S@@W0@ C>G0C 00$05 `  Ѝ@/ 0 W0 @C>@ !0C 0y2$ 0`0G-0 pbW@> pPS`0 0!1 0 p@pP 8#8!0a"(0 (bC(W B0Z 0("( #8B8Z0C 0S 0S`F B ` G/01 0P 0RAL U:<0 0 *0pP@E-0Bp0 PU`Mڂ U T 0 !0T0100010@  l 0<0 T2.R PL 1E0aЍE/00 0T00 0TO-P`U00@@P`0ppZM0100Q *0  Q010 0! Y@ 0@;*p0h&h V P @ (8#8"(2 ,Ƞ!# 8X0#H@0#h 0 @ P8#8V!,  8 #86"X!("X p 0QZ  0S 0S BZ0ЍO/@-@^00@@/G-@pP` 8#8"(W!8!(#8@ X XU 0X010 P G/ -  @!  L10A-@p'Da HPU) ` @T P  #WL 10q`pA/ @P80L !0p'0HP0ثE-0C?c\`MpP00\ 0 U 0 ` P @000C@ _U0`CX @000C@ Q0XЍE/98 ` @-4@60ac/p-0^\@@  0 0 S\A`$ `P -R ]R Rp/@ T00]T0S 0 T`P4/O-0M@X0\@t t0-SQHD0t000@ St)V$00ZM @t(@ @Tt0(0\\0\ !XX@ЍO/ ( 00S0$0q /P,x9P`px9Pʈ!000V0Cڇ!00V0pA`0t0/PD`@.PctV   DpP0@ Z`XtP`@Zp% Up   0BS0ڄ0R@ R0E`V!ш00p PQ0ф!0 pP0t0( t 0Sx 00S0$00XS xS t00S Sj $~(0t0D` p PEPeP00L$0O t t +Q8 -Q0@0@62D` PD Vb[@ Z@PX@\P 0JX1 #@P߳ 0X\V@0S S1 X X\ @0j@TJ0 1 XX\0r 0, @0 0c8 0]\ `d\`pQ%Z4Z6U 0\0jU0S !4$6C(P S Pu`v x`pP !`d ` 0k60e0X` 裳 0X蚲X\Q\1#::U p{ 4x u <r8@   4! AX |x p @ Rࠡ|0@ ࠳x@Sb/c 0S6 lC. 0`PU00S0SppcPc`cT   6 p op@ &p@U ppX 4 4V4 4W  p4   <@P <  1@PmP 5 6@pT` !`d \0RPPt 0RP 10BS\t0 P,00BP.0Ptt0P 10@St0t0@@/P t0@!00/P@9P0N< a0TR RaI0@%S񟗭dHHHH(HHHHHHHHHHHHHHHHHHHHHHHHHHdHHHH( D p 'MSCBTpӌڄp Pp@ X oX\TP\056C\0 XaX\\!"*3* 6R 6C 6R56\000\ 16CX  \0 Tt%RP $ 0@SZS 0S 8t0QP*  @R0ZR R )X0S_ S\ D0Fu`0d@`v>5&HX0\ XP0T@W` 0XX\\!"*46C*R56P\0^66 6CR 16C \0X \k 뵱 0 R@P<X0S946S5?. 7PB p 4  8 <\46S 5 6P$u&`v 5 6⬱p`!`d / P/ P Rp0@" X0\@ b(@p t l0@6@P Tt(~ p R H; p]l0T 1 \0X \01\0a46 \0X H0L X0\ L C>0&H*X\ 0X0\00sL"00"0C\X0f0SWX0ST\ 46SO1#::kSJ<@0S0SC <  <LP\ 90S 1#::kS7S}56 T0P XP X\\0S,X0S"00'\ \&4 B6S$ X @T X@00 0X\0S5?5?55?GGQX 1#::jS#:k0c&B# Q1#::6 \0X  @d0 1 XOX\DB T-jT P X 虰X\@PP \1#::#:kcQ Q4Q0X0 A0276\0\0X 0ұP " 0@ X0\@s" 4 6" B\0X k` 0D`@ ` P pDPf@@0TNA XN@ 0e1@ HX\H\ 46SKXQI@p2lA XװX\3X@0r 0! @P0X@\PxP: 0t0 (R) 1C6 \0X 1#::6C#:: \0X $t04Q\  @RZR R 0t046 \0X 0t0tH mPH 46\0X X0 1X0\0@- H0M@P|PBЍ0@/t ? 0p ?O-M  `pP00-UP +UP w 3WW0UH R 0U pp[AA_<00 E 70W0 cW P00?  P00 R0S P Pq [`0S Q FЍO/ ["000XSxSpP`?@-0 @   ?A-p0@0Q 4P兀 `P @ 4@0`A/P B ;400#A03/@0 3 @-qMP@` P 80S 0 08#8("(02 00Sp  40R2 0B0pB000PЍ@/ 0S S*P\U L00  0Bp@00<8040 P  000P PP000 0 ?ll0 00 0R0La 00 0R0,A 00 0R0/r 2-S`p# 0!1 0P@! 0 T3% e0080 T2%0`0C00 0R 000fC!R  /T 00 0T00000O-40M\  0 0 0R`P0P` 0RP 0S 0 0Sp.RP P0g  PR pR  Z. U@@ЍO/0+Sz -Sw Q Q 5\@A  0L!00\@ \[ dZ0G0fS  0S VP @!#*  @0\.S R0\0 0L V :@jDA@0Bp`QVʂ`0Y" 8 00@.R-  p 0pSs  0Spj0D0 Y@BV  0S Sz S @80Pb 0SpO 0Ra 0R 0SY`p P3@g>P/ D2010 % \L-P``iW 0S^ S S  800P@@a  dPs`nV@H`T`2 0`z ph@ 0`P<0S 010 0sbQ0X`]010  PT> 0X@!@a<Q 8 00P0b@R 00@M10 0dP+ 0Y !@<< 0bXzWGPs 0 <0Sm 00CS "@"2010 0 !@00   `!  F irO-hŸ00 MS@ 0"!0  00B0p`  R$ 0S& R2 V\0#03Q0S 0aQ @e 0$3 X \  ,  RV ЍO/Q`  \  ,020)R00V0S00 \0#03Q0S 0aQ @e 0$3 X Z* 0 Y0*00Y*0S  Z Z 0SA P00C 0 @/0 ?0@ S0/$HE-p|M`1P)P@T 4P `V`FЍE/GA-鄀p`AT @P P 0:S0 C R0:S `V0A/G$H-MP0Ѝ/G-Mp 0!Ѝ/G0@-qMP@@Ѝ0@/LP 00  0S@ /@XG0@-qM@P QP0!0SX00 /Ѝ0@/P G/qp@-@P` Q H0!\  0/p@/P GG-`MpXp@ !0S p?0P0 @  0/p@ ЍG/X00PPGqp@-@P` Q H0!\  0/p@/P G`0S@-@ L 0S 0S 03053%/00S000MMMsp@-P@`p 80! 0S  /p@/00G/Q/$00S 0 0 /s-MX00Ѝ/0@-PM@p 80!(0S /Ѝ0@/00Gqp@-@P` Q H0!\  0/p@/P G00S/MX0p@-@Q`0P0P 8T"0305P3 !!%+p@/ ?(HO-M @ZKp0W/S/00Pp/UF / P/ `P2 .U0S/S  P0S/S0W/SG/ P00pi 00@P/U@Z Np`P0W/S/00ЍO/[00 00pPtp@-81M`@m P[0#0%#*:P( + : P@ :0/S00 ۍp@/  ;np @Px0!,0S 00 T+ P /p  + ?G(H@-p0MP`p@T00 80!00SX00 /Ѝ@/ ?G00 B0-P@0S Q*0S\\10 0@ 0/@ P0/M@-D @@ T 1Sp0P @/M0@-@@ TM* PP R01Ѝ0@/MP@-@P 0D P\ ,0 /n00@/G ? & * Z>>*S 51:3`//// *& *Z>>*SJ51:3////FFpG  > > > >  >     h P > <   > >        $ B1B11111B11B1B1B1B1B1B1B1B1B1B12199999:9999$:9999999RB|&+,=[] \/:*?"<>|6f. Q=mhsihC   k0@DDUUUTW- a@DDUU }݀?_b7bJ  ?S` ;?WbbݲݲP a?`C p=W&݌ -&P@ bW-a) ` R@?W=ݍ~0?b?Q-?as-ѿG? J?C??3 Av-K=.ݸ_aHab¿-ACDDUݍaݍ+ۍ`X# čڬݸSW-38-yݐݝGI#*[2V??~KP?=K_@R 11#=1?a;??/bb-ak_!+3_S'So?V+3f Q#;-ۍɃۍ`r+#@j'#a7ݘA p?#yK_2-߫bK$s!,-x p?YC]UA+UU5EV ?uCU UZV 5\?U 7hU5_b/֬=??3?#T?3/ZO x*`bb?ߟO$_ǿ*U Ue +6UW 5 ֿ?_G?>?N_:/__*.sߞڲݲݰ-3g96D?#g4?g`O??W?[<_^ZO ?D' _m[__?_ o)$8׿u?F__u5.?L+?V'-#g?1 m?vn_k+5 /??o) ____W_`";D=B,-t::?bb)&ߐQ=6? #"U Z\4Up_`Z5,[Z:`.%ZV S^&p[. {?a㐿PÐ_`&*6ȑ B:0\@џ<--bSW_}`L)7 50_/+%_#k^ @_>_Cۍ۰J?>,_eo =;Pb bgp_=/ ~wS۝ZZcM?=hZE?`_ZbU6_?aUE=% ާ ?gߟ8;?b;?L O6=B' ? )_21@_?-a=4 8 ? s?-%BxkY@gc+>+p ?c0_$ @75P? M KS57w:[B?G:V3?75Gߗ_%_GKS?;cx5? A`_? OV]UZ_ s?_=ea@DDp6PPADD%DGDDjMP?:;P?;? dUDVB0:*\*PC /?? ?cDdD ZWUˡP VA5B@D7\%?,V55DV!H@UH?DaDD@HC?;?Q QdCd>%?aV?hѿ!? mDñ?*@M v _D`d`UA¿U7R[ D%DZ B6DVBpQUU2Ca5U:DZH1_V3#IDD'_לMSDDAtww]/~M2"W??*V~KO"?S9R  (ES[K>K=Dh?ZGG?6Uz~1?7;PZ/hQ? (@p_\l_߰-@GG?W+p` \ ??%s[?0?GG%s_(&ąd_? ]D?k7;?\``@ w VcDGZDy yڲW G:!!!%?=W D?C[?kU? ?D`$`U?ݿK;C$?sL ? ?$C GK?`??Q??0D?`?!??S?4??ck???0___" _`[d_A ?H% VHn7`bȶ~4o_@7 ϱ :EwC.`֟70k[ P R(g[oПV~__?o߅@ +?GP^YcF[[_4 8ߠcyB(H?GeG?Vaƽ_\c=4O~>DH6A DZ5 hUUdA]V 6o/{/'W\7dA;9sH<M~ VUn'?%F %\ WF?(?C?X?#?W,cf_GKXJN {?ûU ?Wc' _o\Q3_9 KO {?QS?)_s?d>Q;UCd VHdAпp6_6Dd&UcUUU#T?3=h){d[B;[n?Z7'Cį_'ۤH5$ǤH_Gǟ.-~>?e5 \ `?5 w?߳?_VUh?T?/^Di_ [GCA_- :P> i;`??D\ \oz; ;rP?wG{簿=кM6V&3 o[A_`?%?UɝD< ?_;N_?3a{+?N??W< [ /g*`?GP1U? ;?G_?R{ە_5E \(s?_GS?_t?k:A? ?'+Z?UU?;?;o 3_BM/`Cp?H`7?7kR?X_)]?AgW?_?s%={Q | z-Z ˠ 7=)hf_ _;3 ;NZ i7`36:#?>k?i+?[ ?4,%nw?k;?/( O[~Mw|/S*N;GC 5?!V[Pw+?x/V H?>^/.j_`:$h@ { [ /8:=<Ua o7Lk2S3Gg+?/3 ?3,??" S __)!WEZU? V@? a_]1_B*Tg_Q÷?Ϥ?.r [z??V%w\.W_*U_ ?*a34?#k?23u_S 1?_54``?_%`6ksT~{[U?;T{,s=wOS#aPW@hUS?a}o,06k/ۅ?[ +C{]'o;G +?%_UU?]s ?bG%_5UT"/DQU5ڟ_k]obo3U \!++? ?VS?{?__ [oX ?$[㺷z èߐV 6;>u ?V !E(.)K7KX`8[o_?H!V 3?;tK_gS?'KY_`Uc? \5_A_?% ks {_  !"#$%&'()*!+,*!-./!012!3456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrsrtruvwxyz{|}~ntrnuTt     r !"#$%&'()*+,-./01234567859:;<=>?@AB*!*!3456789:CDEFGHIJKLMNOPQTRSTUVWXTYTZ[WXYZ\]^_`abfcdefghiajklmnorpqtruvwxyrstuvwxyz{|}~TTjiartrU}TTrruTt     r      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW XYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!=b(@Z~       L !"#$% !"#$%&'()*+,-7./;<=>?@ABCD012345678NO9:;< = XYZ[\]^_`ab>?@ABCDEFG(HIJKwxyz{|}~LMNOPQRSTOUVWVWX!=b(@Z~ BjjURssRJ<1\K.c4|??CL>@?0C0 ((((( AAAAAABBBBBB (?xHHHHHHHHH;Zx0Nmn0000000000000000  0000000000000000  NUZ?Ta(cY"uPz`c%nefh'Weqb[Y{b}}b|[^ cfHhǕOgN OMOOIPV7YYZ \`apafipOupuy}}ÀcUz;SNNWxNXn82z(/AQpSTTVY_m-bp TS[poS\zNx&nVUk;YSfmtBVNKO SU0[q_ ffh8ll)m[tvNz4[`풲muvř`iSQW0XDY[^(`cclopqYqq?s~vт`[iXeZl%uQ.YeY__be*j'kksV,Ğ\l{QK\aƁvharYNOxSi`)nOz NSNUO=OOsORS VYZ[[yfggLklkpsyykSkWl"ooEotuv wz{!|}6f̊Qeӗ(8N+T\]sLvT/Z__`hjZtxw^NɛN|OOPPIQlQRRRSSTTUQWW}YT[][[]]]x^^^^_R`Labbc;efCffmg!hhi_l*mim/nn2uvlx?z|}}^}}T*RLaʐuq?xMؚ;[RRSTXboj_KQ;RJTV@zw`ҞDs opu_`rdkNVdWXZZh`aff9hhmu:}nBNPOSUo]]]glstxP߈PW^+cPPQgT^XY[i_Mbc=hskn}pǑrx&xmye0}܃ dR(WPgjQBW*:XiT]Wx\OJRT>d(fggzV{"}/\h9{SQ7R[bdd-gkіv֛LcvRf NPSq\`dce_hqs#u{~یxefkNN:OO:RSSUVXYYYP[M\^+^_`c/e\[eeegbk{klEsIyy|}+}󁖉^ifnj܌̖okNrtux:y 3ꁔPl_X+z[NSW1YZ[`nouꌟ[{rPga\J~Q\hcfenq>y}ʎndžPR:\Sg|p5rLȑ+[1_`;NS[Kb1gkrs.zkRQSjT[c9j}VShT[1\]Oab2myyB}M~Frt/1KlƖNOOEQAS_bgAl ncs&~͑SY[m]y.~|~XqQSO\%fwzQ_eoikmndov}]uQR@bffn^}rfRSsY^_U`dPQR SGSSTFU1UVhYY~ d_xRbcBdb-z{v} INHQCS`S[\\]&bGbdh4hlEmmg\oNq}qez{}J~z9nΌxwMRU8o6qhQyU~|LVQX\cffZiruuyVyy| }D}4;a PuRSS PUXOY=r[d\S``\cc?ccdef]iioqNuvz|}}aIXlňpmPXaӁ5 OtPGRsSo`Ic_g,nO^\ʌe}RSvQcX[k[ \ dQg\NY*YplQ>UXY`Sbg5Ui@ę(SOX[\/^_ `Ka4bfln΀Ԃ.۞ۛNS'Y,{Ln'pSSDU[Xbbblo"t8o8QSSFOTjY1]zh7rH=j9NXSVfWbceNkm[npwz{}=ƀˆ[VX>_efjk7uNJ$Pw0W_e`zf`luznE{\uzQ{Ąyz6Z@w-NN[_bm6t4xFZuO^bcWeogvLr̀)M PWZhsidqrXjyw)/OeRZSbgl}v{|6f or~Q{rx{H{ja^Qu`ukQbnzvOpbO{zVYX䆼4O$RJSSS^,deg>lNlHrrsTuA~,酩{Ƒiq=cifjuvxC*SQS&TY^|_`Ibybbekluvxy}w^ۘ j8|P>\_gk5t w;gz9Suf_񃘀<__buF{ee gllp2x+~ހ *JҒlONNPVRJWY=^__?bfgghQ!}~2 T,SP\SXd4ggrfwFzRlkXL^TY,gQvidxTWY'fgkTiU^ggR]hNOSb+glďOm~Nban+osT*gE]{\[JnфzY|l wR"Y!q_rw'a iZZQ T}TfvY]rnMQh}}bxd!jY_[ksv}2Q(gٞvbgR$\;b~|OU` }S_NQY:r6Α%_wSy_}3VgS aalRv8/UQO*QRS[}^`ac gggnm6s7s1uPyՈJĖYNYON?P|^Y[^ccdfJii mnq(uzIɄ! e} ~ab2kltmmeg<ma}=jqNuSP]koͅ-)RTe\Nghttuψ̑x_szNceuRAmn tYukx|zOnae\NNP!NQ[ehmsBvwz|oҊ|ϑuR}+PSgmq3t*W`tAXm/}^N6OOQR]`s|}o#,BTojpŒ2RAZ^_g|iijmobrr{~KΐmQy2֊-PTqjkČ`gNNkhi~nxU _NN*N1N6NYzUYPYNYZYXYbY`YgYlYiYxYYY^OOYYYYYYYY%ZZZZ ZZ@ZlZIZ5Z6ZbZjZZZZZZZZZZZZZZ [ [[2[Z*[6[>[C[E[@[Q[U[Z[[[e[i[p[s[u[x[ez[[[[[[[[[[[[[[[[[[[\\\ \\ \"\(\8\9\A\F\N\S\P\O\q[l\n\bNv\y\\\\Y\\\\\\\\\\\\\]\ ]]]\]]]]]"]]]]L]R]N]K]l]s]v]]]]]]]]]]]]]]]]]]]]] ^^^^^6^7^D^C^@^N^W^T^_^b^d^G^u^v^z^^^^^^^^^^^^^^^^^^^^^^^^_ _]_\_ ___)_-_8_A_H_L_N_/_Q_V_W_Y_a_m_s_w_____________________`_!`````)``1```+`&``:`Z`A`j`w`_`J`F`M`c`C`d`B`l`k`Y``````````````````_````Maaa``a``a!a`` aaGa>a(a'aJa?acMcdOcccccvcccccckciccccccccccd4ddd&d6ded(ddgdodvdNd*eddddddddddddddd ddbdd,eddddedeee$e#e+e4e5e7e6e8eKuHeVeUeMeXe^e]erexeeeeeeeeeeeeeeeeeerg ffesg5f6f4ffOfDfIfAf^f]fdfgfhf_fbfpffffffffffffffffff?ffffffggg&g'g8.g?g6gAg8g7gFg^g`gYgcgdggpgg|gjggggggggggggggggggggggjhFh)h@hMh2hNhh+hYhchwhhhhhhhhhjhthhhhih~hihih"i&ih ihhhh6iiihh%ihhh(i*ii#i!ihyiwi\ixikiTi~ini9iti=iYi0iai^i]iijiiiiiiiii[iiiii.jiiiiiiijji kiiijijiji jjj#jjDj jrj6jxjGjbjYjfjHj8j"jjjjjjjjjjjjjjjjjjjjjkjkk1k8k7kv9kGkCkIkPkYkTk[k_kakxkykkkkkkkkkkkkkkkkkkkkkkkkkkllll$l#l^lUlbljllllll~lhlsllllllllllllllllllmM6m+m=m8mm5m3mm mcmmdmZmymYmmmommn nmmmmmmmmmmmmmmmmm-nnn.nnrn_n>n#nkn+nvnMnnCn:nNn$nnn8nnnnnnnnnnnnnnnnnAooLpnnn?on1on2on>oonozoxooooo[oomoo|oXoooofoooooooooooooooo p popppopptoppp0p>p2pQpcppppppppppppp qpqqeqUqqfqbqLqVqlqqqqqqqqqqqqqqqqqqqqq rrr(r-r,r0r2r;rsNsOs؞Wsjshspsxsus{szsssssssssttot%ts2t:tUt?t_tYtAt\titptctjtvt~tttttttsttttttttttuuu uu uuuu&u,uz7zCzWzIzazbzizpzyz}zzzzzzzzzzzzzzzzzzzzzzzzzzz{{ {{3{{{{5{({6{P{z{{M{ {L{E{u{e{t{g{p{q{l{n{{{{{{{{{{]{{{{{{{{{{||{{`||||{{| |{#|'|*||7|+|=|L|C|T|O|@|P|X|_|d|V|e|l|u||||||||||||||||||||||;|||||}}}} }E}K}.}2}?}5}F}s}V}N}r}h}n}O}c}}}[}}}}}}}}}}}}=~}}}}}}}}}}}}}~ ~#~!~~1~~ ~ ~"~F~f~;~5~9~C~7~2~:~g~]~V~^~Y~Z~y~j~i~|~{~~}}~~~~~~~~~~~~~8:ELMNPQUTX_`higxqܘ !(?;JFRXZ_bhsrpvy}Qۀـ݀Āڀր )#/KF>SQqneft_Ɂ́сف؁ȁځ߁ )+83@YX]Z_dbhjk.qwx~߂҂ނ܂ ق5421@9PE/+#|su΃؃  " 8m*(ALONIV[Zk_lot}:A?HLNPUblxz|bȌڌ  N͌gmqsύڍ֍̍ۍˍߍ B504JGILPHYd`*cUvr|ƎŎȎˎێ  &3;9EB>LIFNW\bcdڏ!  '659OPQRI>VX^hovr}Hbې20JVXceisrɑˑБ֑ߑۑ,^WEIdH?KPZϒD."#:5;\`|nV֓דؓÓݓГȓ6+5!:ARD[`b^j)puw}Z|~ʕoÕ͕̕Օԕ֕ܕ!(./BLOKw\^]_frlΖ˖ɖ͖Mܖ Ֆ$*09=>DFHBI\`dfhRkqy|z×Ɨȗ˗ܗOz 8$!7=FOKkopqtsĘØƘ !$ ,.=>BIEPKQRLUߙۙݙؙљ+7EB@C>UM[W_bedikjϚњӚԚޚߚ"#%'()*./2DCOMNQXtʛƛϛћқԛ:   .%$!0G2F>Z`gvx *&#DA?>FH]^dQPYrozĝƝϝٝӝuy}a̞ΞϞОԞܞޞݞv!,>JRTc_`afgljwrv/XiYdtQq000 000@>> ?00000N0000  <0 \& %      00;=[]0 0 0 0 0 00000 "`"f"g""4"B&@&2 3 ! &&%%%%%%%%%%%; 0!!!!0" """""*")"'"("!!"")" ""#""a"R"j"k""=""5"+","+!0 o&m&j& ! ,"% !"#$%&'()*+,-./012345Q6789:;<=>?@ABCDEFGHIJKLMNO%% %%%%%,%$%4%<%%%%%%%#%3%+%;%K% %/%(%7%?%%0%%%8%B%?$@Y@@@@j@.AcAחAeA _BvH7BmB@0BļB4&k C7yAC؅W4vCNgmC=`XC@xDPKDMDJ-DyCxD7yACnF?O8M20HwZ (dictionary->smudge)dictionary.c(dictionary)(hash)(word)(dictionary != ((void *)0))%3d %s (instruction %ld)%s (instruction %ld), with argument %ld (%#lx)%s :: executes %s (instruction word %ld)%.*s ( %#lx literal )literal %ld (%#lx)2literal %d %d (%#lx %#lx)fliteral %f (%#lx)s" %.*s"c" %.*s"branch0 %dbranch %d?do (leave %d)do (leave %d)loop (branch %d)of (branch %d)+loop (branch %d)%.*s%ld ( %#lx ); ** invalid **7910111213141516-2-3-4-5-6-7-8-9-10-11-12-13-14-15-160.0e1.0e-1.0e-1+1-2+2-(;)(exit)dupswap(branch)(branch-final)(branch0)(branch0-final)(literal)(loop)(of)(+loop)@,c,cellscell+negate/*//mod*/mod2*2/** (colon) **(variable)(constant)(2constant)(2literal)** do-does **(do)(does)(?do)(create)(.")(c")+!0<0>0=2!2@overrot2drop2dup2over2swapr>r@2>r2r>2r@<=>r?dupandc!c@droppickroll-roll-rotfills>du<q@q!w@w!invertlshiftmaxminmoveorrshiftxorijcomparecompare-insensitiverandomseed-randomleaveunloop(user)(link)(unlink)(@local)(@2Local)(toLocal)(to2Local)(@local0)(@2Local0)(toLocal0)(To2Local0)(@local1)(toLocal1)(@fLocal)(@f2Local)(toFLocal)(toF2Local)(fliteral)(fconstant)(f2constant)f+f-f*f/fnegatef+if-if*if/ii-fi/ffloat>>floatint>floatfloat>intf@f!f2@f2!f+!fdropf2dropfdupf2dupf-rollf-rotf?dupfoverf2overfpickfrollfrotfswapf2swapf0<f<f0=f=f0>f>** exit inner loop **system.c(vm != ((void *)0))sizeof(ficlInteger) >= sizeof(void *)sizeof(ficlUnsigned) >= sizeof(void *)sizeof(ficlFloat) <= sizeof(ficlInteger)systemforth-wordlistenvironment4.1.0%d.%dficl-versionficl-robust?word?prefix?number?floatFICL_WANT_LZ_SOFTCOREFICL_WANT_FILEFICL_WANT_FLOATFICL_WANT_DEBUGGERFICL_WANT_EXTENDED_PREFIXFICL_WANT_USERFICL_WANT_LOCALSFICL_WANT_OOPFICL_WANT_SOFTWORDSFICL_WANT_MULTITHREADEDFICL_WANT_OPTIMIZEFICL_WANT_VCALLFICL_PLATFORM_ALIGNMENTFICL_ROBUSTFICL_PLATFORM_ARCHITECTUREunknownFICL_PLATFORM_OSansifileaccess.c(environment)create-fileopen-fileclose-fileinclude-fileread-fileread-linewrite-filewrite-linefile-positionfile-sizereposition-filefile-statusflush-filedelete-filerename-filefile-extbafloat.cfconstantfvaluef2constantf2valuefdepthfliteralf.f.sfe.(flocal)(f2local)floatingfloating-extfloating-stack%#e %#f [0x%08x %3d] %16f (0x%08x) __tempbase%.*s not recognizedsearch.c>searchsearch>definitionsget-currentget-ordersearch-wordlistset-currentset-orderficl-wordlistsearch-ordersearch-order-extwordlistswid-get-namewid-set-namewid-set-superDEFINITIONS error - empty search ordersearch> error: empty search order>search error: search order overflowset-order error: list would be too large(returnValue != (-260))softcore.c(n > 0)stack.c(size != 0)(stack != ((void *)0))Error: %s stack underflowError: %s stack overflowEnvironment: %d words, %ld cells used of %u total %s%d[0x%08x %3d]: %12d (0x%08x) %sDictionary: %d words, %ld cells used of %u total : %.*s does> create variable = %ld (%#lx) user variable %ld (%#lx) constant = %ld (%#lx) constant = %ld %ld (%#lx %#lx) %.*s is a primitive immediate compile-only [0x%08x %3d] %12d (0x%08x), %s + %d [%d] [%s stack has %d entries, top at 0x%08x] [%s stack base at 0x%08x] %d bins, %2.0f%% filled, Depth: Max=%d, Avg=%2.1f, Best=%2.1f, Score: %2.0f%% ASSERTION FAILED at %s:%d: "%s" tools.c.s.s-simplebyeforgetseewordstoolstools-extr.s.envenv-constantenv-2constantdebug-xtparse-orderstep-breakforget-widsee-xt.hash(pStep)(vm->callback.system->breakpoint.address)(vm->callback.system->breakpoint.oldXT)on-stepnext: %s (instruction %ld) next: %s dbg> sorry - can't do that i -- step In o -- step Over g -- Go (execute to completion) l -- List source code q -- Quit (stop debugging and abort) x -- eXecute the rest of the line as Ficl words (system)Parse steps: lookup (vm)vm.cError: dictionary fullError: dictionary underflowError: search order overflowError: search order underflowError: NULL instruction executed!(system->interpreterLoop[0])Error: FICL_VM_STATE_COMPILE only!(vm->callback.system->exitInnerWord)vmdatareturnprimitives.c##>#s'(+loop..":;<#>body>in>numberabortacceptalignalignedallotbasebegincasechar+charscountcreatedecimaldepthdodoes>elseemitendcaseendofenvironment?evaluateexecuteexitfallthroughfindfm/modhereholdifimmediateliteralloopm*modofpostponequitrecurserepeats"signsm/remsourcestatethentypeu.um*um/moduntilvariablewhileword[['][char]].(:noname?doagainc"hexpadparserefillsource-idtovalue\/counted-string/hold/padaddress-unit-bitscorecore-extflooredmax-charmax-nmax-umax-dmax-udreturn-stack-cellsstack-cells2value2literal2variablednegatecatchthrowexceptionexception-extdoLocal(local)(2local)localslocals-ext#localsallocatefreeresizememory-alloc.ver>nameadd-parse-stepbody>compile-onlyendiflast-wordobjectify?objectparse-wordsfindsliteralsprintfstrlenx.userinterpretlookup(parse-step)exit-innerficlInstructionInvalidficlInstruction1ficlInstruction2ficlInstruction3ficlInstruction4ficlInstruction5ficlInstruction6ficlInstruction7ficlInstruction8ficlInstruction9ficlInstruction10ficlInstruction11ficlInstruction12ficlInstruction13ficlInstruction14ficlInstruction15ficlInstruction16ficlInstruction0ficlInstructionNeg1ficlInstructionNeg2ficlInstructionNeg3ficlInstructionNeg4ficlInstructionNeg5ficlInstructionNeg6ficlInstructionNeg7ficlInstructionNeg8ficlInstructionNeg9ficlInstructionNeg10ficlInstructionNeg11ficlInstructionNeg12ficlInstructionNeg13ficlInstructionNeg14ficlInstructionNeg15ficlInstructionNeg16ficlInstructionF0ficlInstructionF1ficlInstructionFNeg1ficlInstructionExitInnerLoop(ficlDictionaryCellsAvailable(dictionary) > 0)%.*s not foundError - out of user spaceFicl version 4.1.0 (wp)to %.*s : local is of unknown typeto %.*s : value/constant is of unknown typeError: out of local spaceError -- unmatched control structure "%s"Warning -- Unmatched control word: (pType)(pComma)cputility.cradix > 1radix < 37stringhash.cwhereword != word->linkbreakloadspewhashclockclocks/secpwdcdError: path not found Warning (chdir): nothing happened System call returned %d Warning (system): nothing happened unable to open file %d %d %sWarning (load): nothing happened Unable to open file Error loading file <%s> line %d:/fat..[%dA[%dB[%dC[%dD[%d;%df[%d;%dmnocashconstdin______________________________ |Mode | BG0 | BG1 | BG2 | BG3 | | 0 | T | T | T | T | | 1 | T | T | T | R | | 2 | T | T | R | R | | 3 | T | T | T | E | | 4 | T | T | R | E | | 5 | T | T | E | E | |_____|_____|_____|_____|_____| T = Text R = Rotation E = Extended Rotation (Bitmap or tiled) powCC-UTF-8C-JISC-EUCJPC-SJISC-ISO-8859-1ISO-8859-1UTF-8JISEUCJPSJISTZTZ=GMT%10[^0-9,+-]%n%hu%n:%hu%n:%hu%nM%hu%n.%hu%n.%hu%n/%hu%n:%hu%n:%hu%n0123456789ABCDEF0123456789abcdef(null)bug in vfprintf: bad baseinfINFnanNANe%ldInfinityNaNnfinityanABCDEFabcdef0123456789stdnullmAX$Pįȯ̯Яԯدܯ  $,08DT`p|ȿȰа԰ذ (08@LT\`dhlpt|ȱ̱бԱܱ $,04<@HLPT\pxȲԲ(4@LXdp̳سܳ $,4<DLT\`dhlpt: empty ( xn..x1 -- ) depth 0 ?do drop loop ; : cell- ( addr -- addr ) [ 1 cells ] literal - ; : -rot ( a b c -- c a b ) 2 -roll ; : abs ( x -- x ) dup 0< if negate endif ; decimal 32 constant bl : space ( -- ) bl emit ; : spaces ( n -- ) 0 ?do space loop ; : abort" state @ if postpone if postpone ." postpone cr -2 postpone literal postpone throw postpone endif else [char] " parse rot if type cr -2 throw else 2drop endif endif ; immediate .( loading CORE EXT words ) cr 0 constant false false invert constant true : <> = 0= ; : 0<> 0= 0= ; : compile, , ; : convert char+ 65535 >number drop ; \ cribbed from DPANS A.6.2.0970 : erase ( addr u -- ) 0 fill ; variable span : expect ( c-addr u1 -- ) accept span ! ; : nip ( y x -- x ) swap drop ; : tuck ( y x -- x y x) swap over ; : within ( test low high -- flag ) over - >r - r> u< ; : ? ( addr -- ) @ . ; : dump ( addr u -- ) 0 ?do dup c@ . 1+ i 7 and 7 = if cr endif loop drop ; .( loading SEARCH & SEARCH-EXT words ) cr : brand-wordlist ( wid -- ) last-word >name drop wid-set-name ; : ficl-named-wordlist \ ( hash-size name -- ) run: ( -- wid ) ficl-wordlist dup create , brand-wordlist does> @ ; : wordlist ( -- ) 1 ficl-wordlist ; : ficl-set-current ( wid -- old-wid ) get-current swap set-current ; : do-vocabulary ( -- ) does> @ search> drop >search ; : ficl-vocabulary ( nBuckets name -- ) ficl-named-wordlist do-vocabulary ; : vocabulary ( name -- ) 1 ficl-vocabulary ; : previous ( -- ) search> drop ; 1 ficl-named-wordlist hidden : hide hidden dup >search ficl-set-current ; : also ( -- ) search> dup >search >search ; : forth ( -- ) search> drop forth-wordlist >search ; : only ( -- ) -1 set-order ; hide : list-wid ( wid -- ) dup wid-get-name ( wid c-addr u ) ?dup if type drop else drop ." (unnamed wid) " x. endif cr ; set-current \ stop hiding words : order ( -- ) ." Search:" cr get-order 0 ?do 3 spaces list-wid loop cr ." Compile: " get-current list-wid cr ; : debug ' debug-xt ; immediate : on-step ." S: " .s-simple cr ; previous \ lose hidden words from search order hide : ?[if] ( c-addr u -- c-addr u flag ) 2dup s" [if]" compare-insensitive 0= ; : ?[else] ( c-addr u -- c-addr u flag ) 2dup s" [else]" compare-insensitive 0= ; : ?[then] ( c-addr u -- c-addr u flag ) 2dup s" [then]" compare-insensitive 0= >r 2dup s" [endif]" compare-insensitive 0= r> or ; set-current : [else] ( -- ) 1 \ ( level ) begin begin parse-word dup while \ ( level addr len ) ?[if] if \ ( level addr len ) 2drop 1+ \ ( level ) else \ ( level addr len ) ?[else] if \ ( level addr len ) 2drop 1- dup if 1+ endif else ?[then] if 2drop 1- else 2drop endif endif endif ?dup 0= if exit endif \ level repeat 2drop \ level refill 0= until \ level drop ; immediate : [if] ( flag -- ) 0= if postpone [else] then ; immediate : [then] ( -- ) ; immediate : [endif] ( -- ) ; immediate previous variable save-current : start-prefixes get-current save-current ! set-current ; : end-prefixes save-current @ set-current ; : show-prefixes >search words search> drop ; start-prefixes S" FICL_WANT_EXTENDED_PREFIX" ENVIRONMENT? drop [if] : " postpone s" ; immediate : .( postpone .( ; immediate : \ postpone \ ; immediate : // postpone \ ; immediate : 0b 2 __tempbase ; immediate : 0o 8 __tempbase ; immediate [endif] : 0d 10 __tempbase ; immediate : 0x 16 __tempbase ; immediate end-prefixes S" FICL_WANT_USER" ENVIRONMENT? drop [if] variable nUser 0 nUser ! : user \ name ( -- ) nUser dup @ user 1 swap +! ; [endif] S" FICL_WANT_LOCALS" ENVIRONMENT? drop [if] : locals| ( name...name | -- ) begin bl word count dup 0= abort" where's the delimiter??" over c@ [char] | - over 1- or while (local) repeat 2drop 0 0 (local) ; immediate : local ( name -- ) bl word count (local) ; immediate : 2local ( name -- ) bl word count (2local) ; immediate : end-locals ( -- ) 0 0 (local) ; immediate : strdup ( c-addr length -- c-addr2 length2 ior ) 0 locals| addr2 length c-addr | end-locals length 1 + allocate 0= if to addr2 c-addr addr2 length move addr2 length 0 else 0 -1 endif ; : strcat ( 2:a 2:b -- 2:new-a ) 0 locals| b-length b-u b-addr a-u a-addr | end-locals b-u to b-length b-addr a-addr a-u + b-length move a-addr a-u b-length + ; : strcpy ( 2:a 2:b -- 2:new-a ) locals| b-u b-addr a-u a-addr | end-locals a-addr 0 b-addr b-u strcat ; [endif] S" FICL_WANT_LOCALS" ENVIRONMENT? drop [if] .( loading Johns-Hopkins locals ) cr hide : compiled-zero ficlInstruction0 , ; : compiled-float-zero ficlInstructionF0 , ; : ?-- ( c-addr u -- c-addr u flag ) 2dup s" --" compare 0= ; : ?} ( c-addr u -- c-addr u flag ) 2dup s" }" compare 0= ; : ?| ( c-addr u -- c-addr u flag ) 2dup s" |" compare 0= ; 1 constant local-is-double 2 constant local-is-float : parse-local-prefix-flags ( c-addr u -- c-addr u flags ) 0 0 0 locals| stop-loop colon-offset flags u c-addr | c-addr c@ [char] : = if over over 0 exit endif u 0 do c-addr i + c@ case [char] 1 of flags local-is-double invert and to flags endof [char] 2 of flags local-is-double or to flags endof [char] d of flags local-is-double or to flags endof [char] f of flags local-is-float or to flags endof [char] i of flags local-is-float invert and to flags endof [char] s of flags local-is-double invert and to flags endof [char] : of i 1+ to colon-offset 1 to stop-loop endof 1 to stop-loop endcase stop-loop if leave endif loop colon-offset 0= colon-offset u = or if c-addr u 0 exit endif c-addr colon-offset + u colon-offset - flags ; : ?delim ( c-addr u -- state | c-addr u 0 ) ?| if 2drop 1 exit endif ?-- if 2drop 2 exit endif ?} if 2drop 3 exit endif dup 0= if 2drop 4 exit endif 0 ; set-current : { 0 0 0 locals| flags local-state nLocals | begin parse-word ?delim dup to local-state 0= while nLocals 1+ to nLocals repeat nLocals 0 ?do parse-local-prefix-flags to flags flags local-is-double and if flags local-is-float and if (f2local) else (2local) endif else flags local-is-float and if (flocal) else (local) endif endif loop \ ( ) local-state 1 = if begin parse-word ?delim dup to local-state 0= while parse-local-prefix-flags to flags flags local-is-double and if flags local-is-float and if compiled-float-zero compiled-float-zero (f2local) else compiled-zero compiled-zero (2local) endif else flags local-is-float and if compiled-float-zero (flocal) else compiled-zero (local) endif endif repeat endif 0 0 (local) local-state 2 = if begin parse-word ?delim dup to local-state 3 < while local-state 0= if 2drop endif repeat endif local-state 3 <> abort" syntax error in { } local line" ; immediate compile-only previous [endif] .( loading MARKER ) cr : marker ( "name" -- ) create get-current , get-order dup , 0 ?do , loop does> 0 set-order \ clear search order dup body> >name drop here - allot \ reset HERE to my xt-addr dup @ ( pfa current-wid ) dup set-current forget-wid ( pfa ) cell+ dup @ swap ( count count-addr ) over cells + swap ( last-wid-addr count ) 0 ?do dup @ dup ( wid-addr wid wid ) >search forget-wid ( wid-addr ) cell- loop drop ; S" FICL_WANT_OOP" ENVIRONMENT? drop [if] .( loading ficl O-O extensions ) cr 17 ficl-vocabulary oop also oop definitions user current-class 0 current-class ! : parse-method \ name run: ( -- c-addr u ) parse-word postpone sliteral ; compile-only : (lookup-method) { class 2:name -- class 0 | class xt 1 | class xt -1 } class name class cell+ @ ( class c-addr u wid ) search-wordlist ; : lookup-method { class 2:name -- class xt } class name (lookup-method) ( 0 | xt 1 | xt -1 ) 0= if name type ." not found in " class body> >name type cr abort endif ; : find-method-xt \ name ( class -- class xt ) parse-word lookup-method ; : catch-method ( instance class c-addr u -- exc-flag ) lookup-method catch ; : exec-method ( instance class c-addr u -- ) lookup-method execute ; : --> ( instance class -- ??? ) state @ 0= if find-method-xt execute else parse-method postpone exec-method endif ; immediate : c-> ( instance class -- ?? exc-flag ) state @ 0= if find-method-xt catch else parse-method postpone catch-method endif ; immediate : method create does> body> >name lookup-method execute ; 1 ficl-named-wordlist instance-vars instance-vars dup >search ficl-set-current : => \ c:( class meta -- ) run: ( -- ??? ) invokes compiled method drop find-method-xt compile, drop ; immediate compile-only : my=> \ c:( -- ) run: ( -- ??? ) late bind compiled method of current-class current-class @ dup postpone => ; immediate compile-only : my=[ \ same as my=> , but binds a chain of methods current-class @ begin parse-word 2dup ( class c-addr u c-addr u ) s" ]" compare while ( class c-addr u ) lookup-method ( class xt ) dup compile, ( class xt ) dup ?object if \ If object member, get new class. Otherwise assume same class nip >body cell+ @ ( new-class ) else drop ( class ) endif repeat 2drop drop ; immediate compile-only : do-instance-var does> ( instance class addr[offset] -- addr[field] ) nip @ + ; : addr-units: ( offset size "name" -- offset' ) create over , + do-instance-var ; : chars: \ ( offset nCells "name" -- offset' ) Create n char member. chars addr-units: ; : char: \ ( offset nCells "name" -- offset' ) Create 1 char member. 1 chars: ; : cells: ( offset nCells "name" -- offset' ) cells >r aligned r> addr-units: ; : cell: ( offset nCells "name" -- offset' ) 1 cells: ; : do-aggregate objectify does> ( instance class pfa -- a-instance a-class ) 2@ ( inst class a-class a-offset ) 2swap drop ( a-class a-offset inst ) + swap ( a-inst a-class ) ; : obj: { offset class meta -- offset' } \ "name" create offset , class , class meta --> get-size offset + do-aggregate ; : array: ( offset n class meta "name" -- offset' ) locals| meta class nobjs offset | create offset , class , class meta --> get-size nobjs * offset + do-aggregate ; : ref: ( offset class meta "name" -- offset' ) locals| meta class offset | create offset , class , offset cell+ does> ( inst class pfa -- ptr-inst ptr-class ) 2@ ( inst class ptr-class ptr-offset ) 2swap drop + @ swap ; S" FICL_WANT_VCALL" ENVIRONMENT? drop [if] : vcall: ( paramcnt "name" -- ) current-class @ 8 + dup @ dup 1+ rot ! \ Kludge fix to get to .vtCount before it's defined. create , , \ ( paramcnt index -- ) does> \ ( inst class pfa -- ptr-inst ptr-class ) nip 2@ vcall \ ( params offset inst class offset -- ) ; : vcallr: 0x80000000 or vcall: ; \ Call with return address desired. S" FICL_WANT_FLOAT" ENVIRONMENT? drop [if] : vcallf: \ ( paramcnt -- f: r ) 0x80000000 or current-class @ 8 + dup @ dup 1+ rot ! \ Kludge fix to get to .vtCount before it's defined. create , , \ ( paramcnt index -- ) does> \ ( inst class pfa -- ptr-inst ptr-class ) nip 2@ vcall f> \ ( params offset inst class offset -- f: r ) ; [endif] \ FICL_WANT_FLOAT [endif] \ FICL_WANT_VCALL : end-class ( old-wid addr[size] size -- ) swap ! set-current search> drop \ pop struct builder wordlist ; : suspend-class ( old-wid addr[size] size -- ) end-class ; set-current previous : do-do-instance ( -- ) s" : .do-instance does> [ current-class @ ] literal ;" evaluate ; :noname wordlist create immediate 0 , \ NULL parent class dup , \ wid [ S" FICL_WANT_VCALL" ENVIRONMENT? drop ] [if] 4 cells , \ instance size [else] 3 cells , \ instance size [endif] ficl-set-current does> dup ; execute metaclass metaclass drop cell+ @ brand-wordlist metaclass drop current-class ! do-do-instance instance-vars >search create .super ( class metaclass -- parent-class ) 0 cells , do-instance-var create .wid ( class metaclass -- wid ) \ return wid of class 1 cells , do-instance-var S" FICL_WANT_VCALL" ENVIRONMENT? drop [if] create .vtCount \ Number of VTABLE methods, if any 2 cells , do-instance-var create .size ( class metaclass -- size ) \ return class's payload size 3 cells , do-instance-var [else] create .size ( class metaclass -- size ) \ return class's payload size 2 cells , do-instance-var [endif] : get-size metaclass => .size @ ; : get-wid metaclass => .wid @ ; : get-super metaclass => .super @ ; S" FICL_WANT_VCALL" ENVIRONMENT? drop [if] : get-vtCount metaclass => .vtCount @ ; : get-vtAdd metaclass => .vtCount ; [endif] : instance ( class metaclass "name" -- instance class ) locals| meta parent | create here parent --> .do-instance \ ( inst class ) parent meta metaclass => get-size allot \ allocate payload space ; : array ( n class metaclass "name" -- n instance class ) locals| meta parent nobj | create nobj here parent --> .do-instance \ ( nobj inst class ) parent meta metaclass => get-size nobj * allot \ allocate payload space ; : new \ ( class metaclass "name" -- ) metaclass => instance --> init ; : new-array ( n class metaclass "name" -- ) metaclass => array --> array-init ; : alloc \ ( class metaclass -- instance class ) locals| meta class | class meta metaclass => get-size allocate ( -- addr fail-flag ) abort" allocate failed " ( -- addr ) class 2dup --> init ; : alloc-array \ ( n class metaclass -- instance class ) locals| meta class nobj | class meta metaclass => get-size nobj * allocate ( -- addr fail-flag ) abort" allocate failed " ( -- addr ) nobj over class --> array-init class ; : allot { 2:this -- 2:instance } here ( instance-address ) this my=> get-size allot this drop 2dup --> init ; : allot-array { nobj 2:this -- 2:instance } here ( instance-address ) this my=> get-size nobj * allot this drop 2dup ( 2instance 2instance ) nobj -rot --> array-init ; : ref ( instance-addr class metaclass "name" -- ) drop create , , does> 2@ ; : resume-class { 2:this -- old-wid addr[size] size } this --> .wid @ ficl-set-current ( old-wid ) this --> .size dup @ ( old-wid addr[size] size ) instance-vars >search ; : sub ( class metaclass "name" -- old-wid addr[size] size ) wordlist locals| wid meta parent | parent meta metaclass => get-wid wid wid-set-super \ set superclass create immediate \ get the subclass name wid brand-wordlist \ label the subclass wordlist here current-class ! \ prep for do-do-instance parent , \ save parent class wid , \ save wid [ S" FICL_WANT_VCALL" ENVIRONMENT? drop ] [if] parent meta --> get-vtCount , [endif] here parent meta --> get-size dup , ( addr[size] size ) metaclass => .do-instance wid ficl-set-current -rot do-do-instance instance-vars >search \ push struct builder wordlist ; : offset-of ( class metaclass "name" -- offset ) drop find-method-xt nip >body @ ; : id ( class metaclass -- c-addr u ) drop body> >name ; : methods \ ( class meta -- ) locals| meta class | begin class body> >name type ." methods:" cr class meta --> get-wid >search words cr previous class meta metaclass => get-super dup to class 0= until cr ; : pedigree ( class meta -- ) locals| meta class | begin class body> >name type space class meta metaclass => get-super dup to class 0= until cr ; : see ( class meta -- ) metaclass => get-wid >search see previous ; : debug ( class meta -- ) find-method-xt debug-xt ; previous set-current metaclass drop constant meta : subclass --> sub ; S" FICL_WANT_VCALL" ENVIRONMENT? drop [if] : hasvtable 4 + ; immediate [endif] :noname wordlist create immediate 0 , \ NULL parent class dup , \ wid 0 , \ instance size [ S" FICL_WANT_VCALL" ENVIRONMENT? drop ] [if] 0 , \ .vtCount [endif] ficl-set-current does> meta ; execute object object drop cell+ @ brand-wordlist object drop current-class ! do-do-instance instance-vars >search : class ( instance class -- class metaclass ) nip meta ; : init ( instance class -- ) meta metaclass => get-size ( inst size ) erase ; : array-init ( nobj inst class -- ) 0 dup locals| &init &next class inst | class s" init" lookup-method to &init s" next" lookup-method to &next drop 0 ?do inst class 2dup &init execute &next execute drop to inst loop ; : free \ ( instance class -- ) drop free abort" free failed " ; : super ( instance class -- instance parent-class ) meta metaclass => get-super ; : pedigree ( instance class -- ) object => class metaclass => pedigree ; : size ( instance class -- sizeof-instance ) object => class metaclass => get-size ; : methods ( instance class -- ) object => class metaclass => methods ; : index ( n instance class -- instance[n] class ) locals| class inst | inst class object => class metaclass => get-size * ( n*size ) inst + class ; : next ( instance[n] class -- instance[n+1] class ) locals| class inst | inst class object => class metaclass => get-size inst + class ; : prev ( instance[n] class -- instance[n-1] class ) locals| class inst | inst class object => class metaclass => get-size inst swap - class ; : debug ( 2this -- ?? ) find-method-xt debug-xt ; previous set-current only definitions : oo only also oop definitions ; [endif] S" FICL_WANT_OOP" ENVIRONMENT? drop [if] .( loading ficl utility classes ) cr also oop definitions object subclass c-ref cell: .class cell: .instance : get ( inst class -- refinst refclass ) drop 2@ ; : set ( refinst refclass inst class -- ) drop 2! ; end-class object subclass c-byte char: .payload : get drop c@ ; : set drop c! ; end-class object subclass c-2byte 2 chars: .payload : get drop w@ ; : set drop w! ; end-class object subclass c-4byte 4 chars: .payload : get drop q@ ; : set drop q! ; end-class object subclass c-cell cell: .payload : get drop @ ; : set drop ! ; end-class object subclass c-ptr c-cell obj: .addr : get-ptr ( inst class -- addr ) c-ptr => .addr c-cell => get ; : set-ptr ( addr inst class -- ) c-ptr => .addr c-cell => set ; : clr-ptr 0 -rot c-ptr => .addr c-cell => set ; : ?null ( inst class -- flag ) c-ptr => get-ptr 0= ; : inc-ptr ( inst class -- ) 2dup 2dup ( i c i c i c ) c-ptr => get-ptr -rot ( i c addr i c ) --> @size + -rot ( addr' i c ) c-ptr => set-ptr ; : dec-ptr ( inst class -- ) 2dup 2dup ( i c i c i c ) c-ptr => get-ptr -rot ( i c addr i c ) --> @size - -rot ( addr' i c ) c-ptr => set-ptr ; : index-ptr { index 2:this -- } this --> get-ptr ( addr ) this --> @size index * + ( addr' ) this --> set-ptr ; end-class c-ptr subclass c-cellPtr : @size 2drop 1 cells ; : get ( inst class -- cell ) c-ptr => get-ptr @ ; : set ( value inst class -- ) c-ptr => get-ptr ! ; end-class c-ptr subclass c-4bytePtr : @size 2drop 4 ; : get ( inst class -- value ) c-ptr => get-ptr q@ ; : set ( value inst class -- ) c-ptr => get-ptr q! ; end-class c-ptr subclass c-2bytePtr : @size 2drop 2 ; : get ( inst class -- value ) c-ptr => get-ptr w@ ; : set ( value inst class -- ) c-ptr => get-ptr w! ; end-class c-ptr subclass c-bytePtr : @size 2drop 1 ; : get ( inst class -- value ) c-ptr => get-ptr c@ ; : set ( value inst class -- ) c-ptr => get-ptr c! ; end-class previous definitions [endif] S" FICL_WANT_OOP" ENVIRONMENT? drop [if] .( loading ficl string class ) cr also oop definitions object subclass c-string c-cell obj: .count c-cell obj: .buflen c-ptr obj: .buf 32 constant min-buf : get-count ( 2:this -- count ) my=[ .count get ] ; : set-count ( count 2:this -- ) my=[ .count set ] ; : ?empty ( 2:this -- flag ) --> get-count 0= ; : get-buflen ( 2:this -- len ) my=[ .buflen get ] ; : set-buflen ( len 2:this -- ) my=[ .buflen set ] ; : get-buf ( 2:this -- ptr ) my=[ .buf get-ptr ] ; : set-buf { ptr len 2:this -- } ptr this my=[ .buf set-ptr ] len this my=> set-buflen ; : clr-buf ( 2:this -- ) 0 0 2over my=> set-buf 0 -rot my=> set-count ; : free-buf { 2:this -- } this my=> get-buf ?dup if free abort" c-string free failed" this my=> clr-buf endif ; : size-buf { size 2:this -- } size 0< abort" need positive size for size-buf" size 0= if this --> free-buf exit endif my=> min-buf size over / 1+ * chars to size this --> get-buflen 0= if size allocate abort" out of memory" size this --> set-buf size this --> set-buflen exit endif size this --> get-buflen > if this --> get-buf size resize abort" out of memory" size this --> set-buf endif ; : set { c-addr u 2:this -- } u this --> size-buf u this --> set-count c-addr this --> get-buf u move ; : get { 2:this -- c-addr u } this --> get-buf this --> get-count ; : cat { c-addr u 2:this -- } this --> get-count u + dup >r this --> size-buf c-addr this --> get-buf this --> get-count + u move r> this --> set-count ; : type { 2:this -- } this --> ?empty if ." (empty) " exit endif this --> .buf --> get-ptr this --> .count --> get type ; : compare ( 2string 2:this -- n ) --> get 2swap --> get 2swap compare ; : hashcode ( 2:this -- hashcode ) --> get hash ; : free ( 2:this -- ) 2dup --> free-buf object => free ; end-class c-string subclass c-hashstring c-2byte obj: .hashcode : set-hashcode { 2:this -- } this --> super --> hashcode this --> .hashcode --> set ; : get-hashcode ( 2:this -- hashcode ) --> .hashcode --> get ; : set ( c-addr u 2:this -- ) 2swap 2over --> super --> set --> set-hashcode ; : cat ( c-addr u 2:this -- ) 2swap 2over --> super --> cat --> set-hashcode ; end-class previous definitions [endif] S" FICL_PLATFORM_OS" ENVIRONMENT? drop S" WIN32" compare-insensitive 0= [if] : GetProcAddress ( name-addr name-u hmodule -- address ) 3 \ argumentCount 0 \ floatArgumentBitfield 2 \ cstringArgumentBitfield (get-proc-address) \ functionAddress [ multicall-calltype-function multicall-returntype-integer or literal \ flags ] multicall ; : LoadLibrary ( name-addr name-u -- hmodule ) 2 \ argumentCount 0 \ floatArgumentBitfield 1 \ cstringArgumentBitfield [ S" LoadLibraryA" kernel32.dll GetProcAddress literal \ functionAddress multicall-calltype-function multicall-returntype-integer or literal \ flags ] multicall ; : FreeLibrary ( hmodule -- success ) 1 \ argumentCount 0 \ floatArgumentBitfield 0 \ cstringArgumentBitfield [ S" FreeLibrary" kernel32.dll GetProcAddress literal \ functionAddress multicall-calltype-function multicall-returntype-integer or literal \ flags ] multicall ; : DebugBreak ( -- ) 0 \ argumentCount 0 \ floatArgumentBitfield 0 \ cstringArgumentBitfield [ S" DebugBreak" kernel32.dll GetProcAddress literal \ functionAddress multicall-calltype-function multicall-returntype-void or literal \ flags ] multicall ; : OutputDebugString ( addr u -- ) 2 \ argumentCount 0 \ floatArgumentBitfield 1 \ cstringArgumentBitfield [ S" OutputDebugStringA" kernel32.dll GetProcAddress literal \ functionAddress multicall-calltype-function multicall-returntype-void or literal \ flags ] multicall ; : GetTickCount ( -- ticks ) 0 \ argumentCount 0 \ floatArgumentBitfield 0 \ cstringArgumentBitfield [ S" GetTickCount" kernel32.dll GetProcAddress literal \ functionAddress multicall-calltype-function multicall-returntype-integer or literal \ flags ] multicall ; S" user32.dll" LoadLibrary constant user32.dll : MessageBox ( flags title-addr title-u body-addr body-u hwnd -- button ) 6 \ argumentCount 0 \ floatArgumentBitfield [ 2 8 or literal \ cstringArgumentBitfield S" MessageBoxA" user32.dll GetProcAddress literal \ functionAddress multicall-calltype-function multicall-returntype-integer or literal \ flags ] multicall ; 0x00000000 constant MB_OK 0x00000001 constant MB_OKCANCEL 0x00000002 constant MB_ABORTRETRYIGNORE 0x00000003 constant MB_YESNOCANCEL 0x00000004 constant MB_YESNO 0x00000005 constant MB_RETRYCANCEL 0x00000010 constant MB_ICONHAND 0x00000020 constant MB_ICONQUESTION 0x00000030 constant MB_ICONEXCLAMATION 0x00000040 constant MB_ICONASTERISK 0x00000080 constant MB_USERICON 0x00000000 constant MB_DEFBUTTON1 0x00000100 constant MB_DEFBUTTON2 0x00000200 constant MB_DEFBUTTON3 0x00000300 constant MB_DEFBUTTON4 0x00000000 constant MB_APPLMODAL 0x00001000 constant MB_SYSTEMMODAL 0x00002000 constant MB_TASKMODAL 0x00004000 constant MB_HELP 0x00008000 constant MB_NOFOCUS 0x00010000 constant MB_SETFOREGROUND 0x00020000 constant MB_DEFAULT_DESKTOP_ONLY 0x00040000 constant MB_TOPMOST 0x00080000 constant MB_RIGHT 0x00100000 constant MB_RTLREADING MB_ICONEXCLAMATION constant MB_ICONWARNING MB_ICONHAND constant MB_ICONERROR MB_ICONASTERISK constant MB_ICONINFORMATION MB_ICONHAND constant MB_ICONSTOP 0x00200000 constant MB_SERVICE_NOTIFICATION 0x00040000 constant MB_SERVICE_NOTIFICATION 0x00040000 constant MB_SERVICE_NOTIFICATION_NT3X 0x0000000F constant MB_TYPEMASK 0x000000F0 constant MB_ICONMASK 0x00000F00 constant MB_DEFMASK 0x00003000 constant MB_MODEMASK 0x0000C000 constant MB_MISCMASK 1 constant IDOK 2 constant IDCANCEL 3 constant IDABORT 4 constant IDRETRY 5 constant IDIGNORE 6 constant IDYES 7 constant IDNO 8 constant IDCLOSE 9 constant IDHELP : output-debug-string OutputDebugString ; : debug-break DebugBreak ; : uaddr->cstring { addr u | cstring -- cstring } u 1+ allocate 0= if to cstring addr cstring u move 0 cstring u + c! cstring else 0 endif ; : callnativeFunction { functionAddress popStack -- } 0 \ floatArgumentBitfield 0 \ cstringArgumentBitfield functionAddress \ functionAddress [ multicall-calltype-function multicall-returntype-integer or multicall-reverse-arguments or literal ] multicall ; : callcfunction 1 callnativeFunction ; : callpascalfunction 0 callnativeFunction ; : vcall { argumentCount index -- } argumentCount 0x80000000 invert or \ cleaned-up argumentCount 0 \ cstringArgumentBitfield 0 \ cstringFlags index \ index argumentCount 0x80000000 and if multicall-returntype-integer else multicall-returntype-void endif [ multicall-calltype-virtual-method multicall-reverse-arguments or literal ] or multicall ; [endif] hide 0 constant zero : ?-- s" --" compare 0= ; : ?}} s" }}" compare 0= ; set-current : {{ 0 dup locals| nLocs locstate | begin parse-word ?dup 0= abort" Error: out of text without seeing }}" 2dup 2dup ?-- -rot ?}} or 0= while nLocs 1+ to nLocs repeat ?-- if 1 to locstate endif nLocs 0 do (local) loop locstate 1 = if begin parse-word 2dup ?}} 0= while postpone zero (local) repeat 2drop endif 0 0 (local) ; immediate compile-only previous S" FICL_WANT_FILE" ENVIRONMENT? drop [if] : r/o 1 ; : r/w 3 ; : w/o 2 ; : bin 8 or ; : included r/o bin open-file 0= if include-file else drop endif ; : include parse-word included ; [endif] targetleavedocolonoriginfallthroughcaseofx%  ]11223344556677889900--++ qqwweerrttyyuuiioopp[[]]\\``aassddffgghhjjkkll;;'' zzxxccvvbbnnmm,,..// !!@@##$$%%^^&&**(())__++ QQWWEERRTTYYUUIIOOPP{{}}||~~AASSDDFFGGHHJJKKLL::"" ZZXXCCVVBBNNMM<<>>?? hhhm8 jo6 $;;|E"hr8;<<      0 0$Gj 9Um  #"#(%&&()+,./0n23M56$89:V<=?s@A%CzDEGiHIJ?LMNO3QiRSTUWBXdYZ[\]^_`abcdefghimjJk$llmn_o#ppqUrss_tuuAvvlwwx yyz}zz]{{)|||9}}}~_~~~ 8b$Hm  6c"%0)k,/226|9<@yCF=JMQTX[(_b`f jmzqAuy|܀҄Ո3p K ܽg]\ s!(>07?HwP-Y-b}k"u!Dv>i D.A3U j%x#(KrG5t?^] 7Ͻ\m 6' Ɯ FZq&H({Qr(?BpBB3ͫ4m C-UTF-8C-UTF-8C-UTF-8C-UTF-8`C`ChChCpCpCxCxCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDD D D(D(D0D0D8D8D@D@DHDHDPDPDXDXD`D`DhDhDpDpDxDxDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEE E E(E(E0E0E8E8E@E@EHEHEPEPEXEXE`E`EhEhEpEpExExEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFF F F(F(F0F0F8F8F@F@FHFHFPFPFXFXF`F`FhFhFpFpFxFxFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGG G G(G(G0G0G8G8G@G@GHGHGPGPGXGXGMJJ45/)П)П)ПA|0p0// / Q/0D00/0S/PC`AAFFpG/u)/'xGFxGFp/ =/9xGFM/!<xGFQ /U=/)/,xGFHxGF xGF/@/E xGF7/=L#x+K+H##pGPC,B K+ H I Hh+K+GF,BTC0BGF   WI #@#C  I I [ @ FFGF GF@-CL<à̌<<0< @<à̌ 80< @<à̌ 40< @<à̌8#80< <0R  @0<<< 0 R3< ,/,z P05#7/zp-`QPD0O@ 0S0ѕ< 0Vp/z?0P/ P$057# P05 7#1/z@-@Q * 0 00"S T /O-1 !1 0.1C0b0:BSMp@&:, 000$000.+bP>TP 0t|00 Q AS/Ѝ@/,, 000 0X@e PlCpC80>, 0 P @< 000 /lC\1->,@ 00 S:C< 000>,00 `p Ƞ,P 0P BP6?0 S0:aPPcS `C < 000 ("( Q  0pQ *AU><0 ,@ 000D00 00@ BH 00C 00 /lC@-@@ 0L 5@ 000D 00 0H0 0C00@/lC5 @/p0p-Ph`@0-5 ! Ƞ,Ƞ= 010 @,$$T p/lC(C0 3/lC@-$AQ?A>00 P 3 2S @/CP 0S0 100ŠɌ0  $473# "("("4$3#078#82%9: 0: o0 ClCtCr%:  0://Q/0  0Q/x0à-`|0E9 P 0! .. Z[̌ 80C  /lC1- 0㸀000%000E0p)1|0i>!>000:;c30220>03222 0:_̠;c`5<5599_ 5ɠ0^@c1::0:]02P22 0]>00000>>04308#83043030:(. R 9 00#0,00帀/lC`0àp-̌`0E9 P 0! .. Z[p/lC5_<0%_, 5_<0%0_, \0/P/P59%3%08#8!8000/0@S81#81%381/P/%08#8008#80/P/%);8#8@038#8;/#80C 0#4/@-p\MP` 5* @ ;00 SS0 ڲ R`5* $Ѝ@/00 SS(@ 0 Q`Cr00-@:1 0 41D 0 :1 0  P $P $473# "*"*/P$ (0/lC@-@M 0  0 B @ 0n@Ѝ@/@-@M 0  0 B @ 0W@Ѝ@/p@-PM@ 00= 0000T0 `:1B9AB 0 T0000 00-ݍp@/p@-`M f2 R1 !0 05 `0P`PC` \0[C\ R `@ 0X0  \0S@00S 000  Q } 00S 00  P 00 00 R( ^ 00Q0`0 0`0B`AP00 Q P0E 0`Ѝp@/^`0 ^0`0BP`A lC-0$M R?00D 0  {$Ѝ/lC- $M000001i/ 0%290:1 0 $!D0 Q$Ѝ/lC/0/pC-M874404 $ Ѝ/dpC8-MЍ/O-AMM@  0 Q5099 Q :%5 0)9)9 c59 "!?  =R񟗗ꔢ̥̥ĥĥ@ĥĥĥĥ0@S@00480 8=̍+4RDύ ЍۍO/ˍ0 S=048_0 < 4RD 0R 0R :R 0R 0R1SAT1S2SA 0 Sp1|#0480 4%ᴄ3""4  S ( , 含0"($"( P  $ * $5:\ 0\ 08#P*A 0("(S0\CS!hT  06 08#8 D("4 P Q 0Y^ 0A 8Q#B0 RR RR B08#8S:0A΍0C20@S@0048_0 9 +4RD 0R 0R,:R  0R 0R^% 01Q   0SS Qʸ2S 2S 0"2A03S0R P$ A0?C000ɠ8#8@ P 0g0e10N?  [P U qb0g0eAJ?0 R 4R 4R 00Q0HPp7, 0\9 .0ZN/<0K Z000 P; 0g0e1.⺐( > 0 (0($^)  0-1-! R 0-10g0e10-! J $0@A 00S B/08 #Ƞ R 0g0e100B?  2 S 0g0e1- 0\Q!QP UoQ[ 8#hşq0g0fAQP`%PJ?000,S.0, (00 0(00NπZ0<  Z000 Z 0g0f1$>\㺐* A 0#S-!-1 S 0-10g0f10-! J $@A00S B/08 #R 0g0f100B?   2RgfQ/  00O1O! N!N10M1M- 00K1K! J!J10I10g0f1-ύ 0PQ!Q9\yw0g0e1I!R Q/  00O1O! N!N10M1M-   00K1K! J!J10I1 0 I0\IQ?$0 0g0e10N?  000 0R3 0R/,:Rύ( 0R$ 0R 30$ x!21C0a10 000  101::0 00+*0 000  0Q 0x X0"P"@0 0P333080#8330QQ5)5#%08#88000*":2*"=;=! " 3@029 ><0>, 303%?8#8 <0""2S 5* Ѝ@Ѝ@/ Z 3308#83020"R 4 02@2Sà̌0%509  *+P2S02?< 0b8S/("(< 208#82p P 21C0`1N0  <10<1@BDG+IIKiMOQSU%XQZ~\^`cIecik5nuprtBwy{!~pF)>Tl%Cb+Ot9c@n/aޔ1gڝ E~ֹ/kӨ$cУ%fͩ0uʺFȍgűGÓ,zɿg SQU^mȱ$ޯ;Xzܪ>iΧ3fͤ5pڡEvН=oRŘ8 lZҒKđ=2(!'/:G΂U݁ew~*~}B}|[|{v{{z"zyAyxaxwwwvvu`utttsGsrsr rq7qpfpoo0ondnmm3mljllk?kjzjjiTihh2hgrggfTfeeFz  P t A)\f4 !#&Q(*A-/259h<@CGLPnUZ_ek rx8Eܪɿ0E9Zp0BU j`$Cr>`p",]H<g}) V(DY( y Q OP Pt A([e>84;v(dRA}OO)x>  !"$%&')*+,-./01234567889:;;<<==>>>???@@@@@@@@@@@???>>>==<<;;:98876543210/.-,+*)'&%$"!  p- VP!0`U P:A$Vʄ R0+p/-$ppP0<' 80Q /          /CLLL17o9L@-@< ,$ /' , 8?0"<$5S " $S " $S " $", /@- M |& ,@0" $@TT", ЍTP@/<P0 &/ &/)P/D)/@-eppW\|B$ % T| 0;DEFGKRY`gnu7;?pW@/pG% T%T%T%,T%,T$/pG% T%T%TQ/pG% T%T%T$////pG% Tp/pG% T%TT/pG% T%T8/pG% T%T/pG% T%T/pG% T%T/pG% T%T/ pG% T%T%T%T %T%,T%,T%<T$%<T\/pG% TL/pG% T%T%,T%<T$, B-  ЍcpG% T%T%T"/pG% T%T%T"/pG% T%T%T%,T"/pG% T%T%T%,TT"/pG% T%T%TQ,"/Q$"/ pG% T%T%T%T %T%,T%,T%,T%,T%<T$-  Ѝ//pGM% T%T%<'T"0%%<'T"0%%<'T"0%%<'T"0%pG"%<T0%<T 0pG%<'T" 0%%<'T" 0%pG"%<T 0%<T 0pG%<'T"0%pG" HЍpG% T/pG% T//pNhNhML L(r9!IO-ImceuQ  o    =   q_ @-h @ 0S BB10CS00  $0S0S00CS00@T@@- P@/K;0 {[*0*@P@/[{Q  !@0*@P@/O- ˟{ PR \㪠E:d`A d+:@T 0S@ÄCC R ! 0S00S!@0C@8PU!B@A0@  MA@ Q ` ⪠*O/ 娹㪠 :d  :   -@DH@ ⪠* QO/K/\-PTTp@`Q `FP0P& d` Q$$!);0T : P @@@V @`VED@V@dq Q$!)"0T : P @@@V @`VFD@V@ P-JK !!I$̠ LK !!I$̠ L K !!I$̠ LK !!I$̠ L K !!I$̠ L$K !!I$̠ L (K !!I$̠ L4K !!I$̠ L 8`VZ` K !!I$̠ L`VPE$K@EED P-T$EP!- W- $@`V `VJ$@$@ $@$@ $%@$@ ($$5@$@ 84`VZ`g $@`V`K ЀѐI$̠ KP"`VP ЀѐKTPE21`V:JK !ѐ!I$̠ K !ѐ!I$  K !ѐ!I$̠ K !ѐ!I$!K !ѐ!I$̠ $K !ѐ!I$+",K !ѐ!I$̠ 4K !ѐ!I$;#<`VZ` K !ѐ!I$̠ `VPE$K@EEE \-` 0 `V0R 0R S @-@`F@-`/1 ("& 0/ጱM dQ d- @  X;*T 0S@ÄCC R ! 0S00S!@0C@ @PU!B@A0  0 X*K Q ` $ ∀ X*tNqCqVtpqtPD岐@ @O/@-, $7!O!Q!fzᡉYȟ丟岰 嫰:  )`( p`Xpw@0P5 P R(ࠃdR ^ F`F@-`  Q!*0T : P @@@p@wED@V @2R'ࠃdR ^ `F@-`< Q$!*"Q0T : P @@@p@CFD@V @⫰t*6& R0}Ji*@$HFpH K[{f(n  \|fᲰI K[{f)n  \|fᲰP  " \-X@$ED-`V-J$@..$@..$@.."$@..2$@..$@..$@..Œ`VZ` $@..`VJ$@..E\-Xh$ED⁠-`V4J$@..$@..$@.."$@..2$@..$@..$@..Œ`VZ` $@..`V J$@..E0P: P @ 7" P @ 7"P@ 8"P@ 8"P@ 9"P@ 9"P@ :"P@ :"P@ ;"P@ ;"P@ <"P@ <"P@ 0"P@ @0"P@ 0"P@ 0"P@ 0"P@ 0"P@ 0"P@ 0"P/"PCJF{F"`x#CppG{Fh ~KSYC |JBpG{F烈KC33 vJBpG{F!`pG{FhpG{FpG{FIx CppG 0gL% FFFF`H !#`09`HTI "I`B```0IYI h#@ OIVJ#:UIp( /!QHQHQI` "'FAL%0GAI hFKC `pG=H0I "I`0IpG>H*I hC C `7O!9`4H/H"I 6J'K6L%&I<80I!L%%p*L.H8<`0%H+I"Kp ` aJJJJ`'JJa'J p"`a%J&K a `J:!A#I`#HHh"CJC`0CUStO<tPqtNXqd`4R`yHx)pG!p GHx)pG!p 2GH"K$I1 I 1I I pG|I x)pG0lF%  xIg( Ӡ{! )!ssIh`h`Ӡh`h!@`` nIJiIh`haӠhdIdJ x#Cp p( x#Cp( p 1h Px#CPp p Px#CPp( p#UJ!h p# Qp#! p#( Qp#+&HH0GpRChK`RRC[B R Ӄ?L f]65e]@3C RӃ{pp9Hx(pG8H! C1I x*"CJx*"C/IpG %J#K@Ӏ!xCpxCp 3Ӏ!PxCPpxCpH!pG0JKL$!@xCpxCp%-C 3@xCpUxCUp%C H H!p0pGq@(qq0qpN0(pGq`` 0w |M-5` (`!| @I!| @OH!h @@p`h !{qwI@))@@10qh"8Ѡh` 0p }(  wpHC I8QphqIs0(у  IB  C(`pGpL (pG( hJ@չI@ࠊ!@a "@cZC!(ኈB-hbhI-pGpLO-pBP`嶁ẑ  HUPE0pPO W W05 W 0PA0 r娀P!*Ḡ*Რ30P-0q  *ȋ  *P0P0!"Ƞ ሰȠ+Ȍ'*Ƞ ሰ Ƞ+ȌPUO/7K( wwh4H  @ MG-L``acw [0 10H!``ehE`fvBaJ*`'&J`I y!"`!aamEaaJaVH!bS[CpRt`h!9"BTRG0>I"H`@ a `0 )0Gqq@@ !J29ѲJ`pGHh!@1)!pG!JhFGp-%- ) 9H@\((( КHx1p  C-- I~(K-ЏIj#@RB p* JpI hC `I h"BC" t-""Jt"uI"BC!h уHhAX  1H `IAC !`azI1p!zzHhACڀ `(pG pG ) ) pJSZ  B;pG#CpG!_J@R!@@]JhC`pG`HhACGGG!YCJJhR!Qt!t8! G G !YC;JhR!Qt8GG  2I`pG(L$h&N%dw]? 8!&Hh!yC@!At!t5dGpL$hN%dp]8I"BC hI h"BC HtupU5d5d$%-N0x6(,Cm$ H`pr(r,rLtNCrr Jh+0( @BGF Jh+0( @BGFKh+Kh+ @BG  FI" 3I "GF 0;K@#@#BbИB#BIИB#B0А#B(#[B@ИB݀#B'#B %K%J"p#B0G(K  hJ@ ` h*C `J hI @`J H) J hI C` J  h"C ` h+C `K I @F𵍰: X:EKBDKBDKBHCKBb!IB N G%>K, h+a5-%5-6K,3h+4K{h`3K;2K{`1K1HN ;|{{||+4р!I+KCCbC C3`)'Jh+0&Jh+$% KzyCyC `KyH! ){hxhK#x!! KzyCyC;y$%4567  EKP`` !}G8p ) &#\ RR3@"T0BpGFJi3apGF_FVFMFDF𴅰ILs#F#p0 w##p0 JFxt#v"&F'F SF#C;p0 {CFC$$CFSF#Jd!]DIBJK!IK$NDcKaEKINK KK"  $ +#B%mDF/F!#3FF"^"eFS^[k@BS*&D#,mF5L5#FFFfF!t^bFUFk ^BFxs@B *S^cs@B S*k-[D[!CF#pk-SF3$DFeE3x+$:_!{^["CF KHF @I?K ?K"  $ +#B8J#:$ +#B.I1K /K"  $ +#B*Kx+ )K" C0G$KY IK K"  $ {+#BJ#:$ l+#B IK K"  $ [+#BKY  Yr6_FVFMFDFFHx+UѠLb#\F\#\^#\_#\X#6C\Y#\CIFF.K`c#\F]#\`#\a#\Z#-C\[#\SF$CX)FD2zCK`DKF-*BCDPF~I[ `|I[ `# pzK"F(!]F(uLhFRFYF0J%"pFpH#^#xJF)mF E[iK OXa+ KYFFIxYa+&@B(J F@FJB>OXa+fxYa+&@BXF( bFKF`*-K"%F F@F`ZLXI @B%  @X @0Bр#[.=`- K"G.=`-K" @ @ FprD|KhpGF|r_FVFMFDFI hKFJh#hHFYJ#FFhNFX\F@E\E'KPkPzrXK@ZF@CsP`FF JQF BѻIKF `BFhC1`F$dB`cF`H`I`#` hF+`# ``I# hC# `JNFhcF`3FXFM՞K@#CXBF@`CEK_Y/,cF hAF @P`IF h+; `+ыK"KYYKFh*цKShHF`cсJ#HF` ` `ZLXI @B   @X @0B.=`- K"G.=`-K"  pr|WFFF0JhFF-.K.IhkbFF`CC+LZ+KF `B3)O9hK (KPsRFPbX%K@!J@CcPCF8`+bF`-K" FFGKPsRFPK`CF8`+ #O[B `9hKBF*cF`-K" prD|T Kh3XBXApGЅWFFF*O`Z$8(LXI @B  @X @B8(.=`- K"CCG.=`-K" prD|GF[F ,* -O:h*S;`h(;h+;;`+K" FGK@F,$4Bd;h+;;`+K"  prp-)[.ыlF"P.Ѓ\T2B K@1+CjF* pGF(KB K @C#C!"rG#C!f F( K @#B G#CK @C!"DF?_FVFMFDF TJF[F"`RK`RK"RB`QK`QKRL`RKFRL`RKFRLFRKROSNSM!F TFKFbPDFZPcdF`c`{`s`k`c1`@)GN GL1"%@2#@M` `1B@K"P?K@J!?L;?H%&F;K2@3@B"S1@ ;*# -#bFB3B<,.K LJ#![B!`K`K`##GFK! C  K! C CK ! C KhC`G K I @K I @CKI @JhC`G J$42,hBIKSPG<pGpGpGpGpGpG pG pG ``pG pG pG pGpGpGpGpGpGpGpGpGFFF32O @-"  P   @Q   )@-/32@000) @i0 I" HBKJ# " IB K J + " BK#@0GF$L"#"MB!K+!K","#BJL"#BJL"#B#@KH"B.M LOr &.*'#B+ p*1:K"G)AL@F#")IB(@BB,$$BҁB BҁBI[B@CLB\"CB"CB"C(  dF,@BpG GBCGFpGFGFGFGFGF GF(GF0GF8GF@GFHGFPGFXGF`GFhGFpGFp K J.$45BwpG,B(BpKJ.$4B K J.$4 BpG$B$B(B$BGF*3;C )"\T2B8G29(h `ShK`h`h8`21(+; 2Y)"XP2+ 2YFFpG;Zx0NmсFHJL "TD02@B8$(P T*(v?