From ca69ca50054a3d78aad733bef85874e19e58d0a2 Mon Sep 17 00:00:00 2001 From: ckcz123 Date: Sat, 30 Nov 2019 11:47:58 +0800 Subject: [PATCH] v265 --- _server/editor.js | 10 ++++++++++ _server/editor_blockly.js | 12 +++++++++++- _server/editor_file_unsorted.js | 27 ++++++++++++++++++++++++--- libs/events.js | 9 ++++++++- project/icons.js | 3 +-- project/images/npc48.png | Bin 9560 -> 5556 bytes project/maps.js | 9 ++++----- 7 files changed, 58 insertions(+), 12 deletions(-) mode change 100644 => 100755 project/images/npc48.png diff --git a/_server/editor.js b/_server/editor.js index 54b24e35..252b8e4b 100644 --- a/_server/editor.js +++ b/_server/editor.js @@ -608,6 +608,16 @@ editor.prototype.addUsedFlags = function (s) { s.replace(/flag:([a-zA-Z0-9_\u4E00-\u9FCC]+)/g, function (s0, s1) { editor.used_flags[s1] = true; return s0; }); + s.replace(/flags\.([a-zA-Z_]\w*)/g, function (s0, s1) { + editor.used_flags[s1] = true; return s0; + }); + if (window.flags) { + for (var s in editor.used_flags) { + if (!(s in window.flags)) { + window.flags[s] = null; + } + } + } } editor.prototype.listen = function () { diff --git a/_server/editor_blockly.js b/_server/editor_blockly.js index 4b607d10..29630e30 100644 --- a/_server/editor_blockly.js +++ b/_server/editor_blockly.js @@ -687,7 +687,7 @@ function omitedcheckUpdateFunction(event) { var previewBlock = function (b) { var types = [ "previewUI_s", "clearMap_s", "clearMap_1_s", "setAttribute_s", "fillText_s", - "fillBoldText_s", "drawTextContent_s", "fillRect_s", "strokeRect_s", "drawLine_s", + "fillBoldText_s", "fillRect_s", "strokeRect_s", "drawLine_s", "drawArrow_s", "fillPolygon_s", "strokePolygon_s", "fillCircle_s", "strokeCircle_s", "drawImage_s", "drawImage_1_s", "drawIcon_s", "drawBackground_s", "drawSelector_s", "drawSelector_1_s" ]; @@ -965,6 +965,16 @@ function omitedcheckUpdateFunction(event) { } } + // 提供 flags.xxx 补全 + index = content.lastIndexOf("flags."); + if (index >= 0) { + var token = content.substring(index+6); + return Object.keys(editor.used_flags || {}).filter(function (one) { + return one != token && one.startsWith(token) + && /^[a-zA-Z_]\w*$/.test(one); + }).sort(); + } + return []; } diff --git a/_server/editor_file_unsorted.js b/_server/editor_file_unsorted.js index 42509f14..c11bd4d8 100644 --- a/_server/editor_file_unsorted.js +++ b/_server/editor_file_unsorted.js @@ -146,11 +146,15 @@ editor_file = function (editor, callback) { var templateActions = []; var image = info.images; + var bindFaceIds = false; if (image=='autotile') { callback('不能对自动元件进行自动注册!'); return; } + if (image=='npc48' && confirm("你想绑定npc48的朝向么?\n如果是,则会连续四个一组的对npc48的faceIds进行自动绑定。")) { + bindFaceIds = true; + } var c=image.toUpperCase().charAt(0); // terrains id @@ -162,15 +166,20 @@ editor_file = function (editor, callback) { var allIds = []; editor.ids.forEach(function (v) { if (v.images==image) { - allIds[v.y]=true; + allIds[v.y]=v; } }) var per_height = image.endsWith('48')?48:32; + var faceIds = []; // down, left, right, up + var idnum=300; for (var y=0; y}}OGxjaUE<0n*nvj%zPqva|of*XtMp+w~A!LcDD6&nGtwo}c zZR~rYxUS=m8UCd?BFh46NI{+X~nxUHl036a8cntu!jQ{}Fy#WB- zA^<=j;*r-!3jlx#;Arb?o@p7`z;_o9jrwF+c9qK_lG}&ALN7_GK>24}vkbIWzdY7X zug;hbb7}DKsE&`v*ayA;JUVIa?H!!sF0OJKVZmn;B;k)$DQb1l)a0Vm_og~fZu(IA z#@94|?Z;78^#0<$tl(=}G6@%ru(rCjQNF9CS=|qkLoJQzbo$QD&cMJxZEY5IE*v$Xh|4!h)eF9n@ZDou#)T5p3FEPCCKWu;~LPs`ZIBTTUm0JJ+ zJM>=w0`N}+0e~~J)@CNovA?#ih58l0$J*xZMX}F`d5fyKaZ+ z8^)J9H^o&MHWj1UCW(Ie_@PG4$&%lnWD6Jv5}qVEy+E-R5hEM3slFfy(khsfH$z8J^w8|>hAkY~Aj#d_Q-(z&4R@`wddiu5=eNNGgsw~q;AEhdtbpJ*YW>({ z@Wn2>wP&cRHMWivOe-OcwA-Iqm(?Jw;P?cyx}XpMdzZm|HO}t4jrs=e-clzPfGXw) zZkqjT$LdO512=D_lMBZ8ZV9mot#9VA*5u{=|1h2$Q~d1OT+Y0-?UEm}#e(bsM^L@t z(&S_@&6%nsri2hqmW1Va%iDok%|LT<-|BbdX2j5rfuFkQN%4tCN8151^&;smrIY3? zhMVLtkV%o)%=$u3Dq6Fr9#jTt1E=nSu>2;0V9YK2+0}k0|JRTvHt@)sG#jwToj?!RP7n;fKTT&c=|r=CNz0_y<%1EX} zSw_&gQZ3hO156LU?-85wE!F24uYFNC)NMn_nz!`v*BlFJ>t|ywX=wN5LYnZx_~3Sr ztYCbiPmxM~XV%btRAEOz5H-`S-jyQ%mGbuTZ7KvLzeMlX46m-Q7Qw|gel^1Suz?PC zYgj3-c{7IsF4lRvnqMRgmq#ya?{wM^nR}W&cj+`^nfV2tisg>|z^%OZL&21AtM-^5 zz4m!;EXa#**v46o-oD>4(e#jXkjN|d6w8)ZNhnLqMX`I$&8mA8m?1LQxXpU?fXT~t z$1R`vG?5DVg)fc%3VRsuwK!wrW$YX5;_US`Ra+k4b-})ca8L78xgCzI@lq-k?5gnK z3)Bd4PMX`{)|tqKFA$1?Op62OCw}0dSH8~MrS+wyfcws$UcGzMq9zyh=hpQ`g@u-Q zHiofSKc>qv54Z0avR5;m=~iq?uV$ZCIUy}EFX5gFGL2`o?Nkf)MRRtvmnyct60;4S z!g~2zX}N2#=Ap{I`8)+YKxZv1wxmkNt_;(!X0GW+p;Am^!ojrWZ1U zf6g0)%qT`uR;c%-$;FeOh3$2CeL00ZA=Hgo*39FkS2FSZSfqT1k!TL^zZCHEtBCmkpj|hte@l| zHC+G9xMRjy2V=~X#US;57ew>4d^|5gTP$pyS08=ubVU8{%nYEBEv_7k-1M-c!P6~|9t--9)a33{^OJ2QnFUxxOJXc$7Gr2=}EaHH?-ne zHk!qfa!ZyXuQ8;P&#t7}?9#JRirEgp1&q)#F zP!OhcmH@i)VWlkJyM@7!z08*tyY>(3mT7+4ULTu&##@8(oW*D?8ya@Ty-YQPm^4=g4jV+%-=iqZct-K@gce3SQH+vS=QA+l(L-u?V; z&0E;-TeDOG;zy_Llr^zBTl8}J+#pDo^n_zV(XH~{#KnerPLl$_i(F@@6QLD61}c;1 z9`~T}7;1w1JA5sS73){J^%L&jT7IC(M>^ZX+sMf&;JJZ^@G+Q9 z%4rh1iVNrqnPuX*eFG}TZtkmChf?xPUST82S;6+CH?~8c^&mVU_bySGGX&QcQzNc1 zN#`YC(;I~e3)`Vrmr|T+crtx4v{}F6IhZE|$sNcxF(&vSr~m*CW@rok~|y2K*-oQv0X{u)w{X| z{;z|wjoUMv!(Ub3{Ne$=R8IZCEk`5@!EXZ`z#Jww&uMrPA0MGItb>Sgi#l@4VUCMC zupGGi@{Or<9M+p4^0s^tVjP02#yap_XzRp(C1=7oJDn$@1UjE0ULePn^U~k|8@6-7 zIjf-}NZ7Ln9G#DS9Mud&d!T3m3FDv;t#e@@S&C5fV?q7$p8`=$83S4ya571HSiF=0 z=c!$nj6}5)K;KBDu3UkPWrMQb25ba<+=7Cz-J=vjZSXt0w@gTMLGn6DNtvUbd(qY{1 z?2wy_FEDT#U-0-}ZsT;Y$N0;b6d?eTjFl-lh@l8~L>z@Rz^ozwxKNx@F@mk)y}&bY5}*4G+g`Q{c4luGy_k za)sg{*JHIiS4)Q+1xd0!03^byRPEMp(fL|Y4c@q28GlK7^-?m#R$*h~7DZ%Dtk2=s zj=N)@YVE)IO=abeo4RZ3H`pxE7b(^@pW4JK>eF!if@#F)56@TwAmU00o>^EVwLcWmw>4=$(rdLw6VrA`xXu~B()ctSDz)g1yCf8^YAF6|aM3+F6@U8= zOCiX|0m#z%CQAon2ZBpOxQg!Kf~*QqFwhMk%gkrxAXcpgV1NI&o9gPouDu^(WS9ms z*o$%ZoWzs=SIRsq@^J2~a4{wMYBbs&>|YtEK;qIk}$pHz75%K0N5P?@N^Q8di8ENYIq z{=)bJ=ZYGMQ(9<2HCX}{r;XB#&T?o}o!0AHZkiNW(M zBXdkl&f`=7ct6PMScBQfeL}%oG})5bPr!KnHG9iW4kha%VD=+-6Qq=B$WSiMA}fH$ z@pwfLTCAy%HwEBWxG3({<(LuZIV=5Wpo6J$csOgy6T#|8s(P)zS1zvy_&`|^GDK_S z`TL1D^P^)u6jHvxCXa4}VonNt1g-WIrfn!7%)21y?DF_)GW-@mm7t?T^(Y zNj=15a?`oV^*+nFu<+In%nTi^N`vs5bugkZK`4giaJ2g z0Z{pw@1BXIPlzM0eK%kYtEUIkn*o?7_kC#dsx++Q3Of!39XJS9bmlDxuC zG|`0CCBBN7XxQ)+#Lrq9(?@-7H^j{`*B}`wwcWfHWBY6Nino^IDf?8JW+S1|jI^E0 zAUDZj&xT)wDSNN=rsZD8pUNg`b-o7+4R-yPP*FKM;HIA?6ZEkBPL+K=TE{?k^bz6A zx4>*W@o4X9lt}VfAh+>x#ZaSQBl{xx9lGHcr;N?(Vew`f7x0tHYT>W0WdZ#RV$-&( z!1=^$jPOx#P5dNnwBN9K*2P;i>ARD#3Wf@me51#n*`vKgjr)^`fE{o#GL;Cc=D?qE zS!uPRhX0m1_T*PrxXN~^=OE&W2>xWr9B6%2sbOOjE}wMqU$M6kc`700DUR{typdgG zR9Ca^)G!(tq_X^e{yoTV_s(N`dCe+SwFUnP;8zCCS;o^hzaDyS^GmoWqcjr%^XGX- zS^F8#bpADDCKa3dVCVY{pDo!@<;I+!lRIZ<-7}{l+JodrsF^xfU@L-|Kau%btjV{J z`DDx_x4gz1wQwl>?o|$8j|wX&zPXTHrQ19bj?%G2Wp>=Z!ks3?{yqzpz98HD@}NSv zcZ3DL4oxsw&bBj7)j{Sl7p_X=X#s(!G|}g^O;5May=~cj4Uvjp2T7A~%L?c8abc5Dev3cH|n4Z_ALS$ z@yJVtoH({1fu8wY+50B&IvgNP8$$cNF&X_6K zsZ-qYdFY9YS-h#{!7riSa^Mz(uj88FcW%c)5%i}d)0b-!yST|CR(PS;kKw|1XrjG{ zZy~$GUPx6)uYt(lpA8V@k0&46KFW)x$61k@1N-#P*%sv-Ov_w8**xQ zw54BVO76j{ssn*h6Di7VYsVe1AtzAq&emDtwb-Uk9>jEi7|35IVVS6refMjfBMf9C zocKqyh?zq)1jHD2a32*cK`*?JICnUG! zw$*R%DS~0@esS+;hkLSmAo~PRMO|(q*!V_}mPYpw=Qa!Zo8#17gPC;M(tr7HnsU$V zL)BC^1#|rxH~7j+V)tBY7<^@Rfpvixa5ek!^>(P&^Aqd%c${*$TS$Jk9# pt}V;OMvl%`;t%r|aPB8YC)r<_RGX$4e?9&HVI=bYTveeTbF&bhzW?|0>qjnxIQgK`G}0D#z~ zi|4QNz6rc-Nm!8g*{0yL{{s+v{lYmwDMew1cfgM_yJiLel&6U7+!Ej&9|*YUgarV^ zzwd9rR{wXm0f6K4m(H8r2z8y$^L^)w{->4Nzw{AuN)UXXK%xA5m~H!j5a?qu~A~Y zj?Fjh&&8TxyMn0BAVKP&%--Hc%H~{UKRjeU(*Ne1hx9jE#P+WL=F-2rf4+^_!ICMB z6npZ^sO?8l)ng=y*1K^*w}+w5y^}Cw?h}=D-KemCb{z0?2EmkFmMdq_;PK<0(hOFc z7Sp+_tp@ehtubRsWpOB0V}}NIPYh}6e|M`mxpx(H-Ljoclw{H?TrCn0D6w6yK|{C? zU6zgb*Mzes=hA)`5;gEdc{K_NRjXA$F#Bw0)~%opSK>A5wl_5r<~g#VD0UaqHz5Ze zrLT=tM*_fl(bZK^zt04}%9r5007p*CZUZPc_eudU5l=tcPL;iGz5E!VQxLK}PZ^$A)lmV*T zqU2-!jy9ITmpksPijG0Cuu(7M5zrSt)}}KUpn-;7;8vY-wJkAhBDQ8Rbsu9Oqh2{s zqzNFf*{4e>nA;2hY^=`@K0Gw4RuJ(C;KpqonakDN&Xv4SBOuV@lb%zq=e7-WAI~e= z4HUu1*I!9E9|Q`ZU_na+=iBaHyCg7xsln?~hI)fLC)A?@A`CXQb%^qjmy?tru5D$z z6^RQNt6W^Xe*H;BHh>1M9B`*T0PW z15&$HkE|;dmh2XEB>G80pJnQ8j`C0XbewBKeHI+5?F4gFq}{J@T>-N~g^a4W47}xp zEGRHveRpwhF0WajHfj%_rTVolat>>yfW=B1j2WpJNc!+w-NToLt8+58IvjR`tXhBu zZqfEi&k^@zvD6pFkPPbbogVRr*cA?m>$WB!X zuJZ+ca$2$9A_2T5;(5yIuiS3`ud^NOEh8WcB(-m|YU2@%eme$tI~*`+t_0@wY{qf0qOHMRy`*(L;^~LU=X=vzi?B;XceNzRLigecWL7_ zv-Y)ASJxe1P^KOK@zh^{_5mhc@T{7W!jhvRDXF~tM^R#H=>xJ1=k>5NzP zrA$RA-1Lrxu&UJNIu^h8gM#V8H>xejlmAd5ujpD9jK)M%0d}0ImSPf+h&pYXwn2qPB# zRBn)n|A#D4a#C|vzh0X)HXuj8Y9_OW@!$-ne2ppc{7ZI$VNHpm=2-15C#mQ7k#xt9 z6s$=1vw__WTvYSl4V(OgBDIH}RuKf0tZSTD$nJqKJ2!gnr_ZKfi}!;U;S z^)Xvlb^lfkfc>R9eBHf2Hg97?>fp*v z6<8uGQe;L`aboPd5MIKycX^Cua22|8amM5AOLAW(ZbqnPE+le8uD(W6vkQFg;8=l) zY@{-8F^hN=te5jqGHSkfvlVQ)^E{*$#CyJfzP4QZaRuR6*2_7U{Bdq>v&^%k;^Mrw zp7cxXQ79yBWSz|nnkvIBcMcjQ^k~H?-hYsT`$;~zNb&ykb@{)ho?!=I3 zjqBesvwK44>YnYvw(K~r_7?*l-@2xfSZw0i6(y3=Q|fgzf@X&5x>9iMm+I>T-x36? z@u!IOkkD-6(>g)mOAXUBsm8mK0ewvuydBaFj9u0Qh)aIFaW=P(Rlb?)kr<1-);Kpe z^WTL>w{+ei&0~u_%;nbloL-fBu)l;!s6-|q9nx`<@swkgMeWTO@^@(ILFd~}>%Us2 zZB=$6ImgazWjE@`TB(?$(*E@7STm5@eDBn;KaB4md0&)S6X>-dJcHI#!REk&`v&W~ z+%TP(;Y5qJ)4`{=^j1F{h39U5s3D+I<~=-7wVEs4#7d>Q4BRqJOF#Ha#(OTUhR5k< zt&BN=l-k7)>rf*RVjJ3kM9 zK=)^AwfeBPyG_y`N4Q_)01|^$B9xC8{ELs~r&Qfjx)dx@x^f>I!v;#K^*2KIr@9I%S)B1}(!f!5wI= z&HP7O39=fO=A*sb=_$uI-%B--SsXYgBr-0$UgmSNW5?j(e)fy688AR+CbpNX8-t`k zOtugjZRG6EKYOX{p>%Sd}hx7okRP)P_9z0lAAG zpK(iXF{CcbwjPW2=+^i=g@zM+zzMsZ*1I>juYtqLmi01!5f|}#n_>4;Ruuf}#Dq6$ zEo;R4a)kgRDqw&ryuU2pbGFLwV=@kykmf!{KV6)-W2Dm<{}P$q4WLB zEH_cusMC`DH18Jftc`siNk-d+I4W?+l<%kT+t2g zo6zCEmjcH*Pebs_4mY_|=;41_{tQuMVQY0Gg9l3c4f7)cGVlU~F$YPsp?8Rq>%=pCx54WO zOT{&$dEW_#d6FRHMXe}p#%q6;`wl5*mRFWeJc9!;Qhabe-%#{TH^OT=t#3;^@MnX| zO=yJoGep@~m-KVOHN86jQ;LBWB<5aWvhI+Hz?tEQ^?I?#wU!#mj^_yvR4GEk&fg2~ zVre3@OT5)ad-MMNUg`Syn`Ky7W#{-w8P85Wjf+1I_l5`gw21J+iv1afevSvj`yz5{ zN%X!m(lRA-t2GX-UNz5Y=q4{w%!~k54>b&HB>`$yx4q6j=i~@@!ui|W){9a9hGZT- z)pHI*dE`lT@wJi|*?9>$v-}n2^xRd%AQ^_v{C=(23!d59<1f~ioZo4Orfm0}&$mK= z!pIVx#+P~G7#K z{m_>MUwa9PkkO~`HgfDYnFCPe;=lUB2HNwf?W%4XeOQhDfC*qv7x-uX1Y673l;Neh zP`)ZzfEH3)2|eJqI`$Qk9}dh2K)CBGVK%$sZ=0hg1)9wI#-F_{{SIw$6{B4yS8gw% ztvEU%*1LI|hxwsh2GSq5UB_54m&?#9J=uTf`n zeZ!#GkiVjQkt_$hKBs;a1I2q>QL~yeQ`a8t0r{Bb!npZOIceqoRMvAr^67xSv|n9T zW>HsAjGO7-Qq664bFdM@5A+^>UhfYTc3%iRtp$fLQH+yOvv=b1qVb4dult0&5ANz! zUjZFwNWPbfu2{_Fy12Xw)r;?sSU{roqmkIpV@xY?%iL4K)CHHCgE z8p}Y#V$0=r(heZ>t5!UxsYWU7kqL+g+5SotMGMh93vUDYq6f$Vlj~mxWH{YUuYxO_ zC$vc&^B@``obm`)h|FymA#aT!_TCmn z?RAlBw^|FhcLzLgcfpx+CA~!Yv`R{Mso=uEtkB;g4lqg`mg;k!>QVn^7MS~O7YXqC z73rtF|A>8A+vnR8)b&SbDzmAgzmTY@R8L}&&61V-oP10;H4YL;1fil2ve`SrwU$Uv zz;xcudK$`h5t{TFWbb$Oi*R+pS%;Z;q!DKDBgmAZgAtDe01XD4-eXc;D}hiIBGdCR z{D=CUTx`SFUQpQ9zdfUQ1DcUwSoQXrA|_B?GPUArUCC<93&D@YLW;R0ZJafpvFfkBR|-5B z&XKNpzcZVr8jkB^&P_%01!klz&I?-KDvh@s&-|WLA)Q*`gXX%w0~Q-@-5ewna!~-x z3O{~@N#1Qyv)-sYZn7we0uIv&xjvJqWp@e=Fquik)l)ucu6epoDt7*~78Bys3!dex z7ZUIAe+^%|A>oWy)BIlz96V#pGE%;(I z)L^u1m!WI?@+%O^BmpNODryEItxOmILZ}p))8MV)C*vYB3rF&&;QVv^}%npT80)IRAhL z=!e@It0wTq8qTl&`m!*m=z=y@5kQJxLL+DTCofPHxRYa~6rkY<;M^etk$^hpQ_C9^ zII~G2iWvIv48PE~fT_5Ce592E$u*zg;^VG>Bnt`}b?aV0;I_sSHj2tfkq`Ii9R+Rx zzmdAgAkM?WjFT$k#9~%dH&SH#c~kF_{LYJUM9tJ2qLsV?44kA+4$s zp9oVh!LD{Jo)E5{u{`#0Z>5aPwv?pBcb|-yEi4;;#Dl#C505nPbi1G+Nk71QW$a1R zy%peFslr#&nU_O#Hb_R3LtyFvVv-e zX(F?iTRW;>9Xd4O46|5rlLD7ju5VD zGR}0-;7L$FAmH~#onYExaL~vDtX1x{yJOe14V%*nB(ydI+{7^+lP}e=@+n#V;)Oe{ zJ=R0sXO-rP`xR;FbhU9=tY$(YQsAA~Xn4Zn*Ptlghw=&HmCT% zS8^zP2JqXer*~W`_{v_nejJK$9<5uw%}Iogw~G*C#LV2qmj{(=LO@m)Zcsj*gAHc^Tl_tjd+mdhR4tK1%f)T>Xo)|~#(=iwON>RXz4&gs*R0YXqcwAYZ=Ts6bNb{g6ig zbJcvg4SeQ4{`Y%p%u}kX6Xa-G;I=a>F8rrtySx=i?^Mp&SJ-vC$nwSSl&09>vYX64cYY%3bSW?r3kX(jKRmyxV5y(7E}Sr-E(q zK&u2ZHpkWly;6OAD@iw zS*-xH?+e3%74>oL@us;o0IlG=HN|OGtwHdtG(o} z!vUV_dJi_ReQt85%9r?a60vb-VN{kL7ONv(oh$IqZ=WaSl!iN>+eZz{`VHZpXBW_f za?%3!ms_W4?)g~ZdPizJrBgD2`&>qEV%ZgJ3Vv*>IPa|Of(L~-n?K(~@!gejDyi}5( z<^Cf67+}J9FT7bCu|yFN+_x1qzM$$*u=V0X+3w9(!Y_R6Z6`F94Edo$Ib{qD2 zbBXufLH_;PvN}O3B{+ITn1t!l3Kh^=$&kS1cL~9m;0<-_ z{se`mvknsPtVg#FJGk2Or^n)ofQfJgYMYRnG78z{>xuT;^p&FE>NR+IV9JBSla=2n zdbFIcafB?C6gPil>pl)wexO=_Cj7_+>!*R6jH!5aU~;J!Bp4dFPpxo8n~Hg^TDo#G?UPf-Vx=B6sel=ES1FbObD$P(}x3+QWHBV_w7 z`IWeJgw@-VzYf?%4GD!xW5ThA2vNgWI7j-uis?IED%sVhxXg&InB0D@H!U3V-FBgd zs_2Hpukk7##sXY9qaObCr|`)-&GD1%@~b?@Ah-~C=RFmnb=W#l z^K;w(dSTgHhlcHbBHmEHdOwR&_b(S!w!JdljZeZ5RlYD9#+Ew;mk&qWo#0`?y41P* zU$?0mKo$~D;d_~4dr{N=MMO=cX6^o#Y*n}1;p>Ni)-?k}3z@yoTX?nLyBF9xLbDYdc^TKtC zQyxtt>mOQw$ov-)Qv^4ZL2`*t@q$ZbwQE8L9~|48uJwo9PQ;B=^Tb`C&gnk6yNPv2 zIO;rMsT;D;D#rs=vsqKNfmz~VEF~<7cOOf?3gY@Fhn>kmpQ}smi7m)aW)Y7$Z-?@b zh>7=Z;|=aAU1cFmDW%8nWGVjY0y0ZOa*Dy!UFVG|sdrRy#S?2xMWK5M9oVZ2>106V zh06vYEO8JAM;68XNol_6ipMjIU8_`osT6UDs=Qema1_g(LI3TZ_-z<@CF%;ZygEc| z^qRPzZiJ9)L5XdXquAf(DNCii2`n#Oc}IV;>;;M^nou3Xy*w{_T#)~8ORV%yT(yaD z-0q)I=;^B1u>Y55up~Fr9#2;BoX^^stvpVC_13>i+etcpKZOme#!Za5HQ!^ejzw*V zL^D9%pyFL`{O+_2(b4b&W$t*{mmYOPi3G?wOpXJ%wjfNjJ#j-4C9fRG( zeu&}m)Pr+h|4D6ju76>XDq_!gk4{Cp)(UZWMa`c8GhNJl%cY3BARWYpr{2eSNq-mX zU2VT1s9`ue24N2hhc34q{XzZ~8SUl4I6QNt!DZb1V4GN*f>Y@F5zdR9@m@OVWL~Yk zSo~6Y0VzFW`7EkKC?I(&;Xn)R*dQ}LwWB1Hq{l1WD0Zi7dVYqk4=YtlJaT(&*N(W)Uu zLeDj)`oL4eHxQ4m_!Z=@fC9h#cLI*$ev>B(kHjVpU7ScdLERwa-kIc?;cdn!UbXhz z`5|F?qs&TOBZdO<{_+61@+qS#c!Fg_1GfzbYRLp0tqwZN;Ko}b9vPV)DXfUAu1sO> z5ORITJ6=E)TplvHE+8gQZ!nNciYs1u(F=a3oYiJ>DG&rhH|v6@FIh$eV@7{Ep>}Kb z!}5Hx(l^W3JSV5edyL-Bwt|AQ)4KU$Y%n1U^Z{ICT#ktNzSG7?XgKB9a{D%-3^TFf z015{p+KD5V5ngc8^dSRJolgb*P>f-|EqDW?Ydb3HXV!Ge@zd7STS}fYp?r;qs(T@1 z(|@ZLNbV=GFc&p`ER5hUUT;(!Gr*LiKWfL5Uc2)1hw<@m+Go zN0U!%VQWyUA)f`?)oCw-C_enEySq$yh(U;(sEKD%8dg6T=u;ZrGF7SFRN?xECx6lV zUh+nD^#+{VB4ZE+gf3ZT6=NBOo=1`^D9q3#6@8Q$Nf#TbUW7HF@{Qe3Hm1_C*^t&l zWM*RR8cNroKe?hH$f)WFqgsJ6GdDQmCFa8*l(J4Vq{;|ll*I{Fs>&ELd(z3y5l^bED{N2MV3lPh#Sez@^aJhtU|_#gJI zyyLdJKS3do6jJvQaZj6tt2;(&%sY5~6kPsE?L&$C*Hqv96GO^!ZVwJ-J;a+!8sNFEB-EVF&sphC+zx zY|BpjtqR%Sjonj4wSOUvH)5pS6X^wN+}1~1o!qUf)D1II#d~Sfov(tN71v-WvSuJK zQd4xfzq=r5B~tIUIAgoI!p?k!Z}K_qYq^@OA0Vpy6Z|{Y)l_e}a%ahtWmyBi0m8!e z=q};);?8IE7sW9Bs8EW?J6mq$6m4$W4xKRg)f-GZs>Mw%x##6^t><(jjR#ge>(Upy z7t$}zc#VIlmgQN44lJ6$K8D}%Kl%7Z*dm-^bp4xik+^)CN#i%!Oe9N4H@psjW*hvFCyzu7C9 zTg_cs%