From ccd618d877220751b21023221c6efafdd1dd8a5f Mon Sep 17 00:00:00 2001 From: MrDoomBringer Date: Wed, 9 Jan 2019 14:05:51 -0500 Subject: [PATCH] Fixes certain situations where people in supplypods would sent to nullspace (#42087) * reeling it in * Revert "reeling it in" This reverts commit 2b795a8baf5eec89fdc1e6b6a6ef9d36276c2e62. * ya dun know * huhuhuh tiny fan * Tweak tangentially related formatting * Update code/modules/cargo/centcom_podlauncher.dm Co-Authored-By: MrDoomBringer --- _maps/map_files/generic/CentCom.dmm | 530 +++++++++++----------- code/game/area/areas/centcom.dm | 4 + code/modules/cargo/centcom_podlauncher.dm | 28 +- icons/turf/areas.dmi | Bin 39963 -> 40340 bytes 4 files changed, 293 insertions(+), 269 deletions(-) diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 59055650072..27e6cd8a779 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -2246,6 +2246,13 @@ }, /turf/open/floor/plasteel, /area/tdome/arena_source) +"fR" = ( +/obj/item/reagent_containers/food/snacks/egg/rainbow{ + desc = "I bet you think you're pretty clever... well you are."; + name = "easter egg" + }, +/turf/open/space/basic, +/area/space) "fS" = ( /obj/effect/turf_decal/tile/red{ dir = 8 @@ -2933,6 +2940,9 @@ /obj/machinery/capture_the_flag/red, /turf/open/floor/circuit/green/anim, /area/ctf) +"hH" = ( +/turf/open/floor/holofloor/hyperspace, +/area/space) "hI" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -3707,6 +3717,10 @@ }, /turf/open/floor/plasteel, /area/centcom/control) +"jA" = ( +/obj/structure/fans/tiny/invisible, +/turf/open/floor/holofloor/hyperspace, +/area/space) "jB" = ( /obj/structure/noticeboard{ dir = 8; @@ -4811,6 +4825,10 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/control) +"lS" = ( +/obj/structure/fans/tiny/invisible, +/turf/open/floor/holofloor/hyperspace, +/area/centcom/supplypod/flyMeToTheMoon) "lT" = ( /obj/machinery/door/airlock/centcom{ name = "CentCom Security"; @@ -22837,7 +22855,7 @@ aa aa aa aa -aa +fR aa aa aa @@ -23344,21 +23362,21 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH aa "} (20,1,1) = {" @@ -23601,21 +23619,21 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH aa "} (21,1,1) = {" @@ -23858,21 +23876,21 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH aa "} (22,1,1) = {" @@ -24115,21 +24133,21 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH aa "} (23,1,1) = {" @@ -24372,21 +24390,21 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH aa "} (24,1,1) = {" @@ -24629,21 +24647,21 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH aa "} (25,1,1) = {" @@ -24886,21 +24904,21 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +hH +hH +hH +hH +hH +jA +jA +jA +jA +jA +hH +hH +hH +hH +hH aa "} (26,1,1) = {" @@ -25143,21 +25161,21 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +hH +hH +hH +hH +hH +jA +lS +lS +lS +jA +hH +hH +hH +hH +hH aa "} (27,1,1) = {" @@ -25400,21 +25418,21 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +hH +hH +hH +hH +hH +jA +lS +lS +lS +jA +hH +hH +hH +hH +hH aa "} (28,1,1) = {" @@ -25657,21 +25675,21 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +hH +hH +hH +hH +hH +jA +lS +lS +lS +jA +hH +hH +hH +hH +hH aa "} (29,1,1) = {" @@ -25914,21 +25932,21 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +hH +hH +hH +hH +hH +jA +jA +jA +jA +jA +hH +hH +hH +hH +hH aa "} (30,1,1) = {" @@ -26171,21 +26189,21 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH aa "} (31,1,1) = {" @@ -26428,21 +26446,21 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH aa "} (32,1,1) = {" @@ -26685,21 +26703,21 @@ lI lI lI aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH aa "} (33,1,1) = {" @@ -26942,21 +26960,21 @@ lI lI lI aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH aa "} (34,1,1) = {" @@ -27199,21 +27217,21 @@ lI lI lI aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH aa "} (35,1,1) = {" @@ -27456,21 +27474,21 @@ lI lI lI aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH aa "} (36,1,1) = {" diff --git a/code/game/area/areas/centcom.dm b/code/game/area/areas/centcom.dm index 6e61e3a90c6..5db39eebc66 100644 --- a/code/game/area/areas/centcom.dm +++ b/code/game/area/areas/centcom.dm @@ -29,6 +29,10 @@ /area/centcom/holding name = "Holding Facility" +/area/centcom/supplypod/flyMeToTheMoon + name = "Supplypod Shipping lane" + icon_state = "supplypod_flight" + /area/centcom/supplypod name = "Supplypod Facility" icon_state = "supplypod" diff --git a/code/modules/cargo/centcom_podlauncher.dm b/code/modules/cargo/centcom_podlauncher.dm index 0e0d81dabf2..8d83ffdf75e 100644 --- a/code/modules/cargo/centcom_podlauncher.dm +++ b/code/modules/cargo/centcom_podlauncher.dm @@ -2,7 +2,7 @@ //This was originally created as a way to get adminspawned items to the station in an IC manner. It's evolved to contain a few more //features such as item removal, smiting, controllable delivery mobs, and more. -//This works by creating a supplypod (refered to as temp_pod) in a special room in the centcom map. +//This works by creating a supplypod (refered to as temp_pod) in a special room in the centcom map. //IMPORTANT: Even though we call it a supplypod for our purposes, it can take on the appearance and function of many other things: Eg. cruise missiles, boxes, or walking, living gondolas. //When the user launched the pod, items from special "bays" on the centcom map are taken and put into the supplypod @@ -71,7 +71,7 @@ force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.adm data["landingDelay"] = temp_pod.landingDelay //How long the pod takes to land after launching data["openingDelay"] = temp_pod.openingDelay //How long the pod takes to open after landing data["departureDelay"] = temp_pod.departureDelay //How long the pod takes to leave after opening (if bluespace=true, it deletes. if reversing=true, it flies back to centcom) - data["styleChoice"] = temp_pod.style //Style is a variable that keeps track of what the pod is supposed to look like. It acts as an index to the POD_STYLES list in cargo.dm defines to get the proper icon/name/desc for the pod. + data["styleChoice"] = temp_pod.style //Style is a variable that keeps track of what the pod is supposed to look like. It acts as an index to the POD_STYLES list in cargo.dm defines to get the proper icon/name/desc for the pod. data["effectStun"] = temp_pod.effectStun //If true, stuns anyone under the pod when it launches until it lands, forcing them to get hit by the pod. Devilish! data["effectLimb"] = temp_pod.effectLimb //If true, pops off a limb (if applicable) from anyone caught under the pod when it lands data["effectOrgans"] = temp_pod.effectOrgans //If true, yeets the organs out of any bodies caught under the pod when it lands @@ -155,7 +155,7 @@ force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.adm if("launchRandom") //Pick random turfs from the supplypod bay at centcom to launch if (launchChoice == 2) launchChoice = 0 - updateSelector() + updateSelector() return launchChoice = 2 updateSelector() @@ -375,7 +375,7 @@ force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.adm temp_pod.soundVolume = soundInput . = TRUE ////////////////////////////STYLE CHANGES////////////////// - //Style is a value that is used to keep track of what the pod is supposed to look like. It can be used with the POD_STYLES list (in cargo.dm defines) + //Style is a value that is used to keep track of what the pod is supposed to look like. It can be used with the POD_STYLES list (in cargo.dm defines) //as a way to get the proper icon state, name, and description of the pod. if("styleStandard") temp_pod.setStyle(STYLE_STANDARD) @@ -416,7 +416,7 @@ force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.adm if("refresh") //Refresh the Pod bay. User should press this if they spawn something new in the centcom bay. Automatically called whenever the user launches a pod refreshBay() . = TRUE - if("giveLauncher") //Enters the "Launch Mode". When the launcher is activated, temp_pod is cloned, and the result it filled and launched anywhere the user clicks (unless specificTarget is true) + if("giveLauncher") //Enters the "Launch Mode". When the launcher is activated, temp_pod is cloned, and the result it filled and launched anywhere the user clicks (unless specificTarget is true) launcherActivated = !launcherActivated updateCursor(launcherActivated) //Update the cursor of the user to a cool looking target icon . = TRUE @@ -489,7 +489,7 @@ force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.adm orderedArea = list() if (!isemptylist(A.contents)) //Go through the area passed into the proc, and figure out the top left and bottom right corners by calculating max and min values var/startX = A.contents[1].x //Create the four values (we do it off a.contents[1] so they have some sort of arbitrary initial value. They should be overwritten in a few moments) - var/endX = A.contents[1].x + var/endX = A.contents[1].x var/startY = A.contents[1].y var/endY = A.contents[1].y for (var/turf/T in A) //For each turf in the area, go through and find: @@ -506,7 +506,7 @@ force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.adm orderedArea.Add(locate(j,startY - (i - endY),1)) //After gathering the start/end x and y, go through locating each turf from top left to bottom right, like one would read a book return orderedArea //Return the filled list -/datum/centcom_podlauncher/proc/preLaunch() //Creates a list of acceptable items, +/datum/centcom_podlauncher/proc/preLaunch() //Creates a list of acceptable items, numTurfs = 0 //Counts the number of turfs that can be launched (remember, supplypods either launch all at once or one turf-worth of items at a time) acceptableTurfs = list() for (var/turf/T in orderedArea) //Go through the orderedArea list @@ -531,16 +531,18 @@ force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.adm //UpdateSelector() is here (instead if the if(1) switch block) because it also moves the selector to nullspace (to hide it) if needed /datum/centcom_podlauncher/proc/launch(turf/A) //Game time started - if (isnull(A)) + if (isnull(A)) return var/obj/structure/closet/supplypod/centcompod/toLaunch = DuplicateObject(temp_pod) //Duplicate the temp_pod (which we have been varediting or configuring with the UI) and store the result toLaunch.bay = bay //Bay is currently a nonstatic expression, so it cant go into toLaunch using DuplicateObject toLaunch.update_icon()//we update_icon() here so that the door doesnt "flicker on" right after it lands + var/shippingLane = GLOB.areas_by_type[/area/centcom/supplypod/flyMeToTheMoon] + toLaunch.forceMove(shippingLane) if (launchClone) //We arent launching the actual items from the bay, rather we are creating clones and launching those for (var/atom/movable/O in launchList) DuplicateObject(O).forceMove(toLaunch) //Duplicate each atom/movable in launchList and forceMove them into the supplypod new /obj/effect/DPtarget(A, toLaunch) //Create the DPTarget, which will eventually forceMove the temp_pod to it's location - else + else for (var/atom/movable/O in launchList) //If we aren't cloning the objects, just go through the launchList O.forceMove(toLaunch) //and forceMove any atom/moveable into the supplypod new /obj/effect/DPtarget(A, toLaunch) //Then, create the DPTarget effect, which will eventually forceMove the temp_pod to it's location @@ -567,7 +569,7 @@ force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.adm var/podString = effectBurst ? "5 pods" : "a pod" var/whomString = "" if (LAZYLEN(whoDyin)) - for (var/mob/living/M in whoDyin) + for (var/mob/living/M in whoDyin) whomString += "[key_name(M)], " var/delayString = temp_pod.landingDelay == initial(temp_pod.landingDelay) ? "" : " Delay=[temp_pod.landingDelay*0.1]s" @@ -578,9 +580,9 @@ force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.adm explosionString = " Boom=|" for (var/X in temp_pod.explosionSize) explosionString += "[X]|" - - var/msg = "launched [podString][whomString].[delayString][damageString][explosionString]]" + + var/msg = "launched [podString][whomString].[delayString][damageString][explosionString]" message_admins("[key_name_admin(usr)] [msg] in [AREACOORD(specificTarget)].") if (!isemptylist(whoDyin)) for (var/mob/living/M in whoDyin) - admin_ticket_log(M, "[key_name_admin(usr)] [msg]") \ No newline at end of file + admin_ticket_log(M, "[key_name_admin(usr)] [msg]") diff --git a/icons/turf/areas.dmi b/icons/turf/areas.dmi index 25048353923084a5bacf5117345d00750b591032..b7d83a33a73b0de50cf63cbbd9aa9b3a9febe05f 100644 GIT binary patch delta 11093 zcmb`tcT`hN^e!Ag1T27b1ZmQHFG>+Xr3!)+LkYciM0yTIItbF6AV{&$2_Pk*_W;sM z1VjX+1f-Xc@C9G*THpPx``2AJYn?OC%-(0uoS8k(%DeQQnJ}-wknJu_H>H;X-i6b&mx#pRS2q zoc-Bco$sY+;F+T0a^IGzyx5&b56RU};ju3Um6K;ZjXKY_vT12t4B8(;YctikY|AvG zaz2c;?YFXqhWFH4(=%lXt&#(h(+8LWzc&iw#A`JX9!9%4tvkK`;CD$0@$r{FI2!qEX;{g_eBiV>PKw z?Rs%r>wN0^kKSlgDrJVxiT&MQ89HuOUtvr4^C(CUxB0+sS3`Ot&YPd3L;b1xjOET( z17WS(0U6dtx1-!5k$cpXP&3RkcdgC4PE}c^z zw6ew^1e#}Dq8D(^OVUWyazyO-M!y^_k|-963+N|p{M_^Ie&Y(-fN7^>ilM zi?8XKSP3k>jC#mVv1*9;B9#@oEDB_NsroZarW@&_Lfd0LKQ8j06vh7uF3 zCo=DI6@^!^sjy#HI9&i650|{YQA@8#=0Pm^q5DcSc4U+77l(u0$hYFrpVt|Kuq=x= zH^y;7>R@sT=t$`Id-(Z`6Ii1qn>8HJ)4iPmo!@L%JCPB;Z8x;mE6tS=@4 zJ_gWag+PSGLt9O42mwa%D1!%2<8Sm0s6D^}B6o@1#9QTS8rQoAc*kBU2Ft{oKL|ZSEdhg_|Gu>XRfs9(vxglb?m~a&+7G-r$c7%a+~id`1*ux zZ_vz7syBTZe`&OKx0_&9iytspVyA0Oyl%;EYl(%RGW<(@Dmol(l%NrrJ0j5 zE9TU-n|_&={@|_IxX-C^F_*68-)t~m4@@}eqiy6!HZkR+zF!waXkHo8T>1f7>rJhA z-@E_1ef##*X@_MEFC&x4D`18}#)HV5pV;kj0uSL;GfT>u4YsOT^T!h|BGwVJVL3uo zFI=B}nd^9bzgT~qpvh~SBM7k2XjFA}x!0EeGo00Yj*S?Lik@7NV`zEC^h@PctoHlR zw5o{$t1_z4>+c+y$9+=k)gKB;240-2Mxf29Y?>3-+nkE&i4d=4pS^$NqMc+JUCid| zDQT8XMC&%SI6;szJI$h!L1Opqp~{BvqLuVgcjFHu1KE<9LlMJucbV4nGq?TivI9_zc=-wzmEyz+YAtO1Z2T3E#I85KEnzJQPSxLWF4dFs^s8RCA z?XLSSu6wt-&zoS+E>biMj`yF#k3VBBhT+HG7fgC1X^d2VX=?(~*dCK!ITEdXk1TVc z{3y+-#7F;ku%UHlNgNJVq{t{^O;}wLZ~YboajSuHW=9PkIGxIy)<6aEFz8)SWqKKF z9A4qCF7W@u|8HUC5_1@5EYssuSG_X}bf2udB4*qqOjU`EZ>+O4QQb%YE^-j%SY`@WGHFJZ&s1d%uITYX^hj&9 zKUfNPdiMq~2>*Lv%hq<8g7}x?iB=0$b1RuOx=sfQ@W2$1ef}sW6T;W0OAG!T%eSOU z%Vh;Eo?T3hJ53{u`kb_;;qft+N~~4y$A6Nx0)CCIbB$0HgVgB18oamm1tR&ZpxqYN z6$&CMGQ%#h=p$q$15B4@)!#|a8tTXy*yd#uc?=j{AyD3T=f;Hh>XWKm%1IkFgcToaQpgL3(qzNF^&+c(Y0M81d;@2Zh!Y^_=nB16O}G{G@;XcsRC~>Q|YcJVj9thX0XMOC^n- zbzmBYRJ{?O)pBSWw=|2fBW%X}(=Gzg`(_nbT$asw&x4?Z*ttC7h7`fv*c{R03Ek-a zD(bYimOSA1#BK`Qu(tBLBugGA-SOq((J`XO&!snluYu*OvL9;2kr?W~cHC_XQZ|wz z2Zz)hgbZo>6+doK68Y72KG2{*L}9D~z9wR4S84474s3I>jypAo%VmIY@iOkGFb0Ye zxTI(VN<7>28kZ%1woDp3=!%k68#FM%m~Adz6qaMrg|5u?hlS_`xxpUK-)B7|turv} z`TA`DCwRNJ-9(z4t=aYbxb;OtFwSRL)MG-He7eMwSb0n=%uJIhTc;k-Mvw=A|Xn3{jyyma>;Z+q(5vB&92}26=;a zlRM;32W!8`XBYqh9^gE)mByDjL)$-K^34O@j8mQekRukuI{m*gjFFzc|EUW00+#<^ z{Ib_S|47B2%h}|5yQBZBw7{xsRfk_o3>pdzeCOW! zyJ`-e)jZ|>Qt{zXb}T?X`0bFh33w{Q=i&O<&4kY6o~46F;+3wBFCbH7b__9R+pFyd z51%_+<^eJr=12(1~Faj`9yO5|t2I_}QdfcJ|41Ttu)@uVq#Mm|CFc(JNdK4amo z9li*L!}{i}?We7c1uClG^Dg&}_fH4B*Y6!?G~$(td!v>FM!Ju6UT!PRLNR$G`4c-c zx>rXiW{kGm_}dKUokjvzG&Q~CEjB&B?*rziW68`EGqQrm&tW1${d*yY^N8btjC32n zwkE`4V0DnAIvEAS+r=E)^vaC8<@D4~<+No2>m386h*3aG&ELXPj}(^58x#zIl~z|$5B$>hLexv>OchIT9fzYc=fA=R zdndvMpWuBTpIpNKdAYZu*L2?eNPejahJH16CleIsUeB;-6p}On#L^5<8I2zv>0>q@ zp)&lNXQb;|jV0-*b9$^|!58N!D9+__+SI!OIQ%Rd$)~NuVjvYL9L@y5QQbK{X6?}Z z%aqTr65hB3@5LKRB$KK4Z3CQsbp>VR-FBUf$jW1u6N8lSJbsGISO=$?qZz_YPYszG z_o}6Vma*!C*k0XV1HE&27aB}Uta~fK>U`Hou|CA;{(wPJUDB63nw8Ll_I#`tt&IXE zM|!dKM&+y2HPU2xi@A-S@3e_xsqx2YVf9Vb+al&K=8bn%bWP@s_5FrIR{|XFF$OBY z^5Yk?p_4N2k{0*e-%|Pbysz zVlghJP=zkNF^jG{3b|EBZ6&`oqw%`>H-FuV?ltC@hsI0qzX)0E(5ueKJD>^fI`MY- z&4?+#=DKb#y1x6F58*b4Hg7L(tRn_R>eldIe3mb{EZ{P;3-Q1(~W1Y*`sYG54^N<3~RY9Fk*XfF0+D9 z75V=edWx~Gv zx&ll1rJ+lDK^?;wBL7iQ)XD>FiHOcW2{Xw?6XKt-m8v4`R=$6N$#MsUia0#y?c|T( zNi(rCxe2Oon0ngs!p?tjUW@*}b}bw#By@tFy<$tjgc|`%$&zG%Q~Qeb|GYLRf>`yh z3;!Rl^2OGE;*7)?;tUGXihY#^=I#8{+8oVm zq&yY&A5;98e1oS5A-}p0ro=C<{}nw=sNWdS(n&BqbXc9vWGyKVkQ~?l@b_+Qa%dcI z_~EAOa0bpKVhtMRsKMZc=Y7XI zfvlxAm&IQ;y3P?OdN3`|s&8;B4~(saJVlTqlPs_u93zU8cY{9!YG{i&7EAT`_ku}_ z3tjMFAedkL#-mRkj|=)lX^IOMq6)i-1!zwduLubB<)kT@)Y_f?^~{pKYDgW8IZ`Z6r0|HP zYVHrPbpA*e)9Q5;R!3#Eb!fH3HLl-jr8!LSg*dL*xNt5I87RHE) z&P1^5bF4_Ael^!xh`|GDb4u$dvY#RB+g1nfAD(!E9Z$ih>~p@eV`u57dwEtn_T)!q zugtK$Gm#)7ydv`nBB_+pw0tWnnj+)JH`Qcq*`ZPB7S_?9z3?rmN)lcr`Zrmjtro&C zZ?3mMtnNp43f4McYOamwDhL!JOzoP-1~%uO^T^YRIuHYf=7(~=vsbFrC_!@#wBC|C#$m&^**8OYM{2!TKEoPa4*{N{tA57@ABc2Ht|PU+!GoeSq{`2D^_B!Sm0Jt z3W`8EnsvN(>MDyU2*g&{eO*NUS*_WPvF1mxoh5$uuSiQZ*Aq{T#3`j$z#mD-1@43* zu^6V~NRN+&jd5EJo<%t=+7Fg3^J~KMr;e<5L`nftyd_;x1(TA#%$ zxha;;Vt!zGt!C_@R%|I>_jCSwky&sj07#*uX1vNfknqyR*~E3F9_cF#AW)KGYF}YL z%?mqo7i{u^_|YrJhg$oY5mx)qTis+L+dNZ>qn}8S2eF=rgVg?ecK6Hk8_Di_v^)qQ z0D;hfA2o*1{G*8n0qT~;D{FpzlDoD!gSM-K_xSc(wRSn-Rza@U1o&!fSRl@TKM3}> zpSg>An5*|+A2>O(2($9Jf@UsmAbOY&nG(UDWE*H3Al457Ns@-mv70j;(t3 z_aEA^);qudFogc;obhLDHKg%uZ^>lduA(KS{eg<>>p6I6R398D08wgKOc=kl&)Y1znl?P4|wHZA@GCnh^+LK z)zUXhhm&v3^J)OrPM+VTL1@(S$SbqtWN9l@0~D7&;^r)IxPO;Y00dI4@>`1Faq_D( z4K=7!KhFNGVMg5FTdi7i+@ALq@8dbstFvWH$wp(+8K(pKz*f{k_=|>#{gI_vm7UHq zrn7T~uq&VtqBeRPpV+=*ZowW{d1TOTJGsJb1hZ3(|AQcv=j?gZxWaUkrLRZwuu1Le z#l6$DlP!HkrOO^eQljz_^-+^YfvL*Iwq>IGbCY%(f%(**0?FnIo15oO&PEPF#YubT zYb&!c9eDujrIVB2ptCAyH?$6`c}k1M&4|M9NENQ+nA4fO&~{S1_@4J}r~CMv(gFms zXs1UnXrcD>s))_CZ+3z2ap3%mx>x`^*42zk_Xx-a{H#TA?$0~toO~5O9ABPU^GIr7 zLNK%p|4z(82!o^wbhu04gB}+-8x#D};7SV=k zb?$D1vftSf73HrV*7MX%D$$AD28mq`en`YOEc;0K2_a~L__FnasdGt8AQ0z&4P2S6 zNo!}i3L+(V`v>oh_|O3n0e<4+eJRWBTs90H8rhD)M`U|dE2rUBLKVDE(Js8u>=in&xMeOT* z@;ZCdbF?@!hLcEC^x~2Fb@N#MTu&22Y4Ki&(n4rRB}6&o4jhEZ0C21v98Dg_BQepx zdj=bxtG8kl+<7>FrVrIvnR-}j%UYnXo(lN7s8$CF2;`C4axhl<`vP~I_`4p}+Bn#Z zKC1O8QCsw}*Kx<$&M3VSCBeUW+h|8#mM3%mTKKqWFH&Oj>z)=9n31BB@yM5?G(p$+a}c-dYL0EiSxxzt%BDcb zVKEfmbg#_NC@PJ{DvB48$t1G)&}>?P4Q|XedS<`7--J~V(X+$^Vn@0W{gILQ_Qr{1 z0f2c`KpSkn$E-OqDm^0E8j{Xh7>tIx9BH8NyuEEALmw00Duy-pQffRn0Iy;@CVRv3 z)_5}V%%i5#f{q3-$6L_7fkis392B3K{$A?ux`%z@zBS)_2lAEjCF>$^&~pz~5m#!C zEmeY^3+-SB|H5?J+=~;F1pt##gAf|>|E_oht-qrHXIK}5n5*6AVO+%O35k}ZQttfejnWdHx?{J-UH`#ZC!NCD=A5kY#w@T53WD5x@A2zx<`X)Zt||q z*C?}hsmOyBv8(YthRJ96^>^DZ^5l_EBEIP4ppz%+7lY%{1zV7t0G~STvrp*gr`_q= z3~6kz#pkySz(LiK`@8g~s$ zes)R=?-qa^dHOm&)P5*w`5}f`NT*(E+`IY$`5|$uP6BQ!)}cPN0$W!YKf5O<=f6E` zpO1Z?j_-mefNIeSYR)qo<%Rjc5SFWvgdD};*I;#b18t4jj4;jE%54*v%}!?4s(h`M zX4GDarcULl$4U-vxu6B07T&?}CFaMwy%yO;1;64U|?-U8|l99wcY| z99U5nu+0BmB8z$jJGOKi9Eps&$rM=WM_RL@kop>kYHz9t456qsU5$tpDOZvZTC?ym zYq+nfr2g~C=7<*FS02azNdBooZjfCVH#qc4SaP(>zdk672V?WB$G((Aa4injRrUOH zFdrelcQ>Kn=mEnc?Ohvc+mh1walxNfE%p_bYAkk=QB3+9y?%pQBWde=;~P~ZLo4e0 zY0W?+yMN{=vzyi@NQVhsEMJda3q(~ln?AmBD9GPzPj2pm8-Jl3f*sNPq;tJ~E* zu$ZFWXc z=4atQ2TN;Jrlsq^l!`L%JzsygZZqTeE=V5S1)ZS>>j8CV+$2 zrD~V5>ACk|O+i9YTwLmeS~+XuKtNtfE~Vm%#|vl7ZI{ZlKe-)>aiWM5GK=KFcBdyx~YWh&aO+A=xiei*}QMFLQ6DSJP(G z;yVu4RbR8?W>c0L`dh>)FARz&D&dX$o2rZ(kb(TpJ|lE#Y`xOh%MBb#+;kd{5_|hpyL9+ zQ6r6mSXZpbV`^KwIWEQMjx`HMOBPsAmf{tR7kQ>!qH{&Nz9u1Xxi(rPX1@QDO_HF- z8aDAQl2nQ!{RPCCRiML?F?Da`8;Frj!omKFFs!g(gRzA}FcBjo;VAJb%Kadk2xeD~_EB^*B!9 zC9cgAc^fdo1@K;8F~Ki!heFX0>+g(p==8~#KaD=g5?3I>h?6tC4K8e`(-;|hDA;DD>UMucM9eggoltBg4gpWvQcds?BxWee#WE8upD6K2E+yc~H_ z;hc_|bCgEHXmlnUST&SU^vPo51fCtRoAuUxj)P%pKwjNFaAPI>3&dMQRlQF&Q0V+M zQet}emRo(d#lk(czg2bVHkk1r&eIhw>mFj-W}aR|188!UYHsvr%Q%n@_|WPR!zSUy2wh zIgRcDbq=S}o~04dRo#E~x=(BB;$leb;v7U&w7)*onK|R**wT7tOKthqA=GflIVWQ< z-TjM1!;f;ory9$s_xE3tPd#_6uXIHS?Zeo<)M(`h*wv??RhC0$t$ZW8_G6W)HQ22* zu8S@4OYD+&)fg28CQq%_8LkRYoU;G=9`!q{#UHMeP>c_Q!I zz|~xV5+0azMnj&w3_I>XIW_=(#5qx*D^HK4y;894C}&x=`Ea@^^MBDzQa0?aytQ?#dy5 z^M{kxc6hf%4+oUH6mY}*&Dp)XZBoxw07?i#m%6|Kjah6OX{Ij{DGVO;hj>x+e-o$P zq%0B{=~|obJH!0{TFO5;8}D91ZzBF~6!6U(n08?x_u|9PQcw@G?a z`_a}~qJK15$?e-!K5sI;+h7F`jXsj0Oe>RK`OeQi>0ZkABA+QpuA#8u70Us<)^uHH zi=02KrlXd%#B?->Mj*ITm7{P$F&-qHu>q4fjEtAB1!mc!XF}DjYsHc!^oM`V+28Ko zG$Lk1AU#&vv~OB?srV*e)0sxcfm=jCjouvT!>~_1S6$xS)sF)AC3H&F1#<*fOigrc z5x*dE&0$|}=NB5NISM=QH--TP0@E3uF$&y6idwt30w~0!|D4ZG2dtB< zc)82T_;QQ{pS%pl@3SggScHaUi18mvIeJ{e_#UhEH?g~#b%u}S&^EPxa9Lvtn|Q6K zX72KiSJ{qQr@|nS!R>~faA$}Rn&RRp%*P5_T|g#ilqVmRE;e(W3bq1(j>B$nan{eU zZxi?b+9pzejb~mMeNl|`6}bo!m)eb16Wpf`vf1lipI`nqPohQvAGAXvTx5!hZI$Ye zWY$80cZT7QX&vG8HegvWD1^T8+FpyNmNGc;?c}5-m(27VSIAkOhD3&C+tiWkOS1-Q zt00fOF8qnPwod6WB^khqj|tEV8E?uU{NW~$jVBU2-yDRXV3d3J_tlU((B=7}jWJ01 zMV83oN%2aC`wUUF)4H5kl$>!n+Wi9C4bP8r|A3~l{ZI3jH}YrP@0Zqp=#J{(Y>8yZ z%d?C}D$G49HgEAOK2*S)1?dwK zT(#?!LF^_7lMMVWJHM$Q%E{{Z@AM#Y3Z3}z8Nc=dqjOU*U1 zN>Je7BKA+?-`XRi`D$4j2I0y>6@X;jTj|S*6r2{ zoB$uX!mK%cg8Xldr6foi@oMubIzrybqyGMW?|PWvvb+hRQpb%+uOS`VXps|i(Z&jm zhhlt%M^z{QAUhJk?#%Cg>&!2SV!<6$Y&8IDV_BDxo=gFA3gazZb4QWqg9TkFDJg4t z!AG+cd$Y(|Gt>a%3;W?C6Sha0>!)XD)6s~7>HKG?V61b>0v-NYU7AXe#G~ihVw}XL z(eE{BffC-BTRez>0&HEqlD+6_(#y`UqO}0Bqu=hAA%kY^1`5>1aTE2{ksBopQ_ilf zQlGqA8AxUEw!FLe+gyHj)5syDzct4mj=@xA_fPPvu1eDXDGyJ`E= zH!tD+y3vi3AE&1D!Y$!XS%PdbF192foE(KrGUf%>=@*n`+*-U!=BHaXqjzx5ll2dvaKl$C2+y##7j_U-5_8~at zTfuHl68L_3Kov+R$ce~6COT3-)QYdvt2YaKL@g{VMvcn&;%-zXVuUDLu4UwiHT7|^ zC6&2!`mN>pSW@7Zcb^Ht9e#@QrQWdrzMu(JU9~#Axz_j-XuJ`*wKg+`h@?A_lxA?! zx{uPe7W7K&pMZkB&~tSHc7j#*`KLdH>1O)F6TkH;o>l*1u()iDz%Z$(_QY4|Zt{82 z`;xrQ&KPN{C^lkVb1W;w%nhW6?BY#@RWjx?V); z_gBAv{rV-Rh?KJh;|i=y-uYct2RYjup&WI*62wtBf<0Xu_G@KB;A>+he1TtNjLo>} zIh-sZz9s-X zLvhFH#;u23Q9_Bt>)5d_hB(oq$o`s7+xP(o@%A$klyo0>b>sh7Fk=-aCj53{PSGJs z`oMwOh7ycdAb+<#c?>@!Dt9mBg81*Gl)D%3@$m5YHoySv*et#P-fUS*U+k9N)SjUWS{UdY=!SMTS_ukN&DD>NBE4z@ZV_dWzgn=L~xAh UtugeOoVc;9|dERgR-}PVX`(~}n*>~5eeST-}OL8+oRs%u8UHty{oVNk_rrzOR3ktJG z3x@>5{0VrHSGTB*zkbxww$;Y&?HsfFJju51sCTOge!4{sO6<0@Z<{|`P6GnZJW=Q4 zy|XlqZxh9jvtWn-z|Z|%*f?4po?(Pdj4;qUG@{)7)F*gje-64^c5 zdHVBH6>_?p*fyr|3NR!plkZVb5~GRc7?5mcS?9L}QrcB-Ur*HF3^;MQd45zcHCHdI zv-U#v#EYJ)j<_1S+k=)uSL{Bkv@qUdRgRlfekA(+~c_96h_6R!BsftO&$$(MWA zMchW}MCf*!5>>=+D>otj2vqc4}d6P|mJ^pZdaNgZ%2=Kbjl%t%m%#B(VE$43dENrGE5hIi0; zD|dKaeKO&u*L@Fsqhyw(oubJoVxzFWk_fMH^`mW3^reM)dlT9iBYM`+ zmSfOR%~r|N685z_*`B4ujBZA)z*0EbHaQ(%v)o>VM;4s|tZ^9q3Z}69Ne6$@ATu&4 zK>BbU7OK7c*jKs!V`IjXtnH@k=IxQiS&GD%4cbq{!CVcCi@|lvEarurWR#E5l1~Oq z&R8}x;L&CgmXMB_r*I0+_`$a z)0W}a;45lJU;5%11cIK;{9!aB>s?);CsGGjR`rGJHDI+J#OJXjiB*Nk3-S{rQTyT} z**d=D+UG}bU4^x18BXi$X&e!SBgA?+N1|d=uaN>_Glogl{g0m?B-Ui{J@=zXYV(-uV1&WdIsmPsa+nVyCUeNN^rBL)0dzc zJ8*pn@0ovTj$6zNs$n`j1Yzr`sP)~L57!w!nE~$1XuXXuY*FMf3s63ZLc2gGmM=YX z+#I*Uh#0TF{Pp8_s?$x3(>lF%S2c*|6C)qj<1OGN2?xFWL%#_AI66?@&&}f#XRVwg z0o5@#?_EENm8ti`9*0lAc|3XY#^VX`8;^ob$FvZ!4~m&VJQ0eSCpVpTQrs~82>SL< z!1Zmw#l`5k$NZejf)heo<|gWg3n8VwrD{ql$fSR>kmP6<>(y==U@(?=YB7;0yA^oC zx_l&u/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 yIHk*U!v(GRvhj(I6$Yp9*prGR$-