From efcad9f52770a1ddecf7fa770df60dd47d60037f Mon Sep 17 00:00:00 2001 From: SkyMarshal Date: Wed, 16 Apr 2014 19:14:17 -0700 Subject: [PATCH] Removal of Telescience. --- baystation12.dme | 4 - code/game/area/Space Station 13 areas.dm | 4 - code/modules/mining/abandonedcrates.dm | 5 +- code/modules/telesci/bscrystal.dm | 38 --- code/modules/telesci/gps.dm | 70 ----- code/modules/telesci/telepad.dm | 122 --------- code/modules/telesci/telesci_computer.dm | 312 ----------------------- icons/obj/telescience.dmi | Bin 2171 -> 0 bytes 8 files changed, 1 insertion(+), 554 deletions(-) delete mode 100644 code/modules/telesci/bscrystal.dm delete mode 100644 code/modules/telesci/gps.dm delete mode 100644 code/modules/telesci/telepad.dm delete mode 100644 code/modules/telesci/telesci_computer.dm delete mode 100644 icons/obj/telescience.dmi diff --git a/baystation12.dme b/baystation12.dme index 57711d68ba..ff27aacf3f 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1260,10 +1260,6 @@ #include "code\modules\surgery\ribcage.dm" #include "code\modules\surgery\robolimbs.dm" #include "code\modules\surgery\surgery.dm" -#include "code\modules\telesci\bscrystal.dm" -#include "code\modules\telesci\gps.dm" -#include "code\modules\telesci\telepad.dm" -#include "code\modules\telesci\telesci_computer.dm" #include "code\modules\virus2\analyser.dm" #include "code\modules\virus2\antibodies.dm" #include "code\modules\virus2\centrifuge.dm" diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index fdd840589d..8f769a6046 100755 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -1373,10 +1373,6 @@ var/list/ghostteleportlocs = list() name = "\improper Miscellaneous Research" icon_state = "toxmisc" -/area/toxins/telesci - name = "\improper Telescience Lab" - icon_state = "toxmisc" - /area/toxins/server name = "\improper Server Room" icon_state = "server" diff --git a/code/modules/mining/abandonedcrates.dm b/code/modules/mining/abandonedcrates.dm index b31914a81e..e7f45999a4 100644 --- a/code/modules/mining/abandonedcrates.dm +++ b/code/modules/mining/abandonedcrates.dm @@ -43,10 +43,7 @@ if(10) for(var/i = 0, i < 3, i++) new/obj/item/weapon/reagent_containers/glass/beaker/noreact(src) - if(11 to 12) - for(var/i = 0, i < 9, i++) - new/obj/item/bluespace_crystal(src) - if(13) + if(11 to 13) new/obj/item/weapon/melee/classic_baton(src) if(14) return diff --git a/code/modules/telesci/bscrystal.dm b/code/modules/telesci/bscrystal.dm deleted file mode 100644 index d9e968f4da..0000000000 --- a/code/modules/telesci/bscrystal.dm +++ /dev/null @@ -1,38 +0,0 @@ -// Bluespace crystals, used in telescience and when crushed it will blink you to a random turf. - -/obj/item/bluespace_crystal - name = "bluespace crystal" - desc = "A glowing bluespace crystal, not much is known about how they work. It looks very delicate." - icon = 'icons/obj/telescience.dmi' - icon_state = "bluespace_crystal" - w_class = 1 - origin_tech = "bluespace=4;materials=3" - var/blink_range = 8 // The teleport range when crushed/thrown at someone. - -/obj/item/bluespace_crystal/New() - ..() - pixel_x = rand(-5, 5) - pixel_y = rand(-5, 5) - -/obj/item/bluespace_crystal/attack_self(var/mob/user) - blink_mob(user) - user.drop_item() - user.visible_message("[user] crushes the [src]!") - del(src) - -/obj/item/bluespace_crystal/proc/blink_mob(var/mob/living/L) - do_teleport(L, get_turf(L), blink_range, asoundin = 'sound/effects/phasein.ogg') - -/obj/item/bluespace_crystal/throw_impact(atom/hit_atom) - ..() - if(isliving(hit_atom)) - blink_mob(hit_atom) - del(src) - -// Artifical bluespace crystal, doesn't give you much research. - -/obj/item/bluespace_crystal/artificial - name = "artificial bluespace crystal" - desc = "An artificially made bluespace crystal, it looks delicate." - origin_tech = "bluespace=2" - blink_range = 4 // Not as good as the organic stuff! \ No newline at end of file diff --git a/code/modules/telesci/gps.dm b/code/modules/telesci/gps.dm deleted file mode 100644 index 94ea86e23d..0000000000 --- a/code/modules/telesci/gps.dm +++ /dev/null @@ -1,70 +0,0 @@ -var/list/GPS_list = list() -/obj/item/device/gps - name = "global positioning system" - desc = "Helping lost spacemen find their way through the planets since 2016." - icon = 'icons/obj/telescience.dmi' - icon_state = "gps-c" - w_class = 2.0 - flags = FPRINT | TABLEPASS - slot_flags = SLOT_BELT - origin_tech = "programming=2;engineering=2" - var/gpstag = "COM0" - var/emped = 0 - -/obj/item/device/gps/New() - ..() - GPS_list.Add(src) - name = "global positioning system ([gpstag])" - overlays += "working" -/obj/item/device/gps/Del() - GPS_list.Remove(src) - ..() -/obj/item/device/gps/emp_act(severity) - emped = 1 - overlays -= "working" - overlays += "emp" - spawn(300) - emped = 0 - overlays -= "emp" - overlays += "working" - -/obj/item/device/gps/attack_self(mob/user as mob) - - var/obj/item/device/gps/t = "" - if(emped) - t += "ERROR" - else - t += "
Set Tag " - t += "
Tag: [gpstag]" - - for(var/obj/item/device/gps/G in GPS_list) - var/turf/pos = get_turf(G) - var/area/gps_area = get_area(G) - var/tracked_gpstag = G.gpstag - if(G.emped == 1) - t += "
[tracked_gpstag]: ERROR" - else - t += "
[tracked_gpstag]: [format_text(gps_area.name)] ([pos.x], [pos.y], [pos.z])" - - var/datum/browser/popup = new(user, "GPS", name, 600, 450) - popup.set_content(t) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) - popup.open() - -/obj/item/device/gps/Topic(href, href_list) - ..() - if(href_list["tag"] ) - var/a = input("Please enter desired tag.", name, gpstag) as text - a = uppertext(copytext(sanitize(a), 1, 5)) - if(src.loc == usr) - gpstag = a - name = "global positioning system ([gpstag])" - attack_self(usr) - -/obj/item/device/gps/science - icon_state = "gps-s" - gpstag = "SCI0" - -/obj/item/device/gps/engineering - icon_state = "gps-e" - gpstag = "ENG0" diff --git a/code/modules/telesci/telepad.dm b/code/modules/telesci/telepad.dm deleted file mode 100644 index c54d079afd..0000000000 --- a/code/modules/telesci/telepad.dm +++ /dev/null @@ -1,122 +0,0 @@ -///SCI TELEPAD/// -/obj/machinery/telepad - name = "telepad" - desc = "A bluespace telepad used for teleporting objects to and from a location." - icon = 'icons/obj/telescience.dmi' - icon_state = "pad-idle" - anchored = 1 - use_power = 1 - idle_power_usage = 200 - active_power_usage = 5000 -//CARGO TELEPAD// -/obj/machinery/telepad_cargo - name = "cargo telepad" - desc = "A telepad used by the Rapid Crate Sender." - icon = 'icons/obj/telescience.dmi' - icon_state = "pad-idle" - anchored = 1 - use_power = 1 - idle_power_usage = 20 - active_power_usage = 500 - var/stage = 0 -/obj/machinery/telepad_cargo/attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W, /obj/item/weapon/wrench)) - anchored = 0 - playsound(src, 'sound/items/Ratchet.ogg', 50, 1) - if(anchored) - anchored = 0 - user << " The [src] can now be moved." - else if(!anchored) - anchored = 1 - user << " The [src] is now secured." - if(istype(W, /obj/item/weapon/screwdriver)) - if(stage == 0) - playsound(src, 'sound/items/Screwdriver.ogg', 50, 1) - user << " You unscrew the telepad's tracking beacon." - stage = 1 - else if(stage == 1) - playsound(src, 'sound/items/Screwdriver.ogg', 50, 1) - user << " You screw in the telepad's tracking beacon." - stage = 0 - if(istype(W, /obj/item/weapon/weldingtool) && stage == 1) - playsound(src, 'sound/items/Welder.ogg', 50, 1) - user << " You disassemble the telepad." - new /obj/item/stack/sheet/metal(get_turf(src)) - new /obj/item/stack/sheet/glass(get_turf(src)) - del(src) - -///TELEPAD CALLER/// -/obj/item/device/telepad_beacon - name = "telepad beacon" - desc = "Use to warp in a cargo telepad." - icon = 'icons/obj/radio.dmi' - icon_state = "beacon" - item_state = "signaler" - origin_tech = "bluespace=3" - -/obj/item/device/telepad_beacon/attack_self(mob/user as mob) - if(user) - user << " Locked In" - new /obj/machinery/telepad_cargo(user.loc) - playsound(src, 'sound/effects/pop.ogg', 100, 1, 1) - del(src) - return - -///HANDHELD TELEPAD USER/// -/obj/item/weapon/rcs - name = "rapid-crate-sender (RCS)" - desc = "Use this to send crates and closets to cargo telepads." - icon = 'icons/obj/telescience.dmi' - icon_state = "rcs" - flags = FPRINT | TABLEPASS| CONDUCT - force = 10.0 - throwforce = 10.0 - throw_speed = 1 - throw_range = 5 - var/rcharges = 10 - var/obj/machinery/pad = null - var/last_charge = 30 - var/mode = 0 - var/rand_x = 0 - var/rand_y = 0 - var/emagged = 0 - var/teleporting = 0 - -/obj/item/weapon/rcs/New() - ..() - processing_objects.Add(src) -/obj/item/weapon/rcs/examine() - desc = "Use this to send crates and closets to cargo telepads. There are [rcharges] charges left." - ..() - -/obj/item/weapon/rcs/Del() - processing_objects.Remove(src) - ..() -/obj/item/weapon/rcs/process() - if(rcharges > 10) - rcharges = 10 - if(last_charge == 0) - rcharges++ - last_charge = 30 - else - last_charge-- - -/obj/item/weapon/rcs/attack_self(mob/user) - if(emagged) - if(mode == 0) - mode = 1 - playsound(src.loc, 'sound/effects/pop.ogg', 50, 0) - user << " The telepad locator has become uncalibrated." - else - mode = 0 - playsound(src.loc, 'sound/effects/pop.ogg', 50, 0) - user << " You calibrate the telepad locator." - -/obj/item/weapon/rcs/attackby(obj/item/W, mob/user) - if(istype(W, /obj/item/weapon/card/emag) && emagged == 0) - emagged = 1 - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(5, 1, src) - s.start() - user << " You emag the RCS. Click on it to toggle between modes." - return \ No newline at end of file diff --git a/code/modules/telesci/telesci_computer.dm b/code/modules/telesci/telesci_computer.dm deleted file mode 100644 index 06f968b5f1..0000000000 --- a/code/modules/telesci/telesci_computer.dm +++ /dev/null @@ -1,312 +0,0 @@ -/obj/machinery/computer/telescience - name = "\improper Telepad Control Console" - desc = "Used to teleport objects to and from the telescience telepad." - icon_state = "teleport" - var/sending = 1 - var/obj/machinery/telepad/telepad = null - var/temp_msg = "Telescience control console initialized.
Welcome." - - // VARIABLES // - var/teles_left // How many teleports left until it becomes uncalibrated - var/datum/projectile_data/last_tele_data = null - var/z_co = 1 - var/power_off - var/rotation_off - var/angle_off - - var/rotation = 0 - var/angle = 45 - var/power - - // Based on the power used - var/teleport_cooldown = 0 - var/list/power_options = list(5, 10, 20, 25, 30, 40, 50, 80, 100) // every index requires a bluespace crystal - var/teleporting = 0 - var/starting_crystals = 3 - var/list/crystals = list() - -/obj/machinery/computer/telescience/New() - ..() - link_telepad() - recalibrate() - -/obj/machinery/computer/telescience/Del() - eject() - ..() - -/obj/machinery/computer/telescience/examine() - ..() - usr << "There are [crystals.len] bluespace crystals in the crystal ports." - -/obj/machinery/computer/telescience/initialize() - ..() - link_telepad() - for(var/i = 1; i <= starting_crystals; i++) - crystals += new /obj/item/bluespace_crystal/artificial(null) // starting crystals - power = power_options[1] - -/obj/machinery/computer/telescience/proc/link_telepad() - telepad = locate() in range(src, 7) - -/obj/machinery/computer/telescience/update_icon() - if(stat & BROKEN) - icon_state = "telescib" - else - if(stat & NOPOWER) - src.icon_state = "teleport0" - stat |= NOPOWER - else - icon_state = initial(icon_state) - stat &= ~NOPOWER - -/obj/machinery/computer/telescience/attack_paw(mob/user) - user << "You are too primitive to use this computer." - return - -/obj/machinery/computer/telescience/attackby(obj/item/W, mob/user) - if(istype(W, /obj/item/bluespace_crystal)) - if(crystals.len >= power_options.len) - user << "There are not enough crystal ports." - return - user.drop_item() - crystals += W - W.loc = null - user.visible_message("[user] inserts a [W] into the [src]'s crystal port.") - else - ..() - -/obj/machinery/computer/telescience/attack_ai(mob/user) - src.attack_hand(user) - -/obj/machinery/computer/telescience/attack_hand(mob/user) - if(..()) - return - interact(user) - -/obj/machinery/computer/telescience/interact(mob/user) - user.machine = src - in_use = 1 - - var/t = "
[temp_msg]

" - t += "Set Bearing" - t += "
[rotation]°
" - t += "Set Elevation" - t += "
[angle]°
" - t += "Set Power" - t += "
" - - for(var/i = 1; i <= power_options.len; i++) - if(crystals.len < i) - t += "[power_options[i]]" - continue - if(power == power_options[i]) - t += "[power_options[i]]" - continue - t += "[power_options[i]]" - - t += "
" - t += "Set Sector" - t += "
[z_co ? z_co : "NULL"]
" - - t += "
Send" - t += " Receive" - t += "
Recalibrate Crystals Eject Crystals" - - // Information about the last teleport - t += "
" - if(!last_tele_data) - t += "No teleport data found." - else - t += "Source Location: ([last_tele_data.src_x], [last_tele_data.src_y])
" - //t += "Distance: [round(last_tele_data.distance, 0.1)]m
" - t += "Time: [round(last_tele_data.time, 0.1)] secs
" - t += "
" - - var/datum/browser/popup = new(user, "telesci", name, 300, 500) - popup.set_content(t) - popup.open() - return - -/obj/machinery/computer/telescience/proc/sparks() - if(telepad) - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(5, 1, get_turf(telepad)) - s.start() - else - return - -/obj/machinery/computer/telescience/proc/telefail() - sparks() - visible_message("The telepad weakly fizzles.") - return - -/obj/machinery/computer/telescience/proc/doteleport(mob/user) - - if(teleport_cooldown > world.time) - temp_msg = "Telepad is recharging power.
Please wait [round((teleport_cooldown - world.time) / 10)] seconds." - return - - if(teleporting) - temp_msg = "Telepad is in use.
Please wait." - return - - if(telepad) - - var/truePower = Clamp(power + power_off, 1, 1000) - var/trueRotation = rotation + rotation_off - var/trueAngle = Clamp(angle + angle_off, 1, 90) - - var/datum/projectile_data/proj_data = projectile_trajectory(telepad.x, telepad.y, trueRotation, trueAngle, truePower) - last_tele_data = proj_data - - var/trueX = Clamp(round(proj_data.dest_x, 1), 1, world.maxx) - var/trueY = Clamp(round(proj_data.dest_y, 1), 1, world.maxy) - var/spawn_time = round(proj_data.time) * 10 - - var/turf/target = locate(trueX, trueY, z_co) - var/area/A = get_area(target) - flick("pad-beam", telepad) - - if(spawn_time > 15) // 1.5 seconds - playsound(telepad.loc, 'sound/weapons/flash.ogg', 25, 1) - // Wait depending on the time the projectile took to get there - teleporting = 1 - temp_msg = "Powering up bluespace crystals.
Please wait." - - - spawn(round(proj_data.time) * 10) // in seconds - if(!telepad) - return - if(telepad.stat & NOPOWER) - return - teleporting = 0 - teleport_cooldown = world.time + (power * 2) - teles_left -= 1 - - // use a lot of power - use_power(power * 10) - - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(5, 1, get_turf(telepad)) - s.start() - - temp_msg = "Teleport successful.
" - if(teles_left < 10) - temp_msg += "
Calibration required soon." - else - temp_msg += "Data printed below." - investigate_log("[key_name(usr)]/[user] has teleported with Telescience at [trueX],[trueY],[z_co], in [A ? A.name : "null area"].","telesci") - - var/sparks = get_turf(target) - var/datum/effect/effect/system/spark_spread/y = new /datum/effect/effect/system/spark_spread - y.set_up(5, 1, sparks) - y.start() - - var/turf/source = target - var/turf/dest = get_turf(telepad) - if(sending) - source = dest - dest = target - - flick("pad-beam", telepad) - playsound(telepad.loc, 'sound/weapons/emitter2.ogg', 25, 1) - for(var/atom/movable/ROI in source) - // if is anchored, don't let through - if(ROI.anchored) - if(isliving(ROI)) - var/mob/living/L = ROI - if(L.buckled) - // TP people on office chairs - if(L.buckled.anchored) - continue - else - continue - else if(!isobserver(ROI)) - continue - do_teleport(ROI, dest) - updateDialog() - -/obj/machinery/computer/telescience/proc/teleport(mob/user) - if(rotation == null || angle == null || z_co == null) - temp_msg = "ERROR!
Set a angle, rotation and sector." - return - if(power <= 0) - telefail() - temp_msg = "ERROR!
No power selected!" - return - if(angle < 1 || angle > 90) - telefail() - temp_msg = "ERROR!
Elevation is less than 1 or greater than 90." - return - if(z_co == 2 || z_co < 1 || z_co > 6) - telefail() - temp_msg = "ERROR! Sector is less than 1,
greater than 6, or equal to 2." - return - if(teles_left > 0) - doteleport(user) - else - telefail() - temp_msg = "ERROR!
Calibration required." - return - return - -/obj/machinery/computer/telescience/proc/eject() - for(var/obj/item/I in crystals) - I.loc = src.loc - crystals -= I - power = 0 - -/obj/machinery/computer/telescience/Topic(href, href_list) - if(..()) - return - if(href_list["setrotation"]) - var/new_rot = input("Please input desired bearing in degrees.", name, rotation) as num - if(..()) // Check after we input a value, as they could've moved after they entered something - return - rotation = Clamp(new_rot, -900, 900) - rotation = round(rotation, 0.01) - - if(href_list["setangle"]) - var/new_angle = input("Please input desired elevation in degrees.", name, angle) as num - if(..()) - return - angle = Clamp(round(new_angle, 0.1), 1, 9999) - - if(href_list["setpower"]) - var/index = href_list["setpower"] - index = text2num(index) - if(index != null && power_options[index]) - if(crystals.len >= index) - power = power_options[index] - - if(href_list["setz"]) - var/new_z = input("Please input desired sector.", name, z_co) as num - if(..()) - return - z_co = Clamp(round(new_z), 1, 10) - - if(href_list["send"]) - sending = 1 - teleport(usr) - - if(href_list["receive"]) - sending = 0 - teleport(usr) - - if(href_list["recal"]) - recalibrate() - sparks() - temp_msg = "NOTICE:
Calibration successful." - - if(href_list["eject"]) - eject() - temp_msg = "NOTICE:
Bluespace crystals ejected." - - updateDialog() - return 1 - -/obj/machinery/computer/telescience/proc/recalibrate() - teles_left = rand(30, 40) - angle_off = rand(-25, 25) - power_off = rand(-4, 0) - rotation_off = rand(-10, 10) diff --git a/icons/obj/telescience.dmi b/icons/obj/telescience.dmi deleted file mode 100644 index 4e8251beac3fdf48bf7e083c7ec4e82cea642f1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2171 zcmV->2!!{EP)6XDDk{H~)VD|APRV z0Dw^vFfcGwQBZ4WW<5nt|C0c)eKweDDPd-7q;V>dU>UA%5~zDSnoI!6XaN6@0Pu(a z$!-9(U;tE9RAp{?#e^rIoSGOSFHI{s5f~x>QiVJxFU&LlM;R-MqQl$I-#hc>crEVy|vvv@Ns91VhEILMb)u7XPckN}jF zl!1YPa&mHlf`W#IhH7eRDJdycRaJF$bu-NWGnxN0X8$t){{a6pS6Ns805fD{WJyU$ zTwGj#Y5-YTSvWX2U0q#QS6A@00GVb0%$YO5z`#Cl|7My0nauxFss8|G|CpZILI3~& z0d!JMQvg8b*k%9#0MB|K!lLF>`rDTJ5613jc##5!h4M0ptPtfav{O~fKexSo15k2 zW0Zr)^7gyvmbPF$ zYxIsS+a~#`stc$#Wj0K2s-SE(@BC|MqgU!pR9&qKQDrMSf8h=17?Tv+E|SU@=!P{1a-{&dCjbBj8A(JzRCt{2nu%81Mihp%v~^ok#A1oiCatoO zvV-d-A*oYp473dtT3R<78J6B9j3VF>nK;WATqV0+Vl=0*Xm= zV-sr>1NwW6t^zahb_zu#$%~CN@dT$|6CC2+#7*fV3WV>R^i&#Sc zTB{H~j}{e^8yhrkr|zZCW5@u~YCO*f26wIUZpz?G>=;yfN83;ZjqV#o}H&z;J2 zB`SZV{zac!onbq=0RVl*PF;!O;hQ~cOV??5X3yEFE2H&4q$j(#xh)%Tst)^NrxiP< zTcJJ`>Q+K$5!>^iTeIwoou>7m{&ZMBsbl?Xb-U(Pne2KsZ^2oBqsxj^-I^Wh(~&+C z=~FTN798i@MbKxzUaT#;^Pt>{=~h&KE~;DpsY&#y zNS{jTw_WcJ=oYAVJomP${xlrF)wIw1{|?bp^^KYfBU5!8$9H@mcKC^%yETb^SEb)` zoco|Xfc?G$XNvj{k@m6vWjYja+2$>IOOJeZ^u!g3eizXn==ATG9z8_rWBto?Rsv3W z30UQU4p*f545H5>`W&KT{Y!OTf?tH$=7^sZ`ZS{7Lv#z#vHs<{5nN+9!I$f%8klU| zVAnivd6|pL%bv%+OQnlK%M2mLN=&*Qcd{(KUKX9(EVT|LO0E|kKxP93K@h|wv$C?n z_i`sNRt^?JP^ z18dva3_$!v8)!5c4YdKTtHiB(i|ei83^dz}rqV#O{g~+rb*nDw>kQ~~s}`1@*XpAf zXg_H`&R}5V{QU3>4*vR5Uw^a_c#>%Zg8aMUJ?aSg`HG{_!9al8KvTB}z(9c90FT=C zk^DU9>i2v|eOSZ|cnUQ%i&zUR;ubuGTEmNYkbn29z9v7vgXmD-Vfs!=9~i)%LYM*R zQz*>8KlPq@3;qHe-5q6q-k0X@9f|G?^7oN}=8qltsHYHSK-5obbcOYPSuaY&f|KJ zx{oygA9vV*m_m(=Q>Zm$AX|PO&)*9J4Y7#FHP8}^IBg)FfA^96{8)PAAmcBiTOmVA zlz)erq0P^ux+B$dXOMsQk^KC4dj1A-&fn)Bzi~tP`@G3Nf1fw`=kN2T^y%-?8z2aR zAj%BOsc4dmlh5wYyL>MzyCFpfGA6s-Zl}}fcDp4t0P$xwpv}+ct?zdCxW1=0fVSW6 zw0p|zFz7vyI~u(M4Ip|?sqc10_E~8_=*sr-09pS!gP7i9WHQjx8)*0N5l{xe?r;wo zfnMejP~QLp%g^VngMk3G0i^wcfknIrPoX`{BA#qUcnVE6FolBre~AqQ`Tz17DEk!J z6N`ASqy|d=%P2t*1VIo4K@bE%6iA`(2d+a$^6!P~y&m#@0Lj1SuJ?MG>IeDvOabce z5OxQ%j!?nx2eRt~K@bE%5ClOG1VIo4K@chS_xBGD4i1r0h3EH``r$9XG7b)ZJLH?9 zK9*g^)8|-rTl?SVn(Xt7qvPLCPX9PQKK}FU_^-2Lxr4&r4={gngD;N$7Mz{2?MT(Y zq`sl)_y0+tFfhUS|D%_TSFig0*RT8izOs$U=J4ek