From e421db76bc913ed1acbed0f2b3688b8f2f7d8176 Mon Sep 17 00:00:00 2001 From: ArcaneDefence <51932756+ArcaneDefence@users.noreply.github.com> Date: Tue, 8 Feb 2022 00:07:27 -0700 Subject: [PATCH] Adds an intercom interference malf ai module (#64670) * Adds a radio interference malf ai module * uses on/listening getters --- code/_globalvars/lists/objects.dm | 1 + .../objects/items/devices/radio/intercom.dm | 5 +++ .../traitor/equipment/Malf_Modules.dm | 30 ++++++++++++++++++ icons/mob/actions/actions_AI.dmi | Bin 10985 -> 11321 bytes 4 files changed, 36 insertions(+) diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm index e3c1588a746..7cec56e7983 100644 --- a/code/_globalvars/lists/objects.dm +++ b/code/_globalvars/lists/objects.dm @@ -27,6 +27,7 @@ GLOBAL_LIST_EMPTY(tech_list) //list of all /datum/tech datums indexed by id. GLOBAL_LIST_EMPTY(surgeries_list) //list of all surgeries by name, associated with their path. GLOBAL_LIST_EMPTY(crafting_recipes) //list of all table craft recipes GLOBAL_LIST_EMPTY(rcd_list) //list of Rapid Construction Devices. +GLOBAL_LIST_EMPTY(intercoms_list) //list of wallmounted intercom radios. GLOBAL_LIST_EMPTY(apcs_list) //list of all Area Power Controller machines, separate from machines for powernet speeeeeeed. GLOBAL_LIST_EMPTY(tracked_implants) //list of all current implants that are tracked to work out what sort of trek everyone is on. Sadly not on lavaworld not implemented... GLOBAL_LIST_EMPTY(tracked_chem_implants) //list of implants the prisoner console can track and send inject commands too diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index 131562f9fd2..24093aa8717 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -22,6 +22,11 @@ if(!current_area) return RegisterSignal(current_area, COMSIG_AREA_POWER_CHANGE, .proc/AreaPowerCheck) + GLOB.intercoms_list += src + +/obj/item/radio/intercom/Destroy() + . = ..() + GLOB.intercoms_list -= src /obj/item/radio/intercom/examine(mob/user) . = ..() diff --git a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm index ffad6956f2c..c2d1f6811d5 100644 --- a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm +++ b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm @@ -581,6 +581,36 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module)) desc = "[initial(desc)] It has [uses] use\s remaining." UpdateButtonIcon() +/// HIGH IMPACT HONKING +/datum/ai_module/destructive/megahonk + name = "Percussive Intercomm Interference" + description = "Emit a debilitatingly percussive auditory blast through the station intercoms. Does not overpower hearing protection. Two uses per purchase." + cost = 20 + power_type = /datum/action/innate/ai/honk + unlock_text = "You upload a sinister sound file into every intercom..." + unlock_sound = 'sound/items/airhorn.ogg' + +/datum/action/innate/ai/honk + name = "Percussive Intercomm Interference" + desc = "Rock the station's intercom system with an obnoxious HONK!" + button_icon_state = "intercom" + uses = 2 + +/datum/action/innate/ai/honk/Activate() + to_chat(owner, span_clown("The intercom system plays your prepared file as commanded.")) + for(var/obj/item/radio/intercom/found_intercom in GLOB.intercoms_list) + if(!found_intercom.is_on() || !found_intercom.get_listening() || found_intercom.wires.is_cut(WIRE_RX)) //Only operating intercoms play the honk + continue + found_intercom.audible_message(message = "[found_intercom] crackles for a split second.", hearing_distance = 3) + playsound(found_intercom, 'sound/items/airhorn.ogg', 100, TRUE) + for(var/mob/living/carbon/honk_victim in ohearers(6, found_intercom)) + var/turf/victim_turf = get_turf(honk_victim) + if(isspaceturf(victim_turf) && !victim_turf.Adjacent(found_intercom)) //Prevents getting honked in space + continue + if(honk_victim.soundbang_act(intensity = 1, stun_pwr = 20, damage_pwr = 30, deafen_pwr = 60)) //Ear protection will prevent these effects + honk_victim.Jitter(60) + to_chat(honk_victim, span_clown("HOOOOONK!")) + /// Robotic Factory: Places a large machine that converts humans that go through it into cyborgs. Unlocking this ability removes shunting. /datum/ai_module/utility/place_cyborg_transformer name = "Robotic Factory (Removes Shunting)" diff --git a/icons/mob/actions/actions_AI.dmi b/icons/mob/actions/actions_AI.dmi index 43336e0a0f31c94d7e0526dc1836953cd9a80a15..b85f056dfa01f03572f46b59a1a89159b7959433 100644 GIT binary patch literal 11321 zcmW++bzBuq7hd`T(%q?mbO=aXx}-~_OS(%MF5QHTs4=n)iyKaUvZXxM&xBe0Midezi8v7#eBTfC^CO-$_MKo--_Y2k)> z?qvR5Qp?dnuVfFE5WLatYNqzGXBQdw_o;Zdpl%PS(CM&g1N>*?iSj0=v^mcmU5*9( zS?P`gq_>!y7Y0iCODV~xw}teQ4>i5#`t$SXqXIsbupvIUKE<2H$BJU}eB!)Db$xz9 zxd8O^Qz&~a4D(Ouav~Q(jsJE-x6;rxJZTBBRM;iCq&4;Y;@xl$^-H)>1%k~&mnJgb z>1&FWDxHYe_&$y7SsHhL)?azFv+*7dyG6oG$4?`$EKCOgdO%55O2;SbFx%gUc;WGR zGjqZ!)iGrPjYtt<1d5cT$9gBJJoJHNhB0)3HA22tI^_LyscB7M?9B0E>>-{qyGBhk zaqJ-WJ4>nL;g(vof|npvX+?TWTSfY2oZoess}D~Z;`RLX9;=40M!Irra=yNWkKc|T zbX|LJc}(hOFFQuk9e(KW;l%;;_4UiDs;rS$4G9V{Y^S4VL}#0>M6aA4MNGgmehLP) z4l8$Fk~%K{dU0`@KY#uJ5KhCU6Mo8%$c+L=Q6bSTYb|a7B(4;?bGh+uU_ZoG+$>r> z{L)=~4xY?swk|cp2xrPkNo^;Ay@WtF&oe$ znJoDOGiB#E`;U8N^{N$yjg1{v+l^7)tTMpzxP!mCnUDcyPvv<{QyGFjuiqxQ{uu&= zm$!)^54Bz4J_|5gGFDpj)Y4Bmfc|c*4Uy5tbN$ zD()E_%ai~34ebY(&D;iIKKEfFl@RW>pLnz(4j!Ju0);%e=B~|Lad9!S@%k9I6f660HnjXJnCzP5=;L4(B{;WR~2g(opu)5eN-M;o*_AoR5Al zCUDIuc$Dw!V(w|d4$!j-1DXUS`$It=K9KJw;RBEvTiL;{`~ak=NLH3PL0Wc}wLvB^ zM}tY^LMksT%y*Ga%qPivBOgy%y^P>+x_*)68R!LhN*~c<7C%Q|?TIg20Y~ zRO51Vp+AewKDQ1Dyhb}D<1XmvphlQx*U`@H791Gz8tHF_vK9M=#b>RzV7nL8;#eOJ zy$)XcR}c08MDO1ZWhpPrM1BtxVMb;6#7&;bhrWAkE;mF%(!4#Bk0-C7j2$n}wE9v8 z*7}t0uj=@d+^DirPEipgA}tN6;z~c7BV)zl88&)ns64?FKc$gfe(CwLPI;n%A?mCR zfAe9C@ybUEX(z<~JB>LW_$*my!p^yyiJts$x{#j-6(Z8>i5{6p*HGwv89{YpePd)VLit{F4IEdYLeIl z{QW(+`A9y*Az`m62pi~0lIgAalszn@Xpo13qQVLB$w-tyuQIl3N|dmk-4OCm+-+Pe z3}ox|+zopvp1$@*hGdy>3DL;F-dcRQ^wP_5Ez1|};B-TLb$RD&%;9r1P15ao(1Y&Q#sxn8ykbLu`MG!Nc=p}D5nu~m)^NSN=h2J zwDe)gQE;P?=FTh}mC}{OFXu!t=g4($p6x1XzR#|sp}E=e>R_2xyrBY!If>4L3JF^L zxkZ2AbrL4TJ(8Og_t5Zj<>n5sw%|LabO9yh;eE_$>`s(F9JDP;EF{3slR1>5r|%)a zgB&KFzv^n3BGLNrAtTjHQB273`e+^K>4FlCVY`y%@|Zvi3K&;D@-grvCBM_qz^5W3 zA&K}`W#8Cm#sdK1!-?R#vIIQ;E3@JoSiXuOuf z(a-eP^9WgG)J^?=C|(ecH+G7v-Gn~W5KH2aX+vX7F(^;GTbmjySpAG}CsiHX8;(ho zl$8|^8xF$z9J0KD3YCs}zFnxsr=^8TJamyKiu0lurpRw!2eZmQ?TnxLA9pH@#b~^T z3|H$Xc~mBgPmR|4^Q)1+6^x&fgl=^-H0UhIyq1DnXd$Eiac(*17uVHugGT2;eTC)F?oK)CdhQ3a}MeSy=^Q3vzif#lM%n`0_Zm*~oCLu&lN{NJodk z(^u?&)U^~!vFs}x^nhA0ors7TA8pk8PU8l7JaPKppt9K@)4zR7K|@31bKH4dYu2ky zO~CyvM7kuy*p&-Y>Qj_MqX9t?o<(9>64@5JgI964zN(D|u}bJTmbc?D!ZxgHEu<0H z*gkHgVMuA#{3kyRs++LBRQfEiIquw%ouv2c@!sNWeXUFeAVMrINL`jNQ~u2g|6y!K zojUbyUJ4iI%B%9gM)EfDW72sqoa}V2KEY}d)xw`{!$KYea{L>j^DAM_Veb1r3*U9y z5~ze`>#f)EAa;<0+?5GgQmrNZ8}Ga%WUPq{Yi@?Z!ou2Mdm-yUl33jz?|t863?Nh% zzF~9XB{#!zf7ruLuN?ZDowJFB&o^VPoY{lqsf_T-ao zU4hAj--p54PZUoN^Pi~4UZb7h0+QFGk{6K2bVI^%P;~|ug=*p{~4c!&~QZ} z_oJ_cB2?bHw%D=@X)|R%0S%=4jo8#tCJ5iw!+(wA;%Ox-)jU#Up46C zLfIWZ>4cltVgy4SAX#~Nn2OQsm1-XzQ2unhk%oXRAi{sbxYR~(CJ{6m#LcY88kb=3?pr z+K15a9`n0_%B^Ad&#_eHpiR&9{6&E4db6j)YC6KQcvI8U6% zCJn{ra3yw*;G6t*qr{m)`TY7}bX4^G{$Ch#WyDz$9t4ZXR5P1y{J<6lwr&u8g!S)P z;sj}|Hfera*dqYl8qc~Q_L#&Zl!5P6wEXn-*bNOuE>Q*eB+fiN z8*|QEMIT`q0^_x#A1&s_%fxWKDe1$^gNLCs0zIJejt(O&2!aL_B;Xg$L?hyQ^diH= z#Msgl9n*)P+MM*oz6fmHK(1C|CNMCop=vZYFiT>r8|WJ@3;m`^gVsp4jW8QZ%GNLH(<_(VT{lWAPDDI~^A19|uTVsvrd0TSc=$oRw6a(HO zv=-lU>-C>$>~F(FlnA_8viiffnG-LapS3W?x;}$i6@58*PnCS<@?U{_65iL)9iJW4 zPtAVRMGc*?{r!g7Q82U26_-|QgowTwT>dJtu8!~FKlR|VY8(%y)SMhBzs+P#>Oc(3 z=QADm1XAY~BU*r|>*B%_?`TcbNQh{zyBb0L>KReVL%c9clv8*Z!RBH@*-N$fjNoUO zY!Cp+=1`MeT3PviXR!Sf&lZsW#;jf)j++DDPjqYhSrZZiTz9ND%{M6k=~rvzLP;t6HHb) zyI=9}5FoR)}M~5C!CLtlA-Bd@&VNL+asjA{k=7`5tD1C;t5-*B~=q^)h zAse;XQ$7AEH4L=392zeriTfB^u-obZzdN9%q~rkMSRE+FBt_!^CGbC|SE!6&wzKnd zyEk$k9vGL)Ko((ow09(qlk^zV(t(6uX`jJ6$qg5=p=-t z$DJ0>ZPbnl)a=@HoAqzp?Ni0V?I}1;-v|jQmoNf>qpRC6%|l#$RoR(+4H-Ox^6;@t7^}8{UoGsNwKxZ zH1O#d5Cfk(Ka&-zS`;-hI`~b|T2@JgHHZNuYd-Mgk7&&e)nsa98AS^b`*r{Q``!xg z=4##BUx&=^?0jn7Ia_t3uVZ)fVu6`@y@|XVDL6s8DxFA%EoaOu`uHT-LgkyVCU0eN zEy3ZH-=-#@eXzY|$;?~>W6IImy=;NI)ADk0$ov&TETqU`E z2fdu;MT4EMt?kK?g}jlpOmFP*Kul_efRcXnJN(n+$D{RjFIn5)89tJ4Ps<~s<;msG zqUmyWnfr{7yCUqg-Q9lMVwR|m%6X~?aMQ`*-F)wbW9eM8_V=$ccl`!wOOhW>KQ59$`4e3W7Dmghh=k<%HXC9%Z;N=gc zE&5bHmTvYFvQk+>Qq5ku%>l32O!?8`x5CYh5D3UGC_rvj@$flaG5GtC$u!tvWk4$} z^Htx^{Zg`4BoDv*rlo~^$uDEsd;J#|Dk>^{A33zH&`Jz%>DRBLj|z>zgf%}F7M8|Y zGo^`-z5VNPYkv8JvjE-()oSr#!?ry+zYTTM6qS0o3-`OB^2TjV^c+c)X{0!-*ewLM zS3V~}SpAi+ouvYZ-`0?|Be1Qgw0(_cKuHzyS*6KqT!jFwL_PP&{W_l7NZq<|Wl4?$ zspMJxCrXL~64^acv*U8;U>sTD($h(Kb1|$Z1f?Unx!z_k! z4~^Bl<(z~1e?=QwK75+i@hakbSPT=%$zLHg{>3a}>KiBjA>X4O{wdd+^HTm1OJ?1V%0;Q6{ zBlU{RiV!xC9#5W23Pn2)R!dYNeU2+fLz5sQ`8#xpi*Q**bQw@vTbr+&1tK_p(0zm$A+r2mm4;E@zrQ9X zCeB0HMKCjg#9UL8An10?6d5q2^Nd>MV{*;YZMzQ8dH0Iz*L&6@_=IVUc>8a|Dd{0% zGXJR^%p@YZp80hSzT-g5%`!!PI8ZwzciN<_6krk24cXHva_AxL z9&}z50LZvaPyxrK8YEp^T}OgLE<-&uCOBrjvsCZYfBv)|Noz!Js+*I&CF+w#Gve7= zJ{ab=bgxVXOgnY^e1QhZtpBDmjZtUqNM%t!`~ISc^-wK2sCggjUgAMRCmaWd^aY(W z@>ibHrXO+~m9vfSyd=}bxBgCKzHKzyiu=ONLs^IfD1YJTJ^M3;)U(4V496TM^SElT zBpC5XQ!rjhbtv4tNu4AiAPo3}qn;ziM!8{PH2$gH^%`=%ieK*9chMonLO^(mc{*_K zR*i#;D{q=>>Gi3)DHN$Bm>aR-w&gQBKd-}~Uxzv+@hrwJc2y1U?2%J5j;3yJ(~GO= zg0r8hW(jL*g=;fkX`S}Da@GHxw31UCu&Mpv<0Zq0?%ihI0)PJl2L%NM1af`Bt*A=H zWQd`&4!Sk;7P4M0y}{i7RH~M3asSZbHdj~}VzT(&f~=tFbPFdy_rje4mMXKm4cH{I z!f_&UTz{>#3J2WqAlx1|ZZI@97E2`;yuM?@kYpjuy43YIuMvCO9NHaz*@Al$x)7^} zgMQ$B8EozEe;T@gbv$n?20v&ZI@vJ&+XBtH;Ydi3w0YeD}G#cm|77t`T zC&2?p7jK8LhGj8IoE_Dc%XeJX_4;tTLM6;MIe2E2xKVg?L)-mPa#P+D;8$%DMn*5< z2K!c1UAfkh=Sbtudg69>SqDAp2wE!57>sz4U$>c0s)>fMZ1S}0hIDV76oVF`|A|?< z`&vUH+P(XJM%;Iiy^-ZaEbq}pDBP>Ntxd$JD}aKNlap1{Am$*Z&}s@ZwNz!u`|{z4 zA&i0iy#v{cNS;ro9$mQQcB6YD1u=`$Z8wxJmV!ghklcR|bn~@r2A54=giG zJ=qOQnfx2^@mRf7Jw1uP|M;=|mTr59dC-Hg0ukae#H{%CxB`a9Qlr(Qm8)SzvD^|z z3dq$Ygn-*8emIUUM)D?VM5AZTK5pr!f${RcQ`)kv~HMx)MNM*spp*Zqh=LD)!o7&i9crEV(nv!Om_%Y<~mu+q5B;thG9SyCC*9hz`-3nLg%%N~-|D01Fa^Ztn- z962{HBF%DcfXUeY@W*?(^AsY|{Nll(RRD&zZ^na)*QxKesW%_3{@u#JaEv(H-k{1I zG{_>?_w9|Xggwna04C}Svd!z984tUP(fnqN2jjZHo`ugu@ zrl%venP88|s2Nq{rs}eKgt==c>3vMT`oVH@e|`2zSGV>(=* zp@F;M@rUVStVzrC>9a1Ac2m#CwYS*LW&V%#t7UR6^Vmlc>lmRd_Byt> zwDPCE6#w9SbY6U^my>}dHWt}vl92xH2m|6g=utggB-HWu;Vp9lWuXnj;g==L_{9Qmel+Zr{{1V8$YFV_i<^M6oNBbLLFvEDsvlIqmed)LFTo>B|-%`8ib}Wi(*SR!)L<_E=WOUD|E-%N- z4ZQlg*MZRZXloB4bFhos%w#5}d-nWw*zTjC zIow2%{oehCh2k~`=HtD^-%g6E3%94?WJv!qyUn4zN$v`6!KKF_(PNFZjRodNkeX2 zD7W4_(8s`*`0~|C_^4m=~h{8s3^J=J_*EsyWAd0f2|PC znGcY{|BVlN<1?27kXkW4qZ5LbWrote%(qumRIDJhjH87p90nCw{Ff{ z5V5??N%BCIBIA>GWT36TaEdky(-)7)1QteoLpn81gVpOonkTf^kG8RU1T#^%G_#Js z(sGZvpStZ%3faC#SuQLto=-}wbc72=qU9I_!@n8T5Hj43f!8_!q-~6 zyM3y6T;>zu5Fp3wPvvp{t@v=g&$PRDBxNm+o>_7voiOJ$TBx0UmQ0kdEa!SytX32c z@;>{75GnsN+O?z08tG8Un1`Mo^2sK3EVZp$zJV6(R4CXMiDF*rt90YxX6*GEgxQg z2?myYFIjw+xfCJg*w%=lAttQ4T3=G)`b;go-P(FQ14$_LLepR#keWf!3yf$lk}kf$<=u#d?H_O?Mv9@`QPdJoKCJ_ zIwl3Etc(mwI|igUj%+8F?s%||bJdmApYhXbY40pRJCzfSP}h7IR$AkEYLO-Et2Gn( z8VQWhgNDGIQ^E6XGj!+=VnaF}q;UHdTd_kF#v}`FL$@r|`ab(U&??dk?jpMreRH*d zQWZUIc!k6RW4d45&`Yz~G4|e`yA#p1vw8KZ|Kh*W0yo)!NNOy0pjmcldK!Y@h4uG{ z#Km!?4lRZWHgjPto^*KPDguB&Jxj+KPcT)(CbR!wgJoqEpBwYvL2l1;OG5Ce@9SvJ z&jzFFO5;Jp?axOj_@NKC>T~VhPF~942%XCAe#W!tb@X5-#?It-E@*!1=zP+R&wjW4 zQw=WG0`sRQ;EI{nFD;@60IZ&W{{m25VeYUXm8vgYyUV`~FfffmY)&K2E4LJ6nSn*> z=L|b>V>ULOs+)>p>t?wT61r1}w@N0ugE}7gc5~ChT#HdX+?!e=hUWR+kokqW^x3YC zF0Do_Zid9O-3oCkq~?TmAYRp`-3Uem)9^b$MmzwX%l^zhg{_hk0!6xXOR`G1So-9P zYK9F^M$de;U1%Uz#f@5vMY8&RTs0rYBIVbeXw>Bk3z(&xk0Dgq ztM54|Fq~x5d-GTAcI1{BbE4WHbWnZ!VV>=v$?{ZNkv1DkrsiDHgY6?4VrjG7m)Elq zrTjLPU&V{om@cA;(5G%FH)-9c7GkGq?xly+VaLXdj7T7U;mOg{MtLOy_rd0?ghrm<8bFVz zw_LdKx;QHvo0P6DNn4x0nVo~YoYl*AFR$y9CgpUlQ&?K8sbmC3)?Jvw^ujW(bMiMn zMrwUa6#!Df`>II|1R(6X;N{h1xraxqc^;qA&^$X5jXk)(z##1T8{}VsNBNyaA@7H@qc_|Tq=TxZ&0EpYkAROZqaS@P^Owbao7*w0hR!!B~FG}z@ zW}K}#$RT~R_`OfP(FMgPDYWdq5G_&d*ZvWV0i>9ML)f|UF^Grm`<_r@dS;1C0oN;t zvU)%W2I0a74E$tBAI&Nf5P3?G;c=|;%1Al@wW=kYR)f4+R$H6>T}}sDzmVF$VpDe~ ziK=R)q6%fq0CS1QH)@Za&D@k|Ic;Yt?bNebmhT3=*WwM-|L}*hFG|2KNaK~zW87?l zL;<}Vtjz=fiG149d%}LVO_{ONg>DIr`>Xzxiio5#}3x&C!A$~9`0^`gxY zKwhhLc`DLS7+jY-c6dUriAxX&9l1qudo6y_C{N5~n9!G?;`S}O=OGV1&R)Z!QDsWg zZ7uaF920TkOFW0Q+~QWKcJq3Ym?o;q`M+Q)lDO*|-L;yVk4?gl?YDGomHT8fEbN4* z2*pkcMOQzZs*YC-&$&Fwq$2=%*CQcBA83TjQF+$={*74Uop*;BdaHIa2qM?g_*w`lgOag{R$O9-89Q5mEqTaxHFmMSa;ph%wv0le_599|iVY z>lg{FY)S#)#F(#_8A9w7hKt+VJ}<8tmovF^JX2crAejx~oKa=Wqc_S;Mson>^u$SyVEso^^z|FHGe-1m3nAGPhH z_VnHUsS^VzKtaPfkMU&88^?zJ7?+E~nI{*q&1>%K@3?;zlarIO`UK{T)@F z*AZL&f;a0e)HSFV{FCgil`zFVvH=57du}vI2aqqng_fJqp(Nd?e@Y_*% zv4f4+g!GXJnuq;r7*|$>TTMOQXvPIwp-Ox!Fo67954An|czEk+iTH12-YJs5VHuZ@ zSV~kb%ON79AbQ~}L2rkH_#*2LX+4_=1|O1{LFq!Q+mHPnvg4U)@zsf)axF|BP4T9GlVW;6DB28=vHpq!B~{QASj&-sgmTZ*iOC+V>wAj=Ce;7sk|| zjGiaLG0!HBc}%cGHWn35)PRt#c@T{o=Na^&@xKTQ&nSGdLytM^?ib#mPcvYlPL24Z zyvy@@N)v*PdBfl_QntR^Yd#QfvdG|Rwn)LY#?s8-9#SZ2Oi@LF$} zNF5R`Z?RJRtM^!BvFX3rBYsU)qlIZSef`mIZ^*m_J{Krd=yc%kt;^1^rqLrA4#52F8 zv;oC4GC#w!eV0E=iQ7vq!2w*HS5l@#OL}*FiciumG99MVmU#8ImtFS+4x1-)0R}3z z`4ab-n_Z#gN{IJAF3%leY}r5Tc3nz6U|@qlW`co$KS$ILxmJ@Tuw-ACT5+IW9A9Th zt_jPHg_qw@(_|2yNM{G4(!DY_m}gsjnZiHOcLZ={XX$unVQZJBh}TYSLp-aux)X+a z<-mNf*k;>pzz}FfXUSR<3>3C5UdC)ndUZQkIImX&$W`i*Q3k$-=T5A;!9^Qr@Igxj3z<@iEi#K%o>Ens}R@Gskg-M z^(`|@7yB9T`g}oPn<3g2#(tRkYQ0{1lTEer#pdl5y0Q0h4a>omx|D4J{6_8xd3+c)MQ~L*0**b+cMBe+|O)t)sW-O+Mp4!>p z72o;aO>>#&HlW`l3e|mGt^rx!q);9^J9!=iOy|LNIM>%#1>JhL&lll4DF2XxNC4dB zel5;LJxS5(jyxtI+VSu#UA<-8KR!eg9})W3Ez#Al!H&Gj)ggB9;82=U1a|eG6#^!kaQztAdk!NX&PC|bjU>Wt*>(IS-&_j2 zEMB&hl@H(4RTY-d!VlYM$trU<^-fT4iaVY02`MK1i5SD#1$bxNHp}qm=lPY^nOXU= zu3t%luER+0rw!!}ew5oJw|xck#b3XY1?kyZ6zp_qGL)6u*grlP&>J9l_C%WqU)$o? zm2qIs(+^{l#^b#a+yA?RucY(3BRctZ3qLfm0XeIrE7(yrAwt#Kv3!K?iQrGr5hHB-@e!NeSgf% znVDyvbDy}MICG-3HI;E*P`&^F07q3tK?iZo`|rR&L!4tKY`FmdMDPFJz*FIahn2fM z#M9o@1ps`r;u5=}yZP`VCdS@j`*RoQCA4u3Z_1j}#}3WlYKZYgeQAGu8Kz5`dV`BGmah|3RD(KRUZ%XV385r?`yi=Zopk@N zn>a^M7KiGcKy*^hCGU|U_(H@;3t9Yr)Kz1HeH}yaXyj21cTK5suUvIS&tmzXfu)ZjF8i3RTd)UVPt{PM@R z09Kw7kkcxkbfwfr<-Bg3`TZMb{)mJH%OPL#W^ITQa~PU_I~sTdgGUSdlNej zuIj{FvxHyl2msa}KIAtyXGA%86 z{{CVd92@{(+~BgKFEEO6RRobH$G^}>;{yTOK|iP~ZglC*@DvU~@=yk+RH{iKz=Q(O zi?FfyeW(6#*zw$#CF%hHy3eA~(rlk8wo0By(_aq`4}(?r)l584OdQQ*Mv6MXJe0qK zY8!SuhR8@s(Y9oGbvlG8(9u}vyz|icAB9+~-isL_O)8G&H2lUH#W+gP~#ueIJGi0&Sl9LK1B*{W3qvGj|{) zz7>2UASLbZ4-XHg=YT0mGfXWl#XUVq%{vLz?#mMpzJi&h-y>85Kxh}Nvy<)$J(B)K z=XxG)c6}hrn05D+Y6|3NhF!2hq_B|%WAGzfwhIKnf&%a8cqbn5K4MFHev0PHZ|jM! z+eNKyP!aij!K$7HgS5R=D2s@U+*+oHAb(44aamMUgtQ{LkA;)^>*qUKlr0%re+Dq* zKn{m$4Y!|7J&O-ByIu+aXb8K7;Oz>q3RfBKf^P)`#MH1ZSxPIVhRt9_*D8Cw?Y8i$ zs4@VSw+<*Mrj=8`EiEncuD1rAQk*oNw`&-HI|L zQagSx8WjWo38va@Je&2Efw;nH9v0?Y$E zbf==P^eyMdK>=8-oUjy<(QAkm+m6q{PLxOAYDH75PIE=xJZ4o{0B(fSi+#KIKG+5z z08xyH%amxB{f$gRZT$-^BZm=R&);+kCoSPF2qpK-s%J4?>v*Q%%y7UM#T8 zCu(%*IamrVbVY~>Ia`{60@{2gyl?znz^{xEL;JpdKvas;VlNj$5mN zFV9u7Pu6Ej-yPAGhEMz1ySfg9pkhh*+ZiGeZW73S5f%cEg{$4kFS0RFuf`mSV!ieE z<>d`T0I7%-#!$(_v(E9#%T;pzDDazg5(8s0zy2i#2Ba9-VqmK^D*y8YvyOp58kVJs zn6S(3$qLY^IS};+wJ}*MjVH38fML=46+K^K{u^y={7h03lJNf?+0=Ad@Bu*B9G>(; zC6_FTIDLduwB*EbCByaxx@Dk04Ujh@+kGSoJKjL&_kp5i2C*GWUld&92MK-5!-WW@ zDAhi22JZk_KQY1<58haacJqxFWhFv$W|$+8(Qz$)7pkggYAT&Gb|4RTQoAAzBlO+q>AKMwK{8ABV&AiyLSFu*a^I-BLT`c+J5K@Cp6Nwz z5Z+*pI3-Q$zdOvx?42e$uRnpNF$?cltIl_JSPKtzWQ>ie+8cIko$h#dFJb9X&uYK@ zW~7DU$5Nk5E}PrhOzX{d++;K>X3IQzWzg4s4$UljG{*FniT9|F7n=iciZwwY@-W_1 z6I5VEnvc}^*cniqN-*Slxxn7T{Cwf#Joq^EKJ{)>YZw$e>p3BL&7CGGNQS5zKODrw z%nUx5VP~u0jmZDU;z_5{L=*yNqLIi(OYRTqsvc*-q+dtdKh0P4(nsd3x8V) zX%?UKs(N|TswWUv+DT*1D@QzLcdBj7>yJI$wpHgicVHIu=;i?gNBHf}x0!c1s=Mg|=(XeYUYo|ocw-T{-}Vqy*)dhZF$BIU8~1pL6y6G4oWh`i}8-qJK`XJuz0-f7bIUY zAn$v6IEcu9F4*6N(Rso1=Rgn|Gd#ie3z+4H;E2y6OkaCyKK64X>w%{Lyh+ zzb+&gSVbAxHwj#qZ&YF)OILaQ2JcjHOP7<7L1QqdM%zp9B(H`Wf3G~YuL&FY0?Bd~ zNtd8xL*~g^9bA5A|KnR2W^^+Lc6-G`Vy>I5YyxHSmkagv)9q3Zb`CKw%%V(?8Nkd$wWTPTgYi1gI8PX>kUfBD z^tcQ`mxrSrQuM#WNYwNIpuVG?fFj_=zwgEvfiyd@b3Q9BPH*OqE&`+cbyHOpap40& z3F{hUgjL9-;V+fRlTpIw&%|>Qb#-igieZMP11E#`Qsvyfi!)(4FC_cpDMHK5#PP|) zGy|m7t#lw8>XKqeRQ!{EoWMG|n(h;w4VJrIbVPc{xD!aDmbQ~VD?B9^+?~b7zh8S2 z{c{)rlbE=%*LAIZ#c`XFE(4>o%i)9n1{yLo<1w11CQIB(;pVX>T|d+2pi*i(>o6SFKs(;i4D-RBdptuSSSvT zj=F35PENlLT9=#axReq@`qYpQ=X!Gz2UTn$kUzL00S9lW0O)WGQNOa1QbB2{eeZ~E zs+pH}b!MNVqobm;EPbI~&!^x-t>Ld%BuWCH2B(Dr;~EceUH<$DN zowA`J#nat@^!>-4|tK;d>wumG;mKL5CB>Xvl1)o>U6yf^KDT?dwUz3Z7&5M zgw}E5X~d=TQ+eP?T1TD#6(2Ru1Yr*k(2Rf^7Mn;|uL%j2lpU$&Z_t!}p_w$@INwiX<_;h} zX?Z-oQle>BLWH8u&Q86*mQ4((sFKpt|GFnaPiEGZN9Qw3?YAapXG6{~wi0Qbow+~7 z$18fOUky&fOsXH2tI&IhkT4Imf8wx5Q@a1=(6HUv+nY{LPZwF7XG{NHT}_B6m;Cy5 zbr*<$O>ghX=HTD}xj8bl*2pLB(b?ZW(qZ;cAb{*FHvDBoZ@?*yUGT_#@083QT|mZd zBw&3D`I}6VpC3!jPDpqG>O|mMO@}3Fy@12vwHd`tO-&?jZt8e`<5{AO?mI7dOq&t8 zln$=NlWIE;7Id+z~O* zv9YmaKNS!E+C~F`mCv0{33S`yMkb^EZika#GIv!KZI6xC1BgS$ozg9aRpT!q>M9`% zup9>Nv3aQczq$3IM_rNHpg6UcJXM2r23bb2C>I3QHa1{Am-79tKmN)wF{T2HWDd^q z^a$3zil${{GIUrJxxr6P!79KBU#w_q(ltbG_qbhoxgeJibd$c+R%36R9`z*Lo)Kc@ z$~)lNdHZ(ok2_fV%^p}}(C2Cdte!4m$X`)cMR1JUa!L;S8}EA}NJwaKL7>4t zF&oia%rNM7Yrw4w4LxNO3#E2E)InB-F_zJ*H{p#Z{YLriYWL`0(Yp%+OdHJ!SxG9N$rPHzqn;^+6K-twL2!LjnOwiWa0p%CDug{+PD2CdYHgNIGC^|ZNx%uzovyF?>^YoVK@7<2Tc#V$P#E%zD5W-Ow7s^iJombOc z_?qMceFzS`*VEe!c%5z3TK^R@=P*YkpYDka(!K0%ivoLnV7zikPxKL4|Ne_xfvNR5V!nR5&J|*2q8px?ZZl4NsmMb;=JMeKvyRT4 zRq$-T5*>5OG0kgZgMo|42J(9Or4;|+tNfSEp5U(a}IH~RSpzylKd1nBgO zS*Y+WZc<#<+G$WxQRmw~itD_4XF7+yVsx=G05|WK>-;Rw(!rN)x+M5!oniD6)!P2G&EE` zS@VVEwX{U0vJ``w!gK|32g6rf28uN@At%eC#KgpTjg92qE!oVLZ{HFG!bi-J07ty$ z(52UmkP==0E2#P#mIFslk_o?H$$4mAoierjT>@Wl+$|E?gWhULE%g_<;4n(HrRK4AjDcBE^&6o)8=S@uBc$;p z*wEDr(S9%&V9^&%Vo>Km0{AYY*h=q0`E9ktvt@EB#ESo_4=Z)tC})!r5@LT5lJL7I zw1Wn?@r#dkOCp!o(CeI|)VOGrkUu_Zo*tPUqau&qnITr%I;RRt zOG^!^z^FL^C!$|{kG}7a&#;*h{uv~svqyZ;i}mU>!BkX@2-gH=@q zZR?Eu>gnl2#e4XcE5~dG*4OEfkg`Uw5YB065%xozKIr&w7j%GBI^Wp`k=l8WCS(e6 zic#)Q??#zo)McZ)T9jm%@nFEW>1H6XpGu#nBjhwhf~FX#CH;wOY{o+VI4C0MU^AAn zb6$g=Xd}Wlzu_@C8+XRH$7(5A56W#=I71k|N289{OLLKX&O*Ke1?SYZwmGm{sq}9& z?%Op&LP+W9(ON@>RiXc+lp}YI@l?puq7>U|Fgo-xlY=bugF6zYrJ|aFsvp7$qo`TzW#Ed%do>S7dGz! z-EeBl1ERdBDBbCJ8&``ZZ&{9vAk;B2E>_NB?s`}SprT;~W##{tWmhf~heS59M+Y9U_5CbhO56luBKNVPtgFicDuz ziHjzGHn>FM(sU&TSnn z)Ntj4t@>2$YOXhLPPMj=qksPRCGUF&@R%O-mrR`pA|Z`xk7~Or=riOlUvN5FF-oj> zmw$ztSX;CFe4(#9OE09iIMM-0;L~@!$J~cCWVy6p73uOh=nW0ZMnTc!)4ruUb@j!N zx&8gkY^{N*kBtlk4|~Zl#BK}@s_zoap5`2*4ODHB?GI0Xv9qt*LV!T&ytSd5G3$=o z)p?2EXm8@_>0N~~nw5sRLNt;x70XULov%Xfcz!&6lsBSAxm%RZs@RF?vJOC-CMw;^^tXzt|AAy0 z?iW(+UQwDMqJ`xCSY5VF(e|Iu5!VFW*)dn)58}2OXTniZD6Vv3g3i=B14>B9VF%Dx>9sd7IwX3i*F;4T40C<#i9>;#Y;Q~GFRngOxVxY5 zaI-ILSIb!*%#;@G?CdNoKQJ?AR(rUQf30tj4#~>8eWUiqWsK!KS$H2Eh({w{vMA`6 zrWP%vnOla%AEJ-Zchr$3xnvy+s=jyNgT-(I&zi+EatChP2dg#l-@ycae;A zPaBQ%*Q>^eSn*}cY5*2s^3Ve}Y8T#c^{$hz$9#$VpT4KMh^&7?uR^ydV&9b{Yb3xu zMM^6x6KQ^#*ExJS2%z|V4YRg|E>yiDcJcf25#DpX*~T7(Xf0#0A4xJE;GPpOXS*iH z&c#(|?*ErLF;q>7dGIDAJn<4wdD808CQ@o}{LX&*dsT+YoA`Tljwrj_^pwD>&D8nef8}dXycK?HMvL{(>%E&xSdC1+U6%W(eI76 zr^^p&bTnbqT0o4^*sjznipkeZIqe9u6lo74}8AaXVB`)-`+CMAkIaEaW^Zy ztdb~AOkOYh*RuXmugs{(SQklKR6XHe4;~mYVV*TsUJ2Krq=`Y`Fp3TfZok1(UU!5W z@q_hR-v7DmM~=k$nmpk7e!Ru=hUU+mr{~Y&E?XXnRg%3@M3di2)tsENZ*OODU;jZ0 zD~fReS1>Xlomb+WY~<56Abqo1VWC|Q*ZlMyL9J+LorP1&_sP{KjDmvI%O;lCPoK`d z*d=^Yruzx{gP2Qpt)rejUmki02!Y|T6UgA)i|RW8jsr=dUrmI(77NuM=KA!IQq3Ty zrZkAGe`<0PhA_p^mhMcwYuh@a=XmHMG)prkC00?4_1KP$J0r3V5ApWiYgZM|mq@;p zlVk`C$x!<3+NDqXFcWl(Ib_0Th)LrXEsvj5vJ=H7g=$GSl-V5jNkd6K0qFcAoi+JP zbxx*iCW1JvM+J%S!@KW=F}ATD=lnQwv3?(k2~%Wq@AUuMFh%(UM^J%RW7s@P_@O6i zcyERm&0TsmkvA+TW$H}MlfV1^`Va*BXo(rmH(^el#j78U(JO7DWb-PZwss!j)V6*X zxiY&Rpawr&Bf&A{xpF(#hRFQ~%Ol<*xYzn#RDrz5FEeCDD60MIsjGM7OD<5~LysbP z4@pn&-jc@oH^{pOHr=O z6m+Rqff`tg*dUh>oHwa#wp4gG^{V~Bv!k=n@99Vq91n}W)LWjr<}XG?n(iDOiT{gq z6E0m+&mmn-AExNwaW*u@%k+(0;5tOr<8a_Q>I-R1JT)vu9aZt4!f`;6FTJ0BG_*{W z2;|7?P5;5OF{XZr?1@fCDRS%2wVIulQx^;dEN07>YdYi@wtZ*e9r?bSZts3~0O$6@ z`sk85V*gfGLmNO9$Ei(pz`uStFlX01y+Sx)1N-Muo9_1$D5zKQu)rK!uRHA zfiFxY=t>h?sD(zSMs!Bvbz248L)*<~>MOEM-@o%>s6$S=((i=eKF(lMS6GIvUMsq* zbO*C5ecSzwlhe4d$~(jYrSoS7CIN*jBU~M(_llji!bdX%gtP7{sUMdNOkA9lhW8=w zvl>DQTjZre1|#RJ9z)0)3Q>Db{I%hl{93e9w&Uqz9efs#5 zRtDpOOj`AHwQj5|l14hTyQzZ97kYi!dRIbDvuK=MHYA>D-hW3yTz=$P7OK|%k1#(f zY&B7f&+P@|K5UDN^>b(_j#pY{8g@@FcA%UB(&WYixcJ!f3)9=C?V2w}?~}CE<(uT$ zimEM>9&)M+aQ=g_NSp$zJY(yP)lxoIEQUbksNW<6h2DjU0I?r^J?`w5sii3Y5>?X_ zUQ!?`AL(SG4ZXOAGMCGMce;@ z$~x|K{?(muN!xsQb3d_(gH!^iDcO{E5L$5>N`eYG$v1gj4?HTCx#O~0Cd|g|0IOls z`MosB?TA0gi2CK!v$~}n5v|9!fkX^>DSu`L3X(!>hl<;m}DT?TfKudb}=FikO89!TZ15SY}yJU@I;4f16tt z`M1#V*mb#MZuBTA-12?v#8AwkaOQwA6geS)&8;?Idz5)cduT6N+?L^)OFdOlnQ_ut zekNw3$GbVYO%I8l3YdSx-TFH9vpWW%K<+)AR4Eb?Qkpz%r`d>XIlDg7dVUab^&Bnq zs+>nOUr)f?U5;DoZr?Q9K-6{pIIaV2-66)!Qq*F$jemy+U!2#LL0(D@uxxJFd3QN_ zHB6+5qh_5V4dXM#x(PhkcfxRz&3TXv@S-wb!T|5NWtvxc(vM@m8Zhh{?Gue^kz{?< zLm&B?0ZxKx7oF4~+G-k4$DuUPekE=*-b-{Chy^6`=EBr?^3jNk@xmYe5e9!@l|o8CFkvwZfufkWV+!W+nQ{iUUVfaa_6u4mE7d#! z>NyV2SJCz8gU(YtE#%3-{olWp6Eq&ybJC4eNl6F32G&_;zIg_LMNU3ikhI^=MH-z9 zp&pkB%s!lac-RO^vl$SGhQ}UmIqH>^_oQgT#4otfN5wc!c>K*T_h6w;g+vP7w|%8E zoiuTL(rviAbLqRD4oH`gW@-BCgW5#~ihhwK?-fyWO16bic+l7Sv=y^cpI!Ma+M(GwA30qo|%iChs(-I z^w!&342G4KwE$~{56##6QQ+)L{D$qdS6e(_zd+2rA}6U=W~}H1@LD?=*FiGIe4~po z4RxFT+xOT?6B_Dh9EF1PQ_we*mH!-4Hw!|aRs*SnJPAH7tx3E4MG&dc7JonTHJ@8s z;?Q57{1Omm z6!|e4G@uGglN&?t-^YNek)l{VYEk#zY;eICYzJnjJob9p`h_|UsFgjp4gJeI*y>lU zREMBklgF>|0$pKFLH-`0 zE=#)~t{TW%AS3&bqXqLwR{f40Z(c_TWb)_8echt*>eq_vm#y4unOOMSMfYC)Tuo{;*2pOH{TxCSNQy^l@hOnR}nq~cn zf~B0K#iV>81Awx<9|-w~&-`1{G=J@leq36Gb(e#gYe)ynVrQ+Ta_&PY;%Gk-<=Qc+ z|9)%~Lil4p;Na^_%tma)g$uV;uyIJ+zJ>~`?jwYA@-ko!fp&Gg zJv1fs8AktC>5H#0@Uym7pmu3BeNwrkqKt{WpB!6hbyw0xK{gQrR@{q*3=7Et)YMhv zHOPq^Eise7q|?R6hle>LB+y<*$CsK+_J|tJACFUtwexr@^k;bAuU@G<$~nu|noly~ zRbOAX-STs;olQd#E-7F7AEtRb5``+_{UHKV68$39ELKJWfcXp&`|`9=EA+u1S-L~> z4D98vR6p*9C)U;qEz@YK$bD8qI!!I}j-5xx^lqM0;o>g)vrk)YL?5Ip&Bz9^z_)7J zx$kq$^Osr5nB$1@pTCDbJP0!g#35@Yo#CYxO-X0X0Of?qs|(CVJZ_owJI^}E^KZ_s zFU=Fy2_Q;SQY*0qADfp}w*q7+%W0*YC(KM2bK07#g0@DecsAkpa94%KKjG5{wB-{x zx%BRN=x7KNH@PB*xD@ zIcK#eNK3|KL{;T$X;@BOb?pW=s_gilItR`9V&~Gg8UCTky>}M<9s%-w$t=v_C@sI% zYi8bUwf?&CKQ$HW1c~!3vPm1Q=>UDBbnSe?D#s?RW?Z(S)9a7c9wtF|5Kyz$%yx(*;7^R(;c#YOB;vz;jrC*QvoFhZF`aB+#*oKXP0~EQ^zcAj$@_< zAW!Wxd!9srSJr!ZeYy5YyB0K*P;&FZ_n$H=la88_>k;xsH-bHFJ*QOt184st&U^4^ hyR~HgpL$QyqWwLpOeoLSh%Kyus-mVsxtvAF{{TeU7DNC5