Merge pull request #63 from Markolie/master

Bug fixes, /tg/ telescience port
This commit is contained in:
Fox-McCloud
2014-12-12 03:41:03 -05:00
26 changed files with 769 additions and 724 deletions
+2 -1
View File
@@ -92,7 +92,8 @@
/atom/proc/emp_act(var/severity)
return
/atom/proc/bullet_act(var/obj/item/projectile/Proj)
/atom/proc/bullet_act(var/obj/item/projectile/Proj, def_zone)
Proj.on_hit(src, 0, def_zone)
return 0
/atom/proc/in_contents_of(container)//can take class or object instance as argument
+12 -12
View File
@@ -423,20 +423,20 @@
var/reagent_id = null
if(emagged == 2) //Emagged! Time to poison everybody.
reagent_id = "toxin"
if(treat_virus)
var/virus = 0
if(C:virus2.len)
for (var/ID in C.virus2)
if (ID in virusDB) // If the virus is known, the medbot is aware of it and will try to cure it
virus = 1
if (!reagent_id && (virus))
if(!C.reagents.has_reagent(treatment_virus))
reagent_id = treatment_virus
reagent_id = "toxin"
else
if(treat_virus)
var/virus = 0
if(C:virus2.len)
for (var/ID in C.virus2)
if (ID in virusDB) // If the virus is known, the medbot is aware of it and will try to cure it
virus = 1
if (!reagent_id && (virus))
if(!C.reagents.has_reagent(treatment_virus))
reagent_id = treatment_virus
if (!reagent_id && (C.getBruteLoss() >= heal_threshold))
if(!C.reagents.has_reagent(treatment_brute))
reagent_id = treatment_brute
-315
View File
@@ -1,315 +0,0 @@
/obj/machinery/computer/telescience
name = "Telepad Control Console"
desc = "Used to teleport objects to and from the telescience telepad."
icon_state = "teleport-sci"
circuit = "/obj/item/weapon/circuitboard/telesci_console"
var/teles_left // How many teleports left until it becomes uncalibrated
var/x_off // X offset
var/y_off // Y offset
var/x_co // X coordinate
var/y_co // Y coordinate
var/z_co // Z coordinate
var/trueX // X + offset
var/trueY // Y + offset
var/obj/machinery/telepad/telepad
var/tele_id = "Telesci"
var/obj/item/device/sps/inserted_sps
var/last_target
/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/Destroy()
if(inserted_sps)
inserted_sps.loc = loc
inserted_sps = null
..()
/obj/machinery/computer/telescience/attack_paw(mob/user)
usr << "You are too primitive to use this computer."
return
/obj/machinery/telescience/station/attack_ai(mob/user)
src.attack_hand()
/obj/machinery/computer/telescience/attack_hand(mob/user)
ui_interact(user)
/obj/machinery/computer/telescience/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
if(..())
return
if(stat & (NOPOWER|BROKEN))
return
// On first use, the coordinates are null. Rather than displaying null, we'll set them to unset.
if(!x_co)
x_co = "Unset"
if(!y_co)
y_co = "Unset"
if(!z_co)
z_co = "Unset"
var/data[0]
data["coordx"] = x_co
data["coordy"] = y_co
data["coordz"] = z_co
data["sps"] = inserted_sps
// Set up the Nano UI
ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open)
if (!ui)
ui = new(user, src, ui_key, "telescience_console.tmpl", "Telescience Console UI", 640, 300)
ui.set_initial_data(data)
ui.open()
/obj/machinery/computer/telescience/proc/telefail(var/level)
var/teleturf = get_turf(telepad)
switch(level)
if(1)
for(var/mob/O in hearers(telepad, null))
O.show_message("\red The telepad weakly fizzles.", 2)
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(5, 1, teleturf)
s.start()
if(2)
for(var/mob/living/carbon/human/M in viewers(telepad, null))
if(M.loc.loc == telepad.loc.loc) // Stops the geneticists with X-Ray vision getting irradiated
M.apply_effect((rand(50, 100)), IRRADIATE, 0)
M << "\red You feel irradiated."
if(3)
for(var/turf/simulated/floor/target_tile in range(0,telepad))
var/datum/gas_mixture/napalm = new
napalm.toxins = 25
napalm.temperature = 2000
target_tile.assume_air(napalm)
spawn (0) target_tile.hotspot_expose(700, 400)
for(var/mob/O in hearers(telepad, null))
O.show_message("\red The telepad sets on fire!", 2)
if(4)
var/blocked = list(/mob/living/simple_animal/hostile,
/mob/living/simple_animal/hostile/alien/queen/large,
/mob/living/simple_animal/hostile/pirate,
/mob/living/simple_animal/hostile/pirate/ranged,
/mob/living/simple_animal/hostile/russian,
/mob/living/simple_animal/hostile/russian/ranged,
/mob/living/simple_animal/hostile/syndicate,
/mob/living/simple_animal/hostile/syndicate/melee,
/mob/living/simple_animal/hostile/syndicate/melee/space,
/mob/living/simple_animal/hostile/syndicate/ranged,
/mob/living/simple_animal/hostile/syndicate/ranged/space,
/mob/living/simple_animal/hostile/retaliate,
/mob/living/simple_animal/hostile/giant_spider/nurse)
var/list/hostiles = typesof(/mob/living/simple_animal/hostile) - blocked
playsound(teleturf, 'sound/effects/phasein.ogg', 100, 1)
for(var/mob/living/carbon/human/M in viewers(telepad, null))
flick("e_flash", M.flash)
var/chosen = pick(hostiles)
var/mob/living/simple_animal/hostile/H = new chosen
H.loc = teleturf
return
/obj/machinery/computer/telescience/proc/teleprep(var/type)
if(!telepad)
usr << "\red Error: No associated telepad. Please recalibrate and try again."
return
if(telepad.panel_open)
usr << "\red Error: The telepad can not be used while in maintenance mode."
return
var/numpick
var/failure = checkFail()
if(failure > 0)
numpick = pick(1,1,1,1,1,2,2,2,2,3)
telefail(numpick)
return
if(teles_left > 0)
if(prob(70 + (5 * telepad.efficiency)))
teles_left -= 1
tele(type)
if(teles_left == 0)
for(var/mob/O in hearers(src, null))
O.show_message("\red The telepad has become uncalibrated.", 2)
return
else
if(prob(25 + (10 * telepad.efficiency)))
tele(type)
else
numpick = pick(1,1,1,2,2,3,4)
telefail(numpick)
return
numpick = pick(1,1,1,1,1,2,2,2,2,3)
telefail(numpick)
return
/obj/machinery/computer/telescience/proc/tele(var/type)
var/tele = get_turf(telepad)
trueX = (x_co + x_off)
trueY = (y_co + y_off)
var/target = locate(trueX, trueY, z_co)
last_target = target
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(5, 1, tele)
s.start()
flick("pad-beam", telepad)
var/list/teleportables = list()
switch(type)
if(0)
for(var/atom/A in tele)
if(!istype(A, /obj/effect) && !istype(A, /mob/living/silicon/ai) && !istype(A, /obj/item/device/radio/intercom) && !istype(A, /obj/structure/closet/secure_closet/brig))
if(istype(A, /obj/structure))
var/obj/structure/S = A
if(!S.anchored)
teleportables += S
else if(istype(A, /obj/machinery))
var/obj/machinery/M = A
if(!M.anchored)
teleportables += M
else
teleportables += A
for(var/atom/T in teleportables)
do_teleport(T, target, 0)
usr << "\blue Teleport successful."
if(1)
for(var/atom/A in target)
if(!istype(A, /obj/effect) && !istype(A, /mob/living/silicon/ai) && !istype(A, /obj/item/device/radio/intercom))
if(istype(A, /obj/structure))
var/obj/structure/S = A
if(!S.anchored)
teleportables += S
else if(istype(A, /obj/machinery))
var/obj/machinery/M = A
if(!M.anchored)
teleportables += M
else
teleportables += A
for(var/atom/T in teleportables)
do_teleport(T, tele, 0)
usr << "\blue Teleport successful."
return
/obj/machinery/computer/telescience/proc/checkFail()
var/fail = 0
if(x_co == "" || x_co == "Unset")
usr << "\red Error: set X coordinate."
fail = 1
return fail
if(y_co == "" || y_co == "Unset")
usr << "\red Error: set Y coordinate."
fail = 1
return fail
if(z_co == "" || z_co == "Unset")
usr << "\red Error: set Z coordinate."
fail = 1
return fail
if(x_co < 11 || x_co > 245)
usr << "\red Error: X is less than 11 or greater than 245."
fail = 1
return fail
if(y_co < 11 || y_co > 245)
usr << "\red Error: Y is less than 11 or greater than 245."
fail = 1
return fail
if(z_co == 2 || z_co < 1 || z_co > 6)
if (z_co == 7 & src.emagged == 1)
// This should be empty, allows for it to continue if the z-level is 7 and the machine is emagged.
else
usr << "\red Error: Z is less than 1, greater than [src.emagged ? "7" : "6"], or equal to 2."
fail = 1
return fail
if(istype(get_area(locate(x_co,y_co,z_co)), /area/security/armoury/gamma))
usr << "\red Error: Attempting to access telescience-protected area."
fail = 1
return fail
return fail
/obj/machinery/computer/telescience/Topic(href, href_list)
if(..())
return
if(href_list["ejectSPS"])
inserted_sps.loc = loc
inserted_sps = null
nanomanager.update_uis(src)
if(href_list["setMemory"])
if(last_target)
inserted_sps.locked_location = last_target
usr << "\blue Location saved."
else
usr << "\red Error: No data stored."
nanomanager.update_uis(src)
if(href_list["setx"])
var/a = input("Please input desired X coordinate.", name, x_co) as num
a = copytext(sanitize(a), 1, 20)
x_co = a
x_co = text2num(x_co)
nanomanager.update_uis(src)
return
if(href_list["sety"])
var/b = input("Please input desired Y coordinate.", name, y_co) as num
b = copytext(sanitize(b), 1, 20)
y_co = b
y_co = text2num(y_co)
nanomanager.update_uis(src)
return
if(href_list["setz"])
var/c = input("Please input desired Z coordinate.", name, z_co) as num
c = copytext(sanitize(c), 1, 20)
z_co = c
z_co = text2num(z_co)
nanomanager.update_uis(src)
return
if(href_list["send"])
teleprep(0)
nanomanager.update_uis(src)
return
if(href_list["receive"])
teleprep(1)
nanomanager.update_uis(src)
return
if(href_list["recal"])
if(telepad == null)
for(var/obj/machinery/telepad/T in range(src,10))
telepad = T
if(!telepad)
usr << "\red Error: No telepads in range were found."
nanomanager.update_uis(src)
return
var/teleturf = get_turf(telepad)
teles_left = rand(8,12)
x_off = rand(-10,10)
y_off = rand(-10,10)
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(5, 1, teleturf)
s.start()
usr << "\blue Calibration successful."
nanomanager.update_uis(src)
return
/obj/machinery/computer/telescience/attackby(I as obj, var/mob/user as mob) // Emagging
if(istype(I,/obj/item/weapon/card/emag))
if (src.emagged == 0)
user << "\blue You scramble the Telescience authentication key to an unknown signal. You should be able to teleport to more places now!"
src.emagged = 1
else
user << "\red The machine seems unaffected by the card swipe..."
else if(istype(I, /obj/item/device/sps))
if(!inserted_sps)
inserted_sps = I
user.before_take_item(I)
inserted_sps.loc = src
user.visible_message("<span class='notice'>You insert [I] into the SPS device slot.</span>")
attack_hand(user)
else if(istype(I, /obj/item/device/multitool))
var/obj/item/device/multitool/M = I
if(M.buffer && istype(M.buffer, /obj/machinery/telepad))
telepad = M.buffer
M.buffer = null
user << "<span class='caution'>You upload the data from [I]'s buffer.</span>"
else
..()
+2 -2
View File
@@ -132,9 +132,9 @@
o += "<span class='warning'>"
else
o += "<span style='color:blue'>"
o += "[celsius]Celsius</span> "
o += "[celsius] Celsius</span> "
o += "<span style='color:blue'>"
o += "[pressure]kPa</span></li>"
o += "[pressure] kPa</span></li>"
usr << o
if( islist(users_to_open) && users_to_open.len)
-78
View File
@@ -1,78 +0,0 @@
/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 = 2
active_power_usage = 50
var/efficiency
/obj/machinery/telepad/New()
..()
component_parts = list()
component_parts += new /obj/item/weapon/circuitboard/telesci_pad(src)
component_parts += new /obj/item/bluespace_crystal/artificial(src)
component_parts += new /obj/item/bluespace_crystal/artificial(src)
component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
component_parts += new /obj/item/weapon/stock_parts/console_screen(src)
component_parts += new /obj/item/stack/cable_coil(src, 1)
RefreshParts()
/obj/machinery/telepad/RefreshParts()
var/E
for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts)
E += C.rating
efficiency = E
/obj/machinery/telepad/attackby(obj/item/I, mob/user)
if(default_deconstruction_screwdriver(user, "pad-idle-o", "pad-idle", I))
return
if(panel_open)
if(istype(I, /obj/item/device/multitool))
var/obj/item/device/multitool/M = I
M.buffer = src
user << "<span class='caution'>You save the data in the [I.name]'s buffer.</span>"
if(exchange_parts(user, I))
return
default_deconstruction_crowbar(I)
/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 = 2
active_power_usage = 50
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))
playsound(src, 'sound/items/Ratchet.ogg', 50, 1)
if(anchored)
anchored = 0
user << "<span class='caution'>The [src] can now be moved.</span>"
else if(!anchored)
anchored = 1
user << "<span class='caution'>The [src] is now secured.</span>"
if(istype(W, /obj/item/weapon/screwdriver))
if(stage == 0)
playsound(src, 'sound/items/Screwdriver.ogg', 50, 1)
user << "<span class='caution'>You unscrew the telepad's tracking beacon.</span>"
stage = 1
else if(stage == 1)
playsound(src, 'sound/items/Screwdriver.ogg', 50, 1)
user << "<span class='caution'>You screw in the telepad's tracking beacon.</span>"
stage = 0
if(istype(W, /obj/item/weapon/weldingtool) && stage == 1)
playsound(src, 'sound/items/Welder.ogg', 50, 1)
user << "<span class='caution'>You disassemble the telepad.</span>"
new /obj/item/stack/sheet/metal(get_turf(src))
new /obj/item/stack/sheet/glass(get_turf(src))
qdel(src)
+5 -5
View File
@@ -3,7 +3,7 @@
desc = "Used to control a linked teleportation Hub and Station."
icon_state = "teleport"
circuit = "/obj/item/weapon/circuitboard/teleporter"
var/obj/item/device/sps/locked = null
var/obj/item/device/gps/locked = null
var/regime_set = "Teleporter"
var/id = null
var/obj/machinery/teleport/station/power_station
@@ -40,16 +40,16 @@
user << "\blue The teleporter can now lock on to Syndicate beacons!"
else
ui_interact(user)
else if(istype(I, /obj/item/device/sps))
var/obj/item/device/sps/L = I
else if(istype(I, /obj/item/device/gps))
var/obj/item/device/gps/L = I
if(L.locked_location && !(stat & (NOPOWER|BROKEN)))
user.before_take_item(L)
L.loc = src
locked = L
user << "<span class='caution'>You insert the SPS device into the [name]'s slot.</span>"
user << "<span class='caution'>You insert the GPS device into the [name]'s slot.</span>"
src.attack_hand(user)
else
user << "<span class='warning'>No useable data was found on te SPS device.</span>"
user << "<span class='warning'>No useable data was found on te GPS device.</span>"
else
..()
return
+16 -3
View File
@@ -190,6 +190,13 @@
targeting_active = 1
target()
targeting_active = 0
if(prob(15))
if(prob(50))
playsound(get_turf(src), 'sound/effects/turret/move1.wav', 60, 1)
else
playsound(get_turf(src), 'sound/effects/turret/move2.wav', 60, 1)
else if(!isPopping())//else, pop down
if(!isDown())
popDown()
@@ -229,6 +236,10 @@
else
A = new /obj/item/projectile/energy/electrode( loc )
use_power(200)
if(src.lasers)
playsound(get_turf(src), 'sound/weapons/Laser.ogg', 60, 1)
else
playsound(get_turf(src), 'sound/weapons/Taser.ogg', 60, 1)
A.current = T
A.yo = U.y - T.y
A.xo = U.x - T.x
@@ -244,6 +255,7 @@
if ((!isPopping()) || src.popping==-1)
invisibility = 0
popping = 1
playsound(get_turf(src), 'sound/effects/turret/open.wav', 60, 1)
if (src.cover!=null)
flick("popup", src.cover)
src.cover.icon_state = "openTurretCover"
@@ -253,6 +265,7 @@
/obj/machinery/turret/proc/popDown()
if ((!isPopping()) || src.popping==1)
popping = -1
playsound(get_turf(src), 'sound/effects/turret/open.wav', 60, 1)
if (src.cover!=null)
flick("popdown", src.cover)
src.cover.icon_state = "turretCover"
@@ -272,7 +285,7 @@
/obj/machinery/turret/attackby(obj/item/weapon/W, mob/user)//I can't believe no one added this before/N
..()
playsound(src.loc, 'sound/weapons/smash.ogg', 60, 1)
playsound(get_turf(src), 'sound/weapons/smash.ogg', 60, 1)
src.spark_system.start()
src.health -= W.force * 0.5
if (src.health <= 0)
@@ -422,7 +435,7 @@
/obj/machinery/turret/attack_alien(mob/living/carbon/alien/humanoid/M as mob)
if(!(stat & BROKEN))
playsound(src.loc, 'sound/weapons/slash.ogg', 25, 1, -1)
playsound(get_turf(src), 'sound/weapons/slash.ogg', 25, 1, -1)
visible_message("\red <B>[] has slashed at []!</B>", M, src)
src.health -= 15
if (src.health <= 0)
@@ -609,7 +622,7 @@
return
if (targloc == curloc)
return
playsound(src, 'sound/weapons/Gunshot.ogg', 50, 1)
playsound(get_turf(src), 'sound/weapons/Gunshot.ogg', 60, 1)
var/obj/item/projectile/A = new /obj/item/projectile/bullet(curloc)
A.current = curloc
A.yo = targloc.y - curloc.y
-84
View File
@@ -1,84 +0,0 @@
var/list/sps_list = list()
/obj/item/device/sps
name = "space 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
slot_flags = SLOT_BELT
origin_tech = "materials=2;magnets=3;bluespace=2"
var/spstag = "COM0"
var/emped = 0
var/turf/locked_location
/obj/item/device/sps/New()
..()
sps_list.Add(src)
name = "space positioning system ([spstag])"
overlays += "working"
/obj/item/device/sps/Destroy()
sps_list.Remove(src)
..()
/obj/item/device/sps/emp_act(severity)
emped = 1
overlays -= "working"
overlays += "emp"
spawn(300)
emped = 0
overlays -= "emp"
overlays += "working"
/obj/item/device/sps/attack_self(mob/user as mob)
var/obj/item/device/sps/t = ""
var/sps_window_height = 110 + sps_list.len * 20 // Variable window height, depending on how many sps units there are to show
if(emped)
t += "ERROR"
else
t += "<A href='?src=\ref[src];tag=1'>Set Tag</A><A href='?src=\ref[src];refresh=1'>Refresh</A>"
t += "<BR>Tag: [spstag]"
if(locked_location && locked_location.loc)
t += "<BR>Bluespace coordinates saved: [locked_location.loc]"
sps_window_height += 20
for(var/obj/item/device/sps/G in sps_list)
var/turf/pos = get_turf(G)
var/area/sps_area = get_area(G)
var/tracked_spstag = G.spstag
if(G.emped == 1)
t += "<BR>[tracked_spstag]: ERROR"
else
t += "<BR>[tracked_spstag]: [format_text(sps_area.name)] ([pos.x], [pos.y], [pos.z])"
var/datum/browser/popup = new(user, "sps", name, 360, min(sps_window_height, 800))
popup.set_content(t)
popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
popup.open()
/obj/item/device/sps/Topic(href, href_list)
..()
if(href_list["tag"] )
var/a = input("Please enter desired tag.", name, spstag) as text
a = uppertext(copytext(sanitize(a), 1, 5))
if(src.loc == usr)
spstag = a
name = "space positioning system ([spstag])"
attack_self(usr)
if(href_list["refresh"] )
if(src.loc == usr)
attack_self(usr)
/obj/item/device/sps/science
icon_state = "gps-s"
spstag = "SCI0"
/obj/item/device/sps/engineering
icon_state = "gps-e"
spstag = "ENG0"
/obj/item/device/sps/mining
icon_state = "gps-m"
spstag = "MINE0"
desc = "A positioning system helpful for rescuing trapped or injured miners, keeping one on you at all times while mining might just save your life."
@@ -4,7 +4,7 @@
icon_state = "intercom"
anchored = 1
w_class = 4.0
canhear_range = 2
canhear_range = 5
flags = FPRINT | CONDUCT | TABLEPASS | NOBLOODY
var/number = 0
var/anyai = 1
-59
View File
@@ -1,59 +0,0 @@
/obj/item/weapon/rcs
name = "rapid-crate-sender (RCS)"
desc = "Use this to send crates and closets to cargo telepads."
icon = 'icons/obj/items.dmi'
icon_state = "rcs"
opacity = 0
density = 0
anchored = 0.0
flags = FPRINT | 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)
desc = "Use this to send crates and closets to cargo telepads. There are [rcharges] charges left."
/obj/item/weapon/rcs/Destroy()
processing_objects.Remove(src)
..()
/obj/item/weapon/rcs/process()
if(rcharges > 10)
rcharges = 10
if(last_charge == 0)
rcharges++
desc = "Use this to send crates and closets to cargo telepads. There are [rcharges] charges left."
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 << "\red The telepad locator has become uncalibrated."
else
mode = 0
playsound(src.loc, 'sound/effects/pop.ogg', 50, 0)
user << "\blue 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 << "\red You emag the RCS. Click on it to toggle between modes."
return
-6
View File
@@ -487,12 +487,6 @@
if(istype(M,/mob/living/carbon/human))
var/mob/living/carbon/human/H = M
H.updatehealth()
if(istype(M,/mob/living/carbon/human/machine) && M.stat == 0) // If an IPC is brought back to life by welding it, which is possible, update the mob list
if(M in dead_mob_list)
dead_mob_list -= M
respawnable_list -= M
living_mob_list += M
mob_list += M
return
else
user << "\red You need more welding fuel to complete this task."
@@ -18,8 +18,11 @@
if (!H.amputated)
if ((health >= (config.health_threshold_dead/100*75)) && stat == DEAD) //need to get them 25% away from death point before reviving them
dead_mob_list -= src
respawnable_list -= src
living_mob_list += src
mob_list += src
stat = CONSCIOUS
ear_deaf = 0
return
/mob/living/carbon/human/getBrainLoss()
+4 -2
View File
@@ -1292,7 +1292,9 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc
see_invisible = SEE_INVISIBLE_LIVING
seer = 0
var/tmp/has_ninja_mask = 0
if(istype(wear_mask, /obj/item/clothing/mask/gas/voice/space_ninja))
has_ninja_mask = 1
var/obj/item/clothing/mask/gas/voice/space_ninja/O = wear_mask
switch(O.mode)
if(0)
@@ -1305,7 +1307,7 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc
if(!druggy) see_invisible = SEE_INVISIBLE_LIVING
if(1)
see_in_dark = 5
if(!druggy) see_invisible = SEE_INVISIBLE_LIVING
if(!druggy) see_invisible = SEE_INVISIBLE_MINIMUM
if(2)
sight |= SEE_MOBS
if(!druggy) see_invisible = SEE_INVISIBLE_LEVEL_TWO
@@ -1340,7 +1342,7 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc
see_invisible = SEE_INVISIBLE_LIVING
if(istype(O,/obj/item/clothing/glasses/hud/security/night) || istype(O,/obj/item/clothing/glasses/hud/health/night))
see_invisible = SEE_INVISIBLE_MINIMUM
else if(!seer)
else if(!seer && !has_ninja_mask)
see_in_dark = species.darksight
see_invisible = SEE_INVISIBLE_LIVING
-6
View File
@@ -633,12 +633,6 @@ obj/structure/cable/proc/cableColor(var/colorC)
if(istype(M,/mob/living/carbon/human))
var/mob/living/carbon/human/H = M
H.updatehealth()
if(istype(M,/mob/living/carbon/human/machine) && M.stat == 0) // If an IPC is brought back to life by welding it, which is possible, update the mob list
if(M in dead_mob_list)
dead_mob_list -= M
respawnable_list -= M
living_mob_list += M
mob_list += M
return
else
user << "Nothing to fix!"
+7 -10
View File
@@ -51,6 +51,7 @@
var/drowsy = 0
var/agony = 0
var/embed = 0 // whether or not the projectile can embed itself in the mob
var/forcedodge = 0
proc/delete()
@@ -82,9 +83,8 @@
loc = A.loc
return 0 //cannot shoot yourself
if(bumped) return 0
var/forcedodge = 0 // force the projectile to pass
if(bumped)
return 1
bumped = 1
if(firer && istype(A, /mob))
var/mob/M = A
@@ -137,14 +137,11 @@
spawn(0)
if(A)
if(!forcedodge)
forcedodge = A.bullet_act(src, def_zone) // searches for return value
if(forcedodge == -1) // the bullet passes through a dense object!
var/turf/new_loc = get_turf(A)
var/permutation = A.bullet_act(src, def_zone) // searches for return value, could be deleted after run so check A isn't null
if(permutation == -1 || forcedodge)// the bullet passes through a dense object!
bumped = 0 // reset bumped variable!
if(istype(A, /turf))
loc = A
else
loc = A.loc
loc = new_loc
permutated.Add(A)
return 0
if(istype(A,/turf))
@@ -42,6 +42,7 @@
icon_state = "xray"
damage = 15
irradiate = 30
forcedodge = 1
/obj/item/projectile/beam/pulse
name = "pulse"
+4 -4
View File
@@ -2123,14 +2123,14 @@ datum/design/bluespace_crystal
reliability_base = 100
build_path = "/obj/item/bluespace_crystal/artificial"
datum/design/telesci_sps
name = "SPS Device"
datum/design/telesci_gps
name = "GPS Device"
desc = "A device that can track its position at all times."
id = "telesci_sps"
id = "telesci_Gps"
req_tech = list("materials" = 2, "magnets" = 3, "bluespace" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 500, "$glass" = 1000)
build_path = /obj/item/device/sps
build_path = /obj/item/device/gps
/////////////////////////////////////////
/////////////////HUDs////////////////////
@@ -2,18 +2,6 @@
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Miscellaneous xenoarchaeology tools
/obj/item/device/gps
name = "relay positioning device"
desc = "Triangulates the approximate co-ordinates using a nearby satellite network."
icon = 'icons/obj/device.dmi'
icon_state = "locator"
item_state = "locator"
w_class = 2
/obj/item/device/gps/attack_self(var/mob/user as mob)
var/turf/T = get_turf(src)
user << "\blue \icon[src] [src] flashes <i>[T.x].[rand(0,9)]:[T.y].[rand(0,9)]:[T.z].[rand(0,9)]</i>."
/obj/item/device/measuring_tape
name = "measuring tape"
desc = "A coiled metallic tape used to check dimensions and lengths."
+81
View File
@@ -0,0 +1,81 @@
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
slot_flags = SLOT_BELT
origin_tech = "programming=2;engineering=2"
var/gpstag = "COM0"
var/emped = 0
var/turf/locked_location
/obj/item/device/gps/New()
..()
GPS_list.Add(src)
name = "global positioning system ([gpstag])"
overlays += "working"
/obj/item/device/gps/Destroy()
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 = ""
var/gps_window_height = 110 + GPS_list.len * 20 // Variable window height, depending on how many GPS units there are to show
if(emped)
t += "ERROR"
else
t += "<BR><A href='?src=\ref[src];tag=1'>Set Tag</A> "
t += "<BR>Tag: [gpstag]"
if(locked_location && locked_location.loc)
t += "<BR>Bluespace coordinates saved: [locked_location.loc]"
gps_window_height += 20
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 += "<BR>[tracked_gpstag]: ERROR"
else
t += "<BR>[tracked_gpstag]: [format_text(gps_area.name)] ([pos.x], [pos.y], [pos.z])"
var/datum/browser/popup = new(user, "GPS", name, 360, min(gps_window_height, 800))
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"
/obj/item/device/gps/mining
icon_state = "gps-m"
gpstag = "MINE0"
desc = "A positioning system helpful for rescuing trapped or injured miners, keeping one on you at all times while mining might just save your life."
+158
View File
@@ -0,0 +1,158 @@
///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
var/efficiency
/obj/machinery/telepad/New()
..()
component_parts = list()
component_parts += new /obj/item/weapon/circuitboard/telesci_pad(null)
component_parts += new /obj/item/bluespace_crystal/artificial(null)
component_parts += new /obj/item/bluespace_crystal/artificial(null)
component_parts += new /obj/item/weapon/stock_parts/capacitor(null)
component_parts += new /obj/item/weapon/stock_parts/console_screen(null)
component_parts += new /obj/item/stack/cable_coil(null, 1)
RefreshParts()
/obj/machinery/telepad/RefreshParts()
var/E
for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts)
E += C.rating
efficiency = E
/obj/machinery/telepad/attackby(obj/item/I, mob/user)
if(default_deconstruction_screwdriver(user, "pad-idle-o", "pad-idle", I))
return
if(panel_open)
if(istype(I, /obj/item/device/multitool))
var/obj/item/device/multitool/M = I
M.buffer = src
user << "<span class = 'caution'>You save the data in the [I.name]'s buffer.</span>"
if(exchange_parts(user, I))
return
default_deconstruction_crowbar(I)
//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 << "<span class = 'caution'> The [src] can now be moved.</span>"
else if(!anchored)
anchored = 1
user << "<span class = 'caution'> The [src] is now secured.</span>"
if(istype(W, /obj/item/weapon/screwdriver))
if(stage == 0)
playsound(src, 'sound/items/Screwdriver.ogg', 50, 1)
user << "<span class = 'caution'> You unscrew the telepad's tracking beacon.</span>"
stage = 1
else if(stage == 1)
playsound(src, 'sound/items/Screwdriver.ogg', 50, 1)
user << "<span class = 'caution'> You screw in the telepad's tracking beacon.</span>"
stage = 0
if(istype(W, /obj/item/weapon/weldingtool) && stage == 1)
playsound(src, 'sound/items/Welder.ogg', 50, 1)
user << "<span class = 'caution'> You disassemble the telepad.</span>"
new /obj/item/stack/sheet/metal(get_turf(src))
new /obj/item/stack/sheet/glass(get_turf(src))
qdel(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 << "<span class = 'caution'> Locked In</span>"
new /obj/machinery/telepad_cargo(user.loc)
playsound(src, 'sound/effects/pop.ogg', 100, 1, 1)
qdel(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 = CONDUCT
force = 10.0
throwforce = 10.0
throw_speed = 2
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(mob/user)
..()
user << "There are [rcharges] charge\s left."
/obj/item/weapon/rcs/Destroy()
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 << "<span class = 'caution'> The telepad locator has become uncalibrated.</span>"
else
mode = 0
playsound(src.loc, 'sound/effects/pop.ogg', 50, 0)
user << "<span class = 'caution'> You calibrate the telepad locator.</span>"
/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 << "<span class = 'caution'> You emag the RCS. Click on it to toggle between modes.</span>"
return
+383
View File
@@ -0,0 +1,383 @@
/obj/machinery/computer/telescience
name = "\improper Telepad Control Console"
desc = "Used to teleport objects to and from the telescience telepad."
icon_state = "teleport"
circuit = /obj/item/weapon/circuitboard/telesci_console
var/sending = 1
var/obj/machinery/telepad/telepad = null
var/temp_msg = "Telescience control console initialized.<BR>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/last_target
var/rotation = 0
var/angle = 45
var/power = 5
// Based on the power used
var/teleport_cooldown = 0 // every index requires a bluespace crystal
var/list/power_options = list(5, 10, 20, 25, 30, 40, 50, 80, 100)
var/teleporting = 0
var/starting_crystals = 3
var/max_crystals = 4
var/list/crystals = list()
var/obj/item/device/gps/inserted_gps
/obj/machinery/computer/telescience/New()
..()
recalibrate()
/obj/machinery/computer/telescience/Destroy()
eject()
if(inserted_gps)
inserted_gps.loc = loc
inserted_gps = null
..()
/obj/machinery/computer/telescience/examine(mob/user)
..()
user << "There are [crystals.len ? crystals.len : "no"] bluespace crystal\s in the crystal slots."
/obj/machinery/computer/telescience/initialize()
..()
for(var/i = 1; i <= starting_crystals; i++)
crystals += new /obj/item/bluespace_crystal/artificial(null) // starting crystals
/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/weapon/card/emag))
if (emagged == 0)
user << "\blue You scramble the Telescience authentication key to an unknown signal. You should be able to teleport to more places now!"
emagged = 1
else
user << "\red The machine seems unaffected by the card swipe..."
if(istype(W, /obj/item/bluespace_crystal))
if(crystals.len >= max_crystals)
user << "<span class='warning'>There are not enough crystal slots.</span>"
return
user.drop_item()
crystals += W
W.loc = null
user.visible_message("<span class='notice'>[user] inserts [W] into \the [src]'s crystal slot.</span>")
updateUsrDialog()
else if(istype(W, /obj/item/device/gps))
if(!inserted_gps)
inserted_gps = W
user.before_take_item(W)
W.loc = src
user.visible_message("<span class='notice'>[user] inserts [W] into \the [src]'s GPS device slot.</span>")
updateUsrDialog()
else if(istype(W, /obj/item/device/multitool))
var/obj/item/device/multitool/M = W
if(M.buffer && istype(M.buffer, /obj/machinery/telepad))
telepad = M.buffer
M.buffer = null
user << "<span class = 'caution'>You upload the data from the [W.name]'s buffer.</span>"
updateUsrDialog()
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.set_machine(src)
var/t
if(!telepad)
in_use = 0 //Yeah so if you deconstruct teleporter while its in the process of shooting it wont disable the console
t += "<div class='statusDisplay'>No telepad located. <BR>Please add telepad data.</div><BR>"
else
if(inserted_gps)
t += "<A href='?src=\ref[src];ejectGPS=1'>Eject GPS</A>"
t += "<A href='?src=\ref[src];setMemory=1'>Set GPS memory</A>"
else
t += "<span class='linkOff'>Eject GPS</span>"
t += "<span class='linkOff'>Set GPS memory</span>"
t += "<div class='statusDisplay'>[temp_msg]</div><BR>"
t += "<A href='?src=\ref[src];setrotation=1'>Set Bearing</A>"
t += "<div class='statusDisplay'>[rotation] degrees</div>"
t += "<A href='?src=\ref[src];setangle=1'>Set Elevation</A>"
t += "<div class='statusDisplay'>[angle] degrees</div>"
t += "<span class='linkOn'>Set Power</span>"
t += "<div class='statusDisplay'>"
for(var/i = 1; i <= power_options.len; i++)
if(crystals.len + telepad.efficiency < i)
t += "<span class='linkOff'>[power_options[i]]</span>"
continue
if(power == power_options[i])
t += "<span class='linkOn'>[power_options[i]]</span>"
continue
t += "<A href='?src=\ref[src];setpower=[i]'>[power_options[i]]</A>"
t += "</div>"
t += "<A href='?src=\ref[src];setz=1'>Set Sector</A>"
t += "<div class='statusDisplay'>[z_co ? z_co : "NULL"]</div>"
t += "<BR><A href='?src=\ref[src];send=1'>Send</A>"
t += " <A href='?src=\ref[src];receive=1'>Receive</A>"
t += "<BR><A href='?src=\ref[src];recal=1'>Recalibrate Crystals</A> <A href='?src=\ref[src];eject=1'>Eject Crystals</A>"
// Information about the last teleport
t += "<BR><div class='statusDisplay'>"
if(!last_tele_data)
t += "No teleport data found."
else
t += "Source Location: ([last_tele_data.src_x], [last_tele_data.src_y])<BR>"
//t += "Distance: [round(last_tele_data.distance, 0.1)]m<BR>"
t += "Time: [round(last_tele_data.time, 0.1)] secs<BR>"
t += "</div>"
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("<span class='warning'>The telepad weakly fizzles.</span>")
return
/obj/machinery/computer/telescience/proc/doteleport(mob/user)
if(teleport_cooldown > world.time)
temp_msg = "Telepad is recharging power.<BR>Please wait [round((teleport_cooldown - world.time) / 10)] seconds."
return
if(teleporting)
temp_msg = "Telepad is in use.<BR>Please wait."
return
if(telepad)
var/truePower = Clamp(power + power_off, 1, 1000)
var/trueRotation = rotation + rotation_off
var/trueAngle = Clamp(angle, 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)
last_target = target
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.<BR>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.<BR>"
if(teles_left < 10)
temp_msg += "<BR>Calibration required soon."
else
temp_msg += "Data printed below."
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)
var/log_msg = ""
log_msg += ": [key_name(user)] has teleported "
if(sending)
source = dest
dest = target
flick("pad-beam", telepad)
playsound(telepad.loc, 'sound/weapons/emitter2.ogg', 25, 1, extrarange = 3, falloff = 5)
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
log_msg += "[key_name(L)] (on a chair), "
else
continue
else if(!isobserver(ROI))
continue
if(ismob(ROI))
var/mob/T = ROI
log_msg += "[key_name(T)], "
else
log_msg += "[ROI.name]"
if (istype(ROI, /obj/structure/closet))
var/obj/structure/closet/C = ROI
log_msg += " ("
for(var/atom/movable/Q as mob|obj in C)
if(ismob(Q))
log_msg += "[key_name(Q)], "
else
log_msg += "[Q.name], "
if (dd_hassuffix(log_msg, "("))
log_msg += "empty)"
else
log_msg = dd_limittext(log_msg, length(log_msg) - 2)
log_msg += ")"
log_msg += ", "
do_teleport(ROI, dest)
if (dd_hassuffix(log_msg, ", "))
log_msg = dd_limittext(log_msg, length(log_msg) - 2)
else
log_msg += "nothing"
log_msg += " [sending ? "to" : "from"] [trueX], [trueY], [z_co] ([A ? A.name : "null area"])"
investigate_log(log_msg, "telesci")
updateUsrDialog()
/obj/machinery/computer/telescience/proc/teleport(mob/user)
if(rotation == null || angle == null || z_co == null)
temp_msg = "ERROR!<BR>Set a angle, rotation and sector."
return
if(power <= 0)
telefail()
temp_msg = "ERROR!<BR>No power selected!"
return
if(angle < 1 || angle > 90)
telefail()
temp_msg = "ERROR!<BR>Elevation is less than 1 or greater than 90."
return
if(z_co == 2 || z_co < 1 || z_co > 6)
if (z_co == 7 & emagged == 1)
// This should be empty, allows for it to continue if the z-level is 7 and the machine is emagged.
else
telefail()
temp_msg = "ERROR! Sector is less than 1, <BR>greater than [src.emagged ? "7" : "6"], or equal to 2."
return
if(teles_left > 0)
doteleport(user)
else
telefail()
temp_msg = "ERROR!<BR>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(!telepad)
updateUsrDialog()
return
if(telepad.panel_open)
temp_msg = "Telepad undergoing physical maintenance operations."
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 + telepad.efficiency >= 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["ejectGPS"])
if(inserted_gps)
inserted_gps.loc = loc
inserted_gps = null
if(href_list["setMemory"])
if(last_target && inserted_gps)
inserted_gps.locked_location = last_target
temp_msg = "Location saved."
else
temp_msg = "ERROR!<BR>No data was stored."
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:<BR>Calibration successful."
if(href_list["eject"])
eject()
temp_msg = "NOTICE:<BR>Bluespace crystals ejected."
updateUsrDialog()
/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)
+85 -87
View File
@@ -678,7 +678,7 @@
"anb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area/security/brig)
"anc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/brig)
"and" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/security/brig)
"ane" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/camera{c_tag = "Brig Main Hall"; dir = 2; network = list("SS13")},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/brig)
"ane" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/camera{c_tag = "Brig Main Hall"; dir = 2; network = list("SS13")},/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/brig)
"anf" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 101; on = 1; pressure_checks = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/brig)
"ang" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/brig)
"anh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area/security/brig)
@@ -2245,7 +2245,7 @@
"aRi" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva)
"aRj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/camera{c_tag = "EVA South"; dir = 1; network = list("SS13")},/turf/simulated/floor,/area/ai_monitored/storage/eva)
"aRk" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/ai_monitored/storage/eva)
"aRl" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva)
"aRl" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva)
"aRm" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/flora/kirbyplants,/turf/simulated/floor{dir = 9; icon_state = "blue"},/area/hallway/primary/central/north)
"aRn" = (/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Central Hallway North"; dir = 2; network = list("SS13")},/obj/machinery/alarm{pixel_y = 23},/obj/item/flag/nt,/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/central/north)
"aRo" = (/turf/simulated/floor{dir = 1; icon_state = "bluecorner"},/area/hallway/primary/central/north)
@@ -2587,7 +2587,7 @@
"aXM" = (/obj/machinery/vending/hydroseeds,/obj/machinery/camera{c_tag = "Hydroponics North"; network = list("SS13")},/turf/simulated/floor{icon_state = "dark"},/area/hydroponics)
"aXN" = (/obj/machinery/biogenerator,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "dark"},/area/hydroponics)
"aXO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/requests_console{department = "Hydroponics"; departmentType = 2; pixel_x = 0; pixel_y = 30},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "dark"},/area/hydroponics)
"aXP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/wood,/area/crew_quarters/captain)
"aXP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/light_switch{pixel_y = 24},/turf/simulated/floor/wood,/area/crew_quarters/captain)
"aXQ" = (/obj/structure/table/woodentable,/turf/simulated/floor/wood{broken = 1; icon_state = "wood-broken"},/area/maintenance/abandonedbar)
"aXR" = (/obj/structure/bookcase{name = "bookcase (Religious)"},/turf/simulated/floor/wood,/area/library)
"aXS" = (/turf/simulated/floor/carpet,/area/library)
@@ -2597,7 +2597,7 @@
"aXW" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/library)
"aXX" = (/obj/structure/table/woodentable,/obj/item/device/taperecorder{pixel_y = 0},/obj/item/device/eftpos{eftpos_name = "Library EFTPOS scanner"},/obj/item/device/camera{desc = "A one use - polaroid camera. 30 photos left."; name = "Camera"; pictures_left = 30; pixel_x = 0; pixel_y = 0},/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/library)
"aXY" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/wood,/area/bridge/meeting_room)
"aXZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/wood,/area/bridge/meeting_room)
"aXZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/light_switch{pixel_y = 24},/turf/simulated/floor/wood,/area/bridge/meeting_room)
"aYa" = (/turf/simulated/floor{dir = 1; icon_state = "chapel"},/area/chapel/main)
"aYb" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 4; icon_state = "chapel"},/area/chapel/main)
"aYc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 1; icon_state = "chapel"},/area/chapel/main)
@@ -3179,7 +3179,7 @@
"bjg" = (/obj/machinery/turret,/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bjh" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/captain)
"bji" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/wood,/area/crew_quarters/captain)
"bjj" = (/obj/machinery/disposal,/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/telesci)
"bjj" = (/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bjk" = (/obj/machinery/ai_status_display{pixel_y = 32},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/carpet,/area/crew_quarters/captain)
"bjl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/carpet,/area/crew_quarters/captain)
"bjm" = (/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/carpet,/area/crew_quarters/captain)
@@ -3504,7 +3504,7 @@
"bpt" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/research{name = "Mech Bay"; req_access_txt = "29"; req_one_access_txt = "0"},/turf/simulated/floor,/area/assembly/chargebay)
"bpu" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/poddoor/shutters{dir = 2; id = "mechbay"; name = "Mech Bay"},/turf/simulated/floor{icon_state = "delivery"},/area/assembly/chargebay)
"bpv" = (/obj/machinery/computer/rdconsole/robotics,/obj/machinery/alarm{pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics)
"bpw" = (/obj/structure/table,/obj/item/weapon/book/manual/robotics_cyborgs{pixel_x = 2; pixel_y = 5},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/machinery/requests_console{department = "Robotics"; departmentType = 2; name = "Robotics RC"; pixel_y = 30},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics)
"bpw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bpx" = (/obj/machinery/r_n_d/circuit_imprinter,/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics)
"bpy" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 0; pixel_y = 0},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 0; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab)
"bpz" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/door/window/eastright{base_state = "left"; dir = 2; icon_state = "left"; name = "Robotics Desk"; req_access_txt = "29"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/folder/white,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/assembly/robotics)
@@ -3798,7 +3798,7 @@
"bvb" = (/obj/structure/table,/obj/item/weapon/folder/white{pixel_y = 10},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/medical/reception)
"bvc" = (/turf/simulated/floor{tag = "icon-whiteblue"; icon_state = "whiteblue"},/area/medical/reception)
"bvd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{tag = "icon-whiteblue (SOUTHEAST)"; icon_state = "whiteblue"; dir = 6},/area/medical/reception)
"bve" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/closet/secure_closet/security,/turf/simulated/floor{icon_state = "red"; dir = 10},/area/security/checkpoint/medical)
"bve" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bvf" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "red"},/area/security/checkpoint/medical)
"bvg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "red"},/area/security/checkpoint/medical)
"bvh" = (/obj/structure/table,/obj/item/weapon/storage/box/masks{pixel_x = 6; pixel_y = 2},/obj/item/weapon/storage/box/gloves,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{icon_state = "red"; dir = 6},/area/security/checkpoint/medical)
@@ -3807,7 +3807,7 @@
"bvk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/medical/morgue)
"bvl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = -28},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/medical/morgue)
"bvm" = (/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/medical/morgue)
"bvn" = (/obj/machinery/firealarm{pixel_y = -30},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/medical/morgue)
"bvn" = (/obj/machinery/atmospherics/pipe/manifold{_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"})
"bvo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 13},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bvp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area)
"bvq" = (/obj/machinery/camera{c_tag = "Research Mech Bay"; dir = 4; network = list("Research","SS13")},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/assembly/chargebay)
@@ -3885,7 +3885,7 @@
"bwK" = (/obj/machinery/door/window/eastright{name = "Medical Reception"; req_access_txt = "5"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/medical/reception)
"bwL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "loadingarea"; tag = "loading"},/area/medical/reception)
"bwM" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "loadingarea"; tag = "loading"},/area/medical/reception)
"bwN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/firealarm,/turf/simulated/wall,/area)
"bwN" = (/obj/machinery/light,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"})
"bwO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/obj/machinery/door/airlock/glass_security{name = "Medbay Sec Lobby"; req_access_txt = "63"},/turf/simulated/floor{dir = 2; icon_state = "redfull"; tag = "icon-redfull (NORTHWEST)"},/area/security/checkpoint/medical)
"bwP" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/medical{name = "Morgue"; req_access_txt = "0"; req_one_access_txt = "6,9"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2)
"bwQ" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/wall,/area)
@@ -4321,7 +4321,7 @@
"bFe" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1},/area/medical/genetics_cloning)
"bFf" = (/obj/machinery/disposal,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor{tag = "icon-whitepurple (NORTHEAST)"; icon_state = "whitepurple"; dir = 5},/area/medical/genetics_cloning)
"bFg" = (/obj/machinery/light{dir = 8},/obj/structure/closet/secure_closet/medical1,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor{tag = "icon-whitepurple (NORTHWEST)"; icon_state = "whitepurple"; dir = 9},/area/medical/genetics)
"bFh" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/camera{c_tag = "Research Genetics North"; network = list("SS13")},/obj/machinery/power/apc{dir = 1; name = "Genetics APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1},/area/medical/genetics)
"bFh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bFi" = (/turf/simulated/floor{icon_state = "white"},/area/medical/genetics)
"bFj" = (/obj/structure/table,/obj/item/device/flashlight/pen,/obj/item/device/flashlight/pen,/obj/item/weapon/hand_labeler,/obj/structure/closet/walllocker/emerglocker/north,/turf/simulated/floor{tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1},/area/medical/genetics)
"bFk" = (/obj/structure/closet/wardrobe/genetics_white,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1},/area/medical/genetics)
@@ -4426,7 +4426,7 @@
"bHf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area)
"bHg" = (/obj/structure/table,/obj/machinery/door_control{id = "Biohazard"; name = "Biohazard Shutter Control"; pixel_x = -4; pixel_y = 6; req_access_txt = "47"},/obj/item/weapon/folder/white{pixel_x = 4},/obj/item/weapon/stamp/rd{pixel_x = 5; pixel_y = -2},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor)
"bHh" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching the RD's goons from the safety of his office."; name = "Research Monitor"; network = list("Research","Research Outpost"); pixel_x = 0; pixel_y = 2},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor)
"bHi" = (/obj/machinery/computer/aifixer,/obj/machinery/requests_console{announcementConsole = 1; department = "Research Director's Desk"; departmentType = 5; name = "Research Director RC"; pixel_x = -2; pixel_y = 30},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor)
"bHi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bHj" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/rack,/obj/item/weapon/circuitboard/aicore{pixel_x = -2; pixel_y = 4},/turf/simulated/floor{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/crew_quarters/hor)
"bHk" = (/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/hor)
"bHl" = (/obj/machinery/ai_status_display{pixel_y = 32},/turf/simulated/floor{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/crew_quarters/hor)
@@ -4890,16 +4890,16 @@
"bQb" = (/obj/machinery/light,/turf/simulated/floor{tag = "icon-whitepurple (SOUTHWEST)"; icon_state = "whitepurple"; dir = 10},/area/medical/genetics)
"bQc" = (/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/medical/genetics)
"bQd" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/medical/genetics)
"bQe" = (/obj/machinery/light,/obj/machinery/camera{c_tag = "Research Genetics South"; dir = 1; network = list("SS13")},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/medical/genetics)
"bQe" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bQf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/medical/genetics)
"bQg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/medical/genetics)
"bQh" = (/obj/machinery/light,/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{tag = "icon-whitepurple (SOUTHEAST)"; icon_state = "whitepurple"; dir = 6},/area/medical/genetics)
"bQi" = (/obj/structure/table/reinforced,/obj/item/device/sps/science,/obj/item/device/sps/science,/obj/item/device/sps/science,/turf/simulated/floor,/area/toxins/telesci)
"bQj" = (/obj/machinery/light{dir = 1},/obj/structure/table/reinforced,/obj/item/device/radio/beacon,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/toxins/telesci)
"bQk" = (/obj/machinery/computer/telescience,/obj/machinery/computer/security/telescreen{desc = "Used for watching the telepad chamber."; layer = 4; name = "Telepad Camera Screen"; network = list("Telepad"); pixel_x = 32; pixel_y = 0},/turf/simulated/floor,/area/toxins/telesci)
"bQi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bQj" = (/obj/machinery/light,/obj/structure/table,/obj/item/weapon/packageWrap,/obj/item/weapon/hand_labeler,/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bQk" = (/obj/machinery/camera{c_tag = "Research Telescience"; dir = 1; network = list("Research","SS13")},/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal,/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bQl" = (/obj/item/device/radio/intercom{pixel_y = 25},/turf/simulated/floor/engine,/area/toxins/telescipad)
"bQm" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Telescience Pad APC"; pixel_y = 24},/turf/simulated/floor/engine,/area/toxins/telescipad)
"bQn" = (/obj/machinery/camera{c_tag = "Research Telescience Telepad"; dir = 2; network = list("Telepad","Research","SS13"); pixel_x = 0},/turf/simulated/floor/engine,/area/toxins/telescipad)
"bQm" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Bridge APC"; pixel_y = -24},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table,/obj/item/device/radio,/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bQn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bQo" = (/turf/simulated/floor/engine,/area/toxins/telescipad)
"bQp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/quartermaster/miningdock)
"bQq" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/toxins/storage)
@@ -4972,12 +4972,12 @@
"bRF" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; level = 2},/turf/simulated/floor,/area/medical/cryo)
"bRG" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold"; level = 2},/turf/simulated/floor,/area/medical/cryo)
"bRH" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; dir = 10; pixel_x = 0; level = 2; initialize_directions = 10},/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/medical/cryo)
"bRI" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/regular{pixel_x = 0; pixel_y = 0},/turf/simulated/floor,/area/toxins/telesci)
"bRJ" = (/turf/simulated/floor,/area/toxins/telesci)
"bRK" = (/obj/structure/grille,/obj/structure/window/plasmareinforced{dir = 4},/obj/structure/window/plasmareinforced{dir = 1},/obj/structure/window/plasmareinforced{dir = 8},/turf/simulated/floor{tag = "icon-vault-border (EAST)"; icon_state = "vault-border"; dir = 4},/area)
"bRI" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 0; pixel_y = 0},/obj/item/device/multitool{pixel_x = 3},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bRJ" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bRK" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bRL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/engine,/area/toxins/telescipad)
"bRM" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/engine,/area/toxins/telescipad)
"bRN" = (/obj/item/weapon/cigbutt,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/storage)
"bRN" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching the telepad chamber."; layer = 4; name = "Telepad Camera Screen"; network = list("Telepad"); pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bRO" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/toxins/storage)
"bRP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"})
"bRQ" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/toxins/mixing)
@@ -5050,10 +5050,10 @@
"bTf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/carpet,/area/medical/psych)
"bTg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/stool/bed/chair/comfy/black{dir = 4},/turf/simulated/floor/carpet,/area/medical/psych)
"bTh" = (/obj/structure/table/woodentable,/obj/machinery/light/small/lamp/green,/turf/simulated/floor/carpet,/area/medical/psych)
"bTi" = (/obj/structure/grille,/obj/structure/window/plasmareinforced{dir = 4},/obj/structure/window/plasmareinforced{dir = 8},/turf/simulated/floor{tag = "icon-vault-border (EAST)"; icon_state = "vault-border"; dir = 4},/area)
"bTj" = (/obj/machinery/telepad,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/engine,/area/toxins/telescipad)
"bTk" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/engine,/area/toxins/telescipad)
"bTl" = (/obj/effect/decal/cleanable/oil,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/storage)
"bTi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bTj" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_y = 30},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bTk" = (/obj/structure/stool/bed/chair/office/light{dir = 1},/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bTl" = (/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bTm" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/toxins/storage)
"bTn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/extinguisher_cabinet{pixel_x = -24},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/medical/research{name = "Research Division"})
"bTo" = (/obj/effect/landmark/start{name = "Scientist"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"})
@@ -5108,7 +5108,7 @@
"bUl" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area)
"bUm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/medical/medbay2)
"bUn" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2)
"bUo" = (/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/medical/cryo)
"bUo" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/light{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bUp" = (/obj/structure/table/woodentable,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor/wood,/area/medical/psych)
"bUq" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/obj/effect/landmark/start{name = "Psychiatrist"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/wood,/area/medical/psych)
"bUr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/quartermaster/storage)
@@ -5116,11 +5116,11 @@
"bUt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold{_color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/carpet,/area/medical/psych)
"bUu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold{_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/carpet,/area/medical/psych)
"bUv" = (/obj/machinery/camera{c_tag = "Medbay Psych Office East"; dir = 8; network = list("SS13")},/obj/machinery/power/apc{dir = 4; name = "Psychiatrist APC"; pixel_x = 25},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/carpet,/area/medical/psych)
"bUw" = (/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor,/area/toxins/telesci)
"bUx" = (/obj/structure/grille,/obj/structure/window/plasmareinforced{dir = 4},/obj/structure/window/plasmareinforced,/obj/structure/window/plasmareinforced{dir = 8},/turf/simulated/floor{tag = "icon-vault-border (EAST)"; icon_state = "vault-border"; dir = 4},/area)
"bUw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bUx" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bUy" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/engine,/area/toxins/telescipad)
"bUz" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor/engine,/area/toxins/telescipad)
"bUA" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/storage)
"bUz" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bUA" = (/obj/machinery/atmospherics/pipe/manifold{_color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bUB" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/toxins/storage)
"bUC" = (/obj/machinery/portable_atmospherics/canister/air,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/toxins/storage)
"bUD" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/medical/research{name = "Research Division"})
@@ -5143,7 +5143,7 @@
"bUU" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor{tag = "icon-whiteblue (SOUTHWEST)"; icon_state = "whiteblue"; dir = 10},/area/toxins/mixing)
"bUV" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor{tag = "icon-whiteblue (SOUTHEAST)"; icon_state = "whiteblue"; dir = 6},/area/toxins/mixing)
"bUW" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/machinery/camera{c_tag = "Research Toxins Launch Room"; dir = 4; network = list("Research","SS13"); pixel_y = -22},/obj/machinery/atmospherics/pipe/vent{dir = 8},/obj/machinery/light{dir = 8},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor,/area/toxins/mixing)
"bUX" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/light/small{dir = 8},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/toxins/storage)
"bUX" = (/obj/structure/closet/emcloset,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{tag = "icon-whitepurple (NORTHEAST)"; icon_state = "whitepurple"; dir = 5},/area/toxins/telesci)
"bUY" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/computer/security/telescreen{desc = "Used for watching the test chamber."; layer = 4; name = "Test Chamber Telescreen"; network = list("Toxins"); pixel_x = 32; pixel_y = 0},/obj/machinery/alarm{pixel_y = 25},/turf/simulated/floor,/area/toxins/mixing)
"bUZ" = (/obj/structure/grille,/obj/structure/window/plasmareinforced{dir = 4},/obj/structure/window/plasmareinforced{dir = 8},/obj/structure/window/plasmareinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area)
"bVa" = (/turf/simulated/floor/airless{dir = 9; icon_state = "warning"},/area/toxins/test_area)
@@ -5205,8 +5205,8 @@
"bWe" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/cable,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area)
"bWf" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/medical/medbay2)
"bWg" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"; tag = "icon-whitebluecorner"},/area/medical/medbay2)
"bWh" = (/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/structure/closet/secure_closet/medical1,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "blue"; dir = 10},/area/medical/cryo)
"bWi" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/pipe/manifold{_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/medical/cryo)
"bWh" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/toxins/telesci)
"bWi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"})
"bWj" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/medical/cryo)
"bWk" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = -28},/obj/machinery/atmospherics/portables_connector{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister/oxygen{name = "Canister: \[O2] (CRYO)"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/medical/cryo)
"bWl" = (/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay Lobby)"; pixel_x = 0; pixel_y = -30},/obj/machinery/atmospherics/portables_connector{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister/oxygen{name = "Canister: \[O2] (CRYO)"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/medical/cryo)
@@ -5218,10 +5218,10 @@
"bWr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light,/turf/simulated/floor/carpet,/area/medical/psych)
"bWs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/stool/bed/chair/comfy/lime{tag = "icon-comfychair_lime (NORTH)"; icon_state = "comfychair_lime"; dir = 1},/turf/simulated/floor/carpet,/area/medical/psych)
"bWt" = (/obj/structure/stool/psychbed,/turf/simulated/floor/carpet,/area/medical/psych)
"bWu" = (/obj/structure/extinguisher_cabinet{pixel_x = -24},/turf/simulated/floor,/area/toxins/telesci)
"bWv" = (/obj/structure/grille,/obj/structure/window/plasmareinforced,/obj/structure/window/plasmareinforced{dir = 4},/obj/structure/window/plasmareinforced{dir = 1},/obj/structure/window/plasmareinforced{dir = 8},/turf/simulated/floor{tag = "icon-vault-border (EAST)"; icon_state = "vault-border"; dir = 4},/area)
"bWu" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"})
"bWv" = (/obj/machinery/power/apc{dir = 1; name = "Telescience Pad APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/engine,/area/toxins/telescipad)
"bWw" = (/obj/structure/mineral_door/wood{name = "Abandoned Bar"},/turf/simulated/floor/wood{broken = 1; icon_state = "wood-broken"},/area/maintenance/abandonedbar)
"bWx" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/plasmareinforced,/obj/structure/window/plasmareinforced{dir = 4},/obj/structure/window/plasmareinforced{dir = 1},/obj/structure/window/plasmareinforced{dir = 8},/turf/simulated/floor{tag = "icon-vault-border (EAST)"; icon_state = "vault-border"; dir = 4},/area)
"bWx" = (/obj/machinery/light,/obj/machinery/camera{c_tag = "Research Genetics South"; dir = 1; network = list("Research","SS13")},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/medical/genetics)
"bWy" = (/obj/machinery/light_switch{pixel_y = -23},/obj/machinery/power/apc{dir = 8; name = "Toxins Storage APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/storage)
"bWz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{tag = "icon-warningcorner (WEST)"; icon_state = "warningcorner"; dir = 8},/area/toxins/storage)
"bWA" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/medical/research{name = "Research Division"})
@@ -5299,12 +5299,11 @@
"bXU" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "psychoffice"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area)
"bXV" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "psychoffice"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area)
"bXW" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "psychoffice"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area)
"bXX" = (/obj/machinery/power/apc{dir = 8; name = "Telescience APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor,/area/toxins/telesci)
"bXY" = (/obj/machinery/telepad_cargo,/turf/simulated/floor,/area/toxins/telesci)
"bXZ" = (/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/toxins/telesci)
"bYa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/toxins/telesci)
"bYb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/toxins/telesci)
"bYc" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/camera{c_tag = "Research Telescience"; dir = 8; network = list("Research","SS13"); pixel_y = -22},/turf/simulated/floor,/area/toxins/telesci)
"bXX" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/light/small{dir = 8},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor,/area/toxins/storage)
"bXY" = (/obj/machinery/camera{c_tag = "Research Telescience Telepad"; dir = 2; network = list("Telepad","Research","SS13"); pixel_x = 0},/obj/machinery/light{dir = 1; on = 1},/turf/simulated/floor/engine,/area/toxins/telescipad)
"bXZ" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/engine,/area/toxins/telescipad)
"bYa" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/storage)
"bYc" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "telescienceblast"; name = "test chamber blast doors"; opacity = 0},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/engine,/area/toxins/telesci)
"bYd" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/research{name = "Toxins Storage"; req_access_txt = "8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/toxins/storage)
"bYe" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/captain/bedroom)
"bYf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"})
@@ -5381,17 +5380,17 @@
"bZy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2)
"bZz" = (/obj/machinery/atmospherics/pipe/manifold{_color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2)
"bZA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor{tag = "icon-whiteblue (NORTHEAST)"; icon_state = "whiteblue"; dir = 5},/area/medical/medbay2)
"bZB" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/light{dir = 8},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/telesci)
"bZC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/telesci)
"bZD" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/telesci)
"bZE" = (/obj/machinery/hologram/holopad,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/toxins/telesci)
"bZF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/toxins/telesci)
"bZG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/telesci)
"bZH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/telesci)
"bZI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/toxins/telesci)
"bZB" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "telescienceblast"; name = "test chamber blast doors"; opacity = 0},/turf/simulated/floor/engine,/area/toxins/telesci)
"bZC" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "telescienceblast"; name = "test chamber blast doors"; opacity = 0},/turf/simulated/floor/engine,/area/toxins/telesci)
"bZD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "telescienceblast"; name = "test chamber blast doors"; opacity = 0},/turf/simulated/floor/engine,/area/toxins/telesci)
"bZE" = (/obj/structure/closet/secure_closet/medical1,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "blue"; dir = 10},/area/medical/cryo)
"bZF" = (/obj/machinery/atmospherics/pipe/manifold{_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/medical/cryo)
"bZG" = (/obj/structure/table,/obj/item/weapon/clipboard,/turf/simulated/floor{tag = "icon-whitepurple (NORTHEAST)"; icon_state = "whitepurple"; dir = 5},/area/toxins/telesci)
"bZH" = (/obj/machinery/computer/telescience,/turf/simulated/floor{tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1},/area/toxins/telesci)
"bZI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/closet/l3closet/scientist,/turf/simulated/floor{tag = "icon-whitepurple (NORTHWEST)"; icon_state = "whitepurple"; dir = 9},/area/toxins/telesci)
"bZJ" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "hazard door east"},/obj/machinery/door/airlock/research{name = "Telescience"; req_access_txt = "7"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bZK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"})
"bZL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"})
"bZK" = (/obj/structure/table,/obj/item/device/gps/science{gpstag = "SCI4"},/obj/item/device/gps/science{gpstag = "SCI3"},/obj/item/device/gps/science{gpstag = "SCI2"},/obj/item/device/gps/science{gpstag = "SCI1"},/obj/item/device/gps/science,/turf/simulated/floor{tag = "icon-whitepurple (NORTHWEST)"; icon_state = "whitepurple"; dir = 9},/area/toxins/telesci)
"bZL" = (/turf/simulated/wall,/area/toxins/telesci)
"bZM" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"})
"bZN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
"bZO" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
@@ -5450,15 +5449,15 @@
"caP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/machinery/power/apc{dir = 2; name = "Medbay APC"; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2)
"caQ" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2)
"caR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light/small{dir = 4},/obj/machinery/vending/medical,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2)
"caS" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/telesci)
"caT" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/telesci)
"caU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/telesci)
"caV" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor,/area/toxins/telesci)
"caW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/telesci)
"caX" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/toxins/telesci)
"caY" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "hazard door east"},/obj/machinery/door/airlock/research{name = "Telescience"; req_access_txt = "7"},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"caZ" = (/obj/machinery/light,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"})
"cba" = (/obj/machinery/atmospherics/pipe/manifold{_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"})
"caS" = (/obj/machinery/door_control{id = "telescienceblast"; name = "Test Chamber Blast Doors"; pixel_x = -25; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/toxins/telesci)
"caT" = (/obj/machinery/telepad_cargo,/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"caU" = (/obj/item/device/radio/beacon,/turf/simulated/floor/engine,/area/toxins/telescipad)
"caV" = (/obj/machinery/telepad,/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/engine,/area/toxins/telescipad)
"caW" = (/obj/item/weapon/cigbutt,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/storage)
"caX" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/engine,/area/toxins/telescipad)
"caY" = (/obj/effect/decal/cleanable/oil,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/storage)
"caZ" = (/obj/machinery/light_switch{pixel_y = -23},/turf/simulated/floor/engine,/area/toxins/telescipad)
"cba" = (/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/medical/cryo)
"cbb" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"})
"cbc" = (/obj/machinery/camera{c_tag = "Research Hallway South"; dir = 1; network = list("Research","SS13"); pixel_x = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"})
"cbd" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"})
@@ -5531,13 +5530,13 @@
"ccs" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Secondary Storage"; req_access_txt = "39"},/turf/simulated/floor,/area/medical/biostorage)
"cct" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/obj/machinery/door/airlock/maintenance{name = "Medbay Maintenance Access"; req_access_txt = "5"},/turf/simulated/floor/plating,/area/medical/iso_access{name = "\improper Patient Rooms"})
"ccu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/sign/redcross{desc = "The Star of Life, a symbol of Medical Aid."; icon_state = "lifestar"; name = "Medbay"},/turf/simulated/wall,/area)
"ccv" = (/obj/machinery/light,/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/telesci)
"ccw" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/telesci)
"ccx" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/telesci)
"ccy" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/telesci)
"ccv" = (/obj/machinery/computer/aifixer,/obj/machinery/requests_console{announcementConsole = 1; department = "Research Director's Desk"; departmentType = 5; name = "Research Director Requests Console"; pixel_x = -2; pixel_y = 30},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor)
"ccw" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/camera{c_tag = "Research Genetics North"; network = list("Research","SS13")},/obj/machinery/power/apc{dir = 1; name = "Genetics APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1},/area/medical/genetics)
"ccx" = (/obj/structure/table,/obj/item/weapon/book/manual/robotics_cyborgs{pixel_x = 2; pixel_y = 5},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/machinery/requests_console{department = "Robotics"; departmentType = 2; name = "Robotics Requests Console"; pixel_y = 30},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics)
"ccy" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/medical/morgue)
"ccz" = (/obj/structure/filingcabinet/filingcabinet,/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor{tag = "icon-brown (NORTH)"; icon_state = "brown"; dir = 1},/area/quartermaster/qm)
"ccA" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/closet/radiation,/turf/simulated/floor,/area/toxins/telesci)
"ccB" = (/obj/machinery/light,/obj/structure/closet/radiation,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/telesci)
"ccA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/closet/secure_closet/security,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{icon_state = "red"; dir = 10},/area/security/checkpoint/medical)
"ccB" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact-f"},/obj/item/device/gps/mining{gpstag = "MINE2"},/obj/item/device/gps/mining{gpstag = "MINE1"},/obj/item/device/gps/mining,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -3},/turf/simulated/floor,/area/mine/eva)
"ccC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor{dir = 8; icon_state = "whitegreencorner"},/area/medical/research{name = "Research Division"})
"ccD" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"})
"ccE" = (/obj/machinery/light,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/atmospherics/pipe/manifold{_color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 2; icon_state = "whitegreencorner"},/area/medical/research{name = "Research Division"})
@@ -6063,6 +6062,7 @@
"cmE" = (/obj/machinery/computer/operating,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery)
"cmF" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor,/area/engine/engineering)
"cmG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"cmH" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/machinery/power/apc{cell_type = 5000; dir = 8; name = "Captain's Quarters APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/light_switch{pixel_y = 24},/turf/simulated/floor/carpet,/area/crew_quarters/captain/bedroom)
"cmI" = (/obj/machinery/light_switch{pixel_x = -25},/obj/machinery/photocopier,/turf/simulated/floor/wood,/area/ntrep)
"cmJ" = (/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/medical/cryo)
"cmK" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{dir = 9; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/toxins/xenobiology)
@@ -7877,6 +7877,7 @@
"cVz" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate_elite/mothership)
"cVA" = (/obj/structure/bookcase{name = "bookcase (Tactics)"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"cVB" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"cVC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/extinguisher_cabinet{pixel_x = -24},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"cVD" = (/turf/unsimulated/floor{dir = 2; icon_state = "carpetside"},/area/wizard_station)
"cVE" = (/obj/structure/table/woodentable,/obj/effect/landmark{name = "Teleport-Scroll"},/turf/unsimulated/floor{dir = 6; icon_state = "carpetside"},/area/wizard_station)
"cVF" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/syndicate_elite/mothership)
@@ -11145,7 +11146,6 @@
"egt" = (/turf/simulated/floor,/area/mine/production)
"egu" = (/obj/machinery/atmospherics/pipe/simple{dir = 6},/turf/simulated/floor,/area/mine/production)
"egv" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor/plating,/area/mine/eva)
"egw" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact-f"},/obj/item/device/sps/mining,/obj/item/device/sps/mining,/obj/item/device/sps/mining,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -3},/turf/simulated/floor,/area/mine/eva)
"egx" = (/turf/simulated/floor,/area/mine/eva)
"egy" = (/obj/structure/dispenser/oxygen,/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact-f"},/turf/simulated/floor,/area/mine/eva)
"egz" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor/plating,/area/mine/eva)
@@ -12371,7 +12371,6 @@
"eEa" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area)
"eEb" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/storage/secure)
"eEc" = (/obj/machinery/door/airlock{name = "Private Restroom"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/captain/bedroom)
"eEd" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/machinery/power/apc{cell_type = 5000; dir = 8; name = "Captain's Quarters APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/carpet,/area/crew_quarters/captain/bedroom)
"eEe" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/carpet,/area/crew_quarters/captain/bedroom)
"eEf" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 28},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/captain/bedroom)
"eEg" = (/obj/machinery/door/airlock/command{name = "Captain's Quarters"; req_access = null; req_access_txt = "20"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/carpet,/area/crew_quarters/captain/bedroom)
@@ -12520,7 +12519,6 @@
"eGT" = (/turf/simulated/floor/plating/airless,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk8"; icon_state = "catwalk8"},/area/engiestation/solars)
"eGU" = (/obj/structure/table/woodentable,/obj/structure/mirror{pixel_x = -28},/obj/item/weapon/storage/pill_bottle/random_drug_bottle,/turf/simulated/floor{dir = 10; icon_state = "purple"},/area/maintenance/abandonedbar)
"eGV" = (/obj/item/weapon/stool,/turf/simulated/floor/plating{dir = 10; icon_regular_floor = "purplecorner"},/area/maintenance/abandonedbar)
"eGW" = (/obj/machinery/door/airlock/glass_research{name = "Telescience Pad"; req_access_txt = "7"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/engine,/area/toxins/telesci)
"eGX" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/glass_research{name = "Research and Development"; req_access_txt = "7"},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab)
"eGY" = (/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/smes{charge = 1e+006},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/engine/engineering)
"eGZ" = (/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/smes{charge = 1e+006},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering)
@@ -12674,34 +12672,34 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablmblmblmblmblmblmblmblmblmblmaaaaaaaCZblnaEjbloblpaDfblqblraaiblsbltbltbltbluaaqblvbdWaSqaaiblwbiIbiHbiIbiIaaibiKblxblyaaibiLaaibhKblzblAbhKblBaaiblCbkcbiSblDblEblFblGblHblIblJbkiblKaaiaaiblLblMaaqaaqaaqblNblOaaiafjblPbkubkubkvblQbkxbkublRaaiblSbkBbkBbkCbkDbkEbkGbkGbkGbkGbkGbkGbkGblTbkGbkGbkGbkGbkGbkGblUblVblVblVblVblVblVblVblVblVblVblVblVblVblVblWblXblYblbblbblZaRLaRLaRLaRLaRLbhkaRLaRLaRLaRLaRLaRLaRLaRLaRLaRLaRLaRLbmaaRLbmbbmcaWDaWDaWDaWDaWDaWDaWDbmdbfcbcjaoKaoKbckaMPaMPaMPaMPaMPaMPaMPaMPaMPaMPaMPaMPaMPaaaaaaaaaaaaaaaaaaaaabjHbjHbjHbjHbjHbjHbjHbjHbjHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablmblmblmblmblmblmblmblmblmblmblmaEUaEVaEWaaiaaiaaibmeaaiaaiaaibiBbltbltbltbmfaaqaTQbdWaSqaaibmgbmhcDDbiIbiIaaibmjblxbmkaaibmjaaibmlblzcDzbmnbhKaaibmobkcbiSbmpbmqblFblGbmrbmsblJbkibmtaaibmubmvbmwaaqbmxaaqbmybmzbmAafjbmBbmCbmDbmEbmEbmFbkubmGaaibmHbmIbkBbkCbkDbkEbkGbmJbkGbkGbkGbkGbmKbmLbmLbmLbmLbmMbkGbkGbkGbkGbmNbkGbmJbmObkGbmPbmQbmRbkGbmSbmTbmTbmUbmVbmWbmXaRLaRLaRLaRLaRLaRLaRLbmYcDHbnaaRLaRLaRLaRLaRLaRLaRLaRLaRLaRLbnbbncbncbndbnebnfbngbnhbnhbnhbnhbnibnjaERaabaaaaaaaabaMPaMPaMPaMPaMPaMPaaaaMPaMPaMPaMPaMPaMPaaaaaaaaaaaaaaaaaaaaabjHbjHbjHbjHbjHbjHbjHbjHbjHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablmblmblmblmblmblmblmblmblmblmblmbnkbnlbnmbnnbnobnpbnqbnrbnsaaibhtbntbntbnubnvaaqaTQbdWaSqaaiaaiaaiaaiaaiaaiaaiaaiblxbnwaaiaaiaaiaaiafjaaiaaiaaiaaibnxbkcbnyaaibnzbnAbkgbkgbkgbkgbkibnBaaiaaibnCbnDbnGbEvbGnbnDbnHaaiafjaaibnIbnJbnKbnLbnMbnNbnOaaibnPbnQbnQaaiaaiaaiaaiaaiaaiaaiaaqaaqbnRbnSbnTbnTbnSbnRaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqbnUaaqaaqaaqaaqaaqaaibnVaoubnWaRLaRLbnXbnXaaiaaiaaiaaiaaibnYbncbncbnbbncaRLbncbncbncbncbnZaaiaaiaaiaaiboaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaMPaMPaMPaMPaMPaMPaaaaMPaMPaMPaMPaMPaMPaaaaaaaaaaaaaaaaaaaaabjHbjHbjHbjHbjHbjHbjHbjHbjHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablmblmblmblmblmblmblmblmblmblmblmaGGaGHaEWbobbocbocbodboebocaaibofbofbofbogbohaaqaTQbdWaSqaaqboicczbokbolbomaaibonblxbooaaibopaaiboqborbosbotbouaaqbovbkcbowaaiboxboybozboAboBboCboDaaiaaiaaiboEboFboGboHboIboJboKaaiafjaaiboLboMboNboObnMbkuboPaaiboQboRboSaaiboTboUboVboWboXboYboZbpabpbbpcbpdbpdbpcbpebpfbpgaaqbphbpibpjbpkaaqbplbyrbpnbpobppbpqbpqbpraaibpsabnaaibptaaibpubpuaaibpvbpwbpxaaibDTbpzbDTaaicBVbncbnZaaibpAbpBbpAaaibpCbpDaaibpEbpFbpGaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMPaMPaMPaMPaMPaMPaaaaMPaMPaMPaMPaMPaMPaaaaaaaaaaaaaaaaaaaaabjHbjHbjHbjHbjHbjHbjHbjHbjHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablmblmblmblmblmblmblmblmblmblmblmaGGaGHaEWbobbocbocbodboebocaaibofbofbofbogbohaaqaTQbdWaSqaaqboicczbokbolbomaaibonblxbooaaibopaaiboqborbosbotbouaaqbovbkcbowaaiboxboybozboAboBboCboDaaiaaiaaiboEboFboGboHboIboJboKaaiafjaaiboLboMboNboObnMbkuboPaaiboQboRboSaaiboTboUboVboWboXboYboZbpabpbbpcbpdbpdbpcbpebpfbpgaaqbphbpibpjbpkaaqbplbyrbpnbpobppbpqbpqbpraaibpsabnaaibptaaibpubpuaaibpvccxbpxaaibDTbpzbDTaaicBVbncbnZaaibpAbpBbpAaaibpCbpDaaibpEbpFbpGaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMPaMPaMPaMPaMPaMPaaaaMPaMPaMPaMPaMPaMPaaaaaaaaaaaaaaaaaaaaabjHbjHbjHbjHbjHbjHbjHbjHbjHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablmblmblmblmblmblmblmblmblmblmaaabpHaHNbpIbpJbnobnobpKbpLbpMaaibpNbpNbpNbpNbpOaaqaTQbdWaSqaaqbpQbpRbpSbpRbpTaaibpUbpVbpWbpYbpYaaibpZbqabqbbqbbqcbqdbqebkcbqfaaibqgaaJaaqaaqaaqaaibqhaaibqiacCbqjbqkbjbbqlbjbbqmbqnacfbqoaaibqpbkubqqbqrbnMbqsbkuaaibqtbqubqvaaibqwbqxbqybqzbqAbqBbqCbpdbpdbpdbpdbpdbpdbpdbqDbqEbqFbqGbqHbqIbqJaaqbqKbqLbqMbqNbqObqPbqLbpraaibpsabnbNtbqRbqSbqTbqUaaqbqVbqWbqVbqXbqYbqZbraaaiaaqbrbampaaibrcbrdbrebrfbrfbrfaaibrgbrhbriaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMPaMPaMPaMPaMPaMPaaaaMPaMPaMPaMPaMPaMPaaaaaaaaaaaaaaaaaaaaabjHbjHbjHbjHbjHbjHbjHbjHbjHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrjazMaaiaaiaaiaoJaoLazMaoJaoLaaiaoJaoLaaiaaiaaiaaibrkbnobocbocbodboebocaaibrlbrmbofbofbogaaqblvbdWbrnaaqbrobrpbrqbrrcHNaaibrtbrubrvbpYbpYaaibrwbrxcHPbrzbrAbrBbrCbrDbrEacfbrFbrGbrHbrIabIbrJbrKacfbrLacfacfacfacfbrMacfacfacfacfbrNacfbrOeEkeEieEjeEhbrTbrUacfbrVboRboRaaibrWbrXdFdbrZbsaaaibqCbpdbpdbpdbpdbpdbpdbpdbsbbscbsdbsebsfdBObshaaqbsibsjbskbqNbprbqPdFhdyNaaibslbsmbsnbsobsobspbsqbsrbssbssbssbstbsubsvbswbsxbsybszbsAbsxbsBbsCbsDbsDbsDcrZaaibsFbrhbsGaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMPaMPaMPaMPaMPaaaaMPaMPaMPaMPaMPaaaaaaaaaaaaaaaaaaaaaaaabjHbjHbjHbjHbjHbjHbjHbjHbjHaaaaaaaaaaaaaaaaaaaaaaaaaOTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbsHaaaaCZbobbnobnobnobpKbpLbnoaaibpNbpNbsIbltbltbsJaTQbdWaSqaaqbsKbsLbsMbsNbsOaaibsPbsQbsRbsScFjaaibsUbsVbsWbsXbsYbsZbtabtbbtcbtdbtebtebtfbtgabXbthbtiacCbtjaGCbtkbtlbtmbtnbtobtlbtpaGCbtqaaiabneEgaaiaaiaaiaaibtsaaibttboRbtuacCbtvbtwbtxbtybtzaaibtAbtBbtCbtDbtEbtFbtGbtHbqDbtIaaqbtJbsfbtKbtLaaqbtMbtNbqMbqNbprbqPbqLbpraaibpsabnbtObtPbtQbtRbtSaGCbtTbtUbtVbtVbtWbqVbtXaaibtYbtZbuaaaibubbucbudbrfbuebufaaibsFbrhbugaaiaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjHbjHbjHbjHbjHbjHbjHbjHbjHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbsHaaaaATbuhbuibocboccEJboebujaaiaaqbukbYMbumaaqaaqblvbdWbhzaaqbunbuobupbuqburaaibpYbrubusbpYbpYaaibutbuubuvbuwbuxaaqbuybuzbuAaaibuBaaqaaqaouaaqaaJbuCaaibuDbuEbuFbtlbuGbtnbuGbtlbuHbuEbtqaaieEdeEecbZeEceEfabIbuMabIbuNboRbuOaaiboTbuPbuQbuRbuSbuTbuUbuVbuWbuXbuYbuZbvabvbbvcbvdbnSbvebvfbvgbvhaaqbvibvjbvkbvlbvmbvnbvmbpraaibvobvpbvqbvrbvrbvsbvtbvubvvbvwbvxbvxbvybvzbvAaaibvBbtZbvCaaibvDbvEbvFbrfbrfbvGaaibrgbrhbvHaaiaaaaaaaaaaaaaabbvIbvJbvKbvJbvKbvJbvLaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjHbjHbjHbjHbjHbjHbjHbjHbjHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbsHaEUaEVbvMbvNbnobnobpKbpLbpMaaibYRbltbXpbltbYLaaqaTQbdWaSqaaqaGGbvRbvSbvTaSGaaibvUbvVbvWbvXbvYaaibvZbwabwbbwcbvZaaqbwdbwebwfaaiaaiaaibFCbwhbwibwjbwkaaibwlbwmbwnbwobwpbwqbwpbwrbwsbwtbwuaaibGdbHubLvaaqbYeaaqbwyaaqbwzboRbwAaaiaGGbwBbvRbwCbwDaaqbwEbwFbwGbwHbwIbwIbwJbwKbwLbwMaaqbwNbwOaouaaqaaqaaqaaJbwPaouaaqaaiaaiaaibwQbwRabnbwSbtPbtQbwTbvrbwUcoAbwWbwWbwWbwXbwYbwZbxaaaibrbbxbaaibxcbxdbrfbxebxfbxgaaibsFbxhaaiaaiaaaaaaaaaaaaaabbxibxjbxkbxlbxlbxmbxiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjHbjHbjHbjHbjHbjHbjHbjHbjHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbsHaaaaATbuhbuibocboccEJboebujaaiaaqbukbYMbumaaqaaqblvbdWbhzaaqbunbuobupbuqburaaibpYbrubusbpYbpYaaibutbuubuvbuwbuxaaqbuybuzbuAaaibuBaaqaaqaouaaqaaJbuCaaibuDbuEbuFbtlbuGbtnbuGbtlbuHbuEbtqaaicmHeEecbZeEceEfabIbuMabIbuNboRbuOaaiboTbuPbuQbuRbuSbuTbuUbuVbuWbuXbuYbuZbvabvbbvcbvdbnSccAbvfbvgbvhaaqbvibvjbvkbvlbvmccybvmbpraaibvobvpbvqbvrbvrbvsbvtbvubvvbvwbvxbvxbvybvzbvAaaibvBbtZbvCaaibvDbvEbvFbrfbrfbvGaaibrgbrhbvHaaiaaaaaaaaaaaaaabbvIbvJbvKbvJbvKbvJbvLaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjHbjHbjHbjHbjHbjHbjHbjHbjHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbsHaEUaEVbvMbvNbnobnobpKbpLbpMaaibYRbltbXpbltbYLaaqaTQbdWaSqaaqaGGbvRbvSbvTaSGaaibvUbvVbvWbvXbvYaaibvZbwabwbbwcbvZaaqbwdbwebwfaaiaaiaaibFCbwhbwibwjbwkaaibwlbwmbwnbwobwpbwqbwpbwrbwsbwtbwuaaibGdbHubLvaaqbYeaaqbwyaaqbwzboRbwAaaiaGGbwBbvRbwCbwDaaqbwEbwFbwGbwHbwIbwIbwJbwKbwLbwMaaqaaJbwOaouaaqaaqaaqaaJbwPaouaaqaaiaaiaaibwQbwRabnbwSbtPbtQbwTbvrbwUcoAbwWbwWbwWbwXbwYbwZbxaaaibrbbxbaaibxcbxdbrfbxebxfbxgaaibsFbxhaaiaaiaaaaaaaaaaaaaabbxibxjbxkbxlbxlbxmbxiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjHbjHbjHbjHbjHbjHbjHbjHbjHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbxnbxobxpbxqbocbocbodboebocaaibxrbltbltbltbXlaaqaTQbdWaSqbxubxvbxwbxxbxybxzaaiaaiaaiaaibxAaaiaaibxBbxCbxDbxEbKvaaqbxGbxHbxIbxXbxKbxWbxMbxNbxObxPbxQaaibuDbxRbxSbtlbwpbxTbwpbtlbxUaaibtqaaibrPbARbznaaqbxYaaqbxZaaqbyaboRbybaaibycbydbyebyfbygabIbyhbyiabIabIbyjbykabIabIbylbymaAnaAqbynbyobypbyqbpmbysbytbyubyvaaibywbyxbyybyzabnbyAbyBbyCbyDbyEaaqbyFbwWbwWbyGbyHbwYbyIaaibyJbyJbyKaaibyLbyMbpybyObrfbyPaaibsFbyQaaiaaaaaaaaaaaaaaaaabbyRbySbxkbxlbxkbyTbvKaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjHbjHbjHbjHbjHbjHbjHbjHbjHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbsHaGGaGHbvMbobbnobnobpKbpLbnoaaibyUbjJbmmbjKbyVabIaSobjMbdXaaqbzebqabyXbyYcwRbzabzbbzcbzdbzdbyWbzfcuTbzhbyYbzibzjaaqbwdboRbzkbzlbzmbxVbzobzpbzqbzrbzsaaibuDaaiaaibztbzubzvbtlbzwbzxacfbzyaaiabnaaiaaiaaiaaiaaibzzaaibzAboRbybaaibzBbzCbzCbzDbzEaaqbzFbzGbzHbzIbzJbzKbzLbzHbzMbzNbzObzPbzQbzRbzSbzTbzUbzVbzWbzXbzYbzZbAabAbbAcbAdbAebAfbAfbAgbAhbAiaaqbAjbqVbqVbAkbAlbwYbAmaaqbAnbAobApaaqbxJbxLaSGeGXbjxaaiaaibAsaaiaaibAtbAubAubAubAvaaibxibxlbxkbxlbxlbAwbxiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjHbjHbjHbjHbjHbjHbjHbjHbjHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAxbAxbAxbAxbAxbAxbAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbAybAzbpIbpJbocbocbodboebocaaibAAbiCbiDbABbACbYObAEbAFaSqaaqbAGbqabyXbyYbAHaaqbAIbAJbqbbqbbAKbALbAMbzhbyYbANbAObAPbwdboRbAQbadbzmbwxbASbATbAUbAVbAWbAXabubzxacfarzbAYbxTbAYbzxbAZaaiaaiaaibBabBbbBcbBdbBebBfbBgacfbBhboRbybbuTbBibBjbBkbBlbBmaaqbBnbBobBpbBqbBrbBsbBtbBubBvbBwbBxbBybBzbBAbBBbarbBDbBEbBFbBGbBHaaibBIbBJbBKbBLaaibBMbBNbBObBPbBPaaqbBQbBRbBSaaqbBTbwYbBUaCZbBVbBWbBXbBYbBZbCabCbbCcbCdbCebwvbCgbChbwwbCjbCjbCkbClbCmbCnbCobvJbvKbCpbvKbvJbCqaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjHbjHbjHbjHbjHbjHbjHbjHbjHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAxbAxbAxbAxbAxbAxbAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbsHbsHaaabCrbobbnobnobnobCsbCtbCuaaibXibCwbCxbYKbCzaoibCAbCBaSqaaqbCCbCDbCEbCFbCGbCHbCIbCJcuRbCKbCLbCHbCMbCNcsZbCObCPaaqbCQboRbAQbadbzmaaibCRbCSbCTbCUbCVabnbCWbCXbCYbgPacfbCZbDabgPbDbbDcbDdaaibDebDfbDgbDhbDibDibDjbDkbDlboRbDmaaiaaqbDnbjxbDobDpaaqbBnbDqaaqbDrbDsbBsbDtaaqbBnbDubDvaaqaaqaaqaouaaqaaqaaqbDwamwaaqaaiaaibDxaaqaaqaaiaaiaaqaaJaaqaaqaaqaaqaaqaaqaaqbDybDzaCnaCobDAbDBbDCbDDbDDbDEbDFbDGbDHbDIbDJbDKbDLbuLbDNbDNbDObBZbDPaaibDQbDRbDSbwgaaibDUaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjHbjHbjHbjHbjHbjHbjHbjHbjHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAxbAxbAxbAxbAxbAxbAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazMaaiaaiaaiaoJaoLazMaoJaoLaaiaoJaoLaaiaaibDVafjaaibxAaaqaaqaaqaaqazlbDWaoiaoibDXaoibDYbDZbEabEbbEcbEdbEebqbbEfbqbbEgbzfbEhbqbbyYbqbbEibjxbwdboRbEjbEkbElaaibEmbEnbEobEpbEqabnbErcACbEtbEubnFbEwbExbEybEzcBgbEBaaibECbEDbEEbEFbEGbEHbEIaaibEJbEKbybbELbEMbENbEObEPbEQbERbESbBobjxbETbEUbEVbEWbjxbBnbDubDvbEXbEYczMbFabFbbFcbFdbFebFfaaqbFgbFhbFibFjbFkbFlbFmbCebFobDDbDDbFnbFpbDDbFqbFrbFsbFtbFubDDbFvbFwbFxbFybFzbFAaaiabnaaiaaiaaibFBaaiaaibAtbAvaaibDMbFDbFEbFFbFGbFHbFIbFJaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjHbjHbjHbjHbjHbjHbjHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAxbAxbAxbAxbAxbAxbAxbAxbAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFKbFKbFKbFKbFKbFKbFKaaaaaabzlbFLbFMbFMbFMbFNbFObFPbFPbFPbPubFQbFPbFPbFRbFPbFPbFPbFPbFPbFSbFTbFUbFPamwbFVbqbbqbbqbbEgbFWbFXbFYbyYbFZbGabGbbwdboRbGcbCibzmaaibGebGfbGgbCSbGhabnbGibGjbGkaaibrRbGmczAacCbGobGpbGqaaibGrbGsbGtbGubEGbEHbEIaaibGvbGwbGxbGybGzbGAbGBbGCbGDbGEbGFbGGaaqaaqbGHbGIaaqaaqbBnbDubDvbjxbGJbGKbGKbGKbGLbGKbGMbGNbGObGPbGQbGRbGRbGSbGTbGUbGVbGWbBZbBZbGXbBZbGYbBZbGZbBZbHabHbbHbbHcbHdbHebHfbHgbHhbHibHjbHkbHlaaibHmbHnaaaaaaaaaaaibHobHpbHqbHrbHsbHtbCfaaiaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjHbjHbjHbjHbjHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAxbAxbAxbAxbAxbAxbAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazMaaiaaiaaiaoJaoLazMaoJaoLaaiaoJaoLaaiaaibDVafjaaibxAaaqaaqaaqaaqazlbDWaoiaoibDXaoibDYbDZbEabEbbEcbEdbEebqbbEfbqbbEgbzfbEhbqbbyYbqbbEibjxbwdboRbEjbEkbElaaibEmbEnbEobEpbEqabnbErcACbEtbEubnFbEwbExbEybEzcBgbEBaaibECbEDbEEbEFbEGbEHbEIaaibEJbEKbybbELbEMbENbEObEPbEQbERbESbBobjxbETbEUbEVbEWbjxbBnbDubDvbEXbEYczMbFabFbbFcbFdbFebFfaaqbFgccwbFibFjbFkbFlbFmbCebFobDDbDDbFnbFpbDDbFqbFrbFsbFtbFubDDbFvbFwbFxbFybFzbFAaaiabnaaiaaiaaibFBaaiaaibAtbAvaaibDMbFDbFEbFFbFGbFHbFIbFJaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjHbjHbjHbjHbjHbjHbjHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAxbAxbAxbAxbAxbAxbAxbAxbAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFKbFKbFKbFKbFKbFKbFKaaaaaabzlbFLbFMbFMbFMbFNbFObFPbFPbFPbPubFQbFPbFPbFRbFPbFPbFPbFPbFPbFSbFTbFUbFPamwbFVbqbbqbbqbbEgbFWbFXbFYbyYbFZbGabGbbwdboRbGcbCibzmaaibGebGfbGgbCSbGhabnbGibGjbGkaaibrRbGmczAacCbGobGpbGqaaibGrbGsbGtbGubEGbEHbEIaaibGvbGwbGxbGybGzbGAbGBbGCbGDbGEbGFbGGaaqaaqbGHbGIaaqaaqbBnbDubDvbjxbGJbGKbGKbGKbGLbGKbGMbGNbGObGPbGQbGRbGRbGSbGTbGUbGVbGWbBZbBZbGXbBZbGYbBZbGZbBZbHabHbbHbbHcbHdbHebHfbHgbHhccvbHjbHkbHlaaibHmbHnaaaaaaaaaaaibHobHpbHqbHrbHsbHtbCfaaiaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjHbjHbjHbjHbjHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAxbAxbAxbAxbAxbAxbAxbAxbAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFKbFKbFKbFKbFKbFKbFKaaaaaabadbHvbHwbHwbHwbHxbHybFPbFPbFPbFPbFPbFPbFPbFRbFPbFPbFPbFPbFPbFSbFTbFUbFPamwbHzbHAbHBbHCbHDbHEbHFbHGbHHbHIbHJbjxbwdboRbHKaaqaaqaaiaaiaaiaaiaaibHLabnaaibHMabnacCabnbHNaaiaaiaaiaaiaaiaaiabnaaiaaiaaiaaiaaiaaiaaibHOboRbHPbnSaaqbHQbHRaaqaaqbBnbHSbHTbEQbHUbHVbHWbHXbHYbESbHZbIabIbbIcbIdbIdbIdbIebIdbIfbIgbIhbIibIjbIkbFibIlaaiaaiaaiaaiaaiaaibImaaiaaiaaiaaJbInaaqaaqbIobIpbIqbIrbHfbIsbItbIubIvbIwbIxaaibHmbIyaaaaaaaaaaaibIzbIAaaibCnaaiaaibCnaaiaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAxbAxbAxbAxbAxbAxbAxbAxbAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFKbFKbFKbFKbFKbFKbFKbIBaoKaCobICbIDbIDbIDbIEbIFbIDbHwbHwbHwbHwbHwbIGbIHbHwbHwbIGbHwbHwbHybIIbIJbFPazlaoiaoiaoiaoiaoiaoibIKbEdaaqaaqaaqaaqbwdboRbILbIMbINbIObIPbIQbIRbISbITbIUbIVbIWbIXbIYbIZbJabJbbJcbJdbJebJfbJebJgbJhbJibnQbJjboRbJkbJlbJmboRbJnaaqbJobJpbJqbJrbJsbBnbJtbJubJvbJwbJxbJybJzbJAbJBbJCbJDaaqbJEbJFbJGbJHbJIbGKbJJbJKaaqbJLbFibFibFibJMaaibJNbJObJPbJQbJRbJSczzbJUaaicbObJWbJXaaqaaqbJYbIqbJZbKabKbbKcbKdbKebKfbKgaaibKhaaiaaaaaaaaaaaiaaiaaiaaiaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaOTaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAxbAxbAxbAxbAxbAxbAxbAxbAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFKbFKbFKbFKbFKbFKbFKbKibKjbKibKkbKkbKkbKkbKlbKmbKkbKkbKkbKkbKkbKkbKkbKnbKkbKkbKkbKkbKkbKmbKobKpbKkbKqbKrbKsbKtbKubwVbKwbKxbKybKzbKAbKAaaqbwdbKBbKCboRboRbybbKDbnQbJibJhbKEbKFbKEbKGbKHbKHbKIbKJbKKbKHbKHbKLbKHbKMbKHbJhbJibnQbKNbKObKPbKQbKRbKSboRaaqbKTbJpbKUbKVbKWbBnbKXbKYbKZbLabLbbLcbLdbLebBnbLfbLgaaqaaqbLhbLibLjbLkbLlbLmbLnaaqbLobLpbFibLqbLraaibJNbLsbLtbLubuKbLwbLxbLyaaibLzbLAbLBbLBaaqbLCbLDbLEbLFbLGbLHbVAbLJbLKbVHaaibHmaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAxbAxbAxbAxbAxbAxbAxbAxbAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFKbFKbFKbFKbFKbFKbFKbLMbLNbLMbFLbFMbLObLPbLQbLRbLPbLSbLSbLTbLSbLSbLPbLUbLSbLSbLPbLSbLSbLVbLWbLXbLYabIbLZbMabMbbMcbMbbMdbMebMfbMgbMhbMiaaqbwdbTQbMkbMlbMFbPfbPgbSsbMqbMrbMsbMtbMubMvbMwbMwbMxbMybMybMybMybMybMybMzbMAbMBbMCbMDbMEbMFbMGbMHbMIbMJbMKaaqbMLbJpbJqbMMbKWbBnbKXbKYbMNbMObMPbMQbMRbMSbBvbMTbMUaaqbMVbMWbMXaaqbMYaaqbMZaxeaaqbNabNbbNcbNdbNeaaibJNbNfbNgbJQbNhbNibNjbNkaaibNlbLAbLBbLBaaqbNmbNnbNoacCbNpbNqbNrbNsbxFbNuaaibHmaaiaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAxbAxbAxbAxbAxbAxbAxbAxbAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFKbFKbFKbFKbFKbFKbFKbIBaoKbckbNvbHwbHybHwbNwbNxbNybNybNybNzbNybNybUrbNAbNybNybNBbNybNybNCbNDbNEbNybNFbNGbNHbNIbNJbNIbNKbNLbNMbNNbNObNPaaqbNQaaqbNRaaqaaqbMnbNTbNSaaqaaqaaqbNUbXmbNWaaqaaqbNXbJhbJhbNYaaqaaqaaqaoubNZaaqaaqaaqbOaaaqaaqbObaaqbOcaouaaqbOdbOebOfaaqbOgbBnbKXbOhaaibOibOjbOkbOlaaibOmbLfbOnaaqbOobOpbOqbOrbOsbOtabIbOubOvbOwbOxbOybOzbOAaaiaaiaaiaaiaaiaaiaaiaaiaaiaaibOBbOCbODbODaaqbOEbOFbOGaaiaaiaaiaaiaaiaaiaaiaaibHmaaiaaabOHbOHbOHaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbOIbAubAubAvaaqaaqaaiaaiaaiaaibOJaabaabaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAxbAxbAxbAxbAxbAxbAxbAxbAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFKbFKbFKbFKbFKbFKbFKbLMbLNbLMbOKbIDbIFbIDbOLbOMbONbOObOObOPbOObOObOQbORbOObOObOSbOObOObOObOObOTbOUabXbOVbOWbOXbOYbOXbOZbPabPbbPcbPdbMiaaqaaqaaqbQUaaqbMobMpbPhbPibPjaaqbPkbPlbPmbPnbPoaaqbPpbPqbPraaqbPsbPtbsEbPvbPwbPxbPybPzbPAabXbPBbPCbPDbPEbPFabXbPGbPHbPIbPJbPKbPLbPMbKYbPNbPObPPbPQbPRbPSbBvbPTbPUbPVbPWbPXbPXbPYbPZbQaaaqbQbbQcbQdbQebQfbQgbQhaaibQibQjbQkaaibQlbQmbQnbQoaaibUXbQqbQrbQraaqbQsbQtbIraaibrhbQubQvbQwbQwbQvbQwbQxaaiaaabOHbQybOHaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabbQzbQAbQBbQAaaqaaiaaibQCbQDbQCbQEaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAxbAxbAxbAxbAxbAxbAxbAxbAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFKbFKbFKbFKbFKbFKbFKbQFbQGbQFbQHbQHbQIbQHbQHbQJbQHbQHbQHbQKbQHbQHbQHbQLbQHbQHbQMbQHbQHbQHbQHbQHbQHbQNbQObQPbNNbNNbNNbNNbNNbQQbQRbQSbQTbEdacEaaqbPeabXbVDbQWbQWbQWbQXaaqcmIbQZbQZbQZbRabRbbRcbRdbReabXbRfbRgbRhcjQbRibRjaaqaaqbRkaaqbRlbRmcqgbRobRpaaqbKTbJqbKUbKVbRqbRrbRsbRtacCcpBbRvbRwbRxaaibRybRzbRAbRBbRCbRDcmJbRFbRGbRHaaqaaqaaqaaqaaqaaJaCGaoraaibRIbRJbRJbRKbQobRLbQobRMaaibRNbLAbRObROaaqbIpbRPbIraaiaaibRQaaiaaiaaiaaiaaiaaiaaiaaiaaibRRaaiaaiaaiaaiaaiaaiaaiaaiaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacbRSbQAbQAbRTaaiaaibQCbQCbRUbQCbQCaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAxbAxbAxbAxbAxbAxbAxbAxbAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFKbFKbFKbFKbFKbFKbFKbIBaoKaEWbRVbFMbRWbFMbRXbRYbRZbHwbHwbSabHwbHwbFMbSbbHwbHwbScbHwbSdbHwbHwbSebFPaaqbSfbSgbShbSibSjbSkcrRbSmbSnbSobSpbSqbEdaaqbQUaaqbQXbQWbSrbQWbXhaaqbStbQZbSubQZbXqaaqbSvbSwbSxaaqbSybSzbSAbSBbSCbSDabIbSEbSFabIbSGbSHbSIbSJbSKaaqbSLbJqbJqbSMbRqbRrbSNbSObSPbPObSQbSRbSSbSTbSUbSVbSWaaqbSXbSYbREbSZbSZbTaaaqbTbbTcbTdbTebTfbTgbThaaibRJbRJbRJbTibQobTjbQobTkaaibTlbLAbTmbTmaaqbTnbTobIraaibTpbTqbTracCbTsbTtbTubTvbTwbTxbTybTzbTAbTBbTCbTDbTEbTFbTGaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaabTHaaibRSaaiaaibQCbQCbQCbQCbQCbQCbQCaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAxbAxbAxbAxbAxbAxbAxbAxbAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFKbFKbFKbFKbFKbFKbFKaaaaaiaaiaaqazSbTIazTaaqbTJaaqaaqazSaoKazTaaqaaqbTKaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqbTLaaqaaqaaqbTMbTNbTObTPaaqbQXbQWbQWbQWbTRaaqbStbQZbQZbTTbTUabIbTVbTWbTXaaqaaqaaqaaqaaqbTYaaqaaqbTZbUaaaqaaqaaJaaqaouaaqaaqbUbbUcbUcaaqaaqbUdbUebUfbUgbUhbUibUjbUkbUlaaqbUmbUnaaqbUobSYbREbSZbSZbSZaaqbUpbUqcfTbUsbUtbUubUvaaibRJbUwbRJbUxbQobRLbUybUzacCbUAbUBbUCbUCabXbUDbUEbNobUFbUGbUHbUIbUJbUKbULbULbUMbUNbULbUObULbUPbUQbURbUSbUTbUUbUVacfbUWbXIbUYbUZaabaabaabaabaabaabaabaabaabaabaabaabaabaaqaaibVabVbbVbbQCbQCbQCbQCbQCbQCbQCbQCaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAxbAxbAxbAxbAxbAxbAxbAxbAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFKbFKbFKbFKbFKbFKbFKaaaaaibVcbVdbVebVfbVgbVhbVibVjaaibVkbVlbVmbVnbVobVpbVqbVrbVsbVrbVrbVrbVrbVrbVrbVrbVrbVrbVrbVrbVrbVrbVrbVtbVrbVrbVrbVubVvbVwbVxaaqbVybVzbXobQWbQXaOqbVBbVEbVFbVGbVCaaqbVIbVJbVKbVLbVMbVMbVMbVMbVNbVObVPbVQbVQbVRbVRbVSbVTbVUaaqaaqbVVbVWbVXbVYbVZbRrbWabUfbWbbWcaHobWdbLdbWeaHobWfbWgaoibWhbWibWjbWkbWlbWmaaqbWnbWobWpbWqbWrbWsbWtaaibWubRJbRJaaibWveGWbWxaaiaaqbWybWzbJXaaqaaqbWAbRPbWBaaibWCbWDbWEaaibWFbWGbWGbWHbWIbWJbWKbWGbWLbWMbWGbWGbWNbWObWPbWQbWRbWSbWTbWUaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaiaaibWVbQCbQCbQCbQCbQCbQCbQCbQCbQCbQCbQCaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAxbAxbAxbAxbAxbAxbAxbAxbAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFKbFKbFKbFKbFKaaaaaaaaibWWbWXbWXbWYbWXbWXbWZbXaaaibXbbXcbXdbXcbXcbXeaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaqbXfaaqaaqbXgaaqbxtbADbXjbXkbxsaaJbvPbXnbTSbulbpPaOqbXrbXsbXtabIacfacfacfacfbXuauWbAXabXbXvabXabXbXwbXxbXybXzbXAbXBbXCbXDbXEbXFbXGbXHbQVbXJbXKbXLbXMbXNbXObXPbXQbXRaaqaaqaEqabXabXabXbXSaaqaaqbXTaaqamwbXUbXVbXWaaibXXbRJbRJbXYbXZbYabYbbYcaaqaaqbYdaaqaaqbuJbYfbRPbtZaaiaaibYgaaiaaibYhbYibYjbYkbYlbWGbYmbWPbYnbWPbWPbWPbYobTzbYpaaibYqbYrbYsbYtaabaabaabaabaabaabaabaabaabaabaabaabaabaaibQCbQCbQCbQCbQCbQCbYubQCbYvbQCbQCbQCbQCbQCaaiaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAxbAxbAxbAxbAxbAxbAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYwbYxbYybYxbYzaaaaaaaaaaaibYAbWXbWXbWYbWXbWXbWZbYBaaibXbbYCbYDbYEbojbXeaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibYFbYGbYHaaqbYIaaqbYJbMjbMmbQXbCyaOrbvObStbYPbvQbCvaOrbYSbYTbYUaaiaaibYVbYWbYXbYYbYZabnbZabBJbZbaaqbZcbBJbBJbZdabXbZebZfbQYbXEbZgbZhbZibZjbZkbZlbZmbZnbZobZlbZlbZpbZqbZqbZqbZrbZqbZqbZqbZsbaqbZubZvbZwbZxbZybZzbZAaaibZBbZCbZDbZEbZFbZGbZHbZIbZJbZKbZLbtZbZMbtZbYfbRPbtZaaibrhbZNbZOaaiaaiaaqaaqaaqbZPbWGbZQbRnbWGbZRbZSbZTbZUbZVbZWaaibZXbZYbZZaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaicaacaacaacaacaacaacabbQCcaccaabYvbQCbQCbQCbQCaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAxbAxbAxbAxbAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacadcaecafcagcadbfcaoKbckaaicahcaibWXbQpbWXbWXbWZcajaaibXbcakbYDbYDbYDbXeaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaicalcamcanaaqbYIaaiaaiaaiaaiaaiaaiaaqaaqaaqaaqaaqaaqaaqcaocapcaqcarcascatcaucaucavcawabnbBJbBJcaxaaqcaybBJbBJbBJcazcaAcaBbXCcaCaHocaDbZqcaEcaFcaGbKXcaFcaHcaIcaIcaIcaIcaIcaIcaFcaIcaIcaIbKXcaKcaLcaMcaNcaOcaPcaQcaRaaicaScaTcaTcaUbRJcaVcaWcaXcaYcaZcbacbbbtZcbcbYfbRPcbdaaibrhcbecbfcbgaaicbhcbicbjbWGbWGcbkbWGbWGcblcbmcbncbocbpcbqaaicbrcbscbtcbuaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbvbQAbQAbQAbQAbQAbQAbQAcbwbQDbQCbQCbQCbQCcbxbQDaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYycbycbzcbybYycbAcbBcbCaaicbDbWXbWXcbEbWXcbFcbGcbHaaicbIbXccbJbYDbYDcbKaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaibYIaaiaaaaaaaaaaaaaaicbLcbMcbNbJVcbPcbQaaqcbRcbScbTcbUcbVcbWcbXcbXcbYbpXabnaaiaaiaaiafbccaaaibBJbBJaaqccbcccccdcceccfccgcaOcchcciccjcckcclccmccncaIcaIcaIccoccpccqccpccoaaiauYacCacCccrccsccoaaqcctccuaaiccvccwccxccybjjccAccBaaiaaiaaiabnaaiaaiaaiccCccDccEaaibrhcbeccFcbgaaiccGbWGbWGbWGbZRccHccIccJaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaibVbbVbbVbbVbbVbbVbccKbQCbVabVbccLbQCbQCbQCbQCaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacadcbycbycbyccMccNccOccPccQccRbWXbWXbWXbWXbWXbWXccSaaiccTbXcccUbYDbYDccVaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccWaaaaabaabaaiaaiaaiaaiaaiaaiaaiaaiaaqbXgaCZaaaccXccYccZcdacdbcdccddcdecdfcdgabXcdhcdicdjcdkcdlcdmcdncdocdpcdqabncdrcdscdtcducdvaaibBJbBJaaqaaqaaqaaqaaJaaqcdwcdwcdxaaqaaqaouaaqaPPcdycdBcdAcdBacfcdCcdDcdEacfcdFcdFacfcdGcdHcdIaaicdJcdKbVUaaiaaiaaiabnbNVaaicdMbAZaaicdNcdOcdPbBJcdQaaiabncdRafjaaibrhcbecdScdTaaicdUcdVcdWbZRcdXcdYccIcdZaaiaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaibQCbQCbQCbQCbQCbQCbYubQCccLbQCbQCbQCbQCbQCaaiaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYycbzcbzcbzbYyceacebcecacfcedceecefcefcefcefcegcehaaibXbceicejbYDbYDccVaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacekcelcelcelcemcenceobqQceqcercesaaqcetbXgaATaaaceucevcewcexceycdccezceAceBceCaaqceDbYTbTWcbUceEcauceFcauceGceHceIceJceKceLceKceMaaibBJbBJaaqceNceOcePceQceRceSceSceTceUceVceWceXceYabXceZcfacfaacCcfbcfccfdaaiaaaaaaaaicfecffcfgacfcfhcficfjcfkcfkcfkcflcfmcfncfocfpcfncfncfncfqcfncfncfrcfscftcfucfvbQwcfwcfxbrhaaicfycfzcfAcfBcfycfCcfDcfEaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaiaaibWVbQCbQCbQCbQCbQCbQCbQCbQCbQCbQCbQCaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAxbAxbAxbAxbAxbAxbAxbAxbAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFKbFKbFKbFKbFKbFKbFKbLMbLNbLMbOKbIDbIFbIDbOLbOMbONbOObOObOPbOObOObOQbORbOObOObOSbOObOObOObOObOTbOUabXbOVbOWbOXbOYbOXbOZbPabPbbPcbPdbMiaaqaaqaaqbQUaaqbMobMpbPhbPibPjaaqbPkbPlbPmbPnbPoaaqbPpbPqbPraaqbPsbPtbsEbPvbPwbPxbPybPzbPAabXbPBbPCbPDbPEbPFabXbPGbPHbPIbPJbPKbPLbPMbKYbPNbPObPPbPQbPRbPSbBvbPTbPUbPVbPWbPXbPXbPYbPZbQaaaqbQbbQcbQdbWxbQfbQgbQhaaibWvbQlbQobXYbQobQobXZacCacCbXXbQqbQrbQraaqbQsbQtbIraaibrhbQubQvbQwbQwbQvbQwbQxaaiaaabOHbQybOHaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabbQzbQAbQBbQAaaqaaiaaibQCbQDbQCbQEaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAxbAxbAxbAxbAxbAxbAxbAxbAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFKbFKbFKbFKbFKbFKbFKbQFbQGbQFbQHbQHbQIbQHbQHbQJbQHbQHbQHbQKbQHbQHbQHbQLbQHbQHbQMbQHbQHbQHbQHbQHbQHbQNbQObQPbNNbNNbNNbNNbNNbQQbQRbQSbQTbEdacEaaqbPeabXbVDbQWbQWbQWbQXaaqcmIbQZbQZbQZbRabRbbRcbRdbReabXbRfbRgbRhcjQbRibRjaaqaaqbRkaaqbRlbRmcqgbRobRpaaqbKTbJqbKUbKVbRqbRrbRsbRtacCcpBbRvbRwbRxaaibRybRzbRAbRBbRCbRDcmJbRFbRGbRHaaqaaqaaqaaqaaqaaJaCGaoraaibRLbQobQocaVbQocaUbRMaaiaaicaWbLAbRObROaaqbIpbRPbIraaiaaibRQaaiaaiaaiaaiaaiaaiaaiaaiaaibRRaaiaaiaaiaaiaaiaaiaaiaaiaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacbRSbQAbQAbRTaaiaaibQCbQCbRUbQCbQCaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAxbAxbAxbAxbAxbAxbAxbAxbAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFKbFKbFKbFKbFKbFKbFKbIBaoKaEWbRVbFMbRWbFMbRXbRYbRZbHwbHwbSabHwbHwbFMbSbbHwbHwbScbHwbSdbHwbHwbSebFPaaqbSfbSgbShbSibSjbSkcrRbSmbSnbSobSpbSqbEdaaqbQUaaqbQXbQWbSrbQWbXhaaqbStbQZbSubQZbXqaaqbSvbSwbSxaaqbSybSzbSAbSBbSCbSDabIbSEbSFabIbSGbSHbSIbSJbSKaaqbSLbJqbJqbSMbRqbRrbSNbSObSPbPObSQbSRbSSbSTbSUbSVbSWaaqcbabSYbREbSZbSZbTaaaqbTbbTcbTdbTebTfbTgbThaaibRLcaZbQobQobQocaXbUyaaiaaicaYbLAbTmbTmaaqbTnbTobIraaibTpbTqbTracCbTsbTtbTubTvbTwbTxbTybTzbTAbTBbTCbTDbTEbTFbTGaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaabTHaaibRSaaiaaibQCbQCbQCbQCbQCbQCbQCaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAxbAxbAxbAxbAxbAxbAxbAxbAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFKbFKbFKbFKbFKbFKbFKaaaaaiaaiaaqazSbTIazTaaqbTJaaqaaqazSaoKazTaaqaaqbTKaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqbTLaaqaaqaaqbTMbTNbTObTPaaqbQXbQWbQWbQWbTRaaqbStbQZbQZbTTbTUabIbTVbTWbTXaaqaaqaaqaaqaaqbTYaaqaaqbTZbUaaaqaaqaaJaaqaouaaqaaqbUbbUcbUcaaqaaqbUdbUebUfbUgbUhbUibUjbUkbUlaaqbUmbUnaaqbSXbSYbREbSZbSZbSZaaqbUpbUqcfTbUsbUtbUubUvaaibZDaaibZCbZBbYcaaiafjaaiaaibYabUBbUCbUCabXbUDbUEbNobUFbUGbUHbUIbUJbUKbULbULbUMbUNbULbUObULbUPbUQbURbUSbUTbUUbUVacfbUWbXIbUYbUZaabaabaabaabaabaabaabaabaabaabaabaabaabaaqaaibVabVbbVbbQCbQCbQCbQCbQCbQCbQCbQCaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAxbAxbAxbAxbAxbAxbAxbAxbAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFKbFKbFKbFKbFKbFKbFKaaaaaibVcbVdbVebVfbVgbVhbVibVjaaibVkbVlbVmbVnbVobVpbVqbVrbVsbVrbVrbVrbVrbVrbVrbVrbVrbVrbVrbVrbVrbVrbVrbVtbVrbVrbVrbVubVvbVwbVxaaqbVybVzbXobQWbQXaOqbVBbVEbVFbVGbVCaaqbVIbVJbVKbVLbVMbVMbVMbVMbVNbVObVPbVQbVQbVRbVRbVSbVTbVUaaqaaqbVVbVWbVXbVYbVZbRrbWabUfbWbbWcaHobWdbLdbWeaHobWfbWgaoibZEbZFbWjbWkbWlbWmaaqbWnbWobWpbWqbWrbWsbWtaaicaSbZLbZKbZHbZGbZLbZIbUXaaqbWybWzbJXaaqaaqbWAbRPbWBaaibWCbWDbWEaaibWFbWGbWGbWHbWIbWJbWKbWGbWLbWMbWGbWGbWNbWObWPbWQbWRbWSbWTbWUaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaiaaibWVbQCbQCbQCbQCbQCbQCbQCbQCbQCbQCbQCaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAxbAxbAxbAxbAxbAxbAxbAxbAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFKbFKbFKbFKbFKaaaaaaaaibWWbWXbWXbWYbWXbWXbWZbXaaaibXbbXcbXdbXcbXcbXeaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaqbXfaaqaaqbXgaaqbxtbADbXjbXkbxsaaJbvPbXnbTSbulbpPaOqbXrbXsbXtabIacfacfacfacfbXuauWbAXabXbXvabXabXbXwbXxbXybXzbXAbXBbXCbXDbXEbXFbXGbXHbQVbXJbXKbXLbXMbXNbXObXPbXQbXRaaqaaqaEqabXabXabXbXSaaqaaqbXTaaqamwbXUbXVbXWaaicVCbRNbjjbTkbjjbTjbTibTlaaqaaqbYdaaqaaqbuJbYfbRPbtZaaiaaibYgaaiaaibYhbYibYjbYkbYlbWGbYmbWPbYnbWPbWPbWPbYobTzbYpaaibYqbYrbYsbYtaabaabaabaabaabaabaabaabaabaabaabaabaabaaibQCbQCbQCbQCbQCbQCbYubQCbYvbQCbQCbQCbQCbQCaaiaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAxbAxbAxbAxbAxbAxbAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYwbYxbYybYxbYzaaaaaaaaaaaibYAbWXbWXbWYbWXbWXbWZbYBaaibXbbYCbYDbYEbojbXeaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibYFbYGbYHaaqbYIaaqbYJbMjbMmbQXbCyaOrbvObStbYPbvQbCvaOrbYSbYTbYUaaiaaibYVbYWbYXbYYbYZabnbZabBJbZbaaqbZcbBJbBJbZdabXbZebZfbQYbXEbZgbZhbZibZjbZkbZlbZmbZnbZobZlbZlbZpbZqbZqbZqbZrbZqbZqbZqbZsbaqbZubZvbZwbZxbZybZzbZAaaibUobUxbUwbRKbUwbUzbUAbjjbWhbWubWibtZbZMbtZbYfbRPbtZaaibrhbZNbZOaaiaaiaaqaaqaaqbZPbWGbZQbRnbWGbZRbZSbZTbZUbZVbZWaaibZXbZYbZZaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaicaacaacaacaacaacaacabbQCcaccaabYvbQCbQCbQCbQCaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAxbAxbAxbAxbAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacadcaecafcagcadbfcaoKbckaaicahcaibWXbQpbWXbWXbWZcajaaibXbcakbYDbYDbYDbXeaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaicalcamcanaaqbYIaaiaaiaaiaaiaaiaaiaaqaaqaaqaaqaaqaaqaaqcaocapcaqcarcascatcaucaucavcawabnbBJbBJcaxaaqcaybBJbBJbBJcazcaAcaBbXCcaCaHocaDbZqcaEcaFcaGbKXcaFcaHcaIcaIcaIcaIcaIcaIcaFcaIcaIcaIbKXcaKcaLcaMcaNcaOcaPcaQcaRaaibvebpwbjjbQibjjbQebHibFhbZJbwNbvncbbbtZcbcbYfbRPcbdaaibrhcbecbfcbgaaicbhcbicbjbWGbWGcbkbWGbWGcblcbmcbncbocbpcbqaaicbrcbscbtcbuaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbvbQAbQAbQAbQAbQAbQAbQAcbwbQDbQCbQCbQCbQCcbxbQDaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYycbycbzcbybYycbAcbBcbCaaicbDbWXbWXcbEbWXcbFcbGcbHaaicbIbXccbJbYDbYDcbKaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaibYIaaiaaaaaaaaaaaaaaicbLcbMcbNbJVcbPcbQaaqcbRcbScbTcbUcbVcbWcbXcbXcbYbpXabnaaiaaiaaiafbccaaaibBJbBJaaqccbcccccdcceccfccgcaOcchcciccjcckcclccmccncaIcaIcaIccoccpccqccpccoaaiauYacCacCccrccsccoaaqcctccuaaibQjbQmbQkbQnbRJcaTbRIaaiaaiaaiabnaaiaaiaaiccCccDccEaaibrhcbeccFcbgaaiccGbWGbWGbWGbZRccHccIccJaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaibVbbVbbVbbVbbVbbVbccKbQCbVabVbccLbQCbQCbQCbQCaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacadcbycbycbyccMccNccOccPccQccRbWXbWXbWXbWXbWXbWXccSaaiccTbXcccUbYDbYDccVaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccWaaaaabaabaaiaaiaaiaaiaaiaaiaaiaaiaaqbXgaCZaaaccXccYccZcdacdbcdccddcdecdfcdgabXcdhcdicdjcdkcdlcdmcdncdocdpcdqabncdrcdscdtcducdvaaibBJbBJaaqaaqaaqaaqaaJaaqcdwcdwcdxaaqaaqaouaaqaPPcdycdBcdAcdBacfcdCcdDcdEacfcdFcdFacfcdGcdHcdIaaicdJcdKbVUaaiaaiabnaaibNVaaibzxbAZaaicdNcdOcdPbBJcdQaaiabncdRafjaaibrhcbecdScdTaaicdUcdVcdWbZRcdXcdYccIcdZaaiaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaibQCbQCbQCbQCbQCbQCbYubQCccLbQCbQCbQCbQCbQCaaiaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYycbzcbzcbzbYyceacebcecacfcedceecefcefcefcefcegcehaaibXbceicejbYDbYDccVaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacekcelcelcelcemcenceobqQceqcercesaaqcetbXgaATaaaceucevcewcexceycdccezceAceBceCaaqceDbYTbTWcbUceEcauceFcauceGceHceIceJceKceLceKceMaaibBJbBJaaqceNceOcePceQceRceSceSceTceUceVceWceXceYabXceZcfacfaacCcfbcfccfdaaiaaaaaaaaicfecffcfgacfcfhcficfjcfkcfkcflbAacfmcfncfocfpcfncfncfncfqcfncfncfrcfscftcfucfvbQwcfwcfxbrhaaicfycfzcfAcfBcfycfCcfDcfEaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaiaaibWVbQCbQCbQCbQCbQCbQCbQCbQCbQCbQCbQCaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacadcfFcfGcfHcadaINaoKbckaaiaaiaaiaoJaoKaoKaoLaaiaaiaaicfIcfJbYDbYDcfKcfLaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiawjcfMcfNcfOcfPcfPcfQaaqcfRbYIaATaaaceucfSbRubrScfVcfWcfXcfYcfVcfVbtrcgacgbcgcacCacCcgdcgecaucgfcggcghceLcgicgjcgkcglaaibBJbBJaaqcgmcgncgocgpcgqcgrcgrcgscgtcgucgvcgwcgxaaqcgycaIcgzaaicgAcfccgBaaiaaaaaaaaicgCcgDcgEaaibBKcgFcgGcgGcgGcgGcgGcgGcgHcgIcgJcgKacfacfcgLcgMacfacfcgNcgOcgPabIcgQcgRcgSbrhaaicgTbWGbZRcgUcgVcgUcgWcgXaaibOHbOHaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaqaaicaccaacaabQCbQCbQCbQCbQCbQCbQCbQCaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacgYbYxcgZbYxchachbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaichcaYEaSFazTaaiaaiaaiaaaaaaaaaaaaaaaaaaaagaaaaaaaaachdchechfchgchhchichjchkchlchlchmaaqbYHbXgaATaaaceuchnchoafbchpcdcchqchrchschtaaqceDbYTbYUchuaaichvaaqchwchxchychzchAceLceLchBchCaaibBJchDaaqchEchFchGchHchHchHchIchJchHchHchKchGchLaaichMcaIchNaaibSlcfccgBaaiaaaaaaaaichQchRchSaaichTbBJchDaaiaaiaaiaaiaaiaoJaoKaoLaaiaaiaabaaaaaaaaaaaichUchVamuaaiaaiaaichWaamaaibWJccIchXchYchZciacibcgVciccidbOHaaaaaaaaaaaaaaaaabaaaaaaaaaaaqaaqaaqaabaaaaaaaabaaaaaaaabaaaaaabTHaaibRSaaiaaibQCbQCbQCbQCbQCbQCbQCaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacieaERaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachdcifcigcihciicfOcijcfOcikcfOcilcimcincioaERaaacipccYciqcdacircdccdcciscitciuabIcivciwcixciyaaicizeFlciBciCciDabnciEciFciGciHciIaaibBJbBJaaqaaqaaJciJciKciLciMaaqciNciOciPciQbUfaaJaaicgycaIcgzaaiciRcfccgBaaiaaaaaaaaiciSciTciUaaibBJbBJbBJaaiaabaaaaaaaabaaaaabaaaaaaaaaaabaaaaaaaaaciVciWciXciYaaiaaiciZcjacjbaaibWJcjccjdcjecjfcjgcjhbWGaaibOHbOHaaacjicjjcjjcjjcjjcjjcjjcjjcjjcjjcjjcjjcjjcjjcjjcjjcjjcjjcjjcjkcjlcjmcjmcjnaaiaaibQCbQCcjobQCbQCaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -13755,7 +13753,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadM
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMndMneaueaueaueaueaueaudMndMndMndMndMndMndMneaueaueaueaueaudMndMndTOdUBdUBdUBeexeeNeeOebneeQeeReeSeeTeeUeeVeeWeboeeYeeZeaidUBdUBdTOdTOdTOdTOdJadJadJadJadJadJadKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdJadJadJadTOdTOdUBdUBdUBdUBdUBdUBdUBdUBdUBdUBdTOdTOdTOdTOdTOdJadJadJadJadKkdKkdKkedOefaefeefcefdefeefeedOedWedXeffedUedOefgebxefiefiefieefdUBdUBdUBdUBdUBdUBdUBaaaaaaaaaaaaaaaaaaaaaaaaaaadTOdTOdTOdUBdUBdUBdUBdUBdUBdUBdUBefjefkeflefmefkefkdUBdUBdUBdUBdUBdUBdTOdJadJadJadKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdJadKkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMndMndMneaueaueaudMndMndMndMndMndMndMndMneaueaueaudMndMndJadTOdUBdUBdUBeexefnefoefpefqefoefrefoefoefseftefueeYefvefwdUBdUBdUBdUBdUBdTOdTOdTOdJadJadJadJadJadJadJadKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdJadJadTOdTOdWTdUBdUBdUBdUBdUBdUBdUBdUBdUBdUBdUBdUBdUBdUBdUBdTOdTOdJadJadJadJadJadJaedOefxefeefyefzefAefBedOedOedOedOedUedOefgefCefCefCefDeejdUBdUBdUBdUBdUBdUBdUBaaaaaaaaaaaaaaaaaaaaaaaaaaadUBdUBdUBdUBdUBdUBdUBdUBdUBdUBdUBefjebyefFefFefGefkdUBefHdUBdUBdUBdXGdWTdTOdJadJadKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdJadJadKkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMndMneaueaueaudMndMndMndMndMndMndMndMndMndMndMndMndMndJadTOdUBdUBdUBeexefIefoefoefJefoefreGKefoefoefKefLefMeeZeafdUBdUBdUBdUBdUBdUBdUBdTOdTOdTOdTOdJadJadJadJadJadJadKkdKkdKkdKkdKkdKkdKkdKkdKkdJadJadTOdTOdUBeegdUBdUBdUBdUBdUBdUBdUBdUBdUBdUBdUBdUBdUBdUBdUBdUBdTOdTOdTOdTOdJadJadJaedOefNeGLefOefeefPebSefQefDefRefSefTedOecdefCefVecqefXeesdUBdUBdUBdUBdUBdUBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadUBdUBdUBdUBdUBefYefYefZegaefjeGMegcegdedyefkefkefkefkdUBdUBdUBdUBdTOdTOdJadJadKkdKkdKkdKkdKkdKkdKkdKkdKkdJadKkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMndMndMndMndMndMndMndMndMndMndMndMndMndMndMndKkdKkdTOdTOdUBdUBeexegfefoeggeghegiegjegkefoeexeexeexeexeexeexebbeaidUBdUBdUBdUBdUBdUBdUBdUBdTOdTOdTOdJadJadJadJadJadKkdKkdKkdKkdKkdKkdKkdJadJadJadTOdUBdUBdUBdUBdUBdUBdUBdUBdUBdUBdUBebbeaidUBdUBdUBdUBdUBdUBdUBdUBdUBdTOdTOdJadJaedOedOedOedOedOedOedOeglegmegneglegmedOedOedOedOedOegoedOedOegpegqdUBdUBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadUBdUBegregaegsegteguegvegwegxegxegyegzedSegBegCeaidUBdUBdUBdWUdTOdJadJadKkdKkdKkdKkdKkdKkdKkdJadJadJadKkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMndMndMndMndMndMndMndMndMndMndMndMndMndMndMndKkdKkdTOdTOdUBdUBeexegfefoeggeghegiegjegkefoeexeexeexeexeexeexebbeaidUBdUBdUBdUBdUBdUBdUBdUBdTOdTOdTOdJadJadJadJadJadKkdKkdKkdKkdKkdKkdKkdJadJadJadTOdUBdUBdUBdUBdUBdUBdUBdUBdUBdUBdUBebbeaidUBdUBdUBdUBdUBdUBdUBdUBdUBdTOdTOdJadJaedOedOedOedOedOedOedOeglegmegneglegmedOedOedOedOedOegoedOedOegpegqdUBdUBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadUBdUBegregaegsegteguegvccBegxegxegyegzedSegBegCeaidUBdUBdUBdWUdTOdJadJadKkdKkdKkdKkdKkdKkdKkdJadJadJadKkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMndMndMndMndMndMndMndMndMndMndMndKkdKkdJadTOdUBdUBeexegDeePegFefqegGegHegIegJegKegLegMegNegOegPecgecheaGeaGeaGeaGeaGeaBdUBdUBdUBdUBdTOdTOdTOdJadJadJadJadJadKkdKkdKkdJadJadJadJadTOdTOdUBdUBeceeaGeaGeaGeaGeaGeaGeaGeaGecgecheaGeaGeaGeaGeaBdUBdUBdUBdUBdUBdTOdJadJadJadJadJaedOeeXegRegSefCefXegTefDefXefQegUegVegWefDefXefCegYegZehaeeHeeIehbehbehbehbehbehbehbehbehcehcehcehcehcehcehcefZehdeheehfegtehgehhehiehjegxegxehkehlehmehnehoehpdUBdUBdUBdWUdTOdJadJadKkdKkdKkdKkdKkdKkdJadJadJadKkdKkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMndMndMndMndKkdKkdJadTOdUBdUBeexeexeexeexeexehqehrehseexeexehteexeexeexeexeadeafdUBdUBdUBdUBdUBeardUBdUBdUBdUBdTOdUBdTOdTOdJadJadJadJadJadJadJadJadJadJadTOdTOdUBdUBdUBeardUBdUBdUBdUBdUBdUBdUBdUBeadeafdUBdUBdUBdUBeardUBdUBdUBdUBdUBdTOdTOdWTdTOdTOdJaedOedOedOedOefCefXehuehvehwefSeGNehyehyehzehzehAehyehBehCehyehCehDehDehDehDehDehDehDehDehEehEehEehEehEehEehEehFehGehFehHehGehIehJehKehLehMefbehOefkefkefkegCeafdUBdUBdUBdUBdTOdTOdJadJadKkdKkdKkdKkdKkdJadJadJadKkdKkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMndMndKkdKkdJadTOdTOdUBdUBdUBdUBdUBeexehPehQehRefheexehTehUdXPdUBdUBdUBdUBdUBeatdUBdUBdUBeaAeaGeaGeaBdUBdUBdUBdUBdTOdJadJadJadJadJadJadJadJadJadJadTOdUBdUBeceeaGecfdUBdUBdUBdUBdTOdUBdUBeatdUBdUBdUBdUBdUBdUBeardUBdUBdUBdUBdUBdUBdUBeegdUBdTOdTOdTOdTOdTOedOefCehVehWehXehXehWehYehZeiaehXehXeibehWefEeideieeifeigeigeigeigeigeigeigeigeiheiheiheiheiheiheiieijeikeileimeineioeipeiqefYefYefYefYefYefYefYefYeireiseiteisdXPdWUdTOdJadJadKkdKkdKkdKkdJadJadJadJadKkdKkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+1 -1
View File
@@ -28,7 +28,7 @@ Used In File(s): \code\game\machinery\teleporter.dm
</div>
<div style="margin-top:10px;" class="item">
<div class="item">{{:helper.link('Get target from memory', 'arrowthickstop-1-s', {'locked': 1}, data.locked ? '' : 'disabled')}}</div>
<div class="item">{{:helper.link('Eject SPS device', 'eject', {'eject': 1}, data.locked ? '' : 'disabled')}}</div>
<div class="item">{{:helper.link('Eject GPS device', 'eject', {'eject': 1}, data.locked ? '' : 'disabled')}}</div>
</div>
<div style="margin-top:10px;" class="item">
<div class="item">{{:helper.link('Calibrate hub', 'arrow-4-diag', {'calibrate': 1}, data.target == 'None' ? 'disabled' : '')}}</div>
-31
View File
@@ -1,31 +0,0 @@
<!--
Title: Telescience Control UI
Used In File(s): \code\game\machinery\computer\telescience.dm
-->
<h1>Telescience Console</h1>
<div class="item">
<div class="itemLabel">Coordinates:</div>
<div class="itemContent">
{{:helper.link('X: ' + data.coordx, 'gear', {'setx': 1})}}
{{:helper.link('Y: ' + data.coordy, 'gear', {'sety': 1})}}
{{:helper.link('Z: ' + data.coordz, 'gear', {'setz': 1})}}
</div>
</div>
<div class="item">
<div class="itemLabel">Controls:</div>
<div class="itemContent">
{{:helper.link('Send', 'gear', {'send': 1}, null, (data.coordx != 'Unset' && data.coordy != 'Unset' && data.coordz != 'Unset') ? '' : 'disabled')}}
{{:helper.link('Receive', 'gear', {'receive': 1}, null, (data.coordx != 'Unset' && data.coordy != 'Unset' && data.coordz != 'Unset') ? '' : 'disabled')}}
{{:helper.link('Recalibrate', 'gear', {'recal': 1})}}
</div>
</div>
{{if data.sps}}
<h2>Space Positioning System</h2>
<div class="item">
<div class="itemLabel">Options:</div>
<div class="itemContent">
{{:helper.link('Eject SPS', 'eject', {'ejectSPS': 1})}}
{{:helper.link('Set SPS Memory', 'arrowstop-1-n', {'setMemory': 1})}}
</div>
</div>
{{/if}}
+4 -5
View File
@@ -427,7 +427,6 @@
#include "code\game\machinery\supply_display.dm"
#include "code\game\machinery\syndicatebeacon.dm"
#include "code\game\machinery\syndicatebomb.dm"
#include "code\game\machinery\telepad.dm"
#include "code\game\machinery\teleporter.dm"
#include "code\game\machinery\transformer.dm"
#include "code\game\machinery\turrets.dm"
@@ -485,7 +484,6 @@
#include "code\game\machinery\computer\store.dm"
#include "code\game\machinery\computer\syndicate_specops_shuttle.dm"
#include "code\game\machinery\computer\telecrystalconsoles.dm"
#include "code\game\machinery\computer\telescience.dm"
#include "code\game\machinery\computer\xenos_shuttle.dm"
#include "code\game\machinery\doors\airlock.dm"
#include "code\game\machinery\doors\airlock_control.dm"
@@ -589,7 +587,6 @@
#include "code\game\objects\effects\spawners\vaultspawner.dm"
#include "code\game\objects\items\apc_frame.dm"
#include "code\game\objects\items\blueprints.dm"
#include "code\game\objects\items\bluespace_crystal.dm"
#include "code\game\objects\items\bodybag.dm"
#include "code\game\objects\items\candle.dm"
#include "code\game\objects\items\contraband.dm"
@@ -604,7 +601,6 @@
#include "code\game\objects\items\devices\debugger.dm"
#include "code\game\objects\items\devices\flash.dm"
#include "code\game\objects\items\devices\flashlight.dm"
#include "code\game\objects\items\devices\gps.dm"
#include "code\game\objects\items\devices\handtv.dm"
#include "code\game\objects\items\devices\laserpointer.dm"
#include "code\game\objects\items\devices\lightreplacer.dm"
@@ -673,7 +669,6 @@
#include "code\game\objects\items\weapons\paiwire.dm"
#include "code\game\objects\items\weapons\power_cells.dm"
#include "code\game\objects\items\weapons\RCD.dm"
#include "code\game\objects\items\weapons\RCS.dm"
#include "code\game\objects\items\weapons\RSF.dm"
#include "code\game\objects\items\weapons\scrolls.dm"
#include "code\game\objects\items\weapons\shards.dm"
@@ -1534,6 +1529,10 @@
#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\vehicles\ambulance.dm"
#include "code\modules\vehicles\cargo_train.dm"
#include "code\modules\vehicles\janicart.dm"