From 64fa0dbe3d3ca368559ebbc41ffe1d3fd0bdc796 Mon Sep 17 00:00:00 2001 From: S34NW <12197162+S34NW@users.noreply.github.com> Date: Fri, 10 Sep 2021 16:28:01 +0100 Subject: [PATCH] shocking fences, railing layering, logical dirs --- code/game/objects/structures/fence.dm | 46 +++++++++++++++++++++++ code/game/objects/structures/railings.dm | 1 + icons/obj/fence.dmi | Bin 7530 -> 7603 bytes 3 files changed, 47 insertions(+) diff --git a/code/game/objects/structures/fence.dm b/code/game/objects/structures/fence.dm index 361cef688d6..8a84710fd94 100644 --- a/code/game/objects/structures/fence.dm +++ b/code/game/objects/structures/fence.dm @@ -23,6 +23,7 @@ var/cuttable = TRUE var/hole_size= NO_HOLE var/invulnerable = FALSE + var/shock_cooldown = TRUE /obj/structure/fence/Initialize() . = ..() @@ -58,8 +59,30 @@ icon_state = "straight_cut3" hole_size = LARGE_HOLE +// shock user with probability prb (if all connections & power are working) +// returns 1 if shocked, 0 otherwise +// Totally not stolen from code\game\objects\structures\grille.dm + +/obj/structure/fence/proc/shock(mob/user, prb) + if(!anchored || broken) // unanchored/broken fences are never connected + return FALSE + if(!prob(prb)) + return FALSE + if(!in_range(src, user)) //To prevent TK and mech users from getting shocked + return FALSE + var/turf/T = get_turf(src) + var/obj/structure/cable/C = T.get_cable_node() + if(C) + if(electrocute_mob(user, C, src, 1, TRUE)) + do_sparks(3, 1, src) + return TRUE + else + return FALSE + return FALSE /obj/structure/fence/wirecutter_act(mob/living/user, obj/item/W) + if(shock(user, 100)) + return if(!cuttable) to_chat(user, "This section of the fence can't be cut!") return @@ -90,6 +113,8 @@ /obj/structure/fence/attackby(obj/item/C, mob/user) . = ..() + if(shock(user, 90)) + return if(istype(C, /obj/item/stack/rods)) if(hole_size == NO_HOLE) return @@ -108,6 +133,22 @@ update_cut_status() return TRUE +/obj/structure/fence/Bumped(atom/user) + if(ismob(user)) + if(shock_cooldown) + return + shock(user, 70) + shock_cooldown = TRUE // We do not want bump shock spam! + addtimer(CALLBACK(src, .proc/shock_cooldown), 1 SECONDS, TIMER_OVERRIDE) + +/obj/structure/fence/proc/shock_cooldown() + shock_cooldown = FALSE + +/obj/structure/fence/attack_animal(mob/user) + . = ..() + if(. && !QDELETED(src) && !shock(user, 70)) + take_damage(rand(5,10), BRUTE, "melee", 1) + /obj/structure/fence/proc/update_cut_status() if(!cuttable) return @@ -159,6 +200,11 @@ /obj/structure/fence/door/proc/can_open(mob/user) return TRUE +/obj/structure/fence/door/CanAStarPass(ID, dir, caller) + if(open) + return TRUE + return FALSE + #undef CUT_TIME #undef CLIMB_TIME diff --git a/code/game/objects/structures/railings.dm b/code/game/objects/structures/railings.dm index ecfa334b337..688fa2c9c69 100644 --- a/code/game/objects/structures/railings.dm +++ b/code/game/objects/structures/railings.dm @@ -6,6 +6,7 @@ density = TRUE anchored = TRUE climbable = TRUE + layer = ABOVE_MOB_LAYER var/currently_climbed = FALSE /obj/structure/railing/corner //aesthetic corner sharp edges hurt oof ouch diff --git a/icons/obj/fence.dmi b/icons/obj/fence.dmi index 9debf92605378933d2128061630da337ebffb23f..132482b4874ecafc382bb8f0a0695f31d1ad09f9 100644 GIT binary patch literal 7603 zcmbVxc|4SF)b~B3Nm)_}Stqh&i(f+48I`20*@_G**-d0OjZsRaMfPlCUt>g;F!qQk zWM{}8vJZyA%)GbX^SsaJ`8=QZ`RAQK=DO#)uXCO2oa>zLS>~0Aksc?T02=@Rochk&TAcA{aDDxrxso*8v@&u;KZEC)b9t~92zLbfKq5BDxO z>mV(>AHGd;$G}AkoRLUgF=^G|1g{)n*m0A`eiFV)kVB_rFQTM=J{1+dC>D4{R)hXf z;KR(N`-%&wx7SbdO{)&A+N=G(|M_NojZbV}*67l{xT^L{GxMv^NP1|_>JEFnYr_0& z_k|$<5USL_s$(9Iyqsd^e7B9*R_{b~y=zr`_Sb-);n-9QRNr3ELC0;^N!Xbq@X`J1 zLz7a|o0DSu4_0o<-@q>+zs~C?>_r|iEjdmMKB^*`Ej?7N?{bAFOkjxflPz~m3rec- zt!N>13hWZIL4s~W>8<3G@hBv_Qr7kBNztu4J`m z{rwgOMn+S8`DUr?6vExFQxWxWZOjoMfI*up8n9g(utC#+?%v*BBMr<>NqOlJ+Nmwo ze#R^syOD(59DGe825(FzxoI_yAl4pF)KcL?$RGNF_$f<%tj3E)_$$9_Z^E zTg|~CDznVo8)u3r5I1kJWt-mj_2miKX@-}0kX5pGs|*(Y{7ky!Gv6IrUaoAsuK_+m zY!><``GUB_EOizfpB?6xjg1ZI&Fq(oia*4isR$83e3`Y+F*oO;ii)4Tr>CdBQF2m} zO=+x=e0@#OYvWrfoX3uh$lF5?v$B5p0-yh0Xjyp4d*-DP?@Y{}xjE)PAX!?!D=49B z`Tpn6pIIt;@@L5w{?zVYj&UZ-tY5Noat{He-eINg*-kojr1|-%iW$3fGS}T4aYmX- zP5x}nn}YMpaivP5Tz%3I>Q7HKEq03SHNE&R5=^!+?8F5LwlW)|+&Hw=*l^~#oHAEL zn!K{s66{g3*n&Yed`RAbYOjEsKK0G#p#n|-oEM@(XQD$xA$_jOwd<{dr%#_Y=?o_V z9KjIp>t(}-O0c{-`$f=Th!8mG*^C0(q+c)mKmp1_>=T!Cd-#JPQU7BS+*6PWRRo9A zROqE+!I04xMBts-sosx7z_o<0!RvLF5)~>AZuj3O!R=I*VD{i}KnWhIiWB6SdoD*Q z7}9s{<{uM{?kf!jHylT*)YWUereADPI!3E~-I|?Zu|ONS-n_^%zJ)_gS$Q_% zV~?eJIp*)-G*B_Jva+}D+!2+ni6r!LnL8RA8qyp><~Rw~MSm*RBu(BHSjWsaNU9T- ztJ%+yQlC@dr%xk|jk*4ARR{Ul7qs3l)k!5Ix*SzQI}MRfy?fwc-@+^T@!&ZY!xrj? z-J`T1kVJ;6rsf;#qQkg{V(PwsW3~^BxFLwH`!#By{u4L6&a%*@&B>}U3p2K}7O0m? zS3uPcr5?&lTME(53mLwO2_UZz=g;yTKqWji1!qt4y z?$+34X;~eo;Pd7Cn@N)7yubCv3(w@{cDl&9(sBgPqW>j(_z)UfNrO`N;L7Us`Uf38mde?Avq|W87}FRlslN=p zx2|*xB9JaS_d548QVvf9U}`%0W6V6$e8j)EPcZ5OrKLhowZxRYEnp0@N2ciGh(IF6 z;_KtNV{!5EzGb5Es}z}lp4E;8mp)xs%5E7S@&jnjwHuup0dpz-XNnZ;Izfo)Q7%=qm4LkolwJj9PV5@Z}J@$#Jtzm4aO-1*D%OgbH=;@E4A^YK+EO z85w7umznPaHS`X2w*zS!99~oYUOmuNQGFa=g9*m(IH_yqzlkwUh0eEx55DR$lE-JH zmxdKE@=3yB8O)=@l1(vE66fs78K`pWpLg$%hQXTBZnT&-)lR8Vuzf9Li6UauI6yA;5+2bo6kS@;`;JD7kr2ehXwDtdqBZb0=dFNaCdjN)^m0# zXRxkL8x2mpJS!`wbqV4asG-2qkqe<+ybWG!KV(GOw$p|K$x|ri4ji7nw%{8Wc!ySE z^hihX(@Ft`HX9$XHUSaQ48SSW@86P=bxiyz38Imu$TcIDTbUy|7Im_@xu$$PK8xe> z!X^m!lPW+BF*AI@!T>4bI3H90Dmtz0opAHYSj|6|F1^f64Z5LP(^9+E#12NfFcJU1UFzFr5xoIiBH}gSDxy)3I(mRx)@W4Mbf$iNz0t=wMx1>}A$?Hhf z3f2TbFrm-V_qJm<{_zut6tE~8+}ds9uY#uV>=?}&6j-HPNWi=W!zBxVp|neN^W&;N z6&EuIaWMO)t3TLe9ugL}-rGn;qkub}=KMWt(C>~fcTuOt8PrOBIh++L@Ea>`dpyL> z4SEj@P+MF#<2U-ZpjTs+ZV>KlLrrXeJ?e6=4U37g@c)GYDiMInup`$d!{LAL007}> z4T|Zx06dy(f@SMk-cV?G&d!$_8Qtn8R1RBv2Hyt(U)^&_nXLk_$dPj(6D{AXT+&D?#+;9^KR$zhw$|gDM^)Szo^2 zSbzw##qcXQgRCZ8YS1%e?% z?A`6`-TMD^;6wV;%0`2nx$MCZkxW-=HHvwO#VS%&0hzF5&z~`)n_k0X#Ycr+2Vt)Z z+9EtuP4KE`Y!S4OA+p8imtX;4eBY5nDvq_@!Tn59brWv0n02$;69AzFuvY;2Ed@i0 z?dn%p8o&&x{M~ec_tMZmKtr!F;wK8QJ-B)Qo2*0Z$6J%ob*~OK4%qmqsy_grLg>Du zwSnAl%v$I`>;o{ODOld$8o z=lxpgui5p;><#OaV{f?NadoAoPh(?wfQPk!SiRy`2gk_Sq&4Wv{ieUg1tBNiElxIv zKS*yh_`Y4xU+|%mv_84P53du+R$Kjncmf_qI2(@aecFUoQw6mJ}zK=Vk1jeI4P0 zJb_L3C0AFK;hlHABD`=Ek3;px*Ia}R@rj+al%sB}@!c*=F_SpFea_Tx<}x~DBV;oZ z9w<589HHsk!6V7^;-7;|L@3nF%g2*g;aWkPzXw5m^Q_mDY(8V>O-Rn4;ld(W{~_t#e7SWIUJHb-dZScLH5CMc*>xlP0zylR2wrX+b14Qp z-<@7jDARSl8eJLEpo(_|Q#7?P-5U-`G6oMuUCS|MU>J&%zI_+eQM>(?+j#+R1e%Gz? zXer}&w)NO2>HV(srQNMXb}8djp~W~xs~|e9vNHancCEC5=UK~PKLh!3#~V{zy*9RU zV1DlK_hLf+i`SRdc^C5)w9Qb^4~KIqP851(=fthbNHnD0IrZ?}u%;v5!;{)Un@7Cx zyWTQ!V|AXlNd6zAJj$+bUrZ72+SE>I)jl=m*KL#$}cG;6<^T**Uih4F}pdw|3{S|qT$B@583~0sm5Sz z*YDM>p6&e2qDG%+e74i+U-t|_UoZyIB)W88acr@;KvjT~=@s;V(MM@S;e3dI!$PSV z@599Qp*1MbJ_uB}58unU4&YWpn0v9{?N4nk^wtZ2c7fU5T(Dan{aWU>TUoay|LM~w z=hY#D=2{T}0m|;)-uI4Sk+wQkRC6 z)WO8cs<0oG3Vz6CPF>EGn+L1rmzTeRuu)|DLj0jm=C8FbJfgmDVecN|)jmDXBEXd< z`F(nV^>Qu1cmD2e0TGdb-@n!Iq6)aGYWYi z9NsNfG=F$(eEj|T`ug=k1I<{2V2A-pRY!ysaeN8}0NlJtsi%JuI2Dj`t_6b0VCK$FO4VU| zw%C4ZjsI$^wNG{Mw&#J#^eb=k#4FfIK7nKtmv2X4h0d5k)GMOgClelemT50?1XoTzv;+{v~dPv ziCg}wzrWEo=2Wvl1GU50t>n2R!xW{*Pk}p&WGhFSYvWf>Hvy(yA(UcFtRdKVWJEGK;Zu;WRL0r_7Cc+tEvJVy}c>@Al&*JGB)UBb5Tedy)5bHvn`s@`Ckc z34>2fiy+p8r(>DDct(s599MwRW{-rN8wAWPCk=Bz7|d>~ovP)-CCYt*h}%9_{g?`) zod;8K-JF~p3=QvzHFpD`W~xi#hFz~QR{CS?_F^E!WS~@|?ult*c&U&fl^Vl9h(WtQ zKNb1_=uig!vrfP9K2V~M{rH>g;@79(*k)t|1^V(f<;jyLzk7P3sAo7^tK&(E2m~RC z$g6t^EGKaLw_bzsMv-9oSH`$1Y2rJL=y0@!OR)Yz@>z>r43`pDF zOuKq}FT7me8flXzjoVQ8s{*`o;UU=^YR;}nMi6w5j*@=%V9N*5HJx@^NFf;EEg8yFLSsP_|R)(mp zO3G!jR@Rea@}|L(HP;hx&D%1T$6GV|!d6)95hWT4-Q;OQ71Sf+=S9@P4_s|z#O6i& z63Qy5t4w-br4%N(W`zM106j!8Wyy#K2&#gF`#AzlZ z|CFrV)z){y8ns`@<6kiGuQWN&<&xq#soUFEM!$>ow0Ovw(!zMctm}@Rx2?Wfol$(Y zJ{sG?t=evXbg#~Jj~s=5s#y^-@6zD;=N5=ZHbrsc?Huf=-czw5yfZaMQuGAm=&iyY zM#W5__sXamXl#kn=RWLr_u^81WVd~=ME#{6lYHqmU`n#G8oLJam;s}5jJuA$1s0?| z7hN*+;HJDM$cGTk%s0!`{2YC2emsZA{xVkj)z|$Yp*{R1e#E;UCtU{2NbjSqA{8ab zLi>`l{yk-`!w=NQZVC1?RAvijWH%LTj$dY~?1t*oY>9x^*^;n-E?%5jD29?F2~qx1 z5@fa$9=EV2h#VH1L#z(nLb-8-s5ubCh_2;q_S0v+3^Q_O{I{SlkH{6kQt*QjTGifP;g>9xS;4=aKQS{bCgETIM9{Swdb$DVw|5!D=yqp#b>( z#I2VXNco^XHvatdd(=saSFk~#ie&2x`2ggnOG~DCK@j(LRh?AUkdufS{iYH8Mv0^vBxPaK4~RA&mVfLnW0VhB?Ios{!_I z23^akh9+RHUpB&!oRv~%PrGam;*$l1E20a#oVXs4VmTAh$ok3V#M^7l9l=$jj2KFK zH=|2yTL=tRWMlgVgUH)#w9j48yo_mB$pNdzSyFsaHN>zZo@xb@Y{;19n^Q^4#?p3D z@byDjCVgA~K>FJtG8igZDB$F2`bUFDRKREo0-5qkYpLjX-vctIn%|R3YHlPx#%-`T z-LepJ+b)coMs^P|quft{DVjQ`lmRL;ZP{d_LU6(4NV!|S_P3rWgsN&~R@tf;+le}B z&4n^a#QDq2Ca!uAb(hGMT(~i+ssw@}hfMaUbT9|uRk9O01hP;^_O?gbY#tFpY^ zeA~4*d!Eb25(sI%_aa-a>k%Ce+NH z&DEnbzswdUhBmr={C4k6k-v@^Mf&a|(`B?-UBM^_=Uf~dX~XUrmW6lFpb*?Cup=j_ zb)sDpIb9&M*V{1k)9xPX`v9+?b!732#MxC+E9J*yl4~o#b^{XI16@q=ixOGSjw57z zQRF85aY05?dQmuT^4IB#dJmdRAgbD@oiE~%cjC_j8L4lPV-NpS719d8xI8PB9i8DJ z3{#dzRMBqiOk3bv8pkDEK!eneWE}xpJ7>7A3NE9qu}gxXxVL|N3;QXuu^o(wf`Wo! zLwURSOuhF(F%Q#<_tUUp#fF?sS<7e}?A-^#c(uoe54sn*Wap4x%Kh;pS@%$2=06m< zs-CjhJ3c!Ufmsxc-02JP`!P7Yy|ZN^6|@Fh}zE| z{H?ycyu2zHZLg_Al9H196XItMhpg=dZ?71ZV`jJ;T3W)mKFLb18t+|N8mk%9@R|x! z`1>;s`S}D`arpTSa2Y`<6I@t?$9E~ffl{To1G{%J?L6y!{B+yfG;n$ETJHGAoKtk3no}-oEQ^wiA3r#*>FNEWp+Pc! z(w6Y?W8;q>Ke!`8$BwgqQ&Lirj&m2LSm7qp&hfCuwB{c-s!MCnf zE=!2vfiQmYb0ZUc-=l%%2hRQa&jX3#-a6PN{^MkEEf#TThZ!L_ga1H zlyI@+0%YxHRm!W!XiTcUz;@`g%O zux+=F2p>*b#cNvo(dZ$8@6*tO!!|cJzj6v%uL&X^OBv6lhn;XclbM-$WKRM2j!8J; z24pY*6T+Zq%~M^n=>Wcfxp1$58NGVQ+~W6enG^BXFVp35GMEM5U;Rx?J(s(4moTWh z&-p2-mNF*>(s}Lgco}QbzB&C0m0mRNXZrlp&s17xJM%D8{N+dE?QInmF&Ifwo0Rh? zclA`Lk#Drdc}Kd(W_=J*BzR2L6DzrkpdC_FSKn<3zBfAloL)o;Znbr%)?eCFZ?S*Z z(QD3>!UH~<(6X{JY}7~PrR`$0uAguOy^FQl7_`CnWmJa@X0$P&o|C#_mRtn1S~7z* z(=?2r`m7W#zFp+MIy-bQmMwT?fV-*OHu>JqwwTXyT5;k>%Jio*8 zy#}AuuFAWM@1g$5BCr%huCmylesS!7u@t%EnnPmRU7ej3=$7Tp6tV7nPi}7RyCGA% z(KQfT`+$HdqQ^$dD{et;mPKxzM`n7zjUzC?Ii`5KzO+_U^e6@GgYB~N{uSl7SBSEf7K1Hxyx%1*(g~XC>IFhW z$U{MWG-Ai<>BmFvA)kd+euzclcc$`%l)WA?dvnE`F6M)moxT_Rg4bqQfs0}E8KR5z zvb$NuTrd+67Pi20oeCB54e9E3CNKg1f;6;CM`t}L8^*?NC%PL1SujR zg3_xf9RngYAT>ZjLcW8~yz_o@=l-~JXEMpj+H3E=4}9A z&?A`GzYqFeRIAa4eyRhE%)B-2y=*=2yL;bva|OUJCBChzQIGLPSwyJq3>A=

mi#8CPIY%pj#+(#y}?g$YJARQgOMj&hx_N9)R4xW z4$;ZZL5R}@PDmt=&;{Ay*BdW#g%maP|d3AR#);pFa4U?F^*~vO$x6+f)14SRU#KjUj9`9#nX5L(#YO(R~I6~donH(y& zP0-g0wk9R(!kZc2a&%+>0gv9%pGliHH8o9a-&`E#eqeqHg?Fw zhRbY1mguH!_85%H0EaMk-DV!U(RU31_djFu7YDgZTXr;k5;)nF3pWcgmfoKMO6dO+A-C-j~{(`BDMHHhMD+?rKP2!PrNOO z#J}`gNP$zzE1zkK7vO$G0zN0pX@g$j-_MiSl4_0meD4Ai5yyL>mIBAn>ZgYNxl(nG zx#Y5fjpXqlfB41$dAk`khfBtlq2boJ@}K^*oZgw;84d`zXRLcsYnAtW~Lq z7B1u1Yz~I3{G8GC*{K#H>|C~G^(#YEp~|W%b(!Q)4&F=1hYt&#{&|MW0tdh-M{F_T zm3k%s9f6a>J@14RIpM6xeS2WNRy70M@sOp^mVrUVk+#q*a5+@ET!bBYeGeY|zv2JI zXTj~kg}=N=Ws6`E{JUBBcZLWu>hosfzk*OVz`brvGJ~@UzJ=fi|2O>K%l_gs5%%!8 zf3ihdc-c5+pslfyNnBhU*QwOnd9FY4bNh)j{^O)y&)B7= z21Z8MfBg9Iyl2){k@4Q8w|M^PO=2{bC8P4!uh+ZhGtOElHcJ3CkB*+0RD^&=Lw$Yy z+t?3Wb`^K5U2K*bk2BCao0;M)iI*(j!+y^Yw^@;A(-k{<(z+ZB)|+feg{^uL9As1p z13E;AGL}jiF5d&&YS4L?8&(a#v3~(`TU%QXlg~&%P6YF!mA^>BPF)0_hib)!D3d;< zWnu&3!Gi}AzuV%b-@rwaZtjB|;dFWrGq7UJ&dzF(Y|oi75)%>tvWNlMft2}u|1!N0 zo4>b^8df=Q5&dRExt}FBq?2xL$4$lEJkR`kDmJ>4#@7HqYkKohN>O{i^$>MPpYe6a zjmDJm>q=TGc=z;a92QF+M9$rHY0k? zo?go{ch6|T?wXrVF8nBTCodQ~xwsrFzIxo4>OqFg!4NK}5Q9vj@LGYPBfSd?4_-}W z6l`eyA2$SNfrSm|BnVqF>s?%hfV0GvDixXU*e4={o#h733f*Y-?u0liWJfW=N*SwXOBtQ_xFCm?uqn%SC9g%j#p@CM(ZH{{K=FQ2A!{JS5 z&%M-BzCr2Jy8eK1M|s$}%DW;eHnz0D&DFJ=%;HeH787&0!%cC#`A0sY@(@2izlo2} zKT3g{oyJ%U#>($>&7Z<472cNs3`f>k_C2TFGJXtPPciCFNUIlJaGUmS? z@S$Hv)rl{7f$ed9+)H{9pE1?=72@Y2ZKdcGp$?_?s1pWg$2VHvyMmSbph=S0bE8@m;rrH=Pr@Ow>L z4R=@fyIA7NoWFR#WhpOnLD)%eJ@jd?>q+V*874DEQD3R=`KUNTf2wnq76#BU57(x0+ZtAqTH zqmQUnG2+`{UpSL%#&Pj!edEpX7m-3PBBt0JneFM7$)++NlF3k&3ty3WwQki%!YMg- z;Jf_u5ZmEXxI`4@PEDGqLH`Tg5UrLVBb&|jX{(c%Vs_P~4e64C!=${RD8;}{aR8M3 zR*(z(;5oIm!%V=;!h+V4eJ%D0DgWhV{_H1t!w&-(^s$&F|i2 z0ytF$joZ!@c?SwI4AXWdeH)>xtVb#aH+FZH;@U+(De1>k$t)1W_i48~(iDY0_LWJ_ zXW`W$;7+Id4hZ;;m(|w&Nw&plS_m1}44Wc7HM3#|1L63#05i4pHQ_U_&JNL3G> zY7s(x;8sR{etsqQ<){`pXAYzzy!q<}xH)kq=sH<;L6`rs zkx>ESpC4*!6LNv+@6kOCeXh{%9>a{BaDWqT9FO&QZzFd{guN{IKbnZD(SnUtrn;Pb3=df<}Pr|@6Q za*)-G;n94qV>PGA+ENirQ0DzE0vHe6WXH9q+EohMZxm85mwfneY-DuQzVOJs@sB?G z=H?t9K76=cdNzAcn7JajVSPAZWw$P#SRcp>W#$hBu6-g%4ULfLq8>4JchbN`C~sf7 z0{NI|7AR7w#+4XxYM9&E66Q_q_oq8hszTrJjd_3&suh zDre)=eTKv59rb}CFQn~(;wTWDVJ=&m z7LJFM_sa7t_bT(h1-Xs^nE3RhU}arb4m{E;GUb0?CbO}%rME{q-EWt&)&s@T!lp3J zCIpst`bP{T-LFtsr!6W^bUa!bVJ)rSJQ>8GZWs%x+9P-F2xb&VSteAhEMwW-kxJ)a}zVt*H@lfUA@&0S%i@| zb~@hF+QvpLpyi$RP$;i3U9yu@RV7ncUfwsD992e+j%5m`0u|bd#yJ(7kti!9)!hat zQ+8)&W=an`Z^rHYc6D{7#r&Ty{(n+k!W&g^-U@UcKnPr}m+fL$l?2hL zWJy_BHn(~*PZ6rY%E#-8)5C`v%9$6kmj?s8uk2%E6P9uN=^S4tlR90H1q#Tha3%nL zuT%7^sy`;3QOE-S=G2FLnp?0G#Ycx178c%)ZvID)szKXaC6;yj21_hM!Z;Dy)fx$M zM4DRHpXTPPbMy17mD)+hSqkhKw;`edz_D{=oYM8uyap#w)~;5!9J-0X5#7-EJu2N7 zzF*k>6)7QP1GA|0{EGLSW*@P|<>8A=>yIicD=ShQJ*orB$d=iF5+qPiSeTige__tA zL`c*C2lZBvSDAm3~+n$Eq9jLA!=x7F#5*E#%kAur`!A7Ros@x>v+M& z9hfND*l)7qgMld=c@-iKSMdBcJR20bbsJxaQNf8^R#1qb?ib9K_~nwGno6GbPJzCQ z5az^f5u^ngd}};fGwvK07bnAz(4|8B?kPPt*U_=utg?T8%G32^giROFe6g` z9UQjWw3TgT;xqHS@3U?2R!bwRxVWpaa-SwyYjdEdySs5>VxnLTQg$+3nHVG4&6L-h zTLE6~06SjLhX&gFG*5ffufo2_5`nnlh?#taQtbeMKuVn5zCa<%2~=@+7g`sJs?`p z;D$!^aIq+RMpjA|ID!iTe%7zYgPvKB zDifbtToN{~hkGb-JU=^Dg3ZnXR+LGt$!zc*iq;MJ*=Yz2B!RWZ)~r{m31DnF14&Pxp7?Fl`2LVF3!n0$1x?; zI3WB|jlB*w^co@qgZVl4wP}MQi-8Gp|8%~Yj-9-Qdy7j==ilp;%RdWXozYO!xhN+N zO+8$NM4Mgg46`2Y+HXWx1I=o~kM*AZzP>Umo4R{*27YDD=Jaz!ca0WW;dkg% zz@_^2t5w4nHya08o9B>Y+!CJKHoXT$Z(91_FZQ*PU$o&0=gn^ehUG?&PSIJRWV!{?SyNyS=H)j4pZf}~Fr;{~?MiKd<9 zj8(&BZ3iB`3ITJXo~7>4_BzqXndW1`CQ9yzu88nW2-GPbq>;Y!-UaQ4-j~4pM9E@F z9T@4dn!bSnhqi#nK68=Z(JK>bVsUMtFgBi)f;FaguNtHdeevg3=<;wz+e4jNCufgT zS?hPPID}OqUZl9Vc(3{ggd_-;wmsMCqJMwaha~31)GV)6nJg~@i9=DkG_Ocio0RVd zKR4yD(LCF;io!20dxx8Ym#-1{+}vvcx9!%NAk=&>YimNcLq(44X%`~ik_2hkaY|B7 zPA+r(aPk8(XW;(<24yuK~NlE#>cB;Ea^&S2whc!g-!{honc;YSTtX55!_gu&KF8t$CR6~puLv*8-ehg&H z8puGsFK4vLX?)<1%e?ke_Om>|nQZ<|J!x4&v4P{QXvk3Q)HAgt=Fh z0maaZRq@tK_Y6+Fi!4U?!SX8m9|Q!Pe3zT6VfnT3TWRI}t8Y^=q}T{NYG}Jcjs^+D zW@mE=WIWn6CZ+F<{Tzs)yy9s2op%t<`)DZRy6}i`1}f$~ple%ss*bvjU(fAVG)iIZ z%|yHkVdK0z?92nT2tYh}f@b?VhGLrE(;PN__Vkrn%^XTgFLv@A6UGCdkR)≫|vI z?GeZ4xBc_{i+s}INuA5}B}Sa6KV(MJ05AHW2v4N%!-ryUc2n+lnZgCTUwAe99_K3i;0Rws2+x9WjUVw>xcxrSJ04I;l~3Z-3^z}0cW_jr4zL} zA09IR{M2`bu0ea|;&^$;Hi38EJ0L7^cWLKrtKsoBly}f}c5lBs?q0lcLm)&XYbhFOwyYehfFbhfaoJ?p!!l&25?Xo! zr>1W9e&T#3t0s{t0le4QnkYZFYluL|A0grvtfGz;&XATBKpnO=QRkBV^ph|B%jzVG zei)a0yvbWX3n&l+1$;Dr@*x~k_BJqG8bNXB4ttn#Z`7}PH0k|hYfr|p1y}*0;q9&+ zq(8SivWKI0aL}>3x|+>uet33`qSP8BU`-L?=i~FDyA2UrJI^+Mx8i2 z;W3*{1c@4_^@ALX=hpXL(M^%F@$vQ5#;T}PO2s0HNEBIuAPAo{o1c1IEKt7hdISgwda!d>}<$@FnbmLa637=!Ts`1=@hkN zb{$W*!jKF-=-Cn=H8oX2NtjAc8SN2D7w*)WCC@sd*y@t%7mR%N)}@X-hD<}TwS8gJ zzrR{2Ii{J^voG({{uS8<1Tidvgh0cdUnbi%d~IVF^tQx`$$AfK3C?vPj2gyf`*;Dc zK!7_y^YtKtai~jzNq5W@QyS35HnCRGI(xvY&x8IfWqxIi^=va6*Or{@5w|NASoP85 z5S7E>!FW!b;C>}1nBe}9OjexW!KXYRSn~K?u)on7debvR@tU3FwhS{UBm3x=xS`Q# z88V`pF=vBxhD80>QEnakcsSddM9P4|jJNpfRO{q7Z$$YWb9Sf5L_ZEf?Qmm{TGZKj z(miKq=O5K4cT%abqgd!w%;Ngo5LF?3Z3lRBP4DtC_T$h32y+yh0TzKA(yZN^ptIOW z{a>y5!s08V4HaO~n1*$vjY^C;s=K7m527N7&$(E3rKQqyO+6=%Zqg$0l`rktU;fyl zeu7pDDk==+%3&Q3&aC^t=sB{`E6;FNEK1fQV5chF>`OyKN>u#|%-)G=kP3 zZCw^yJBBM#X^1`NO>c`^SX_i-4%oX%go15oG7oWt1AvtX;^?KtZ%(tu