Non-headset/borg radios now all allow access to department channels. Headset and borg radios still rely on their encryption keys.

This commit is contained in:
PsiOmega
2015-09-03 09:01:36 +02:00
parent 52eae80d74
commit e5aa095f09
7 changed files with 104 additions and 85 deletions

View File

@@ -135,8 +135,8 @@ var/list/radiochannels = list(
"Supply" = SUP_FREQ,
"Service" = SRV_FREQ,
"AI Private" = AI_FREQ,
"Medical (I)" = MED_I_FREQ,
"Security (I)" = SEC_I_FREQ
"Medical(I)" = MED_I_FREQ,
"Security(I)" = SEC_I_FREQ
)
// central command channels, i.e deathsquid & response teams
@@ -146,7 +146,7 @@ var/list/CENT_FREQS = list(ERT_FREQ, DTH_FREQ)
var/list/ANTAG_FREQS = list(SYND_FREQ)
//Department channels, arranged lexically
var/list/DEPT_FREQS = list(AI_FREQ, ENG_FREQ, MED_FREQ, SEC_FREQ, SCI_FREQ, SRV_FREQ, SUP_FREQ)
var/list/DEPT_FREQS = list(AI_FREQ, COMM_FREQ, ENG_FREQ, MED_FREQ, SEC_FREQ, SCI_FREQ, SRV_FREQ, SUP_FREQ)
#define TRANSMISSION_WIRE 0
#define TRANSMISSION_RADIO 1

View File

@@ -19,6 +19,7 @@
/obj/item/device/radio/headset/New()
..()
internal_channels.Cut()
if(ks1type)
keyslot1 = new ks1type(src)
if(ks2type)
@@ -32,11 +33,14 @@
keyslot2 = null
..()
/obj/item/device/radio/headset/list_channels(var/mob/user)
return list_secure_channels()
/obj/item/device/radio/headset/examine(mob/user)
if(!(..(user, 1) && radio_desc))
return
user << "The following channels are built-in:"
user << "The following channels are available:"
user << radio_desc
/obj/item/device/radio/headset/handle_message_mode(mob/living/M as mob, message, channel)

View File

@@ -1,17 +1,3 @@
// Access check is of the type requires one. These have been carefully selected to avoid allowing the janitor to see channels he shouldn't
var/global/list/default_intercom_channels = list(
num2text(PUB_FREQ) = list(),
num2text(AI_FREQ) = list(access_synth),
num2text(ERT_FREQ) = list(access_cent_specops),
num2text(COMM_FREQ)= list(access_heads),
num2text(ENG_FREQ) = list(access_engine_equip, access_atmospherics),
num2text(MED_FREQ) = list(access_medical_equip),
num2text(SEC_FREQ) = list(access_security),
num2text(SCI_FREQ) = list(access_tox,access_robotics,access_xenobiology),
num2text(SUP_FREQ) = list(access_cargo),
num2text(SRV_FREQ) = list(access_janitor, access_hydroponics)
)
/obj/item/device/radio/intercom
name = "station intercom (General)"
desc = "Talk through this."
@@ -23,8 +9,6 @@ var/global/list/default_intercom_channels = list(
var/number = 0
var/last_tick //used to delay the powercheck
var/list/intercom_channels
/obj/item/device/radio/intercom/custom
name = "station intercom (Custom)"
broadcasting = 0
@@ -58,18 +42,14 @@ var/global/list/default_intercom_channels = list(
/obj/item/device/radio/intercom/New()
..()
processing_objects += src
intercom_channels = default_intercom_channels.Copy()
/obj/item/device/radio/intercom/department/medbay/New()
..()
intercom_channels = list(
num2text(PUB_FREQ) = list(),
num2text(MED_I_FREQ) = list(access_medical_equip)
)
internal_channels = default_medbay_channels.Copy()
/obj/item/device/radio/intercom/department/security/New()
..()
intercom_channels = list(
internal_channels = list(
num2text(PUB_FREQ) = list(),
num2text(SEC_I_FREQ) = list(access_security)
)
@@ -83,17 +63,7 @@ var/global/list/default_intercom_channels = list(
/obj/item/device/radio/intercom/syndicate/New()
..()
intercom_channels[num2text(SYND_FREQ)] = list(access_syndicate)
/obj/item/device/radio/intercom/proc/has_channel_access(var/mob/user, var/freq)
if(!user)
return 0
if(!(freq in intercom_channels))
return 0
var/obj/item/weapon/card/id/I = user.GetIdCard()
return has_access(list(), intercom_channels[freq], I ? I.GetAccess() : list())
internal_channels[num2text(SYND_FREQ)] = list(access_syndicate)
/obj/item/device/radio/intercom/Destroy()
processing_objects -= src
@@ -109,16 +79,6 @@ var/global/list/default_intercom_channels = list(
spawn (0)
attack_self(user)
/obj/item/device/radio/intercom/list_channels(var/mob/user)
var/dat = ""
for (var/priv_chan in intercom_channels)
if(has_channel_access(user, priv_chan))
dat+="<A href='byond://?src=\ref[src];spec_freq=[priv_chan]'>[get_frequency_name(text2num(priv_chan))]</A><br>"
if(dat)
dat = "<br><b>Available Channels</b><br>" + dat
return dat
/obj/item/device/radio/intercom/receive_range(freq, level)
if (!on)
return -1
@@ -152,19 +112,6 @@ var/global/list/default_intercom_channels = list(
else
icon_state = "intercom"
/obj/item/device/radio/intercom/Topic(href, href_list)
if(..())
return 1
if(href_list["spec_freq"])
var freq = href_list["spec_freq"]
if(has_channel_access(usr, freq))
set_frequency(text2num(freq))
. = 1
if(.)
interact(usr)
/obj/item/device/radio/intercom/locked
var/locked_frequency

View File

@@ -1,3 +1,25 @@
// Access check is of the type requires one. These have been carefully selected to avoid allowing the janitor to see channels he shouldn't
var/global/list/default_internal_channels = list(
num2text(PUB_FREQ) = list(),
num2text(AI_FREQ) = list(access_synth),
num2text(ERT_FREQ) = list(access_cent_specops),
num2text(COMM_FREQ)= list(access_heads),
num2text(ENG_FREQ) = list(access_engine_equip, access_atmospherics),
num2text(MED_FREQ) = list(access_medical_equip),
num2text(MED_I_FREQ)=list(access_medical_equip),
num2text(SEC_FREQ) = list(access_security),
num2text(SEC_I_FREQ)=list(access_security),
num2text(SCI_FREQ) = list(access_tox,access_robotics,access_xenobiology),
num2text(SUP_FREQ) = list(access_cargo),
num2text(SRV_FREQ) = list(access_janitor, access_hydroponics)
)
var/global/list/default_medbay_channels = list(
num2text(PUB_FREQ) = list(),
num2text(MED_FREQ) = list(access_medical_equip),
num2text(MED_I_FREQ) = list(access_medical_equip)
)
/obj/item/device/radio
icon = 'icons/obj/radio.dmi'
name = "station bounced radio"
@@ -15,10 +37,9 @@
var/b_stat = 0
var/broadcasting = 0
var/listening = 1
var/list/channels = list() //see communications.dm for full list. First channes is a "default" for :h
var/list/channels = list() //see communications.dm for full list. First channel is a "default" for :h
var/subspace_transmission = 0
var/syndie = 0//Holder to see if it's a syndicate encrypted radio
// "Example" = FREQ_LISTENING|FREQ_BROADCASTING
flags = CONDUCT
slot_flags = SLOT_BELT
throw_speed = 2
@@ -27,7 +48,7 @@
matter = list("glass" = 25,DEFAULT_WALL_MATERIAL = 75)
var/const/FREQ_LISTENING = 1
var/list/internal_channels
/obj/item/device/radio
var/datum/radio_frequency/radio_connection
@@ -41,6 +62,7 @@
/obj/item/device/radio/New()
..()
wires = new(src)
internal_channels = default_internal_channels.Copy()
/obj/item/device/radio/Destroy()
qdel(wires)
@@ -96,11 +118,34 @@
return
/obj/item/device/radio/proc/list_channels(var/mob/user)
return list_internal_channels(user)
/obj/item/device/radio/proc/list_secure_channels(var/mob/user)
var/dat = ""
for (var/ch_name in channels)
dat+=text_sec_channel(ch_name, channels[ch_name])
return dat
/obj/item/device/radio/proc/list_internal_channels(var/mob/user)
var/dat = ""
for (var/internal_chan in internal_channels)
if(has_channel_access(user, internal_chan))
dat+="<A href='byond://?src=\ref[src];spec_freq=[internal_chan]'>[get_frequency_name(text2num(internal_chan))]</A><br>"
if(dat)
dat = "<br><b>Internal Channels</b><br>" + dat
return dat
/obj/item/device/radio/proc/has_channel_access(var/mob/user, var/freq)
if(!user)
return 0
if(!(freq in internal_channels))
return 0
var/obj/item/weapon/card/id/I = user.GetIdCard()
return has_access(list(), internal_channels[freq], I ? I.GetAccess() : list())
/obj/item/device/radio/proc/text_wires()
if (b_stat)
return wires.GetInteractWindow()
@@ -155,6 +200,11 @@
else
channels[chan_name] |= FREQ_LISTENING
. = 1
else if(href_list["spec_freq"])
var freq = href_list["spec_freq"]
if(has_channel_access(usr, freq))
set_frequency(text2num(freq))
. = 1
if(href_list["nowindow"]) // here for pAIs, maybe others will want it, idk
return 1
@@ -513,6 +563,9 @@
myborg = null
return ..()
/obj/item/device/radio/borg/list_channels(var/mob/user)
return list_secure_channels(user)
/obj/item/device/radio/borg/talk_into()
. = ..()
if (isrobot(src.loc))
@@ -662,3 +715,17 @@
/obj/item/device/radio/off
listening = 0
/obj/item/device/radio/phone
broadcasting = 0
icon = 'icons/obj/items.dmi'
icon_state = "red_phone"
listening = 1
name = "phone"
/obj/item/device/radio/phone/medbay
frequency = MED_I_FREQ
/obj/item/device/radio/phone/medbay/New()
..()
internal_channels = default_medbay_channels.Copy()

View File

@@ -3,8 +3,8 @@
desc = "Used to remotely activate devices."
icon_state = "signaller"
item_state = "signaler"
origin_tech = list(TECH_MAGNET = 1)
matter = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 200, "waste" = 100)
origin_tech = list(TECH_MAGNET = 1)
matter = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 200, "waste" = 100)
wires = WIRE_RECEIVE | WIRE_PULSE | WIRE_RADIO_PULSE | WIRE_RADIO_RECEIVE
secured = 1
@@ -79,8 +79,8 @@
if (href_list["freq"])
var/new_frequency = (frequency + text2num(href_list["freq"]))
if(new_frequency < PUBLIC_LOW_FREQ || new_frequency > PUBLIC_HIGH_FREQ)
new_frequency = sanitize_frequency(new_frequency)
if(new_frequency < RADIO_LOW_FREQ || new_frequency > RADIO_HIGH_FREQ)
new_frequency = sanitize_frequency(new_frequency, RADIO_LOW_FREQ, RADIO_HIGH_FREQ)
set_frequency(new_frequency)
if(href_list["code"])

View File

@@ -2,4 +2,4 @@ author: PsiOmegaDelta
delete-after: True
changes:
- rscdel: "Manual radio frequency changes can no longer go outside the standard frequency span."
- rscadd: "Users with sufficient access can instead select pre-defined channels outside this span, such as department channels."
- rscadd: "Users with sufficient access can instead select pre-defined channels outside this span, such as department channels, when using intercoms."

View File

@@ -3709,8 +3709,8 @@
"btq" = (/obj/structure/sign/redcross{desc = "The Star of Life, a symbol of Medical Aid."; icon_state = "lifestar"; name = "Medbay"; pixel_x = -32},/obj/effect/floor_decal/corner/paleblue/full,/turf/simulated/floor/tiled/white,/area/medical/reception)
"btr" = (/obj/machinery/button/remote/airlock{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyerPort"; name = "Medbay Doors Control"; pixel_x = -16; pixel_y = 28},/obj/structure/bed/chair/office/dark{dir = 1},/obj/effect/landmark/start{name = "Medical Doctor"},/turf/simulated/floor/tiled,/area/medical/reception)
"bts" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/computer/crew,/obj/effect/floor_decal/corner/paleblue{dir = 9},/turf/simulated/floor/tiled,/area/medical/reception)
"btt" = (/obj/machinery/button/remote/blast_door{id = "medbayrecquar"; name = "Medbay Entrance Lockdown Shutters Control"; pixel_x = 6; pixel_y = 8; req_access = list(5)},/obj/item/device/radio{anchored = 1; broadcasting = 0; canhear_range = 1; frequency = 1487; icon = 'icons/obj/items.dmi'; icon_state = "red_phone"; listening = 1; name = "Reception Emergency Phone"; pixel_x = -5},/obj/structure/table/standard{name = "plastic table frame"},/turf/simulated/floor/tiled,/area/medical/reception)
"btu" = (/obj/item/device/radio{anchored = 1; broadcasting = 0; canhear_range = 1; frequency = 1487; icon = 'icons/obj/items.dmi'; icon_state = "red_phone"; listening = 1; name = "Reception Emergency Phone"},/obj/structure/table/standard{name = "plastic table frame"},/turf/simulated/floor/tiled,/area/medical/reception)
"btt" = (/obj/machinery/button/remote/blast_door{id = "medbayrecquar"; name = "Medbay Entrance Lockdown Shutters Control"; pixel_x = 6; pixel_y = 8; req_access = list(5)},/obj/structure/table/standard{name = "plastic table frame"},/obj/item/device/radio/phone/medbay{name = "reception emergency phone"; pixel_x = -5},/turf/simulated/floor/tiled,/area/medical/reception)
"btu" = (/obj/structure/table/standard{name = "plastic table frame"},/obj/item/device/radio/phone/medbay{name = "reception emergency phone"},/turf/simulated/floor/tiled,/area/medical/reception)
"btv" = (/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/corner/paleblue{dir = 6},/obj/machinery/papershredder,/turf/simulated/floor/tiled,/area/medical/reception)
"btw" = (/obj/machinery/button/remote/airlock{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyerStar"; name = "Medbay Doors Control"; pixel_x = 6; pixel_y = 28},/obj/structure/bed/chair/office/dark{dir = 1},/obj/effect/landmark/start{name = "Medical Doctor"},/turf/simulated/floor/tiled,/area/medical/reception)
"btx" = (/obj/structure/sign/redcross{desc = "The Star of Life, a symbol of Medical Aid."; icon_state = "lifestar"; name = "Medbay"; pixel_x = 32},/obj/effect/floor_decal/corner/paleblue/full{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/reception)
@@ -4217,7 +4217,7 @@
"bDe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_two)
"bDf" = (/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 9},/turf/simulated/floor/tiled,/area/hallway/primary/central_two)
"bDg" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/sign/redcross{desc = "The Star of Life, a symbol of Medical Aid."; icon_state = "lifestar"; name = "Medbay"; pixel_x = 32},/turf/simulated/floor/tiled,/area/hallway/primary/central_two)
"bDh" = (/obj/machinery/door/window/eastright{dir = 1; name = "Emergency Kit"; req_access = list(5)},/obj/machinery/door/firedoor,/obj/item/weapon/storage/toolbox/emergency,/obj/item/bodybag/cryobag{pixel_x = 6},/obj/item/bodybag/cryobag{pixel_x = 6},/obj/item/bodybag/cryobag,/obj/item/device/radio{frequency = 1487; name = "Medbay Emergency Radio Link"},/obj/structure/table/standard{name = "plastic table frame"},/turf/simulated/floor/tiled/white,/area/medical/sleeper)
"bDh" = (/obj/machinery/door/window/eastright{dir = 1; name = "Emergency Kit"; req_access = list(5)},/obj/machinery/door/firedoor,/obj/item/weapon/storage/toolbox/emergency,/obj/item/bodybag/cryobag{pixel_x = 6},/obj/item/bodybag/cryobag{pixel_x = 6},/obj/item/bodybag/cryobag,/obj/item/device/radio{frequency = 1487; name = "medbay emergency radio link"},/obj/structure/table/standard{name = "plastic table frame"},/turf/simulated/floor/tiled/white,/area/medical/sleeper)
"bDi" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/maintenance{req_one_access = list(5,12,47)},/turf/simulated/floor/plating,/area/maintenance/research_port)
"bDj" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/storage)
"bDk" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{name = "Medicine Storage"; req_access = newlist(); req_one_access = list(33,66)},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/medical/sleeper)
@@ -4709,7 +4709,7 @@
"bMC" = (/obj/structure/reagent_dispensers/water_cooler,/obj/effect/floor_decal/corner/grey/diagonal,/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak)
"bMD" = (/obj/machinery/light{dir = 1},/obj/structure/bookcase/manuals/medical,/obj/item/weapon/book/manual/stasis,/obj/effect/floor_decal/corner/grey/diagonal,/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak)
"bME" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/medical/medbay2)
"bMF" = (/obj/structure/noticeboard{pixel_y = 28},/obj/item/weapon/book/manual/medical_diagnostics_manual{pixel_y = 7},/obj/item/device/radio{anchored = 1; broadcasting = 0; canhear_range = 4; frequency = 1487; icon = 'icons/obj/items.dmi'; icon_state = "red_phone"; listening = 1; name = "Break Room Emergency Phone"},/obj/structure/table/standard{name = "plastic table frame"},/obj/effect/floor_decal/corner/grey/diagonal,/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak)
"bMF" = (/obj/structure/noticeboard{pixel_y = 28},/obj/item/weapon/book/manual/medical_diagnostics_manual{pixel_y = 7},/obj/structure/table/standard{name = "plastic table frame"},/obj/effect/floor_decal/corner/grey/diagonal,/obj/item/device/radio/phone/medbay{name = "break room emergency phone"},/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak)
"bMG" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/plating,/area/medical/genetics)
"bMH" = (/obj/item/weapon/material/shard{icon_state = "medium"},/turf/simulated/floor/plating,/area/medical/genetics)
"bMI" = (/obj/structure/table/rack,/obj/item/weapon/extinguisher,/obj/item/weapon/storage/belt/utility,/obj/item/clothing/mask/gas,/mob/living/simple_animal/mouse,/turf/simulated/floor/plating,/area/maintenance/research_shuttle)
@@ -4855,13 +4855,13 @@
"bPs" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/button/remote/blast_door{id = "acutesep"; name = "Acute Separation Shutters"; pixel_y = 25; req_access = list(5)},/obj/machinery/camera/network/medbay{c_tag = "Medbay Acute"},/turf/simulated/floor/tiled/white,/area/medical/sleeper)
"bPt" = (/turf/simulated/wall,/area/janitor)
"bPu" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{autoclose = 0; name = "Acute Treatment"; req_access = list(5)},/turf/simulated/floor/tiled/white,/area/medical/medbay)
"bPv" = (/obj/machinery/door/firedoor,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/medical{name = "Staff Room"; req_access = list(5)},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay2)
"bPv" = (/obj/machinery/door/firedoor,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/medical{name = "Staff Room"; req_access = list(5)},/turf/simulated/floor/tiled/white,/area/medical/medbay2)
"bPw" = (/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/plating,/area/maintenance/engineering)
"bPx" = (/turf/simulated/floor/plating,/area/maintenance/engineering)
"bPy" = (/obj/structure/table/rack{dir = 1},/obj/item/clothing/suit/fire/firefighter,/obj/item/weapon/tank/oxygen,/obj/item/clothing/mask/gas,/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/clothing/glasses/meson,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/plating,/area/maintenance/engineering)
"bPz" = (/obj/structure/disposalpipe/segment,/obj/machinery/light_switch{pixel_x = 22; pixel_y = -9},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/camera/network/medbay{c_tag = "Medbay Port Corridor"; dir = 8},/obj/effect/floor_decal/corner/paleblue{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/medbay)
"bPA" = (/obj/machinery/light_switch{pixel_x = -22; pixel_y = -9},/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Medical Officer's Desk"; departmentType = 5; name = "Chief Medical Officer RC"; pixel_x = -34; pixel_y = 2},/obj/machinery/camera/network/medbay{c_tag = "Medbay - CMO's Office"; dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo)
"bPB" = (/obj/item/weapon/paper{desc = "A few notes scratched out by the last CMO before they departed the station."; info = "\[i]\[center]To the incoming CMO of Exodus:\[/i]\[/center]\[br]\[br]I wish you and your crew well. Do take note:\[br]\[br]\[br]The Medical Emergency Red Phone system has proven itself well. Take care to keep the phones in their designated places as they have been optimised for broadcast. The two handheld green radios (I have left one in this office, and one near the Emergency Entrance) are free to be used. The system has proven effective at alerting Medbay of important details, especially during power outages.\[br]\[br]I think I may have left the toilet cubicle doors shut. It might be a good idea to open them so the staff and patients know they are not engaged.\[br]\[br]The new syringe gun has been stored in secondary storage. I tend to prefer it stored in my office, but 'guidelines' are 'guidelines'.\[br]\[br]Also in secondary storage is the grenade equipment crate. I've just realised I've left it open - you may wish to shut it.\[br]\[br]There were a few problems with their installation, but the Medbay Quarantine shutters should now be working again - they lock down the Emergency and Main entrances to prevent travel in and out. Pray you shan't have to use them.\[br]\[br]The new version of the Medical Diagnostics Manual arrived. I distributed them to the shelf in the staff break room, and one on the table in the corner of this room.\[br]\[br]The exam/triage room has the walking canes in it. I'm not sure why we'd need them - but there you have it.\[br]\[br]Emergency Cryo bags are beside the emergency entrance, along with a kit.\[br]\[br]Spare paper cups for the reception are on the left side of the reception desk.\[br]\[br]I've fed Runtime. She should be fine.\[br]\[br]\[br]\[center]That should be all. Good luck!\[/center]"; name = "Outgoing CMO's Notes"},/obj/item/device/radio{frequency = 1487; name = "Medbay Emergency Radio Link"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/table/glass,/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo)
"bPB" = (/obj/item/weapon/paper{desc = "A few notes scratched out by the last CMO before they departed the station."; info = "\[i]\[center]To the incoming CMO of Exodus:\[/i]\[/center]\[br]\[br]I wish you and your crew well. Do take note:\[br]\[br]\[br]The Medical Emergency Red Phone system has proven itself well. Take care to keep the phones in their designated places as they have been optimised for broadcast. The two handheld green radios (I have left one in this office, and one near the Emergency Entrance) are free to be used. The system has proven effective at alerting Medbay of important details, especially during power outages.\[br]\[br]I think I may have left the toilet cubicle doors shut. It might be a good idea to open them so the staff and patients know they are not engaged.\[br]\[br]The new syringe gun has been stored in secondary storage. I tend to prefer it stored in my office, but 'guidelines' are 'guidelines'.\[br]\[br]Also in secondary storage is the grenade equipment crate. I've just realised I've left it open - you may wish to shut it.\[br]\[br]There were a few problems with their installation, but the Medbay Quarantine shutters should now be working again - they lock down the Emergency and Main entrances to prevent travel in and out. Pray you shan't have to use them.\[br]\[br]The new version of the Medical Diagnostics Manual arrived. I distributed them to the shelf in the staff break room, and one on the table in the corner of this room.\[br]\[br]The exam/triage room has the walking canes in it. I'm not sure why we'd need them - but there you have it.\[br]\[br]Emergency Cryo bags are beside the emergency entrance, along with a kit.\[br]\[br]Spare paper cups for the reception are on the left side of the reception desk.\[br]\[br]I've fed Runtime. She should be fine.\[br]\[br]\[br]\[center]That should be all. Good luck!\[/center]"; name = "Outgoing CMO's Notes"},/obj/item/device/radio{frequency = 1487; name = "medbay emergency radio link"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/table/glass,/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo)
"bPC" = (/obj/machinery/computer/skills{pixel_y = 4},/obj/item/device/megaphone,/obj/structure/table/glass,/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo)
"bPD" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/computer/med_data/laptop{pixel_x = 3; pixel_y = 4},/obj/structure/table/glass,/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo)
"bPE" = (/obj/structure/disposalpipe/segment,/obj/machinery/newscaster{pixel_x = 30},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/medical/medbay2)
@@ -5138,8 +5138,8 @@
"bUP" = (/obj/item/device/radio/intercom{dir = 8; pixel_x = -22},/obj/structure/bed/chair/office/dark,/obj/effect/floor_decal/corner/pink{dir = 9},/turf/simulated/floor/tiled/white,/area/medical/patient_b)
"bUQ" = (/obj/machinery/iv_drip,/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/floor_decal/corner/paleblue{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/patient_wing)
"bUR" = (/obj/structure/closet/secure_closet/personal/patient,/obj/effect/floor_decal/corner/paleblue{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/patient_wing)
"bUS" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Sub-Acute A"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/medical/patient_wing)
"bUT" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Sub-Acute B"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/medical/patient_wing)
"bUS" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Sub-Acute A"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/medical/patient_wing)
"bUT" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Sub-Acute B"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/medical/patient_wing)
"bUU" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 6},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled/white,/area/rnd/misc_lab)
"bUV" = (/obj/structure/table/reinforced,/obj/item/weapon/wrench,/obj/item/weapon/crowbar/red,/obj/item/clothing/glasses/science,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/obj/effect/floor_decal/corner/purple{dir = 4},/turf/simulated/floor/tiled/white,/area/rnd/misc_lab)
"bUW" = (/obj/structure/table/reinforced,/obj/machinery/button/ignition{id = "Xenobio"; pixel_x = -6; pixel_y = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/tiled/white,/area/rnd/misc_lab)
@@ -5352,7 +5352,7 @@
"bYV" = (/obj/structure/disposalpipe/junction{dir = 1; icon_state = "pipe-j2"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/medical/medbay4)
"bYW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/medical/medbay4)
"bYX" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{name = "Patient Ward"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/medical/medbay4)
"bYY" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{id_tag = "mentaldoor"; name = "Mental Health"; req_access = list(64)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/medical/psych)
"bYY" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{id_tag = "mentaldoor"; name = "Mental Health"; req_access = list(64)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood,/area/medical/psych)
"bYZ" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/medical/patient_wing)
"bZa" = (/obj/structure/grille,/obj/structure/window/reinforced/polarized{id = "isoC_window_tint"},/obj/structure/window/reinforced/polarized{dir = 4; id = "isoC_window_tint"},/obj/structure/window/reinforced/polarized{dir = 1; id = "isoC_window_tint"},/obj/structure/window/reinforced/polarized{dir = 8; id = "isoC_window_tint"},/turf/simulated/floor/plating,/area/medical/patient_c)
"bZb" = (/obj/machinery/camera/network/medbay{c_tag = "Medbay Patient Hallway - Port"; dir = 4},/obj/effect/floor_decal/corner/lime{dir = 9},/turf/simulated/floor/tiled/white,/area/medical/patient_wing)
@@ -5531,7 +5531,7 @@
"ccs" = (/obj/machinery/power/smes/buildable{charge = 0; RCon_tag = "Substation - Research"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/maintenance/substation/research)
"cct" = (/obj/item/device/radio/intercom{dir = 2; pixel_y = -22},/obj/structure/bed/roller,/obj/machinery/camera/network/medbay{c_tag = "Medbay Scanning"; dir = 1},/turf/simulated/floor/tiled,/area/medical/sleeper)
"ccu" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Engineer's Desk"; departmentType = 6; name = "Chief Engineer RC"; pixel_x = 0; pixel_y = -34},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/crew_quarters/heads/chief)
"ccv" = (/obj/structure/window/basic{dir = 8},/obj/machinery/shower{dir = 1},/obj/machinery/door/window/northright{name = "Shower"},/obj/structure/curtain/open/shower/engineering,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/sleep/engi_wash)
"ccv" = (/obj/structure/table/standard,/obj/machinery/alarm{pixel_y = 22},/obj/machinery/light{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/effect/floor_decal/corner/purple/full{dir = 8},/obj/item/weapon/wrench,/obj/item/weapon/hand_labeler,/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora_storage)
"ccw" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/turf/simulated/floor/plating,/area/maintenance/research_starboard)
"ccx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor/plating,/area/maintenance/research_starboard)
"ccy" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/maintenance/research_starboard)
@@ -5661,7 +5661,7 @@
"ceS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled/freezer,/area/medical/patient_wing)
"ceT" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/freezer,/area/medical/patient_wing)
"ceU" = (/obj/structure/closet/secure_closet/hydroponics{req_access = list(47)},/obj/effect/floor_decal/corner/purple{dir = 5},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora_storage)
"ceV" = (/obj/structure/table/standard,/obj/machinery/alarm{pixel_y = 22},/obj/machinery/light{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/item/weapon/hand_labeler,/obj/effect/floor_decal/corner/purple/full{dir = 8},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora_storage)
"ceV" = (/obj/structure/window/basic{dir = 8},/obj/machinery/shower{dir = 1},/obj/machinery/door/window/northright{name = "Shower"},/obj/structure/curtain/open/shower/engineering,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/sleep/engi_wash)
"ceW" = (/obj/machinery/light{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/smartfridge/drying_rack,/obj/effect/floor_decal/corner/purple/full{dir = 1},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora_storage)
"ceX" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Xenobiology Research"; req_access = list(47)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/black,/turf/simulated/floor/tiled/white,/area/rnd/xenobiology)
"ceY" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/disposalpipe/trunk,/obj/machinery/disposal,/obj/structure/sign/deathsposal{pixel_x = 0; pixel_y = 32},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/effect/floor_decal/corner/purple{dir = 6},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora)
@@ -5930,7 +5930,7 @@
"ckb" = (/obj/machinery/computer/operating,/turf/simulated/floor/tiled/white,/area/medical/surgery)
"ckc" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/spray/cleaner{desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; name = "Surgery Cleaner"},/obj/effect/floor_decal/corner/pink{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/surgery)
"ckd" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/medical/surgery)
"cke" = (/obj/structure/table/standard,/obj/item/device/radio{anchored = 1; broadcasting = 0; canhear_range = 7; frequency = 1487; icon = 'icons/obj/items.dmi'; icon_state = "red_phone"; listening = 1; name = "Surgery Emergency Phone"},/obj/effect/floor_decal/corner/blue{dir = 9},/turf/simulated/floor/tiled,/area/medical/surgeryprep)
"cke" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/blue{dir = 9},/obj/item/device/radio/phone/medbay{name = "surgery emergency phone"},/turf/simulated/floor/tiled,/area/medical/surgeryprep)
"ckf" = (/obj/structure/disposalpipe/segment,/obj/item/roller,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/blue{dir = 6},/turf/simulated/floor/tiled,/area/medical/surgeryprep)
"ckg" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/medical/surgeryprep)
"ckh" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/spray/cleaner{desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; name = "Surgery Cleaner"},/obj/effect/floor_decal/corner/pink{dir = 9},/turf/simulated/floor/tiled/white,/area/medical/surgery2)
@@ -6270,7 +6270,7 @@
"cqD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/atmos/monitoring)
"cqE" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/solar/starboard)
"cqF" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 8},/obj/machinery/meter,/turf/simulated/floor/tiled,/area/engineering/atmos)
"cqG" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/turf/simulated/floor/tiled,/area/engineering/atmos)
"cqG" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/engineering/atmos)
"cqH" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{tag = "icon-map (EAST)"; icon_state = "map"; dir = 4},/obj/machinery/meter,/turf/simulated/floor/tiled,/area/engineering/atmos)
"cqI" = (/obj/machinery/atmospherics/binary/pump{dir = 8; name = "Air Tank Bypass Pump"},/turf/simulated/floor/tiled,/area/engineering/atmos)
"cqJ" = (/obj/machinery/atmospherics/pipe/simple/visible/green,/turf/simulated/floor/tiled,/area/engineering/atmos)
@@ -6679,7 +6679,7 @@
"cyw" = (/obj/machinery/door/airlock/medical{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "virologyq_airlock_interior"; locked = 1; name = "Virology Quarantine Airlock"; req_access = list(39)},/obj/machinery/atmospherics/pipe/simple/hidden/black,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/medical/virology)
"cyx" = (/obj/structure/bed/chair/office/dark,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/virology)
"cyy" = (/obj/item/device/antibody_scanner,/obj/machinery/requests_console{department = "Virology"; name = "Virology Requests Console"; pixel_x = -32},/obj/structure/table/glass,/obj/effect/floor_decal/corner/lime{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/virology)
"cyz" = (/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 8},/obj/structure/disposalpipe/segment,/obj/item/device/radio{anchored = 1; broadcasting = 0; canhear_range = 7; frequency = 1487; icon = 'icons/obj/items.dmi'; icon_state = "red_phone"; listening = 1; name = "Virology Emergency Phone"; pixel_x = -6; pixel_y = 8},/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/table/glass,/turf/simulated/floor/tiled/white,/area/medical/virology)
"cyz" = (/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 8},/obj/structure/disposalpipe/segment,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/table/glass,/obj/item/device/radio/phone/medbay{name = "virology emergency phone"; pixel_x = -6; pixel_y = 8},/turf/simulated/floor/tiled/white,/area/medical/virology)
"cyA" = (/obj/item/roller,/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/tiled/white,/area/medical/virology)
"cyB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/plating,/area/medical/virology)
"cyC" = (/obj/structure/table/reinforced,/obj/machinery/button/remote/blast_door{id = "xenobio1"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access = list(55)},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/camera/network/research{c_tag = "Xenobiology Southwest"; dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology)
@@ -7351,6 +7351,7 @@
"cLs" = (/obj/machinery/light,/obj/item/device/radio/intercom{dir = 2; pixel_y = -22},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/plating,/area/engineering/engine_room)
"cLt" = (/obj/machinery/computer/atmos_alert,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/constructionsite/station)
"cLu" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/light,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/constructionsite/station)
"cLv" = (/obj/machinery/atmospherics/portables_connector,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/engineering/atmos)
"cLC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{name = "Engine Waste Handling"; req_one_access = list(10,24)},/turf/simulated/floor/plating,/area/maintenance/engi_engine)
"cLE" = (/obj/machinery/door/airlock/hatch{icon_state = "door_locked"; id_tag = "engine_access_hatch"; locked = 1; req_access = list(11)},/obj/machinery/atmospherics/pipe/simple/visible/cyan,/turf/simulated/floor/plating,/area/engineering/engine_room)
"cLF" = (/obj/machinery/door/airlock/hatch{icon_state = "door_locked"; id_tag = "engine_access_hatch"; locked = 1; req_access = list(11)},/obj/machinery/atmospherics/pipe/simple/visible/yellow,/turf/simulated/floor/plating,/area/engineering/engine_room)
@@ -7525,9 +7526,9 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaamcbOaamaamaamaamaamaaaaaaaaaaaaaaaaaaaafaafaaabZfbZgbZgbZgbZHbZgbZgbZEbZCbYIbZGbZIbYIbZKbZJbZNbZLbZPbZObZRbZQbZTbZSbZXbZWbUpbWJbYQcajcakcbkcalbSUcaqcaqcaqcaqcaqcarbNSbDtbZZbZYcctcabcaecadcagcafbTJccUcaocamcapcaEcaFcaGcaHcaIcasbYZcatbZycawcaubZAcaxcazcaybZAcaBbYfbPObIwbXYcaJbXZbXYbXYbIwbIwbIwcaRcaScaTcaUcaVbwwbwwcaCbwwbwwccGcaYcaDcaAcavccJcaZcbacbcccQccMccYccScbhbUnbUnbUnaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKsbKtbTYbTWbTWbLSbLSbLSbLSbLSbLSbLSbLSbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcaKcaMcaLcaOcaNcaWcaPcbbcaXbYIcbdcbfbYIbYIcbicbmcblcbpcbobUxcbqbYCbYBbYGcbrcbsbWJbWJcdYcdZbWJcebbSUcbvcbucaqcbwcaqbTFcbIcbIcbIcbIcbIcbIcbIbTJcbycbxbTJcbzcbCcbBcbDcaEcbPceicelcaIcasbYZcbEbZycbGcbFbZAceAcbKcbJbZAcbMbYfbYbbYdbYccbNccsccAbYccepbYkbYlcktbZDbZwbZFcktcercbQcbScbRcbUcbTcbWcbVcexcevceHceCcevceIceZceKcfeccwccxccycbXbUnbUnbUnbUnaaaaafaaaaaaaaaaahaahaahaafaaaaaaaafaaaaaaaafaaaaaabOPbKtbMTbKtbKtbLSbLSbLSbLSbLSbLSbLSbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcbYcbYcaLccbcbZcaWcceccgccfbYIcchccncckccrccqccuceBccBcczbVwccCccFccDccIccHccKcdycdQcdFcekceecemccLccOccNccRccPcaqbTFcbIccTccVceRccXccWcdaccZcdccdbcdecddcdgcdfcdhcaEcdjcdicdkcaIcasbYZcdlbZycdncdmbZAcdocdqcdpbZAcdrbYfbYfcaQbYccdtcdscdubYcchBccacjfcdLcdLcdvcdwcdLcdOcdxcdAcdzcdOcdScdEcdBcdGcdScdScdScdScdHcdBcdGcdScdSbXjcdXcdMcfIcdPcdNcfUcdRcdVcdVcdVcdVcdVcdVcdVcdVcdVcdVcdVcdVcdVcdVcdVcdVceacdWcdWcecbKtbKtbLSbLScedbLSbLSbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacejcejcejcejcejcejcejcegcefbYIbYIbYIbYIbYIbZMcbjcaicaicaiccccehbYCbYBbYGcenbTTceocesceqceucetcewbSUcezceycfQceycaqbTFcbIchvceDceDceDceEceFbTJceJceGbTJcbzcbBceLcbDcaEceMcdiceNcaIcasbYZceObZychEcePbZAbZAbZAbZAbZAceSceTbYfcaQbYcccdcgRbYcbYcchBcgVcjfcdLceVceUceUceWcdOcfdceXcffcdOceYcfacfacfacfbcfgcfccficfhcflcfjcfmcdScfocfncfpbUnbUnbUnbUnaaaaafaaaaaaaaaaahaahaahaafaaaaaaaafaaaaaaaafaafaafcfrcfqcftbMXbKsbKtbKtbLSbLUbLSbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacejcejcejcejcejcejcejcegcefbYIbYIbYIbYIbYIbZMcbjcaicaicaiccccehbYCbYBbYGcenbTTceocesceqceucetcewbSUcezceycfQceycaqbTFcbIchvceDceDceDceEceFbTJceJceGbTJcbzcbBceLcbDcaEceMcdiceNcaIcasbYZceObZychEcePbZAbZAbZAbZAbZAceSceTbYfcaQbYcccdcgRbYcbYcchBcgVcjfcdLccvceUceUceWcdOcfdceXcffcdOceYcfacfacfacfbcfgcfccficfhcflcfjcfmcdScfocfncfpbUnbUnbUnbUnaaaaafaaaaaaaaaaahaahaahaafaaaaaaaafaaaaaaaafaafaafcfrcfqcftbMXbKsbKtbKtbLSbLUbLSbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcejcfvcfucfxcfwcfycejcfAcfzcfFcfBcfDcfCcfEcfEccEcfGcfGcfHcfJcbqbYCbYBbYGcfLbUpcfMcfOcfNcjGcfPcfRbSUceyceycaqcfTcaqbTFcbIcfVcfWcfWcfWcfXcbIcfYcgacfZcfYcgbcgdcgccgecaEcgfcdicggcaIcgicghcgjbZycglcgkbZycgnbYfcgpcgrcgqcgtbYfccjccicgwcgucgxcclcclcclccmcdLcgzcgycgycgAcdTcgBcgDcgCcdUcgFcgGcgGcgGcgHcgJcgIcgLcgKcgLcgMcgOcdScgNciCcgPcgNaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcgQbKrbKrbKwbKsbKsbKtbKtbKtbKtbKuaafaafaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaafaafaafcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEaaaaaacfkcgTcgUcgUcgWcgXcejcgZcgYchbchachdchcchfchechhchgchjchichlchkchnchmchpchobSUbSUbSUbSUbSUbSUbSUbSUchqccvcaqchrcaqbTFcbIcbIctpctqctrcbIcbIchschuchtcfYcaEcaEcaEcaEcaEcaIckachxcaIchwchychwbZychAchzbZybYfbYfbVibVicgqchCbYfccobYfbYfccpcdCcdCcdCcdDbYfcdLckkchDchDchFchIchHchKchJchMchLchNchNchNchNchPchOchNchQchNchRchScdSchZciachGcgNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaafaafaafcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEaaaaaacfkcgTcgUcgUcgWcgXcejcgZcgYchbchachdchcchfchechhchgchjchichlchkchnchmchpchobSUbSUbSUbSUbSUbSUbSUbSUchqceVcaqchrcaqbTFcbIcbIctpctqctrcbIcbIchschuchtcfYcaEcaEcaEcaEcaEcaIckachxcaIchwchychwbZychAchzbZybYfbYfbVibVicgqchCbYfccobYfbYfccpcdCcdCcdCcdDbYfcdLckkchDchDchFchIchHchKchJchMchLchNchNchNchNchPchOchNchQchNchRchScdSchZciachGcgNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacgEchTchUchTcgEchVchXchVcgEchYcicchYcgEaaaaaacfscgTcgUcgWcgWcidcejcigciechWcihcikcijcincilcipciociocirciocbqbYCcisbYGcitcfKciuciwcivciwcixciyciqciqciAciAciAciAbTFciGciHciIciIciKciJciMciLciOciNciQciPciSciRciRciTciUcaIcaIcaIciWciVciXbZybZybZybZycifbLvbViciZciYcjabYfccobYfaaaaaaaaaaaaaaaaaaaaacdLcjccjbcjecjdcjhcjgcjjcjicjmcjkcjocjkcjkcjpcjscjqcjucjtcjucjvcjycdScmpcjwcjxcgNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacgEchTcjAchTcgEchVcjBchVcgEchYcjCchYcgEaaaaaacfscgUcgWcgWcgWcjDcgmcjFcjEchWclJcjIcjHcjKcjJcgocjLcjNcjMcjOcbqbYCcjPchpcjQcjScjRcjTcjTcjTcjUcjWcjVcjXcmRcjZcjYciAbTFciGclOciIckbckdckccubckeckgckfcngckhckjckiciRclZciUcnkcnwcnuckmcklckncnEcdIcdIcdJcdIcdKbVibVibVibVibYfccobYfaaaaaaaaaaaaaaaaaaaaacdLckpckockrckqckEcdOckscdOckGckuckwckvckvckwckyckxckvckzckvckAckBcdSckDckCckFcgNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacgEckHckJckIcgEckLckOckNcgEckPckRckQcgEaaaaafcfsckScgUcgWcgWcgWcejckMckKchWchWckTchWchWchWchWckUciockVckWcbqckZckYclbclacldclccleclecleclfclhclhcliciAcllcljclwclkciGclmciIclnclrclpclvcluclyclxclAclzclCclBciRclDciUcnVcnXclNclFclEclGclNclRclSclTbYfceQcdIcdIcdIcdIcdIcltbYfaaaaaaaaaaaaaaaaaaaaacdLclIclHclKcmscdOcmDclQclPcdSclVclYclYclYcnScmbcmacmdcmcclYclYcmecdScgScobcmqcmraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -7545,7 +7546,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaaaaaaaaacpBcpqcxPcxQcxQcxScxRcxQcxScxQcxTcxUcrQcrQcxVcrQcxWcrQcrQcrTcxXcvVcpqcpqcxYcybcyacydcATcyfcyecxecxdcyjcyjcylcykcoBcxicyncnOcyocoMcypcoMcyrcyqcpjcpjcpjcpjcpjcpjcpjbPxcvMcvNcytcyscxmcyucxmcxocyvcvNcyQcADcrGaaaaaaaaaaaaaaaaaacqvcuVcywctFctFcyycyxcyzcyWcsBcsDcsCcyBcsBcuycyAcqvaaaaaaaaaaaacdOcoTcoTcoTckXcyCcyDcrycrycrycxNcrycyEcrycyFcryctjaafaafcrPaafcuRcuUcuUcuUcuUcuXcsGcuZcuYcuYcuYcuYcvaaafcrPaaaczLczLczLczLaaaaaaaaaczLczLczLczLczLczLczLaaaaaaaaaczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaaaaaaaaacpBcpqcqJcpqcpqcpqcwMcpqcpqcpqcwMcpqcpqcpqcyGcpqcqKcpqcpqcpqcyHcvVcpqcpqcyecwYcyIcyJcwgcAUcwgcwgcyKcyMcyLcBkcykcoBcxicoBcnOcyOcyNcyRcDHcyScoMcnOcBucBzcBzczhcBAcBDczNczOcvNcyUcyTcyVcxocyXcBHcBIcvNcyZcyYcrGaaaaaaaaaaaaaaaaaacqvczbczaczccuVczeczdczfctFcziczgczjcyBczbczkczmcqvaaaaaaaaaaaackEcdOcAfcAgcAgcznczpczoczsczrczucztczwczvczxcoccvlaaaaaacrPaafcvUcvUcvUcvUcvUaaacsGaafcvUcvUcvUcvUcvUaaacrPaaaczLczLczLczLaaaaaaczLczLczLczLczLczLczLczLczLaaaaaaczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaIaaaaaacvncpqcqJcpqczzcrDcrCcrDczBcrDcrCcrDczBcrDczCcrDczFczIczHcwTczKcyIczMczQczPczSczRczTcwgczUczycwgcwgcwgcwgcwgczAcniczVcnicnOcnOcnOcnOcnOcnOcnOcnOczDcBzcBzczEcANcAObPxcAPcvNcCgcCfczXczWczYcCncCvcvNcAaczZcrGaaaaaaaaaaaaaaaaaacqvcDScAbczmctFcBacBbcBcctFcEccAccAiczGcAjcAccEzcqvaafaafaaaaaaaaaaaacAlaaacdOcAmcAocAncAqcApcAocAtcAucApcAocAvcdOaaaaaacbOaaaaafaaaaafaaaaafaaacsGaaaaafaaaaafaafaafaafcrPaaaczLczLczLczLaaaaaaczLczLczLczLczLczLczLczLczLaaaaaaczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbOaaaaaaaaaaaIaaaaaacwOcpqcqJcpqcAwcybcqJcpqcAxcybcqJcpqcAycybcpqcpqcAzcpqcAAcybcABcAEcACcAHcAFcAJcAIcAKcwgcAMcALcARcAQcASctZcAWcFFctZcAXctZcAYcuccAZcBecBdcBdcBfcBgcBVcBWcBWcBXcBYcAObPxcBZcvNcvNcCacCbcDFcCbcCacCdcvNcrGcDIcrGaaaaaaaaaaaaaaaaaacqvctFcBhcuVctFcBjcBicBlctFcxscwWcpZcgvcxvcwWcxwcrHaaaaaaaaaaaaaaaaaacBmaafcdOcBncBoclUcomclscBpclqcomclocBqclWcdOaaaaaacrPaaactMctMctMctMctMaafcsGaafctMctMctMctMctMaafcrPaaaczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbOaaaaaaaaaaaIaaaaaacwOcpqcqJcpqcAwcLvcqJcpqcAxcLvcqJcpqcAycLvcpqcpqcAzcpqcAAcLvcABcAEcACcAHcAFcAJcAIcAKcwgcAMcALcARcAQcASctZcAWcFFctZcAXctZcAYcuccAZcBecBdcBdcBfcBgcBVcBWcBWcBXcBYcAObPxcBZcvNcvNcCacCbcDFcCbcCacCdcvNcrGcDIcrGaaaaaaaaaaaaaaaaaacqvctFcBhcuVctFcBjcBicBlctFcxscwWcpZcgvcxvcwWcxwcrHaaaaaaaaaaaaaaaaaacBmaafcdOcBncBoclUcomclscBpclqcomclocBqclWcdOaaaaaacrPaaactMctMctMctMctMaafcsGaafctMctMctMctMctMaafcrPaaaczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPaafaafaafaaIaafaafcwOcpqcBrcBvcBscBycBxcBCcBBcBFcBEcBJcBGcBKcpqcBMcBLcBPcBOcBRcBQcnycnycnycnycnycnycnycnycEJcBNczAcBScBTcoBcBUcoBcoBcxicoBcoBcCccoBcBTcChcClcCicCrcCpcCscCqcCtcFCcAObPwcCRcCucCTcCacAGcAVcBwcCacCxcCwcCzcCycCBaaaaaaaaaaaaaaaaaacqvcCFcCDcCKcCJcCLcuvcCOcCNczlaafaaacCPcCScCQcCUaaaaaaaaaaacaaaaaaaaaaaaaaacdOcCVcoTcoTcomcCWcoTcoTcomcCWcoTcoTcdOaafaafcrPaafcuRcuUcuUcuUcuUcuXcsGcuZcuYcuYcuYcuYcvaaafcrPaaaczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPcCXaaaaaaaaIaaaaaaczJcAhcAdcBtcArcCjcCecCkcArcCjcCecCkcArcCjcCmcCmcCocCkcArcCjcCAcnyaaacCMcCYcDacCZcDccDbcDjcDdcDkcDkcDecDlcDocCCcCEcDfcCCcCEcDocDrcDgcDscDrczAczAcAOcGEcGAcDPcDQcAObNUcDRcDhcDicCacCbcGMcCbcCacDncDmcDpaafaaaaaaaaaaaaaaaaaaaaacqvcCFcDqcDucDtcDtcDuczjcDvcqvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacdOcDwcoTcoTcomcDxcoTcoTcomcDxcoTcoTcdOaaaaaacrPaafcvUcvUcvUcvUcvUaaacsGaaacvUcvUcvUcvUcvUaaacrPaaaczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPcDBcHjcHjcHCcHjcHjcHjcHjcHVcHjcIAcHjcHVcHjcIAcHjcHVcHjcIAcHjcHjcHjcIAcHjcIAcHjcIMaafaaacDzcDycDCcDAcDDcDEcDjcDGcDkcGBcDLcDKcDJcDMcDOcDNcDTcIZcDJcDUcDWcDVcDraaaaafcAOcDYcDXcEDaafaaabNUbPxbPxbSkcCacEacDZcEbcCaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqvcKfcuEcEecEdcEdcEecuvcEfcqvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacdOcoTcoTcoTcomcEicoTcoTcomcEicoTcoTcdOaacaaacrPaaaaaaaafaafaafaaaaaacEjaafaaaaaaaafaafaaaaaacrPaaaczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa