diff --git a/code/ATMOSPHERICS/components/tvalve.dm b/code/ATMOSPHERICS/components/tvalve.dm
index 0c841a4ad3..65d38a131d 100644
--- a/code/ATMOSPHERICS/components/tvalve.dm
+++ b/code/ATMOSPHERICS/components/tvalve.dm
@@ -180,7 +180,6 @@
/obj/machinery/atmospherics/tvalve/process()
..()
. = PROCESS_KILL
- //machines.Remove(src)
return
diff --git a/code/ATMOSPHERICS/datum_pipe_network.dm b/code/ATMOSPHERICS/datum_pipe_network.dm
index 8441461342..74134e6ff2 100644
--- a/code/ATMOSPHERICS/datum_pipe_network.dm
+++ b/code/ATMOSPHERICS/datum_pipe_network.dm
@@ -1,6 +1,6 @@
-var/global/list/datum/pipe_network/pipe_networks = list()
+var/global/list/datum/pipe_network/pipe_networks = list() // TODO - Move into SSmachines
-datum/pipe_network
+/datum/pipe_network
var/list/datum/gas_mixture/gases = list() //All of the gas_mixtures continuously connected in this network
var/volume = 0 //caches the total volume for atmos machines to use in gas calculations
@@ -11,13 +11,8 @@ datum/pipe_network
var/update = 1
//var/datum/gas_mixture/air_transient = null
- New()
- //air_transient = new()
-
- ..()
-
Destroy()
- pipe_networks -= src
+ STOP_PROCESSING_PIPENET(src)
for(var/datum/pipeline/line_member in line_members)
line_member.network = null
for(var/obj/machinery/atmospherics/normal_member in normal_members)
@@ -41,13 +36,14 @@ datum/pipe_network
if(!start_normal)
qdel(src)
+ return
start_normal.network_expand(src, reference)
update_network_gases()
if((normal_members.len>0)||(line_members.len>0))
- pipe_networks += src
+ START_PROCESSING_PIPENET(src)
else
qdel(src)
diff --git a/code/ZAS/Controller.dm b/code/ZAS/Controller.dm
index 791e17de20..9688fabf72 100644
--- a/code/ZAS/Controller.dm
+++ b/code/ZAS/Controller.dm
@@ -128,6 +128,16 @@ Total Active Edges: [active_edges.len ? "[active_edges.len]
Total Unsimulated Turfs: [world.maxx*world.maxy*world.maxz - simulated_turf_count]
"}, R_DEBUG)
+ // Uncomment this if you're having problems finding where active edges are.
+ /*
+ for(var/connection_edge/E in active_edges)
+ world << "Edge became active: [E]."
+ var/i = 1
+ for(var/turf/T in E.connecting_turfs)
+ world << "[i] [T]:[T.x],[T.y],[T.z]"
+ i++
+ */
+
// spawn Start()
diff --git a/code/__defines/MC.dm b/code/__defines/MC.dm
index fb15a693bf..5620f51b3b 100644
--- a/code/__defines/MC.dm
+++ b/code/__defines/MC.dm
@@ -1,15 +1,28 @@
-#define MC_TICK_CHECK ( ( world.tick_usage > Master.current_ticklimit || src.state != SS_RUNNING ) ? pause() : 0 )
+#define MC_TICK_CHECK ( ( TICK_USAGE > Master.current_ticklimit || src.state != SS_RUNNING ) ? pause() : 0 )
// Used for splitting up your remaining time into phases, if you want to evenly divide it.
#define MC_SPLIT_TICK_INIT(phase_count) var/original_tick_limit = Master.current_ticklimit; var/split_tick_phases = ##phase_count
#define MC_SPLIT_TICK \
if(split_tick_phases > 1){\
- Master.current_ticklimit = ((original_tick_limit - world.tick_usage) / split_tick_phases) + world.tick_usage;\
+ Master.current_ticklimit = ((original_tick_limit - TICK_USAGE) / split_tick_phases) + TICK_USAGE;\
--split_tick_phases;\
} else {\
Master.current_ticklimit = original_tick_limit;\
}
+// Boilerplate code for multi-step processors. See machines.dm for example use.
+#define INTERNAL_PROCESS_STEP(this_step, initial_step, proc_to_call, cost_var, next_step)\
+if(current_step == this_step || (initial_step && !resumed)) /* So we start at step 1 if not resumed.*/ {\
+ timer = TICK_USAGE;\
+ proc_to_call(resumed);\
+ cost_var = MC_AVERAGE(cost_var, TICK_DELTA_TO_MS(TICK_USAGE - timer));\
+ if(state != SS_RUNNING){\
+ return;\
+ }\
+ resumed = 0;\
+ current_step = next_step;\
+}
+
// Used to smooth out costs to try and avoid oscillation.
#define MC_AVERAGE_FAST(average, current) (0.7 * (average) + 0.3 * (current))
#define MC_AVERAGE(average, current) (0.8 * (average) + 0.2 * (current))
diff --git a/code/__defines/_compile_options.dm b/code/__defines/_compile_options.dm
index ac5f7120fd..e71ced7e29 100644
--- a/code/__defines/_compile_options.dm
+++ b/code/__defines/_compile_options.dm
@@ -1,2 +1,8 @@
#define BACKGROUND_ENABLED 0 // The default value for all uses of set background. Set background can cause gradual lag and is recommended you only turn this on if necessary.
- // 1 will enable set background. 0 will disable set background.
\ No newline at end of file
+ // 1 will enable set background. 0 will disable set background.
+
+#define PRELOAD_RSC 1 /*set to:
+ 0 to allow using external resources or on-demand behaviour;
+ 1 to use the default behaviour (preload compiled in recourses, not player uploaded ones);
+ 2 for preloading absolutely everything;
+ */
\ No newline at end of file
diff --git a/code/__defines/tick.dm b/code/__defines/_tick.dm
similarity index 51%
rename from code/__defines/tick.dm
rename to code/__defines/_tick.dm
index 4c88fd643e..2c761b86f9 100644
--- a/code/__defines/tick.dm
+++ b/code/__defines/_tick.dm
@@ -1,7 +1,9 @@
#define TICK_LIMIT_RUNNING 80
-#define TICK_LIMIT_TO_RUN 78
+#define TICK_LIMIT_TO_RUN 70
#define TICK_LIMIT_MC 70
#define TICK_LIMIT_MC_INIT_DEFAULT 98
-#define TICK_CHECK ( world.tick_usage > Master.current_ticklimit )
+#define TICK_CHECK ( TICK_USAGE > Master.current_ticklimit )
#define CHECK_TICK if TICK_CHECK stoplag()
+
+#define TICK_USAGE world.tick_usage
diff --git a/code/__defines/machinery.dm b/code/__defines/machinery.dm
index deaaec0fad..b577225e01 100644
--- a/code/__defines/machinery.dm
+++ b/code/__defines/machinery.dm
@@ -105,3 +105,37 @@ var/list/restricted_camera_networks = list(NETWORK_ERT,NETWORK_MERCENARY,"Secret
#define ATMOS_DEFAULT_VOLUME_FILTER 200 // L.
#define ATMOS_DEFAULT_VOLUME_MIXER 200 // L.
#define ATMOS_DEFAULT_VOLUME_PIPE 70 // L.
+
+// Fancy-pants START/STOP_PROCESSING() macros that lets us custom define what the list is.
+#define START_PROCESSING_IN_LIST(DATUM, LIST) \
+if (DATUM.is_processing) {\
+ if(DATUM.is_processing != #LIST)\
+ {\
+ crash_with("Failed to start processing. [log_info_line(DATUM)] is already being processed by [DATUM.is_processing] but queue attempt occured on [#LIST]."); \
+ }\
+} else {\
+ DATUM.is_processing = #LIST;\
+ LIST += DATUM;\
+}
+
+#define STOP_PROCESSING_IN_LIST(DATUM, LIST) \
+if(DATUM.is_processing) {\
+ if(LIST.Remove(DATUM)) {\
+ DATUM.is_processing = null;\
+ } else {\
+ crash_with("Failed to stop processing. [log_info_line(DATUM)] is being processed by [is_processing] and not found in SSmachines.[#LIST]"); \
+ }\
+}
+
+// Note - I would prefer these be defined machines.dm, but some are used prior in file order. ~Leshana
+#define START_MACHINE_PROCESSING(Datum) START_PROCESSING_IN_LIST(Datum, global.machines)
+#define STOP_MACHINE_PROCESSING(Datum) STOP_PROCESSING_IN_LIST(Datum, global.machines)
+
+#define START_PROCESSING_PIPENET(Datum) START_PROCESSING_IN_LIST(Datum, global.pipe_networks)
+#define STOP_PROCESSING_PIPENET(Datum) STOP_PROCESSING_IN_LIST(Datum, global.pipe_networks)
+
+#define START_PROCESSING_POWERNET(Datum) START_PROCESSING_IN_LIST(Datum, global.powernets)
+#define STOP_PROCESSING_POWERNET(Datum) STOP_PROCESSING_IN_LIST(Datum, global.powernets)
+
+#define START_PROCESSING_POWER_OBJECT(Datum) START_PROCESSING_IN_LIST(Datum, global.processing_power_items)
+#define STOP_PROCESSING_POWER_OBJECT(Datum) STOP_PROCESSING_IN_LIST(Datum, global.processing_power_items)
diff --git a/code/__defines/math.dm b/code/__defines/math.dm
index 0729a4526d..79dc1b4d24 100644
--- a/code/__defines/math.dm
+++ b/code/__defines/math.dm
@@ -2,9 +2,13 @@
//percent_of_tick_used * (ticklag * 100(to convert to ms)) / 100(percent ratio)
//collapsed to percent_of_tick_used * tick_lag
#define TICK_DELTA_TO_MS(percent_of_tick_used) ((percent_of_tick_used) * world.tick_lag)
-#define TICK_USAGE_TO_MS(starting_tickusage) (TICK_DELTA_TO_MS(world.tick_usage-starting_tickusage))
+#define TICK_USAGE_TO_MS(starting_tickusage) (TICK_DELTA_TO_MS(TICK_USAGE-starting_tickusage))
//time of day but automatically adjusts to the server going into the next day within the same round.
//for when you need a reliable time number that doesn't depend on byond time.
#define REALTIMEOFDAY (world.timeofday + (MIDNIGHT_ROLLOVER * MIDNIGHT_ROLLOVER_CHECK))
#define MIDNIGHT_ROLLOVER_CHECK ( rollovercheck_last_timeofday != world.timeofday ? update_midnight_rollover() : midnight_rollovers )
+
+#define CEILING(x, y) ( -round(-(x) / (y)) * (y) )
+// round() acts like floor(x, 1) by default but can't handle other values
+#define FLOOR(x, y) ( round((x) / (y)) * (y) )
diff --git a/code/__defines/misc.dm b/code/__defines/misc.dm
index d8fdac657f..a5d262e6a3 100644
--- a/code/__defines/misc.dm
+++ b/code/__defines/misc.dm
@@ -227,4 +227,21 @@
#define MAP_MINZ 3
#define MAP_MAXX 4
#define MAP_MAXY 5
-#define MAP_MAXZ 6
\ No newline at end of file
+#define MAP_MAXZ 6
+// /atom/proc/use_check flags
+#define USE_ALLOW_NONLIVING 1
+#define USE_ALLOW_NON_ADV_TOOL_USR 2
+#define USE_ALLOW_DEAD 4
+#define USE_ALLOW_INCAPACITATED 8
+#define USE_ALLOW_NON_ADJACENT 16
+#define USE_FORCE_SRC_IN_USER 32
+#define USE_DISALLOW_SILICONS 64
+
+#define USE_SUCCESS 0
+#define USE_FAIL_NON_ADJACENT 1
+#define USE_FAIL_NONLIVING 2
+#define USE_FAIL_NON_ADV_TOOL_USR 3
+#define USE_FAIL_DEAD 4
+#define USE_FAIL_INCAPACITATED 5
+#define USE_FAIL_NOT_IN_USER 6
+#define USE_FAIL_IS_SILICON 7
\ No newline at end of file
diff --git a/code/__defines/process_scheduler.dm b/code/__defines/process_scheduler.dm
index f1e30c23ed..4bc841022f 100644
--- a/code/__defines/process_scheduler.dm
+++ b/code/__defines/process_scheduler.dm
@@ -15,4 +15,4 @@
#define PROCESS_DEFAULT_DEFER_USAGE 90 // 90% of a tick
// Sleep check macro
-#define SCHECK if(world.tick_usage >= next_sleep_usage) defer()
+#define SCHECK if(TICK_USAGE >= next_sleep_usage) defer()
diff --git a/code/__defines/qdel.dm b/code/__defines/qdel.dm
index 168a6adf0c..f50c012ce3 100644
--- a/code/__defines/qdel.dm
+++ b/code/__defines/qdel.dm
@@ -9,9 +9,14 @@
//if TESTING is enabled, qdel will call this object's find_references() verb.
//defines for the gc_destroyed var
+#define GC_QUEUE_PREQUEUE 1
+#define GC_QUEUE_CHECK 2
+#define GC_QUEUE_HARDDELETE 3
+#define GC_QUEUE_COUNT 3 //increase this when adding more steps.
+
#define GC_QUEUED_FOR_QUEUING -1
#define GC_QUEUED_FOR_HARD_DEL -2
#define GC_CURRENTLY_BEING_QDELETED -3
#define QDELETED(X) (!X || X.gc_destroyed)
-#define QDESTROYING(X) (!X || X.gc_destroyed == GC_CURRENTLY_BEING_QDELETED)
+#define QDESTROYING(X) (!X || X.gc_destroyed == GC_CURRENTLY_BEING_QDELETED)
\ No newline at end of file
diff --git a/code/__defines/subsystems.dm b/code/__defines/subsystems.dm
index 75780be3eb..be04fa1d7f 100644
--- a/code/__defines/subsystems.dm
+++ b/code/__defines/subsystems.dm
@@ -12,4 +12,8 @@
var/global/list/runlevel_flags = list(RUNLEVEL_LOBBY, RUNLEVEL_SETUP, RUNLEVEL_GAME, RUNLEVEL_POSTGAME)
#define RUNLEVEL_FLAG_TO_INDEX(flag) (log(2, flag) + 1) // Convert from the runlevel bitfield constants to index in runlevel_flags list
+// Subsystem init_order, from highest priority to lowest priority
+// Subsystems shutdown in the reverse of the order they initialize in
+// The numbers just define the ordering, they are meaningless otherwise.
+#define INIT_ORDER_MACHINES 10
#define INIT_ORDER_LIGHTING 0
diff --git a/code/_helpers/mobs.dm b/code/_helpers/mobs.dm
index eb1ef73eb7..1dffebf607 100644
--- a/code/_helpers/mobs.dm
+++ b/code/_helpers/mobs.dm
@@ -182,7 +182,7 @@ Proc for attack log creation, because really why not
var/starttime = world.time
. = 1
while (world.time < endtime)
- sleep(1)
+ stoplag(1)
if (progress)
progbar.update(world.time - starttime)
if(!user || !target)
@@ -229,7 +229,7 @@ Proc for attack log creation, because really why not
var/starttime = world.time
. = 1
while (world.time < endtime)
- sleep(1)
+ stoplag(1)
if (progress)
progbar.update(world.time - starttime)
diff --git a/code/_helpers/sorts/comparators.dm b/code/_helpers/sorts/comparators.dm
index 8c1f954a00..58f9251392 100644
--- a/code/_helpers/sorts/comparators.dm
+++ b/code/_helpers/sorts/comparators.dm
@@ -13,8 +13,18 @@
// Sorts subsystems by init_order
/proc/cmp_subsystem_init(datum/controller/subsystem/a, datum/controller/subsystem/b)
- return b.init_order - a.init_order
+ return initial(b.init_order) - initial(a.init_order) //uses initial() so it can be used on types
// Sorts subsystems by priority
/proc/cmp_subsystem_priority(datum/controller/subsystem/a, datum/controller/subsystem/b)
return a.priority - b.priority
+
+// Sorts qdel statistics recorsd by time and count
+/proc/cmp_qdel_item_time(datum/qdel_item/A, datum/qdel_item/B)
+ . = B.hard_delete_time - A.hard_delete_time
+ if (!.)
+ . = B.destroy_time - A.destroy_time
+ if (!.)
+ . = B.failures - A.failures
+ if (!.)
+ . = B.qdels - A.qdels
diff --git a/code/_helpers/time.dm b/code/_helpers/time.dm
index 3a6bcedcd1..6dad42e128 100644
--- a/code/_helpers/time.dm
+++ b/code/_helpers/time.dm
@@ -11,7 +11,13 @@
#define DAYS *864000
#define TimeOfGame (get_game_time())
-#define TimeOfTick (world.tick_usage*0.01*world.tick_lag)
+#define TimeOfTick (TICK_USAGE*0.01*world.tick_lag)
+
+#define TICK *world.tick_lag
+#define TICKS *world.tick_lag
+
+#define DS2TICKS(DS) (DS/world.tick_lag) // Convert deciseconds to ticks
+#define TICKS2DS(T) (T TICKS) // Convert ticks to deciseconds
/proc/get_game_time()
var/global/time_offset = 0
@@ -19,7 +25,7 @@
var/global/last_usage = 0
var/wtime = world.time
- var/wusage = world.tick_usage * 0.01
+ var/wusage = TICK_USAGE * 0.01
if(last_time < wtime && last_usage > 1)
time_offset += last_usage - 1
@@ -111,13 +117,21 @@ var/round_start_time = 0
//Increases delay as the server gets more overloaded,
//as sleeps aren't cheap and sleeping only to wake up and sleep again is wasteful
-#define DELTA_CALC max(((max(world.tick_usage, world.cpu) / 100) * max(Master.sleep_delta,1)), 1)
+#define DELTA_CALC max(((max(TICK_USAGE, world.cpu) / 100) * max(Master.sleep_delta-1,1)), 1)
-/proc/stoplag()
+//returns the number of ticks slept
+/proc/stoplag(initial_delay)
+ if (!Master || !(Master.current_runlevel & RUNLEVELS_DEFAULT))
+ sleep(world.tick_lag)
+ return 1
+ if (!initial_delay)
+ initial_delay = world.tick_lag
. = 0
- var/i = 1
+ var/i = DS2TICKS(initial_delay)
do
- . += round(i*DELTA_CALC)
+ . += CEILING(i*DELTA_CALC, 1)
sleep(i*world.tick_lag*DELTA_CALC)
i *= 2
- while (world.tick_usage > min(TICK_LIMIT_TO_RUN, Master.current_ticklimit))
+ while (TICK_USAGE > min(TICK_LIMIT_TO_RUN, Master.current_ticklimit))
+
+#undef DELTA_CALC
\ No newline at end of file
diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm
index c3b7196d7b..4d2242d8c3 100644
--- a/code/_helpers/unsorted.dm
+++ b/code/_helpers/unsorted.dm
@@ -1361,3 +1361,48 @@ var/mob/dview/dview_mob = new
. += T.contents
if(areas)
. |= T.loc
+
+#define NOT_FLAG(flag) (!(flag & use_flags))
+#define HAS_FLAG(flag) (flag & use_flags)
+
+// Checks if user can use this object. Set use_flags to customize what checks are done.
+// Returns 0 if they can use it, a value representing why they can't if not.
+// Flags are in `code/__defines/misc.dm`
+/atom/proc/use_check(mob/user, use_flags = 0, show_messages = FALSE)
+ . = 0
+ if (NOT_FLAG(USE_ALLOW_NONLIVING) && !isliving(user))
+ // No message for ghosts.
+ return USE_FAIL_NONLIVING
+
+ if (NOT_FLAG(USE_ALLOW_NON_ADJACENT) && !Adjacent(user))
+ if (show_messages)
+ to_chat(user, span("notice","You're too far away from [src] to do that."))
+ return USE_FAIL_NON_ADJACENT
+
+ if (NOT_FLAG(USE_ALLOW_DEAD) && user.stat == DEAD)
+ if (show_messages)
+ to_chat(user, span("notice","You can't do that when you're dead."))
+ return USE_FAIL_DEAD
+
+ if (NOT_FLAG(USE_ALLOW_INCAPACITATED) && (user.incapacitated()))
+ if (show_messages)
+ to_chat(user, span("notice","You cannot do that in your current state."))
+ return USE_FAIL_INCAPACITATED
+
+ if (NOT_FLAG(USE_ALLOW_NON_ADV_TOOL_USR) && !user.IsAdvancedToolUser())
+ if (show_messages)
+ to_chat(user, span("notice","You don't know how to operate [src]."))
+ return USE_FAIL_NON_ADV_TOOL_USR
+
+ if (HAS_FLAG(USE_DISALLOW_SILICONS) && issilicon(user))
+ if (show_messages)
+ to_chat(user, span("notice","You need hands for that."))
+ return USE_FAIL_IS_SILICON
+
+ if (HAS_FLAG(USE_FORCE_SRC_IN_USER) && !(src in user))
+ if (show_messages)
+ to_chat(user, span("notice","You need to be holding [src] to do that."))
+ return USE_FAIL_NOT_IN_USER
+
+#undef NOT_FLAG
+#undef HAS_FLAG
\ No newline at end of file
diff --git a/code/_macros.dm b/code/_macros.dm
index 38b9d15c71..04dfa4eb1f 100644
--- a/code/_macros.dm
+++ b/code/_macros.dm
@@ -2,6 +2,8 @@
#define CLAMP01(x) (Clamp(x, 0, 1))
+#define span(class, text) ("[text]")
+
#define get_turf(A) get_step(A,0)
#define isAI(A) istype(A, /mob/living/silicon/ai)
@@ -87,4 +89,4 @@
// Null-safe L.Cut()
#define LAZYCLEARLIST(L) if(L) L.Cut()
// Reads L or an empty list if L is not a list. Note: Does NOT assign, L may be an expression.
-#define SANITIZE_LIST(L) ( islist(L) ? L : list() )
+#define SANITIZE_LIST(L) ( islist(L) ? L : list() )
\ No newline at end of file
diff --git a/code/controllers/ProcessScheduler/core/process.dm b/code/controllers/ProcessScheduler/core/process.dm
index 9f08241978..2965a52abe 100644
--- a/code/controllers/ProcessScheduler/core/process.dm
+++ b/code/controllers/ProcessScheduler/core/process.dm
@@ -124,7 +124,7 @@
cpu_defer_count = 0
// Prepare usage tracking (defer() updates these)
- tick_usage_start = world.tick_usage
+ tick_usage_start = TICK_USAGE
tick_usage_accumulated = 0
running()
@@ -142,7 +142,7 @@
/datum/controller/process/proc/recordRunTime()
// Convert from tick usage (100/tick) to seconds of CPU time used
- var/total_usage = (tick_usage_accumulated + (world.tick_usage - tick_usage_start)) / 1000 * world.tick_lag
+ var/total_usage = (tick_usage_accumulated + (TICK_USAGE - tick_usage_start)) / 1000 * world.tick_lag
last_run_time = total_usage
if(total_usage > highest_run_time)
@@ -222,14 +222,14 @@
handleHung()
CRASH("Process [name] hung and was restarted.")
- tick_usage_accumulated += (world.tick_usage - tick_usage_start)
- if(world.tick_usage < defer_usage)
+ tick_usage_accumulated += (TICK_USAGE - tick_usage_start)
+ if(TICK_USAGE < defer_usage)
sleep(0)
else
sleep(world.tick_lag)
cpu_defer_count++
- tick_usage_start = world.tick_usage
- next_sleep_usage = min(world.tick_usage + sleep_interval, defer_usage)
+ tick_usage_start = TICK_USAGE
+ next_sleep_usage = min(TICK_USAGE + sleep_interval, defer_usage)
/datum/controller/process/proc/update()
// Clear delta
diff --git a/code/controllers/master.dm b/code/controllers/master.dm
index 4ca4bebf0a..3ecb3b7fcb 100644
--- a/code/controllers/master.dm
+++ b/code/controllers/master.dm
@@ -12,7 +12,7 @@ var/datum/controller/master/Master = new()
name = "Master"
// Are we processing (higher values increase the processing delay by n ticks)
- var/processing = 1
+ var/processing = TRUE
// How many times have we ran
var/iteration = 0
@@ -27,7 +27,7 @@ var/datum/controller/master/Master = new()
var/init_time
var/tickdrift = 0
- var/sleep_delta
+ var/sleep_delta = 1
var/make_runtime = 0
@@ -54,13 +54,17 @@ var/datum/controller/master/Master = new()
/datum/controller/master/New()
// Highlander-style: there can only be one! Kill off the old and replace it with the new.
- subsystems = list()
+ var/list/_subsystems = list()
+ subsystems = _subsystems
if (Master != src)
if (istype(Master))
Recover()
qdel(Master)
else
- init_subtypes(/datum/controller/subsystem, subsystems)
+ var/list/subsytem_types = subtypesof(/datum/controller/subsystem)
+ sortTim(subsytem_types, /proc/cmp_subsystem_init)
+ for(var/I in subsytem_types)
+ _subsystems += new I
Master = src
/datum/controller/master/Destroy()
@@ -73,7 +77,9 @@ var/datum/controller/master/Master = new()
sortTim(subsystems, /proc/cmp_subsystem_init)
reverseRange(subsystems)
for(var/datum/controller/subsystem/ss in subsystems)
+ log_world("Shutting down [ss.name] subsystem...")
ss.Shutdown()
+ log_world("Shutdown complete")
// Returns 1 if we created a new mc, 0 if we couldn't due to a recent restart,
// -1 if we encountered a runtime trying to recreate it
@@ -87,7 +93,7 @@ var/datum/controller/master/Master = new()
var/delay = 50 * ++Master.restart_count
Master.restart_timeout = world.time + delay
Master.restart_clear = world.time + (delay * 2)
- Master.processing = 0 //stop ticking this one
+ Master.processing = FALSE //stop ticking this one
try
new/datum/controller/master()
catch
@@ -114,7 +120,8 @@ var/datum/controller/master/Master = new()
var/FireHim = FALSE
if(istype(BadBoy))
msg = null
- switch(++BadBoy.failure_strikes)
+ LAZYINITLIST(BadBoy.failure_strikes)
+ switch(++BadBoy.failure_strikes[BadBoy.type])
if(2)
msg = "The [BadBoy.name] subsystem was the last to fire for 2 controller restarts. It will be recovered now and disabled if it happens again."
FireHim = TRUE
@@ -262,35 +269,45 @@ var/datum/controller/master/Master = new()
iteration = 1
var/error_level = 0
- var/sleep_delta = 0
+ var/sleep_delta = 1
var/list/subsystems_to_check
//the actual loop.
+
while (1)
tickdrift = max(0, MC_AVERAGE_FAST(tickdrift, (((REALTIMEOFDAY - init_timeofday) - (world.time - init_time)) / world.tick_lag)))
+ var/starting_tick_usage = TICK_USAGE
if (processing <= 0)
current_ticklimit = TICK_LIMIT_RUNNING
sleep(10)
continue
- //if there are mutiple sleeping procs running before us hogging the cpu, we have to run later
- // because sleeps are processed in the order received, so longer sleeps are more likely to run first
- if (world.tick_usage > TICK_LIMIT_MC)
- sleep_delta += 2
+ //Anti-tick-contention heuristics:
+ //if there are mutiple sleeping procs running before us hogging the cpu, we have to run later.
+ // (because sleeps are processed in the order received, longer sleeps are more likely to run first)
+ if (starting_tick_usage > TICK_LIMIT_MC) //if there isn't enough time to bother doing anything this tick, sleep a bit.
+ sleep_delta *= 2
current_ticklimit = TICK_LIMIT_RUNNING * 0.5
- sleep(world.tick_lag * (processing + sleep_delta))
+ sleep(world.tick_lag * (processing * sleep_delta))
continue
- sleep_delta = MC_AVERAGE_FAST(sleep_delta, 0)
- if (last_run + (world.tick_lag * processing) > world.time)
- sleep_delta += 1
- if (world.tick_usage > (TICK_LIMIT_MC*0.5))
+ //Byond resumed us late. assume it might have to do the same next tick
+ if (last_run + CEILING(world.tick_lag * (processing * sleep_delta), world.tick_lag) < world.time)
sleep_delta += 1
+ sleep_delta = MC_AVERAGE_FAST(sleep_delta, 1) //decay sleep_delta
+
+ if (starting_tick_usage > (TICK_LIMIT_MC*0.75)) //we ran 3/4 of the way into the tick
+ sleep_delta += 1
+
+ //debug
if (make_runtime)
var/datum/controller/subsystem/SS
SS.can_fire = 0
+
if (!Failsafe || (Failsafe.processing_interval > 0 && (Failsafe.lasttick+(Failsafe.processing_interval*5)) < world.time))
new/datum/controller/failsafe() // (re)Start the failsafe.
+
+ //now do the actual stuff
if (!queue_head || !(iteration % 3))
var/checking_runlevel = current_runlevel
if(cached_runlevel != checking_runlevel)
@@ -307,6 +324,7 @@ var/datum/controller/master/Master = new()
subsystems_to_check = current_runlevel_subsystems
else
subsystems_to_check = tickersubsystems
+
if (CheckQueue(subsystems_to_check) <= 0)
if (!SoftReset(tickersubsystems, runlevel_sorted_subsystems))
log_world("MC: SoftReset() failed, crashing")
@@ -337,8 +355,10 @@ var/datum/controller/master/Master = new()
iteration++
last_run = world.time
src.sleep_delta = MC_AVERAGE_FAST(src.sleep_delta, sleep_delta)
- current_ticklimit = TICK_LIMIT_RUNNING - (TICK_LIMIT_RUNNING * 0.25) //reserve the tail 1/4 of the next tick for the mc.
- sleep(world.tick_lag * (processing + sleep_delta))
+ current_ticklimit = TICK_LIMIT_RUNNING
+ if (processing * sleep_delta <= world.tick_lag)
+ current_ticklimit -= (TICK_LIMIT_RUNNING * 0.25) //reserve the tail 1/4 of the next tick for the mc if we plan on running next tick
+ sleep(world.tick_lag * (processing * sleep_delta))
@@ -389,13 +409,13 @@ var/datum/controller/master/Master = new()
//keep running while we have stuff to run and we haven't gone over a tick
// this is so subsystems paused eariler can use tick time that later subsystems never used
- while (ran && queue_head && world.tick_usage < TICK_LIMIT_MC)
+ while (ran && queue_head && TICK_USAGE < TICK_LIMIT_MC)
ran = FALSE
bg_calc = FALSE
current_tick_budget = queue_priority_count
queue_node = queue_head
while (queue_node)
- if (ran && world.tick_usage > TICK_LIMIT_RUNNING)
+ if (ran && TICK_USAGE > TICK_LIMIT_RUNNING)
break
queue_node_flags = queue_node.flags
@@ -407,7 +427,7 @@ var/datum/controller/master/Master = new()
//(unless we haven't even ran anything this tick, since its unlikely they will ever be able run
// in those cases, so we just let them run)
if (queue_node_flags & SS_NO_TICK_CHECK)
- if (queue_node.tick_usage > TICK_LIMIT_RUNNING - world.tick_usage && ran_non_ticker)
+ if (queue_node.tick_usage > TICK_LIMIT_RUNNING - TICK_USAGE && ran_non_ticker)
queue_node.queued_priority += queue_priority_count * 0.10
queue_priority_count -= queue_node_priority
queue_priority_count += queue_node.queued_priority
@@ -419,19 +439,19 @@ var/datum/controller/master/Master = new()
current_tick_budget = queue_priority_count_bg
bg_calc = TRUE
- tick_remaining = TICK_LIMIT_RUNNING - world.tick_usage
+ tick_remaining = TICK_LIMIT_RUNNING - TICK_USAGE
if (current_tick_budget > 0 && queue_node_priority > 0)
tick_precentage = tick_remaining / (current_tick_budget / queue_node_priority)
else
tick_precentage = tick_remaining
- current_ticklimit = world.tick_usage + tick_precentage
+ current_ticklimit = TICK_USAGE + tick_precentage
if (!(queue_node_flags & SS_TICKER))
ran_non_ticker = TRUE
ran = TRUE
- tick_usage = world.tick_usage
+ tick_usage = TICK_USAGE
queue_node_paused = (queue_node.state == SS_PAUSED || queue_node.state == SS_PAUSING)
last_type_processed = queue_node
@@ -441,7 +461,7 @@ var/datum/controller/master/Master = new()
if (state == SS_RUNNING)
state = SS_IDLE
current_tick_budget -= queue_node_priority
- tick_usage = world.tick_usage - tick_usage
+ tick_usage = TICK_USAGE - tick_usage
if (tick_usage < 0)
tick_usage = 0
diff --git a/code/controllers/subsystem.dm b/code/controllers/subsystem.dm
index 7dff609c76..bd9a2aeafb 100644
--- a/code/controllers/subsystem.dm
+++ b/code/controllers/subsystem.dm
@@ -28,11 +28,10 @@
var/datum/controller/subsystem/queue_next
var/datum/controller/subsystem/queue_prev
- var/static/failure_strikes = 0 //How many times we suspect this subsystem has crashed the MC, 3 strikes and you're out!
+ var/static/list/failure_strikes //How many times we suspect a subsystem type has crashed the MC, 3 strikes and you're out!
//Do not override
-/datum/controller/subsystem/New()
- return
+///datum/controller/subsystem/New()
// Used to initialize the subsystem BEFORE the map has loaded
// Called AFTER Recover if that is called
@@ -66,7 +65,7 @@
can_fire = 0
flags |= SS_NO_FIRE
Master.subsystems -= src
-
+ return ..()
//Queue it to run.
// (we loop thru a linked list until we get to the end or find the right point)
diff --git a/code/controllers/subsystems/garbage.dm b/code/controllers/subsystems/garbage.dm
index d6db860d5d..9deed740b6 100644
--- a/code/controllers/subsystems/garbage.dm
+++ b/code/controllers/subsystems/garbage.dm
@@ -4,11 +4,12 @@
SUBSYSTEM_DEF(garbage)
name = "Garbage"
priority = 15
- wait = 5
+ wait = 2 SECONDS
flags = SS_POST_FIRE_TIMING|SS_BACKGROUND|SS_NO_INIT
runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY
- var/collection_timeout = 3000// deciseconds to wait to let running procs finish before we just say fuck it and force del() the object
+ var/list/collection_timeout = list(0, 2 MINUTES, 10 SECONDS) // deciseconds to wait before moving something up in the queue to the next level
+
var/delslasttick = 0 // number of del()'s we've done this tick
var/gcedlasttick = 0 // number of things that gc'ed last tick
var/totaldels = 0
@@ -17,27 +18,32 @@ SUBSYSTEM_DEF(garbage)
var/highest_del_time = 0
var/highest_del_tickusage = 0
- var/list/queue = list() // list of refID's of things that should be garbage collected
- // refID's are associated with the time at which they time out and need to be manually del()
- // we do this so we aren't constantly locating them and preventing them from being gc'd
+ var/list/pass_counts
+ var/list/fail_counts
- var/list/tobequeued = list() //We store the references of things to be added to the queue seperately so we can spread out GC overhead over a few ticks
+ var/list/items = list() // Holds our qdel_item statistics datums
- var/list/didntgc = list() // list of all types that have failed to GC associated with the number of times that's happened.
- // the types are stored as strings
- var/list/sleptDestroy = list() //Same as above but these are paths that slept during their Destroy call
+ // List of Queues
+ // Each queue is a list of refID's of things that should be garbage collected
+ // refID's are associated with the time at which they time out and need to be manually del()
+ // we do this so we aren't constantly locating them and preventing them from being gc'd
+ var/list/queues
- var/list/noqdelhint = list()// list of all types that do not return a QDEL_HINT
- // all types that did not respect qdel(A, force=TRUE) and returned one
- // of the immortality qdel hints
- var/list/noforcerespect = list()
-#ifdef TESTING
- var/list/qdel_list = list() // list of all types that have been qdel()eted
-#endif
+/datum/controller/subsystem/garbage/PreInit()
+ queues = new(GC_QUEUE_COUNT)
+ pass_counts = new(GC_QUEUE_COUNT)
+ fail_counts = new(GC_QUEUE_COUNT)
+ for(var/i in 1 to GC_QUEUE_COUNT)
+ queues[i] = list()
+ pass_counts[i] = 0
+ fail_counts[i] = 0
/datum/controller/subsystem/garbage/stat_entry(msg)
- msg += "Q:[queue.len]|D:[delslasttick]|G:[gcedlasttick]|"
+ var/list/counts = list()
+ for (var/list/L in queues)
+ counts += length(L)
+ msg += "Q:[counts.Join(",")]|D:[delslasttick]|G:[gcedlasttick]|"
msg += "GR:"
if (!(delslasttick+gcedlasttick))
msg += "n/a|"
@@ -49,116 +55,179 @@ SUBSYSTEM_DEF(garbage)
msg += "n/a|"
else
msg += "TGR:[round((totalgcs/(totaldels+totalgcs))*100, 0.01)]%"
+ msg += " P:[pass_counts.Join(",")]"
+ msg += "|F:[fail_counts.Join(",")]"
..(msg)
/datum/controller/subsystem/garbage/Shutdown()
- //Adds the del() log to world.log in a format condensable by the runtime condenser found in tools
- if(didntgc.len || sleptDestroy.len)
- var/list/dellog = list()
- for(var/path in didntgc)
- dellog += "Path : [path] \n"
- dellog += "Failures : [didntgc[path]] \n"
- if(path in sleptDestroy)
- dellog += "Sleeps : [sleptDestroy[path]] \n"
- sleptDestroy -= path
- for(var/path in sleptDestroy)
- dellog += "Path : [path] \n"
- dellog += "Sleeps : [sleptDestroy[path]] \n"
+ //Adds the del() log to the qdel log file
+ var/list/dellog = list()
+
+ //sort by how long it's wasted hard deleting
+ sortTim(items, cmp=/proc/cmp_qdel_item_time, associative = TRUE)
+ for(var/path in items)
+ var/datum/qdel_item/I = items[path]
+ dellog += "Path: [path]"
+ if (I.failures)
+ dellog += "\tFailures: [I.failures]"
+ dellog += "\tqdel() Count: [I.qdels]"
+ dellog += "\tDestroy() Cost: [I.destroy_time]ms"
+ if (I.hard_deletes)
+ dellog += "\tTotal Hard Deletes [I.hard_deletes]"
+ dellog += "\tTime Spent Hard Deleting: [I.hard_delete_time]ms"
+ if (I.slept_destroy)
+ dellog += "\tSleeps: [I.slept_destroy]"
+ if (I.no_respect_force)
+ dellog += "\tIgnored force: [I.no_respect_force] times"
+ if (I.no_hint)
+ dellog += "\tNo hint: [I.no_hint] times"
log_misc(dellog.Join())
/datum/controller/subsystem/garbage/fire()
- HandleToBeQueued()
- if(state == SS_RUNNING)
- HandleQueue()
-
+ //the fact that this resets its processing each fire (rather then resume where it left off) is intentional.
+ var/queue = GC_QUEUE_PREQUEUE
+
+ while (state == SS_RUNNING)
+ switch (queue)
+ if (GC_QUEUE_PREQUEUE)
+ HandlePreQueue()
+ queue = GC_QUEUE_PREQUEUE+1
+ if (GC_QUEUE_CHECK)
+ HandleQueue(GC_QUEUE_CHECK)
+ queue = GC_QUEUE_CHECK+1
+ if (GC_QUEUE_HARDDELETE)
+ HandleQueue(GC_QUEUE_HARDDELETE)
+ break
+
if (state == SS_PAUSED) //make us wait again before the next run.
- state = SS_RUNNING
+ state = SS_RUNNING
//If you see this proc high on the profile, what you are really seeing is the garbage collection/soft delete overhead in byond.
//Don't attempt to optimize, not worth the effort.
-/datum/controller/subsystem/garbage/proc/HandleToBeQueued()
- var/list/tobequeued = src.tobequeued
- var/starttime = world.time
- var/starttimeofday = world.timeofday
- while(tobequeued.len && starttime == world.time && starttimeofday == world.timeofday)
- if (MC_TICK_CHECK)
- break
- var/ref = tobequeued[1]
- Queue(ref)
- tobequeued.Cut(1, 2)
+/datum/controller/subsystem/garbage/proc/HandlePreQueue()
+ var/list/tobequeued = queues[GC_QUEUE_PREQUEUE]
+ var/static/count = 0
+ if (count)
+ var/c = count
+ count = 0 //so if we runtime on the Cut, we don't try again.
+ tobequeued.Cut(1,c+1)
-/datum/controller/subsystem/garbage/proc/HandleQueue()
- delslasttick = 0
- gcedlasttick = 0
- var/time_to_kill = world.time - collection_timeout // Anything qdel() but not GC'd BEFORE this time needs to be manually del()
- var/list/queue = src.queue
- var/starttime = world.time
- var/starttimeofday = world.timeofday
- while(queue.len && starttime == world.time && starttimeofday == world.timeofday)
+ for (var/ref in tobequeued)
+ count++
+ Queue(ref, GC_QUEUE_PREQUEUE+1)
if (MC_TICK_CHECK)
break
- var/refID = queue[1]
+ if (count)
+ tobequeued.Cut(1,count+1)
+ count = 0
+
+/datum/controller/subsystem/garbage/proc/HandleQueue(level = GC_QUEUE_CHECK)
+ if (level == GC_QUEUE_CHECK)
+ delslasttick = 0
+ gcedlasttick = 0
+ var/cut_off_time = world.time - collection_timeout[level] //ignore entries newer then this
+ var/list/queue = queues[level]
+ var/static/lastlevel
+ var/static/count = 0
+ if (count) //runtime last run before we could do this.
+ var/c = count
+ count = 0 //so if we runtime on the Cut, we don't try again.
+ var/list/lastqueue = queues[lastlevel]
+ lastqueue.Cut(1, c+1)
+
+ lastlevel = level
+
+ for (var/refID in queue)
if (!refID)
- queue.Cut(1, 2)
+ count++
+ if (MC_TICK_CHECK)
+ break
continue
var/GCd_at_time = queue[refID]
- if(GCd_at_time > time_to_kill)
+ if(GCd_at_time > cut_off_time)
break // Everything else is newer, skip them
- queue.Cut(1, 2)
- var/datum/A
- A = locate(refID)
- if (A && A.gc_destroyed == GCd_at_time) // So if something else coincidently gets the same ref, it's not deleted by mistake
- #ifdef GC_FAILURE_HARD_LOOKUP
- A.find_references()
- #endif
+ count++
- // Something's still referring to the qdel'd object. Kill it.
- var/type = A.type
- testing("GC: -- \ref[A] | [type] was unable to be GC'd and was deleted --")
- didntgc["[type]"]++
-
- HardDelete(A)
+ var/datum/D
+ D = locate(refID)
- ++delslasttick
- ++totaldels
- else
+ if (!D || D.gc_destroyed != GCd_at_time) // So if something else coincidently gets the same ref, it's not deleted by mistake
++gcedlasttick
++totalgcs
+ pass_counts[level]++
+ if (MC_TICK_CHECK)
+ break
+ continue
-/datum/controller/subsystem/garbage/proc/QueueForQueuing(datum/A)
- if (istype(A) && A.gc_destroyed == GC_CURRENTLY_BEING_QDELETED)
- tobequeued += A
- A.gc_destroyed = GC_QUEUED_FOR_QUEUING
+ // Something's still referring to the qdel'd object.
+ fail_counts[level]++
+ switch (level)
+ if (GC_QUEUE_CHECK)
+ #ifdef GC_FAILURE_HARD_LOOKUP
+ D.find_references()
+ #endif
+ var/type = D.type
+ var/datum/qdel_item/I = items[type]
+ testing("GC: -- \ref[src] | [type] was unable to be GC'd --")
+ I.failures++
+ if (GC_QUEUE_HARDDELETE)
+ HardDelete(D)
+ if (MC_TICK_CHECK)
+ break
+ continue
-/datum/controller/subsystem/garbage/proc/Queue(datum/A)
- if (isnull(A) || (!isnull(A.gc_destroyed) && A.gc_destroyed >= 0))
+ Queue(D, level+1)
+
+ if (MC_TICK_CHECK)
+ break
+ if (count)
+ queue.Cut(1,count+1)
+ count = 0
+
+/datum/controller/subsystem/garbage/proc/PreQueue(datum/D)
+ if (D.gc_destroyed == GC_CURRENTLY_BEING_QDELETED)
+ queues[GC_QUEUE_PREQUEUE] += D
+ D.gc_destroyed = GC_QUEUED_FOR_QUEUING
+
+/datum/controller/subsystem/garbage/proc/Queue(datum/D, level = GC_QUEUE_CHECK)
+ if (isnull(D))
return
- if (A.gc_destroyed == GC_QUEUED_FOR_HARD_DEL)
- HardDelete(A)
+ if (D.gc_destroyed == GC_QUEUED_FOR_HARD_DEL)
+ level = GC_QUEUE_HARDDELETE
+ if (level > GC_QUEUE_COUNT)
+ HardDelete(D)
return
var/gctime = world.time
- var/refid = "\ref[A]"
-
- A.gc_destroyed = gctime
+ var/refid = "\ref[D]"
+ D.gc_destroyed = gctime
+ var/list/queue = queues[level]
if (queue[refid])
queue -= refid // Removing any previous references that were GC'd so that the current object will be at the end of the list.
queue[refid] = gctime
-//this is purely to seperate things profile wise.
-/datum/controller/subsystem/garbage/proc/HardDelete(datum/A)
+//this is mainly to separate things profile wise.
+/datum/controller/subsystem/garbage/proc/HardDelete(datum/D)
var/time = world.timeofday
- var/tick = world.tick_usage
+ var/tick = TICK_USAGE
var/ticktime = world.time
-
- var/type = A.type
- var/refID = "\ref[A]"
-
- del(A)
-
- tick = (world.tick_usage-tick+((world.time-ticktime)/world.tick_lag*100))
+ ++delslasttick
+ ++totaldels
+ var/type = D.type
+ var/refID = "\ref[D]"
+
+ del(D)
+
+ tick = (TICK_USAGE-tick+((world.time-ticktime)/world.tick_lag*100))
+
+ var/datum/qdel_item/I = items[type]
+
+ I.hard_deletes++
+ I.hard_delete_time += TICK_DELTA_TO_MS(tick)
+
+
if (tick > highest_del_tickusage)
highest_del_tickusage = tick
time = world.timeofday - time
@@ -169,18 +238,33 @@ SUBSYSTEM_DEF(garbage)
if (time > 10)
log_game("Error: [type]([refID]) took longer than 1 second to delete (took [time/10] seconds to delete)")
message_admins("Error: [type]([refID]) took longer than 1 second to delete (took [time/10] seconds to delete).")
- postpone(time/5)
-
-/datum/controller/subsystem/garbage/proc/HardQueue(datum/A)
- if (istype(A) && A.gc_destroyed == GC_CURRENTLY_BEING_QDELETED)
- tobequeued += A
- A.gc_destroyed = GC_QUEUED_FOR_HARD_DEL
+ postpone(time)
+
+/datum/controller/subsystem/garbage/proc/HardQueue(datum/D)
+ if (D.gc_destroyed == GC_CURRENTLY_BEING_QDELETED)
+ queues[GC_QUEUE_PREQUEUE] += D
+ D.gc_destroyed = GC_QUEUED_FOR_HARD_DEL
/datum/controller/subsystem/garbage/Recover()
- if (istype(SSgarbage.queue))
- queue |= SSgarbage.queue
- if (istype(SSgarbage.tobequeued))
- tobequeued |= SSgarbage.tobequeued
+ if (istype(SSgarbage.queues))
+ for (var/i in 1 to SSgarbage.queues.len)
+ queues[i] |= SSgarbage.queues[i]
+
+
+/datum/qdel_item
+ var/name = ""
+ var/qdels = 0 //Total number of times it's passed thru qdel.
+ var/destroy_time = 0 //Total amount of milliseconds spent processing this type's Destroy()
+ var/failures = 0 //Times it was queued for soft deletion but failed to soft delete.
+ var/hard_deletes = 0 //Different from failures because it also includes QDEL_HINT_HARDDEL deletions
+ var/hard_delete_time = 0//Total amount of milliseconds spent hard deleting this type.
+ var/no_respect_force = 0//Number of times it's not respected force=TRUE
+ var/no_hint = 0 //Number of times it's not even bother to give a qdel hint
+ var/slept_destroy = 0 //Number of times it's slept in its destroy
+
+/datum/qdel_item/New(mytype)
+ name = "[mytype]"
+
// Should be treated as a replacement for the 'del' keyword.
// Datums passed to this will be given a chance to clean up references to allow the GC to collect them.
@@ -188,20 +272,26 @@ SUBSYSTEM_DEF(garbage)
if(!istype(D))
del(D)
return
-#ifdef TESTING
- SSgarbage.qdel_list += D.type
-#endif
+ var/datum/qdel_item/I = SSgarbage.items[D.type]
+ if (!I)
+ I = SSgarbage.items[D.type] = new /datum/qdel_item(D.type)
+ I.qdels++
+
+
if(isnull(D.gc_destroyed))
D.gc_destroyed = GC_CURRENTLY_BEING_QDELETED
var/start_time = world.time
+ var/start_tick = world.tick_usage
var/hint = D.Destroy(force) // Let our friend know they're about to get fucked up.
if(world.time != start_time)
- SSgarbage.sleptDestroy[D.type]++
+ I.slept_destroy++
+ else
+ I.destroy_time += TICK_USAGE_TO_MS(start_tick)
if(!D)
return
switch(hint)
if (QDEL_HINT_QUEUE) //qdel should queue the object for deletion.
- SSgarbage.QueueForQueuing(D)
+ SSgarbage.PreQueue(D)
if (QDEL_HINT_IWILLGC)
D.gc_destroyed = world.time
return
@@ -211,44 +301,37 @@ SUBSYSTEM_DEF(garbage)
return
// Returning LETMELIVE after being told to force destroy
// indicates the objects Destroy() does not respect force
- if(!SSgarbage.noforcerespect[D.type])
- SSgarbage.noforcerespect[D.type] = D.type
+ #ifdef TESTING
+ if(!I.no_respect_force)
crash_with("[D.type] has been force deleted, but is \
returning an immortal QDEL_HINT, indicating it does \
not respect the force flag for qdel(). It has been \
placed in the queue, further instances of this type \
will also be queued.")
- SSgarbage.QueueForQueuing(D)
+ #endif
+ I.no_respect_force++
+
+ SSgarbage.PreQueue(D)
if (QDEL_HINT_HARDDEL) //qdel should assume this object won't gc, and queue a hard delete using a hard reference to save time from the locate()
SSgarbage.HardQueue(D)
if (QDEL_HINT_HARDDEL_NOW) //qdel should assume this object won't gc, and hard del it post haste.
SSgarbage.HardDelete(D)
if (QDEL_HINT_FINDREFERENCE)//qdel will, if TESTING is enabled, display all references to this object, then queue the object for deletion.
- SSgarbage.QueueForQueuing(D)
+ SSgarbage.PreQueue(D)
#ifdef TESTING
D.find_references()
#endif
else
- if(!SSgarbage.noqdelhint[D.type])
- SSgarbage.noqdelhint[D.type] = D.type
+ #ifdef TESTING
+ if(!I.no_hint)
crash_with("[D.type] is not returning a qdel hint. It is being placed in the queue. Further instances of this type will also be queued.")
- SSgarbage.QueueForQueuing(D)
+ #endif
+ I.no_hint++
+ SSgarbage.PreQueue(D)
else if(D.gc_destroyed == GC_CURRENTLY_BEING_QDELETED)
CRASH("[D.type] destroy proc was called multiple times, likely due to a qdel loop in the Destroy logic")
-// Default implementation of clean-up code.
-// This should be overridden to remove all references pointing to the object being destroyed.
-// Return the appropriate QDEL_HINT; in most cases this is QDEL_HINT_QUEUE.
-/datum/proc/Destroy(force=FALSE)
- tag = null
- nanomanager.close_uis(src)
- return QDEL_HINT_QUEUE
-
-/datum/var/gc_destroyed //Time when this object was destroyed.
-
#ifdef TESTING
-/datum/var/running_find_references
-/datum/var/last_find_references = 0
/datum/verb/find_refs()
set category = "Debug"
@@ -283,9 +366,17 @@ SUBSYSTEM_DEF(garbage)
testing("Beginning search for references to a [type].")
last_find_references = world.time
- find_references_in_globals()
- for(var/datum/thing in world)
- DoSearchVar(thing, "WorldRef: [thing]")
+
+ // DoSearchVar(GLOB) // If we ever implement GLOB this would be the place.
+ for(var/datum/thing in world) //atoms (don't beleive it's lies)
+ DoSearchVar(thing, "World -> [thing]")
+
+ for (var/datum/thing) //datums
+ DoSearchVar(thing, "World -> [thing]")
+
+ for (var/client/thing) //clients
+ DoSearchVar(thing, "World -> [thing]")
+
testing("Completed search for references to a [type].")
if(usr && usr.client)
usr.client.running_find_references = null
@@ -295,16 +386,6 @@ SUBSYSTEM_DEF(garbage)
SSgarbage.can_fire = 1
SSgarbage.next_fire = world.time + world.tick_lag
-/client/verb/purge_all_destroyed_objects()
- set category = "Debug"
- if(SSgarbage)
- while(SSgarbage.queue.len)
- var/datum/o = locate(SSgarbage.queue[1])
- if(istype(o) && o.gc_destroyed)
- del(o)
- SSgarbage.totaldels++
- SSgarbage.queue.Cut(1, 2)
-
/datum/verb/qdel_then_find_references()
set category = "Debug"
set name = "qdel() then Find References"
@@ -315,61 +396,47 @@ SUBSYSTEM_DEF(garbage)
if(!running_find_references)
find_references(TRUE)
-/client/verb/show_qdeleted()
- set category = "Debug"
- set name = "Show qdel() Log"
- set desc = "Render the qdel() log and display it"
+/datum/proc/DoSearchVar(X, Xname, recursive_limit = 64)
+ if(usr && usr.client && !usr.client.running_find_references)
+ return
+ if (!recursive_limit)
+ return
- var/dat = "List of things that have been qdel()eted this round
"
-
- var/tmplist = list()
- for(var/elem in SSgarbage.qdel_list)
- if(!(elem in tmplist))
- tmplist[elem] = 0
- tmplist[elem]++
-
- for(var/path in tmplist)
- dat += "[path] - [tmplist[path]] times
"
-
- usr << browse(dat, "window=qdeletedlog")
-
-/datum/proc/DoSearchVar(X, Xname)
- if(usr && usr.client && !usr.client.running_find_references) return
if(istype(X, /datum))
var/datum/D = X
if(D.last_find_references == last_find_references)
return
+
D.last_find_references = last_find_references
- for(var/V in D.vars)
- for(var/varname in D.vars)
- var/variable = D.vars[varname]
- if(variable == src)
- testing("Found [src.type] \ref[src] in [D.type]'s [varname] var. [Xname]")
- else if(islist(variable))
- if(src in variable)
- testing("Found [src.type] \ref[src] in [D.type]'s [varname] list var. Global: [Xname]")
-#ifdef GC_FAILURE_HARD_LOOKUP
- for(var/I in variable)
- DoSearchVar(I, TRUE)
- else
- DoSearchVar(variable, "[Xname]: [varname]")
-#endif
+ var/list/L = D.vars
+
+ for(var/varname in L)
+ if (varname == "vars")
+ continue
+ var/variable = L[varname]
+
+ if(variable == src)
+ testing("Found [src.type] \ref[src] in [D.type]'s [varname] var. [Xname]")
+
+ else if(islist(variable))
+ DoSearchVar(variable, "[Xname] -> list", recursive_limit-1)
+
else if(islist(X))
- if(src in X)
- testing("Found [src.type] \ref[src] in list [Xname].")
-#ifdef GC_FAILURE_HARD_LOOKUP
+ var/normal = IS_NORMAL_LIST(X)
for(var/I in X)
- DoSearchVar(I, Xname + ": list")
-#else
+ if (I == src)
+ testing("Found [src.type] \ref[src] in list [Xname].")
+
+ else if (I && !isnum(I) && normal && X[I] == src)
+ testing("Found [src.type] \ref[src] in list [Xname]\[[I]\]")
+
+ else if (islist(I))
+ DoSearchVar(I, "[Xname] -> list", recursive_limit-1)
+
+#ifndef FIND_REF_NO_CHECK_TICK
CHECK_TICK
#endif
-//if find_references isn't working for some datum
-//update this list using tools/GenerateGlobalVarAccess
-/datum/proc/find_references_in_globals()
- // TODO - Impement Global Variable Access
- // for(var/global_var in _all_globals)
- // DoSearchVar(readglobal(global_var), "Global: [global_var]")
#endif
diff --git a/code/controllers/subsystems/lighting.dm b/code/controllers/subsystems/lighting.dm
index dd59d0629c..8817d83ad5 100644
--- a/code/controllers/subsystems/lighting.dm
+++ b/code/controllers/subsystems/lighting.dm
@@ -50,27 +50,27 @@ SUBSYSTEM_DEF(lighting)
stage = SSLIGHTING_STAGE_LIGHTS // Start with Step 1 of course
if(stage == SSLIGHTING_STAGE_LIGHTS)
- timer = world.tick_usage
+ timer = TICK_USAGE
internal_process_lights(resumed)
- cost_lights = MC_AVERAGE(cost_lights, TICK_DELTA_TO_MS(world.tick_usage - timer))
+ cost_lights = MC_AVERAGE(cost_lights, TICK_DELTA_TO_MS(TICK_USAGE - timer))
if(state != SS_RUNNING)
return
resumed = 0
stage = SSLIGHTING_STAGE_CORNERS
if(stage == SSLIGHTING_STAGE_CORNERS)
- timer = world.tick_usage
+ timer = TICK_USAGE
internal_process_corners(resumed)
- cost_corners = MC_AVERAGE(cost_corners, TICK_DELTA_TO_MS(world.tick_usage - timer))
+ cost_corners = MC_AVERAGE(cost_corners, TICK_DELTA_TO_MS(TICK_USAGE - timer))
if(state != SS_RUNNING)
return
resumed = 0
stage = SSLIGHTING_STAGE_OVERLAYS
if(stage == SSLIGHTING_STAGE_OVERLAYS)
- timer = world.tick_usage
+ timer = TICK_USAGE
internal_process_overlays(resumed)
- cost_overlays = MC_AVERAGE(cost_overlays, TICK_DELTA_TO_MS(world.tick_usage - timer))
+ cost_overlays = MC_AVERAGE(cost_overlays, TICK_DELTA_TO_MS(TICK_USAGE - timer))
if(state != SS_RUNNING)
return
resumed = 0
@@ -163,4 +163,4 @@ SUBSYSTEM_DEF(lighting)
#undef SSLIGHTING_STAGE_LIGHTS
#undef SSLIGHTING_STAGE_CORNERS
#undef SSLIGHTING_STAGE_OVERLAYS
-#undef SSLIGHTING_STAGE_STATS
+#undef SSLIGHTING_STAGE_STATS
\ No newline at end of file
diff --git a/code/controllers/subsystems/machines.dm b/code/controllers/subsystems/machines.dm
new file mode 100644
index 0000000000..7738544024
--- /dev/null
+++ b/code/controllers/subsystems/machines.dm
@@ -0,0 +1,160 @@
+#define SSMACHINES_PIPENETS 1
+#define SSMACHINES_MACHINERY 2
+#define SSMACHINES_POWERNETS 3
+#define SSMACHINES_POWER_OBJECTS 4
+
+//
+// SSmachines subsystem - Processing machines, pipenets, and powernets!
+//
+// Implementation Plan:
+// PHASE 1 - Add subsystem using the existing global list vars
+// PHASE 2 - Move the global list vars into the subsystem.
+
+SUBSYSTEM_DEF(machines)
+ name = "Machines"
+ priority = 100
+ init_order = INIT_ORDER_MACHINES
+ flags = SS_KEEP_TIMING
+ runlevels = RUNLEVEL_GAME|RUNLEVEL_POSTGAME
+
+ var/current_step = SSMACHINES_PIPENETS
+
+ var/cost_pipenets = 0
+ var/cost_machinery = 0
+ var/cost_powernets = 0
+ var/cost_power_objects = 0
+
+ // TODO - PHASE 2 - Switch these from globals to instance vars
+ // var/list/pipenets = list()
+ // var/list/machinery = list()
+ // var/list/powernets = list()
+ // var/list/power_objects = list()
+
+ var/list/current_run = list()
+
+/datum/controller/subsystem/machines/Initialize(timeofday)
+ SSmachines.makepowernets()
+ // TODO - Move world-creation time setup of atmos machinery and pipenets to here
+ fire()
+ ..()
+
+/datum/controller/subsystem/machines/fire(resumed = 0)
+ var/timer = TICK_USAGE
+
+ INTERNAL_PROCESS_STEP(SSMACHINES_PIPENETS,TRUE,process_pipenets,cost_pipenets,SSMACHINES_MACHINERY)
+ INTERNAL_PROCESS_STEP(SSMACHINES_MACHINERY,FALSE,process_machinery,cost_machinery,SSMACHINES_POWERNETS)
+ INTERNAL_PROCESS_STEP(SSMACHINES_POWERNETS,FALSE,process_powernets,cost_powernets,SSMACHINES_POWER_OBJECTS)
+ INTERNAL_PROCESS_STEP(SSMACHINES_POWER_OBJECTS,FALSE,process_power_objects,cost_power_objects,SSMACHINES_PIPENETS)
+
+// rebuild all power networks from scratch - only called at world creation or by the admin verb
+// The above is a lie. Turbolifts also call this proc.
+/datum/controller/subsystem/machines/proc/makepowernets()
+ // TODO - check to not run while in the middle of a tick!
+ for(var/datum/powernet/PN in powernets)
+ qdel(PN)
+ powernets.Cut()
+
+ for(var/obj/structure/cable/PC in cable_list)
+ if(!PC.powernet)
+ var/datum/powernet/NewPN = new()
+ NewPN.add_cable(PC)
+ propagate_network(PC,PC.powernet)
+
+/datum/controller/subsystem/machines/stat_entry()
+ var/msg = list()
+ msg += "C:{"
+ msg += "PI:[round(cost_pipenets,1)]|"
+ msg += "MC:[round(cost_machinery,1)]|"
+ msg += "PN:[round(cost_powernets,1)]|"
+ msg += "PO:[round(cost_power_objects,1)]"
+ msg += "} "
+ msg += "PI:[global.pipe_networks.len]|"
+ msg += "MC:[global.machines.len]|"
+ msg += "PN:[global.powernets.len]|"
+ msg += "PO:[global.processing_power_items.len]|"
+ msg += "MC/MS:[round((cost ? global.machines.len/cost_machinery : 0),0.1)]"
+ ..(jointext(msg, null))
+
+/datum/controller/subsystem/machines/proc/process_pipenets(resumed = 0)
+ if (!resumed)
+ src.current_run = global.pipe_networks.Copy()
+ //cache for sanic speed (lists are references anyways)
+ var/list/current_run = src.current_run
+ while(current_run.len)
+ var/datum/pipe_network/PN = current_run[current_run.len]
+ current_run.len--
+ if(istype(PN) && !QDELETED(PN))
+ PN.process(wait)
+ else
+ global.pipe_networks.Remove(PN)
+ if(!QDELETED(PN))
+ PN.is_processing = null
+ if(MC_TICK_CHECK)
+ return
+
+/datum/controller/subsystem/machines/proc/process_machinery(resumed = 0)
+ if (!resumed)
+ src.current_run = global.machines.Copy()
+
+ var/list/current_run = src.current_run
+ while(current_run.len)
+ var/obj/machinery/M = current_run[current_run.len]
+ current_run.len--
+ if(istype(M) && !QDELETED(M) && !(M.process(wait) == PROCESS_KILL))
+ if(M.use_power)
+ M.auto_use_power()
+ else
+ global.machines.Remove(M)
+ if(!QDELETED(M))
+ M.is_processing = null
+ if(MC_TICK_CHECK)
+ return
+
+/datum/controller/subsystem/machines/proc/process_powernets(resumed = 0)
+ if (!resumed)
+ src.current_run = global.powernets.Copy()
+
+ var/list/current_run = src.current_run
+ while(current_run.len)
+ var/datum/powernet/PN = current_run[current_run.len]
+ current_run.len--
+ if(istype(PN) && !QDELETED(PN))
+ PN.reset(wait)
+ else
+ global.powernets.Remove(PN)
+ if(!QDELETED(PN))
+ PN.is_processing = null
+ if(MC_TICK_CHECK)
+ return
+
+// Actually only processes power DRAIN objects.
+// Currently only used by powersinks. These items get priority processed before machinery
+/datum/controller/subsystem/machines/proc/process_power_objects(resumed = 0)
+ if (!resumed)
+ src.current_run = global.processing_power_items.Copy()
+
+ var/list/current_run = src.current_run
+ while(current_run.len)
+ var/obj/item/I = current_run[current_run.len]
+ current_run.len--
+ if(!I.pwr_drain(wait)) // 0 = Process Kill, remove from processing list.
+ global.processing_power_items.Remove(I)
+ I.is_processing = null
+ if(MC_TICK_CHECK)
+ return
+
+/datum/controller/subsystem/machines/Recover()
+ // TODO - PHASE 2
+ // if (istype(SSmachines.pipenets))
+ // pipenets = SSmachines.pipenets
+ // if (istype(SSmachines.machinery))
+ // machinery = SSmachines.machinery
+ // if (istype(SSmachines.powernets))
+ // powernets = SSmachines.powernets
+ // if (istype(SSmachines.power_objects))
+ // power_objects = SSmachines.power_objects
+
+#undef SSMACHINES_PIPENETS
+#undef SSMACHINES_MACHINERY
+#undef SSMACHINES_POWER
+#undef SSMACHINES_POWER_OBJECTS
diff --git a/code/datums/autolathe/arms.dm b/code/datums/autolathe/arms.dm
index b3450c5b3b..a315ede40f 100644
--- a/code/datums/autolathe/arms.dm
+++ b/code/datums/autolathe/arms.dm
@@ -178,21 +178,21 @@
/////// Shotgun
/datum/category_item/autolathe/arms/shotgun_clip_beanbag
- name = "4-round 12g shell clip (beanbag)"
+ name = "2-round 12g speedloader (beanbag)"
path =/obj/item/ammo_magazine/clip/c12g/beanbag
/datum/category_item/autolathe/arms/shotgun_clip_slug
- name = "4-round 12g shell clip (slug)"
+ name = "2-round 12g speedloader (slug)"
path =/obj/item/ammo_magazine/clip/c12g
hidden = 1
/datum/category_item/autolathe/arms/shotgun_clip_pellet
- name = "4-round 12g shell clip (buckshot)"
+ name = "2-round 12g speedloader (buckshot)"
path =/obj/item/ammo_magazine/clip/c12g/pellet
hidden = 1
/datum/category_item/autolathe/arms/shotgun_clip_beanbag
- name = "4-round 12g shell clip (beanbag)"
+ name = "2-round 12g speedloader (beanbag)"
path =/obj/item/ammo_magazine/clip/c12g/beanbag
/* Commented out until autolathe stuff is decided/fixed. Will probably remove these entirely. -Spades
diff --git a/code/datums/datum.dm b/code/datums/datum.dm
new file mode 100644
index 0000000000..a9fea93f9d
--- /dev/null
+++ b/code/datums/datum.dm
@@ -0,0 +1,23 @@
+//
+// datum defines!
+// Note: Adding vars to /datum adds a var to EVERYTHING! Don't go overboard.
+//
+
+/datum
+ var/gc_destroyed //Time when this object was destroyed.
+ var/weakref/weakref // Holder of weakref instance pointing to this datum
+ var/is_processing = FALSE // If this datum is in an MC processing list, this will be set to its name.
+
+#ifdef TESTING
+ var/tmp/running_find_references
+ var/tmp/last_find_references = 0
+#endif
+
+// Default implementation of clean-up code.
+// This should be overridden to remove all references pointing to the object being destroyed.
+// Return the appropriate QDEL_HINT; in most cases this is QDEL_HINT_QUEUE.
+/datum/proc/Destroy(force=FALSE)
+ weakref = null // Clear this reference to ensure it's kept for as brief duration as possible.
+ tag = null
+ nanomanager.close_uis(src)
+ return QDEL_HINT_QUEUE
diff --git a/code/datums/weakref.dm b/code/datums/weakref.dm
index 348d73b0b2..6c17c18bca 100644
--- a/code/datums/weakref.dm
+++ b/code/datums/weakref.dm
@@ -1,10 +1,3 @@
-/datum
- var/weakref/weakref
-
-/datum/Destroy()
- weakref = null // Clear this reference to ensure it's kept for as brief duration as possible.
- . = ..()
-
//obtain a weak reference to a datum
/proc/weakref(datum/D)
if(!istype(D))
diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm
index 1062232664..87b9d38d63 100644
--- a/code/game/gamemodes/meteor/meteors.dm
+++ b/code/game/gamemodes/meteor/meteors.dm
@@ -19,7 +19,7 @@
///////////////////////////////
/proc/pick_meteor_start(var/startSide = pick(cardinal))
- var/startLevel = pick(using_map.station_levels)
+ var/startLevel = pick(using_map.station_levels - using_map.sealed_levels)
var/pickedstart = spaceDebrisStartLoc(startSide, startLevel)
return list(startLevel, pickedstart)
diff --git a/code/game/gamemodes/technomancer/spells/flame_tongue.dm b/code/game/gamemodes/technomancer/spells/flame_tongue.dm
index 271240ad05..ffc12344e8 100644
--- a/code/game/gamemodes/technomancer/spells/flame_tongue.dm
+++ b/code/game/gamemodes/technomancer/spells/flame_tongue.dm
@@ -22,8 +22,7 @@
welder.setWelding(1)
/obj/item/weapon/spell/flame_tongue/Destroy()
- qdel(welder)
- welder = null
+ qdel_null(welder)
return ..()
/obj/item/weapon/weldingtool/spell
diff --git a/code/game/gamemodes/technomancer/spells/illusion.dm b/code/game/gamemodes/technomancer/spells/illusion.dm
index e2afb8d120..5eac627728 100644
--- a/code/game/gamemodes/technomancer/spells/illusion.dm
+++ b/code/game/gamemodes/technomancer/spells/illusion.dm
@@ -62,8 +62,8 @@
illusion.emote(what_to_emote)
/obj/item/weapon/spell/illusion/Destroy()
- if(illusion)
- qdel(illusion)
+ qdel_null(illusion)
+ copied = null
return ..()
// Makes a tiny overlay of the thing the player has copied, so they can easily tell what they currently have.
diff --git a/code/game/gamemodes/technomancer/spells/phase_shift.dm b/code/game/gamemodes/technomancer/spells/phase_shift.dm
index 5b06a7e704..336dbc4314 100644
--- a/code/game/gamemodes/technomancer/spells/phase_shift.dm
+++ b/code/game/gamemodes/technomancer/spells/phase_shift.dm
@@ -37,7 +37,7 @@
for(var/atom/movable/AM in contents) //Eject everything out.
AM.forceMove(get_turf(src))
processing_objects -= src
- ..()
+ return ..()
/obj/effect/phase_shift/process()
for(var/mob/living/L in contents)
diff --git a/code/game/gamemodes/technomancer/spells/radiance.dm b/code/game/gamemodes/technomancer/spells/radiance.dm
index 4d1fb551ee..fe7d83f713 100644
--- a/code/game/gamemodes/technomancer/spells/radiance.dm
+++ b/code/game/gamemodes/technomancer/spells/radiance.dm
@@ -25,7 +25,7 @@
/obj/item/weapon/spell/radiance/Destroy()
processing_objects -= src
log_and_message_admins("has stopped maintaining [src].")
- ..()
+ return ..()
/obj/item/weapon/spell/radiance/process()
var/turf/T = get_turf(src)
diff --git a/code/game/machinery/camera/presets.dm b/code/game/machinery/camera/presets.dm
index 351c1bd3b3..e210119445 100644
--- a/code/game/machinery/camera/presets.dm
+++ b/code/game/machinery/camera/presets.dm
@@ -203,12 +203,7 @@ var/global/list/engineering_networks = list(
/obj/machinery/camera/proc/upgradeMotion()
assembly.upgrades.Add(new /obj/item/device/assembly/prox_sensor(assembly))
setPowerUsage()
- if(!(src in machines))
- if(!machinery_sort_required && ticker)
- dd_insertObjectList(machines, src)
- else
- machines += src
- machinery_sort_required = 1
+ START_MACHINE_PROCESSING(src)
update_coverage()
/obj/machinery/camera/proc/setPowerUsage()
diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm
index ff32e65c07..9bed646bc5 100644
--- a/code/game/machinery/cloning.dm
+++ b/code/game/machinery/cloning.dm
@@ -173,7 +173,7 @@
/obj/machinery/clonepod/process()
var/visible_message = 0
- for(var/obj/item/weapon/reagent_containers/food/snacks/meat in range(1, src))
+ for(var/obj/item/weapon/reagent_containers/food/snacks/meat/meat in range(1, src))
qdel(meat)
biomass += 50
visible_message = 1 // Prevent chatspam when multiple meat are near
diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm
index f476c295e2..7e867af9a7 100644
--- a/code/game/machinery/machinery.dm
+++ b/code/game/machinery/machinery.dm
@@ -118,16 +118,12 @@ Class Procs:
..(l)
if(d)
set_dir(d)
- if(!machinery_sort_required && ticker)
- dd_insertObjectList(machines, src)
- else
- machines += src
- machinery_sort_required = 1
+ START_MACHINE_PROCESSING(src)
if(circuit)
circuit = new circuit(src)
/obj/machinery/Destroy()
- machines -= src
+ STOP_MACHINE_PROCESSING(src)
if(component_parts)
for(var/atom/A in component_parts)
if(A.loc == src) // If the components are inside the machine, delete them.
diff --git a/code/game/machinery/syndicatebeacon.dm b/code/game/machinery/syndicatebeacon.dm
index 442703a42e..cf2449f1d3 100644
--- a/code/game/machinery/syndicatebeacon.dm
+++ b/code/game/machinery/syndicatebeacon.dm
@@ -94,7 +94,7 @@
singulo.target = src
icon_state = "[icontype]1"
active = 1
- machines |= src
+ START_MACHINE_PROCESSING(src)
if(user)
user << "You activate the beacon."
diff --git a/code/game/mecha/equipment/tools/tools.dm b/code/game/mecha/equipment/tools/tools.dm
index f3df144ea7..cc41d779dc 100644
--- a/code/game/mecha/equipment/tools/tools.dm
+++ b/code/game/mecha/equipment/tools/tools.dm
@@ -57,6 +57,7 @@
M.adjustOxyLoss(round(dam_force/2))
M.updatehealth()
occupant_message("You squeeze [target] with [src.name]. Something cracks.")
+ playsound(src.loc, "fracture", 5, 1, -2) //CRACK
chassis.visible_message("[chassis] squeezes [target].")
else
step_away(M,chassis)
@@ -408,7 +409,7 @@
/obj/item/mecha_parts/mecha_equipment/gravcatapult
name = "gravitational catapult"
- desc = "An exosuit mounted Gravitational Catapult."
+ desc = "An exosuit mounted gravitational catapult."
icon_state = "mecha_teleport"
origin_tech = list(TECH_BLUESPACE = 2, TECH_MAGNET = 3)
equip_cooldown = 10
@@ -1041,7 +1042,7 @@
/obj/item/mecha_parts/mecha_equipment/tool/passenger
name = "passenger compartment"
- desc = "A mountable passenger compartment for exo-suits. Rather cramped."
+ desc = "A mountable passenger compartment for exosuits. Rather cramped."
icon_state = "mecha_abooster_ccw"
origin_tech = list(TECH_ENGINEERING = 1, TECH_BIO = 1)
energy_drain = 10
@@ -1071,9 +1072,9 @@
log_message("[user] boarded.")
occupant_message("[user] boarded.")
else if(src.occupant != user)
- user << "[src.occupant] was faster. Try better next time, loser."
+ to_chat(user, "[src.occupant] was faster. Try harder next time, loser.")
else
- user << "You stop entering the exosuit."
+ to_chat(user, "You stop entering the exosuit.")
/obj/item/mecha_parts/mecha_equipment/tool/passenger/verb/eject()
set name = "Eject"
@@ -1083,7 +1084,7 @@
if(usr != occupant)
return
- occupant << "You climb out from \the [src]."
+ to_chat(occupant, "You climb out from \the [src].")
go_out()
occupant_message("[occupant] disembarked.")
log_message("[occupant] disembarked.")
@@ -1186,3 +1187,98 @@
#undef LOCKED
#undef OCCUPIED
+
+/obj/item/mecha_parts/mecha_equipment/tool/jetpack
+ name = "ion jetpack"
+ desc = "Using directed ion bursts and cunning solar wind reflection technique, this device enables controlled space flight."
+ icon_state = "mecha_jetpack"
+ equip_cooldown = 5
+ energy_drain = 50
+ var/wait = 0
+ var/datum/effect/effect/system/ion_trail_follow/ion_trail
+
+
+/obj/item/mecha_parts/mecha_equipment/tool/jetpack/can_attach(obj/mecha/M as obj)
+ if(!(locate(src.type) in M.equipment) && !M.proc_res["dyndomove"])
+ return ..()
+
+/obj/item/mecha_parts/mecha_equipment/tool/jetpack/detach()
+ ..()
+ chassis.proc_res["dyndomove"] = null
+ return
+
+/obj/item/mecha_parts/mecha_equipment/tool/jetpack/attach(obj/mecha/M as obj)
+ ..()
+ if(!ion_trail)
+ ion_trail = new
+ ion_trail.set_up(chassis)
+ return
+
+/obj/item/mecha_parts/mecha_equipment/tool/jetpack/proc/toggle()
+ if(!chassis)
+ return
+ !equip_ready? turn_off() : turn_on()
+ return equip_ready
+
+/obj/item/mecha_parts/mecha_equipment/tool/jetpack/proc/turn_on()
+ set_ready_state(0)
+ chassis.proc_res["dyndomove"] = src
+ ion_trail.start()
+ occupant_message("Activated")
+ log_message("Activated")
+
+/obj/item/mecha_parts/mecha_equipment/tool/jetpack/proc/turn_off()
+ set_ready_state(1)
+ chassis.proc_res["dyndomove"] = null
+ ion_trail.stop()
+ occupant_message("Deactivated")
+ log_message("Deactivated")
+
+/obj/item/mecha_parts/mecha_equipment/tool/jetpack/proc/dyndomove(direction)
+ if(!action_checks())
+ return chassis.dyndomove(direction)
+ var/move_result = 0
+ if(chassis.hasInternalDamage(MECHA_INT_CONTROL_LOST))
+ move_result = step_rand(chassis)
+ else if(chassis.dir!=direction)
+ chassis.set_dir(direction)
+ move_result = 1
+ else
+ move_result = step(chassis,direction)
+ if(chassis.occupant)
+ for(var/obj/effect/speech_bubble/B in range(1, chassis))
+ if(B.parent == chassis.occupant)
+ B.loc = chassis.loc
+ if(move_result)
+ wait = 1
+ chassis.use_power(energy_drain)
+ if(!chassis.pr_inertial_movement.active())
+ chassis.pr_inertial_movement.start(list(chassis,direction))
+ else
+ chassis.pr_inertial_movement.set_process_args(list(chassis,direction))
+ do_after_cooldown()
+ return 1
+ return 0
+
+/obj/item/mecha_parts/mecha_equipment/tool/jetpack/action_checks()
+ if(equip_ready || wait)
+ return 0
+ if(energy_drain && !chassis.has_charge(energy_drain))
+ return 0
+ if(chassis.check_for_support())
+ return 0
+ return 1
+
+/obj/item/mecha_parts/mecha_equipment/tool/jetpack/get_equip_info()
+ if(!chassis) return
+ return "* [src.name] \[Toggle\]"
+
+/obj/item/mecha_parts/mecha_equipment/tool/jetpack/Topic(href,href_list)
+ ..()
+ if(href_list["toggle"])
+ toggle()
+
+/obj/item/mecha_parts/mecha_equipment/tool/jetpack/do_after_cooldown()
+ sleep(equip_cooldown)
+ wait = 0
+ return 1
\ No newline at end of file
diff --git a/code/game/mecha/equipment/tools/unused_tools.dm b/code/game/mecha/equipment/tools/unused_tools.dm
index 1b6d8c9e23..c7ef794c4e 100644
--- a/code/game/mecha/equipment/tools/unused_tools.dm
+++ b/code/game/mecha/equipment/tools/unused_tools.dm
@@ -6,134 +6,6 @@
-
-//NEEDS SPRITE! (When this gets ticked in search for 'TODO MECHA JETPACK SPRITE MISSING' through code to uncomment the place where it's missing.)
-/obj/item/mecha_parts/mecha_equipment/jetpack
- name = "jetpack"
- desc = "Using directed ion bursts and cunning solar wind reflection technique, this device enables controlled space flight."
- icon_state = "mecha_equip"
- equip_cooldown = 5
- energy_drain = 50
- var/wait = 0
- var/datum/effect/effect/system/ion_trail_follow/ion_trail
-
-
- can_attach(obj/mecha/M as obj)
- if(!(locate(src.type) in M.equipment) && !M.proc_res["dyndomove"])
- return ..()
-
- detach()
- ..()
- chassis.proc_res["dyndomove"] = null
- return
-
- attach(obj/mecha/M as obj)
- ..()
- if(!ion_trail)
- ion_trail = new
- ion_trail.set_up(chassis)
- return
-
- proc/toggle()
- if(!chassis)
- return
- !equip_ready? turn_off() : turn_on()
- return equip_ready
-
- proc/turn_on()
- set_ready_state(0)
- chassis.proc_res["dyndomove"] = src
- ion_trail.start()
- occupant_message("Activated")
- log_message("Activated")
-
- proc/turn_off()
- set_ready_state(1)
- chassis.proc_res["dyndomove"] = null
- ion_trail.stop()
- occupant_message("Deactivated")
- log_message("Deactivated")
-
- proc/dyndomove(direction)
- if(!action_checks())
- return chassis.dyndomove(direction)
- var/move_result = 0
- if(chassis.hasInternalDamage(MECHA_INT_CONTROL_LOST))
- move_result = step_rand(chassis)
- else if(chassis.dir!=direction)
- chassis.set_dir(direction)
- move_result = 1
- else
- move_result = step(chassis,direction)
- if(chassis.occupant)
- for(var/obj/effect/speech_bubble/B in range(1, chassis))
- if(B.parent == chassis.occupant)
- B.loc = chassis.loc
- if(move_result)
- wait = 1
- chassis.use_power(energy_drain)
- if(!chassis.pr_inertial_movement.active())
- chassis.pr_inertial_movement.start(list(chassis,direction))
- else
- chassis.pr_inertial_movement.set_process_args(list(chassis,direction))
- do_after_cooldown()
- return 1
- return 0
-
- action_checks()
- if(equip_ready || wait)
- return 0
- if(energy_drain && !chassis.has_charge(energy_drain))
- return 0
- if(chassis.check_for_support())
- return 0
- return 1
-
- get_equip_info()
- if(!chassis) return
- return "* [src.name] \[Toggle\]"
-
-
- Topic(href,href_list)
- ..()
- if(href_list["toggle"])
- toggle()
-
- do_after_cooldown()
- sleep(equip_cooldown)
- wait = 0
- return 1
-
-
-/obj/item/mecha_parts/mecha_equipment/defence_shocker
- name = "exosuit defence shocker"
- desc = ""
- icon_state = "mecha_teleport"
- equip_cooldown = 10
- energy_drain = 100
- range = RANGED
- var/shock_damage = 15
- var/active
-
- can_attach(obj/mecha/M as obj)
- if(..())
- if(!istype(M, /obj/mecha/combat/honker))
- if(!M.proc_res["dynattackby"] && !M.proc_res["dynattackhand"] && !M.proc_res["dynattackalien"])
- return 1
- return 0
-
- attach(obj/mecha/M as obj)
- ..()
- chassis.proc_res["dynattackby"] = src
- return
-
- proc/dynattackby(obj/item/weapon/W as obj, mob/user as mob)
- if(!action_checks(user) || !active)
- return
- user.electrocute_act(shock_damage, src)
- return chassis.dynattackby(W,user)
-
-
/*
/obj/item/mecha_parts/mecha_equipment/book_stocker
diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm
index 3b8cf65816..50012fe95c 100644
--- a/code/game/mecha/equipment/weapons/weapons.dm
+++ b/code/game/mecha/equipment/weapons/weapons.dm
@@ -117,20 +117,18 @@
projectile = /obj/item/projectile/beam/stun
fire_sound = 'sound/weapons/Taser.ogg'
-/* Commenting this out rather than removing it because it may be useful for reference.
+/*
/obj/item/mecha_parts/mecha_equipment/weapon/honker
- name = "\improper HoNkER BlAsT 5000"
+ name = "sound emission device"
icon_state = "mecha_honker"
- energy_drain = 200
+ energy_drain = 300
equip_cooldown = 150
range = MELEE|RANGED
- construction_time = 500
- construction_cost = list("metal"=20000,"bananium"=10000)
+ origin_tech = list(TECH_MATERIAL = 2, TECH_COMBAT = 4, TECH_ILLEGAL = 1)
- can_attach(obj/mecha/combat/honker/M as obj)
- if(!istype(M))
- return 0
- return ..()
+ var/ear_safety = 0
+ if(iscarbon(M))
+ ear_safety = M.get_ear_protection()
action(target)
if(!chassis)
@@ -140,25 +138,22 @@
if(!equip_ready)
return 0
- playsound(chassis, 'sound/items/AirHorn.ogg', 100, 1)
- chassis.occupant_message("HONK")
+ playsound(chassis, 'sound/effects/bang.ogg', 30, 1, 30)
+ chassis.occupant_message("You emit a high-pitched noise from the mech.")
for(var/mob/living/carbon/M in ohearers(6, chassis))
if(istype(M, /mob/living/carbon/human))
var/mob/living/carbon/human/H = M
- if(istype(H.l_ear, /obj/item/clothing/ears/earmuffs) || istype(H.r_ear, /obj/item/clothing/ears/earmuffs))
- continue
- M << "HONK"
+ if(ear_safety > 0)
+ return
+ to_chat(M, "\Your ears feel like they're bleeding!")
+ playsound(M, 'sound/effects/bang.ogg', 70, 1, 30)
M.sleeping = 0
- M.stuttering += 20
M.ear_deaf += 30
+ M.ear_damage += rand(5, 20)
M.Weaken(3)
- if(prob(30))
- M.Stun(10)
- M.Paralyse(4)
- else
- M.make_jittery(500)
+ M.Stun(5)
chassis.use_power(energy_drain)
- log_message("Honked from [src.name]. HONK!")
+ log_message("Used a sound emission device.")
do_after_cooldown()
return
*/
@@ -335,3 +330,35 @@
projectile = /obj/item/projectile/bullet/incendiary/flamethrower
origin_tech = list(TECH_MATERIAL = 3, TECH_COMBAT = 3, TECH_PHORON = 3, TECH_ILLEGAL = 2)
+
+//////////////
+//Defensive//
+//////////////
+
+/obj/item/mecha_parts/mecha_equipment/shocker
+ name = "exosuit electrifier"
+ desc = "A device to electrify the external portions of a mecha in order to increase its defensive capabilities."
+ icon_state = "mecha_coil"
+ equip_cooldown = 10
+ energy_drain = 100
+ range = RANGED
+ origin_tech = list(TECH_COMBAT = 3, TECH_POWER = 6)
+ var/shock_damage = 15
+ var/active
+
+/obj/item/mecha_parts/mecha_equipment/shocker/can_attach(obj/mecha/M as obj)
+ if(..())
+ if(!M.proc_res["dynattackby"] && !M.proc_res["dynattackhand"] && !M.proc_res["dynattackalien"])
+ return 1
+ return 0
+
+/obj/item/mecha_parts/mecha_equipment/shocker/attach(obj/mecha/M as obj)
+ ..()
+ chassis.proc_res["dynattackby"] = src
+ return
+
+/obj/item/mecha_parts/mecha_equipment/shocker/proc/dynattackby(obj/item/weapon/W, mob/living/user)
+ if(!action_checks(user) || !active)
+ return
+ user.electrocute_act(shock_damage, src)
+ return chassis.dynattackby(W,user)
\ No newline at end of file
diff --git a/code/game/objects/effects/misc.dm b/code/game/objects/effects/misc.dm
index c2f590c561..6cc507aeec 100644
--- a/code/game/objects/effects/misc.dm
+++ b/code/game/objects/effects/misc.dm
@@ -5,4 +5,23 @@
icon = 'icons/obj/items.dmi'
icon_state = "strangepresent"
density = 1
- anchored = 0
\ No newline at end of file
+ anchored = 0
+
+// Shown really briefly when attacking with axes.
+/obj/effect/temporary_effect/cleave_attack
+ name = "cleaving attack"
+ desc = "Something swinging really wide."
+ icon = 'icons/effects/96x96.dmi'
+ icon_state = "cleave"
+ layer = 6
+ time_to_die = 6
+ alpha = 140
+ invisibility = 0
+ mouse_opacity = 0
+ new_light_range = 0
+ new_light_power = 0
+ pixel_x = -32
+ pixel_y = -32
+
+/obj/effect/temporary_effect/cleave_attack/initialize() // Makes the slash fade smoothly. When completely transparent it should qdel itself.
+ animate(src, alpha = 0, time = time_to_die - 1)
diff --git a/code/game/objects/explosion.dm b/code/game/objects/explosion.dm
index 0bf146f037..f6eec0de71 100644
--- a/code/game/objects/explosion.dm
+++ b/code/game/objects/explosion.dm
@@ -104,7 +104,7 @@ proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impa
sleep(8)
if(!powernet_rebuild_was_deferred_already && defer_powernet_rebuild)
- makepowernets()
+ SSmachines.makepowernets()
defer_powernet_rebuild = 0
return 1
diff --git a/code/game/objects/items/antag_spawners.dm b/code/game/objects/items/antag_spawners.dm
index ce358bc1ee..100c113994 100644
--- a/code/game/objects/items/antag_spawners.dm
+++ b/code/game/objects/items/antag_spawners.dm
@@ -12,7 +12,7 @@
sparks.attach(loc)
/obj/item/weapon/antag_spawner/Destroy()
- qdel(sparks)
+ qdel_null(sparks)
return ..()
/obj/item/weapon/antag_spawner/proc/spawn_antag(client/C, turf/T)
diff --git a/code/game/objects/items/devices/communicator/UI.dm b/code/game/objects/items/devices/communicator/UI.dm
new file mode 100644
index 0000000000..806120c5e6
--- /dev/null
+++ b/code/game/objects/items/devices/communicator/UI.dm
@@ -0,0 +1,238 @@
+// Proc: ui_interact()
+// Parameters: 4 (standard NanoUI arguments)
+// Description: Uses a bunch of for loops to turn lists into lists of lists, so they can be displayed in nanoUI, then displays various buttons to the user.
+/obj/item/device/communicator/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/key_state = null)
+ // this is the data which will be sent to the ui
+ var/data[0] //General nanoUI information
+ var/communicators[0] //List of communicators
+ var/invites[0] //Communicators and ghosts we've invited to our communicator.
+ var/requests[0] //Communicators and ghosts wanting to go in our communicator.
+ var/voices[0] //Current /mob/living/voice s inside the device.
+ var/connected_communicators[0] //Current communicators connected to the device.
+
+ var/im_contacts_ui[0] //List of communicators that have been messaged.
+ var/im_list_ui[0] //List of messages.
+
+ var/weather[0]
+ var/modules_ui[0] //Home screen info.
+
+ //First we add other 'local' communicators.
+ for(var/obj/item/device/communicator/comm in known_devices)
+ if(comm.network_visibility && comm.exonet)
+ communicators[++communicators.len] = list("name" = sanitize(comm.name), "address" = comm.exonet.address)
+
+ //Now for ghosts who we pretend have communicators.
+ for(var/mob/observer/dead/O in known_devices)
+ if(O.client && O.client.prefs.communicator_visibility == 1 && O.exonet)
+ communicators[++communicators.len] = list("name" = sanitize("[O.client.prefs.real_name]'s communicator"), "address" = O.exonet.address, "ref" = "\ref[O]")
+
+ //Lists all the other communicators that we invited.
+ for(var/obj/item/device/communicator/comm in voice_invites)
+ if(comm.exonet)
+ invites[++invites.len] = list("name" = sanitize(comm.name), "address" = comm.exonet.address, "ref" = "\ref[comm]")
+
+ //Ghosts we invited.
+ for(var/mob/observer/dead/O in voice_invites)
+ if(O.exonet && O.client)
+ invites[++invites.len] = list("name" = sanitize("[O.client.prefs.real_name]'s communicator"), "address" = O.exonet.address, "ref" = "\ref[O]")
+
+ //Communicators that want to talk to us.
+ for(var/obj/item/device/communicator/comm in voice_requests)
+ if(comm.exonet)
+ requests[++requests.len] = list("name" = sanitize(comm.name), "address" = comm.exonet.address, "ref" = "\ref[comm]")
+
+ //Ghosts that want to talk to us.
+ for(var/mob/observer/dead/O in voice_requests)
+ if(O.exonet && O.client)
+ requests[++requests.len] = list("name" = sanitize("[O.client.prefs.real_name]'s communicator"), "address" = O.exonet.address, "ref" = "\ref[O]")
+
+ //Now for all the voice mobs inside the communicator.
+ for(var/mob/living/voice/voice in contents)
+ voices[++voices.len] = list("name" = sanitize("[voice.name]'s communicator"), "true_name" = sanitize(voice.name))
+
+ //Finally, all the communicators linked to this one.
+ for(var/obj/item/device/communicator/comm in communicating)
+ connected_communicators[++connected_communicators.len] = list("name" = sanitize(comm.name), "true_name" = sanitize(comm.name), "ref" = "\ref[comm]")
+
+ //Devices that have been messaged or recieved messages from.
+ for(var/obj/item/device/communicator/comm in im_contacts)
+ if(comm.exonet)
+ im_contacts_ui[++im_contacts_ui.len] = list("name" = sanitize(comm.name), "address" = comm.exonet.address, "ref" = "\ref[comm]")
+
+ for(var/mob/observer/dead/ghost in im_contacts)
+ if(ghost.exonet)
+ im_contacts_ui[++im_contacts_ui.len] = list("name" = sanitize(ghost.name), "address" = ghost.exonet.address, "ref" = "\ref[ghost]")
+
+ //Actual messages.
+ for(var/I in im_list)
+ im_list_ui[++im_list_ui.len] = list("address" = I["address"], "to_address" = I["to_address"], "im" = I["im"])
+
+ //Weather reports.
+ for(var/datum/planet/planet in planet_controller.planets)
+ if(planet.weather_holder && planet.weather_holder.current_weather)
+ weather[++weather.len] = list("Planet" = planet.name, "Weather" = planet.weather_holder.current_weather.name, "Temperature" = (round(planet.weather_holder.temperature*1000)/1000),\
+ "High" = planet.weather_holder.current_weather.temp_high, "Low" = planet.weather_holder.current_weather.temp_low, "Wind" = "[planet.weather_holder.wind_speed]|[dir2text(planet.weather_holder.wind_dir)]")
+
+ //Modules for homescreen.
+ for(var/list/R in modules)
+ modules_ui[++modules_ui.len] = R
+
+ data["owner"] = owner ? owner : "Unset"
+ data["occupation"] = occupation ? occupation : "Swipe ID to set."
+ data["connectionStatus"] = get_connection_to_tcomms()
+ data["visible"] = network_visibility
+ data["address"] = exonet.address ? exonet.address : "Unallocated"
+ data["targetAddress"] = target_address
+ data["targetAddressName"] = target_address_name
+ data["currentTab"] = selected_tab
+ data["knownDevices"] = communicators
+ data["invitesSent"] = invites
+ data["requestsReceived"] = requests
+ data["voice_mobs"] = voices
+ data["communicating"] = connected_communicators
+ data["video_comm"] = video_source ? "\ref[video_source.loc]" : null
+ data["imContacts"] = im_contacts_ui
+ data["imList"] = im_list_ui
+ data["time"] = stationtime2text()
+ data["ring"] = ringer
+ data["homeScreen"] = modules_ui
+ data["note"] = note // current notes
+ data["weather"] = weather
+
+ // update the ui if it exists, returns null if no ui is passed/found
+ ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open)
+ if(!ui)
+ // the ui does not exist, so we'll create a new() one
+ // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm
+ ui = new(user, src, ui_key, "communicator.tmpl", "Communicator", 475, 700, state = key_state)
+ // when the ui is first opened this is the data it will use
+ ui.set_initial_data(data)
+ // open the new ui window
+ ui.open()
+ // auto update every five Master Controller tick
+ ui.set_auto_update(5)
+
+// Proc: Topic()
+// Parameters: 2 (standard Topic arguments)
+// Description: Responds to NanoUI button presses.
+/obj/item/device/communicator/Topic(href, href_list)
+ if(..())
+ return 1
+ if(href_list["rename"])
+ var/new_name = sanitizeSafe(input(usr,"Please enter your name.","Communicator",usr.name) )
+ if(new_name)
+ owner = new_name
+ name = "[owner]'s [initial(name)]"
+ if(camera)
+ camera.name = name
+ camera.c_tag = name
+
+ if(href_list["toggle_visibility"])
+ switch(network_visibility)
+ if(1) //Visible, becoming invisbile
+ network_visibility = 0
+ if(camera)
+ camera.remove_network(NETWORK_COMMUNICATORS)
+ if(0) //Invisible, becoming visible
+ network_visibility = 1
+ if(camera)
+ camera.add_network(NETWORK_COMMUNICATORS)
+
+ if(href_list["toggle_ringer"])
+ ringer = !ringer
+
+ if(href_list["add_hex"])
+ var/hex = href_list["add_hex"]
+ add_to_EPv2(hex)
+
+ if(href_list["write_target_address"])
+ var/new_address = sanitizeSafe(input(usr,"Please enter the desired target EPv2 address. Note that you must write the colons \
+ yourself.","Communicator",src.target_address) )
+ if(new_address)
+ target_address = new_address
+
+ if(href_list["clear_target_address"])
+ target_address = ""
+
+ if(href_list["dial"])
+ if(!get_connection_to_tcomms())
+ usr << "Error: Cannot connect to Exonet node."
+ return
+ var/their_address = href_list["dial"]
+ exonet.send_message(their_address, "voice")
+
+ if(href_list["decline"])
+ var/ref_to_remove = href_list["decline"]
+ var/atom/decline = locate(ref_to_remove)
+ if(decline)
+ del_request(decline)
+
+ if(href_list["message"])
+ if(!get_connection_to_tcomms())
+ usr << "Error: Cannot connect to Exonet node."
+ return
+ var/their_address = href_list["message"]
+ var/text = sanitizeSafe(input(usr,"Enter your message.","Text Message"))
+ if(text)
+ exonet.send_message(their_address, "text", text)
+ im_list += list(list("address" = exonet.address, "to_address" = their_address, "im" = text))
+ log_pda("[usr] (COMM: [src]) sent \"[text]\" to [exonet.get_atom_from_address(their_address)]")
+ for(var/mob/M in player_list)
+ if(M.stat == DEAD && M.is_preference_enabled(/datum/client_preference/ghost_ears))
+ if(istype(M, /mob/new_player) || M.forbid_seeing_deadchat)
+ continue
+ if(exonet.get_atom_from_address(their_address) == M)
+ continue
+ M.show_message("Comm IM - [src] -> [exonet.get_atom_from_address(their_address)]: [text]")
+
+ if(href_list["disconnect"])
+ var/name_to_disconnect = href_list["disconnect"]
+ for(var/mob/living/voice/V in contents)
+ if(name_to_disconnect == V.name)
+ close_connection(usr, V, "[usr] hung up")
+ for(var/obj/item/device/communicator/comm in communicating)
+ if(name_to_disconnect == comm.name)
+ close_connection(usr, comm, "[usr] hung up")
+
+ if(href_list["startvideo"])
+ var/ref_to_video = href_list["startvideo"]
+ var/obj/item/device/communicator/comm = locate(ref_to_video)
+ if(comm)
+ connect_video(usr, comm)
+
+ if(href_list["endvideo"])
+ if(video_source)
+ end_video()
+
+ if(href_list["watchvideo"])
+ if(video_source)
+ watch_video(usr,video_source.loc)
+
+ if(href_list["copy"])
+ target_address = href_list["copy"]
+
+ if(href_list["copy_name"])
+ target_address_name = href_list["copy_name"]
+
+ if(href_list["hang_up"])
+ for(var/mob/living/voice/V in contents)
+ close_connection(usr, V, "[usr] hung up")
+ for(var/obj/item/device/communicator/comm in communicating)
+ close_connection(usr, comm, "[usr] hung up")
+
+ if(href_list["switch_tab"])
+ selected_tab = href_list["switch_tab"]
+
+ if(href_list["edit"])
+ var/n = input(usr, "Please enter message", name, notehtml)
+ n = sanitizeSafe(n, extra = 0)
+ if(n)
+ note = html_decode(n)
+ notehtml = note
+ note = replacetext(note, "\n", "
")
+ else
+ note = ""
+ notehtml = note
+
+ nanomanager.update_uis(src)
+ add_fingerprint(usr)
\ No newline at end of file
diff --git a/code/game/objects/items/devices/communicator/cartridge.dm b/code/game/objects/items/devices/communicator/cartridge.dm
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/code/game/objects/items/devices/communicator/communicator.dm b/code/game/objects/items/devices/communicator/communicator.dm
index 5d1e1f3802..d5a4114aff 100644
--- a/code/game/objects/items/devices/communicator/communicator.dm
+++ b/code/game/objects/items/devices/communicator/communicator.dm
@@ -37,7 +37,8 @@ var/global/list/obj/item/device/communicator/all_communicators = list()
list("module" = "Contacts", "icon" = "person64", "number" = 3),
list("module" = "Messaging", "icon" = "comment64", "number" = 4),
list("module" = "Note", "icon" = "note64", "number" = 5),
- list("module" = "Settings", "icon" = "gear64", "number" = 6)
+ list("module" = "Weather", "icon" = "sun64", "number" = 6),
+ list("module" = "Settings", "icon" = "gear64", "number" = 7)
) //list("module" = "Name of Module", "icon" = "icon name64", "number" = "what tab is the module")
var/selected_tab = 1
@@ -191,16 +192,19 @@ var/global/list/obj/item/device/communicator/all_communicators = list()
if(istype(C, /obj/item/weapon/card/id))
var/obj/item/weapon/card/id/idcard = C
if(!idcard.registered_name || !idcard.assignment)
- user << "\The [src] rejects the ID."
- return
- if(!owner)
- user << "\The [src] rejects the ID."
- return
- if(owner == idcard.registered_name)
+ to_chat(user, "\The [src] rejects the ID.")
+ else if(!owner)
+ to_chat(user, "\The [src] rejects the ID.")
+ else if(owner == idcard.registered_name)
occupation = idcard.assignment
- user << "Occupation updated."
- return
- else return
+ to_chat(user, "Occupation updated.")
+// else if(istype(C, /obj/item/weapon/cartridge))
+// if(cartridge)
+// to_chat(user, "\The [src] already has an external device attached!")
+// else
+// modules.Add(list("module" = "External Device", "icon = external64", "number" = 8))
+// cartridge = C
+ return
// Proc: attack_self()
// Parameters: 1 (user - the mob that clicked the device in their hand)
@@ -258,288 +262,6 @@ var/global/list/obj/item/device/communicator/all_communicators = list()
exonet = null
return ..()
-// Proc: ui_interact()
-// Parameters: 4 (standard NanoUI arguments)
-// Description: Uses a bunch of for loops to turn lists into lists of lists, so they can be displayed in nanoUI, then displays various buttons to the user.
-/obj/item/device/communicator/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/key_state = null)
- // this is the data which will be sent to the ui
- var/data[0] //General nanoUI information
- var/communicators[0] //List of communicators
- var/invites[0] //Communicators and ghosts we've invited to our communicator.
- var/requests[0] //Communicators and ghosts wanting to go in our communicator.
- var/voices[0] //Current /mob/living/voice s inside the device.
- var/connected_communicators[0] //Current communicators connected to the device.
-
- var/im_contacts_ui[0] //List of communicators that have been messaged.
- var/im_list_ui[0] //List of messages.
-
- var/modules_ui[0] //Home screen info.
-
- //First we add other 'local' communicators.
- for(var/obj/item/device/communicator/comm in known_devices)
- if(comm.network_visibility && comm.exonet)
- communicators[++communicators.len] = list("name" = sanitize(comm.name), "address" = comm.exonet.address)
-
- //Now for ghosts who we pretend have communicators.
- for(var/mob/observer/dead/O in known_devices)
- if(O.client && O.client.prefs.communicator_visibility == 1 && O.exonet)
- communicators[++communicators.len] = list("name" = sanitize("[O.client.prefs.real_name]'s communicator"), "address" = O.exonet.address, "ref" = "\ref[O]")
-
- //Lists all the other communicators that we invited.
- for(var/obj/item/device/communicator/comm in voice_invites)
- if(comm.exonet)
- invites[++invites.len] = list("name" = sanitize(comm.name), "address" = comm.exonet.address, "ref" = "\ref[comm]")
-
- //Ghosts we invited.
- for(var/mob/observer/dead/O in voice_invites)
- if(O.exonet && O.client)
- invites[++invites.len] = list("name" = sanitize("[O.client.prefs.real_name]'s communicator"), "address" = O.exonet.address, "ref" = "\ref[O]")
-
- //Communicators that want to talk to us.
- for(var/obj/item/device/communicator/comm in voice_requests)
- if(comm.exonet)
- requests[++requests.len] = list("name" = sanitize(comm.name), "address" = comm.exonet.address, "ref" = "\ref[comm]")
-
- //Ghosts that want to talk to us.
- for(var/mob/observer/dead/O in voice_requests)
- if(O.exonet && O.client)
- requests[++requests.len] = list("name" = sanitize("[O.client.prefs.real_name]'s communicator"), "address" = O.exonet.address, "ref" = "\ref[O]")
-
- //Now for all the voice mobs inside the communicator.
- for(var/mob/living/voice/voice in contents)
- voices[++voices.len] = list("name" = sanitize("[voice.name]'s communicator"), "true_name" = sanitize(voice.name))
-
- //Finally, all the communicators linked to this one.
- for(var/obj/item/device/communicator/comm in communicating)
- connected_communicators[++connected_communicators.len] = list("name" = sanitize(comm.name), "true_name" = sanitize(comm.name), "ref" = "\ref[comm]")
-
- //Devices that have been messaged or recieved messages from.
- for(var/obj/item/device/communicator/comm in im_contacts)
- if(comm.exonet)
- im_contacts_ui[++im_contacts_ui.len] = list("name" = sanitize(comm.name), "address" = comm.exonet.address, "ref" = "\ref[comm]")
-
- for(var/mob/observer/dead/ghost in im_contacts)
- if(ghost.exonet)
- im_contacts_ui[++im_contacts_ui.len] = list("name" = sanitize(ghost.name), "address" = ghost.exonet.address, "ref" = "\ref[ghost]")
-
- //Actual messages.
- for(var/I in im_list)
- im_list_ui[++im_list_ui.len] = list("address" = I["address"], "to_address" = I["to_address"], "im" = I["im"])
-
- //Modules for homescreen.
- for(var/list/R in modules)
- modules_ui[++modules_ui.len] = R
-
- data["owner"] = owner ? owner : "Unset"
- data["occupation"] = occupation ? occupation : "Swipe ID to set."
- data["connectionStatus"] = get_connection_to_tcomms()
- data["visible"] = network_visibility
- data["address"] = exonet.address ? exonet.address : "Unallocated"
- data["targetAddress"] = target_address
- data["targetAddressName"] = target_address_name
- data["currentTab"] = selected_tab
- data["knownDevices"] = communicators
- data["invitesSent"] = invites
- data["requestsReceived"] = requests
- data["voice_mobs"] = voices
- data["communicating"] = connected_communicators
- data["video_comm"] = video_source ? "\ref[video_source.loc]" : null
- data["imContacts"] = im_contacts_ui
- data["imList"] = im_list_ui
- data["time"] = stationtime2text()
- data["ring"] = ringer
- data["homeScreen"] = modules_ui
- data["note"] = note // current notes
-
- // update the ui if it exists, returns null if no ui is passed/found
- ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open)
- if(!ui)
- // the ui does not exist, so we'll create a new() one
- // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm
- ui = new(user, src, ui_key, "communicator.tmpl", "Communicator", 475, 700, state = key_state)
- // when the ui is first opened this is the data it will use
- ui.set_initial_data(data)
- // open the new ui window
- ui.open()
- // auto update every five Master Controller tick
- ui.set_auto_update(5)
-
-// Proc: Topic()
-// Parameters: 2 (standard Topic arguments)
-// Description: Responds to NanoUI button presses.
-/obj/item/device/communicator/Topic(href, href_list)
- if(..())
- return 1
- if(href_list["rename"])
- var/new_name = sanitizeSafe(input(usr,"Please enter your name.","Communicator",usr.name) )
- if(new_name)
- owner = new_name
- name = "[owner]'s [initial(name)]"
- if(camera)
- camera.name = name
- camera.c_tag = name
-
- if(href_list["toggle_visibility"])
- switch(network_visibility)
- if(1) //Visible, becoming invisbile
- network_visibility = 0
- if(camera)
- camera.remove_network(NETWORK_COMMUNICATORS)
- if(0) //Invisible, becoming visible
- network_visibility = 1
- if(camera)
- camera.add_network(NETWORK_COMMUNICATORS)
-
- if(href_list["toggle_ringer"])
- ringer = !ringer
-
- if(href_list["add_hex"])
- var/hex = href_list["add_hex"]
- add_to_EPv2(hex)
-
- if(href_list["write_target_address"])
- var/new_address = sanitizeSafe(input(usr,"Please enter the desired target EPv2 address. Note that you must write the colons \
- yourself.","Communicator",src.target_address) )
- if(new_address)
- target_address = new_address
-
- if(href_list["clear_target_address"])
- target_address = ""
-
- if(href_list["dial"])
- if(!get_connection_to_tcomms())
- usr << "Error: Cannot connect to Exonet node."
- return
- var/their_address = href_list["dial"]
- exonet.send_message(their_address, "voice")
-
- if(href_list["decline"])
- var/ref_to_remove = href_list["decline"]
- var/atom/decline = locate(ref_to_remove)
- if(decline)
- del_request(decline)
-
- if(href_list["message"])
- if(!get_connection_to_tcomms())
- usr << "Error: Cannot connect to Exonet node."
- return
- var/their_address = href_list["message"]
- var/text = sanitizeSafe(input(usr,"Enter your message.","Text Message"))
- if(text)
- exonet.send_message(their_address, "text", text)
- im_list += list(list("address" = exonet.address, "to_address" = their_address, "im" = text))
- log_pda("[usr] (COMM: [src]) sent \"[text]\" to [exonet.get_atom_from_address(their_address)]")
- for(var/mob/M in player_list)
- if(M.stat == DEAD && M.is_preference_enabled(/datum/client_preference/ghost_ears))
- if(istype(M, /mob/new_player) || M.forbid_seeing_deadchat)
- continue
- if(exonet.get_atom_from_address(their_address) == M)
- continue
- M.show_message("Comm IM - [src] -> [exonet.get_atom_from_address(their_address)]: [text]")
-
- if(href_list["disconnect"])
- var/name_to_disconnect = href_list["disconnect"]
- for(var/mob/living/voice/V in contents)
- if(name_to_disconnect == V.name)
- close_connection(usr, V, "[usr] hung up")
- for(var/obj/item/device/communicator/comm in communicating)
- if(name_to_disconnect == comm.name)
- close_connection(usr, comm, "[usr] hung up")
-
- if(href_list["startvideo"])
- var/ref_to_video = href_list["startvideo"]
- var/obj/item/device/communicator/comm = locate(ref_to_video)
- if(comm)
- connect_video(usr, comm)
-
- if(href_list["endvideo"])
- if(video_source)
- end_video()
-
- if(href_list["watchvideo"])
- if(video_source)
- watch_video(usr,video_source.loc)
-
- if(href_list["copy"])
- target_address = href_list["copy"]
-
- if(href_list["copy_name"])
- target_address_name = href_list["copy_name"]
-
- if(href_list["hang_up"])
- for(var/mob/living/voice/V in contents)
- close_connection(usr, V, "[usr] hung up")
- for(var/obj/item/device/communicator/comm in communicating)
- close_connection(usr, comm, "[usr] hung up")
-
- if(href_list["switch_tab"])
- selected_tab = href_list["switch_tab"]
-
- if(href_list["edit"])
- var/n = input(usr, "Please enter message", name, notehtml)
- n = sanitizeSafe(n, extra = 0)
- if(n)
- note = html_decode(n)
- notehtml = note
- note = replacetext(note, "\n", "
")
- else
- note = ""
- notehtml = note
-
- nanomanager.update_uis(src)
- add_fingerprint(usr)
-
-// Proc: receive_exonet_message()
-// Parameters: 4 (origin atom - the source of the message's holder, origin_address - where the message came from, message - the message received,
-// text - message text to send if message is of type "text")
-// Description: Handles voice requests and invite messages originating from both real communicators and ghosts. Also includes a ping response and IM function.
-/obj/item/device/communicator/receive_exonet_message(var/atom/origin_atom, origin_address, message, text)
- if(message == "voice")
- if(isobserver(origin_atom) || istype(origin_atom, /obj/item/device/communicator))
- if(origin_atom in voice_invites)
- var/user = null
- if(ismob(origin_atom.loc))
- user = origin_atom.loc
- open_connection(user, origin_atom)
- return
- else if(origin_atom in voice_requests)
- return //Spam prevention
- else
- request(origin_atom)
- if(message == "ping")
- if(network_visibility)
- var/random = rand(200,350)
- random = random / 10
- exonet.send_message(origin_address, "64 bytes received from [exonet.address] ecmp_seq=1 ttl=51 time=[random] ms")
- if(message == "text")
- request_im(origin_atom, origin_address, text)
- return
-
-// Proc: receive_exonet_message()
-// Parameters: 3 (origin atom - the source of the message's holder, origin_address - where the message came from, message - the message received)
-// Description: Handles voice requests and invite messages originating from both real communicators and ghosts. Also includes a ping response.
-/mob/observer/dead/receive_exonet_message(origin_atom, origin_address, message, text)
- if(message == "voice")
- if(istype(origin_atom, /obj/item/device/communicator))
- var/obj/item/device/communicator/comm = origin_atom
- if(src in comm.voice_invites)
- comm.open_connection(src)
- return
- src << "\icon[origin_atom] Receiving communicator request from [origin_atom]. To answer, use the Call Communicator \
- verb, and select that name to answer the call."
- src << 'sound/machines/defib_SafetyOn.ogg'
- comm.voice_invites |= src
- if(message == "ping")
- if(client && client.prefs.communicator_visibility)
- var/random = rand(450,700)
- random = random / 10
- exonet.send_message(origin_address, "64 bytes received from [exonet.address] ecmp_seq=1 ttl=51 time=[random] ms")
- if(message == "text")
- src << "\icon[origin_atom] Received text message from [origin_atom]: \"[text]\""
- src << 'sound/machines/defib_safetyOff.ogg'
- exonet_messages.Add("From [origin_atom]:
[text]")
- return
-
// Proc: register_device()
// Parameters: 1 (user - the person to use their name for)
// Description: Updates the owner's name and the device's name.
@@ -553,252 +275,13 @@ var/global/list/obj/item/device/communicator/all_communicators = list()
camera.name = name
camera.c_tag = name
-// Proc: add_communicating()
-// Parameters: 1 (comm - the communicator to add to communicating)
-// Description: Used when this communicator gets a new communicator to relay say/me messages to
-/obj/item/device/communicator/proc/add_communicating(obj/item/device/communicator/comm)
- if(!comm || !istype(comm)) return
-
- communicating |= comm
- listening_objects |= src
- update_icon()
-
-// Proc: del_communicating()
-// Parameters: 1 (comm - the communicator to remove from communicating)
-// Description: Used when this communicator is being asked to stop relaying say/me messages to another
-/obj/item/device/communicator/proc/del_communicating(obj/item/device/communicator/comm)
- if(!comm || !istype(comm)) return
-
- communicating.Remove(comm)
- update_icon()
-
-// Proc: open_connection()
-// Parameters: 2 (user - the person who initiated the connecting being opened, candidate - the communicator or observer that will connect to the device)
-// Description: Typechecks the candidate, then calls the correct proc for further connecting.
-/obj/item/device/communicator/proc/open_connection(mob/user, var/atom/candidate)
- if(isobserver(candidate))
- voice_invites.Remove(candidate)
- open_connection_to_ghost(user, candidate)
- else
- if(istype(candidate, /obj/item/device/communicator))
- open_connection_to_communicator(user, candidate)
-
-// Proc: open_connection_to_communicator()
-// Parameters: 2 (user - the person who initiated this and will be receiving feedback information, candidate - someone else's communicator)
-// Description: Adds the candidate and src to each other's communicating lists, allowing messages seen by the devices to be relayed.
-/obj/item/device/communicator/proc/open_connection_to_communicator(mob/user, var/atom/candidate)
- if(!istype(candidate, /obj/item/device/communicator))
- return
- var/obj/item/device/communicator/comm = candidate
- voice_invites.Remove(candidate)
- comm.voice_requests.Remove(src)
-
- if(user)
- comm.visible_message("\icon[src] Connecting to [src].")
- user << "\icon[src] Attempting to call [comm]."
- sleep(10)
- user << "\icon[src] Dialing internally from [station_name()], [system_name()]." // Vorestation edit
- sleep(20) //If they don't have an exonet something is very wrong and we want a runtime.
- user << "\icon[src] Connection re-routed to [comm] at [comm.exonet.address]."
- sleep(40)
- user << "\icon[src] Connection to [comm] at [comm.exonet.address] established."
- comm.visible_message("\icon[src] Connection to [src] at [exonet.address] established.")
- sleep(20)
-
- src.add_communicating(comm)
- comm.add_communicating(src)
-
-// Proc: open_connection_to_ghost()
-// Parameters: 2 (user - the person who initiated this, candidate - the ghost that will be turned into a voice mob)
-// Description: Pulls the candidate ghost from deadchat, makes a new voice mob, transfers their identity, then their client.
-/obj/item/device/communicator/proc/open_connection_to_ghost(mob/user, var/mob/candidate)
- if(!isobserver(candidate))
- return
- //Handle moving the ghost into the new shell.
- announce_ghost_joinleave(candidate, 0, "They are occupying a personal communications device now.")
- voice_requests.Remove(candidate)
- voice_invites.Remove(candidate)
- var/mob/living/voice/new_voice = new /mob/living/voice(src) //Make the voice mob the ghost is going to be.
- new_voice.transfer_identity(candidate) //Now make the voice mob load from the ghost's active character in preferences.
- //Do some simple logging since this is a tad risky as a concept.
- var/msg = "[candidate && candidate.client ? "[candidate.client.key]" : "*no key*"] ([candidate]) has entered [src], triggered by \
- [user && user.client ? "[user.client.key]" : "*no key*"] ([user ? "[user]" : "*null*"]) at [x],[y],[z]. They have joined as [new_voice.name]."
- message_admins(msg)
- log_game(msg)
- new_voice.mind = candidate.mind //Transfer the mind, if any.
- new_voice.ckey = candidate.ckey //Finally, bring the client over.
- voice_mobs.Add(new_voice)
- listening_objects |= src
-
- var/obj/screen/blackness = new() //Makes a black screen, so the candidate can't see what's going on before actually 'connecting' to the communicator.
- blackness.screen_loc = ui_entire_screen
- blackness.icon = 'icons/effects/effects.dmi'
- blackness.icon_state = "1"
- blackness.mouse_opacity = 2 //Can't see anything!
- new_voice.client.screen.Add(blackness)
-
- update_icon()
-
- //Now for some connection fluff.
- if(user)
- user << "\icon[src] Connecting to [candidate]."
- new_voice << "\icon[src] Attempting to call [src]."
- sleep(10)
- new_voice << "\icon[src] Dialing to [station_name()], Kara Subsystem, [system_name()]."
- sleep(20)
- new_voice << "\icon[src] Connecting to [station_name()] telecommunications array."
- sleep(40)
- new_voice << "\icon[src] Connection to [station_name()] telecommunications array established. Redirecting signal to [src]."
- sleep(20)
-
- //We're connected, no need to hide everything.
- new_voice.client.screen.Remove(blackness)
- qdel(blackness)
-
- new_voice << "\icon[src] Connection to [src] established."
- new_voice << "To talk to the person on the other end of the call, just talk normally."
- new_voice << "If you want to end the call, use the 'Hang Up' verb. The other person can also hang up at any time."
- new_voice << "Remember, your character does not know anything you've learned from observing!"
- if(new_voice.mind)
- new_voice.mind.assigned_role = "Disembodied Voice"
- if(user)
- user << "\icon[src] Your communicator is now connected to [candidate]'s communicator."
-
-// Proc: close_connection()
-// Parameters: 3 (user - the user who initiated the disconnect, target - the mob or device being disconnected, reason - string shown when disconnected)
-// Description: Deletes specific voice_mobs or disconnects communicators, and shows a message to everyone when doing so. If target is null, all communicators
-// and voice mobs are removed.
-/obj/item/device/communicator/proc/close_connection(mob/user, var/atom/target, var/reason)
- if(voice_mobs.len == 0 && communicating.len == 0)
- return
-
- for(var/mob/living/voice/voice in voice_mobs) //Handle ghost-callers
- if(target && voice != target) //If no target is inputted, it deletes all of them.
- continue
- voice << "\icon[src] [reason]."
- visible_message("\icon[src] [reason].")
- voice_mobs.Remove(voice)
- qdel(voice)
- update_icon()
-
- for(var/obj/item/device/communicator/comm in communicating) //Now we handle real communicators.
- if(target && comm != target)
- continue
- src.del_communicating(comm)
- comm.del_communicating(src)
- comm.visible_message("\icon[src] [reason].")
- visible_message("\icon[src] [reason].")
- if(comm.camera && video_source == comm.camera) //We hung up on the person on video
- end_video()
- if(camera && comm.video_source == camera) //We hung up on them while they were watching us
- comm.end_video()
-
- if(voice_mobs.len == 0 && communicating.len == 0)
- listening_objects.Remove(src)
-
-// Proc: request()
-// Parameters: 1 (candidate - the ghost or communicator wanting to call the device)
-// Description: Response to a communicator or observer trying to call the device. Adds them to the list of requesters
-/obj/item/device/communicator/proc/request(var/atom/candidate)
- if(candidate in voice_requests)
- return
- var/who = null
- if(isobserver(candidate))
- who = candidate.name
- else if(istype(candidate, /obj/item/device/communicator))
- var/obj/item/device/communicator/comm = candidate
- who = comm.owner
- comm.voice_invites |= src
-
- if(!who)
- return
-
- voice_requests |= candidate
-
- if(ringer)
- playsound(loc, 'sound/machines/twobeep.ogg', 50, 1)
- for (var/mob/O in hearers(2, loc))
- O.show_message(text("\icon[src] *beep*"))
-
- alert_called = 1
- update_icon()
-
- //Search for holder of the device.
- var/mob/living/L = null
- if(loc && isliving(loc))
- L = loc
-
- if(L)
- L << "\icon[src] Communications request from [who]."
-
-// Proc: del_request()
-// Parameters: 1 (candidate - the ghost or communicator to be declined)
-// Description: Declines a request and cleans up both ends
-/obj/item/device/communicator/proc/del_request(var/atom/candidate)
- if(!(candidate in voice_requests))
- return
-
- if(isobserver(candidate))
- candidate << "Your communicator call request was declined."
- else if(istype(candidate, /obj/item/device/communicator))
- var/obj/item/device/communicator/comm = candidate
- comm.voice_invites -= src
-
- voice_requests -= candidate
-
- //Search for holder of our device.
- var/mob/living/us = null
- if(loc && isliving(loc))
- us = loc
-
- if(us)
- us << "\icon[src] Declined request."
-
-// Proc: request_im()
-// Parameters: 3 (candidate - the communicator wanting to message the device, origin_address - the address of the sender, text - the message)
-// Description: Response to a communicator trying to message the device.
-// Adds them to the list of people that have messaged this device and adds the message to the message list.
-/obj/item/device/communicator/proc/request_im(var/atom/candidate, var/origin_address, var/text)
- var/who = null
- if(isobserver(candidate))
- var/mob/observer/dead/ghost = candidate
- who = ghost
- im_list += list(list("address" = origin_address, "to_address" = exonet.address, "im" = text))
- else if(istype(candidate, /obj/item/device/communicator))
- var/obj/item/device/communicator/comm = candidate
- who = comm.owner
- comm.im_contacts |= src
- im_list += list(list("address" = origin_address, "to_address" = exonet.address, "im" = text))
- else return
-
- im_contacts |= candidate
-
- if(!who)
- return
-
- if(ringer)
- playsound(loc, 'sound/machines/twobeep.ogg', 50, 1)
- for (var/mob/O in hearers(2, loc))
- O.show_message(text("\icon[src] *beep*"))
-
- alert_called = 1
- update_icon()
-
- //Search for holder of the device.
- var/mob/living/L = null
- if(loc && isliving(loc))
- L = loc
-
- if(L)
- L << "\icon[src] Message from [who]."
-
// Proc: Destroy()
// Parameters: None
// Description: Deletes all the voice mobs, disconnects all linked communicators, and cuts lists to allow successful qdel()
/obj/item/device/communicator/Destroy()
for(var/mob/living/voice/voice in contents)
voice_mobs.Remove(voice)
- voice << "\icon[src] Connection timed out with remote host."
+ to_chat(voice, "\icon[src] Connection timed out with remote host.")
qdel(voice)
close_connection(reason = "Connection timed out")
communicating.Cut()
@@ -832,314 +315,6 @@ var/global/list/obj/item/device/communicator/all_communicators = list()
icon_state = initial(icon_state)
-// Proc: see_emote()
-// Parameters: 2 (M - the mob the emote originated from, text - the emote's contents)
-// Description: Relays the emote to all linked communicators.
-/obj/item/device/communicator/see_emote(mob/living/M, text)
- var/rendered = "\icon[src] [text]"
- for(var/obj/item/device/communicator/comm in communicating)
- var/turf/T = get_turf(comm)
- if(!T) return
- var/list/in_range = get_mobs_and_objs_in_view_fast(T,world.view,0) //Range of 3 since it's a tiny video display
- var/list/mobs_to_relay = in_range["mobs"]
-
- for(var/mob/mob in mobs_to_relay) //We can't use visible_message(), or else we will get an infinite loop if two communicators hear each other.
- var/dst = get_dist(get_turf(mob),get_turf(comm))
- if(dst <= video_range)
- mob.show_message(rendered)
- else
- mob << "You can barely see some movement on \the [src]'s display."
-
- ..()
-
-// Proc: hear_talk()
-// Parameters: 4 (M - the mob the speech originated from, text - what is being said, verb - the word used to describe how text is being said, speaking - language
-// being used)
-// Description: Relays the speech to all linked communicators.
-/obj/item/device/communicator/hear_talk(mob/living/M, text, verb, datum/language/speaking)
- for(var/obj/item/device/communicator/comm in communicating)
-
- var/turf/T = get_turf(comm)
- if(!T) return
- var/list/in_range = get_mobs_and_objs_in_view_fast(T,world.view,0)
- var/list/mobs_to_relay = in_range["mobs"]
-
- for(var/mob/mob in mobs_to_relay)
- //Can whoever is hearing us understand?
- if(!mob.say_understands(M, speaking))
- if(speaking)
- text = speaking.scramble(text)
- else
- text = stars(text)
- var/name_used = M.GetVoice()
- var/rendered = null
- if(speaking) //Language being used
- rendered = "\icon[src] [name_used] [speaking.format_message(text, verb)]"
- else
- rendered = "\icon[src] [name_used] [verb], \"[text]\""
- mob.show_message(rendered, 2)
-
-// Proc: show_message()
-// Parameters: 4 (msg - the message, type - number to determine if message is visible or audible, alt - unknown, alt_type - unknown)
-// Description: Relays the message to all linked communicators.
-/obj/item/device/communicator/show_message(msg, type, alt, alt_type)
- var/rendered = "\icon[src] [msg]"
- for(var/obj/item/device/communicator/comm in communicating)
- var/turf/T = get_turf(comm)
- if(!T) return
- var/list/in_range = get_mobs_and_objs_in_view_fast(T,world.view,0)
- var/list/mobs_to_relay = in_range["mobs"]
-
- for(var/mob/mob in mobs_to_relay)
- mob.show_message(rendered)
- ..()
-
-// Verb: join_as_voice()
-// Parameters: None
-// Description: Allows ghosts to call communicators, if they meet all the requirements.
-/mob/observer/dead/verb/join_as_voice()
- set category = "Ghost"
- set name = "Call Communicator"
- set desc = "If there is a communicator available, send a request to speak through it. This will reset your respawn timer, if someone picks up."
-
- if(ticker.current_state < GAME_STATE_PLAYING)
- src << "The game hasn't started yet!"
- return
-
- if (!src.stat)
- return
-
- if (usr != src)
- return //something is terribly wrong
-
- var/confirm = alert(src, "Would you like to talk as [src.client.prefs.real_name], over a communicator? \
- This will reset your respawn timer, if someone answers.", "Join as Voice?", "Yes","No")
- if(confirm == "No")
- return
-
- for(var/mob/living/L in mob_list) //Simple check so you don't have dead people calling.
- if(src.client.prefs.real_name == L.real_name)
- src << "Your identity is already present in the game world. Please load in a different character first."
- return
-
- var/obj/machinery/exonet_node/E = get_exonet_node()
- if(!E || !E.on || !E.allow_external_communicators)
- src << "The Exonet node at telecommunications is down at the moment, or is actively blocking you, so your call can't go through."
- return
-
- var/list/choices = list()
- for(var/obj/item/device/communicator/comm in all_communicators)
- if(!comm.network_visibility || !comm.exonet || !comm.exonet.address)
- continue
- choices.Add(comm)
-
- if(!choices.len)
- src << "There are no available communicators, sorry."
- return
-
- var/choice = input(src,"Send a voice request to whom?") as null|anything in choices
- if(choice)
- var/obj/item/device/communicator/chosen_communicator = choice
- var/mob/observer/dead/O = src
- if(O.exonet)
- O.exonet.send_message(chosen_communicator.exonet.address, "voice")
-
- src << "A communications request has been sent to [chosen_communicator]. Now you need to wait until someone answers."
-
-// Verb: text_communicator()
-// Parameters: None
-// Description: Allows a ghost to send a text message to a communicator.
-/mob/observer/dead/verb/text_communicator()
- set category = "Ghost"
- set name = "Text Communicator"
- set desc = "If there is a communicator available, send a text message to it."
-
- if(ticker.current_state < GAME_STATE_PLAYING)
- src << "The game hasn't started yet!"
- return
-
- if (!src.stat)
- return
-
- if (usr != src)
- return //something is terribly wrong
-
- for(var/mob/living/L in mob_list) //Simple check so you don't have dead people calling.
- if(src.client.prefs.real_name == L.real_name)
- src << "Your identity is already present in the game world. Please load in a different character first."
- return
-
- var/obj/machinery/exonet_node/E = get_exonet_node()
- if(!E || !E.on || !E.allow_external_communicators)
- src << "The Exonet node at telecommunications is down at the moment, or is actively blocking you, so your call can't go through."
- return
-
- var/list/choices = list()
- for(var/obj/item/device/communicator/comm in all_communicators)
- if(!comm.network_visibility || !comm.exonet || !comm.exonet.address)
- continue
- choices.Add(comm)
-
- if(!choices.len)
- src << "There are no available communicators, sorry."
- return
-
- var/choice = input(src,"Send a text message to whom?") as null|anything in choices
- if(choice)
- var/obj/item/device/communicator/chosen_communicator = choice
- var/mob/observer/dead/O = src
- var/text_message = sanitize(input(src, "What do you want the message to say?")) as message
- if(text_message && O.exonet)
- O.exonet.send_message(chosen_communicator.exonet.address, "text", text_message)
-
- src << "You have sent '[text_message]' to [chosen_communicator]."
- exonet_messages.Add("To [chosen_communicator]:
[text_message]")
- log_pda("[usr] (COMM: [src]) sent \"[text_message]\" to [chosen_communicator]")
- for(var/mob/M in player_list)
- if(M.stat == DEAD && M.is_preference_enabled(/datum/client_preference/ghost_ears))
- if(istype(M, /mob/new_player) || M.forbid_seeing_deadchat)
- continue
- if(M == src)
- continue
- M.show_message("Comm IM - [src] -> [chosen_communicator]: [text_message]")
-
-
-
-// Verb: show_text_messages()
-// Parameters: None
-// Description: Lets ghosts review messages they've sent or received.
-/mob/observer/dead/verb/show_text_messages()
- set category = "Ghost"
- set name = "Show Text Messages"
- set desc = "Allows you to see exonet text messages you've sent and received."
-
- var/HTML = "
Exonet Message Log"
- for(var/line in exonet_messages)
- HTML += line + "
"
- HTML +=""
- usr << browse(HTML, "window=log;size=400x444;border=1;can_resize=1;can_close=1;can_minimize=0")
-
-// Proc: connect_video()
-// Parameters: user - the mob doing the viewing of video, comm - the communicator at the far end
-// Description: Sets up a videocall and puts the first view into it using watch_video, and updates the icon
-/obj/item/device/communicator/proc/connect_video(mob/user,obj/item/device/communicator/comm)
- if((!user) || (!comm) || user.stat) return //KO or dead, or already in a video
-
- if(video_source) //Already in a video
- user << "You are already connected to a video call!"
- return
-
- if(user.blinded) //User is blinded
- user << "You cannot see well enough to do that!"
- return
-
- if(!(src in comm.communicating) || !comm.camera) //You called someone with a broken communicator or one that's fake or yourself or something
- user << "\icon[src]ERROR: Video failed. Either bandwidth is too low, or the other communicator is malfunctioning."
- return
-
- var/turf/t1 = get_turf(src)
- var/turf/t2 = get_turf(comm)
- if(!is_on_same_plane_or_station(t1.z, t2.z) || !video_source.can_use())
- user << "Request to establish video timed out!"
- return
-
- user << "\icon[src] Attempting to start video over existing call."
- sleep(30)
- user << "\icon[src] Please wait..."
-
- video_source = comm.camera
- comm.visible_message("\icon[src] New video connection from [comm].")
- watch_video(user)
- update_icon()
-
-// Proc: watch_video()
-// Parameters: user - the mob doing the viewing of video
-// Description: Moves a mob's eye to the far end for the duration of viewing the far end
-/obj/item/device/communicator/proc/watch_video(mob/user)
- if(!Adjacent(user) || !video_source) return
- user.set_machine(video_source)
- user.reset_view(video_source)
- to_chat(user,"Now viewing video session. To leave camera view, close the communicator window OR: OOC -> Cancel Camera View")
- to_chat(user,"To return to an active video session, use the communicator in your hand.")
- spawn(0)
- while(user.machine == video_source && (Adjacent(user) || loc == user))
- var/turf/T = get_turf(video_source)
- if(!T || !is_on_same_plane_or_station(T.z, user.z) || !video_source.can_use())
- user << "The screen bursts into static, then goes black."
- video_cleanup(user)
- return
- sleep(10)
-
- video_cleanup(user)
-
-// Proc: video_cleanup()
-// Parameters: user - the mob who doesn't want to see video anymore
-// Description: Cleans up mob's client when they stop watching a video
-/obj/item/device/communicator/proc/video_cleanup(mob/user)
- if(!user) return
-
- user.reset_view(null)
- user.unset_machine()
-
-// Proc: end_video()
-// Parameters: reason - the text reason to print for why it ended
-// Description: Ends the video call by clearing video_source
-/obj/item/device/communicator/proc/end_video(var/reason)
- video_source = null
-
- . = "\icon[src] [reason ? reason : "Video session ended"]."
-
- visible_message(.)
- update_icon()
-
-//For synths who have no hands.
-/obj/item/device/communicator/integrated
- name = "integrated communicator"
- desc = "A circuit used for long-range communications, able to be integrated into a system."
-
-//A stupid hack because synths don't use languages properly or something.
-//I don't want to go digging in saycode for a week, so BS it as translation software or something.
-
-// Proc: open_connection_to_ghost()
-// Parameters: 2 (refer to base definition for arguments)
-// Description: Synths don't use languages properly, so this is a bandaid fix until that can be resolved..
-/obj/item/device/communicator/integrated/open_connection_to_ghost(user, candidate)
- ..(user, candidate)
- spawn(1)
- for(var/mob/living/voice/V in contents)
- V.universal_speak = 1
- V.universal_understand = 1
-
-// Verb: activate()
-// Parameters: None
-// Description: Lets synths use their communicators without hands.
-/obj/item/device/communicator/integrated/verb/activate()
- set category = "AI IM"
- set name = "Use Communicator"
- set desc = "Utilizes your built-in communicator."
- set src in usr
-
- if(usr.stat == 2)
- usr << "You can't do that because you are dead!"
- return
-
- src.attack_self(usr)
-
-// Verb: activate()
-// Parameters: None
-// Description: Lets synths use their communicators without hands.
-/obj/item/device/communicator/integrated/verb/see_video()
- set category = "AI IM"
- set name = "View Comm. Video"
- set desc = "Utilizes your built-in communicator."
- set src in usr
-
- if(usr.stat == 2)
- usr << "You can't do that because you are dead!"
- return
-
- src.watch_video(usr)
-
// A camera preset for spawning in the communicator
/obj/machinery/camera/communicator
network = list(NETWORK_COMMUNICATORS)
diff --git a/code/game/objects/items/devices/communicator/integrated.dm b/code/game/objects/items/devices/communicator/integrated.dm
new file mode 100644
index 0000000000..a35d642632
--- /dev/null
+++ b/code/game/objects/items/devices/communicator/integrated.dm
@@ -0,0 +1,32 @@
+//For synths who have no hands.
+/obj/item/device/communicator/integrated
+ name = "integrated communicator"
+ desc = "A circuit used for long-range communications, able to be integrated into a system."
+
+//A stupid hack because synths don't use languages properly or something.
+//I don't want to go digging in saycode for a week, so BS it as translation software or something.
+
+// Proc: open_connection_to_ghost()
+// Parameters: 2 (refer to base definition for arguments)
+// Description: Synths don't use languages properly, so this is a bandaid fix until that can be resolved..
+/obj/item/device/communicator/integrated/open_connection_to_ghost(user, candidate)
+ ..(user, candidate)
+ spawn(1)
+ for(var/mob/living/voice/V in contents)
+ V.universal_speak = 1
+ V.universal_understand = 1
+
+// Verb: activate()
+// Parameters: None
+// Description: Lets synths use their communicators without hands.
+/obj/item/device/communicator/integrated/verb/activate()
+ set category = "AI IM"
+ set name = "Use Communicator"
+ set desc = "Utilizes your built-in communicator."
+ set src in usr
+
+ if(usr.stat == 2)
+ to_chat(usr, "You can't do that because you are dead!")
+ return
+
+ src.attack_self(usr)
\ No newline at end of file
diff --git a/code/game/objects/items/devices/communicator/messaging.dm b/code/game/objects/items/devices/communicator/messaging.dm
new file mode 100644
index 0000000000..c775a70499
--- /dev/null
+++ b/code/game/objects/items/devices/communicator/messaging.dm
@@ -0,0 +1,162 @@
+// Proc: receive_exonet_message()
+// Parameters: 4 (origin atom - the source of the message's holder, origin_address - where the message came from, message - the message received,
+// text - message text to send if message is of type "text")
+// Description: Handles voice requests and invite messages originating from both real communicators and ghosts. Also includes a ping response and IM function.
+/obj/item/device/communicator/receive_exonet_message(var/atom/origin_atom, origin_address, message, text)
+ if(message == "voice")
+ if(isobserver(origin_atom) || istype(origin_atom, /obj/item/device/communicator))
+ if(origin_atom in voice_invites)
+ var/user = null
+ if(ismob(origin_atom.loc))
+ user = origin_atom.loc
+ open_connection(user, origin_atom)
+ return
+ else if(origin_atom in voice_requests)
+ return //Spam prevention
+ else
+ request(origin_atom)
+ if(message == "ping")
+ if(network_visibility)
+ var/random = rand(200,350)
+ random = random / 10
+ exonet.send_message(origin_address, "64 bytes received from [exonet.address] ecmp_seq=1 ttl=51 time=[random] ms")
+ if(message == "text")
+ request_im(origin_atom, origin_address, text)
+ return
+
+// Proc: receive_exonet_message()
+// Parameters: 3 (origin atom - the source of the message's holder, origin_address - where the message came from, message - the message received)
+// Description: Handles voice requests and invite messages originating from both real communicators and ghosts. Also includes a ping response.
+/mob/observer/dead/receive_exonet_message(origin_atom, origin_address, message, text)
+ if(message == "voice")
+ if(istype(origin_atom, /obj/item/device/communicator))
+ var/obj/item/device/communicator/comm = origin_atom
+ if(src in comm.voice_invites)
+ comm.open_connection(src)
+ return
+ to_chat(src, "\icon[origin_atom] Receiving communicator request from [origin_atom]. To answer, use the Call Communicator \
+ verb, and select that name to answer the call.")
+ src << 'sound/machines/defib_SafetyOn.ogg'
+ comm.voice_invites |= src
+ if(message == "ping")
+ if(client && client.prefs.communicator_visibility)
+ var/random = rand(450,700)
+ random = random / 10
+ exonet.send_message(origin_address, "64 bytes received from [exonet.address] ecmp_seq=1 ttl=51 time=[random] ms")
+ if(message == "text")
+ to_chat(src, "\icon[origin_atom] Received text message from [origin_atom]: \"[text]\"")
+ src << 'sound/machines/defib_safetyOff.ogg'
+ exonet_messages.Add("From [origin_atom]:
[text]")
+ return
+
+// Proc: request_im()
+// Parameters: 3 (candidate - the communicator wanting to message the device, origin_address - the address of the sender, text - the message)
+// Description: Response to a communicator trying to message the device.
+// Adds them to the list of people that have messaged this device and adds the message to the message list.
+/obj/item/device/communicator/proc/request_im(var/atom/candidate, var/origin_address, var/text)
+ var/who = null
+ if(isobserver(candidate))
+ var/mob/observer/dead/ghost = candidate
+ who = ghost
+ im_list += list(list("address" = origin_address, "to_address" = exonet.address, "im" = text))
+ else if(istype(candidate, /obj/item/device/communicator))
+ var/obj/item/device/communicator/comm = candidate
+ who = comm.owner
+ comm.im_contacts |= src
+ im_list += list(list("address" = origin_address, "to_address" = exonet.address, "im" = text))
+ else return
+
+ im_contacts |= candidate
+
+ if(!who)
+ return
+
+ if(ringer)
+ playsound(loc, 'sound/machines/twobeep.ogg', 50, 1)
+ for (var/mob/O in hearers(2, loc))
+ O.show_message(text("\icon[src] *beep*"))
+
+ alert_called = 1
+ update_icon()
+
+ //Search for holder of the device.
+ var/mob/living/L = null
+ if(loc && isliving(loc))
+ L = loc
+
+ if(L)
+ to_chat(L, "\icon[src] Message from [who].")
+
+// Verb: text_communicator()
+// Parameters: None
+// Description: Allows a ghost to send a text message to a communicator.
+/mob/observer/dead/verb/text_communicator()
+ set category = "Ghost"
+ set name = "Text Communicator"
+ set desc = "If there is a communicator available, send a text message to it."
+
+ if(ticker.current_state < GAME_STATE_PLAYING)
+ to_chat(src, "The game hasn't started yet!")
+ return
+
+ if (!src.stat)
+ return
+
+ if (usr != src)
+ return //something is terribly wrong
+
+ for(var/mob/living/L in mob_list) //Simple check so you don't have dead people calling.
+ if(src.client.prefs.real_name == L.real_name)
+ to_chat(src, "Your identity is already present in the game world. Please load in a different character first.")
+ return
+
+ var/obj/machinery/exonet_node/E = get_exonet_node()
+ if(!E || !E.on || !E.allow_external_communicators)
+ to_chat(src, "The Exonet node at telecommunications is down at the moment, or is actively blocking you, \
+ so your call can't go through.")
+ return
+
+ var/list/choices = list()
+ for(var/obj/item/device/communicator/comm in all_communicators)
+ if(!comm.network_visibility || !comm.exonet || !comm.exonet.address)
+ continue
+ choices.Add(comm)
+
+ if(!choices.len)
+ to_chat(src, "There are no available communicators, sorry.")
+ return
+
+ var/choice = input(src,"Send a text message to whom?") as null|anything in choices
+ if(choice)
+ var/obj/item/device/communicator/chosen_communicator = choice
+ var/mob/observer/dead/O = src
+ var/text_message = sanitize(input(src, "What do you want the message to say?")) as message
+ if(text_message && O.exonet)
+ O.exonet.send_message(chosen_communicator.exonet.address, "text", text_message)
+
+ to_chat(src, "You have sent '[text_message]' to [chosen_communicator].")
+ exonet_messages.Add("To [chosen_communicator]:
[text_message]")
+ log_pda("[usr] (COMM: [src]) sent \"[text_message]\" to [chosen_communicator]")
+ for(var/mob/M in player_list)
+ if(M.stat == DEAD && M.is_preference_enabled(/datum/client_preference/ghost_ears))
+ if(istype(M, /mob/new_player) || M.forbid_seeing_deadchat)
+ continue
+ if(M == src)
+ continue
+ M.show_message("Comm IM - [src] -> [chosen_communicator]: [text_message]")
+
+
+
+// Verb: show_text_messages()
+// Parameters: None
+// Description: Lets ghosts review messages they've sent or received.
+/mob/observer/dead/verb/show_text_messages()
+ set category = "Ghost"
+ set name = "Show Text Messages"
+ set desc = "Allows you to see exonet text messages you've sent and received."
+
+ var/HTML = "Exonet Message Log"
+ for(var/line in exonet_messages)
+ HTML += line + "
"
+ HTML +=""
+ usr << browse(HTML, "window=log;size=400x444;border=1;can_resize=1;can_close=1;can_minimize=0")
\ No newline at end of file
diff --git a/code/game/objects/items/devices/communicator/phone.dm b/code/game/objects/items/devices/communicator/phone.dm
new file mode 100644
index 0000000000..293af38f0a
--- /dev/null
+++ b/code/game/objects/items/devices/communicator/phone.dm
@@ -0,0 +1,380 @@
+// Proc: add_communicating()
+// Parameters: 1 (comm - the communicator to add to communicating)
+// Description: Used when this communicator gets a new communicator to relay say/me messages to
+/obj/item/device/communicator/proc/add_communicating(obj/item/device/communicator/comm)
+ if(!comm || !istype(comm)) return
+
+ communicating |= comm
+ listening_objects |= src
+ update_icon()
+
+// Proc: del_communicating()
+// Parameters: 1 (comm - the communicator to remove from communicating)
+// Description: Used when this communicator is being asked to stop relaying say/me messages to another
+/obj/item/device/communicator/proc/del_communicating(obj/item/device/communicator/comm)
+ if(!comm || !istype(comm)) return
+
+ communicating.Remove(comm)
+ update_icon()
+
+// Proc: open_connection()
+// Parameters: 2 (user - the person who initiated the connecting being opened, candidate - the communicator or observer that will connect to the device)
+// Description: Typechecks the candidate, then calls the correct proc for further connecting.
+/obj/item/device/communicator/proc/open_connection(mob/user, var/atom/candidate)
+ if(isobserver(candidate))
+ voice_invites.Remove(candidate)
+ open_connection_to_ghost(user, candidate)
+ else
+ if(istype(candidate, /obj/item/device/communicator))
+ open_connection_to_communicator(user, candidate)
+
+// Proc: open_connection_to_communicator()
+// Parameters: 2 (user - the person who initiated this and will be receiving feedback information, candidate - someone else's communicator)
+// Description: Adds the candidate and src to each other's communicating lists, allowing messages seen by the devices to be relayed.
+/obj/item/device/communicator/proc/open_connection_to_communicator(mob/user, var/atom/candidate)
+ if(!istype(candidate, /obj/item/device/communicator))
+ return
+ var/obj/item/device/communicator/comm = candidate
+ voice_invites.Remove(candidate)
+ comm.voice_requests.Remove(src)
+
+ if(user)
+ comm.visible_message("\icon[src] Connecting to [src].")
+ to_chat(user, "\icon[src] Attempting to call [comm].")
+ sleep(10)
+ to_chat(user, "\icon[src] Dialing internally from [station_name()], [system_name()].") // Vorestation edit
+ sleep(20) //If they don't have an exonet something is very wrong and we want a runtime.
+ to_chat(user, "\icon[src] Connection re-routed to [comm] at [comm.exonet.address].")
+ sleep(40)
+ to_chat(user, "\icon[src] Connection to [comm] at [comm.exonet.address] established.")
+ comm.visible_message("\icon[src] Connection to [src] at [exonet.address] established.")
+ sleep(20)
+
+ src.add_communicating(comm)
+ comm.add_communicating(src)
+
+// Proc: open_connection_to_ghost()
+// Parameters: 2 (user - the person who initiated this, candidate - the ghost that will be turned into a voice mob)
+// Description: Pulls the candidate ghost from deadchat, makes a new voice mob, transfers their identity, then their client.
+/obj/item/device/communicator/proc/open_connection_to_ghost(mob/user, var/mob/candidate)
+ if(!isobserver(candidate))
+ return
+ //Handle moving the ghost into the new shell.
+ announce_ghost_joinleave(candidate, 0, "They are occupying a personal communications device now.")
+ voice_requests.Remove(candidate)
+ voice_invites.Remove(candidate)
+ var/mob/living/voice/new_voice = new /mob/living/voice(src) //Make the voice mob the ghost is going to be.
+ new_voice.transfer_identity(candidate) //Now make the voice mob load from the ghost's active character in preferences.
+ //Do some simple logging since this is a tad risky as a concept.
+ var/msg = "[candidate && candidate.client ? "[candidate.client.key]" : "*no key*"] ([candidate]) has entered [src], triggered by \
+ [user && user.client ? "[user.client.key]" : "*no key*"] ([user ? "[user]" : "*null*"]) at [x],[y],[z]. They have joined as [new_voice.name]."
+ message_admins(msg)
+ log_game(msg)
+ new_voice.mind = candidate.mind //Transfer the mind, if any.
+ new_voice.ckey = candidate.ckey //Finally, bring the client over.
+ voice_mobs.Add(new_voice)
+ listening_objects |= src
+
+ var/obj/screen/blackness = new() //Makes a black screen, so the candidate can't see what's going on before actually 'connecting' to the communicator.
+ blackness.screen_loc = ui_entire_screen
+ blackness.icon = 'icons/effects/effects.dmi'
+ blackness.icon_state = "1"
+ blackness.mouse_opacity = 2 //Can't see anything!
+ new_voice.client.screen.Add(blackness)
+
+ update_icon()
+
+ //Now for some connection fluff.
+ if(user)
+ to_chat(user, "\icon[src] Connecting to [candidate].")
+ to_chat(new_voice, "\icon[src] Attempting to call [src].")
+ sleep(10)
+ to_chat(new_voice, "\icon[src] Dialing to [station_name()], Kara Subsystem, [system_name()].")
+ sleep(20)
+ to_chat(new_voice, "\icon[src] Connecting to [station_name()] telecommunications array.")
+ sleep(40)
+ to_chat(new_voice, "\icon[src] Connection to [station_name()] telecommunications array established. Redirecting signal to [src].")
+ sleep(20)
+
+ //We're connected, no need to hide everything.
+ new_voice.client.screen.Remove(blackness)
+ qdel(blackness)
+
+ to_chat(new_voice, "\icon[src] Connection to [src] established.")
+ to_chat(new_voice, "To talk to the person on the other end of the call, just talk normally.")
+ to_chat(new_voice, "If you want to end the call, use the 'Hang Up' verb. The other person can also hang up at any time.")
+ to_chat(new_voice, "Remember, your character does not know anything you've learned from observing!")
+ if(new_voice.mind)
+ new_voice.mind.assigned_role = "Disembodied Voice"
+ if(user)
+ to_chat(user, "\icon[src] Your communicator is now connected to [candidate]'s communicator.")
+
+// Proc: close_connection()
+// Parameters: 3 (user - the user who initiated the disconnect, target - the mob or device being disconnected, reason - string shown when disconnected)
+// Description: Deletes specific voice_mobs or disconnects communicators, and shows a message to everyone when doing so. If target is null, all communicators
+// and voice mobs are removed.
+/obj/item/device/communicator/proc/close_connection(mob/user, var/atom/target, var/reason)
+ if(voice_mobs.len == 0 && communicating.len == 0)
+ return
+
+ for(var/mob/living/voice/voice in voice_mobs) //Handle ghost-callers
+ if(target && voice != target) //If no target is inputted, it deletes all of them.
+ continue
+ to_chat(voice, "\icon[src] [reason].")
+ visible_message("\icon[src] [reason].")
+ voice_mobs.Remove(voice)
+ qdel(voice)
+ update_icon()
+
+ for(var/obj/item/device/communicator/comm in communicating) //Now we handle real communicators.
+ if(target && comm != target)
+ continue
+ src.del_communicating(comm)
+ comm.del_communicating(src)
+ comm.visible_message("\icon[src] [reason].")
+ visible_message("\icon[src] [reason].")
+ if(comm.camera && video_source == comm.camera) //We hung up on the person on video
+ end_video()
+ if(camera && comm.video_source == camera) //We hung up on them while they were watching us
+ comm.end_video()
+
+ if(voice_mobs.len == 0 && communicating.len == 0)
+ listening_objects.Remove(src)
+
+// Proc: request()
+// Parameters: 1 (candidate - the ghost or communicator wanting to call the device)
+// Description: Response to a communicator or observer trying to call the device. Adds them to the list of requesters
+/obj/item/device/communicator/proc/request(var/atom/candidate)
+ if(candidate in voice_requests)
+ return
+ var/who = null
+ if(isobserver(candidate))
+ who = candidate.name
+ else if(istype(candidate, /obj/item/device/communicator))
+ var/obj/item/device/communicator/comm = candidate
+ who = comm.owner
+ comm.voice_invites |= src
+
+ if(!who)
+ return
+
+ voice_requests |= candidate
+
+ if(ringer)
+ playsound(loc, 'sound/machines/twobeep.ogg', 50, 1)
+ for (var/mob/O in hearers(2, loc))
+ O.show_message(text("\icon[src] *beep*"))
+
+ alert_called = 1
+ update_icon()
+
+ //Search for holder of the device.
+ var/mob/living/L = null
+ if(loc && isliving(loc))
+ L = loc
+
+ if(L)
+ to_chat(L, "\icon[src] Communications request from [who].")
+
+// Proc: del_request()
+// Parameters: 1 (candidate - the ghost or communicator to be declined)
+// Description: Declines a request and cleans up both ends
+/obj/item/device/communicator/proc/del_request(var/atom/candidate)
+ if(!(candidate in voice_requests))
+ return
+
+ if(isobserver(candidate))
+ to_chat(candidate, "Your communicator call request was declined.")
+ else if(istype(candidate, /obj/item/device/communicator))
+ var/obj/item/device/communicator/comm = candidate
+ comm.voice_invites -= src
+
+ voice_requests -= candidate
+
+ //Search for holder of our device.
+ var/mob/living/us = null
+ if(loc && isliving(loc))
+ us = loc
+
+ if(us)
+ to_chat(us, "\icon[src] Declined request.")
+
+// Proc: see_emote()
+// Parameters: 2 (M - the mob the emote originated from, text - the emote's contents)
+// Description: Relays the emote to all linked communicators.
+/obj/item/device/communicator/see_emote(mob/living/M, text)
+ var/rendered = "\icon[src] [text]"
+ for(var/obj/item/device/communicator/comm in communicating)
+ var/turf/T = get_turf(comm)
+ if(!T) return
+ var/list/in_range = get_mobs_and_objs_in_view_fast(T,world.view,0) //Range of 3 since it's a tiny video display
+ var/list/mobs_to_relay = in_range["mobs"]
+
+ for(var/mob/mob in mobs_to_relay) //We can't use visible_message(), or else we will get an infinite loop if two communicators hear each other.
+ var/dst = get_dist(get_turf(mob),get_turf(comm))
+ if(dst <= video_range)
+ mob.show_message(rendered)
+ else
+ to_chat(mob, "You can barely see some movement on \the [src]'s display.")
+
+ ..()
+
+// Proc: hear_talk()
+// Parameters: 4 (M - the mob the speech originated from, text - what is being said, verb - the word used to describe how text is being said, speaking - language
+// being used)
+// Description: Relays the speech to all linked communicators.
+/obj/item/device/communicator/hear_talk(mob/living/M, text, verb, datum/language/speaking)
+ for(var/obj/item/device/communicator/comm in communicating)
+
+ var/turf/T = get_turf(comm)
+ if(!T) return
+ var/list/in_range = get_mobs_and_objs_in_view_fast(T,world.view,0)
+ var/list/mobs_to_relay = in_range["mobs"]
+
+ for(var/mob/mob in mobs_to_relay)
+ //Can whoever is hearing us understand?
+ if(!mob.say_understands(M, speaking))
+ if(speaking)
+ text = speaking.scramble(text)
+ else
+ text = stars(text)
+ var/name_used = M.GetVoice()
+ var/rendered = null
+ if(speaking) //Language being used
+ rendered = "\icon[src] [name_used] [speaking.format_message(text, verb)]"
+ else
+ rendered = "\icon[src] [name_used] [verb], \"[text]\""
+ mob.show_message(rendered, 2)
+
+// Proc: show_message()
+// Parameters: 4 (msg - the message, type - number to determine if message is visible or audible, alt - unknown, alt_type - unknown)
+// Description: Relays the message to all linked communicators.
+/obj/item/device/communicator/show_message(msg, type, alt, alt_type)
+ var/rendered = "\icon[src] [msg]"
+ for(var/obj/item/device/communicator/comm in communicating)
+ var/turf/T = get_turf(comm)
+ if(!T) return
+ var/list/in_range = get_mobs_and_objs_in_view_fast(T,world.view,0)
+ var/list/mobs_to_relay = in_range["mobs"]
+
+ for(var/mob/mob in mobs_to_relay)
+ mob.show_message(rendered)
+ ..()
+
+// Verb: join_as_voice()
+// Parameters: None
+// Description: Allows ghosts to call communicators, if they meet all the requirements.
+/mob/observer/dead/verb/join_as_voice()
+ set category = "Ghost"
+ set name = "Call Communicator"
+ set desc = "If there is a communicator available, send a request to speak through it. This will reset your respawn timer, if someone picks up."
+
+ if(ticker.current_state < GAME_STATE_PLAYING)
+ to_chat(src, "The game hasn't started yet!")
+ return
+
+ if (!src.stat)
+ return
+
+ if (usr != src)
+ return //something is terribly wrong
+
+ var/confirm = alert(src, "Would you like to talk as [src.client.prefs.real_name], over a communicator? \
+ This will reset your respawn timer, if someone answers.", "Join as Voice?", "Yes","No")
+ if(confirm == "No")
+ return
+
+ for(var/mob/living/L in mob_list) //Simple check so you don't have dead people calling.
+ if(src.client.prefs.real_name == L.real_name)
+ to_chat(src, "Your identity is already present in the game world. Please load in a different character first.")
+ return
+
+ var/obj/machinery/exonet_node/E = get_exonet_node()
+ if(!E || !E.on || !E.allow_external_communicators)
+ to_chat(src, "The Exonet node at telecommunications is down at the moment, or is actively blocking you, \
+ so your call can't go through.")
+ return
+
+ var/list/choices = list()
+ for(var/obj/item/device/communicator/comm in all_communicators)
+ if(!comm.network_visibility || !comm.exonet || !comm.exonet.address)
+ continue
+ choices.Add(comm)
+
+ if(!choices.len)
+ to_chat(src , "There are no available communicators, sorry.")
+ return
+
+ var/choice = input(src,"Send a voice request to whom?") as null|anything in choices
+ if(choice)
+ var/obj/item/device/communicator/chosen_communicator = choice
+ var/mob/observer/dead/O = src
+ if(O.exonet)
+ O.exonet.send_message(chosen_communicator.exonet.address, "voice")
+
+ to_chat(src, "A communications request has been sent to [chosen_communicator]. Now you need to wait until someone answers.")
+
+// Proc: connect_video()
+// Parameters: user - the mob doing the viewing of video, comm - the communicator at the far end
+// Description: Sets up a videocall and puts the first view into it using watch_video, and updates the icon
+/obj/item/device/communicator/proc/connect_video(mob/user,obj/item/device/communicator/comm)
+ if((!user) || (!comm) || user.stat) return //KO or dead, or already in a video
+
+ if(video_source) //Already in a video
+ to_chat(user, "You are already connected to a video call!")
+
+ if(user.blinded) //User is blinded
+ to_chat(user, "You cannot see well enough to do that!")
+
+ if(!(src in comm.communicating) || !comm.camera) //You called someone with a broken communicator or one that's fake or yourself or something
+ to_chat(user, "\icon[src]ERROR: Video failed. Either bandwidth is too low, or the other communicator is malfunctioning.")
+
+ to_chat(user, "\icon[src] Attempting to start video over existing call.")
+ sleep(30)
+ to_chat(user, "\icon[src] Please wait...")
+
+ video_source = comm.camera
+ comm.visible_message("\icon[src] New video connection from [comm].")
+ watch_video(user)
+ update_icon()
+
+// Proc: watch_video()
+// Parameters: user - the mob doing the viewing of video
+// Description: Moves a mob's eye to the far end for the duration of viewing the far end
+/obj/item/device/communicator/proc/watch_video(mob/user)
+ if(!Adjacent(user) || !video_source) return
+ user.set_machine(video_source)
+ user.reset_view(video_source)
+ to_chat(user,"Now viewing video session. To leave camera view, close the communicator window OR: OOC -> Cancel Camera View")
+ to_chat(user,"To return to an active video session, use the communicator in your hand.")
+ spawn(0)
+ while(user.machine == video_source && Adjacent(user))
+ var/turf/T = get_turf(video_source)
+ if(!T || !is_on_same_plane_or_station(T.z, user.z) || !video_source.can_use())
+ user << "The screen bursts into static, then goes black."
+ video_cleanup(user)
+ return
+ sleep(10)
+
+ video_cleanup(user)
+
+// Proc: video_cleanup()
+// Parameters: user - the mob who doesn't want to see video anymore
+// Description: Cleans up mob's client when they stop watching a video
+/obj/item/device/communicator/proc/video_cleanup(mob/user)
+ if(!user) return
+
+ user.reset_view(null)
+ user.unset_machine()
+
+// Proc: end_video()
+// Parameters: reason - the text reason to print for why it ended
+// Description: Ends the video call by clearing video_source
+/obj/item/device/communicator/proc/end_video(var/reason)
+ video_source = null
+
+ . = "\icon[src] [reason ? reason : "Video session ended"]."
+
+ visible_message(.)
+ update_icon()
+
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index cfd3b398e3..fd997a03c5 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -141,7 +141,7 @@
user.visible_message("\The [user] directs [src] to [M]'s eyes.", \
"You direct [src] to [M]'s eyes.")
- if(H == user) //can't look into your own eyes buster
+ if(H != user) //can't look into your own eyes buster
if(M.stat == DEAD || M.blinded) //mob is dead or fully blind
user << "\The [M]'s pupils do not react to the light!"
return
diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm
index e4c1bb3f20..f3bc620d08 100644
--- a/code/game/objects/items/devices/powersink.dm
+++ b/code/game/objects/items/devices/powersink.dm
@@ -26,7 +26,7 @@
/obj/item/device/powersink/Destroy()
processing_objects.Remove(src)
- processing_power_items.Remove(src)
+ STOP_PROCESSING_POWER_OBJECT(src)
..()
/obj/item/device/powersink/attackby(var/obj/item/I, var/mob/user)
@@ -50,7 +50,7 @@
else
if (mode == 2)
processing_objects.Remove(src) // Now the power sink actually stops draining the station's power if you unhook it. --NeoFite
- processing_power_items.Remove(src)
+ STOP_PROCESSING_POWER_OBJECT(src)
anchored = 0
mode = 0
src.visible_message("[user] detaches [src] from the cable!")
@@ -74,14 +74,14 @@
mode = 2
icon_state = "powersink1"
processing_objects.Add(src)
- processing_power_items.Add(src)
+ START_PROCESSING_POWER_OBJECT(src)
if(2) //This switch option wasn't originally included. It exists now. --NeoFite
src.visible_message("[user] deactivates [src]!")
mode = 1
set_light(0)
icon_state = "powersink0"
processing_objects.Remove(src)
- processing_power_items.Remove(src)
+ STOP_PROCESSING_POWER_OBJECT(src)
/obj/item/device/powersink/pwr_drain()
if(!attached)
diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm
index 3223e26649..1d515e863b 100644
--- a/code/game/objects/items/weapons/implants/implant.dm
+++ b/code/game/objects/items/weapons/implants/implant.dm
@@ -52,6 +52,7 @@
/obj/item/weapon/implant/Destroy()
if(part)
part.implants.Remove(src)
+ part = null
return ..()
/obj/item/weapon/implant/attackby(obj/item/I, mob/user)
diff --git a/code/game/objects/items/weapons/material/knives.dm b/code/game/objects/items/weapons/material/knives.dm
index 7b6e6184f1..375c6eee68 100644
--- a/code/game/objects/items/weapons/material/knives.dm
+++ b/code/game/objects/items/weapons/material/knives.dm
@@ -100,3 +100,4 @@
icon_state = "survivalknife"
item_state = "knife"
applies_material_colour = FALSE
+ should_cleave = FALSE
diff --git a/code/game/objects/items/weapons/material/misc.dm b/code/game/objects/items/weapons/material/misc.dm
index 6afacb30cb..d66cd3efab 100644
--- a/code/game/objects/items/weapons/material/misc.dm
+++ b/code/game/objects/items/weapons/material/misc.dm
@@ -32,6 +32,13 @@
origin_tech = list(TECH_MATERIAL = 2, TECH_COMBAT = 1)
attack_verb = list("chopped", "torn", "cut")
applies_material_colour = 0
+ var/should_cleave = TRUE // Because knives inherit from hatchets. For some reason.
+
+// This cannot go into afterattack since some mobs delete themselves upon dying.
+/obj/item/weapon/material/hatchet/pre_attack(var/mob/living/target, var/mob/living/user)
+ if(should_cleave && istype(target))
+ cleave(user, target)
+ ..()
/obj/item/weapon/material/hatchet/unathiknife
name = "duelling knife"
@@ -39,6 +46,7 @@
icon = 'icons/obj/weapons.dmi'
icon_state = "unathiknife"
attack_verb = list("ripped", "torn", "cut")
+ should_cleave = FALSE
var hits = 0
/obj/item/weapon/material/hatchet/unathiknife/attack(mob/M as mob, mob/user as mob)
@@ -56,6 +64,7 @@
hits = initial(hits)
..()
+// These probably shouldn't inherit from hatchets.
/obj/item/weapon/material/hatchet/tacknife
name = "tactical knife"
desc = "You'd be killing loads of people if this was Medal of Valor: Heroes of Space."
@@ -64,6 +73,7 @@
item_state = "knife"
attack_verb = list("stabbed", "chopped", "cut")
applies_material_colour = 1
+ should_cleave = FALSE
/obj/item/weapon/material/hatchet/tacknife/combatknife
name = "combat knife"
@@ -75,6 +85,7 @@
thrown_force_divisor = 1.75 // 20 with weight 20 (steel)
attack_verb = list("sliced", "stabbed", "chopped", "cut")
applies_material_colour = 1
+ should_cleave = FALSE
/obj/item/weapon/material/minihoe // -- Numbers
name = "mini hoe"
diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm
index 2533a07e63..c2952cfc1e 100644
--- a/code/game/objects/items/weapons/melee/energy.dm
+++ b/code/game/objects/items/weapons/melee/energy.dm
@@ -97,6 +97,12 @@
icon_state = initial(icon_state)
to_chat(user, "\The [src] is de-energised. It's just a regular axe now.")
+// This cannot go into afterattack since some mobs delete themselves upon dying.
+/obj/item/weapon/melee/energy/axe/pre_attack(var/mob/living/target, var/mob/living/user)
+ if(istype(target))
+ cleave(user, target)
+ ..()
+
/obj/item/weapon/melee/energy/axe/suicide_act(mob/user)
visible_message("\The [user] swings \the [src] towards \his head! It looks like \he's trying to commit suicide.")
return (BRUTELOSS|FIRELOSS)
diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm
index a58986b8a6..078548ed3f 100644
--- a/code/game/objects/items/weapons/storage/storage.dm
+++ b/code/game/objects/items/weapons/storage/storage.dm
@@ -592,8 +592,9 @@
/obj/item/weapon/storage/attack_self(mob/user as mob)
if((user.get_active_hand() == src) || (isrobot(user)) && allow_quick_empty)
- src.quick_empty()
- return 1 // Is this return even needed?
+ if(src.verbs.Find(/obj/item/weapon/storage/verb/quick_empty))
+ src.quick_empty()
+ return 1
//Returns the storage depth of an atom. This is the number of storage items the atom is contained in before reaching toplevel (the area).
//Returns -1 if the atom was not found on container.
diff --git a/code/game/objects/items/weapons/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm
index 4542da3085..82da1a2f33 100644
--- a/code/game/objects/items/weapons/tanks/tanks.dm
+++ b/code/game/objects/items/weapons/tanks/tanks.dm
@@ -67,10 +67,10 @@ var/list/global/tank_gauge_cache = list()
return
/obj/item/weapon/tank/Destroy()
- qdel(air_contents)
+ qdel_null(air_contents)
processing_objects.Remove(src)
- qdel(src.proxyassembly)
+ qdel_null(src.proxyassembly)
if(istype(loc, /obj/item/device/transfer_valve))
var/obj/item/device/transfer_valve/TTV = loc
@@ -609,6 +609,10 @@ var/list/global/tank_gauge_cache = list()
/obj/item/device/tankassemblyproxy/receive_signal() //This is mainly called by the sensor through sense() to the holder, and from the holder to here.
tank.ignite() //boom (or not boom if you made shijwtty mix)
+/obj/item/device/tankassemblyproxy/Destroy()
+ . = ..()
+ tank = null
+ assembly = null
/obj/item/weapon/tank/proc/assemble_bomb(W,user) //Bomb assembly proc. This turns assembly+tank into a bomb
var/obj/item/device/assembly_holder/S = W
diff --git a/code/game/objects/items/weapons/teleportation.dm b/code/game/objects/items/weapons/teleportation.dm
index 33ed9f96e1..c8af607576 100644
--- a/code/game/objects/items/weapons/teleportation.dm
+++ b/code/game/objects/items/weapons/teleportation.dm
@@ -133,7 +133,7 @@ Frequency:
/obj/item/weapon/hand_tele/attack_self(mob/user as mob)
var/turf/current_location = get_turf(user)//What turf is the user on?
- if(!current_location||current_location.z==2||current_location.z>=7 || current_location.block_tele)//If turf was not found or they're on z level 2 or >7 which does not currently exist.
+ if(!current_location || current_location.z in using_map.admin_levels || current_location.block_tele)//If turf was not found or they're on z level 2 or >7 which does not currently exist.
user << "\The [src] is malfunctioning."
return
var/list/L = list( )
diff --git a/code/game/objects/weapons.dm b/code/game/objects/weapons.dm
index b78f5d4585..7a619477ea 100644
--- a/code/game/objects/weapons.dm
+++ b/code/game/objects/weapons.dm
@@ -19,6 +19,8 @@
/obj/item/weapon/proc/cleave(var/mob/living/user, var/mob/living/target)
if(cleaving)
return // We're busy.
+ if(get_turf(user) == get_turf(target))
+ return // Otherwise we would hit all eight surrounding tiles.
cleaving = TRUE
var/hit_mobs = 0
for(var/mob/living/simple_animal/SA in orange(get_turf(target), 1))
@@ -35,6 +37,13 @@
if(resolve_attackby(SA, user)) // Hit them with the weapon. This won't cause recursive cleaving due to the cleaving variable being set to true.
hit_mobs++
+ cleave_visual(user, target)
+
if(hit_mobs)
to_chat(user, "You used \the [src] to attack [hit_mobs] other thing\s!")
- cleaving = FALSE // We're done now.
\ No newline at end of file
+ cleaving = FALSE // We're done now.
+
+// This is purely the visual effect of cleaving.
+/obj/item/weapon/proc/cleave_visual(var/mob/living/user, var/mob/living/target)
+ var/obj/effect/temporary_effect/cleave_attack/E = new(get_turf(src))
+ E.dir = get_dir(user, target)
\ No newline at end of file
diff --git a/code/game/turfs/simulated/floor_types.dm b/code/game/turfs/simulated/floor_types.dm
index 723998d4da..cd24c90839 100644
--- a/code/game/turfs/simulated/floor_types.dm
+++ b/code/game/turfs/simulated/floor_types.dm
@@ -181,6 +181,9 @@
icon_state = "alienplating"
block_tele = TRUE
+/turf/simulated/shuttle/floor/alienplating/external // For the outer rim of the UFO, to avoid active edges.
+// The actual temperature adjustment is defined if the SC or other future map is compiled.
+
/turf/simulated/shuttle/plating
name = "plating"
icon = 'icons/turf/floors.dmi'
diff --git a/code/global.dm b/code/global.dm
index b630b52074..70d4293e48 100644
--- a/code/global.dm
+++ b/code/global.dm
@@ -6,9 +6,9 @@
// Items that ask to be called every cycle.
var/global/datum/datacore/data_core = null
var/global/list/all_areas = list()
-var/global/list/machines = list()
+var/global/list/machines = list() // TODO - Move into SSmachines
var/global/list/processing_objects = list()
-var/global/list/processing_power_items = list()
+var/global/list/processing_power_items = list() // TODO - Move into SSmachines
var/global/list/active_diseases = list()
var/global/list/med_hud_users = list() // List of all entities using a medical HUD.
var/global/list/sec_hud_users = list() // List of all entities using a security HUD.
@@ -107,7 +107,7 @@ var/list/IClog = list()
var/list/OOClog = list()
var/list/adminlog = list()
-var/list/powernets = list()
+var/list/powernets = list() // TODO - Move into SSmachines
var/Debug2 = 0
var/datum/debug/debugobj
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index de0c88d170..5cc2b690f2 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -192,6 +192,7 @@ var/list/admin_verbs_debug = list(
/client/proc/cmd_admin_delete,
/client/proc/cmd_debug_del_all,
/client/proc/cmd_debug_tog_aliens,
+ /client/proc/cmd_display_del_log,
/client/proc/air_report,
/client/proc/reload_admins,
/client/proc/reload_eventMs,
@@ -309,6 +310,7 @@ var/list/admin_verbs_hideable = list(
/client/proc/cmd_debug_using_map,
/client/proc/cmd_debug_del_all,
/client/proc/cmd_debug_tog_aliens,
+ /client/proc/cmd_display_del_log,
/client/proc/air_report,
/client/proc/enable_debug_verbs,
/client/proc/roll_dices,
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index 7a3eec5ef5..b24c04b6f4 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -277,9 +277,9 @@
/client/proc/cmd_debug_make_powernets()
set category = "Debug"
set name = "Make Powernets"
- makepowernets()
- log_admin("[key_name(src)] has remade the powernet. makepowernets() called.")
- message_admins("[key_name_admin(src)] has remade the powernets. makepowernets() called.", 0)
+ SSmachines.makepowernets()
+ log_admin("[key_name(src)] has remade the powernet. SSmachines.makepowernets() called.")
+ message_admins("[key_name_admin(src)] has remade the powernets. SSmachines.makepowernets() called.", 0)
feedback_add_details("admin_verb","MPWN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_debug_tog_aliens()
@@ -291,6 +291,36 @@
message_admins("[key_name_admin(src)] has turned aliens [config.aliens_allowed ? "on" : "off"].", 0)
feedback_add_details("admin_verb","TAL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+/client/proc/cmd_display_del_log()
+ set category = "Debug"
+ set name = "Display del() Log"
+ set desc = "Display del's log of everything that's passed through it."
+
+ if(!check_rights(R_DEBUG)) return
+ var/list/dellog = list("List of things that have gone through qdel this round
")
+ sortTim(SSgarbage.items, cmp=/proc/cmp_qdel_item_time, associative = TRUE)
+ for(var/path in SSgarbage.items)
+ var/datum/qdel_item/I = SSgarbage.items[path]
+ dellog += "- [path]
"
+ if (I.failures)
+ dellog += "- Failures: [I.failures]
"
+ dellog += "- qdel() Count: [I.qdels]
"
+ dellog += "- Destroy() Cost: [I.destroy_time]ms
"
+ if (I.hard_deletes)
+ dellog += "- Total Hard Deletes [I.hard_deletes]
"
+ dellog += "- Time Spent Hard Deleting: [I.hard_delete_time]ms
"
+ if (I.slept_destroy)
+ dellog += "- Sleeps: [I.slept_destroy]
"
+ if (I.no_respect_force)
+ dellog += "- Ignored force: [I.no_respect_force]
"
+ if (I.no_hint)
+ dellog += "- No hint: [I.no_hint]
"
+ dellog += "
"
+
+ dellog += "
"
+
+ usr << browse(dellog.Join(), "window=dellog")
+
/client/proc/cmd_admin_grantfullaccess(var/mob/M in mob_list)
set category = "Admin"
set name = "Grant Full Access"
diff --git a/code/modules/client/client defines.dm b/code/modules/client/client defines.dm
index 5e5a176128..e4c5a10d35 100644
--- a/code/modules/client/client defines.dm
+++ b/code/modules/client/client defines.dm
@@ -49,6 +49,7 @@
var/related_accounts_ip = "Requires database" //So admins know why it isn't working - Used to determine what other accounts previously logged in from this ip
var/related_accounts_cid = "Requires database" //So admins know why it isn't working - Used to determine what other accounts previously logged in from this computer id
- preload_rsc = 0 // This is 0 so we can set it to an URL once the player logs in and have them download the resources from a different server.
+ preload_rsc = PRELOAD_RSC
+
var/global/obj/screen/click_catcher/void
-
+
diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm
index b90161293d..012a74ef6c 100644
--- a/code/modules/client/client procs.dm
+++ b/code/modules/client/client procs.dm
@@ -105,11 +105,6 @@
del(src)
return
- // Change the way they should download resources.
- if(config.resource_urls)
- src.preload_rsc = pick(config.resource_urls)
- else src.preload_rsc = 1 // If config.resource_urls is not set, preload like normal.
-
src << "If the title screen is black, resources are still downloading. Please be patient until the title screen appears."
@@ -296,8 +291,7 @@
if (holder)
sleep(1)
else
- sleep(5)
- stoplag()
+ stoplag(5)
/client/proc/last_activity_seconds()
return inactivity / 10
diff --git a/code/modules/client/preference_setup/occupation/occupation.dm b/code/modules/client/preference_setup/occupation/occupation.dm
index 727f66de9a..6975163cc2 100644
--- a/code/modules/client/preference_setup/occupation/occupation.dm
+++ b/code/modules/client/preference_setup/occupation/occupation.dm
@@ -54,7 +54,7 @@
if(alt_title && !(alt_title in job.alt_titles))
pref.player_alt_titles -= job.title
-/datum/category_item/player_setup_item/occupation/content(mob/user, limit = 17, list/splitJobs = list("Chief Medical Officer"))
+/datum/category_item/player_setup_item/occupation/content(mob/user, limit = 18, list/splitJobs = list("Chief Medical Officer"))
if(!job_master)
return
@@ -70,13 +70,14 @@
if (!job_master) return
for(var/datum/job/job in job_master.occupations)
if(job.latejoin_only) continue //VOREStation Code
- index += 1
- if((index >= limit) || (job.title in splitJobs))
+ if((++index >= limit) || (job.title in splitJobs))
+/*******
if((index < limit) && (lastJob != null))
//If the cells were broken up by a job in the splitJob list then it will fill in the rest of the cells with
- //the last job's selection color. Creating a rather nice effect.
- for(var/i = 0, i < (limit - index), i += 1)
- . += "|   |   |
"
+ //the last job's selection color and blank buttons that do nothing. Creating a rather nice effect.
+ for(var/i = 0, i < (limit - index), i++)
+ . += "| //>  |   |
"
+*******/
. += ""
index = 0
diff --git a/code/modules/clothing/spacesuits/spacesuits.dm b/code/modules/clothing/spacesuits/spacesuits.dm
index a39b6809c6..8eb3ad56c9 100644
--- a/code/modules/clothing/spacesuits/spacesuits.dm
+++ b/code/modules/clothing/spacesuits/spacesuits.dm
@@ -17,7 +17,7 @@
species_restricted = list("exclude","Diona")
preserve_item = 1
phoronproof = 1
- flash_protection = FLASH_PROTECTION_NONE
+ flash_protection = FLASH_PROTECTION_MAJOR
var/obj/machinery/camera/camera
var/list/camera_networks
diff --git a/code/modules/integrated_electronics/core/assemblies.dm b/code/modules/integrated_electronics/core/assemblies.dm
index b66c6b8b2d..6404e2a579 100644
--- a/code/modules/integrated_electronics/core/assemblies.dm
+++ b/code/modules/integrated_electronics/core/assemblies.dm
@@ -53,11 +53,9 @@
processing_objects |= src
/obj/item/device/electronic_assembly/Destroy()
- battery = null
+ battery = null // It will be qdel'd by ..() if still in our contents
processing_objects -= src
- for(var/atom/movable/AM in contents)
- qdel(AM)
- ..()
+ return ..()
/obj/item/device/electronic_assembly/process()
handle_idle_power()
diff --git a/code/modules/integrated_electronics/subtypes/manipulation.dm b/code/modules/integrated_electronics/subtypes/manipulation.dm
index 7d22bc49a4..3e53a069f3 100644
--- a/code/modules/integrated_electronics/subtypes/manipulation.dm
+++ b/code/modules/integrated_electronics/subtypes/manipulation.dm
@@ -25,8 +25,8 @@
power_draw_per_use = 50 // The targeting mechanism uses this. The actual gun uses its own cell for firing if it's an energy weapon.
/obj/item/integrated_circuit/manipulation/weapon_firing/Destroy()
- qdel(installed_gun)
- ..()
+ installed_gun = null // It will be qdel'd by ..() if still in our contents
+ return ..()
/obj/item/integrated_circuit/manipulation/weapon_firing/attackby(var/obj/O, var/mob/user)
if(istype(O, /obj/item/weapon/gun))
diff --git a/code/modules/maps/tg/map_template.dm b/code/modules/maps/tg/map_template.dm
index 54b08c74d9..4307149b5f 100644
--- a/code/modules/maps/tg/map_template.dm
+++ b/code/modules/maps/tg/map_template.dm
@@ -98,7 +98,7 @@ var/list/global/map_templates = list()
admin_notice("[i] pipe\s initialized.", R_DEBUG)
admin_notice("Rebuilding powernets due to submap creation.", R_DEBUG)
- makepowernets()
+ SSmachines.makepowernets()
admin_notice("Submap initializations finished.", R_DEBUG)
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 821f655524..75d4fcf836 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -726,8 +726,6 @@
add_clothing_protection(glasses)
if(istype(src.wear_mask, /obj/item/clothing/mask))
add_clothing_protection(wear_mask)
- if(istype(back,/obj/item/weapon/rig))
- add_clothing_protection(back)
return flash_protection
diff --git a/code/modules/mob/living/simple_animal/aliens/alien.dm b/code/modules/mob/living/simple_animal/aliens/alien.dm
index dbe990e366..d31efe6df8 100644
--- a/code/modules/mob/living/simple_animal/aliens/alien.dm
+++ b/code/modules/mob/living/simple_animal/aliens/alien.dm
@@ -6,6 +6,7 @@
icon_living = "alienh_running"
icon_dead = "alien_l"
icon_gib = "syndicate_gib"
+ icon_rest = "alienh_sleep"
faction = "xeno"
intelligence_level = SA_HUMANOID
@@ -50,6 +51,7 @@
icon_state = "aliend_running"
icon_living = "aliend_running"
icon_dead = "aliend_l"
+ icon_rest = "aliend_sleep"
health = 60
melee_damage_lower = 15
melee_damage_upper = 15
@@ -59,6 +61,7 @@
icon_state = "aliens_running"
icon_living = "aliens_running"
icon_dead = "aliens_l"
+ icon_rest = "aliens_sleep"
health = 120
melee_damage_lower = 15
melee_damage_upper = 15
@@ -72,6 +75,7 @@
icon_state = "prat_s"
icon_living = "prat_s"
icon_dead = "prat_dead"
+ icon_rest = "prat_sleep"
move_to_delay = 5
maxHealth = 200
health = 200
@@ -85,6 +89,7 @@
icon_state = "alienq_running"
icon_living = "alienq_running"
icon_dead = "alienq_l"
+ icon_rest = "alienq_sleep"
health = 250
maxHealth = 250
melee_damage_lower = 15
@@ -102,6 +107,7 @@
icon_state = "queen_s"
icon_living = "queen_s"
icon_dead = "queen_dead"
+ icon_rest = "queen_sleep"
move_to_delay = 4
maxHealth = 400
health = 400
@@ -117,6 +123,7 @@
icon_state = "empress_s"
icon_living = "empress_s"
icon_dead = "empress_dead"
+ icon_rest = "empress_rest"
maxHealth = 600
health = 600
meat_amount = 10
diff --git a/code/modules/mob/living/simple_animal/animals/cat.dm b/code/modules/mob/living/simple_animal/animals/cat.dm
index d9fd5eb6dc..fa5915c33d 100644
--- a/code/modules/mob/living/simple_animal/animals/cat.dm
+++ b/code/modules/mob/living/simple_animal/animals/cat.dm
@@ -7,6 +7,7 @@
item_state = "cat2"
icon_living = "cat2"
icon_dead = "cat2_dead"
+ icon_rest = "cat2_rest"
hostile = 1 //To mice, anyway.
investigates = 1
@@ -160,6 +161,7 @@
item_state = "cat"
icon_living = "cat"
icon_dead = "cat_dead"
+ icon_rest = "cat_rest"
befriend_job = "Chief Medical Officer"
/mob/living/simple_animal/cat/kitten
@@ -186,6 +188,7 @@
item_state = "cat3"
icon_living = "cat3"
icon_dead = "cat3_dead"
+ icon_rest = "cat3_rest"
holder_type = /obj/item/weapon/holder/cat/fluff/bones
var/friend_name = "Erstatz Vryroxes"
diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm
index 868fd2aaec..273e6fe716 100644
--- a/code/modules/mob/living/simple_animal/simple_animal.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal.dm
@@ -1172,7 +1172,7 @@
//They ran away!
else
ai_log("AttackTarget() out of range!",3)
- sleep(1) // Unfortunately this is needed to protect from ClosestDistance() sometimes not updating fast enough to prevent an infinite loop.
+ stoplag(1) // Unfortunately this is needed to protect from ClosestDistance() sometimes not updating fast enough to prevent an infinite loop.
handle_stance(STANCE_ATTACK)
return 0
diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm
index 4148856d72..93b1f0e9c6 100644
--- a/code/modules/mob/living/simple_animal/slime/slime.dm
+++ b/code/modules/mob/living/simple_animal/slime/slime.dm
@@ -85,10 +85,12 @@
/mob/living/simple_animal/slime/purple
)
var/type_on_death = null // Set this if you want dying slimes to split into a specific type and not their type.
+ var/rainbow_core_candidate = TRUE // If false, rainbow cores cannot make this type randomly.
var/reagent_injected = null // Some slimes inject reagents on attack. This tells the game what reagent to use.
var/injection_amount = 5 // This determines how much.
+
can_enter_vent_with = list(
/obj/item/clothing/head,
)
diff --git a/code/modules/mob/living/simple_animal/slime/subtypes.dm b/code/modules/mob/living/simple_animal/slime/subtypes.dm
index c064048945..b7610d466b 100644
--- a/code/modules/mob/living/simple_animal/slime/subtypes.dm
+++ b/code/modules/mob/living/simple_animal/slime/subtypes.dm
@@ -209,9 +209,9 @@
/mob/living/simple_animal/slime/dark_blue/get_cold_protection()
return 1 // This slime is immune to cold.
-// Surfave variant
-/mob/living/simple_animal/slime/dark_blue/wild
- name = "wild slime"
+// Surface variant
+/mob/living/simple_animal/slime/dark_blue/feral
+ name = "feral slime"
desc = "The result of slimes escaping containment from some xenobiology lab. The slime makes other entities near it feel much colder, \
and it is more resilient to the cold. These qualities have made this color of slime able to thrive on a harsh, cold world and is able to rival \
the ferocity of other apex predators in this region of Sif. As such, it is a very invasive species."
@@ -220,13 +220,14 @@
icon_scale = 2
optimal_combat = TRUE // Gotta be sharp to survive out there.
rabid = TRUE
+ rainbow_core_candidate = FALSE
cores = 6
- maxHealth = 150 // Base health
+ maxHealth = 150
maxHealth_adult = 250
type_on_death = /mob/living/simple_animal/slime/dark_blue // Otherwise infinite slimes might occur.
pixel_y = -10 // Since the base sprite isn't centered properly, the pixel auto-adjustment needs some help.
-/mob/living/simple_animal/slime/dark_blue/wild/New()
+/mob/living/simple_animal/slime/dark_blue/feral/New()
..()
make_adult()
@@ -735,6 +736,7 @@
/mob/living/simple_animal/slime/rainbow/kendrick
name = "Kendrick"
desc = "The Research Director's pet slime. It shifts colors constantly."
+ rainbow_core_candidate = FALSE
/mob/living/simple_animal/slime/rainbow/kendrick/New()
pacify()
diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm
index 0a8189fc06..97fe494880 100644
--- a/code/modules/mob/mob_helpers.dm
+++ b/code/modules/mob/mob_helpers.dm
@@ -400,7 +400,7 @@ proc/is_blind(A)
return // Can't talk in deadchat if you can't see it.
for(var/mob/M in player_list)
- if(M.client && ((!istype(M, /mob/new_player) && M.stat == DEAD) || M.client.holder) && M.is_preference_enabled(/datum/client_preference/show_dsay)) //VOREStation Edit - Why'd you make it so admins can't see deadchat?
+ if(M.client && ((!istype(M, /mob/new_player) && M.stat == DEAD) || (M.client.holder && M.client.holder.rights)) && M.is_preference_enabled(/datum/client_preference/show_dsay))
var/follow
var/lname
if(M.forbid_seeing_deadchat && !M.client.holder)
@@ -615,4 +615,4 @@ var/list/global/organ_rel_size = list(
)
/mob/proc/flash_eyes(intensity = FLASH_PROTECTION_MODERATE, override_blindness_check = FALSE, affect_silicon = FALSE, visual = FALSE, type = /obj/screen/fullscreen/flash)
- return
\ No newline at end of file
+ return
diff --git a/code/modules/multiz/hoist.dm b/code/modules/multiz/hoist.dm
new file mode 100644
index 0000000000..9277d17ff9
--- /dev/null
+++ b/code/modules/multiz/hoist.dm
@@ -0,0 +1,270 @@
+///////////////////////////
+// Dost thou even hoist? //
+///////////////////////////
+
+#define NORMAL_LAYER 3
+
+/obj/item/hoist_kit
+ name = "hoist kit"
+ desc = "A setup kit for a hoist that can be used to lift things. The hoist will deploy in the direction you're facing."
+ icon = 'icons/obj/hoists.dmi'
+ icon_state = "hoist_case"
+
+/obj/item/hoist_kit/attack_self(mob/user)
+ new /obj/structure/hoist (get_turf(user), user.dir)
+ user.visible_message(span("warning", "[user] deploys the hoist kit!"), span("notice", "You deploy the hoist kit!"), span("notice", "You hear the sound of parts snapping into place."))
+ qdel(src)
+
+/obj/effect/hoist_hook
+ name = "hoist clamp"
+ desc = "A clamp used to lift people or things."
+ icon = 'icons/obj/hoists.dmi'
+ icon_state = "hoist_hook"
+ var/obj/structure/hoist/source_hoist
+ can_buckle = 1
+ anchored = 1
+ description_info = "Click and drag someone (or any object) to this to attach them to the clamp. If you are within reach, when you click and drag this to a turf adjacent to you, it will move the attached object there and release it."
+
+/obj/effect/hoist_hook/attack_hand(mob/living/user)
+ return // This has to be overridden so that it works properly.
+
+/obj/effect/hoist_hook/MouseDrop_T(atom/movable/AM,mob/user)
+ if (use_check(user, USE_DISALLOW_SILICONS))
+ return
+
+ if (!AM.simulated || AM.anchored)
+ to_chat(user, span("notice", "You can't do that."))
+ return
+ if (source_hoist.hoistee)
+ to_chat(user, span("notice", "\The [source_hoist.hoistee] is already attached to \the [src]!"))
+ return
+ source_hoist.attach_hoistee(AM)
+ user.visible_message(span("danger", "[user] attaches \the [AM] to \the [src]."), span("danger", "You attach \the [AM] to \the [src]."), span("danger", "You hear something clamp into place."))
+
+/obj/structure/hoist/proc/attach_hoistee(atom/movable/AM)
+ if (get_turf(AM) != get_turf(source_hook))
+ AM.forceMove(get_turf(source_hook))
+ hoistee = AM
+ if(ismob(AM))
+ source_hook.buckle_mob(AM)
+ AM.anchored = 1 // why isn't this being set by buckle_mob for silicons?
+ source_hook.layer = AM.layer + 0.1
+
+/obj/effect/hoist_hook/MouseDrop(atom/dest)
+ ..()
+ if(!Adjacent(usr) || !dest.Adjacent(usr)) return // carried over from the default proc
+
+ if (!ishuman(usr))
+ return
+
+ if (usr.incapacitated())
+ to_chat(usr, span("notice", "You can't do that while incapacitated."))
+ return
+
+ if (!usr.IsAdvancedToolUser())
+ to_chat(usr, span("notice", "You stare cluelessly at \the [src]."))
+ return
+
+ if (!source_hoist.hoistee)
+ return
+ if (!isturf(dest))
+ return
+ if (!dest.Adjacent(source_hoist.hoistee))
+ return
+
+ source_hoist.check_consistency()
+
+ var/turf/desturf = dest
+ source_hoist.hoistee.forceMove(desturf)
+ usr.visible_message(span("danger", "[usr] detaches \the [source_hoist.hoistee] from the hoist clamp."), span("danger", "You detach \the [source_hoist.hoistee] from the hoist clamp."), span("danger", "You hear something unclamp."))
+ source_hoist.release_hoistee()
+
+// This will handle mobs unbuckling themselves.
+/obj/effect/hoist_hook/unbuckle_mob()
+ . = ..()
+ if (. && !QDELETED(source_hoist))
+ var/mob/M = .
+ source_hoist.hoistee = null
+ M.fall()
+
+/obj/structure/hoist
+ icon = 'icons/obj/hoists.dmi'
+ icon_state = "hoist_base"
+ var/broken = 0
+ density = 1
+ anchored = 1
+ name = "hoist"
+ desc = "A manual hoist, uses a clamp and pulley to hoist things."
+ var/atom/movable/hoistee
+ var/movedir = UP
+ var/obj/effect/hoist_hook/source_hook
+ description_info = "Click this to raise or lower the hoist, or to switch directions if it can't move any further. It can also be collapsed into a hoist kit."
+
+/obj/structure/hoist/initialize(mapload, ndir)
+ . = ..()
+ dir = ndir
+ var/turf/newloc = get_step(src, dir)
+ source_hook = new(newloc)
+ source_hook.source_hoist = src
+
+/obj/structure/hoist/Destroy()
+ if(hoistee)
+ release_hoistee()
+ qdel_null(src.source_hook)
+ return ..()
+
+/obj/effect/hoist_hook/Destroy()
+ source_hoist = null
+ return ..()
+
+/obj/structure/hoist/proc/check_consistency()
+ if (!hoistee)
+ return
+ if (hoistee.z != source_hook.z)
+ release_hoistee()
+ return
+
+/obj/structure/hoist/proc/release_hoistee()
+ if(ismob(hoistee))
+ source_hook.unbuckle_mob(hoistee)
+ else
+ hoistee.anchored = 0
+ hoistee = null
+ layer = NORMAL_LAYER
+
+/obj/structure/hoist/proc/break_hoist()
+ if(broken)
+ return
+ broken = 1
+ desc += " It looks broken, and the clamp has retracted back into the hoist. Seems like you'd have to re-deploy it to get it to work again."
+ if(hoistee)
+ release_hoistee()
+ qdel_null(source_hook)
+
+/obj/structure/hoist/ex_act(severity)
+ switch(severity)
+ if(1.0)
+ qdel(src)
+ return
+ if(2.0)
+ if(prob(50))
+ qdel(src)
+ else
+ visible_message("\The [src] shakes violently, and neatly collapses as its damage sensors go off.")
+ collapse_kit()
+ return
+ if(3.0)
+ if(prob(50) && !broken)
+ break_hoist()
+ return
+
+/obj/effect/hoist_hook/ex_act(severity)
+ switch(severity)
+ if(1.0)
+ source_hoist.break_hoist()
+ return
+ if(2.0)
+ if(prob(50))
+ source_hoist.break_hoist()
+ return
+ if(3.0)
+ if(prob(25))
+ source_hoist.break_hoist()
+ return
+
+
+/obj/structure/hoist/attack_hand(mob/living/user)
+ if (!ishuman(user))
+ return
+
+ if (user.incapacitated())
+ to_chat(user, span("notice", "You can't do that while incapacitated."))
+ return
+
+ if (!user.IsAdvancedToolUser())
+ to_chat(user, span("notice", "You stare cluelessly at \the [src]."))
+ return
+
+ if(broken)
+ to_chat(user, span("warning", "The hoist is broken!"))
+ return
+ var/can = can_move_dir(movedir)
+ var/movtext = movedir == UP ? "raise" : "lower"
+ if (!can) // If you can't...
+ movedir = movedir == UP ? DOWN : UP // switch directions!
+ to_chat(user, span("notice", "You switch the direction of the pulley."))
+ return
+
+ if (!hoistee)
+ user.visible_message(span("notice", "[user] begins to [movtext] the clamp."), span("notice", "You begin to [movtext] the clamp."), span("notice", "You hear the sound of a crank."))
+ move_dir(movedir, 0)
+ return
+
+ check_consistency()
+
+ var/size
+ if (ismob(hoistee))
+ var/mob/M = hoistee
+ size = M.mob_size
+ else if (isobj(hoistee))
+ var/obj/O = hoistee
+ size = O.w_class
+
+ user.visible_message(span("notice", "[user] begins to [movtext] \the [hoistee]!"), span("notice", "You begin to [movtext] \the [hoistee]!"), span("notice", "You hear the sound of a crank."))
+ if (do_after(user, (1 SECONDS) * size / 4, act_target = src))
+ move_dir(movedir, 1)
+
+/obj/structure/hoist/proc/collapse_kit()
+ new /obj/item/hoist_kit(get_turf(src))
+ qdel(src)
+
+/obj/structure/hoist/verb/collapse_hoist()
+ set name = "Collapse Hoist"
+ set category = "Object"
+ set src in range(1)
+
+ if (!ishuman(usr))
+ return
+
+ if (isobserver(usr) || usr.incapacitated())
+ return
+ if (!usr.IsAdvancedToolUser()) // thanks nanacode
+ to_chat(usr, span("notice", "You stare cluelessly at \the [src]."))
+ return
+
+ if (hoistee)
+ to_chat(usr, span("notice", "You cannot collapse the hoist with \the [hoistee] attached!"))
+ return
+ collapse_kit()
+
+/obj/structure/hoist/proc/can_move_dir(direction)
+ var/turf/dest = direction == UP ? GetAbove(source_hook) : GetBelow(source_hook)
+ switch(direction)
+ if (UP)
+ if (!isopenspace(dest)) // can't move into a solid tile
+ return 0
+ if (source_hook in get_step(src, dir)) // you don't get to move above the hoist
+ return 0
+ if (DOWN)
+ if (!isopenspace(get_turf(source_hook))) // can't move down through a solid tile
+ return 0
+ if (!dest) // can't move if there's nothing to move to
+ return 0
+ return 1
+
+/obj/structure/hoist/proc/move_dir(direction, ishoisting)
+ var/can = can_move_dir(direction)
+ if (!can)
+ return 0
+ var/turf/move_dest = direction == UP ? GetAbove(source_hook) : GetBelow(source_hook)
+ source_hook.forceMove(move_dest)
+ if (!ishoisting)
+ return 1
+ hoistee.hoist_act(move_dest)
+ return 1
+
+/atom/movable/proc/hoist_act(turf/dest)
+ forceMove(dest)
+ return TRUE
+
+#undef NORMAL_LAYER
diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm
index a43533e73a..587bcd0686 100644
--- a/code/modules/organs/organ_external.dm
+++ b/code/modules/organs/organ_external.dm
@@ -877,6 +877,7 @@ Note that amputating the affected organ does in fact remove the infection from t
switch(disintegrate)
if(DROPLIMB_EDGE)
+ appearance_flags &= ~PIXEL_SCALE
compile_icon()
add_blood(victim)
var/matrix/M = matrix()
diff --git a/code/modules/power/antimatter/shielding.dm b/code/modules/power/antimatter/shielding.dm
index 4c937d5d2a..6a2dc58056 100644
--- a/code/modules/power/antimatter/shielding.dm
+++ b/code/modules/power/antimatter/shielding.dm
@@ -151,7 +151,7 @@ proc/cardinalrange(var/center)
/obj/machinery/am_shielding/proc/setup_core()
processing = 1
- machines.Add(src)
+ START_MACHINE_PROCESSING(src)
if(!control_unit) return
control_unit.linked_cores.Add(src)
control_unit.reported_core_efficiency += efficiency
diff --git a/code/modules/power/pacman2.dm b/code/modules/power/pacman2.dm
index fc5b58709a..b6b904e65a 100644
--- a/code/modules/power/pacman2.dm
+++ b/code/modules/power/pacman2.dm
@@ -84,7 +84,7 @@
user << "You secure the generator to the floor."
else
user << "You unsecure the generator from the floor."
- makepowernets()
+ SSmachines.makepowernets()
else if(istype(O, /obj/item/weapon/screwdriver))
open = !open
playsound(loc, O.usesound, 50, 1)
diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm
index 76320db479..ba833d858f 100644
--- a/code/modules/power/power.dm
+++ b/code/modules/power/power.dm
@@ -230,22 +230,6 @@
. += C
return .
-/hook/startup/proc/buildPowernets()
- return makepowernets()
-
-// rebuild all power networks from scratch - only called at world creation or by the admin verb
-/proc/makepowernets()
- for(var/datum/powernet/PN in powernets)
- qdel(PN)
- powernets.Cut()
-
- for(var/obj/structure/cable/PC in cable_list)
- if(!PC.powernet)
- var/datum/powernet/NewPN = new()
- NewPN.add_cable(PC)
- propagate_network(PC,PC.powernet)
- return 1
-
//remove the old powernet and replace it with a new one throughout the network.
/proc/propagate_network(var/obj/O, var/datum/powernet/PN)
//world.log << "propagating new network"
diff --git a/code/modules/power/powernet.dm b/code/modules/power/powernet.dm
index ebd88df3e2..d8f57baf3b 100644
--- a/code/modules/power/powernet.dm
+++ b/code/modules/power/powernet.dm
@@ -15,7 +15,7 @@
var/problem = 0 // If this is not 0 there is some sort of issue in the powernet. Monitors will display warnings.
/datum/powernet/New()
- powernets += src
+ START_PROCESSING_POWERNET(src)
..()
/datum/powernet/Destroy()
@@ -25,7 +25,7 @@
for(var/obj/machinery/power/M in nodes)
nodes -= M
M.powernet = null
- powernets -= src
+ STOP_PROCESSING_POWERNET(src)
return ..()
//Returns the amount of excess power (before refunding to SMESs) from last tick.
diff --git a/code/modules/projectiles/guns/magnetic/magnetic_railgun.dm b/code/modules/projectiles/guns/magnetic/magnetic_railgun.dm
index fe9aa576ef..82f10cae24 100644
--- a/code/modules/projectiles/guns/magnetic/magnetic_railgun.dm
+++ b/code/modules/projectiles/guns/magnetic/magnetic_railgun.dm
@@ -16,6 +16,7 @@
var/initial_capacitor_type = /obj/item/weapon/stock_parts/capacitor/adv
var/slowdown_held = 2
var/slowdown_worn = 1
+ var/empty_sound = 'sound/machines/twobeep.ogg'
/obj/item/weapon/gun/magnetic/railgun/New()
capacitor = new initial_capacitor_type(src)
@@ -43,14 +44,13 @@
var/obj/item/weapon/rcd_ammo/ammo = loaded
ammo.remaining--
if(ammo.remaining <= 0)
- spawn(3)
- playsound(src.loc, 'sound/machines/twobeep.ogg', 50, 1)
out_of_ammo()
/obj/item/weapon/gun/magnetic/railgun/proc/out_of_ammo()
- qdel(loaded)
+ loaded.forceMove(get_turf(src))
loaded = null
- visible_message("\The [src] beeps and ejects its empty cartridge.")
+ visible_message("\The [src] beeps and ejects its empty cartridge.","There's a beeping sound!")
+ playsound(get_turf(src), empty_sound, 40, 1)
/obj/item/weapon/gun/magnetic/railgun/automatic // Adminspawn only, this shit is absurd.
name = "\improper RHR accelerator"
@@ -92,13 +92,9 @@
projectile_type = /obj/item/projectile/bullet/magnetic/flechette
loaded = /obj/item/weapon/magnetic_ammo
fire_sound = 'sound/weapons/rapidslice.ogg'
+ empty_sound = 'sound/weapons/smg_empty_alarm.ogg'
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, one_handed_penalty=1, burst_accuracy=null, dispersion=null),
list(mode_name="short bursts", burst=3, fire_delay=null, move_delay=5, one_handed_penalty=2, burst_accuracy=list(0,-1,-1), dispersion=list(0.0, 0.6, 1.0)),
)
-
-/obj/item/weapon/gun/magnetic/railgun/flechette/out_of_ammo()
- audible_message("\The [src] beeps to indicate the magazine is empty.")
- playsound(loc, 'sound/weapons/smg_empty_alarm.ogg', 40, 1)
- ..()
diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm
index 6ecd4caf63..f7fed5fa76 100644
--- a/code/modules/reagents/Chemistry-Recipes.dm
+++ b/code/modules/reagents/Chemistry-Recipes.dm
@@ -2172,7 +2172,7 @@
result = "mojito"
required_reagents = list("rum" = 3, "limejuice" = 1, "mint" = 1)
result_amount = 5
-
+
/datum/chemical_reaction/drinks/piscosour
name = "Pisco Sour"
id = "piscosour"
@@ -2186,8 +2186,8 @@
result = "coldfront"
required_reagents = list("icecoffee" = 1, "whiskey" = 1, "mint" = 1)
result_amount = 3
-
-
+
+
//R-UST Port
/datum/chemical_reaction/hyrdophoron
name = "Hydrophoron"
diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm
index 9949550182..0f40a83e20 100644
--- a/code/modules/reagents/reagent_containers/blood_pack.dm
+++ b/code/modules/reagents/reagent_containers/blood_pack.dm
@@ -14,19 +14,25 @@
new /obj/item/weapon/reagent_containers/blood/empty(src)
/obj/item/weapon/reagent_containers/blood
- name = "BloodPack"
- desc = "Contains blood used for transfusion."
+ name = "IV pack"
+ var/base_name = " "
+ desc = "Holds liquids used for transfusion."
+ var/base_desc = " "
icon = 'icons/obj/bloodpack.dmi'
icon_state = "empty"
item_state = "bloodpack_empty"
volume = 200
+ var/label_text = ""
var/blood_type = null
/obj/item/weapon/reagent_containers/blood/New()
..()
+ base_name = name
+ base_desc = desc
if(blood_type != null)
- name = "BloodPack [blood_type]"
+ label_text = "[blood_type]"
+ update_iv_label()
reagents.add_reagent("blood", 200, list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=blood_type,"resistances"=null,"trace_chem"=null))
update_icon()
@@ -45,6 +51,30 @@
icon_state = "full"
item_state = "bloodpack_full"
+/obj/item/weapon/reagent_containers/blood/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ if(istype(W, /obj/item/weapon/pen) || istype(W, /obj/item/device/flashlight/pen))
+ var/tmp_label = sanitizeSafe(input(user, "Enter a label for [name]", "Label", label_text), MAX_NAME_LEN)
+ if(length(tmp_label) > 50)
+ to_chat(user, "The label can be at most 50 characters long.")
+ else if(length(tmp_label) > 10)
+ to_chat(user, "You set the label.")
+ label_text = tmp_label
+ update_iv_label()
+ else
+ to_chat(user, "You set the label to \"[tmp_label]\".")
+ label_text = tmp_label
+ update_iv_label()
+
+/obj/item/weapon/reagent_containers/blood/proc/update_iv_label()
+ if(label_text == "")
+ name = base_name
+ else if(length(label_text) > 10)
+ var/short_label_text = copytext(label_text, 1, 11)
+ name = "[base_name] ([short_label_text]...)"
+ else
+ name = "[base_name] ([label_text])"
+ desc = "[base_desc] It is labeled \"[label_text]\"."
+
/obj/item/weapon/reagent_containers/blood/APlus
blood_type = "A+"
diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm
index 0a1816e4c8..f15c2faf3f 100644
--- a/code/modules/reagents/reagent_containers/dropper.dm
+++ b/code/modules/reagents/reagent_containers/dropper.dm
@@ -2,8 +2,8 @@
/// Droppers.
////////////////////////////////////////////////////////////////////////////////
/obj/item/weapon/reagent_containers/dropper
- name = "Dropper"
- desc = "A dropper. Transfers 5 units."
+ name = "dropper"
+ desc = "A dropper. Transfers up to 5 units at a time."
icon = 'icons/obj/chemical.dmi'
icon_state = "dropper0"
amount_per_transfer_from_this = 5
@@ -12,17 +12,25 @@
slot_flags = SLOT_EARS
volume = 5
+/obj/item/weapon/reagent_containers/dropper/examine(var/mob/user)
+ if(!..(user, 2))
+ return
+ if(reagents && reagents.reagent_list.len)
+ to_chat(user, "It contains [reagents.total_volume] units of liquid.")
+ else
+ to_chat(user, "It is empty.")
+
/obj/item/weapon/reagent_containers/dropper/afterattack(var/obj/target, var/mob/user, var/proximity)
if(!target.reagents || !proximity) return
if(reagents.total_volume)
if(!target.reagents.get_free_space())
- user << "[target] is full."
+ to_chat(user, "[target] is full.")
return
if(!target.is_open_container() && !ismob(target) && !istype(target, /obj/item/weapon/reagent_containers/food) && !istype(target, /obj/item/clothing/mask/smokable/cigarette)) //You can inject humans and food but you cant remove the shit.
- user << "You cannot directly fill this object."
+ to_chat(user, "You cannot directly fill this object.")
return
var/trans = 0
@@ -50,7 +58,7 @@
safe_thing = victim.glasses
if(safe_thing)
- trans = reagents.splash(safe_thing, amount_per_transfer_from_this, max_spill=30)
+ trans = reagents.splash(safe_thing, min(amount_per_transfer_from_this, reagents.total_volume), max_spill=30)
user.visible_message("[user] tries to squirt something into [target]'s eyes, but fails!", "You transfer [trans] units of the solution.")
return
@@ -60,30 +68,30 @@
user.attack_log += text("\[[time_stamp()]\] Used the [name] to squirt [M.name] ([M.key]). Reagents: [contained]")
msg_admin_attack("[user.name] ([user.ckey]) squirted [M.name] ([M.key]) with [name]. Reagents: [contained] (INTENT: [uppertext(user.a_intent)]) (JMP)")
- trans += reagents.splash(target, reagents.total_volume/2, max_spill=30)
- trans += reagents.trans_to_mob(target, reagents.total_volume/2, CHEM_BLOOD) //I guess it gets into the bloodstream through the eyes or something
- user.visible_message("[user] squirts something into [target]'s eyes!", "You transfer [trans] units of the solution.")
+ trans += reagents.trans_to_mob(target, min(amount_per_transfer_from_this, reagents.total_volume)/2, CHEM_INGEST) //Half injected, half ingested
+ trans += reagents.trans_to_mob(target, min(amount_per_transfer_from_this, reagents.total_volume), CHEM_BLOOD) //I guess it gets into the bloodstream through the eyes or something
+ user.visible_message("[user] squirts something into [target]'s eyes!", "You transfer [trans] units of the solution.")
return
else
- trans = reagents.splash(target, amount_per_transfer_from_this, max_spill=0) //sprinkling reagents on generic non-mobs
- user << "You transfer [trans] units of the solution."
+ trans = reagents.trans_to_obj(target, amount_per_transfer_from_this)
+ to_chat(user, "You transfer [trans] units of the solution.")
else // Taking from something
if(!target.is_open_container() && !istype(target,/obj/structure/reagent_dispensers))
- user << "You cannot directly remove reagents from [target]."
+ to_chat(user, "You cannot directly remove reagents from [target].")
return
if(!target.reagents || !target.reagents.total_volume)
- user << "[target] is empty."
+ to_chat(user, "[target] is empty.")
return
var/trans = target.reagents.trans_to_obj(src, amount_per_transfer_from_this)
- user << "You fill the dropper with [trans] units of the solution."
+ to_chat(user, "You fill the dropper with [trans] units of the solution.")
return
@@ -98,7 +106,7 @@
/obj/item/weapon/reagent_containers/dropper/industrial
name = "Industrial Dropper"
- desc = "A larger dropper. Transfers 10 units."
+ desc = "A larger dropper. Transfers up to 10 units at a time."
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(1,2,3,4,5,6,7,8,9,10)
volume = 10
diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm
index b7d489e067..b2cbcb9b3e 100755
--- a/code/modules/recycling/sortingmachinery.dm
+++ b/code/modules/recycling/sortingmachinery.dm
@@ -376,7 +376,7 @@
return
Bumped(var/atom/movable/AM) //Go straight into the chute
- if(istype(AM, /obj/item/projectile) || istype(AM, /obj/effect)) return
+ if(istype(AM, /obj/item/projectile) || istype(AM, /obj/effect) || istype(AM, /obj/mecha)) return
switch(dir)
if(NORTH)
if(AM.loc.y != src.loc.y+1) return
diff --git a/code/modules/research/mechfab_designs.dm b/code/modules/research/mechfab_designs.dm
index 8efeec6c0d..5936c3c9bc 100644
--- a/code/modules/research/mechfab_designs.dm
+++ b/code/modules/research/mechfab_designs.dm
@@ -290,6 +290,14 @@
id = "mech_taser"
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/taser
+/datum/design/item/mecha/shocker
+ name = "Exosuit Electrifier"
+ desc = "A device to electrify the external portions of a mecha in order to increase its defensive capabilities."
+ id = "mech_shocker"
+ req_tech = list(TECH_COMBAT = 3, TECH_POWER = 6, TECH_MAGNET = 1)
+ build_path = /obj/item/mecha_parts/mecha_equipment/shocker
+ materials = list(DEFAULT_WALL_MATERIAL = 3500, "gold" = 750, "glass" = 1000)
+
/datum/design/item/mecha/lmg
name = "Ultra AC 2"
id = "mech_lmg"
@@ -407,7 +415,13 @@
materials = list(DEFAULT_WALL_MATERIAL = 7500, "gold" = 750, "silver" = 1500, "glass" = 3750)
build_path = /obj/item/mecha_parts/mecha_equipment/repair_droid
-//obj/item/mecha_parts/mecha_equipment/jetpack, //TODO MECHA JETPACK SPRITE MISSING
+/datum/design/item/mecha/jetpack
+ name = "Ion Jetpack"
+ desc = "Using directed ion bursts and cunning solar wind reflection technique, this device enables controlled space flight."
+ id = "mech_jetpack"
+ req_tech = list(TECH_ENGINEERING = 3, TECH_MAGNET = 4) //One less magnet than the actual got-damn teleporter.
+ build_path = /obj/item/mecha_parts/mecha_equipment/tool/jetpack
+ materials = list(DEFAULT_WALL_MATERIAL = 7500, "silver" = 300, "glass" = 600)
/datum/design/item/mecha/phoron_generator
desc = "Phoron Reactor"
diff --git a/code/modules/shuttles/shuttle.dm b/code/modules/shuttles/shuttle.dm
index da600a2e68..2e1c5d67d4 100644
--- a/code/modules/shuttles/shuttle.dm
+++ b/code/modules/shuttles/shuttle.dm
@@ -223,7 +223,7 @@
break
if(update_power)
- makepowernets()
+ SSmachines.makepowernets()
return
//returns 1 if the shuttle has a valid arrive time
diff --git a/code/modules/turbolift/turbolift.dm b/code/modules/turbolift/turbolift.dm
index 7a670954a0..395cbe608d 100644
--- a/code/modules/turbolift/turbolift.dm
+++ b/code/modules/turbolift/turbolift.dm
@@ -164,7 +164,7 @@
origin.move_contents_to(destination)
if((locate(/obj/machinery/power) in destination) || (locate(/obj/structure/cable) in destination))
- makepowernets()
+ SSmachines.makepowernets()
current_floor = next_floor
control_panel_interior.visible_message("The elevator [moving_upwards ? "rises" : "descends"] smoothly.")
diff --git a/code/modules/xenoarcheaology/tools/suspension_generator.dm b/code/modules/xenoarcheaology/tools/suspension_generator.dm
index 6819531706..ac56f7de92 100644
--- a/code/modules/xenoarcheaology/tools/suspension_generator.dm
+++ b/code/modules/xenoarcheaology/tools/suspension_generator.dm
@@ -247,5 +247,5 @@
/obj/effect/suspension_field/Destroy()
for(var/atom/movable/I in src)
- I.loc = src.loc
- ..()
+ I.dropInto(loc)
+ return ..()
diff --git a/code/modules/xenobio/items/extracts.dm b/code/modules/xenobio/items/extracts.dm
index 42ca365773..be22c32851 100644
--- a/code/modules/xenobio/items/extracts.dm
+++ b/code/modules/xenobio/items/extracts.dm
@@ -956,15 +956,21 @@
result_amount = 1
required = /obj/item/slime_extract/rainbow
-/datum/chemical_reaction/slime/rainbow_random_slime/on_reaction(var/datum/reagents/holder)
- var/list/forbidden_types = list(
- /mob/living/simple_animal/slime/rainbow/kendrick
- )
- var/list/potential_types = typesof(/mob/living/simple_animal/slime) - forbidden_types
- var/slime_type = pick(potential_types)
- new slime_type(get_turf(holder.my_atom))
- ..()
+/datum/chemical_reaction/slime/rainbow_random_slime/on_reaction(var/datum/reagents/holder)
+ var/mob/living/simple_animal/slime/S
+ var/list/slime_types = typesof(/mob/living/simple_animal/slime)
+
+ while(slime_types.len)
+ S = pick(slime_types)
+ if(initial(S.rainbow_core_candidate) == TRUE)
+ break
+ else
+ slime_types -= S
+ S = null
+
+ if(S)
+ new S(get_turf(holder.my_atom))
/datum/chemical_reaction/slime/rainbow_unity
name = "Slime Unity"
diff --git a/code/unit_tests/map_tests.dm b/code/unit_tests/map_tests.dm
index c3d0d5349d..de67e760c3 100644
--- a/code/unit_tests/map_tests.dm
+++ b/code/unit_tests/map_tests.dm
@@ -42,9 +42,9 @@
)
// Some maps have areas specific to the map, so include those.
- exempt_areas += using_map.unit_test_exempt_areas
- exempt_from_atmos += using_map.unit_test_exempt_from_atmos
- exempt_from_apc += using_map.unit_test_exempt_from_apc
+ exempt_areas += using_map.unit_test_exempt_areas.Copy()
+ exempt_from_atmos += using_map.unit_test_exempt_from_atmos.Copy()
+ exempt_from_apc += using_map.unit_test_exempt_from_apc.Copy()
for(var/area/A in world)
if(A.z == 1 && !(A.type in exempt_areas))
diff --git a/code/world.dm b/code/world.dm
index a896c1ad5d..fea68e841b 100644
--- a/code/world.dm
+++ b/code/world.dm
@@ -34,7 +34,7 @@ var/global/datum/global_init/init = new ()
turf = /turf/space
area = /area/space
view = "15x15"
- cache_lifespan = 0 //stops player uploaded stuff from being kept in the rsc past the current session
+ cache_lifespan = 7
diff --git a/html/changelogs/Atermonera - Weatherapp.yml b/html/changelogs/Atermonera - Weatherapp.yml
new file mode 100644
index 0000000000..2a513366f1
--- /dev/null
+++ b/html/changelogs/Atermonera - Weatherapp.yml
@@ -0,0 +1,5 @@
+author: Atermonera
+
+delete-after: True
+
+ - rscadd: "Communicators now have a weather app."
diff --git a/html/changelogs/Leshana-ss-machines.yml b/html/changelogs/Leshana-ss-machines.yml
new file mode 100644
index 0000000000..28faf35197
--- /dev/null
+++ b/html/changelogs/Leshana-ss-machines.yml
@@ -0,0 +1,4 @@
+author: Leshana
+delete-after: True
+changes:
+ - tweak: "Convert the machinery controller to a StonedMC subsystem"
diff --git a/html/changelogs/Leshana-tgport.yml b/html/changelogs/Leshana-tgport.yml
new file mode 100644
index 0000000000..eeceacc2e7
--- /dev/null
+++ b/html/changelogs/Leshana-tgport.yml
@@ -0,0 +1,4 @@
+author: MrStonedOne
+delete-after: True
+changes:
+ - rscadd: "Added admin verb 'Display del() Log' displaying garabage collector statistics."
diff --git a/icons/effects/96x96.dmi b/icons/effects/96x96.dmi
index 5580e9a5da..841c17d3f5 100644
Binary files a/icons/effects/96x96.dmi and b/icons/effects/96x96.dmi differ
diff --git a/icons/mecha/mecha_equipment.dmi b/icons/mecha/mecha_equipment.dmi
index 930e724d22..d13c430c8f 100644
Binary files a/icons/mecha/mecha_equipment.dmi and b/icons/mecha/mecha_equipment.dmi differ
diff --git a/icons/mob/96x96.dmi b/icons/mob/96x96.dmi
index 7368d30bb1..f1f7fac7b5 100644
Binary files a/icons/mob/96x96.dmi and b/icons/mob/96x96.dmi differ
diff --git a/icons/mob/human_races/cyberlimbs/cybersolutions/cybersolutions_alt1.dmi b/icons/mob/human_races/cyberlimbs/cybersolutions/cybersolutions_alt1.dmi
index 129bcba490..934440632f 100644
Binary files a/icons/mob/human_races/cyberlimbs/cybersolutions/cybersolutions_alt1.dmi and b/icons/mob/human_races/cyberlimbs/cybersolutions/cybersolutions_alt1.dmi differ
diff --git a/icons/obj/doors/door_assembly.dmi b/icons/obj/doors/door_assembly.dmi
index 769304eb54..a9c889fec3 100644
Binary files a/icons/obj/doors/door_assembly.dmi and b/icons/obj/doors/door_assembly.dmi differ
diff --git a/icons/obj/hoists.dmi b/icons/obj/hoists.dmi
new file mode 100644
index 0000000000..1decaff104
Binary files /dev/null and b/icons/obj/hoists.dmi differ
diff --git a/interface/interface.dm b/interface/interface.dm
index 98fb3080a9..0a4852b3b1 100644
--- a/interface/interface.dm
+++ b/interface/interface.dm
@@ -100,8 +100,8 @@ Hotkey-Mode: (hotkey-mode must be on)
\t2 = disarm-intent
\t3 = grab-intent
\t4 = harm-intent
-\tCtrl = drag
-\tShift = examine
+\tCtrl+Click = pull
+\tShift+Click = examine
"}
var/other = {"
@@ -125,7 +125,7 @@ Any-Mode: (hotkey doesn't need to be on)
\tF2 = ooc
\tF3 = say
\tF4 = emote
-\tDEL = pull
+\tDEL = stop pulling
\tINS = cycle-intents-right
\tHOME = drop
\tPGUP = swap-hand
@@ -151,8 +151,8 @@ Hotkey-Mode: (hotkey-mode must be on)
\t3 = activate module 3
\t4 = toggle intents
\t5 = emote
-\tCtrl = drag
-\tShift = examine
+\tCtrl+Click = pull
+\tShift+Click = examine
"}
var/robot_other = {"
@@ -174,7 +174,7 @@ Any-Mode: (hotkey doesn't need to be on)
\tF2 = ooc
\tF3 = say
\tF4 = emote
-\tDEL = pull
+\tDEL = stop pulling
\tINS = toggle intents
\tPGUP = cycle active modules
\tPGDN = activate held object
diff --git a/maps/northern_star/northern_star_defines.dm b/maps/northern_star/northern_star_defines.dm
index b9db5ad425..3e56c91fe9 100644
--- a/maps/northern_star/northern_star_defines.dm
+++ b/maps/northern_star/northern_star_defines.dm
@@ -104,3 +104,47 @@
name = "Empty"
flags = MAP_LEVEL_PLAYER
transit_chance = 60
+
+
+//Unit test stuff.
+
+/datum/unit_test/zas_area_test/supply_centcomm
+ name = "ZAS: Supply Shuttle (CentCom)"
+ area_path = /area/supply/dock
+
+/datum/unit_test/zas_area_test/emergency_shuttle
+ name = "ZAS: Emergency Shuttle"
+ area_path = /area/shuttle/escape/centcom
+
+/datum/unit_test/zas_area_test/ai_chamber
+ name = "ZAS: AI Chamber"
+ area_path = /area/ai
+
+/datum/unit_test/zas_area_test/mining_shuttle_at_station
+ name = "ZAS: Mining Shuttle (Station)"
+ area_path = /area/shuttle/mining/station
+
+/datum/unit_test/zas_area_test/cargo_maint
+ name = "ZAS: Cargo Maintenance"
+ area_path = /area/maintenance/cargo
+
+/datum/unit_test/zas_area_test/eng_shuttle
+ name = "ZAS: Construction Site Shuttle (Station)"
+ area_path = /area/shuttle/constructionsite/station
+
+/datum/unit_test/zas_area_test/virology
+ name = "ZAS: Virology"
+ area_path = /area/medical/virology
+
+/datum/unit_test/zas_area_test/xenobio
+ name = "ZAS: Xenobiology"
+ area_path = /area/rnd/xenobiology
+
+/datum/unit_test/zas_area_test/mining_area
+ name = "ZAS: Mining Area (Vacuum)"
+ area_path = /area/mine/explored
+ expectation = UT_VACUUM
+
+/datum/unit_test/zas_area_test/cargo_bay
+ name = "ZAS: Cargo Bay"
+ area_path = /area/quartermaster/storage
\ No newline at end of file
diff --git a/maps/southern_cross/southern_cross-1.dmm b/maps/southern_cross/southern_cross-1.dmm
index d06a9cab0f..358882bf18 100644
--- a/maps/southern_cross/southern_cross-1.dmm
+++ b/maps/southern_cross/southern_cross-1.dmm
@@ -312,7 +312,7 @@
"afZ" = (/turf/simulated/floor/tiled/freezer,/area/crew_quarters/toilet/firstdeck)
"aga" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/tiled/steel_grid,/area/hallway/primary/firstdeck/fore)
"agb" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/hallway/primary/firstdeck/fore)
-"agc" = (/obj/structure/closet/crate,/obj/item/stack/material/gold,/obj/item/weapon/storage/belt/champion,/turf/simulated/floor/tiled/dark,/area/security/nuke_storage)
+"agc" = (/obj/structure/closet/crate,/obj/item/stack/material/gold,/obj/item/weapon/storage/belt/champion,/obj/item/stack/material/gold,/obj/item/stack/material/gold,/obj/item/stack/material/gold,/obj/item/stack/material/gold,/obj/item/stack/material/gold,/obj/item/stack/material/silver,/obj/item/stack/material/silver,/obj/item/stack/material/silver,/obj/item/stack/material/silver,/obj/item/stack/material/silver,/obj/item/stack/material/silver,/turf/simulated/floor/tiled/dark,/area/security/nuke_storage)
"agd" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/turf/simulated/floor/tiled/dark,/area/security/nuke_storage)
"age" = (/obj/structure/filingcabinet/medical{desc = "A large cabinet with hard copy medical records."; name = "Medical Records"},/turf/simulated/floor/tiled/dark,/area/security/nuke_storage)
"agf" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/loot_pile/maint/technical,/turf/simulated/floor/plating,/area/maintenance/firstdeck/forestarboard)
@@ -1424,9 +1424,9 @@
"aBt" = (/turf/simulated/wall,/area/quartermaster/storage)
"aBu" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Cargo Maintenance"; req_access = list(50)},/turf/simulated/floor/plating,/area/quartermaster/storage)
"aBv" = (/turf/simulated/wall/r_wall,/area/quartermaster/hallway)
-"aBw" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_mining{name = "Cargo Hallway"; req_access = list(31)},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/steel_grid,/area/quartermaster/hallway)
+"aBw" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_mining{name = "Cargo Hallway"; req_access = list(50)},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/steel_grid,/area/quartermaster/hallway)
"aBx" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/quartermaster/hallway)
-"aBy" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_mining{name = "Cargo Hallway"; req_access = list(31)},/turf/simulated/floor/tiled/steel_grid,/area/quartermaster/hallway)
+"aBy" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_mining{name = "Cargo Hallway"; req_access = list(50)},/turf/simulated/floor/tiled/steel_grid,/area/quartermaster/hallway)
"aBz" = (/obj/structure/closet/secure_closet/miner,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/effect/floor_decal/borderfloor{dir = 9},/obj/effect/floor_decal/corner/brown/border{dir = 9},/turf/simulated/floor/tiled/steel,/area/quartermaster/mininglockerroom)
"aBA" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/brown/border{dir = 1},/turf/simulated/floor/tiled/steel,/area/quartermaster/mininglockerroom)
"aBB" = (/obj/structure/dispenser/oxygen,/obj/machinery/ai_status_display{pixel_y = 32},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/brown/border{dir = 1},/turf/simulated/floor/tiled,/area/quartermaster/mininglockerroom)
@@ -5745,7 +5745,7 @@
"cgy" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/catwalk,/turf/simulated/floor/plating,/area/maintenance/central)
"cgz" = (/obj/machinery/shieldwallgen,/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled,/area/teleporter)
"cgA" = (/obj/machinery/shieldwallgen,/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/light,/turf/simulated/floor/tiled,/area/teleporter)
-"cgB" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/ascenter)
+"cgB" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/tiled/steel_grid,/area/hallway/primary/seconddeck/ascenter)
"cgC" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/primary/seconddeck/ascenter)
"cgD" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/hallway/primary/seconddeck/ascenter)
"cgE" = (/obj/structure/sign/directions/bridge{dir = 2; pixel_y = 10},/obj/structure/sign/directions/science{dir = 4},/obj/structure/sign/directions/medical{dir = 4; pixel_y = -10},/turf/simulated/wall,/area/hallway/primary/seconddeck/ascenter)
@@ -5836,7 +5836,7 @@
"cil" = (/obj/machinery/ai_status_display{pixel_y = 32},/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/purple/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/ascenter)
"cim" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/ascenter)
"cin" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/ascenter)
-"cio" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/starboard)
+"cio" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/steel_grid,/area/hallway/primary/seconddeck/starboard)
"cip" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/starboard)
"ciq" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/firealarm{pixel_y = 24},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/purple/border{dir = 1},/obj/effect/floor_decal/borderfloor/corner2{dir = 4},/obj/effect/floor_decal/corner/purple/bordercorner2{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/starboard)
"cir" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/purple/border{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/starboard)
@@ -5965,10 +5965,10 @@
"ckK" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled/white,/area/hallway/secondary/seconddeck/research_medical)
"ckL" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/hallway/secondary/seconddeck/research_medical)
"ckM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/blast/regular{density = 0; dir = 2; icon_state = "pdoor0"; id = "virologyquar"; name = "Virology Emergency Quarantine Blast Doors"; opacity = 0},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/seconddeck/research_medical)
-"ckN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/medical{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "virology_airlock_exterior"; locked = 1; name = "Virology Exterior Airlock"; req_access = list(39)},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = 0; pixel_y = -24; req_access = list(39)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/medical/virology)
+"ckN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/medical{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "virology_airlock_interior"; locked = 1; name = "Virology Interior Airlock"; req_access = list(39)},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = 0; pixel_y = 24; req_access = list(39)},/turf/simulated/floor/tiled/steel_grid,/area/medical/virology)
"ckO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/turf/simulated/floor/tiled/white,/area/medical/virology)
"ckP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/virology)
-"ckQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/medical{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "virology_airlock_interior"; locked = 1; name = "Virology Interior Airlock"; req_access = list(39)},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = 0; pixel_y = 24; req_access = list(39)},/turf/simulated/floor/tiled/white,/area/medical/virology)
+"ckQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/medical{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "virology_airlock_exterior"; locked = 1; name = "Virology Exterior Airlock"; req_access = list(39)},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = 0; pixel_y = -24; req_access = list(39)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/steel_grid,/area/medical/virology)
"ckR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled/white,/area/medical/virology)
"ckS" = (/obj/machinery/atmospherics/pipe/simple/hidden/black,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/virology)
"ckT" = (/obj/structure/table/glass,/obj/item/weapon/storage/lockbox/vials,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/virology)
@@ -6118,7 +6118,7 @@
"cnH" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table/rack,/obj/random/cigarettes,/obj/item/weapon/flame/lighter/random,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/turf/simulated/floor/plating,/area/maintenance/central)
"cnI" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/hop)
"cnJ" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{name = "HoP Maintenance Access"; req_one_access = list(57)},/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/hop)
-"cnK" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/ascenter)
+"cnK" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/tiled/steel_grid,/area/hallway/primary/seconddeck/ascenter)
"cnL" = (/obj/structure/sign/directions/engineering{dir = 2; pixel_y = 10},/obj/structure/sign/directions/cargo{dir = 2},/obj/structure/sign/directions/security{dir = 1; pixel_y = -10},/turf/simulated/wall,/area/hallway/primary/seconddeck/ascenter)
"cnM" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled/dark,/area/hallway/primary/seconddeck/ascenter)
"cnN" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/flora/pottedplant/xmas,/turf/simulated/floor/tiled/dark,/area/hallway/primary/seconddeck/ascenter)
@@ -6136,11 +6136,11 @@
"cnZ" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/tiled/dark,/area/hallway/primary/seconddeck/starboard)
"coa" = (/obj/structure/table/steel,/obj/random/tech_supply,/obj/random/technology_scanner,/obj/item/weapon/storage/bag/circuits/basic,/obj/random/tech_supply,/turf/simulated/floor/plating,/area/maintenance/research_medical)
"cob" = (/turf/simulated/wall/r_wall,/area/medical/medbay2)
-"coc" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Medical Access"; req_access = list(5)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/medical/medbay2)
+"coc" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Medical Access"; req_access = list(5)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/steel_grid,/area/medical/medbay2)
"cod" = (/obj/effect/floor_decal/industrial/loading,/obj/machinery/door/firedoor/border_only,/obj/structure/plasticflaps{opacity = 1},/obj/machinery/navbeacon/delivery/south{location = "Medbay"},/turf/simulated/floor/tiled,/area/medical/medbay2)
"coe" = (/turf/simulated/wall/r_wall,/area/medical/genetics)
"cof" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/medical/genetics)
-"cog" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/research{name = "Genetics Lab"; req_one_access = list(5,47)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/medical/genetics)
+"cog" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/research{name = "Genetics Lab"; req_one_access = list(5,47)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/steel_grid,/area/hallway/secondary/seconddeck/research_medical)
"coh" = (/obj/effect/decal/warning_stripes,/obj/machinery/atmospherics/tvalve/mirrored/bypass,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plating,/area/medical/virology)
"coi" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/black{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/virology)
"coj" = (/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/effect/floor_decal/borderfloorwhite/corner,/obj/effect/floor_decal/corner/lime/bordercorner,/turf/simulated/floor/tiled/white,/area/medical/virology)
@@ -6253,7 +6253,7 @@
"cqm" = (/obj/machinery/atmospherics/pipe/manifold/visible/green{dir = 8},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/engineering/engine_room)
"cqn" = (/obj/machinery/atmospherics/pipe/simple/visible/green{dir = 9; icon_state = "intact"; tag = "icon-intact (SOUTHEAST)"},/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/engineering/engine_room)
"cqo" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/hatch{icon_state = "door_locked"; id_tag = "engine_electrical_maintenance"; locked = 1; name = "SMES Access"; req_access = list(10)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/engineering/engine_smes)
-"cqp" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/terminal,/obj/machinery/button/remote/airlock{id = "engine_electrical_maintenance"; name = "Door Bolt Control"; pixel_x = 0; pixel_y = 26; req_access = list(10); specialfunctions = 4},/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled,/area/engineering/engine_smes)
+"cqp" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/terminal,/obj/machinery/button/remote/airlock{id = "engine_electrical_maintenance"; name = "Door Bolt Control"; pixel_x = 0; pixel_y = 26; req_access = list(10); specialfunctions = 4},/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/power/sensor{name = "Powernet Sensor - Engine Output"; name_tag = "Engine Output"},/turf/simulated/floor/tiled,/area/engineering/engine_smes)
"cqq" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/engineering/engine_smes)
"cqr" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/engineering/engine_smes)
"cqs" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/tiled,/area/engineering/engine_smes)
@@ -6402,8 +6402,8 @@
"ctf" = (/obj/machinery/smartfridge/drying_rack,/turf/simulated/floor/tiled/hydro,/area/hallway/primary/seconddeck/ascenter)
"ctg" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/medbay)
"cth" = (/turf/simulated/wall/r_wall,/area/medical/medbay_emt_bay)
-"cti" = (/obj/machinery/door/airlock/multi_tile/glass{id_tag = "MedbayFoyerPort"; req_access = list(5)},/turf/simulated/floor/tiled/white,/area/medical/medbay_emt_bay)
-"ctj" = (/turf/simulated/floor/tiled/white,/area/medical/medbay_emt_bay)
+"cti" = (/obj/machinery/door/airlock/multi_tile/glass{id_tag = "MedbayFoyerPort"; req_access = list(5)},/turf/simulated/floor/tiled/steel_grid,/area/medical/medbay_emt_bay)
+"ctj" = (/turf/simulated/floor/tiled/steel_grid,/area/medical/medbay_emt_bay)
"ctk" = (/obj/random/obstruction,/turf/simulated/floor/plating,/area/maintenance/medbay_fore)
"ctl" = (/turf/simulated/wall/r_wall,/area/medical/reception)
"ctm" = (/turf/simulated/wall,/area/medical/reception)
@@ -6875,7 +6875,7 @@
"cCk" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/medical/medbay2)
"cCl" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/medical/medbay2)
"cCm" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/medbay2)
-"cCn" = (/obj/machinery/door/firedoor,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock{name = "Medical Restroom"},/turf/simulated/floor/tiled/freezer,/area/medical/medical_restroom)
+"cCn" = (/obj/machinery/door/firedoor,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock{name = "Medical Restroom"},/turf/simulated/floor/tiled/steel_grid,/area/medical/medical_restroom)
"cCo" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/turf/simulated/floor/tiled/freezer,/area/medical/medical_restroom)
"cCp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/tiled/freezer,/area/medical/medical_restroom)
"cCq" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/simulated/floor/tiled/freezer,/area/medical/medical_restroom)
@@ -6902,8 +6902,8 @@
"cCL" = (/turf/simulated/wall,/area/quartermaster/office)
"cCM" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/glass,/obj/machinery/door/window/southleft{name = "Cargo Desk"; req_access = list(50)},/obj/structure/noticeboard{pixel_x = -32},/turf/simulated/floor/tiled,/area/quartermaster/office)
"cCN" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/quartermaster/office)
-"cCO" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/glass_mining{id_tag = "cargodoor"; name = "Cargo Office"; req_access = list(31)},/turf/simulated/floor/tiled/steel_grid,/area/quartermaster/office)
-"cCP" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_mining{id_tag = "cargodoor"; name = "Cargo Office"; req_access = list(31)},/turf/simulated/floor/tiled/steel_grid,/area/quartermaster/office)
+"cCO" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/glass_mining{id_tag = "cargodoor"; name = "Cargo Office"; req_access = list(50)},/turf/simulated/floor/tiled/steel_grid,/area/quartermaster/office)
+"cCP" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_mining{id_tag = "cargodoor"; name = "Cargo Office"; req_access = list(50)},/turf/simulated/floor/tiled/steel_grid,/area/quartermaster/office)
"cCQ" = (/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36; pixel_y = -6},/obj/machinery/button/windowtint{id = "quart_tint"; pixel_x = -36; pixel_y = 6},/obj/structure/flora/pottedplant/tropical,/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/brown/border{dir = 8},/turf/simulated/floor/tiled,/area/quartermaster/qm)
"cCR" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/turf/simulated/floor/tiled,/area/quartermaster/qm)
"cCS" = (/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/brown/bordercorner,/turf/simulated/floor/tiled,/area/quartermaster/qm)
@@ -6927,11 +6927,11 @@
"cDk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/monotile,/area/hallway/primary/seconddeck/starboard)
"cDl" = (/obj/effect/floor_decal/borderfloor{dir = 6},/obj/effect/floor_decal/corner/green/border{dir = 6},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/ascenter)
"cDm" = (/obj/structure/closet/crate/medical,/obj/random/maintenance/medical,/obj/random/maintenance/medical,/obj/random/maintenance/medical,/obj/random/maintenance/clean,/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor,/area/maintenance/medbay)
-"cDn" = (/obj/machinery/door/airlock/multi_tile/glass{id_tag = "MedbayFoyerPort"; req_access = list(5)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/medical/medbay_emt_bay)
-"cDo" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/medical/medbay_emt_bay)
+"cDn" = (/obj/machinery/door/airlock/multi_tile/glass{id_tag = "MedbayFoyerPort"; req_access = list(5)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/steel_grid,/area/medical/medbay_emt_bay)
+"cDo" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/steel_grid,/area/medical/medbay_emt_bay)
"cDp" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/medical/medbay_emt_bay)
"cDq" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced/polarized{id = "exam_window_tint"},/turf/simulated/floor/plating,/area/medical/exam_room)
-"cDr" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Examination Room"; req_access = list(5)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/medical/exam_room)
+"cDr" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Examination Room"; req_access = list(5)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/steel_grid,/area/medical/exam_room)
"cDs" = (/obj/structure/bookcase/manuals/medical,/obj/item/weapon/book/manual/stasis,/obj/item/weapon/book/manual/medical_diagnostics_manual{pixel_y = 7},/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/reception)
"cDt" = (/obj/structure/filingcabinet/chestdrawer{name = "Medical Forms"},/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/tiled/white,/area/medical/reception)
"cDu" = (/obj/machinery/photocopier,/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled/white,/area/medical/reception)
@@ -6958,7 +6958,7 @@
"cDP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/borderfloorwhite{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/medbay2)
"cDQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/medical/medbay2)
"cDR" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/medbay2)
-"cDS" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/food/drinks/britcup,/turf/simulated/floor/tiled/white,/area/medical/medbay2)
+"cDS" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/food/drinks/britcup,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/medical/medbay2)
"cDT" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/medbay2)
"cDU" = (/obj/structure/table/glass,/obj/item/weapon/towel{color = "#FF6666"; name = "light red towel"},/obj/item/weapon/towel{color = "#FF6666"; name = "light red towel"},/obj/item/weapon/towel{color = "#FF6666"; name = "light red towel"},/obj/item/weapon/towel{color = "#3fc0ea"; name = "light blue towel"; pixel_x = 2; pixel_y = 4},/obj/item/weapon/towel{color = "#3fc0ea"; name = "light blue towel"; pixel_x = 2; pixel_y = 4},/obj/item/weapon/towel{color = "#3fc0ea"; name = "light blue towel"; pixel_x = 2; pixel_y = 4},/obj/item/weapon/soap/nanotrasen,/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/obj/structure/cable/green,/obj/random/soap,/turf/simulated/floor/tiled/freezer,/area/medical/medical_restroom)
"cDV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/freezer,/area/medical/medical_restroom)
@@ -7022,15 +7022,15 @@
"cFb" = (/obj/structure/sign/examroom{pixel_x = 32; pixel_y = 32},/obj/effect/floor_decal/borderfloorwhite{dir = 4},/obj/effect/floor_decal/corner/paleblue/border{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/medbay)
"cFc" = (/obj/machinery/status_display,/turf/simulated/wall,/area/medical/reception)
"cFd" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/medical/reception)
-"cFe" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_medical{name = "Medical Reception"; req_access = list(5)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/reception)
+"cFe" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_medical{name = "Medical Reception"; req_access = list(5)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/steel_grid,/area/medical/reception)
"cFf" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyer"; name = "Medbay"; req_access = list(5)},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/steel_grid,/area/medical/foyer)
"cFg" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyer"; name = "Medbay"; req_access = list(5)},/turf/simulated/floor/tiled/steel_grid,/area/medical/foyer)
-"cFh" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_medical{name = "Chemistry Laboratory"; req_access = list(33)},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/medical/chemistry)
+"cFh" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_medical{name = "Chemistry Laboratory"; req_access = list(33)},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/steel_grid,/area/medical/chemistry)
"cFi" = (/obj/machinery/smartfridge/secure/medbay{req_one_access = list(33,66)},/turf/simulated/wall/r_wall,/area/medical/chemistry)
"cFj" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/medical/medbay_primary_storage)
-"cFk" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_medical{name = "Medbay Equipment"; req_access = list(5)},/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/medbay_primary_storage)
+"cFk" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_medical{name = "Medbay Equipment"; req_access = list(5)},/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/steel_grid,/area/medical/medbay_primary_storage)
"cFl" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/medical/medbay_primary_storage)
-"cFm" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Secondary Storage"; req_access = list(5)},/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/dark,/area/medical/biostorage)
+"cFm" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Secondary Storage"; req_access = list(5)},/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/steel_grid,/area/medical/biostorage)
"cFn" = (/obj/structure/table/glass,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/medbay2)
"cFo" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/newscaster{pixel_x = 30; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/medical/medbay2)
"cFp" = (/obj/structure/undies_wardrobe,/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/simulated/floor/tiled/freezer,/area/medical/medical_restroom)
@@ -7133,7 +7133,7 @@
"cHi" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/medbay2)
"cHj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/tiled/white,/area/medical/medbay2)
"cHk" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled/white,/area/medical/medbay2)
-"cHl" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Medical Restroom"; req_access = list(5)},/turf/simulated/floor/tiled/freezer,/area/medical/medical_restroom)
+"cHl" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Medical Restroom"; req_access = list(5)},/turf/simulated/floor/tiled/steel_grid,/area/medical/medical_restroom)
"cHm" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal/deliveryChute{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor,/area/maintenance/disposal)
"cHn" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor,/area/maintenance/disposal)
"cHo" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor,/area/maintenance/disposal)
@@ -7162,7 +7162,7 @@
"cHL" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/quartermaster/office)
"cHM" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled,/area/quartermaster/office)
"cHN" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j1s"; name = "QM Office"; sortType = "QM Office"},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/quartermaster/office)
-"cHO" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_mining{id_tag = "cargodoor"; name = "Cargo Office"; req_access = list(31)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/steel_grid,/area/quartermaster/lockerroom)
+"cHO" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_mining{id_tag = "cargodoor"; name = "Cargo Office"; req_access = list(50)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/steel_grid,/area/quartermaster/lockerroom)
"cHP" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/quartermaster/lockerroom)
"cHQ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/quartermaster/lockerroom)
"cHR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/quartermaster/lockerroom)
@@ -7258,7 +7258,7 @@
"cJD" = (/turf/simulated/wall,/area/maintenance/substation/medical)
"cJE" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced/polarized{id = "cmooffice"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/cmo)
"cJF" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced/polarized{id = "cmooffice"},/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/cmo)
-"cJG" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/command{id_tag = "cmodoor"; name = "CMO's Office"; req_access = list(40)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/sc/cmo)
+"cJG" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/command{id_tag = "cmodoor"; name = "CMO's Office"; req_access = list(40)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/steel_grid,/area/crew_quarters/heads/sc/cmo)
"cJH" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced/polarized{id = "cmooffice"},/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/cmo)
"cJI" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/cmo)
"cJJ" = (/turf/simulated/wall,/area/medical/sleeper)
@@ -7272,7 +7272,7 @@
"cJR" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/medical/cryo)
"cJS" = (/turf/simulated/wall,/area/medical/psych)
"cJT" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced/polarized{id = "psyco_tint"},/turf/simulated/floor/plating,/area/medical/psych)
-"cJU" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/medical{id_tag = "mentaldoor"; name = "Mental Health"; req_access = list(64)},/turf/simulated/floor/tiled/white,/area/medical/psych)
+"cJU" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/medical{id_tag = "mentaldoor"; name = "Mental Health"; req_access = list(64)},/turf/simulated/floor/tiled/steel_grid,/area/medical/psych)
"cJV" = (/obj/structure/flora/pottedplant/largebush,/turf/simulated/floor/tiled/dark,/area/medical/medbay2)
"cJW" = (/obj/structure/table/glass,/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/recharger,/obj/item/weapon/reagent_containers/spray/cleaner{pixel_x = -5},/turf/simulated/floor/tiled/dark,/area/medical/medbay2)
"cJX" = (/obj/structure/table/glass,/obj/item/device/radio/intercom/department/medbay{dir = 1; pixel_x = 0; pixel_y = -21},/obj/item/device/defib_kit/loaded,/turf/simulated/floor/tiled/dark,/area/medical/medbay2)
@@ -7354,7 +7354,7 @@
"cLv" = (/turf/simulated/wall,/area/medical/morgue)
"cLw" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/borderfloorwhite{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/medbay2)
"cLx" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/medbay2)
-"cLy" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Locker Room"; req_access = list(5)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/medical_lockerroom)
+"cLy" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Locker Room"; req_access = list(5)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/steel_grid,/area/medical/medical_lockerroom)
"cLz" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/medical_lockerroom)
"cLA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/medical_lockerroom)
"cLB" = (/obj/structure/closet/secure_closet/medical3,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/camera/network/medbay{c_tag = "MED - Locker Room"; dir = 8},/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/borderfloorwhite{dir = 4},/obj/effect/floor_decal/corner/paleblue/border{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/medical_lockerroom)
@@ -7401,7 +7401,7 @@
"cMq" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/sc/cmo)
"cMr" = (/obj/structure/bed/chair,/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/sc/cmo)
"cMs" = (/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/sc/cmo)
-"cMt" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/command{id_tag = null; name = "CMO's Quarters"; req_access = list(40)},/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/sc/cmo)
+"cMt" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/command{id_tag = null; name = "CMO's Quarters"; req_access = list(40)},/turf/simulated/floor/tiled/steel_grid,/area/crew_quarters/heads/sc/cmo)
"cMu" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/sleeper)
"cMv" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/medical/sleeper)
"cMw" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/medical/sleeper)
@@ -7610,7 +7610,7 @@
"cQr" = (/obj/machinery/sleeper{dir = 4},/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/medical/cryo)
"cQs" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/item/device/radio/intercom/department/medbay{dir = 1; pixel_x = 0; pixel_y = -21},/obj/effect/floor_decal/borderfloorwhite/corner{dir = 8},/obj/effect/floor_decal/corner/paleblue/bordercorner{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/cryo)
"cQt" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/cryo)
-"cQu" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_medical{id_tag = "GeneticsDoor"; name = "Cloning Laboratory"; req_access = list(66)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning)
+"cQu" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_medical{id_tag = "GeneticsDoor"; name = "Cloning Laboratory"; req_access = list(66)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/steel_grid,/area/medical/genetics_cloning)
"cQv" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning)
"cQw" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/alarm{pixel_y = 22},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/purple/border{dir = 1},/obj/effect/floor_decal/borderfloorwhite/corner2{dir = 4},/obj/effect/floor_decal/corner/purple/bordercorner2{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning)
"cQx" = (/obj/item/device/radio/intercom/department/medbay{dir = 2; pixel_x = 0; pixel_y = 21},/obj/machinery/camera/network/medbay{c_tag = "MED - Cloning"; dir = 2},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/purple/border{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning)
@@ -7665,9 +7665,9 @@
"cRu" = (/obj/machinery/status_display,/turf/simulated/wall,/area/medical/sleeper)
"cRv" = (/obj/machinery/ai_status_display,/turf/simulated/wall,/area/medical/sleeper)
"cRw" = (/turf/simulated/wall,/area/medical/ward)
-"cRx" = (/obj/machinery/door/firedoor/glass,/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,/obj/machinery/door/airlock/glass_medical{id_tag = "Surgery"; name = "Patient Ward"; req_access = list(5)},/turf/simulated/floor/tiled/white,/area/medical/ward)
+"cRx" = (/obj/machinery/door/firedoor/glass,/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,/obj/machinery/door/airlock/glass_medical{id_tag = "Surgery"; name = "Patient Ward"; req_access = list(5)},/turf/simulated/floor/tiled/steel_grid,/area/medical/ward)
"cRy" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/medical/ward)
-"cRz" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_medical{id_tag = "Surgery"; name = "Patient Ward"; req_access = list(5)},/turf/simulated/floor/tiled/white,/area/medical/ward)
+"cRz" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_medical{id_tag = "Surgery"; name = "Patient Ward"; req_access = list(5)},/turf/simulated/floor/tiled/steel_grid,/area/medical/ward)
"cRA" = (/obj/machinery/ai_status_display,/turf/simulated/wall,/area/medical/cryo)
"cRB" = (/turf/simulated/wall,/area/medical/genetics_cloning)
"cRC" = (/obj/machinery/button/remote/airlock{desc = "A remote control switch for the medbay foyer."; id = "GeneticsDoor"; name = "Door Control"; pixel_x = -26; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/effect/floor_decal/borderfloorwhite/corner{dir = 8},/obj/effect/floor_decal/corner/purple/bordercorner{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning)
@@ -7675,11 +7675,11 @@
"cRE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning)
"cRF" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/effect/landmark/start{name = "Geneticist"},/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning)
"cRG" = (/obj/effect/floor_decal/steeldecal/steel_decals4,/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning)
-"cRH" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Morgue"; req_access = list(6,5)},/turf/simulated/floor/tiled,/area/medical/morgue)
+"cRH" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Morgue"; req_access = list(6,5)},/turf/simulated/floor/tiled/steel_grid,/area/medical/morgue)
"cRI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled,/area/medical/morgue)
"cRJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled,/area/medical/morgue)
"cRK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/medical/morgue)
-"cRL" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/medical{name = "Morgue"; req_access = list(6)},/turf/simulated/floor/tiled,/area/medical/morgue)
+"cRL" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/medical{name = "Morgue"; req_access = list(6)},/turf/simulated/floor/tiled/steel_grid,/area/medical/morgue)
"cRM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/medbay2)
"cRN" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/item/device/radio/intercom/department/medbay{dir = 8; pixel_x = 21},/turf/simulated/floor/tiled/white,/area/medical/medbay2)
"cRO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/cargo)
@@ -7797,9 +7797,9 @@
"cTW" = (/obj/structure/closet/secure_closet/medical3,/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/borderfloorwhite{dir = 4},/obj/effect/floor_decal/corner/paleblue/border{dir = 4},/obj/effect/floor_decal/borderfloorwhite/corner2{dir = 5},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/ward)
"cTX" = (/obj/effect/floor_decal/borderfloorwhite{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/obj/effect/floor_decal/borderfloorwhite/corner2{dir = 10},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/ward)
"cTY" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/effect/floor_decal/borderfloorwhite{dir = 4},/obj/effect/floor_decal/corner/paleblue/border{dir = 4},/obj/effect/floor_decal/borderfloorwhite/corner2{dir = 5},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/ward)
-"cTZ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Cloning Laboratory"; req_access = list(66)},/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning)
-"cUa" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_medical{name = "Patient Ward"; req_access = list(5)},/turf/simulated/floor/tiled/white,/area/medical/patient_wing)
-"cUb" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_medical{name = "Patient Ward"; req_access = list(5)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/medical/patient_wing)
+"cTZ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Cloning Laboratory"; req_access = list(66)},/turf/simulated/floor/tiled/steel_grid,/area/medical/genetics_cloning)
+"cUa" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_medical{name = "Patient Ward"; req_access = list(5)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/steel_grid,/area/medical/patient_wing)
+"cUb" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_medical{name = "Patient Ward"; req_access = list(5)},/turf/simulated/floor/tiled/steel_grid,/area/medical/patient_wing)
"cUc" = (/turf/simulated/wall/r_wall,/area/medical/patient_wing)
"cUd" = (/obj/structure/closet/wardrobe/grey,/obj/item/weapon/storage/backpack,/obj/item/weapon/storage/backpack,/obj/random/maintenance/cargo,/obj/random/maintenance/cargo,/obj/random/maintenance/cargo,/obj/random/maintenance/cargo,/turf/simulated/floor/plating,/area/maintenance/cargo)
"cUe" = (/obj/structure/closet/crate,/obj/random/maintenance/cargo,/obj/random/maintenance/cargo,/obj/random/drinkbottle,/turf/simulated/floor/plating,/area/maintenance/cargo)
@@ -7978,21 +7978,21 @@
"cXv" = (/turf/simulated/wall/r_wall,/area/medical/surgery)
"cXw" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced/polarized{id = "st1_tint"},/turf/simulated/floor/plating,/area/medical/surgery)
"cXx" = (/turf/simulated/wall,/area/medical/surgery)
-"cXy" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Operating Theatre 1"; req_access = list(45)},/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/surgery)
+"cXy" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Operating Theatre 1"; req_access = list(45)},/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/steel_grid,/area/medical/surgery)
"cXz" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/item/device/radio/intercom/department/medbay{dir = 4; pixel_x = -21},/obj/effect/floor_decal/borderfloorwhite{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/ward)
"cXA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/ward)
"cXB" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/effect/floor_decal/borderfloorwhite{dir = 4},/obj/effect/floor_decal/corner/paleblue/border{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/ward)
"cXC" = (/turf/simulated/wall/r_wall,/area/medical/surgery2)
-"cXD" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Operating Theatre 2"; req_access = list(45)},/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/surgery2)
+"cXD" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Operating Theatre 2"; req_access = list(45)},/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/steel_grid,/area/medical/surgery2)
"cXE" = (/turf/simulated/wall,/area/medical/surgery2)
"cXF" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced/polarized{id = "st2_tint"},/turf/simulated/floor/plating,/area/medical/surgery2)
-"cXG" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/medical{name = "Operating Theatre Storage"; req_access = list(45)},/turf/simulated/floor/tiled/freezer,/area/medical/surgery_storage)
+"cXG" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/medical{name = "Operating Theatre Storage"; req_access = list(45)},/turf/simulated/floor/tiled/steel_grid,/area/medical/surgery_storage)
"cXH" = (/turf/simulated/wall,/area/medical/surgery_storage)
"cXI" = (/obj/machinery/door/firedoor,/obj/effect/wingrille_spawn/reinforced/polarized{id = "pr1_window_tint"},/turf/simulated/floor/plating,/area/medical/patient_a)
-"cXJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/medical{name = "Patient Room A"},/turf/simulated/floor/tiled/white,/area/medical/patient_a)
+"cXJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/medical{name = "Patient Room A"},/turf/simulated/floor/tiled/steel_grid,/area/medical/patient_a)
"cXK" = (/turf/simulated/wall,/area/medical/patient_a)
"cXL" = (/obj/machinery/door/firedoor,/obj/effect/wingrille_spawn/reinforced/polarized{id = "pr2_window_tint"},/turf/simulated/floor/plating,/area/medical/patient_b)
-"cXM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/medical{name = "Patient Room B"},/turf/simulated/floor/tiled/white,/area/medical/patient_b)
+"cXM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/medical{name = "Patient Room B"},/turf/simulated/floor/tiled/steel_grid,/area/medical/patient_b)
"cXN" = (/turf/simulated/wall/r_wall,/area/medical/patient_b)
"cXO" = (/obj/structure/bed/chair,/turf/simulated/floor/tiled/dark,/area/medical/patient_wing)
"cXP" = (/obj/structure/table/glass,/turf/simulated/floor/tiled/dark,/area/medical/patient_wing)
@@ -8036,7 +8036,7 @@
"cYB" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/surgery)
"cYC" = (/obj/structure/sink{pixel_y = 16},/obj/machinery/button/remote/blast_door{id = "surgeryobs"; name = "Privacy Shutters"; pixel_x = 26; pixel_y = 0},/obj/effect/floor_decal/borderfloorwhite{dir = 4},/obj/effect/floor_decal/corner/pink/border{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/surgery)
"cYD" = (/turf/simulated/wall,/area/medical/surgeryobs)
-"cYE" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/holosign/surgery,/obj/machinery/door/airlock/medical{id_tag = "surgery_observation"; name = "Observation Room"; req_access = newlist()},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/medical/surgeryobs)
+"cYE" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/holosign/surgery,/obj/machinery/door/airlock/medical{id_tag = "surgery_observation"; name = "Observation Room"; req_access = newlist()},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/steel_grid,/area/medical/surgeryobs)
"cYF" = (/obj/structure/sink{pixel_y = 16},/obj/machinery/button/remote/blast_door{id = "surgeryobs2"; name = "Privacy Shutters"; pixel_x = -26; pixel_y = 0},/obj/effect/floor_decal/borderfloorwhite{dir = 8},/obj/effect/floor_decal/corner/pink/border{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/surgery2)
"cYG" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/surgery2)
"cYH" = (/obj/structure/table/standard,/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/machinery/button/windowtint{id = "st2_tint"; pixel_x = -11; pixel_y = 22},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/item/weapon/surgical/bonesetter,/obj/item/weapon/surgical/bonegel,/obj/machinery/button/holosign{pixel_x = -11; pixel_y = 30},/obj/effect/floor_decal/borderfloorwhite/corner{dir = 4},/obj/effect/floor_decal/corner/pink/bordercorner{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/surgery2)
@@ -8393,9 +8393,9 @@
"dfu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled,/area/holodeck_control)
"dfv" = (/turf/simulated/wall,/area/medical/first_aid_station/seconddeck/aft)
"dfw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/medical/first_aid_station/seconddeck/aft)
-"dfx" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/aft)
+"dfx" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/tiled/steel_grid,/area/hallway/primary/seconddeck/aft)
"dfy" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/primary/seconddeck/aft)
-"dfz" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/aft)
+"dfz" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/steel_grid,/area/hallway/primary/seconddeck/aft)
"dfA" = (/obj/machinery/status_display,/turf/simulated/wall,/area/hydroponics)
"dfB" = (/obj/machinery/ai_status_display,/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/hydroponics)
"dfC" = (/turf/simulated/wall,/area/maintenance/chapel)
@@ -10872,7 +10872,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabySbySbySbySbySbySbySaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabSgceicejcekcelcemcenbVWceobZqbZqbZqbZqcepceqcercescetceuceucevcewcexcexcexcexcexcexcexccSccSccSceycezceAceBceCceDceEceFceGceHceGceGceGceGceGceIceIceIceIceJceIceIceIceKceLbsZbKkbKkbKjceMcbCceNceOcePceQceRceRceScdjceTbVbbVbbVbbVbbVbbVbbVbceTbVfceUceVceWbVeceXceYceZcfacfbbKlcfccfcbuObTmbwbbCybBibBjcfdbwbcfebwbcffcfgcfhcficfjcfgcfkcdFcflcfmcfncfocfpcfqcfrcfscftcftcfucbXcbXcbXcbXcbXcbXcbXcdRcbZcfvbwmcfwcfxcfybZbcfzcfAcfBcaVcaWccmcfCcfDbZjbZlcfEcfFcfGbZlbZmcfHbZmbZlbZlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabSfbSgcfIcfIbSgcfJcfKcfLbVWcfMcfNcfOcfPcfQcfRcfScfTcfUcfVcfWcfXcfYcfZcexcgacgacgacgacgacgbcgccgdccScgeckncggcghcgicgjcgkbsZbsZbsZbsZbsZbsZbsZbsZbsZbsZbsZbsZbsZbsZbsZbsZbsZcglcgmcgncgobKjcgpcgqcgrcgscgtceQceQcgucgvcdjcgwbVbcgxcgxcgxcgxcgxbVbcgybVecgzcgAbVebVecgBcgCcgBcgDcgEcgFcgGcgHcgIcgJbtJbuObuObuObuObuObuObuObuOcgKcgLckocgNcgKcdEcdEcdEcgOcdEcdEcdEcdEcgPcgQcftcgRcgScgTcgUcgUcgUcgUcgUcbXcbZcbZbZkbwmcgVbwmbwmbZbcgWbZbbZbcaVbZjbZkbZlbZlbZlbZlcgXcfFcgYcgZchachbchcchdbZlbZlaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachebSgchfchgchhchichjchkchlchmchnchochpchqchrchschtchuchvchwchxceuchychzcexcgacgacgacgacgachAchBchCchDchEchFchGchHckqchIchJchKchLcgichIchMchNchHchOchPchQchJchHchRchSchCchTchUchVchWchXchYchZbSYbSYciacibciccidceQcdjcdjcdjcbGbVbcgxcgxcgxcgxcgxbVbceTbVebVebVebVecgGciecifcigcihcihciicijcikcilcimcinciocipciqcirciscitciucivcircisckrcixciycizciAciBcixcizciCciDciEcgPciFciGciHciIciJcgUcgUcgUcgUcgUcbXciKcbZciLciMciNciObZkciPciQciRciSbZgciTciUbZlciVciWbZlciXcfFccqccqccqcfFccqciYciZbZmaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjacjbcjccjdcjecjfcjgcjhcjicjjcjkcjlcjmcjncjocjpcfTbJOcjqceuceucjrccScexcgacgacgacgacgacjscjtcjucjvcjwcksckucnUcjzcnUcqVckscrlcksckscsQcupcksckscwBcxJcwlcwtcxXcyicjKcjLcjMcCYczWcCXczWczWczWczWczWcjQcjRcjScjTcjUcjVcdmcjWbVbcgxcgxcgxcgxcgxbVbcjXbYncjYcjZckackbckcckdcCZcCZcCZcCZcCZcDicDacDhckickjckkcDjcJxcDjcDjcDkcKMcDjcJxckpcDjcMecDjcDjcTxcDjcDjcOKcktcDkcUCckvckwckxckyckzcgUcgUcgUcgUcgUcbXckAcbZckBckCckDckEckFckGckHckIckJckKckLckMckNckOckPckQckRckSckTckUckVckWckXccqckYckZaafaafaafaadaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjacjbcjccjdcjecjfcjgcjhcjicjjcjkcjlcjmcjncjocjpcfTbJOcjqceuceucjrccScexcgacgacgacgacgacjscjtcjucjvcjwcksckucnUcjzcnUcqVckscrlcksckscsQcupcksckscwBcxJcwlcwtcxXcyicjKcjLcjMcCYczWcCXczWczWczWczWczWcjQcjRcjScjTcjUcjVcdmcjWbVbcgxcgxcgxcgxcgxbVbcjXbYncjYcjZckackbckcckdcCZcCZcCZcCZcCZcDicDacDhckickjckkcDjcJxcDjcDjcDkcKMcDjcJxckpcDjcMecDjcDjcTxcDjcDjcOKcktcDkcUCckvckwckxckyckzcgUcgUcgUcgUcgUcbXckAcbZckBckCckDckEckFckGckHckIckJckKckLckMckQckOckPckNckRckSckTckUckVckWckXccqckYckZaafaafaafaadaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabSgclachgclbclccldcleclfclgclhclicljclkcllclmclncloceuceuceuclpclqclrcexcgacgacgacgacgaclscltchCchDcluclvclwclxckqclyclzclAclBcgiclyclCclDclxclEclFclGclHclIclJclKclLclMclNclOclPclQclRclSbSYbSYclTclUclVclWbVbclXclYcbHcbHbVbcgxcgxcgxcgxcgxbVbclZcmacmbcmcbVbcmdcmecmfcmgcmhcmhcmicmjcmkcmlcmmcmnciocipcitcmocitcitcmpcmqcmrcmscmtcmucmvcmvcmwcmxcmpcmvcmycYecmzcmAciFciGcmBcmCcmDcgUcgUcgUcgUcgUcbXcmEcmFbZkcmGcmHcmIbZkcmJcmKcmJcmLcmMcmNcmObZlcmPcmQbZlcmRcmScmTccqcmUcfFccqcmVcmWbZmaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabSfbSgcfIcfIbSgcmXcfKcmYbVWcmZcfNcnacnbcnccndcnecnfcngcnhcnicnjcnkclpcexcgacgacgacgacgacgbcnlcnmccSccScnncgkcnocgicnpcnqcnrcnrcnrcnrcnrcnrcnscnscntcnucnscnvcnwcnxcnycnzcnAcnBcgmcnCclWbKjcnDcgqcgrcnEcgtbKjbVbceTcnFcnGcnHbVbcgxcgxcgxcgxcgxcnIcnIcnJcnIcnIcnIcnIcnKcgCcgBcgDcnLcgFcnMcnNcgIcnOcnPcnPcnPcnQcnRcnScnScnScnScnScnTcnScnScnScnScnScnScZhcnVcnWcYecnXcgKcnYcftcnZcgKcgTcgUcgUcgUcgUcgUcbXcoacbZbZkcobcoccodcoecoecoecofcoecogcoecoebZlbZlbZlbZlcohcoicojcokcolcomconcoobZlbZlaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabSgcopcoqcorcoscemcotbVWcoucovcovcowcovcoxcoycovcngclpclpcozcoAclpcexcexcexcexcexcexcexccSccSccScoBcoCcoDcoEcoFcoGcoDcoHcoIcoJcoKcoLcoMcoNcoOcoPcoQcoRcnscoScoTcoScoUcoVcoWcnAbKkbKkcoXcoYcoZcpacpbcpcbVacpdcpecpfcpfcpfcpgcpgcphcpicpjcoXcnIcpkcplcpmcpncpocnIcppcpqcigcprcpscgFcfccfccnPcptcpucpvcpwcpxcpxcpycpzcpAcpBcpCcpDcpEcpFcpGcpHcpIcpIcpJcpKcpLcpMcpNcpOcpPcpPcpPcpQcbXcbXcbXcbXcbXcbXcbXcdRcbZcpRcobcpScpTcpUcpVcpWcpXcpYcpZcqacqbcqccqdcqdbZlcqecfFcqfbZlbZmcqgbZmbZlbZlaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -10895,7 +10895,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaafaaaaaaaaaaaacLEcPucPucLEcLEcKscHwcFDcFDcEecEecFDcFDcFDcFDcFDcFDcPvcPvcPvcCLcCLcCLcCLcPwcPxcJocKDcKDcKDcKDcKDcKEcKFcPycKFcKFcnAcnAcnAcPzcPAcPBcGgcPCcPDcPEcGgcOHcPFcPGcPHcPIcPJcOBczJcOBcOBcPKcPLcnAcPMcPNcPOcnPcPPcPQcPPcPRcPScPTcPUcOVcPTcrqcrqcPVcJzcJzcPWcJzcJzcOVcnPcETcPXcPYcJIcPZcQacQbcQccQdcJHcQecQfcQgcQhcQicJJcQjcQkcQlcQmcQncQocQpcQqcQrcQscQtcQucQvcQwcQxcQycQzcLvcQAcQBcOacQCcLvcQDcQEcobaaaaaaaaaaaaaaaaaaaaaaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaadaadaaaaaaaaacLEcQFcQGcQHcLEcQIcJdcQJcQKcQLcQMcQNcQOcHwcQPcHwcQQcQRcQRcQRcQScQTcQTcCLcCLcCLcJocJocJocJocJocJocJocPvcQUcPvcFDcQVcFDcQWczMcEEczMcQXcQYcOzcQZczMcOBcOBcPKcOBcOBcRaczJcRbcRccRdcRbcRbcRbcRecRfcRgcRhcRhcRhcRhcRhcRhcRhcRicRjcRkcRkcRkcRlcRmcRncRocRkcRkcRpcRqcRrcRscRtcJIcJIcJIcJIcJIcJIcJIcRucJJcJJcJJcRvcJJcRwcRxcRycRzcRwcJPcRAcJPcJPcJPcLpcRBcRCcRDcREcRFcRGcRHcOacRIcRJcRKcRLcRMcRNcobaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabetaafaafaafaafaaaaaaaaacLEcLEcQIcJccJccJccROcRPcRPcRPcRQcRPcRPcRPcRRcJccJccJccJccROcJccJccJccJccJccJccJccJccRScRTcRUcRVcRWcJccRXcRYcRZcSacSbcSbcSbcSbcSbcSbcSbcRbcRbcRbcRbcRbcRbcRbcSccSdcSecSfcRbcSgcShcSicRhcSjcSkcSlcSmcSncRhcSocrqcrpcrqcrqcSpcSqcSqcSqcSqcSqcSqcSrcSscrqcStcSucSvcSwcSxcSxcSycSzcSAcSBcSCcSDcSEcRycSFcSGcSHcSIcSJcRycSKcSDcSCcSBcSLcRBcSMcSNcSOcSPcSQcLvcSRcSScSTcSUcSVcSWcSXcobaaaaaaaaaaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaafaaaaaaaaaaaacLEcLEcLFcLFcLFcLEcLEcLEcLFcLFcLFcLEcLEcLEcLEcLEcLEcLEcLEcHwcHwcHwcHwcHwcHwcHwcHwcHwcHwcHwcLEcLEcLEcLEcSYcSZcTacSbcTbcTccTdcTecTfcSbcTgcThcTicTjcTkcTlcTmcTncTncTocTpcRbcTqdxKcTrcTscTtcTucTvcTwdFqcRhcTycTzcnPcTAcTBcPTcSqcTCcTDcTEcTFcTGcrqcSscTHcTIcTJcTKcTLcTMcTNcETcSzcTOcSHcTPcTQcTRcRycTScTTcTUcTVcTWcRycTXcTQcTPcSHcTYcRBcRBcRBcRBcTZcRBcLvcLvcLvcLvcLvcLvcUacUbcUcaafaafaafaaTaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaafaaaaaaaaaaaacLEcLEcLFcLFcLFcLEcLEcLEcLFcLFcLFcLEcLEcLEcLEcLEcLEcLEcLEcHwcHwcHwcHwcHwcHwcHwcHwcHwcHwcHwcLEcLEcLEcLEcSYcSZcTacSbcTbcTccTdcTecTfcSbcTgcThcTicTjcTkcTlcTmcTncTncTocTpcRbcTqdxKcTrcTscTtcTucTvcTwdFqcRhcTycTzcnPcTAcTBcPTcSqcTCcTDcTEcTFcTGcrqcSscTHcTIcTJcTKcTLcTMcTNcETcSzcTOcSHcTPcTQcTRcRycTScTTcTUcTVcTWcRycTXcTQcTPcSHcTYcRBcRBcRBcRBcTZcRBcLvcLvcLvcLvcLvcLvcUbcUacUcaafaafaafaaTaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaacLEcLEcUdcUecUfcUgcUhcUicUjcUkcUlcLEcLEaaaaaaaaacxVcUmcUncSbcSbcSbcUocUpcUqcSbcUrcUscUtcUucUvcUwcRbcUxcUycUzcUAcRbcUBdGdcUDcRhcUEcUFcUGcUHcUIcRhcUJcUKcSqcSqcSqcSqcSqcULcUMcUNcUOcUPcpucUQcURcUScUScURcUTcUUcUVcUWcUXcUYcUZcVacVbcVccVdcVecVfcVgcVecVecVdcVgcVhcVicVecVjcVkcVlcVmcVncVocVpcVqcVrcVscVtcVucVvcVwcVxcVyaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaagaadaadaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaacLEcLEcLEcLFcLFcLFcLFcLFcLEcLEcLEaaaaaaaaaaaacxVcVzcVAcSbcVBcVCcVDcVEcVFcSbcVGcVHcVIcVJcVKcVLcRbcRbcVMcRbcRbcRbcVNdxKcVOcRhcRhcVPcVQcVRcVScRhcVTcVUcVVcVWcVXcVYcSqcVZcWacWbcWccSqcWdcOVcWecWfcWgcWhcWicWicWjcETcSzcWkcWlcWmcWncWocWpcWqcWrcWscWtcWqcWucWvcWwcWxcWycWzcWAcWBcWCcWDcWEcWFcWGcWHcWIcWJcWKcWLcWMcWNcWOaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaabaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaacSYcUmcUncSbcSbcSbcSbcWPcSbcWQcWRcWRcWScWRcWRcWTcWUcWVcWWcWXcWYcWZcXadxKcXbcXccXdcXecXfcXgcXhcXicXjcXkcXlcXmcXncXocSqcSqcSqcXpcSqcSqcnPcXqcXrcXscXtcXucSycymcymcSycSzcSzcXvcXwcXxcXycXxcRwcXzcXAcXBcRwcXCcXDcXEcXFcXEcXGcXHcXHcXHcXIcXJcXIcXKcXLcXMcXLcXNcXOcXPcXOcVyaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/maps/southern_cross/southern_cross-3.dmm b/maps/southern_cross/southern_cross-3.dmm
index 7ed5b7319d..35406babf8 100644
--- a/maps/southern_cross/southern_cross-3.dmm
+++ b/maps/southern_cross/southern_cross-3.dmm
@@ -1,7 +1,7 @@
"aa" = (/turf/unsimulated/wall/planetary/sif,/area/surface/northwest)
"ab" = (/turf/unsimulated/wall/planetary/sif{icon_state = "rock-dark"},/area/surface/northwest)
"ac" = (/turf/unsimulated/wall/planetary/sif{icon_state = "rock-dark"},/area/surface/north)
-"ad" = (/turf/unsimulated/wall,/area/surface/north)
+"ad" = (/turf/simulated/wall/dungeon,/area/surface/north)
"ae" = (/obj/effect/step_trigger/teleporter/mine/to_mining,/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/north)
"af" = (/turf/unsimulated/wall/planetary/sif{icon_state = "rock-dark"},/area/surface/northeast)
"ag" = (/turf/simulated/floor/outdoors/snow/sif/planetuse,/area/surface/northwest)
@@ -63,1523 +63,1523 @@
"bk" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/camera/network/mining{c_tag = "OPM - Mining Airlock 2"; dir = 2},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main)
"bl" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main)
"bm" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/north)
-"bn" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/north)
-"bo" = (/turf/simulated/floor/plating/sif/planetuse,/area/surface/north)
-"bp" = (/turf/simulated/floor/plating/sif/planetuse,/area/shuttle/shuttle1/mining)
-"bq" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/north)
-"br" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/north)
-"bs" = (/turf/simulated/floor/plating/sif/planetuse,/area/shuttle/shuttle2/mining)
-"bt" = (/obj/effect/floor_decal/corner/brown{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage)
-"bu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage)
-"bv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage)
-"bw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage)
-"bx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage)
-"by" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_mining{name = "Mining Storage"; req_access = list(48)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage)
-"bz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"bA" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"bB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"bC" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"bD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"bE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"bF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "mining_airlock_control2"; name = "Mining Access Console"; pixel_x = 26; pixel_y = 26; tag_exterior_door = "mining_airlock_exterior2"; tag_interior_door = "mining_airlock_interior2"},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main)
-"bG" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "mining_airlock_control2"; name = "Mining Access Button"; pixel_x = 6; pixel_y = 26; req_access = null},/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "mining_airlock_interior2"; locked = 1; name = "Mining Interior Outpost"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"bH" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main)
-"bI" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main)
-"bJ" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "mining_airlock_exterior2"; locked = 1; name = "Mining Exterior Outpost"},/obj/effect/decal/cleanable/dirt,/obj/machinery/access_button/airlock_exterior{master_tag = "mining_airlock_control2"; pixel_y = 24},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"bK" = (/obj/structure/ore_box,/obj/effect/floor_decal/corner/brown/full,/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage)
-"bL" = (/obj/structure/ore_box,/obj/effect/floor_decal/corner/brown{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage)
-"bM" = (/obj/structure/reagent_dispensers/watertank,/obj/effect/floor_decal/corner/brown{dir = 10},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage)
-"bN" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/floor_decal/corner/brown{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage)
-"bO" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe/hammer,/obj/item/weapon/wrench,/obj/item/weapon/crowbar,/obj/item/weapon/shovel,/obj/effect/floor_decal/corner/brown{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage)
-"bP" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe/hammer,/obj/item/weapon/wrench,/obj/item/weapon/crowbar,/obj/item/weapon/shovel,/obj/effect/floor_decal/corner/brown{dir = 10},/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage)
-"bQ" = (/obj/effect/floor_decal/corner/brown{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"bR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"bS" = (/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"bT" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"bU" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"bV" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main)
-"bW" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main)
-"bX" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main)
-"bY" = (/turf/simulated/floor/outdoors/snow/sif/planetuse,/area/ninja_dojo/planet)
-"bZ" = (/obj/structure/ore_box,/turf/simulated/floor/tiled/dark,/area/surface/outpost/mining_main/storage)
-"ca" = (/turf/simulated/wall,/area/surface/outpost/mining_main/storage)
-"cb" = (/obj/effect/floor_decal/corner/brown{dir = 9},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"cc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"cd" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/effect/floor_decal/corner/brown,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"ce" = (/obj/machinery/mech_recharger,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"cf" = (/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/item/weapon/storage/toolbox/mechanical,/obj/structure/table/steel,/obj/machinery/light,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"cg" = (/obj/machinery/mech_recharger,/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"ch" = (/obj/machinery/recharge_station,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"ci" = (/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/refinery)
-"cj" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTH)"; icon_state = "warning_dust"; dir = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/sif/planetuse{icon_state = "asteroidfloor"},/area/surface/north)
-"ck" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/gen_room)
-"cl" = (/obj/machinery/floodlight,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage)
-"cm" = (/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage)
-"cn" = (/obj/structure/table/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/oxygen,/obj/item/weapon/tank/oxygen,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/weapon/extinguisher,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage)
-"co" = (/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/emergencystorage)
-"cp" = (/obj/effect/floor_decal/corner/brown{dir = 9},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"cq" = (/obj/structure/dispenser/oxygen,/obj/effect/floor_decal/corner/brown{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"cr" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
-"cs" = (/obj/structure/disposaloutlet{dir = 8},/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
-"ct" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/refinery)
-"cu" = (/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/industrial/warning/dust,/obj/effect/overlay/snow/floor,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/sif/planetuse{icon_state = "asteroidfloor"},/area/surface/north)
-"cv" = (/obj/effect/floor_decal/industrial/warning/dust,/obj/effect/overlay/snow/floor,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/sif/planetuse{icon_state = "asteroidfloor"},/area/surface/north)
-"cw" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 6; icon_state = "warning_dust"; tag = "icon-warning_dust (EAST)"},/obj/machinery/light/small{dir = 1},/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/tiled/sif/planetuse{icon_state = "asteroidfloor"},/area/surface/outpost/mining_main/gen_room)
-"cx" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/gateway)
-"cy" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/gateway)
-"cz" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/gateway)
-"cA" = (/obj/random/maintenance/clean,/obj/random/maintenance/security,/obj/random/contraband,/obj/random/drinkbottle,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/storage)
-"cB" = (/obj/random/maintenance/clean,/obj/random/contraband,/obj/random/tech_supply,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/storage)
-"cC" = (/obj/structure/closet/hydrant{pixel_x = -32; pixel_y = 0},/obj/item/clothing/glasses/meson,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage)
-"cD" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage)
-"cE" = (/obj/item/device/t_scanner,/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/storage/box/lights/mixed,/obj/structure/table/steel,/obj/random/maintenance/engineering,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage)
-"cF" = (/obj/effect/floor_decal/corner/brown{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"cG" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/item/clothing/mask/breath,/obj/machinery/door/window/westright{req_access = list(48)},/obj/structure/table/rack{dir = 8; layer = 2.6},/obj/effect/floor_decal/corner/brown{dir = 6},/obj/random/multiple/voidsuit/mining,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"cH" = (/obj/machinery/mineral/input,/obj/effect/floor_decal/industrial/loading{dir = 4},/obj/structure/sign/warning/moving_parts{pixel_y = 32},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery)
-"cI" = (/obj/machinery/mineral/unloading_machine,/turf/simulated/floor/tiled/dark,/area/surface/outpost/mining_main/refinery)
-"cJ" = (/obj/machinery/conveyor{dir = 4; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
-"cK" = (/obj/machinery/conveyor{dir = 4; id = "mining_internal"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
-"cL" = (/obj/machinery/conveyor{dir = 4; id = "mining_internal"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
-"cM" = (/obj/machinery/conveyor{dir = 9; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
-"cN" = (/obj/machinery/mineral/unloading_machine{icon_state = "unloader-corner"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
-"cO" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/obj/machinery/mineral/input,/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
-"cP" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/mining_main/gen_room)
-"cQ" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/floor/tiled/steel/sif/planetuse{tag = "icon-dark"; icon_state = "dark"},/area/surface/outpost/mining_main/gen_room)
-"cR" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/security)
-"cS" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/security)
-"cT" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/security)
-"cU" = (/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway)
-"cV" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway)
-"cW" = (/obj/machinery/camera/network/main_outpost{c_tag = "MO - Gateway"},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway)
-"cX" = (/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway)
-"cY" = (/obj/structure/extinguisher_cabinet{pixel_x = 25},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway)
-"cZ" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/first_aid)
-"da" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/first_aid)
-"db" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/first_aid)
-"dc" = (/turf/simulated/wall,/area/surface/outpost/mining_main/emergencystorage)
-"dd" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Emergency Storage"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage)
-"de" = (/obj/effect/floor_decal/corner/brown{dir = 9},/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"df" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"dg" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/item/clothing/mask/breath,/obj/machinery/door/window/westleft{req_access = list(48)},/obj/structure/table/rack{dir = 8; layer = 2.6},/obj/effect/floor_decal/corner/brown{dir = 6},/obj/random/multiple/voidsuit/mining,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"dh" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/surface/outpost/mining_main/refinery)
-"di" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
-"dj" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTH)"; icon_state = "warning_dust"; dir = 1},/obj/effect/overlay/snow/floor,/obj/machinery/light/small{dir = 8; pixel_x = 0},/turf/simulated/floor/tiled/sif/planetuse{icon_state = "asteroidfloor"},/area/surface/outpost/mining_main/gen_room)
-"dk" = (/obj/machinery/conveyor_switch{id = "mining_external"},/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTH)"; icon_state = "warning_dust"; dir = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/sif/planetuse{icon_state = "asteroidfloor"},/area/surface/outpost/mining_main/gen_room)
-"dl" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 5; icon_state = "warning_dust"; tag = "icon-warning_dust (EAST)"},/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/sif/planetuse{icon_state = "asteroidfloor"},/area/surface/north)
-"dm" = (/obj/machinery/light{dir = 1},/obj/structure/closet/secure_closet/guncabinet/rifle,/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/red/border{dir = 1},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"dn" = (/obj/machinery/deployable/barrier,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"do" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/structure/table/standard,/obj/item/weapon/book/codex/corp_regs,/obj/effect/floor_decal/borderfloor{dir = 5},/obj/effect/floor_decal/corner/red/border{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"dp" = (/obj/structure/closet/secure_closet/guncabinet/rifle,/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/red/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"dq" = (/obj/machinery/status_display,/turf/simulated/wall,/area/surface/outpost/main/gateway)
-"dr" = (/obj/machinery/gateway{dir = 9},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway)
-"ds" = (/obj/machinery/gateway{dir = 1},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway)
-"dt" = (/obj/machinery/gateway{dir = 5},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway)
-"du" = (/obj/machinery/ai_status_display,/turf/simulated/wall,/area/surface/outpost/main/gateway)
-"dv" = (/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = 0; pixel_y = 28},/obj/structure/table/glass,/obj/machinery/recharger,/obj/item/weapon/screwdriver,/obj/item/device/defib_kit/loaded,/obj/effect/floor_decal/borderfloorwhite{dir = 9},/obj/effect/floor_decal/corner/paleblue/border{dir = 9},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
-"dw" = (/obj/machinery/sleeper{dir = 4},/obj/machinery/light{dir = 1},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
-"dx" = (/obj/machinery/sleep_console{dir = 4},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
-"dy" = (/obj/structure/bed/roller,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/obj/effect/floor_decal/borderfloorwhite{dir = 5},/obj/effect/floor_decal/corner/paleblue/border{dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
-"dz" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/computer/guestpass{pixel_y = 30},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main)
-"dA" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main)
-"dB" = (/obj/effect/floor_decal/corner/brown{dir = 1},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"dC" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"dD" = (/obj/effect/floor_decal/corner/brown{dir = 4},/obj/machinery/firealarm{pixel_y = 24},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"dE" = (/obj/effect/floor_decal/corner/brown{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"dF" = (/obj/structure/cable/blue{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,/area/surface/outpost/mining_main)
-"dG" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_mining{name = "Production Area"; req_access = list(48)},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery)
-"dH" = (/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery)
-"dI" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery)
-"dJ" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery)
-"dK" = (/obj/machinery/mineral/input,/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
-"dL" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/sif/planetuse{icon_state = "asteroidfloor"},/area/surface/north)
-"dM" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (EAST)"; icon_state = "warning_dust"; dir = 4},/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/sif/planetuse{icon_state = "asteroidfloor"},/area/surface/north)
-"dN" = (/obj/structure/window/reinforced,/obj/machinery/deployable/barrier,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"dO" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"dP" = (/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"dQ" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/red/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"dR" = (/turf/simulated/wall,/area/surface/outpost/main/gateway)
-"dS" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway)
-"dT" = (/obj/machinery/gateway{dir = 8},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway)
-"dU" = (/obj/machinery/cryopod/robot/door/gateway,/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway)
-"dV" = (/obj/machinery/gateway{dir = 4},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway)
-"dW" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway)
-"dX" = (/obj/structure/table/glass,/obj/item/roller,/obj/item/roller{pixel_y = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/obj/effect/floor_decal/borderfloorwhite{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
-"dY" = (/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
-"dZ" = (/obj/structure/window/reinforced,/obj/structure/table/rack,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/firstaid/regular,/obj/random/medical/lite,/obj/effect/floor_decal/borderfloorwhite{dir = 5},/obj/effect/floor_decal/corner/paleblue/border{dir = 5},/obj/effect/floor_decal/borderfloorwhite/corner2{dir = 5},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 5},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
-"ea" = (/obj/structure/window/reinforced,/obj/effect/floor_decal/industrial/warning/corner,/obj/effect/floor_decal/borderfloorwhite/corner{dir = 4},/obj/effect/floor_decal/corner/paleblue/bordercorner{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
-"eb" = (/obj/effect/decal/cleanable/dirt,/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/north)
-"ec" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "mining1_airlock_exterior"; locked = 1; name = "Mining Exterior Outpost"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "mining1_airlock_control"; name = "Mining Access Button"; pixel_x = 0; pixel_y = -24; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"ed" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main)
-"ee" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main)
-"ef" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "mining1_airlock_interior"; locked = 1; name = "Mining Interior Outpost"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "mining1_airlock_control"; name = "Mining Access Button"; pixel_x = -6; pixel_y = -26; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"eg" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "mining1_airlock_control"; name = "Mining Access Console"; pixel_x = -26; pixel_y = -26; tag_exterior_door = "mining1_airlock_exterior"; tag_interior_door = "mining1_airlock_interior"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"eh" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"ei" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"ej" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"ek" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"el" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera/network/mining{c_tag = "OPM - Mining Hallway 1"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"em" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
-"en" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery)
-"eo" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark,/area/surface/outpost/mining_main/refinery)
-"ep" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery)
-"eq" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/camera/network/mining{c_tag = "OPM - Mining Production Room"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery)
-"er" = (/obj/machinery/mineral/processing_unit_console,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/refinery)
-"es" = (/obj/machinery/mineral/processing_unit,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
-"et" = (/obj/structure/table/standard,/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/red/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"eu" = (/obj/machinery/alarm{pixel_y = 23},/obj/structure/table/standard,/obj/item/weapon/storage/box/donut,/obj/effect/floor_decal/borderfloor{dir = 9},/obj/effect/floor_decal/corner/red/border{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"ev" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"ew" = (/obj/machinery/computer/cryopod/gateway{pixel_x = -30},/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway)
-"ex" = (/obj/machinery/gateway{dir = 10},/obj/effect/landmark{name = "JoinLateGateway"},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway)
-"ey" = (/obj/machinery/gateway,/obj/effect/landmark{name = "JoinLateGateway"},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway)
-"ez" = (/obj/machinery/gateway{dir = 6},/obj/effect/landmark{name = "JoinLateGateway"},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway)
-"eA" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/atm{pixel_x = 30},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway)
-"eB" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/table/standard,/obj/effect/floor_decal/borderfloor{dir = 5},/obj/effect/floor_decal/corner/red/border{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"eC" = (/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/red/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"eD" = (/obj/machinery/atmospherics/unary/freezer{dir = 2; icon_state = "freezer"},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
-"eE" = (/obj/machinery/atmospherics/unary/cryo_cell{layer = 3.3},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
-"eF" = (/obj/machinery/light/small{dir = 4},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/mining_main/gen_room)
-"eG" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main)
-"eH" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/camera/network/mining{c_tag = "OPM - Mining Airlock 1"; dir = 1},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main)
-"eI" = (/obj/effect/floor_decal/corner/brown{dir = 10},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"eJ" = (/obj/effect/floor_decal/corner/brown{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"eK" = (/obj/machinery/computer/crew,/obj/effect/floor_decal/borderfloorwhite{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
-"eL" = (/obj/structure/closet/crate,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery)
-"eM" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/closet/crate,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery)
-"eN" = (/obj/machinery/conveyor_switch/oneway{id = "mining_internal"; name = "mining conveyor"},/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery)
-"eO" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
-"eP" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/structure/table/glass,/obj/item/weapon/wrench,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 7; pixel_y = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
-"eQ" = (/obj/machinery/camera/network/main_outpost{c_tag = "MO - Security Checkpoint"; dir = 4},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/red/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"eR" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"eS" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/floor_decal/borderfloor/corner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"eT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway)
-"eU" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway)
-"eV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway)
-"eW" = (/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/red/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"eX" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
-"eY" = (/obj/structure/bed/chair/office/light{dir = 1},/obj/effect/floor_decal/borderfloorwhite/corner{dir = 1},/obj/effect/floor_decal/corner/paleblue/bordercorner{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
-"eZ" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
-"fa" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
-"fb" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main)
-"fc" = (/turf/simulated/wall,/area/surface/outpost/mining_main)
-"fd" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4},/obj/machinery/camera/network/main_outpost{c_tag = "MO - FA Station"; dir = 8},/obj/effect/floor_decal/borderfloorwhite{dir = 4},/obj/effect/floor_decal/corner/paleblue/border{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
-"fe" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/effect/floor_decal/corner/brown{dir = 8},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"ff" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"fg" = (/obj/effect/floor_decal/corner/brown,/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/space_heater,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"fh" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/surface/outpost/mining_main/refinery)
-"fi" = (/obj/machinery/mineral/stacking_unit_console,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/refinery)
-"fj" = (/obj/machinery/light/small,/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (EAST)"; icon_state = "warning_dust"; dir = 4},/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/sif/planetuse{icon_state = "asteroidfloor"},/area/surface/outpost/mining_main/gen_room)
-"fk" = (/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/red/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"fl" = (/obj/structure/bed/chair/office/dark,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"fm" = (/obj/machinery/door/window/brigdoor/eastright{name = "Security Checkpoint"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"fn" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"fo" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"fp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"fq" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway)
-"fr" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass_security{name = "Security Checkpoint"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/security)
-"fs" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway)
-"ft" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway)
-"fu" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway)
-"fv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
-"fw" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass_medical{name = "First-Aid Station"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/first_aid)
-"fx" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
-"fy" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
-"fz" = (/obj/machinery/door/window/westleft{name = "Medical Staff Only"; req_one_access = list(5)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
-"fA" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
-"fB" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/effect/floor_decal/borderfloorwhite{dir = 4},/obj/effect/floor_decal/corner/paleblue/border{dir = 4},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
-"fC" = (/obj/random/obstruction,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"fD" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/power/port_gen/pacman,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"fE" = (/obj/structure/closet/crate,/obj/item/stack/material/phoron{amount = 50},/obj/item/stack/material/phoron{amount = 50},/obj/item/stack/material/phoron{amount = 50},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"fF" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"fG" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"fH" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/engineering{name = "Generator Room"; req_one_access = list(12,47)},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"fI" = (/obj/effect/floor_decal/industrial/loading{tag = "icon-loadingarea (WEST)"; icon_state = "loadingarea"; dir = 8},/obj/structure/sign/warning/moving_parts{pixel_y = -32},/obj/structure/extinguisher_cabinet{pixel_x = -28; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery)
-"fJ" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/obj/structure/plasticflaps,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
-"fK" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
-"fL" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
-"fM" = (/obj/machinery/mineral/stacking_machine,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
-"fN" = (/obj/machinery/conveyor{dir = 5; icon_state = "conveyor0"; id = "miningout_internal"},/obj/machinery/mineral/input,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
-"fO" = (/obj/effect/floor_decal/industrial/warning/dust,/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/sif/planetuse{icon_state = "asteroidfloor"},/area/surface/north)
-"fP" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/gen_room)
-"fQ" = (/obj/machinery/computer/security,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/red/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"fR" = (/obj/machinery/computer/secure_data,/obj/effect/floor_decal/borderfloor{dir = 10},/obj/effect/floor_decal/corner/red/border{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"fS" = (/obj/structure/closet/crate,/obj/effect/floor_decal/borderfloor/corner{dir = 8},/obj/effect/floor_decal/corner/red/bordercorner{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"fT" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/device/flash,/obj/item/weapon/pen,/obj/item/weapon/crowbar,/obj/machinery/light,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/red/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"fU" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/red/bordercorner,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"fV" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"fW" = (/obj/machinery/alarm{dir = 1; pixel_y = -25},/obj/structure/closet/l3closet/scientist,/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway)
-"fX" = (/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway)
-"fY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway)
-"fZ" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway)
-"ga" = (/obj/structure/closet/emcloset,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable/blue,/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway)
-"gb" = (/obj/structure/closet/l3closet/scientist,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/borderfloorwhite/corner{dir = 8},/obj/effect/floor_decal/corner/paleblue/bordercorner{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
-"gc" = (/obj/structure/table/glass,/obj/item/weapon/crowbar,/obj/item/bodybag,/obj/item/bodybag/cryobag,/obj/effect/floor_decal/borderfloorwhite/corner,/obj/effect/floor_decal/corner/paleblue/bordercorner,/obj/item/bodybag/cryobag,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
-"gd" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
-"ge" = (/obj/structure/table/glass,/obj/item/weapon/storage/firstaid/toxin{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/firstaid/fire{pixel_x = 0; pixel_y = 0},/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
-"gf" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/glass,/obj/item/weapon/storage/firstaid/adv{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/firstaid/o2{pixel_x = 0; pixel_y = 0},/obj/machinery/light,/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
-"gg" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/portable_atmospherics/canister/oxygen/prechilled,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
-"gh" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"gi" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"gj" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"gk" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"gl" = (/obj/machinery/power/smes/buildable/outpost_substation{charge = 500000; input_attempt = 1; input_level = 150000; output_level = 150000; RCon_tag = "Outpost - Mining"},/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"gm" = (/obj/machinery/ai_status_display,/turf/simulated/wall,/area/surface/outpost/mining_main/gen_room)
-"gn" = (/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"go" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"gp" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/gen_room)
-"gq" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/telecomms)
-"gr" = (/turf/simulated/wall,/area/surface/outpost/main/teleporter)
-"gs" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/teleporter)
-"gt" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass{name = "Gateway Access"},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway)
-"gu" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/garage)
-"gv" = (/turf/simulated/wall,/area/surface/outpost/main/garage)
-"gw" = (/obj/structure/table/steel,/obj/random/tech_supply,/obj/random/tech_supply,/obj/machinery/camera/network/engineering_outpost{c_tag = "ENG - Mining Outpost Power West"; dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"gx" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"gy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"gz" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"gA" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"gB" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"gC" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"gD" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"gE" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"gF" = (/obj/machinery/atmospherics/pipe/tank/nitrous_oxide,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"gG" = (/obj/machinery/atmospherics/pipe/tank/carbon_dioxide,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"gH" = (/obj/machinery/atmospherics/pipe/tank/air,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"gI" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"gJ" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/alarm{pixel_y = 23},/obj/machinery/telecomms/relay/preset/southerncross/cave,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms)
-"gK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/telecomms/relay/preset/southerncross/planet,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms)
-"gL" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Telecomm"},/obj/machinery/telecomms/relay/preset/southerncross/wild,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms)
-"gM" = (/turf/simulated/wall,/area/surface/outpost/main/security)
-"gN" = (/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/obj/effect/floor_decal/borderfloor/corner2{dir = 10},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"gO" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 36; pixel_y = 1},/obj/structure/cable/blue,/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/obj/effect/floor_decal/borderfloor/corner2{dir = 5},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"gP" = (/obj/machinery/door/window/northright,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"gQ" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/surface/outpost/main/teleporter)
-"gR" = (/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"gS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"gT" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/obj/structure/cable/blue,/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/white/border{dir = 8},/obj/effect/floor_decal/borderfloor/corner2{dir = 10},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
-"gU" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/turf/simulated/floor/plating,/area/surface/outpost/main/garage)
-"gV" = (/obj/structure/table/steel,/obj/item/weapon/weldpack,/turf/simulated/floor/plating,/area/surface/outpost/main/garage)
-"gW" = (/obj/machinery/space_heater,/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/plating,/area/surface/outpost/main/garage)
-"gX" = (/obj/item/stack/tile/floor/steel_dirty,/turf/simulated/floor/plating,/area/surface/outpost/main/garage)
-"gY" = (/obj/machinery/mech_recharger,/obj/machinery/light{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/main/garage)
-"gZ" = (/obj/structure/closet/hydrant{pixel_y = 32},/obj/item/clothing/glasses/meson,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
-"ha" = (/obj/structure/ore_box,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
-"hb" = (/obj/structure/table/steel,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/weapon/storage/toolbox/emergency{pixel_x = 5; pixel_y = 5},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
-"hc" = (/obj/structure/table/steel,/obj/random/tool,/obj/random/tool,/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"hd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/pipedispenser/disposal,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"he" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/pipedispenser,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"hf" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"hg" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"hh" = (/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"hi" = (/obj/machinery/atmospherics/binary/pump/on{dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"hj" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact (EAST)"},/obj/machinery/atmospherics/binary/pump{dir = 2},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"hk" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow,/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact (EAST)"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"hl" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"hm" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{tag = "icon-map (EAST)"; icon_state = "map"; dir = 4},/obj/machinery/meter,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"hn" = (/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/obj/machinery/camera/network/engineering_outpost{c_tag = "ENG - Mining Outpost Power East"; dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"ho" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/machinery/light/small,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms)
-"hp" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms)
-"hq" = (/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms)
-"hr" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter)
-"hs" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter)
-"ht" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter)
-"hu" = (/turf/simulated/wall,/area/surface/outpost/main/first_aid)
-"hv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"hw" = (/obj/structure/window/reinforced{dir = 1},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/white/border{dir = 4},/obj/effect/floor_decal/borderfloor/corner2{dir = 5},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
-"hx" = (/obj/structure/extinguisher_cabinet{pixel_x = -25},/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/surface/outpost/main/garage)
-"hy" = (/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
-"hz" = (/turf/simulated/floor/plating,/area/surface/outpost/main/garage)
-"hA" = (/obj/structure/table/steel,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
-"hB" = (/obj/machinery/light,/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/mining_main/gen_room)
-"hC" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/north)
-"hD" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/north)
-"hE" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/north)
-"hF" = (/obj/structure/table/steel,/obj/item/weapon/storage/toolbox/mechanical,/obj/machinery/light/small{dir = 8; pixel_x = 0},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"hG" = (/obj/machinery/power/terminal,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"hH" = (/obj/machinery/power/terminal,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"hI" = (/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/structure/cable/blue,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"hJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"hK" = (/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/portable_atmospherics/powered/scrubber,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"hL" = (/obj/machinery/atmospherics/binary/pump/on{dir = 4},/obj/machinery/portable_atmospherics/powered/pump/filled{pixel_x = 0},/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"hM" = (/obj/machinery/atmospherics/pipe/manifold/visible/yellow,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/meter,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"hN" = (/obj/machinery/atmospherics/omni/atmos_filter{tag_east = 2; tag_north = 7; tag_west = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"hO" = (/obj/machinery/atmospherics/omni/atmos_filter{tag_east = 2; tag_north = 5; tag_south = 6; tag_west = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"hP" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"hQ" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{tag = "icon-map (EAST)"; icon_state = "map"; dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"hR" = (/obj/machinery/light/small{dir = 4},/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"hS" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/highsecurity{name = "Telecommunication Hub"; req_one_access = list(10,48,65)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms)
-"hT" = (/obj/structure/table/standard,/obj/item/weapon/crowbar/red,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/item/weapon/crowbar/red,/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter)
-"hU" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light,/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter)
-"hV" = (/obj/machinery/door/window/northleft,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
-"hW" = (/obj/effect/floor_decal/corner/brown{dir = 10},/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"hX" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main/security)
-"hY" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
-"hZ" = (/obj/machinery/power/smes/buildable{charge = 1.5e+007; cur_coils = 3; input_attempt = 1; input_level = 750000; input_level_max = 750000; output_level = 750000; output_level_max = 750000; RCon_tag = "Outpost - Main Power Unit 1"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"ia" = (/obj/machinery/power/smes/buildable{charge = 1.5e+007; cur_coils = 3; input_attempt = 1; input_level = 750000; input_level_max = 750000; output_level = 750000; output_level_max = 750000; RCon_tag = "Outpost - Main Power Unit 2"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"ib" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/closet/toolcloset,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"ic" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"id" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/gen_room)
-"ie" = (/obj/machinery/portable_atmospherics/canister/air,/obj/machinery/camera/network/engineering_outpost{c_tag = "ENG - Outpost Mining Atmospherics"; dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"if" = (/obj/machinery/atmospherics/pipe/tank/phoron{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"ig" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 1; start_pressure = 740},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
-"ih" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/gen_room)
-"ii" = (/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/table/steel,/obj/machinery/cell_charger,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
-"ij" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
-"ik" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security)
-"il" = (/turf/simulated/wall,/area/surface/outpost/main/gen_room)
-"im" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/computer/guestpass{pixel_y = 30},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security)
-"in" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 26},/obj/structure/table/bench/steel,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"io" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"ip" = (/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/obj/item/frame/light,/turf/simulated/floor/plating,/area/surface/outpost/main/garage)
-"iq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
-"ir" = (/obj/machinery/floodlight,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
-"is" = (/obj/machinery/space_heater,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
-"it" = (/obj/structure/cable,/obj/structure/cable/heavyduty{d2 = 2; icon_state = "0-2"},/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/gen_room)
-"iu" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/sif/planetuse,/area/surface/north)
-"iv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/north)
-"iw" = (/obj/structure/table/steel,/obj/machinery/recharger,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
-"ix" = (/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
-"iy" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
-"iz" = (/obj/structure/dispenser{phorontanks = 0},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Teleporter Access"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"iA" = (/obj/structure/closet/emcloset,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"iB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"iC" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"iD" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"iE" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 26},/obj/structure/table/bench/steel,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Explorer Prep"; dir = 2},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"iF" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
-"iG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/surface/outpost/main/garage)
-"iH" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "2-4"},/turf/simulated/floor/tiled/sif/planetuse,/area/surface/north)
-"iI" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "4-8"},/turf/simulated/floor/tiled/sif/planetuse,/area/surface/north)
-"iJ" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "icon-1-4"},/obj/structure/cable/heavyduty{icon_state = "1-8"; tag = "icon-1-4"},/turf/simulated/floor/tiled/sif/planetuse,/area/surface/north)
-"iK" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled/sif/planetuse,/area/surface/north)
-"iL" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/sif/planetuse,/area/surface/north)
-"iM" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "2-8"},/obj/structure/cable/heavyduty{icon_state = "4-8"},/obj/structure/cable/heavyduty{icon_state = "1-8"; tag = "icon-1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/north)
-"iN" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/heavyduty{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
-"iO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/heavyduty{icon_state = "2-8"},/obj/machinery/portable_atmospherics/powered/pump/filled{pixel_x = 0},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
-"iP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
-"iQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
-"iR" = (/obj/machinery/door/airlock/engineering{name = "Generator Room"; req_one_access = list(12,47)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
-"iS" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"iT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"iU" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"iV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/glass,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"iW" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"iX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"iY" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
-"iZ" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
-"ja" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/garage)
-"jb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/garage)
-"jc" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
-"jd" = (/obj/structure/cable/heavyduty,/obj/machinery/power/terminal,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
-"je" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
-"jf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"jg" = (/obj/machinery/camera/network/main_outpost{c_tag = "MO - Hallway North 1"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"jh" = (/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
-"ji" = (/obj/machinery/status_display,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/surface/outpost/main)
-"jj" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"jk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"jl" = (/obj/machinery/newscaster{pixel_x = 30; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"jm" = (/obj/machinery/portable_atmospherics/powered/scrubber,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
-"jn" = (/obj/machinery/power/smes/buildable{charge = 1.5e+007; cur_coils = 3; input_attempt = 1; input_level = 750000; input_level_max = 750000; output_level = 750000; output_level_max = 750000; RCon_tag = "Outpost - Main Power Unit 1"},/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
-"jo" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/table/steel,/obj/item/weapon/storage/toolbox/electrical,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
-"jp" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/table/steel,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
-"jq" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
-"jr" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
-"js" = (/obj/machinery/camera/network/main_outpost{c_tag = "MO - SAR Prep"; dir = 2},/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
-"jt" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main)
-"ju" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/glass,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"jv" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"jw" = (/obj/machinery/portable_atmospherics/powered/pump/filled{pixel_x = 0},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
-"jx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
-"jy" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
-"jz" = (/obj/machinery/mech_recharger,/obj/effect/decal/mecha_wreckage/ripley,/obj/machinery/light,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
-"jA" = (/obj/item/inflatable/door/torn,/obj/item/weapon/screwdriver,/turf/simulated/floor,/area/surface/outpost/main/garage)
-"jB" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/surface/outpost/main/garage)
-"jC" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/surface/outpost/main/garage)
-"jD" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/gym)
-"jE" = (/turf/simulated/wall,/area/surface/outpost/main/gym)
-"jF" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/random/powercell,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
-"jG" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"jH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"jI" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"jJ" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/computer/guestpass{pixel_x = 30; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"jK" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
-"jL" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/construction_area)
-"jM" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
-"jN" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/gen_room/smes)
-"jO" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes)
-"jP" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/bar)
-"jQ" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/bar)
-"jR" = (/obj/structure/extinguisher_cabinet{pixel_y = 30},/turf/simulated/floor/holofloor/wood,/area/surface/outpost/main/gym)
-"jS" = (/obj/structure/fitness/punchingbag,/turf/simulated/floor/holofloor/wood,/area/surface/outpost/main/gym)
-"jT" = (/obj/machinery/ai_status_display{pixel_y = 32},/turf/simulated/floor/holofloor/wood,/area/surface/outpost/main/gym)
-"jU" = (/obj/machinery/status_display{pixel_y = 32},/turf/simulated/floor/holofloor/wood,/area/surface/outpost/main/gym)
-"jV" = (/obj/machinery/vending/fitness,/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
-"jW" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
-"jX" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/gym)
-"jY" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"jZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"ka" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"kb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/junction,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"kc" = (/obj/effect/floor_decal/corner/brown/full,/obj/structure/closet,/obj/item/clothing/suit/storage/hooded/wintercoat/cargo,/obj/item/clothing/suit/storage/hooded/wintercoat/miner,/obj/item/clothing/suit/storage/hooded/wintercoat/miner,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/shoes/boots/winter,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
-"kd" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main5_airlock_exterior"; locked = 1; name = "Main Outpost Exterior"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "main5_airlock_control"; name = "Main Access Button"; pixel_x = 0; pixel_y = -24; req_access = null},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security)
-"ke" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security)
-"kf" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/glass,/turf/simulated/floor/plating,/area/surface/outpost/main)
-"kg" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"kh" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"ki" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main)
-"kj" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main)
-"kk" = (/obj/structure/table/steel,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
-"kl" = (/obj/structure/table/steel,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/obj/random/technology_scanner,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
-"km" = (/obj/machinery/alarm{pixel_y = 22},/obj/random/toolbox,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
-"kn" = (/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
-"ko" = (/obj/item/weapon/stool,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
-"kp" = (/turf/simulated/wall,/area/surface/outpost/main/gen_room/smes)
-"kq" = (/obj/structure/cable/heavyduty,/obj/machinery/power/terminal{dir = 4},/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/random/powercell,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes)
-"kr" = (/obj/machinery/power/smes/buildable/outpost_substation{charge = 500000; input_attempt = 1; input_level = 150000; output_level = 150000; RCon_tag = "Outpost - Dorms"},/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes)
-"ks" = (/turf/simulated/wall,/area/surface/outpost/main/bar)
-"kt" = (/obj/structure/table/marble,/obj/machinery/chemical_dispenser/bar_alc/full,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"ku" = (/obj/machinery/button/remote/blast_door{id = "barout"; name = "Bar Shutters"; pixel_x = 0; pixel_y = 26},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"kv" = (/obj/structure/table/marble,/obj/machinery/door/blast/shutters{dir = 4; id = "barout"; layer = 3.1; name = "Bar Shutters"},/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"kw" = (/obj/item/weapon/stool,/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"kx" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"ky" = (/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"kz" = (/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"kA" = (/obj/structure/extinguisher_cabinet{pixel_y = 30},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"kB" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main/corridor)
-"kC" = (/obj/effect/overlay/snow/floor,/obj/machinery/light/small,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main/corridor)
-"kD" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/holofloor/wood,/area/surface/outpost/main/gym)
-"kE" = (/turf/simulated/floor/holofloor/wood,/area/surface/outpost/main/gym)
-"kF" = (/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
-"kG" = (/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
-"kH" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security)
-"kI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"kJ" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "main5_airlock_control"; name = "Main Access Console"; pixel_x = -26; pixel_y = -26; tag_exterior_door = "main5_airlock_exterior"; tag_interior_door = "main5_airlock_interior"},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"kK" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"kL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"kM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/glass,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"kN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"kO" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"kP" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"kQ" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "main2_airlock_control"; name = "Main Access Console"; pixel_x = 26; pixel_y = -26; tag_exterior_door = "main2_airlock_exterior"; tag_interior_door = "main2_airlock_interior"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"kR" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main2_airlock_interior"; locked = 1; name = "Main Outpost Interior"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "main2_airlock_control"; name = "Main Access Button"; pixel_x = 6; pixel_y = -26; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"kS" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"kT" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"kU" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main2_airlock_exterior"; locked = 1; name = "Main Outpost Exterior"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "main2_airlock_control"; name = "Main Access Button"; pixel_x = 0; pixel_y = -24; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"kV" = (/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main)
-"kW" = (/obj/structure/closet/toolcloset,/obj/item/device/flashlight/maglight,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
-"kX" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
-"kY" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
-"kZ" = (/obj/machinery/light/small{dir = 8; pixel_x = 0},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes)
-"la" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes)
-"lb" = (/obj/structure/table/marble,/obj/machinery/chemical_dispenser/bar_soft/full,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Bar West"; dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"lc" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"ld" = (/obj/structure/table/marble,/obj/machinery/cash_register/civilian{dir = 8; icon_state = "register_idle"; tag = "icon-register_idle (WEST)"},/obj/machinery/door/blast/shutters{dir = 4; id = "barout"; layer = 3.1; name = "Bar Shutters"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"le" = (/obj/item/weapon/stool/padded,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"lf" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"lg" = (/obj/structure/bed/chair/wood,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"lh" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"li" = (/obj/structure/table/woodentable,/obj/machinery/microwave,/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"lj" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/surface/outpost/main/corridor)
-"lk" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/corridor)
-"ll" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main4_airlock_exterior"; locked = 1; name = "Main Outpost Exterior"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "main4_airlock_control"; name = "Main Access Button"; pixel_x = 32; pixel_y = 0; req_access = null},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/corridor)
-"lm" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/corridor)
-"ln" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/gym)
-"lo" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
-"lp" = (/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
-"lq" = (/obj/effect/floor_decal/borderfloor/corner{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
-"lr" = (/obj/structure/table/standard,/obj/machinery/recharger,/obj/item/weapon/wrench,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
-"ls" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"lt" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"lu" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"lv" = (/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"lw" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "main5_airlock_control"; name = "Main Access Button"; pixel_x = -6; pixel_y = -26; req_access = null},/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main5_airlock_interior"; locked = 1; name = "Main Outpost Interior"},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"lx" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"ly" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass{name = "Explorer Prep"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/security)
-"lz" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"lA" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/light,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"lB" = (/obj/machinery/light/small{dir = 8; pixel_x = 0},/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main)
-"lC" = (/obj/structure/closet/crate,/obj/item/weapon/crowbar/red,/obj/item/frame/light,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
-"lD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
-"lE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"lF" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes)
-"lG" = (/obj/machinery/light{dir = 8},/obj/machinery/vending/boozeomat{req_access = null},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"lH" = (/obj/structure/table/marble,/obj/machinery/door/blast/shutters{dir = 4; id = "barout"; layer = 3.1; name = "Bar Shutters"},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"lI" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"lJ" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"lK" = (/obj/structure/table/woodentable,/obj/item/weapon/book/codex/lore/vir,/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"lL" = (/obj/structure/table/woodentable,/obj/item/device/paicard,/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"lM" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/box/donkpockets,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Bar East"; dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"lN" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/corridor)
-"lO" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Corridor Access North"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"lP" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"lQ" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"lR" = (/obj/structure/fitness/weightlifter,/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
-"lS" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/regular,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
-"lT" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"lU" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"lV" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/restroom)
-"lW" = (/turf/simulated/wall,/area/surface/outpost/main/restroom)
-"lX" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock{name = "Unisex Restrooms"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"lY" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
-"lZ" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
-"ma" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
-"mb" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
-"mc" = (/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 36; pixel_y = 1},/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
-"md" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/engineering{name = "SMES Room"; req_one_access = list(12,47)},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes)
-"me" = (/obj/machinery/smartfridge/drinks,/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"mf" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"mg" = (/obj/structure/table/marble,/obj/machinery/door/blast/shutters{dir = 4; id = "barout"; layer = 3.1; name = "Bar Shutters"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"mh" = (/obj/item/weapon/stool/padded,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"mi" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"mj" = (/obj/structure/bed/chair/wood{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"mk" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"ml" = (/obj/structure/table/woodentable,/obj/machinery/recharger,/obj/machinery/newscaster{pixel_x = 30; pixel_y = 0},/obj/item/clothing/head/hardhat/orange,/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"mm" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"mn" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"mo" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"mp" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
-"mq" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
-"mr" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
-"ms" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
-"mt" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
-"mu" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/cups,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
-"mv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/glass,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"mw" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"mx" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"my" = (/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"mz" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"mA" = (/obj/structure/toilet{dir = 8},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"mB" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
-"mC" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
-"mD" = (/obj/structure/cable/blue{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/plating,/area/surface/outpost/main/construction_area)
-"mE" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
-"mF" = (/turf/simulated/wall,/area/surface/outpost/main/construction_area)
-"mG" = (/obj/structure/closet/emcloset,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"mH" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"mI" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"mJ" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass{name = "SAR Prep"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/first_aid)
-"mK" = (/obj/structure/cable/blue{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/surface/outpost/main/bar)
-"mL" = (/obj/machinery/alarm{dir = 1; pixel_y = -25},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"mM" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main4_airlock_interior"; locked = 1; name = "Main Outpost Interior"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "main4_airlock_control"; name = "Main Access Button"; pixel_x = 32; pixel_y = 6; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"mN" = (/obj/structure/closet/athletic_mixed,/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
-"mO" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
-"mP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"mQ" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Gym"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
-"mR" = (/obj/item/weapon/stool/padded,/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
-"mS" = (/obj/structure/reagent_dispensers/water_cooler/full,/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
-"mT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
-"mU" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"mV" = (/obj/machinery/ai_status_display,/turf/simulated/wall,/area/surface/outpost/main/restroom)
-"mW" = (/obj/structure/closet/secure_closet/personal,/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"mX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"mY" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"mZ" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/dorms)
-"na" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/blue{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/glass,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
-"nb" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
-"nc" = (/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"nd" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"ne" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/surface/outpost/main/bar)
-"nf" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Bar"},/obj/structure/cable/blue{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/surface/outpost/main/bar)
-"ng" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
-"nh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
-"ni" = (/obj/machinery/computer/crew,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
-"nj" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
-"nk" = (/obj/structure/sign/electricshock,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/gen_room)
-"nl" = (/obj/effect/overlay/snow/floor,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main/security)
-"nm" = (/obj/structure/closet/secure_closet/personal,/obj/structure/extinguisher_cabinet{pixel_x = -25},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"nn" = (/obj/structure/table/bench/marble,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"no" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"np" = (/obj/machinery/recharge_station,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"nq" = (/obj/effect/decal/cleanable/dirt,/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/dorms)
-"nr" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/dorms)
-"ns" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/dorms)
-"nt" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Dorms Access"; dir = 8},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/dorms)
-"nu" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/glass,/turf/simulated/floor/plating,/area/surface/outpost/main/dorms)
-"nv" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security)
-"nw" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security)
-"nx" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/structure/table/rack{dir = 8; layer = 2.6},/obj/item/device/gps/explorer{pixel_x = -5; pixel_y = -5},/obj/item/device/gps/explorer{pixel_x = -3; pixel_y = -3},/obj/item/device/gps,/obj/item/device/gps{pixel_x = 3; pixel_y = 3},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"ny" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/closet/secure_closet/explorer,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"nz" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"nA" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"nB" = (/obj/structure/table/rack{dir = 8; layer = 2.6},/obj/machinery/light,/obj/machinery/status_display{pixel_x = 0; pixel_y = -32},/obj/item/device/paicard,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"nC" = (/obj/structure/closet/secure_closet/explorer,/obj/machinery/ai_status_display{pixel_y = -32},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"nD" = (/obj/structure/closet/secure_closet/explorer,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"nE" = (/obj/structure/closet/secure_closet/explorer,/obj/structure/extinguisher_cabinet{pixel_x = 25},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
-"nF" = (/obj/effect/floor_decal/borderfloor/corner{dir = 8},/obj/effect/floor_decal/corner/green/bordercorner{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"nG" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/surface/outpost/main/corridor)
-"nH" = (/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/green/bordercorner,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"nI" = (/obj/structure/table/steel,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/device/multitool,/obj/machinery/ai_status_display{pixel_y = -32},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/first_aid)
-"nJ" = (/obj/machinery/mech_recharger,/obj/structure/extinguisher_cabinet{pixel_x = -25},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/first_aid)
-"nK" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/table/steel,/obj/item/roller/adv,/obj/item/roller/adv{pixel_y = 5},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/paleblue/border,/obj/effect/floor_decal/borderfloor/corner2,/obj/effect/floor_decal/corner/white/bordercorner2,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
-"nL" = (/obj/machinery/mech_recharger,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/first_aid)
-"nM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"nN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"nO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"nP" = (/obj/structure/closet/secure_closet/sar,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
-"nQ" = (/obj/structure/closet/secure_closet/sar,/obj/machinery/light,/obj/item/weapon/storage/box/bodybags,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/white/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
-"nR" = (/obj/structure/table/steel,/obj/item/device/gps,/obj/item/device/gps{pixel_x = 3; pixel_y = 3},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
-"nS" = (/obj/structure/table/steel,/obj/machinery/recharger,/obj/machinery/status_display{pixel_x = 0; pixel_y = -32},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/white/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
-"nT" = (/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"nU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"nV" = (/obj/structure/disposalpipe/junction/yjunction{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"nW" = (/obj/structure/closet/secure_closet/personal,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"nX" = (/obj/structure/mirror{pixel_x = 28},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"nY" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/dorms)
-"nZ" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main1_airlock_exterior"; locked = 1; name = "Main Outpost Exterior"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "main1_airlock_control"; name = "Main Access Button"; pixel_x = 0; pixel_y = -24; req_access = null},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/dorms)
-"oa" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/dorms)
-"ob" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"oc" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main1_airlock_interior"; locked = 1; name = "Main Outpost Interior"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "main1_airlock_control"; name = "Main Access Button"; pixel_x = -6; pixel_y = -26; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"od" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "main1_airlock_control"; name = "Main Access Console"; pixel_x = -26; pixel_y = -26; tag_exterior_door = "main1_airlock_exterior"; tag_interior_door = "main1_airlock_interior"},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"oe" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"of" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"og" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"oh" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"oi" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"oj" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"ok" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"ol" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"om" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"on" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/glass,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"oo" = (/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"op" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"oq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"or" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"os" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"ot" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"ou" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/teleporter)
-"ov" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"ow" = (/obj/machinery/teleport/station,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/teleporter)
-"ox" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/teleporter)
-"oy" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"oz" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"oA" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"oB" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"oC" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"oD" = (/obj/structure/closet/secure_closet/personal,/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"oE" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"oF" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"oG" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"oH" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/dorms)
-"oI" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled/steel,/area/surface/outpost/main/dorms)
-"oJ" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"oK" = (/obj/machinery/teleport/hub,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/teleporter)
-"oL" = (/obj/structure/extinguisher_cabinet{pixel_x = -25},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"oM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"oN" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"oO" = (/obj/machinery/bluespace_beacon,/obj/item/device/radio/beacon,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter)
-"oP" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Teleporter"; dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = 25},/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter)
-"oQ" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"oR" = (/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
-"oS" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/command{name = "Teleport Access"; req_access = list(17)},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/teleporter)
-"oT" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/obj/effect/floor_decal/borderfloor/corner2{dir = 10},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"oU" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/obj/effect/floor_decal/borderfloor/corner2{dir = 5},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"oV" = (/obj/structure/sign/electricshock,/turf/simulated/wall,/area/surface/outpost/main/gen_room)
-"oW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"oX" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Hallway North 2"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"oY" = (/turf/simulated/wall,/area/surface/outpost/main/corridor)
-"oZ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"pa" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/blue/border,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"pb" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/blue/border,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"pc" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/blue/border,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"pd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"pe" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"pf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"pg" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/blue/border,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"ph" = (/obj/machinery/vending/snack,/turf/simulated/floor/tiled/dark,/area/surface/outpost/main)
-"pi" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"pj" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"pk" = (/obj/structure/disposalpipe/segment,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"pl" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"; name = "Clothing Storage"},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"pm" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"pn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"po" = (/obj/machinery/vending/cigarette,/turf/simulated/floor/tiled/dark,/area/surface/outpost/main)
-"pp" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock{name = "Unisex Showers"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"pq" = (/obj/item/weapon/bikehorn/rubberducky,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"pr" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"ps" = (/turf/simulated/wall,/area/surface/outpost/main/dorms)
-"pt" = (/obj/machinery/vending/cola,/turf/simulated/floor/tiled/dark,/area/surface/outpost/main)
-"pu" = (/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"pv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"pw" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"px" = (/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 1; icon_state = "warningcorner"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"py" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"pz" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Hallway East"; dir = 9},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"pA" = (/obj/machinery/mech_recharger,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main)
-"pB" = (/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/item/weapon/storage/toolbox/mechanical,/obj/structure/table/steel,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"pC" = (/obj/machinery/mech_recharger,/obj/machinery/light,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main)
-"pD" = (/turf/simulated/wall,/area/surface/outpost/main)
-"pE" = (/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
-"pF" = (/obj/machinery/status_display,/turf/simulated/wall,/area/surface/outpost/main/restroom)
-"pG" = (/obj/structure/undies_wardrobe,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"pH" = (/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"pI" = (/obj/structure/table/standard,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/random/soap,/obj/random/soap,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 12; pixel_y = -24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"pJ" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Gym"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/gym)
-"pK" = (/obj/structure/bed/double/padded,/obj/item/weapon/bedsheet/purpledouble,/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms)
-"pL" = (/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms)
-"pM" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms)
-"pN" = (/obj/machinery/door/airlock{id_tag = "modorm1"; name = "Room 1"},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"pO" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"pP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"pQ" = (/obj/machinery/door/airlock{id_tag = "modorm2"; name = "Room 2"},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"pR" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms)
-"pS" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/green,/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms)
-"pT" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/yellow,/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms)
-"pU" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms)
-"pV" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{id_tag = "modorm5"; name = "Room 5"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"pW" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{id_tag = "modorm6"; name = "Room 6"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"pX" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms)
-"pY" = (/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms)
-"pZ" = (/obj/item/weapon/bedsheet/bluedouble,/obj/structure/bed/double/padded,/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms)
-"qa" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/surface/outpost/main/corridor)
-"qb" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main3_airlock_interior"; locked = 1; name = "Main Outpost Interior"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "main3_airlock_control"; name = "Main Access Button"; pixel_x = -32; pixel_y = -6; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"qc" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/pool)
-"qd" = (/turf/simulated/wall,/area/surface/outpost/main/pool)
-"qe" = (/obj/effect/floor_decal/spline/plain{tag = "icon-spline_plain_full (NORTH)"; icon_state = "spline_plain_full"; dir = 1},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main)
-"qf" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/pool)
-"qg" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/space_heater,/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/green/bordercorner,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"qh" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock{name = "Unisex Restrooms"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"qi" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Unisex Showers"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"qj" = (/obj/structure/table/standard,/obj/machinery/alarm{dir = 1; pixel_y = -25},/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms)
-"qk" = (/obj/item/weapon/stool,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/light,/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms)
-"ql" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm1"; name = "Door Bolt Control"; pixel_x = 25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms)
-"qm" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"qn" = (/obj/machinery/button/remote/airlock{id = "modorm2"; name = "Door Bolt Control"; pixel_x = -25; pixel_y = 0; specialfunctions = 4},/obj/item/weapon/stool/padded,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms)
-"qo" = (/obj/structure/table/standard,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/light,/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms)
-"qp" = (/obj/structure/table/standard,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = -32; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/light,/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms)
-"qq" = (/obj/item/weapon/stool/padded,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm5"; name = "Door Bolt Control"; pixel_x = 25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms)
-"qr" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"qs" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm6"; name = "Door Bolt Control"; pixel_x = -25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms)
-"qt" = (/obj/item/weapon/stool/padded,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/light,/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms)
-"qu" = (/obj/structure/table/standard,/obj/machinery/alarm{dir = 1; pixel_y = -25},/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms)
-"qv" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/surface/outpost/main/corridor)
-"qw" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/corridor)
-"qx" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"qy" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/newscaster{pixel_y = 30},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"qz" = (/obj/machinery/space_heater,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"qA" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"qB" = (/obj/machinery/light/spot{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"qC" = (/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"qD" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"qE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Pool North"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"qF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"qG" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"qH" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"qI" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light/spot{dir = 1},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"qJ" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/space_heater,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"qK" = (/obj/structure/closet/athletic_mixed,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"qL" = (/obj/structure/extinguisher_cabinet{pixel_y = 30},/obj/structure/closet/athletic_mixed,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"qM" = (/obj/machinery/newscaster{pixel_y = 30},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"qN" = (/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"qO" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/corridor)
-"qP" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/corridor)
-"qQ" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Corridor Access South"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"qR" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/pool)
-"qS" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"qT" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"qU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"qV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"qW" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"qX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"qY" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"qZ" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/purple,/obj/machinery/alarm{dir = 1; pixel_y = -25},/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms)
-"ra" = (/obj/machinery/door/airlock{id_tag = "modorm3"; name = "Room 3"},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"rb" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"rc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Dorms Hallway South 1"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"rd" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{id_tag = "modorm4"; name = "Room 4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"re" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms)
-"rf" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/red,/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms)
-"rg" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/red,/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms)
-"rh" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms)
-"ri" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{id_tag = "modorm7"; name = "Room 7"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"rj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Dorms Hallway South 2"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"rk" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{id_tag = "modorm8"; name = "Room 8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"rl" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/blue,/obj/machinery/alarm{dir = 1; pixel_y = -25},/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms)
-"rm" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main3_airlock_exterior"; locked = 1; name = "Main Outpost Exterior"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "main3_airlock_control"; name = "Main Access Button"; pixel_x = -32; pixel_y = 0; req_access = null},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/corridor)
-"rn" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/pool)
-"ro" = (/obj/structure/table/glass,/obj/item/device/paicard,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"rp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"rq" = (/obj/effect/floor_decal/spline/plain{dir = 9},/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool)
-"rr" = (/obj/effect/floor_decal/spline/plain{dir = 1},/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool)
-"rs" = (/obj/effect/floor_decal/spline/plain{dir = 1},/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool)
-"rt" = (/obj/effect/floor_decal/spline/plain{dir = 5},/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool)
-"ru" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"rv" = (/obj/structure/table/glass,/obj/item/weapon/inflatable_duck,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"rw" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/light,/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms)
-"rx" = (/obj/item/weapon/stool/padded,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm3"; name = "Door Bolt Control"; pixel_x = 25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms)
-"ry" = (/obj/item/weapon/stool/padded,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm4"; name = "Door Bolt Control"; pixel_x = -25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms)
-"rz" = (/obj/structure/table/standard,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/light,/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms)
-"rA" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/light,/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms)
-"rB" = (/obj/item/weapon/stool,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm7"; name = "Door Bolt Control"; pixel_x = 25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms)
-"rC" = (/obj/item/weapon/stool/padded,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm8"; name = "Door Bolt Control"; pixel_x = -25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms)
-"rD" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/light,/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms)
-"rE" = (/obj/effect/overlay/snow/floor,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main/corridor)
-"rF" = (/obj/effect/floor_decal/spline/plain{dir = 8},/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool)
-"rG" = (/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool)
-"rH" = (/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool)
-"rI" = (/obj/effect/floor_decal/spline/plain{dir = 4},/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool)
-"rJ" = (/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = -32; pixel_y = 0},/obj/item/weapon/stool/padded,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Pool West"; dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"rK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/hologram/holopad,/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"rL" = (/obj/effect/floor_decal/spline/plain{dir = 9},/obj/item/weapon/beach_ball,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"rM" = (/obj/effect/floor_decal/spline/plain{dir = 1},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"rN" = (/obj/effect/floor_decal/spline/plain{dir = 5},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"rO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/hologram/holopad,/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"rP" = (/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32; pixel_y = 0},/obj/item/weapon/stool/padded,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Pool East"; dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"rQ" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/snow/sif/planetuse,/area/surface/northwest)
-"rR" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/snow/sif/planetuse,/area/surface/center)
-"rS" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/center)
-"rT" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/obj/effect/zone_divider,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/center)
-"rU" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/effect/zone_divider,/turf/simulated/floor/plating,/area/surface/outpost/main/pool)
-"rV" = (/obj/structure/table/glass,/obj/item/weapon/book/codex/lore/vir,/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"rW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/table/glass,/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"rX" = (/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"rY" = (/obj/effect/floor_decal/spline/plain{dir = 8},/obj/effect/zone_divider,/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool)
-"rZ" = (/obj/effect/zone_divider,/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool)
-"sa" = (/obj/effect/floor_decal/spline/plain{dir = 10},/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"sb" = (/obj/effect/floor_decal/spline/plain,/obj/machinery/hologram/holopad,/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"sc" = (/obj/effect/floor_decal/spline/plain{dir = 6},/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"sd" = (/obj/effect/zone_divider,/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool)
-"se" = (/obj/effect/floor_decal/spline/plain{dir = 4},/obj/effect/zone_divider,/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool)
-"sf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/table/glass,/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"sg" = (/obj/structure/table/glass,/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"sh" = (/obj/effect/zone_divider,/turf/simulated/mineral/sif,/area/surface/center)
-"si" = (/obj/effect/zone_divider,/turf/simulated/mineral/sif,/area/surface/northeast)
-"sj" = (/turf/unsimulated/wall/planetary/sif,/area/surface/west)
-"sk" = (/turf/simulated/floor/outdoors/snow/sif/planetuse,/area/surface/west)
-"sl" = (/turf/simulated/floor/outdoors/snow/sif/planetuse,/area/surface/center)
-"sm" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/center)
-"sn" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/center)
-"so" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"sp" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"sq" = (/turf/simulated/mineral/sif,/area/surface/center)
-"sr" = (/turf/simulated/mineral/sif,/area/surface/east)
-"ss" = (/turf/unsimulated/wall/planetary/sif,/area/surface/east)
-"st" = (/obj/effect/floor_decal/spline/plain{dir = 10},/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool)
-"su" = (/obj/effect/floor_decal/spline/plain,/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool)
-"sv" = (/obj/effect/floor_decal/spline/plain,/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool)
-"sw" = (/obj/effect/floor_decal/spline/plain{dir = 6},/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool)
-"sx" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/surface/outpost/main/pool)
-"sy" = (/obj/structure/closet/emcloset,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency,/obj/item/clothing/suit/storage/hooded/wintercoat,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"sz" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/surface/outpost/main/pool)
-"sA" = (/obj/structure/table/glass,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"sB" = (/obj/machinery/light/spot,/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"sC" = (/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"sD" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"sE" = (/obj/structure/table/glass,/obj/item/inflatable{pixel_x = 6; pixel_y = 6},/obj/item/inflatable{pixel_x = 2; pixel_y = 2},/obj/item/inflatable{pixel_x = -2; pixel_y = -3},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"sF" = (/obj/effect/overlay/snow/floor,/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "surface_dock_1"; name = "shuttle bay controller"; pixel_x = -26; pixel_y = 0; tag_door = "surface_dock_1_door"},/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/main/corridor)
-"sG" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/center)
-"sH" = (/obj/effect/overlay/snow/floor,/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "surface_dock_2"; name = "shuttle bay controller"; pixel_x = 26; pixel_y = 0; tag_door = "surface_dock_2_door"},/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/main/corridor)
-"sI" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"sJ" = (/obj/structure/table/glass,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Pool South"; dir = 1},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"sK" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"sL" = (/obj/machinery/light{dir = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/main/corridor)
-"sM" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/center)
-"sN" = (/obj/effect/floor_decal/industrial/warning,/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/center)
-"sO" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/center)
-"sP" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/center)
-"sQ" = (/turf/simulated/floor/plating/sif/planetuse,/area/surface/center)
-"sR" = (/turf/simulated/floor/plating/sif/planetuse,/area/shuttle/shuttle1/planet)
-"sS" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/center)
-"sT" = (/turf/simulated/floor/plating/sif/planetuse,/area/shuttle/shuttle2/planet)
-"sU" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "icon-1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/center)
-"sV" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/center)
-"sW" = (/obj/structure/cable/heavyduty{icon_state = "2-8"},/obj/effect/overlay/snow/floor,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/center)
-"sX" = (/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/center)
-"sY" = (/turf/simulated/floor/water,/area/surface/east)
-"sZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/center)
-"ta" = (/obj/machinery/light/small,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/research/xenoresearch)
-"tb" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/research/xenoresearch)
-"tc" = (/obj/structure/sign/warning/biohazard,/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch)
-"td" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch)
-"te" = (/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "research_airlock_exterior"; locked = 1; name = "Research Exterior Airlock"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "research_airlock_control"; name = "Research Access Button"; pixel_x = -24; pixel_y = 0; req_access = null},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/steel,/area/surface/outpost/research/xenoresearch)
-"tf" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch)
-"tg" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/emergencystorage)
-"th" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/smes)
-"ti" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes)
-"tj" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/restroom)
-"tk" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/machinery/status_display{pixel_x = -32},/turf/simulated/floor/tiled/steel,/area/surface/outpost/research/xenoresearch)
-"tl" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
-"tm" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/computer/guestpass{pixel_x = 30; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
-"tn" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch)
-"to" = (/turf/simulated/wall,/area/surface/outpost/research/xenoresearch)
-"tp" = (/obj/item/weapon/storage/toolbox/emergency,/obj/machinery/light/small{dir = 1},/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/emergencystorage)
-"tq" = (/obj/machinery/floodlight,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/emergencystorage)
-"tr" = (/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/smes)
-"ts" = (/obj/machinery/power/smes/buildable/outpost_substation{charge = 500000; input_attempt = 1; input_level = 150000; output_level = 150000; RCon_tag = "Outpost - Research"},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes)
-"tt" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/effect/decal/cleanable/dirt,/obj/machinery/power/terminal{dir = 8},/obj/structure/cable/heavyduty,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes)
-"tu" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/light/small{dir = 4},/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes)
-"tv" = (/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/restroom)
-"tw" = (/obj/structure/toilet{dir = 4},/obj/structure/window/reinforced/tinted,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom)
-"tx" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom)
-"ty" = (/obj/machinery/light{dir = 1},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom)
-"tz" = (/obj/structure/sink{pixel_y = 16},/obj/structure/mirror{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom)
-"tA" = (/obj/structure/table/standard,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/random/soap,/obj/random/soap,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom)
-"tB" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
-"tC" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
-"tD" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Research Airlock"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
-"tE" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/ai_status_display{pixel_y = 32},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
-"tF" = (/obj/structure/table/reinforced,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
-"tG" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
-"tH" = (/obj/structure/table/reinforced,/obj/machinery/light{dir = 1},/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/pen,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
-"tI" = (/obj/item/weapon/storage/box/donkpockets,/obj/structure/table/reinforced,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
-"tJ" = (/obj/machinery/microwave,/obj/structure/table/reinforced,/obj/machinery/status_display{pixel_y = 32},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
-"tK" = (/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch)
-"tL" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch)
-"tM" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch)
-"tN" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/center)
-"tO" = (/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/east)
-"tP" = (/turf/simulated/floor/outdoors/rocks/sif/planetuse,/area/surface/east)
-"tQ" = (/turf/simulated/floor/water/shoreline/corner{tag = "icon-shorelinecorner (WEST)"; icon_state = "shorelinecorner"; dir = 8},/area/surface/east)
-"tR" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (NORTHEAST)"; icon_state = "shoreline"; dir = 5},/area/surface/east)
-"tS" = (/obj/item/clothing/glasses/meson,/obj/structure/closet/hydrant{pixel_x = -32},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/emergencystorage)
-"tT" = (/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/emergencystorage)
-"tU" = (/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/emergencystorage)
-"tV" = (/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/item/weapon/cell/high,/obj/item/weapon/weldpack,/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes)
-"tW" = (/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/sensor{long_range = 1; name_tag = "Research Outpost"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes)
-"tX" = (/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes)
-"tY" = (/obj/machinery/recharge_station,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom)
-"tZ" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom)
-"ua" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom)
-"ub" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom)
-"uc" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom)
-"ud" = (/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "research_airlock_interior"; locked = 1; name = "Research Interior Airlock"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "research_airlock_control"; name = "Research Access Button"; pixel_x = -26; pixel_y = 6; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
-"ue" = (/obj/structure/disposalpipe/segment,/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
-"uf" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
-"ug" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
-"uh" = (/obj/structure/table/reinforced,/obj/item/device/multitool,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
-"ui" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
-"uj" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
-"uk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch)
-"ul" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch)
-"um" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/east)
-"un" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (WEST)"; icon_state = "shoreline"; dir = 8},/area/surface/east)
-"uo" = (/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/emergencystorage)
-"up" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock{name = "Emergency Storage"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/emergencystorage)
-"uq" = (/obj/machinery/door/firedoor/border_only,/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,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/engineering{name = "SMES Room"; req_one_access = list(12,47)},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes)
-"ur" = (/obj/machinery/door/firedoor/border_only,/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,/obj/machinery/door/airlock{name = "Research Restroom"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom)
-"us" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"ut" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "research_airlock_control"; name = "Research Access Console"; pixel_x = -26; pixel_y = 26; tag_exterior_door = "research_airlock_exterior"; tag_interior_door = "research_airlock_interior"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"uu" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"uv" = (/obj/structure/disposalpipe/segment,/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
-"uw" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
-"ux" = (/obj/structure/bed/chair{dir = 4},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
-"uy" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
-"uz" = (/obj/structure/bed/chair{dir = 8},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
-"uA" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
-"uB" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch)
-"uC" = (/obj/machinery/light,/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/main/corridor)
-"uD" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/center)
-"uE" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/center)
-"uF" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/center)
-"uG" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/closet/emcloset,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"uH" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"uI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"uJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"uK" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Research Hallway 1"; dir = 2},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"uL" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"uM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"uN" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"uO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"uP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"uQ" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"uR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"uS" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Research Hallway 2"; dir = 2},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"uT" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"uU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"uV" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"uW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"uX" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"uY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"uZ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"va" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vd" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"ve" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vf" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/main/corridor)
-"vg" = (/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vh" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vi" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vj" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vk" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/mob/living/bot/secbot/slime,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vl" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vm" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vn" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vo" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vp" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vq" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vr" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vs" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vt" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vu" = (/obj/structure/disposalpipe/junction{dir = 8},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vx" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vy" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vz" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Research Hallway 4"; dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vB" = (/turf/simulated/floor/water/deep,/area/surface/east)
-"vC" = (/obj/structure/bed/chair,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vD" = (/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vE" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/bed/chair,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vF" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/xenobiology)
-"vG" = (/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/structure/disposalpipe/segment,/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "xeno_airlock_exterior"; locked = 1; name = "Xenobiology External Airlock"; req_access = list(55)},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "xeno_airlock_control"; name = "Xenobiology Access Button"; pixel_x = -26; pixel_y = 0; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"vH" = (/obj/structure/bed/chair,/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for containment."; id = "xenobiocontain"; name = "Containment Switch"; pixel_x = -28; pixel_y = 0; req_access = null},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"vI" = (/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"vJ" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/bed/chair,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"vK" = (/obj/structure/table/glass,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"vL" = (/obj/structure/sign/greencross{desc = "White cross in a green field, you can get medical aid here."; name = "First-Aid"},/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch)
-"vM" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_medical,/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/surface/outpost/research/xenoresearch)
-"vN" = (/obj/machinery/space_heater,/obj/structure/extinguisher_cabinet{pixel_x = -25},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vO" = (/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Research Hallway 3"; dir = 1},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vP" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/xenoflora)
-"vQ" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_research{name = "Xenoflora Research"; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"vR" = (/obj/machinery/smartfridge,/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/xenoflora)
-"vS" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vT" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
-"vU" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch)
-"vV" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; external_pressure_bound = 140; external_pressure_bound_default = 140; icon_state = "map_vent_out"; pressure_checks = 1; pressure_checks_default = 1; use_power = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/research/xenoresearch/xenoflora)
-"vW" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "xenobiocontain"; name = "Containment Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
-"vX" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "xenobiocontain"; name = "Containment Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
-"vY" = (/obj/structure/sign/warning/biohazard,/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/xenobiology)
-"vZ" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/structure/closet/l3closet/scientist,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wa" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wb" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/structure/window/reinforced,/obj/machinery/shower{pixel_y = 3},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wc" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "xenobiocontain"; name = "Containment Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wd" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "xenobiocontain"; name = "Containment Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
-"we" = (/obj/structure/bed/roller,/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wf" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wg" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wh" = (/obj/machinery/camera/network/research_outpost{c_tag = "OPR - First Aid Station"; dir = 2},/obj/structure/bed/chair/office/light{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"wi" = (/obj/structure/table/glass,/obj/machinery/recharger,/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = 25; pixel_y = 0},/obj/effect/floor_decal/corner/paleblue{dir = 6},/obj/item/device/defib_kit/loaded,/obj/item/device/radio{frequency = 1487; icon_state = "med_walkietalkie"; name = "Medbay Emergency Radio Link"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"wj" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora)
-"wk" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora)
-"wl" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"wm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"wn" = (/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"wo" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/universal,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora)
-"wp" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora)
-"wq" = (/obj/machinery/computer/operating{name = "Xenobiology Operating Computer"},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wr" = (/obj/machinery/optable{name = "Xenobiology Operating Table"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"ws" = (/obj/structure/table/standard,/obj/item/weapon/surgical/scalpel{pixel_y = 12},/obj/item/weapon/surgical/circular_saw,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wt" = (/obj/structure/table/standard,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/weldingtool,/obj/item/clothing/head/welding,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wu" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/structure/closet/l3closet/scientist,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wv" = (/obj/effect/floor_decal/industrial/warning,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"ww" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenobiology Access"; dir = 1},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wx" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/pen/blue{pixel_x = -5; pixel_y = -1},/obj/item/weapon/pen/red{pixel_x = -1; pixel_y = 3},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wy" = (/obj/structure/table/standard,/obj/item/weapon/folder/red{pixel_y = 3},/obj/item/weapon/folder/blue{pixel_x = 5},/obj/item/weapon/reagent_containers/spray/cleaner,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wz" = (/obj/structure/table/standard,/obj/item/weapon/clipboard,/obj/item/weapon/folder,/obj/item/weapon/pen,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wA" = (/obj/structure/table/standard,/obj/machinery/reagentgrinder,/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wB" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/effect/floor_decal/corner/paleblue{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wD" = (/obj/machinery/newscaster{pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/effect/floor_decal/corner/paleblue,/obj/structure/table/rack,/obj/item/weapon/storage/firstaid/toxin{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/firstaid/fire{pixel_x = 0; pixel_y = 0},/obj/item/weapon/storage/firstaid/adv{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/firstaid/o2{pixel_x = 0; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"wE" = (/obj/machinery/atmospherics/unary/freezer{dir = 2; icon_state = "freezer"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
-"wF" = (/obj/machinery/atmospherics/unary/heater{dir = 2; icon_state = "heater"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
-"wG" = (/obj/machinery/atmospherics/portables_connector,/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
-"wH" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/closet/crate/hydroponics/prespawned,/obj/machinery/light{dir = 1},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoflora North"; dir = 2},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"wI" = (/obj/structure/sink/kitchen{pixel_y = 28},/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"wJ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"wK" = (/obj/structure/table/glass,/obj/item/weapon/tape_roll,/obj/item/device/analyzer/plant_analyzer,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"wL" = (/obj/machinery/atmospherics/tvalve{dir = 1; name = "siphon switching valve"},/obj/effect/floor_decal/industrial/warning/full,/obj/machinery/light{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora)
-"wM" = (/obj/structure/table/glass,/obj/machinery/atmospherics/pipe/simple/hidden/universal{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"wN" = (/obj/structure/table/glass,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 9; icon_state = "intact"; tag = "icon-intact (NORTHEAST)"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"wO" = (/obj/structure/table/glass,/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 30; pixel_y = 0},/obj/item/weapon/clipboard,/obj/item/weapon/folder/white,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"wP" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/extinguisher,/obj/item/weapon/extinguisher,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wQ" = (/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wR" = (/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wS" = (/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/structure/disposalpipe/segment,/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "xeno_airlock_interior"; locked = 1; name = "Xenobiology Internal Airlock"; req_access = list(55)},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "xeno_airlock_control"; name = "Xenobiology Access Button"; pixel_x = -26; pixel_y = 6; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wT" = (/obj/item/clothing/shoes/galoshes,/obj/item/clothing/shoes/galoshes,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wU" = (/obj/structure/bed/chair/office/light{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wV" = (/obj/structure/bed/chair/office/light{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wW" = (/obj/structure/table/reinforced,/obj/machinery/chemical_dispenser/full{density = 1},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wX" = (/obj/machinery/sleeper{dir = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/effect/floor_decal/corner/paleblue/full,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wY" = (/obj/machinery/sleep_console,/obj/effect/floor_decal/corner/paleblue{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"wZ" = (/obj/structure/table/rack,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/firstaid/regular,/obj/random/medical/lite,/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/obj/effect/floor_decal/corner/paleblue/full{dir = 4},/obj/item/bodybag/cryobag,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xa" = (/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xb" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/obj/structure/extinguisher_cabinet{pixel_x = -25},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xc" = (/obj/machinery/atmospherics/pipe/manifold/visible,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xd" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xe" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/closet/crate/hydroponics{desc = "All you need to start your own honey farm."; name = "beekeeping crate"},/obj/item/beehive_assembly,/obj/item/bee_smoker,/obj/item/honey_frame,/obj/item/honey_frame,/obj/item/honey_frame,/obj/item/honey_frame,/obj/item/honey_frame,/obj/item/bee_pack,/obj/item/weapon/crowbar,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xf" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xg" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xh" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xi" = (/obj/structure/bed/chair/office/dark{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xj" = (/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xk" = (/obj/structure/closet/emcloset/legacy,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xl" = (/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"xm" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = 30},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"xn" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for containment."; id = "xenobiocontain"; name = "Containment Switch"; pixel_x = -6; pixel_y = 28; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"xo" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "xeno_airlock_control"; name = "Xenobiology Access Console"; pixel_x = -26; pixel_y = 26; tag_exterior_door = "xeno_airlock_exterior"; tag_interior_door = "xeno_airlock_interior"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"xp" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"xq" = (/obj/structure/sink{pixel_x = 0; pixel_y = 28},/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = 38},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"xr" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 28; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"xs" = (/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes)
-"xt" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xu" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xv" = (/obj/effect/floor_decal/corner/green{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xx" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xy" = (/obj/structure/bed/chair/office/dark,/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xz" = (/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xA" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xB" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 28; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xC" = (/obj/structure/disposaloutlet,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
-"xD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
-"xE" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
-"xF" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio3"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
-"xG" = (/obj/structure/window/reinforced,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"xH" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"xI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"xJ" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/obj/structure/window/reinforced,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"xK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio6"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
-"xL" = (/obj/structure/disposaloutlet,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
-"xM" = (/obj/machinery/portable_atmospherics/hydroponics{closed_system = 1; name = "isolation tray"},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xN" = (/obj/machinery/portable_atmospherics/hydroponics{closed_system = 1; name = "isolation tray"},/obj/machinery/atmospherics/portables_connector,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xO" = (/obj/machinery/portable_atmospherics/hydroponics{closed_system = 1; name = "isolation tray"},/obj/machinery/atmospherics/portables_connector,/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xP" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xQ" = (/obj/effect/floor_decal/corner/green,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xR" = (/obj/structure/table/glass,/obj/item/weapon/material/minihoe,/obj/item/weapon/material/minihoe,/obj/item/weapon/material/hatchet,/obj/item/weapon/material/hatchet,/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xS" = (/obj/structure/table/glass,/obj/item/weapon/hand_labeler,/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xT" = (/obj/structure/table/glass,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/effect/floor_decal/corner/green/full,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xU" = (/obj/structure/table/glass,/obj/effect/floor_decal/corner/green{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xV" = (/obj/effect/floor_decal/corner/green{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xW" = (/obj/structure/sink{pixel_x = 0; pixel_y = 28},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xX" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"xY" = (/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
-"xZ" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio3"; name = "Containment Blast Doors"; opacity = 0},/obj/machinery/door/window/brigdoor/westleft{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
-"ya" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/door/window/brigdoor/eastright{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"yb" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"yc" = (/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/structure/window/reinforced{dir = 8},/obj/structure/table/standard,/obj/item/clothing/gloves/sterile/latex,/obj/item/weapon/hand_labeler,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/item/device/slime_scanner,/obj/item/device/slime_scanner,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"yd" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"ye" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/junction/yjunction{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"yf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"yg" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/structure/table/standard,/obj/item/weapon/melee/baton/slime/loaded,/obj/item/weapon/gun/energy/taser/xeno,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"yh" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"yi" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"yj" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/door/window/brigdoor/westleft{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"yk" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio6"; name = "Containment Blast Doors"; opacity = 0},/obj/machinery/door/window/brigdoor/eastright{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
-"yl" = (/obj/structure/extinguisher_cabinet{pixel_x = -25},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"ym" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/obj/machinery/meter,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"yn" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"yo" = (/obj/machinery/atmospherics/binary/pump{dir = 4; name = "Isolation to Waste"},/obj/effect/floor_decal/industrial/warning/full,/obj/machinery/door/window/westright{name = "Xenoflora Containment"; req_access = list(55)},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora)
-"yp" = (/obj/effect/floor_decal/corner/green{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 10},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"yq" = (/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"yr" = (/obj/structure/closet/secure_closet/hydroponics{req_access = list(47)},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
-"ys" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/vending/hydronutrients{categories = 3},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
-"yt" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/botany/editor,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
-"yu" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/obj/machinery/botany/extractor,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
-"yv" = (/obj/effect/floor_decal/corner/green/full,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"yw" = (/obj/effect/floor_decal/corner/green{dir = 10},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoflora East"; dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"yx" = (/obj/machinery/portable_atmospherics/hydroponics,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"yy" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio3"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
-"yz" = (/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/structure/table/reinforced,/obj/machinery/button/remote/blast_door{id = "xenobio3"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"yA" = (/obj/machinery/disposal,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"yB" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"yC" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/machinery/button/remote/blast_door{id = "xenobio6"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"yD" = (/obj/structure/window/reinforced,/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"yE" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"yF" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"yG" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/botanydisk,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"yH" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"yI" = (/obj/machinery/atmospherics/pipe/manifold/hidden/yellow,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"yJ" = (/obj/machinery/door/airlock/glass_research{name = "Xenoflora Research"; req_access = list(55)},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"yK" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"yL" = (/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/xenobiology)
-"yM" = (/obj/machinery/status_display,/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/xenobiology)
-"yN" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenobiology West"; dir = 4},/obj/structure/closet/firecloset/full/double,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"yO" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"yP" = (/obj/structure/table/standard,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"yQ" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"yR" = (/obj/structure/table/standard,/obj/item/glass_jar,/obj/item/glass_jar,/obj/item/weapon/storage/box/syringes,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"yS" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/extinguisher,/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenobiology East"; dir = 8},/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/item/weapon/extinguisher,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"yT" = (/obj/machinery/ai_status_display,/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/xenobiology)
-"yU" = (/obj/machinery/door/blast/regular{desc = "Blastdoor divider"; id = "xenobioout7"; name = "Containment Divider"},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
-"yV" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoflora West"; dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"yW" = (/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"yX" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"yY" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"yZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"za" = (/obj/item/weapon/stool/padded,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"zb" = (/obj/structure/table/glass,/obj/machinery/reagentgrinder,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 9; icon_state = "intact"; tag = "icon-intact (NORTHEAST)"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"zc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"zd" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"ze" = (/obj/machinery/light/spot{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"zf" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"zg" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"zh" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"zi" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio4"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
-"zj" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/machinery/button/remote/blast_door{id = "xenobio4"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access = list(55)},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"zk" = (/obj/machinery/smartfridge/secure/extract,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"zl" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/button/remote/blast_door{id = "xenobio5"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access = list(55)},/obj/structure/window/reinforced,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"zm" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio5"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
-"zn" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"zo" = (/obj/machinery/atmospherics/pipe/manifold/visible,/obj/machinery/meter,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"zp" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"zq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"zr" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"zs" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"zt" = (/obj/machinery/door/airlock/glass_research{name = "Xenoflora Research"; req_access = list(55)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"zu" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"zv" = (/obj/structure/closet/emcloset,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Hallway South 1"; dir = 4},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"zw" = (/mob/living/simple_animal/slime,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
-"zx" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio4"; name = "Containment Blast Doors"; opacity = 0},/obj/machinery/door/window/brigdoor/westleft{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
-"zy" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"zz" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/table/standard,/obj/item/weapon/melee/baton/slime/loaded,/obj/item/weapon/gun/energy/taser/xeno,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"zA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"zB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"zC" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/processor,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"zD" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"zE" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"zF" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio5"; name = "Containment Blast Doors"; opacity = 0},/obj/machinery/door/window/brigdoor/eastright{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
-"zG" = (/obj/machinery/atmospherics/binary/pump{dir = 1; name = "Port to Isolation"},/obj/structure/extinguisher_cabinet{pixel_x = -25},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"zH" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"zI" = (/obj/machinery/atmospherics/binary/pump{dir = 4; name = "Isolation to Waste"},/obj/effect/floor_decal/industrial/warning/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora)
-"zJ" = (/obj/effect/floor_decal/corner/green{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 9; icon_state = "intact"; tag = "icon-intact (NORTHEAST)"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"zK" = (/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"zL" = (/obj/structure/closet/secure_closet/hydroponics{req_access = list(47)},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/structure/window/reinforced,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
-"zM" = (/obj/structure/window/reinforced,/obj/machinery/biogenerator,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
-"zN" = (/obj/structure/window/reinforced,/obj/machinery/seed_extractor,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
-"zO" = (/obj/machinery/seed_storage/xenobotany,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
-"zP" = (/obj/effect/floor_decal/corner/green/full{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"zQ" = (/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"zR" = (/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoflora Grow Room 2"; dir = 4},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"zS" = (/turf/simulated/floor/water/shoreline/corner,/area/surface/east)
-"zT" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (SOUTHEAST)"; icon_state = "shoreline"; dir = 6},/area/surface/east)
-"zU" = (/obj/structure/disposaloutlet{dir = 1},/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
-"zV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
-"zW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio4"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
-"zX" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"zY" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"zZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio5"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
-"Aa" = (/obj/structure/disposaloutlet{dir = 1},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
-"Ab" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/obj/machinery/meter,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Ac" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/item/weapon/wrench,/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Ad" = (/obj/effect/floor_decal/corner/green{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Ae" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/gloves{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/syringes,/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Af" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/reagent_containers/glass/bucket,/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Ag" = (/obj/structure/sign/electricshock,/turf/simulated/wall,/area/surface/outpost/main/gen_room/smes)
-"Ah" = (/obj/machinery/smartfridge/drying_rack,/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Ai" = (/obj/effect/floor_decal/corner/green{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Aj" = (/obj/machinery/light,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Ak" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Al" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"Am" = (/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for the divider between pens."; id = "xenobioout7"; name = "Containment Divider Switch"; pixel_x = 28; pixel_y = 0; req_access = list(55)},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"An" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Ao" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Ap" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Aq" = (/obj/effect/floor_decal/corner/green{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Ar" = (/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"As" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"At" = (/obj/effect/floor_decal/corner/green{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Au" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Av" = (/obj/machinery/status_display{pixel_x = 32},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Aw" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Xenoflora Storage"; req_access = list(55)},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Ax" = (/obj/structure/closet,/obj/item/toy/figure/scientist,/obj/item/clothing/accessory/armband/science,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenobiology)
-"Ay" = (/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for a door to space."; id = "xenobioout6"; name = "Containment Release Switch"; pixel_x = 0; pixel_y = -28; req_access = list(55)},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"Az" = (/obj/structure/disposalpipe/trunk,/obj/machinery/disposal,/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"AA" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/door/window/brigdoor/northright{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"AB" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/button/remote/blast_door{id = "xenobio1"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"AC" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/light,/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenobiology South"; dir = 1},/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = -38},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"AD" = (/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/table/reinforced,/obj/machinery/button/remote/blast_door{id = "xenobio2"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"AE" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"AF" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"AG" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"AH" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
-"AI" = (/obj/structure/closet/radiation,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenobiology)
-"AJ" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/xenobiology)
-"AK" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/disposaloutlet,/obj/structure/disposalpipe/trunk{dir = 8},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/research/xenoresearch/xenobiology)
-"AL" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/center)
-"AM" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
-"AN" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
-"AO" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
-"AP" = (/obj/machinery/ai_status_display{pixel_y = -32},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"AQ" = (/obj/machinery/light/spot,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"AR" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
-"AS" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
-"AT" = (/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
-"AU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"AV" = (/turf/simulated/wall,/area/surface/center)
-"AW" = (/turf/simulated/floor/wood,/area/surface/center)
-"AX" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/extinguisher,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"AY" = (/obj/structure/disposalpipe/segment,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio1"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
-"AZ" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio1"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/window/brigdoor/southright{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
-"Ba" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio1"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
-"Bb" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio2"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
-"Bc" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio2"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/window/brigdoor/southright{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
-"Bd" = (/obj/effect/wingrille_spawn/reinforced,/obj/structure/disposalpipe/segment,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio2"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
-"Be" = (/obj/structure/closet/l3closet/general,/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
-"Bf" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Bg" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Bh" = (/obj/machinery/door/airlock/glass_research{name = "Xenoflora Research"; req_access = list(55)},/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Bi" = (/obj/machinery/door/airlock/glass_research{name = "Xenoflora Research"; req_access = list(55)},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Bj" = (/obj/structure/closet/crate/hydroponics{name = "exotic seeds crate"},/obj/item/seeds/replicapod,/obj/item/seeds/replicapod,/obj/item/seeds/ambrosiavulgarisseed,/obj/item/seeds/ambrosiavulgarisseed,/obj/item/seeds/libertymycelium,/obj/item/seeds/reishimycelium,/obj/item/seeds/random,/obj/item/seeds/random,/obj/item/seeds/random,/obj/item/seeds/random,/obj/item/seeds/random,/obj/item/seeds/random,/obj/item/seeds/kudzuseed,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Bk" = (/obj/machinery/door/window/eastright{name = "Bar"; req_access = null; req_one_access = list(25,43,67)},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
-"Bl" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenobiology)
-"Bm" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
-"Bn" = (/obj/structure/closet/bombcloset,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenobiology)
-"Bo" = (/obj/effect/overlay/snow/floor,/obj/structure/grille,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/center)
-"Bp" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/center)
-"Bq" = (/obj/effect/overlay/snow/floor,/obj/structure/grille,/turf/simulated/floor/plating/sif/planetuse,/area/surface/south)
-"Br" = (/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Bs" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Bt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Bu" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Bv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Bw" = (/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoflora Grow Room 1"; dir = 2},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Bx" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
-"By" = (/obj/structure/disposalpipe/segment,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
-"Bz" = (/obj/structure/disposalpipe/segment,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
-"BA" = (/obj/effect/overlay/snow/floor,/obj/structure/grille,/turf/simulated/floor/plating/sif/planetuse,/area/surface/center)
-"BB" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"BC" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"BD" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"BE" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"BF" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
-"BG" = (/obj/structure/disposaloutlet{dir = 8},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
-"BH" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"BI" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"BJ" = (/obj/machinery/door/blast/regular{desc = "By gods, release the hounds!"; id = "xenobioout6"; name = "Containment Release"},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
-"BK" = (/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/west)
-"BL" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/lasertag/red,/obj/item/stack/flag/red,/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main)
-"BM" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/shuttle/response_ship/planet)
-"BN" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (NORTHWEST)"; icon_state = "shoreline"; dir = 9},/area/surface/east)
-"BO" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (NORTH)"; icon_state = "shoreline"; dir = 1},/area/surface/east)
-"BP" = (/turf/simulated/floor/water/shoreline/corner{tag = "icon-shorelinecorner (EAST)"; icon_state = "shorelinecorner"; dir = 4},/area/surface/east)
-"BQ" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (EAST)"; icon_state = "shoreline"; dir = 4},/area/surface/east)
-"BR" = (/turf/simulated/floor/water/shoreline,/area/surface/east)
-"BS" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (SOUTHWEST)"; icon_state = "shoreline"; dir = 10},/area/surface/east)
-"BT" = (/turf/simulated/floor/water/shoreline/corner{tag = "icon-shorelinecorner (NORTH)"; icon_state = "shorelinecorner"; dir = 1},/area/surface/east)
-"BU" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/west)
-"BV" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"BW" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/syndicate_station/planet)
-"BX" = (/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/west)
-"BY" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/center)
-"BZ" = (/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/center)
-"Ca" = (/turf/unsimulated/wall/planetary/sif,/area/surface/southwest)
-"Cb" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/southwest)
-"Cc" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/southeast)
-"Cd" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/southeast)
-"Ce" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/rocks/sif/planetuse,/area/surface/southeast)
-"Cf" = (/obj/effect/zone_divider,/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (WEST)"; icon_state = "shoreline"; dir = 8},/area/surface/southeast)
-"Cg" = (/obj/effect/zone_divider,/turf/simulated/floor/water,/area/surface/southeast)
-"Ch" = (/obj/effect/zone_divider,/turf/simulated/floor/water/deep,/area/surface/southeast)
-"Ci" = (/turf/unsimulated/wall/planetary/sif,/area/surface/southeast)
-"Cj" = (/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/southwest)
-"Ck" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/south)
-"Cl" = (/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/south)
-"Cm" = (/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/south)
-"Cn" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"Co" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/south)
-"Cp" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/south)
-"Cq" = (/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/southeast)
-"Cr" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/southeast)
-"Cs" = (/turf/simulated/floor/outdoors/rocks/sif/planetuse,/area/surface/southeast)
-"Ct" = (/turf/simulated/floor/water/shoreline/corner{tag = "icon-shorelinecorner (WEST)"; icon_state = "shorelinecorner"; dir = 8},/area/surface/southeast)
-"Cu" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (NORTHEAST)"; icon_state = "shoreline"; dir = 5},/area/surface/southeast)
-"Cv" = (/turf/simulated/floor/water,/area/surface/southeast)
-"Cw" = (/turf/simulated/floor/water/deep,/area/surface/southeast)
-"Cx" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (WEST)"; icon_state = "shoreline"; dir = 8},/area/surface/southeast)
-"Cy" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"Cz" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (NORTH)"; icon_state = "shoreline"; dir = 1},/area/surface/southeast)
-"CA" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/skipjack_station/planet)
-"CB" = (/obj/item/weapon/caution/cone,/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/south)
-"CC" = (/turf/unsimulated/wall/planetary/sif{icon_state = "rock-dark"},/area/surface/southwest)
-"CD" = (/turf/unsimulated/wall/planetary/sif{icon_state = "rock-dark"},/area/surface/south)
-"CE" = (/obj/effect/step_trigger/teleporter/wild/to_wild,/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/south)
-"CF" = (/turf/unsimulated/wall/planetary/sif{icon_state = "rock-dark"},/area/surface/southeast)
-"CG" = (/obj/structure/extinguisher_cabinet{pixel_y = 30},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"CH" = (/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "main4_airlock_control"; name = "Main Access Console"; pixel_x = 0; pixel_y = 26; tag_exterior_door = "main4_airlock_exterior"; tag_interior_door = "main4_airlock_interior"},/obj/effect/floor_decal/industrial/warning/corner{dir = 1; icon_state = "warningcorner"},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"CI" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Gym"},/obj/structure/cable/blue{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/steel_grid,/area/surface/outpost/main/gym)
-"CJ" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/lasertag/blue,/obj/item/stack/flag/blue,/obj/structure/extinguisher_cabinet{pixel_x = -25},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main)
-"CK" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"CL" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"CM" = (/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"CN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/firealarm{pixel_y = 24},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/obj/effect/floor_decal/borderfloor/corner2{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"CO" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/light{dir = 1},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"CP" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 4},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"CQ" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/obj/effect/floor_decal/borderfloor/corner2{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"CR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"CS" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"CT" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light{dir = 1},/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"CU" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"CV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"CW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"CX" = (/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"CY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"CZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"Da" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/junction/yjunction,/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"Db" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"Dc" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/status_display{pixel_y = 32},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"Dd" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Corridor West"; dir = 2},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"De" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"Df" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/status_display{pixel_y = 32},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"Dg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"Dh" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"Di" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"Dj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/obj/effect/floor_decal/borderfloor/corner2{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"Dk" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/obj/effect/floor_decal/steeldecal/steel_decals4,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"Dl" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"Dm" = (/obj/effect/floor_decal/spline/plain{tag = "icon-spline_plain_full (NORTH)"; icon_state = "spline_plain_full"; dir = 1},/obj/structure/showcase{desc = "It looks almost lifelike."; icon = 'icons/obj/statue.dmi'; icon_state = "hos"; name = "Statue"; pixel_y = 2},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/corridor)
-"Dn" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/corridor)
-"Do" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"Dp" = (/obj/structure/closet/wardrobe/mixed,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/machinery/light,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"Dq" = (/obj/machinery/alarm{dir = 1; pixel_y = -25},/obj/structure/closet/crate,/obj/item/weapon/bedsheet,/obj/item/weapon/bedsheet/blue,/obj/item/weapon/bedsheet/brown,/obj/item/weapon/bedsheet/green,/obj/item/weapon/bedsheet/orange,/obj/item/weapon/bedsheet/purple,/obj/item/weapon/bedsheet/red,/obj/item/weapon/bedsheet/yellow,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/effect/floor_decal/borderfloor/corner2{dir = 9},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"Dr" = (/obj/machinery/camera/network/main_outpost{c_tag = "MO - Dorms Hallway West"; dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/effect/floor_decal/borderfloor/corner2,/obj/effect/floor_decal/corner/green/bordercorner2,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"Ds" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"Dt" = (/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/structure/cable/blue,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"Du" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"Dv" = (/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"Dw" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Dorms Hallway East"; dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/effect/floor_decal/borderfloor/corner2{dir = 9},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"Dx" = (/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -25},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"Dy" = (/obj/machinery/vending/snack,/obj/machinery/light,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"Dz" = (/obj/machinery/alarm{dir = 1; pixel_y = -25},/obj/machinery/vending/cigarette,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/effect/floor_decal/borderfloor/corner2,/obj/effect/floor_decal/corner/green/bordercorner2,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"DA" = (/obj/machinery/vending/coffee,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"DB" = (/obj/machinery/vending/cola,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"DC" = (/obj/machinery/lapvend,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
-"DD" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"DE" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"DF" = (/obj/machinery/camera/network/main_outpost{c_tag = "MO - Corridor West"; dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"DG" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/borderfloor/corner{dir = 8},/obj/effect/floor_decal/corner/green/bordercorner{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"DH" = (/obj/machinery/ai_status_display{pixel_y = -32},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"DI" = (/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/green/bordercorner,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"DJ" = (/obj/machinery/light,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"DK" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"DL" = (/obj/machinery/ai_status_display{pixel_y = -32},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Hallway West"; dir = 4},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"DM" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"DN" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/effect/floor_decal/borderfloor/corner2{dir = 9},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"DO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"DP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"DQ" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/light,/obj/structure/closet/emcloset,/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"DR" = (/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "main3_airlock_control"; name = "Main Access Console"; pixel_x = 0; pixel_y = -26; tag_exterior_door = "main3_airlock_exterior"; tag_interior_door = "main3_airlock_interior"},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"DS" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"DT" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
-"DU" = (/obj/structure/closet/wardrobe/mixed,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/machinery/light,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main)
-"DV" = (/obj/structure/closet/wardrobe/suit,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/suit/storage/hooded/wintercoat,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main)
-"DW" = (/obj/structure/closet/wardrobe/xenos,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main)
-"DX" = (/obj/structure/closet/wardrobe/grey,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main)
-"DY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Hallway South 2"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"DZ" = (/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"Ea" = (/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main)
-"Eb" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"Ec" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
-"Ed" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Pool"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/pool)
-"Ee" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Pool"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/pool)
-"Ef" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"Eg" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"Eh" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"Ei" = (/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
-"Ej" = (/obj/structure/reagent_dispensers/watertank/high,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Ek" = (/turf/simulated/floor/water,/area/surface/outside/river/indalsalven)
-"El" = (/obj/effect/floor_decal/corner/green/full{dir = 8},/obj/structure/reagent_dispensers/watertank/high,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
-"Em" = (/turf/simulated/floor/water/deep,/area/surface/outside/river/indalsalven)
-"En" = (/turf/simulated/floor/wood,/area/surface/outside/river/indalsalven)
-"Eo" = (/obj/effect/zone_divider,/turf/simulated/floor/water,/area/surface/outside/river/indalsalven)
-"Ep" = (/turf/simulated/floor/water,/area/surface/outside/river/faxalven)
-"Eq" = (/obj/effect/zone_divider,/turf/simulated/floor/water/deep,/area/surface/outside/river/indalsalven)
-"Er" = (/turf/simulated/floor/wood,/area/surface/outside/river/faxalven)
-"Es" = (/obj/effect/zone_divider,/turf/simulated/floor/water,/area/surface/outside/river/faxalven)
-"Et" = (/turf/simulated/floor/water,/area/surface/outside/lake/romsele)
-"Eu" = (/turf/simulated/floor/water/deep,/area/surface/outside/lake/romsele)
-"Ev" = (/obj/item/weapon/caution/cone,/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/south)
+"bn" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/gateway)
+"bo" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/gateway)
+"bp" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/gateway)
+"bq" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/north)
+"br" = (/turf/simulated/floor/plating/sif/planetuse,/area/surface/north)
+"bs" = (/turf/simulated/floor/plating/sif/planetuse,/area/shuttle/shuttle1/mining)
+"bt" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/north)
+"bu" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/north)
+"bv" = (/turf/simulated/floor/plating/sif/planetuse,/area/shuttle/shuttle2/mining)
+"bw" = (/obj/effect/floor_decal/corner/brown{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage)
+"bx" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage)
+"by" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage)
+"bz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage)
+"bA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage)
+"bB" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_mining{name = "Mining Storage"; req_access = list(48)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage)
+"bC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"bD" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"bE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"bF" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"bG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"bH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"bI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "mining_airlock_control2"; name = "Mining Access Console"; pixel_x = 26; pixel_y = 26; tag_exterior_door = "mining_airlock_exterior2"; tag_interior_door = "mining_airlock_interior2"},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main)
+"bJ" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "mining_airlock_control2"; name = "Mining Access Button"; pixel_x = 6; pixel_y = 26; req_access = null},/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "mining_airlock_interior2"; locked = 1; name = "Mining Interior Outpost"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"bK" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main)
+"bL" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main)
+"bM" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "mining_airlock_exterior2"; locked = 1; name = "Mining Exterior Outpost"},/obj/effect/decal/cleanable/dirt,/obj/machinery/access_button/airlock_exterior{master_tag = "mining_airlock_control2"; pixel_y = 24},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"bN" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/security)
+"bO" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/security)
+"bP" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/security)
+"bQ" = (/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway)
+"bR" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway)
+"bS" = (/obj/machinery/camera/network/main_outpost{c_tag = "MO - Gateway"},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway)
+"bT" = (/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway)
+"bU" = (/obj/structure/extinguisher_cabinet{pixel_x = 25},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway)
+"bV" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/first_aid)
+"bW" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/first_aid)
+"bX" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/first_aid)
+"bY" = (/obj/structure/ore_box,/obj/effect/floor_decal/corner/brown/full,/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage)
+"bZ" = (/obj/structure/ore_box,/obj/effect/floor_decal/corner/brown{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage)
+"ca" = (/obj/structure/reagent_dispensers/watertank,/obj/effect/floor_decal/corner/brown{dir = 10},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage)
+"cb" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/floor_decal/corner/brown{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage)
+"cc" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe/hammer,/obj/item/weapon/wrench,/obj/item/weapon/crowbar,/obj/item/weapon/shovel,/obj/effect/floor_decal/corner/brown{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage)
+"cd" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe/hammer,/obj/item/weapon/wrench,/obj/item/weapon/crowbar,/obj/item/weapon/shovel,/obj/effect/floor_decal/corner/brown{dir = 10},/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/storage)
+"ce" = (/obj/effect/floor_decal/corner/brown{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"cf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"cg" = (/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"ch" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"ci" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"cj" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main)
+"ck" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main)
+"cl" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main)
+"cm" = (/obj/machinery/deployable/barrier,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"cn" = (/obj/machinery/light{dir = 1},/obj/structure/closet/secure_closet/guncabinet/rifle,/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/red/border{dir = 1},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"co" = (/obj/structure/closet/secure_closet/guncabinet/rifle,/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/red/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"cp" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/structure/table/standard,/obj/item/weapon/book/codex/corp_regs,/obj/effect/floor_decal/borderfloor{dir = 5},/obj/effect/floor_decal/corner/red/border{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"cq" = (/obj/machinery/status_display,/turf/simulated/wall,/area/surface/outpost/main/gateway)
+"cr" = (/obj/machinery/gateway{dir = 9},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway)
+"cs" = (/obj/machinery/gateway{dir = 1},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway)
+"ct" = (/obj/machinery/gateway{dir = 5},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway)
+"cu" = (/obj/machinery/ai_status_display,/turf/simulated/wall,/area/surface/outpost/main/gateway)
+"cv" = (/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = 0; pixel_y = 28},/obj/structure/table/glass,/obj/machinery/recharger,/obj/item/weapon/screwdriver,/obj/item/device/defib_kit/loaded,/obj/effect/floor_decal/borderfloorwhite{dir = 9},/obj/effect/floor_decal/corner/paleblue/border{dir = 9},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
+"cw" = (/obj/machinery/sleep_console{dir = 4},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
+"cx" = (/obj/machinery/sleeper{dir = 4},/obj/machinery/light{dir = 1},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
+"cy" = (/obj/structure/bed/roller,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/obj/effect/floor_decal/borderfloorwhite{dir = 5},/obj/effect/floor_decal/corner/paleblue/border{dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
+"cz" = (/turf/simulated/floor/outdoors/snow/sif/planetuse,/area/ninja_dojo/planet)
+"cA" = (/obj/structure/ore_box,/turf/simulated/floor/tiled/dark,/area/surface/outpost/mining_main/storage)
+"cB" = (/turf/simulated/wall,/area/surface/outpost/mining_main/storage)
+"cC" = (/obj/effect/floor_decal/corner/brown{dir = 9},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"cD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"cE" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/effect/floor_decal/corner/brown,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"cF" = (/obj/machinery/mech_recharger,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"cG" = (/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/item/weapon/storage/toolbox/mechanical,/obj/structure/table/steel,/obj/machinery/light,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"cH" = (/obj/machinery/mech_recharger,/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"cI" = (/obj/machinery/recharge_station,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"cJ" = (/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/refinery)
+"cK" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTH)"; icon_state = "warning_dust"; dir = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/sif/planetuse{icon_state = "asteroidfloor"},/area/surface/north)
+"cL" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/gen_room)
+"cM" = (/obj/structure/window/reinforced,/obj/machinery/deployable/barrier,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"cN" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"cO" = (/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"cP" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/red/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"cQ" = (/turf/simulated/wall,/area/surface/outpost/main/gateway)
+"cR" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway)
+"cS" = (/obj/machinery/gateway{dir = 8},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway)
+"cT" = (/obj/machinery/cryopod/robot/door/gateway,/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway)
+"cU" = (/obj/machinery/gateway{dir = 4},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway)
+"cV" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway)
+"cW" = (/obj/structure/table/glass,/obj/item/roller,/obj/item/roller{pixel_y = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/obj/effect/floor_decal/borderfloorwhite{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
+"cX" = (/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
+"cY" = (/obj/structure/window/reinforced,/obj/effect/floor_decal/industrial/warning/corner,/obj/effect/floor_decal/borderfloorwhite/corner{dir = 4},/obj/effect/floor_decal/corner/paleblue/bordercorner{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
+"cZ" = (/obj/structure/window/reinforced,/obj/structure/table/rack,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/firstaid/regular,/obj/random/medical/lite,/obj/effect/floor_decal/borderfloorwhite{dir = 5},/obj/effect/floor_decal/corner/paleblue/border{dir = 5},/obj/effect/floor_decal/borderfloorwhite/corner2{dir = 5},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 5},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
+"da" = (/obj/machinery/floodlight,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage)
+"db" = (/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage)
+"dc" = (/obj/structure/table/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/oxygen,/obj/item/weapon/tank/oxygen,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/weapon/extinguisher,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage)
+"dd" = (/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/emergencystorage)
+"de" = (/obj/effect/floor_decal/corner/brown{dir = 9},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"df" = (/obj/structure/dispenser/oxygen,/obj/effect/floor_decal/corner/brown{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"dg" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
+"dh" = (/obj/structure/disposaloutlet{dir = 8},/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
+"di" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/refinery)
+"dj" = (/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/industrial/warning/dust,/obj/effect/overlay/snow/floor,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/sif/planetuse{icon_state = "asteroidfloor"},/area/surface/north)
+"dk" = (/obj/effect/floor_decal/industrial/warning/dust,/obj/effect/overlay/snow/floor,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/sif/planetuse{icon_state = "asteroidfloor"},/area/surface/north)
+"dl" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 6; icon_state = "warning_dust"; tag = "icon-warning_dust (EAST)"},/obj/machinery/light/small{dir = 1},/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/tiled/sif/planetuse{icon_state = "asteroidfloor"},/area/surface/outpost/mining_main/gen_room)
+"dm" = (/obj/machinery/alarm{pixel_y = 23},/obj/structure/table/standard,/obj/item/weapon/storage/box/donut,/obj/effect/floor_decal/borderfloor{dir = 9},/obj/effect/floor_decal/corner/red/border{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"dn" = (/obj/structure/table/standard,/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/red/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"do" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/table/standard,/obj/effect/floor_decal/borderfloor{dir = 5},/obj/effect/floor_decal/corner/red/border{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"dp" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"dq" = (/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/red/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"dr" = (/obj/machinery/computer/cryopod/gateway{pixel_x = -30},/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway)
+"ds" = (/obj/machinery/gateway{dir = 10},/obj/effect/landmark{name = "JoinLateGateway"},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway)
+"dt" = (/obj/machinery/gateway,/obj/effect/landmark{name = "JoinLateGateway"},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway)
+"du" = (/obj/machinery/gateway{dir = 6},/obj/effect/landmark{name = "JoinLateGateway"},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/gateway)
+"dv" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/atm{pixel_x = 30},/turf/simulated/floor/tiled/dark,/area/surface/outpost/main/gateway)
+"dw" = (/obj/machinery/computer/crew,/obj/effect/floor_decal/borderfloorwhite{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
+"dx" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/structure/table/glass,/obj/item/weapon/wrench,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 7; pixel_y = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
+"dy" = (/obj/machinery/atmospherics/unary/freezer{dir = 2; icon_state = "freezer"},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
+"dz" = (/obj/machinery/atmospherics/unary/cryo_cell{layer = 3.3},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
+"dA" = (/obj/random/maintenance/clean,/obj/random/maintenance/security,/obj/random/contraband,/obj/random/drinkbottle,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/storage)
+"dB" = (/obj/random/maintenance/clean,/obj/random/contraband,/obj/random/tech_supply,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/storage)
+"dC" = (/obj/structure/closet/hydrant{pixel_x = -32; pixel_y = 0},/obj/item/clothing/glasses/meson,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage)
+"dD" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage)
+"dE" = (/obj/item/device/t_scanner,/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/storage/box/lights/mixed,/obj/structure/table/steel,/obj/random/maintenance/engineering,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage)
+"dF" = (/obj/effect/floor_decal/corner/brown{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"dG" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/item/clothing/mask/breath,/obj/machinery/door/window/westright{req_access = list(48)},/obj/structure/table/rack{dir = 8; layer = 2.6},/obj/effect/floor_decal/corner/brown{dir = 6},/obj/random/multiple/voidsuit/mining,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"dH" = (/obj/machinery/mineral/input,/obj/effect/floor_decal/industrial/loading{dir = 4},/obj/structure/sign/warning/moving_parts{pixel_y = 32},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery)
+"dI" = (/obj/machinery/mineral/unloading_machine,/turf/simulated/floor/tiled/dark,/area/surface/outpost/mining_main/refinery)
+"dJ" = (/obj/machinery/conveyor{dir = 4; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
+"dK" = (/obj/machinery/conveyor{dir = 4; id = "mining_internal"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
+"dL" = (/obj/machinery/conveyor{dir = 4; id = "mining_internal"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
+"dM" = (/obj/machinery/conveyor{dir = 9; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
+"dN" = (/obj/machinery/mineral/unloading_machine{icon_state = "unloader-corner"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
+"dO" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/obj/machinery/mineral/input,/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
+"dP" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/mining_main/gen_room)
+"dQ" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/floor/tiled/steel/sif/planetuse{tag = "icon-dark"; icon_state = "dark"},/area/surface/outpost/mining_main/gen_room)
+"dR" = (/obj/machinery/camera/network/main_outpost{c_tag = "MO - Security Checkpoint"; dir = 4},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/red/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"dS" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/floor_decal/borderfloor/corner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"dT" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"dU" = (/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/red/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"dV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway)
+"dW" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway)
+"dX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway)
+"dY" = (/obj/structure/bed/chair/office/light{dir = 1},/obj/effect/floor_decal/borderfloorwhite/corner{dir = 1},/obj/effect/floor_decal/corner/paleblue/bordercorner{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
+"dZ" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
+"ea" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
+"eb" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
+"ec" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4},/obj/machinery/camera/network/main_outpost{c_tag = "MO - FA Station"; dir = 8},/obj/effect/floor_decal/borderfloorwhite{dir = 4},/obj/effect/floor_decal/corner/paleblue/border{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
+"ed" = (/turf/simulated/wall,/area/surface/outpost/mining_main/emergencystorage)
+"ee" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Emergency Storage"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/emergencystorage)
+"ef" = (/obj/effect/floor_decal/corner/brown{dir = 9},/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"eg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"eh" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/item/clothing/mask/breath,/obj/machinery/door/window/westleft{req_access = list(48)},/obj/structure/table/rack{dir = 8; layer = 2.6},/obj/effect/floor_decal/corner/brown{dir = 6},/obj/random/multiple/voidsuit/mining,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"ei" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/surface/outpost/mining_main/refinery)
+"ej" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
+"ek" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTH)"; icon_state = "warning_dust"; dir = 1},/obj/effect/overlay/snow/floor,/obj/machinery/light/small{dir = 8; pixel_x = 0},/turf/simulated/floor/tiled/sif/planetuse{icon_state = "asteroidfloor"},/area/surface/outpost/mining_main/gen_room)
+"el" = (/obj/machinery/conveyor_switch{id = "mining_external"},/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTH)"; icon_state = "warning_dust"; dir = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/sif/planetuse{icon_state = "asteroidfloor"},/area/surface/outpost/mining_main/gen_room)
+"em" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 5; icon_state = "warning_dust"; tag = "icon-warning_dust (EAST)"},/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/sif/planetuse{icon_state = "asteroidfloor"},/area/surface/north)
+"en" = (/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/red/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"eo" = (/obj/structure/bed/chair/office/dark,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"ep" = (/obj/machinery/door/window/brigdoor/eastright{name = "Security Checkpoint"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"eq" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"er" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"es" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"et" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass_security{name = "Security Checkpoint"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/security)
+"eu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway)
+"ev" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway)
+"ew" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway)
+"ex" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway)
+"ey" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass_medical{name = "First-Aid Station"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/first_aid)
+"ez" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
+"eA" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
+"eB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
+"eC" = (/obj/machinery/door/window/westleft{name = "Medical Staff Only"; req_one_access = list(5)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
+"eD" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
+"eE" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/effect/floor_decal/borderfloorwhite{dir = 4},/obj/effect/floor_decal/corner/paleblue/border{dir = 4},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
+"eF" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/computer/guestpass{pixel_y = 30},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main)
+"eG" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main)
+"eH" = (/obj/effect/floor_decal/corner/brown{dir = 1},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"eI" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"eJ" = (/obj/effect/floor_decal/corner/brown{dir = 4},/obj/machinery/firealarm{pixel_y = 24},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"eK" = (/obj/effect/floor_decal/corner/brown{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"eL" = (/obj/structure/cable/blue{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,/area/surface/outpost/mining_main)
+"eM" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_mining{name = "Production Area"; req_access = list(48)},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery)
+"eN" = (/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery)
+"eO" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery)
+"eP" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery)
+"eQ" = (/obj/machinery/mineral/input,/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
+"eR" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/sif/planetuse{icon_state = "asteroidfloor"},/area/surface/north)
+"eS" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (EAST)"; icon_state = "warning_dust"; dir = 4},/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/sif/planetuse{icon_state = "asteroidfloor"},/area/surface/north)
+"eT" = (/obj/machinery/computer/secure_data,/obj/effect/floor_decal/borderfloor{dir = 10},/obj/effect/floor_decal/corner/red/border{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"eU" = (/obj/machinery/computer/security,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/red/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"eV" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/device/flash,/obj/item/weapon/pen,/obj/item/weapon/crowbar,/obj/machinery/light,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/red/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"eW" = (/obj/structure/closet/crate,/obj/effect/floor_decal/borderfloor/corner{dir = 8},/obj/effect/floor_decal/corner/red/bordercorner{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"eX" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"eY" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/red/bordercorner,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"eZ" = (/obj/machinery/alarm{dir = 1; pixel_y = -25},/obj/structure/closet/l3closet/scientist,/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway)
+"fa" = (/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway)
+"fb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway)
+"fc" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway)
+"fd" = (/obj/structure/closet/emcloset,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable/blue,/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway)
+"fe" = (/obj/structure/closet/l3closet/scientist,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/borderfloorwhite/corner{dir = 8},/obj/effect/floor_decal/corner/paleblue/bordercorner{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
+"ff" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
+"fg" = (/obj/structure/table/glass,/obj/item/weapon/crowbar,/obj/item/bodybag,/obj/item/bodybag/cryobag,/obj/effect/floor_decal/borderfloorwhite/corner,/obj/effect/floor_decal/corner/paleblue/bordercorner,/obj/item/bodybag/cryobag,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
+"fh" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/glass,/obj/item/weapon/storage/firstaid/adv{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/firstaid/o2{pixel_x = 0; pixel_y = 0},/obj/machinery/light,/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
+"fi" = (/obj/structure/table/glass,/obj/item/weapon/storage/firstaid/toxin{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/firstaid/fire{pixel_x = 0; pixel_y = 0},/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/main/first_aid)
+"fj" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/portable_atmospherics/canister/oxygen/prechilled,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
+"fk" = (/obj/effect/decal/cleanable/dirt,/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/north)
+"fl" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "mining1_airlock_exterior"; locked = 1; name = "Mining Exterior Outpost"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "mining1_airlock_control"; name = "Mining Access Button"; pixel_x = 0; pixel_y = -24; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"fm" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main)
+"fn" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main)
+"fo" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "mining1_airlock_interior"; locked = 1; name = "Mining Interior Outpost"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "mining1_airlock_control"; name = "Mining Access Button"; pixel_x = -6; pixel_y = -26; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"fp" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "mining1_airlock_control"; name = "Mining Access Console"; pixel_x = -26; pixel_y = -26; tag_exterior_door = "mining1_airlock_exterior"; tag_interior_door = "mining1_airlock_interior"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"fq" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"fr" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"fs" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"ft" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"fu" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera/network/mining{c_tag = "OPM - Mining Hallway 1"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"fv" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
+"fw" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery)
+"fx" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark,/area/surface/outpost/mining_main/refinery)
+"fy" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery)
+"fz" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/camera/network/mining{c_tag = "OPM - Mining Production Room"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery)
+"fA" = (/obj/machinery/mineral/processing_unit_console,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/refinery)
+"fB" = (/obj/machinery/mineral/processing_unit,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
+"fC" = (/turf/simulated/wall,/area/surface/outpost/main/security)
+"fD" = (/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/obj/effect/floor_decal/borderfloor/corner2{dir = 10},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"fE" = (/obj/machinery/door/window/northright,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"fF" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 36; pixel_y = 1},/obj/structure/cable/blue,/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/obj/effect/floor_decal/borderfloor/corner2{dir = 5},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"fG" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass{name = "Gateway Access"},/turf/simulated/floor/tiled,/area/surface/outpost/main/gateway)
+"fH" = (/turf/simulated/wall,/area/surface/outpost/main/first_aid)
+"fI" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/obj/structure/cable/blue,/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/white/border{dir = 8},/obj/effect/floor_decal/borderfloor/corner2{dir = 10},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
+"fJ" = (/obj/machinery/door/window/northleft,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
+"fK" = (/obj/structure/window/reinforced{dir = 1},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/white/border{dir = 4},/obj/effect/floor_decal/borderfloor/corner2{dir = 5},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 5},/obj/machinery/vending/medical,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
+"fL" = (/obj/machinery/light/small{dir = 4},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/mining_main/gen_room)
+"fM" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main)
+"fN" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/camera/network/mining{c_tag = "OPM - Mining Airlock 1"; dir = 1},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/mining_main)
+"fO" = (/obj/effect/floor_decal/corner/brown{dir = 10},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"fP" = (/obj/effect/floor_decal/corner/brown{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"fQ" = (/obj/effect/floor_decal/corner/brown{dir = 10},/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"fR" = (/obj/structure/closet/crate,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery)
+"fS" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/closet/crate,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery)
+"fT" = (/obj/machinery/conveyor_switch/oneway{id = "mining_internal"; name = "mining conveyor"},/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery)
+"fU" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
+"fV" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main/security)
+"fW" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/computer/guestpass{pixel_y = 30},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security)
+"fX" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security)
+"fY" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 26},/obj/structure/table/bench/steel,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"fZ" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 26},/obj/structure/table/bench/steel,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Explorer Prep"; dir = 2},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"ga" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"gb" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"gc" = (/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"gd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"ge" = (/obj/machinery/camera/network/main_outpost{c_tag = "MO - Hallway North 1"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"gf" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
+"gg" = (/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
+"gh" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
+"gi" = (/obj/machinery/camera/network/main_outpost{c_tag = "MO - SAR Prep"; dir = 2},/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
+"gj" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/random/powercell,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
+"gk" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main)
+"gl" = (/turf/simulated/wall,/area/surface/outpost/mining_main)
+"gm" = (/obj/effect/floor_decal/corner/brown/full,/obj/structure/closet,/obj/item/clothing/suit/storage/hooded/wintercoat/cargo,/obj/item/clothing/suit/storage/hooded/wintercoat/miner,/obj/item/clothing/suit/storage/hooded/wintercoat/miner,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/shoes/boots/winter,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"gn" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/effect/floor_decal/corner/brown{dir = 8},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"go" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"gp" = (/obj/effect/floor_decal/corner/brown,/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/space_heater,/turf/simulated/floor/tiled,/area/surface/outpost/mining_main)
+"gq" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/surface/outpost/mining_main/refinery)
+"gr" = (/obj/machinery/mineral/stacking_unit_console,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/refinery)
+"gs" = (/obj/machinery/light/small,/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (EAST)"; icon_state = "warning_dust"; dir = 4},/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/sif/planetuse{icon_state = "asteroidfloor"},/area/surface/outpost/mining_main/gen_room)
+"gt" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main5_airlock_exterior"; locked = 1; name = "Main Outpost Exterior"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "main5_airlock_control"; name = "Main Access Button"; pixel_x = 0; pixel_y = -24; req_access = null},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security)
+"gu" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security)
+"gv" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security)
+"gw" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "main5_airlock_control"; name = "Main Access Button"; pixel_x = -6; pixel_y = -26; req_access = null},/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main5_airlock_interior"; locked = 1; name = "Main Outpost Interior"},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"gx" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "main5_airlock_control"; name = "Main Access Console"; pixel_x = -26; pixel_y = -26; tag_exterior_door = "main5_airlock_exterior"; tag_interior_door = "main5_airlock_interior"},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"gy" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"gz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"gA" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass{name = "Explorer Prep"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/security)
+"gB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"gC" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"gD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"gE" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass{name = "SAR Prep"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/first_aid)
+"gF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
+"gG" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
+"gH" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
+"gI" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
+"gJ" = (/obj/machinery/computer/crew,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
+"gK" = (/obj/random/obstruction,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"gL" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/power/port_gen/pacman,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"gM" = (/obj/structure/closet/crate,/obj/item/stack/material/phoron{amount = 50},/obj/item/stack/material/phoron{amount = 50},/obj/item/stack/material/phoron{amount = 50},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"gN" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"gO" = (/obj/structure/sign/electricshock,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/gen_room)
+"gP" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"gQ" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/engineering{name = "Generator Room"; req_one_access = list(12,47)},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"gR" = (/obj/effect/floor_decal/industrial/loading{tag = "icon-loadingarea (WEST)"; icon_state = "loadingarea"; dir = 8},/obj/structure/sign/warning/moving_parts{pixel_y = -32},/obj/structure/extinguisher_cabinet{pixel_x = -28; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/mining_main/refinery)
+"gS" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/obj/structure/plasticflaps,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
+"gT" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
+"gU" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
+"gV" = (/obj/machinery/mineral/stacking_machine,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
+"gW" = (/obj/machinery/conveyor{dir = 5; icon_state = "conveyor0"; id = "miningout_internal"},/obj/machinery/mineral/input,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/refinery)
+"gX" = (/obj/effect/floor_decal/industrial/warning/dust,/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/sif/planetuse{icon_state = "asteroidfloor"},/area/surface/north)
+"gY" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/gen_room)
+"gZ" = (/obj/effect/overlay/snow/floor,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main/security)
+"ha" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security)
+"hb" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/security)
+"hc" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/structure/table/rack{dir = 8; layer = 2.6},/obj/item/device/gps/explorer{pixel_x = -5; pixel_y = -5},/obj/item/device/gps/explorer{pixel_x = -3; pixel_y = -3},/obj/item/device/gps,/obj/item/device/gps{pixel_x = 3; pixel_y = 3},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"hd" = (/obj/structure/table/rack{dir = 8; layer = 2.6},/obj/machinery/light,/obj/machinery/status_display{pixel_x = 0; pixel_y = -32},/obj/item/device/paicard,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"he" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/closet/secure_closet/explorer,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"hf" = (/obj/structure/closet/secure_closet/explorer,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"hg" = (/obj/structure/closet/secure_closet/explorer,/obj/machinery/ai_status_display{pixel_y = -32},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"hh" = (/obj/structure/closet/secure_closet/explorer,/obj/structure/extinguisher_cabinet{pixel_x = 25},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/security)
+"hi" = (/obj/effect/floor_decal/borderfloor/corner{dir = 8},/obj/effect/floor_decal/corner/green/bordercorner{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"hj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"hk" = (/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/green/bordercorner,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"hl" = (/obj/machinery/mech_recharger,/obj/structure/extinguisher_cabinet{pixel_x = -25},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/first_aid)
+"hm" = (/obj/structure/table/steel,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/device/multitool,/obj/machinery/ai_status_display{pixel_y = -32},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/first_aid)
+"hn" = (/obj/machinery/mech_recharger,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/first_aid)
+"ho" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/table/steel,/obj/item/roller/adv,/obj/item/roller/adv{pixel_y = 5},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/paleblue/border,/obj/effect/floor_decal/borderfloor/corner2,/obj/effect/floor_decal/corner/white/bordercorner2,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
+"hp" = (/obj/structure/closet/secure_closet/sar,/obj/machinery/light,/obj/item/weapon/storage/box/bodybags,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/white/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
+"hq" = (/obj/structure/closet/secure_closet/sar,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
+"hr" = (/obj/structure/table/steel,/obj/machinery/recharger,/obj/machinery/status_display{pixel_x = 0; pixel_y = -32},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/white/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
+"hs" = (/obj/structure/table/steel,/obj/item/device/gps,/obj/item/device/gps{pixel_x = 3; pixel_y = 3},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/first_aid)
+"ht" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"hu" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"hv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"hw" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"hx" = (/obj/machinery/power/smes/buildable/outpost_substation{charge = 500000; input_attempt = 1; input_level = 150000; output_level = 150000; RCon_tag = "Outpost - Mining"},/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"hy" = (/obj/machinery/ai_status_display,/turf/simulated/wall,/area/surface/outpost/mining_main/gen_room)
+"hz" = (/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"hA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"hB" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/gen_room)
+"hC" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/telecomms)
+"hD" = (/turf/simulated/wall,/area/surface/outpost/main/teleporter)
+"hE" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/teleporter)
+"hF" = (/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"hG" = (/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"hH" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/garage)
+"hI" = (/turf/simulated/wall,/area/surface/outpost/main/garage)
+"hJ" = (/obj/structure/table/steel,/obj/random/tech_supply,/obj/random/tech_supply,/obj/machinery/camera/network/engineering_outpost{c_tag = "ENG - Mining Outpost Power West"; dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"hK" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"hL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"hM" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"hN" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"hO" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"hP" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"hQ" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"hR" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"hS" = (/obj/machinery/atmospherics/pipe/tank/nitrous_oxide,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"hT" = (/obj/machinery/atmospherics/pipe/tank/carbon_dioxide,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"hU" = (/obj/machinery/atmospherics/pipe/tank/air,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"hV" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"hW" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/alarm{pixel_y = 23},/obj/machinery/telecomms/relay/preset/southerncross/cave,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms)
+"hX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/telecomms/relay/preset/southerncross/planet,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms)
+"hY" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Telecomm"},/obj/machinery/telecomms/relay/preset/southerncross/wild,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms)
+"hZ" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/teleporter)
+"ia" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/teleporter)
+"ib" = (/obj/machinery/teleport/station,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/teleporter)
+"ic" = (/obj/machinery/teleport/hub,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/teleporter)
+"id" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/surface/outpost/main/teleporter)
+"ie" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/turf/simulated/floor/plating,/area/surface/outpost/main/garage)
+"if" = (/obj/structure/table/steel,/obj/item/weapon/weldpack,/turf/simulated/floor/plating,/area/surface/outpost/main/garage)
+"ig" = (/obj/machinery/space_heater,/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/plating,/area/surface/outpost/main/garage)
+"ih" = (/obj/item/stack/tile/floor/steel_dirty,/turf/simulated/floor/plating,/area/surface/outpost/main/garage)
+"ii" = (/obj/machinery/mech_recharger,/obj/machinery/light{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/main/garage)
+"ij" = (/obj/structure/closet/hydrant{pixel_y = 32},/obj/item/clothing/glasses/meson,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
+"ik" = (/obj/structure/ore_box,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
+"il" = (/obj/structure/table/steel,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/weapon/storage/toolbox/emergency{pixel_x = 5; pixel_y = 5},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
+"im" = (/obj/structure/table/steel,/obj/random/tool,/obj/random/tool,/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"in" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/pipedispenser/disposal,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"io" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/pipedispenser,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"ip" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"iq" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"ir" = (/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"is" = (/obj/machinery/atmospherics/binary/pump/on{dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"it" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact (EAST)"},/obj/machinery/atmospherics/binary/pump{dir = 2},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"iu" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow,/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact (EAST)"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"iv" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"iw" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{tag = "icon-map (EAST)"; icon_state = "map"; dir = 4},/obj/machinery/meter,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"ix" = (/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/obj/machinery/camera/network/engineering_outpost{c_tag = "ENG - Mining Outpost Power East"; dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"iy" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/machinery/light/small,/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms)
+"iz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms)
+"iA" = (/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms)
+"iB" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter)
+"iC" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter)
+"iD" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter)
+"iE" = (/obj/structure/extinguisher_cabinet{pixel_x = -25},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"iF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"iG" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"iH" = (/obj/structure/extinguisher_cabinet{pixel_x = -25},/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/surface/outpost/main/garage)
+"iI" = (/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
+"iJ" = (/turf/simulated/floor/plating,/area/surface/outpost/main/garage)
+"iK" = (/obj/structure/table/steel,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
+"iL" = (/obj/machinery/light,/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/mining_main/gen_room)
+"iM" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/north)
+"iN" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/north)
+"iO" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/north)
+"iP" = (/obj/structure/table/steel,/obj/item/weapon/storage/toolbox/mechanical,/obj/machinery/light/small{dir = 8; pixel_x = 0},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"iQ" = (/obj/machinery/power/terminal,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"iR" = (/obj/machinery/power/terminal,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"iS" = (/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/structure/cable/blue,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"iT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"iU" = (/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/portable_atmospherics/powered/scrubber,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"iV" = (/obj/machinery/atmospherics/binary/pump/on{dir = 4},/obj/machinery/portable_atmospherics/powered/pump/filled{pixel_x = 0},/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"iW" = (/obj/machinery/atmospherics/pipe/manifold/visible/yellow,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/meter,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"iX" = (/obj/machinery/atmospherics/omni/atmos_filter{tag_east = 2; tag_north = 7; tag_west = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"iY" = (/obj/machinery/atmospherics/omni/atmos_filter{tag_east = 2; tag_north = 5; tag_south = 6; tag_west = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"iZ" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"ja" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{tag = "icon-map (EAST)"; icon_state = "map"; dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"jb" = (/obj/machinery/light/small{dir = 4},/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"jc" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/highsecurity{name = "Telecommunication Hub"; req_one_access = list(10,48,65)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/techmaint,/area/surface/outpost/main/telecomms)
+"jd" = (/obj/structure/table/standard,/obj/item/weapon/crowbar/red,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/item/weapon/crowbar/red,/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter)
+"je" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light,/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter)
+"jf" = (/obj/machinery/bluespace_beacon,/obj/item/device/radio/beacon,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter)
+"jg" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Teleporter"; dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = 25},/turf/simulated/floor/tiled,/area/surface/outpost/main/teleporter)
+"jh" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"ji" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
+"jj" = (/obj/machinery/power/smes/buildable{charge = 1.5e+007; cur_coils = 3; input_attempt = 1; input_level = 750000; input_level_max = 750000; output_level = 750000; output_level_max = 750000; RCon_tag = "Outpost - Main Power Unit 1"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"jk" = (/obj/machinery/power/smes/buildable{charge = 1.5e+007; cur_coils = 3; input_attempt = 1; input_level = 750000; input_level_max = 750000; output_level = 750000; output_level_max = 750000; RCon_tag = "Outpost - Main Power Unit 2"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"jl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/closet/toolcloset,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"jm" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"jn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/gen_room)
+"jo" = (/obj/machinery/portable_atmospherics/canister/air,/obj/machinery/camera/network/engineering_outpost{c_tag = "ENG - Outpost Mining Atmospherics"; dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"jp" = (/obj/machinery/atmospherics/pipe/tank/phoron{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"jq" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 1; start_pressure = 740},/turf/simulated/floor/plating,/area/surface/outpost/mining_main/gen_room)
+"jr" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/gen_room)
+"js" = (/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/table/steel,/obj/machinery/cell_charger,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
+"jt" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
+"ju" = (/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
+"jv" = (/turf/simulated/wall,/area/surface/outpost/main/gen_room)
+"jw" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/command{name = "Teleport Access"; req_access = list(17)},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/teleporter)
+"jx" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/obj/effect/floor_decal/borderfloor/corner2{dir = 10},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"jy" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/obj/effect/floor_decal/borderfloor/corner2{dir = 5},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"jz" = (/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/obj/item/frame/light,/turf/simulated/floor/plating,/area/surface/outpost/main/garage)
+"jA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
+"jB" = (/obj/machinery/floodlight,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
+"jC" = (/obj/machinery/space_heater,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
+"jD" = (/obj/structure/cable,/obj/structure/cable/heavyduty{d2 = 2; icon_state = "0-2"},/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/gen_room)
+"jE" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/sif/planetuse,/area/surface/north)
+"jF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/north)
+"jG" = (/obj/structure/table/steel,/obj/machinery/recharger,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
+"jH" = (/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
+"jI" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
+"jJ" = (/obj/structure/sign/electricshock,/turf/simulated/wall,/area/surface/outpost/main/gen_room)
+"jK" = (/obj/structure/dispenser{phorontanks = 0},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Teleporter Access"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"jL" = (/obj/structure/closet/emcloset,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"jM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"jN" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"jO" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"jP" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Hallway North 2"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"jQ" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
+"jR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/surface/outpost/main/garage)
+"jS" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "2-4"},/turf/simulated/floor/tiled/sif/planetuse,/area/surface/north)
+"jT" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "4-8"},/turf/simulated/floor/tiled/sif/planetuse,/area/surface/north)
+"jU" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "icon-1-4"},/obj/structure/cable/heavyduty{icon_state = "1-8"; tag = "icon-1-4"},/turf/simulated/floor/tiled/sif/planetuse,/area/surface/north)
+"jV" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled/sif/planetuse,/area/surface/north)
+"jW" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/sif/planetuse,/area/surface/north)
+"jX" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "2-8"},/obj/structure/cable/heavyduty{icon_state = "4-8"},/obj/structure/cable/heavyduty{icon_state = "1-8"; tag = "icon-1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/north)
+"jY" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/heavyduty{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
+"jZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/heavyduty{icon_state = "2-8"},/obj/machinery/portable_atmospherics/powered/pump/filled{pixel_x = 0},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
+"ka" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
+"kb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
+"kc" = (/obj/machinery/door/airlock/engineering{name = "Generator Room"; req_one_access = list(12,47)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
+"kd" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"ke" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"kf" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"kg" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/glass,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"kh" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"ki" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"kj" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
+"kk" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
+"kl" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/garage)
+"km" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/garage)
+"kn" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
+"ko" = (/obj/structure/cable/heavyduty,/obj/machinery/power/terminal,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
+"kp" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
+"kq" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/blue/border,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"kr" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/blue/border,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"ks" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/blue/border,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"kt" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/blue/border,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"ku" = (/obj/machinery/status_display,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/surface/outpost/main)
+"kv" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"kw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"kx" = (/obj/machinery/newscaster{pixel_x = 30; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"ky" = (/obj/machinery/portable_atmospherics/powered/scrubber,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
+"kz" = (/obj/machinery/power/smes/buildable{charge = 1.5e+007; cur_coils = 3; input_attempt = 1; input_level = 750000; input_level_max = 750000; output_level = 750000; output_level_max = 750000; RCon_tag = "Outpost - Main Power Unit 1"},/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
+"kA" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/table/steel,/obj/item/weapon/storage/toolbox/electrical,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
+"kB" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/table/steel,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room)
+"kC" = (/obj/machinery/vending/snack,/turf/simulated/floor/tiled/dark,/area/surface/outpost/main)
+"kD" = (/obj/machinery/vending/cola,/turf/simulated/floor/tiled/dark,/area/surface/outpost/main)
+"kE" = (/obj/machinery/vending/cigarette,/turf/simulated/floor/tiled/dark,/area/surface/outpost/main)
+"kF" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main)
+"kG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/glass,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"kH" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"kI" = (/obj/machinery/portable_atmospherics/powered/pump/filled{pixel_x = 0},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
+"kJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
+"kK" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
+"kL" = (/obj/machinery/mech_recharger,/obj/effect/decal/mecha_wreckage/ripley,/obj/machinery/light,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
+"kM" = (/obj/item/inflatable/door/torn,/obj/item/weapon/screwdriver,/turf/simulated/floor,/area/surface/outpost/main/garage)
+"kN" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/surface/outpost/main/garage)
+"kO" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/surface/outpost/main/garage)
+"kP" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/gym)
+"kQ" = (/turf/simulated/wall,/area/surface/outpost/main/gym)
+"kR" = (/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"kS" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"kT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"kU" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"kV" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/computer/guestpass{pixel_x = 30; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"kW" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
+"kX" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/construction_area)
+"kY" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
+"kZ" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/gen_room/smes)
+"la" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes)
+"lb" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/bar)
+"lc" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/bar)
+"ld" = (/obj/structure/extinguisher_cabinet{pixel_y = 30},/turf/simulated/floor/holofloor/wood,/area/surface/outpost/main/gym)
+"le" = (/obj/structure/fitness/punchingbag,/turf/simulated/floor/holofloor/wood,/area/surface/outpost/main/gym)
+"lf" = (/obj/machinery/ai_status_display{pixel_y = 32},/turf/simulated/floor/holofloor/wood,/area/surface/outpost/main/gym)
+"lg" = (/obj/machinery/status_display{pixel_y = 32},/turf/simulated/floor/holofloor/wood,/area/surface/outpost/main/gym)
+"lh" = (/obj/machinery/vending/fitness,/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
+"li" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
+"lj" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/gym)
+"lk" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"ll" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"lm" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"ln" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/junction,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"lo" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"lp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"lq" = (/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 1; icon_state = "warningcorner"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"lr" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Hallway East"; dir = 9},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"ls" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/glass,/turf/simulated/floor/plating,/area/surface/outpost/main)
+"lt" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"lu" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"lv" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main)
+"lw" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main)
+"lx" = (/obj/structure/table/steel,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
+"ly" = (/obj/structure/table/steel,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/obj/random/technology_scanner,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
+"lz" = (/obj/machinery/alarm{pixel_y = 22},/obj/random/toolbox,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
+"lA" = (/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
+"lB" = (/obj/item/weapon/stool,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
+"lC" = (/turf/simulated/wall,/area/surface/outpost/main/gen_room/smes)
+"lD" = (/obj/structure/cable/heavyduty,/obj/machinery/power/terminal{dir = 4},/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/random/powercell,/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes)
+"lE" = (/obj/machinery/power/smes/buildable/outpost_substation{charge = 500000; input_attempt = 1; input_level = 150000; output_level = 150000; RCon_tag = "Outpost - Dorms"},/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes)
+"lF" = (/turf/simulated/wall,/area/surface/outpost/main/bar)
+"lG" = (/obj/structure/table/marble,/obj/machinery/chemical_dispenser/bar_alc/full,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"lH" = (/obj/machinery/button/remote/blast_door{id = "barout"; name = "Bar Shutters"; pixel_x = 0; pixel_y = 26},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"lI" = (/obj/structure/table/marble,/obj/machinery/door/blast/shutters{dir = 4; id = "barout"; layer = 3.1; name = "Bar Shutters"},/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"lJ" = (/obj/item/weapon/stool,/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"lK" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"lL" = (/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"lM" = (/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"lN" = (/obj/structure/extinguisher_cabinet{pixel_y = 30},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"lO" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main/corridor)
+"lP" = (/obj/effect/overlay/snow/floor,/obj/machinery/light/small,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main/corridor)
+"lQ" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/holofloor/wood,/area/surface/outpost/main/gym)
+"lR" = (/turf/simulated/floor/holofloor/wood,/area/surface/outpost/main/gym)
+"lS" = (/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
+"lT" = (/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
+"lU" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Gym"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/gym)
+"lV" = (/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"lW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"lX" = (/obj/effect/floor_decal/spline/plain{tag = "icon-spline_plain_full (NORTH)"; icon_state = "spline_plain_full"; dir = 1},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main)
+"lY" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"lZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"ma" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/glass,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"mb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"mc" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"md" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"me" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "main2_airlock_control"; name = "Main Access Console"; pixel_x = 26; pixel_y = -26; tag_exterior_door = "main2_airlock_exterior"; tag_interior_door = "main2_airlock_interior"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"mf" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main2_airlock_interior"; locked = 1; name = "Main Outpost Interior"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "main2_airlock_control"; name = "Main Access Button"; pixel_x = 6; pixel_y = -26; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"mg" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"mh" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"mi" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main2_airlock_exterior"; locked = 1; name = "Main Outpost Exterior"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "main2_airlock_control"; name = "Main Access Button"; pixel_x = 0; pixel_y = -24; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"mj" = (/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main)
+"mk" = (/obj/structure/closet/toolcloset,/obj/item/device/flashlight/maglight,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
+"ml" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
+"mm" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
+"mn" = (/obj/machinery/light/small{dir = 8; pixel_x = 0},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes)
+"mo" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes)
+"mp" = (/obj/structure/table/marble,/obj/machinery/chemical_dispenser/bar_soft/full,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Bar West"; dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"mq" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"mr" = (/obj/structure/table/marble,/obj/machinery/cash_register/civilian{dir = 8; icon_state = "register_idle"; tag = "icon-register_idle (WEST)"},/obj/machinery/door/blast/shutters{dir = 4; id = "barout"; layer = 3.1; name = "Bar Shutters"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"ms" = (/obj/item/weapon/stool/padded,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"mt" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"mu" = (/obj/structure/bed/chair/wood,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"mv" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"mw" = (/obj/structure/table/woodentable,/obj/machinery/microwave,/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"mx" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/surface/outpost/main/corridor)
+"my" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/corridor)
+"mz" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main4_airlock_exterior"; locked = 1; name = "Main Outpost Exterior"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "main4_airlock_control"; name = "Main Access Button"; pixel_x = 32; pixel_y = 0; req_access = null},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/corridor)
+"mA" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/corridor)
+"mB" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/gym)
+"mC" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
+"mD" = (/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
+"mE" = (/obj/effect/floor_decal/borderfloor/corner{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
+"mF" = (/obj/structure/table/standard,/obj/machinery/recharger,/obj/item/weapon/wrench,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
+"mG" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"mH" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"mI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"mJ" = (/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"mK" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"mL" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/space_heater,/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/green/bordercorner,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"mM" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/space_heater,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"mN" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"mO" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/light,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"mP" = (/obj/machinery/light/small{dir = 8; pixel_x = 0},/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main)
+"mQ" = (/obj/structure/closet/crate,/obj/item/weapon/crowbar/red,/obj/item/frame/light,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
+"mR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
+"mS" = (/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes)
+"mT" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes)
+"mU" = (/obj/machinery/light{dir = 8},/obj/machinery/vending/boozeomat{req_access = null},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"mV" = (/obj/structure/table/marble,/obj/machinery/door/blast/shutters{dir = 4; id = "barout"; layer = 3.1; name = "Bar Shutters"},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"mW" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"mX" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"mY" = (/obj/structure/table/woodentable,/obj/item/weapon/book/codex/lore/vir,/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"mZ" = (/obj/structure/table/woodentable,/obj/item/device/paicard,/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"na" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/box/donkpockets,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Bar East"; dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"nb" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/corridor)
+"nc" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Corridor Access North"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"nd" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"ne" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"nf" = (/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
+"ng" = (/obj/structure/fitness/weightlifter,/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
+"nh" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/regular,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
+"ni" = (/obj/structure/closet/emcloset,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Hallway South 1"; dir = 4},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"nj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"nk" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"nl" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/restroom)
+"nm" = (/turf/simulated/wall,/area/surface/outpost/main/restroom)
+"nn" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock{name = "Unisex Restrooms"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"no" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
+"np" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
+"nq" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
+"nr" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
+"ns" = (/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 36; pixel_y = 1},/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
+"nt" = (/obj/structure/sign/electricshock,/turf/simulated/wall,/area/surface/outpost/main/gen_room/smes)
+"nu" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/engineering{name = "SMES Room"; req_one_access = list(12,47)},/turf/simulated/floor/plating,/area/surface/outpost/main/gen_room/smes)
+"nv" = (/obj/machinery/smartfridge/drinks,/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"nw" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"nx" = (/obj/structure/table/marble,/obj/machinery/door/blast/shutters{dir = 4; id = "barout"; layer = 3.1; name = "Bar Shutters"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"ny" = (/obj/item/weapon/stool/padded,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"nz" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"nA" = (/obj/structure/bed/chair/wood{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"nB" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"nC" = (/obj/structure/table/woodentable,/obj/machinery/recharger,/obj/machinery/newscaster{pixel_x = 30; pixel_y = 0},/obj/item/clothing/head/hardhat/orange,/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"nD" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"nE" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"nF" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"nG" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
+"nH" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
+"nI" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
+"nJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
+"nK" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
+"nL" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/cups,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
+"nM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/glass,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"nN" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"nO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"nP" = (/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"nQ" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"nR" = (/obj/structure/toilet{dir = 8},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"nS" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
+"nT" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
+"nU" = (/obj/structure/cable/blue{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/plating,/area/surface/outpost/main/construction_area)
+"nV" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
+"nW" = (/turf/simulated/wall,/area/surface/outpost/main/construction_area)
+"nX" = (/obj/structure/closet/emcloset,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"nY" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"nZ" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"oa" = (/obj/machinery/door/window/eastright{name = "Bar"; req_access = null; req_one_access = list(25,43,67)},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"ob" = (/obj/structure/cable/blue{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/surface/outpost/main/bar)
+"oc" = (/obj/machinery/alarm{dir = 1; pixel_y = -25},/turf/simulated/floor/wood,/area/surface/outpost/main/bar)
+"od" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main4_airlock_interior"; locked = 1; name = "Main Outpost Interior"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "main4_airlock_control"; name = "Main Access Button"; pixel_x = 32; pixel_y = 6; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"oe" = (/obj/structure/closet/athletic_mixed,/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
+"of" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
+"og" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
+"oh" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Gym"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
+"oi" = (/obj/item/weapon/stool/padded,/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
+"oj" = (/obj/structure/reagent_dispensers/water_cooler/full,/turf/simulated/floor/tiled,/area/surface/outpost/main/gym)
+"ok" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/lasertag/red,/obj/item/stack/flag/red,/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main)
+"ol" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"om" = (/obj/machinery/ai_status_display,/turf/simulated/wall,/area/surface/outpost/main/restroom)
+"on" = (/obj/structure/closet/secure_closet/personal,/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"oo" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"op" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"oq" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/dorms)
+"or" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/blue{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/glass,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
+"os" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/surface/outpost/main/construction_area)
+"ot" = (/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"ou" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"ov" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/surface/outpost/main/bar)
+"ow" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Bar"},/obj/structure/cable/blue{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/surface/outpost/main/bar)
+"ox" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"oy" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"oz" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"oA" = (/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "main4_airlock_control"; name = "Main Access Console"; pixel_x = 0; pixel_y = 26; tag_exterior_door = "main4_airlock_exterior"; tag_interior_door = "main4_airlock_interior"},/obj/effect/floor_decal/industrial/warning/corner{dir = 1; icon_state = "warningcorner"},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"oB" = (/obj/structure/extinguisher_cabinet{pixel_y = 30},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"oC" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Gym"},/obj/structure/cable/blue{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/steel_grid,/area/surface/outpost/main/gym)
+"oD" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/lasertag/blue,/obj/item/stack/flag/blue,/obj/structure/extinguisher_cabinet{pixel_x = -25},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main)
+"oE" = (/obj/structure/closet/secure_closet/personal,/obj/structure/extinguisher_cabinet{pixel_x = -25},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"oF" = (/obj/structure/table/bench/marble,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"oG" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"oH" = (/obj/machinery/recharge_station,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"oI" = (/obj/effect/decal/cleanable/dirt,/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/dorms)
+"oJ" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/dorms)
+"oK" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/dorms)
+"oL" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Dorms Access"; dir = 8},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/dorms)
+"oM" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/glass,/turf/simulated/floor/plating,/area/surface/outpost/main/dorms)
+"oN" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"oO" = (/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"oP" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"oQ" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/light{dir = 1},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"oR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/firealarm{pixel_y = 24},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/obj/effect/floor_decal/borderfloor/corner2{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"oS" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"oT" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"oU" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/obj/effect/floor_decal/borderfloor/corner2{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"oV" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 4},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"oW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"oX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light{dir = 1},/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"oY" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"oZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"pa" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"pb" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/surface/outpost/main/corridor)
+"pc" = (/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"pd" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"pe" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"pf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"pg" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/junction/yjunction,/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"ph" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"pi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"pj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"pk" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"pl" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/status_display{pixel_y = 32},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"pm" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Corridor West"; dir = 2},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"pn" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/status_display{pixel_y = 32},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"po" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"pp" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"pq" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"pr" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"ps" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/obj/effect/floor_decal/borderfloor/corner2{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"pt" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"pu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"pv" = (/obj/structure/disposalpipe/junction/yjunction{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"pw" = (/obj/structure/closet/secure_closet/personal,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"px" = (/obj/structure/mirror{pixel_x = 28},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"py" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/dorms)
+"pz" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main1_airlock_exterior"; locked = 1; name = "Main Outpost Exterior"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "main1_airlock_control"; name = "Main Access Button"; pixel_x = 0; pixel_y = -24; req_access = null},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/dorms)
+"pA" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/dorms)
+"pB" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"pC" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main1_airlock_interior"; locked = 1; name = "Main Outpost Interior"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "main1_airlock_control"; name = "Main Access Button"; pixel_x = -6; pixel_y = -26; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"pD" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "main1_airlock_control"; name = "Main Access Console"; pixel_x = -26; pixel_y = -26; tag_exterior_door = "main1_airlock_exterior"; tag_interior_door = "main1_airlock_interior"},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"pE" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"pF" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"pG" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"pH" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"pI" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"pJ" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"pK" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"pL" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"pM" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"pN" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/obj/effect/floor_decal/steeldecal/steel_decals4,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"pO" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/glass,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"pP" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"pQ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"pR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"pS" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"pT" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"pU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"pV" = (/obj/effect/floor_decal/spline/plain{tag = "icon-spline_plain_full (NORTH)"; icon_state = "spline_plain_full"; dir = 1},/obj/structure/showcase{desc = "It looks almost lifelike."; icon = 'icons/obj/statue.dmi'; icon_state = "hos"; name = "Statue"; pixel_y = 2},/turf/simulated/floor/tiled/techfloor,/area/surface/outpost/main/corridor)
+"pW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"pX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"pY" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/corridor)
+"pZ" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"qa" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"qb" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"qc" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"qd" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"qe" = (/obj/structure/closet/secure_closet/personal,/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"qf" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"qg" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"qh" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"qi" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/dorms)
+"qj" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled/steel,/area/surface/outpost/main/dorms)
+"qk" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"ql" = (/obj/structure/closet/wardrobe/mixed,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/machinery/light,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"qm" = (/obj/machinery/alarm{dir = 1; pixel_y = -25},/obj/structure/closet/crate,/obj/item/weapon/bedsheet,/obj/item/weapon/bedsheet/blue,/obj/item/weapon/bedsheet/brown,/obj/item/weapon/bedsheet/green,/obj/item/weapon/bedsheet/orange,/obj/item/weapon/bedsheet/purple,/obj/item/weapon/bedsheet/red,/obj/item/weapon/bedsheet/yellow,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/effect/floor_decal/borderfloor/corner2{dir = 9},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"qn" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"qo" = (/obj/machinery/camera/network/main_outpost{c_tag = "MO - Dorms Hallway West"; dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/effect/floor_decal/borderfloor/corner2,/obj/effect/floor_decal/corner/green/bordercorner2,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"qp" = (/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/structure/cable/blue,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"qq" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"qr" = (/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"qs" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"qt" = (/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -25},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"qu" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Dorms Hallway East"; dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/effect/floor_decal/borderfloor/corner2{dir = 9},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"qv" = (/obj/machinery/alarm{dir = 1; pixel_y = -25},/obj/machinery/vending/cigarette,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/effect/floor_decal/borderfloor/corner2,/obj/effect/floor_decal/corner/green/bordercorner2,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"qw" = (/obj/machinery/vending/snack,/obj/machinery/light,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"qx" = (/obj/machinery/vending/cola,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"qy" = (/obj/machinery/vending/coffee,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"qz" = (/obj/machinery/lapvend,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"qA" = (/turf/simulated/wall,/area/surface/outpost/main/corridor)
+"qB" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"qC" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"qD" = (/obj/machinery/camera/network/main_outpost{c_tag = "MO - Corridor West"; dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"qE" = (/obj/machinery/ai_status_display{pixel_y = -32},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"qF" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/borderfloor/corner{dir = 8},/obj/effect/floor_decal/corner/green/bordercorner{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"qG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"qH" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"qI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"qJ" = (/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/green/bordercorner,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"qK" = (/obj/machinery/light,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"qL" = (/obj/machinery/ai_status_display{pixel_y = -32},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Hallway West"; dir = 4},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"qM" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"qN" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"qO" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/effect/floor_decal/borderfloor/corner2{dir = 9},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"qP" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"qQ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"qR" = (/obj/structure/disposalpipe/segment,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"qS" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"; name = "Clothing Storage"},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"qT" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"qU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"qV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"qW" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock{name = "Unisex Showers"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"qX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"qY" = (/obj/item/weapon/bikehorn/rubberducky,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"qZ" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"ra" = (/turf/simulated/wall,/area/surface/outpost/main/dorms)
+"rb" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/light,/obj/structure/closet/emcloset,/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"rc" = (/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "main3_airlock_control"; name = "Main Access Console"; pixel_x = 0; pixel_y = -26; tag_exterior_door = "main3_airlock_exterior"; tag_interior_door = "main3_airlock_interior"},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"rd" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"re" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"rf" = (/obj/structure/closet/wardrobe/mixed,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/machinery/light,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main)
+"rg" = (/obj/structure/closet/wardrobe/xenos,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main)
+"rh" = (/obj/structure/closet/wardrobe/suit,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/suit/storage/hooded/wintercoat,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main)
+"ri" = (/obj/structure/closet/wardrobe/grey,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main)
+"rj" = (/obj/machinery/mech_recharger,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main)
+"rk" = (/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/item/weapon/storage/toolbox/mechanical,/obj/structure/table/steel,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"rl" = (/obj/machinery/mech_recharger,/obj/machinery/light,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main)
+"rm" = (/turf/simulated/wall,/area/surface/outpost/main)
+"rn" = (/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"ro" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Hallway South 2"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"rp" = (/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main)
+"rq" = (/obj/machinery/status_display,/turf/simulated/wall,/area/surface/outpost/main/restroom)
+"rr" = (/obj/structure/undies_wardrobe,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"rs" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"rt" = (/obj/structure/table/standard,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/random/soap,/obj/random/soap,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 12; pixel_y = -24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"ru" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"rv" = (/obj/structure/bed/double/padded,/obj/item/weapon/bedsheet/purpledouble,/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms)
+"rw" = (/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms)
+"rx" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms)
+"ry" = (/obj/machinery/door/airlock{id_tag = "modorm1"; name = "Room 1"},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"rz" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"rA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"rB" = (/obj/machinery/door/airlock{id_tag = "modorm2"; name = "Room 2"},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"rC" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms)
+"rD" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/green,/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms)
+"rE" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/yellow,/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms)
+"rF" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms)
+"rG" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{id_tag = "modorm5"; name = "Room 5"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"rH" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{id_tag = "modorm6"; name = "Room 6"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"rI" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms)
+"rJ" = (/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms)
+"rK" = (/obj/item/weapon/bedsheet/bluedouble,/obj/structure/bed/double/padded,/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms)
+"rL" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/surface/outpost/main/corridor)
+"rM" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main3_airlock_interior"; locked = 1; name = "Main Outpost Interior"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "main3_airlock_control"; name = "Main Access Button"; pixel_x = -32; pixel_y = -6; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"rN" = (/turf/simulated/wall/r_wall,/area/surface/outpost/main/pool)
+"rO" = (/turf/simulated/wall,/area/surface/outpost/main/pool)
+"rP" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Pool"},/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/pool)
+"rQ" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/main/pool)
+"rR" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Pool"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/pool)
+"rS" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock{name = "Unisex Restrooms"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"rT" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Unisex Showers"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/restroom)
+"rU" = (/obj/structure/table/standard,/obj/machinery/alarm{dir = 1; pixel_y = -25},/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms)
+"rV" = (/obj/item/weapon/stool,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/light,/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms)
+"rW" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm1"; name = "Door Bolt Control"; pixel_x = 25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms)
+"rX" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"rY" = (/obj/machinery/button/remote/airlock{id = "modorm2"; name = "Door Bolt Control"; pixel_x = -25; pixel_y = 0; specialfunctions = 4},/obj/item/weapon/stool/padded,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms)
+"rZ" = (/obj/structure/table/standard,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/light,/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms)
+"sa" = (/obj/structure/table/standard,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = -32; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/light,/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms)
+"sb" = (/obj/item/weapon/stool/padded,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm5"; name = "Door Bolt Control"; pixel_x = 25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/carpet/bcarpet,/area/surface/outpost/main/dorms)
+"sc" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"sd" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm6"; name = "Door Bolt Control"; pixel_x = -25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms)
+"se" = (/obj/item/weapon/stool/padded,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/light,/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms)
+"sf" = (/obj/structure/table/standard,/obj/machinery/alarm{dir = 1; pixel_y = -25},/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms)
+"sg" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/surface/outpost/main/corridor)
+"sh" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/corridor)
+"si" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"sj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/newscaster{pixel_y = 30},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"sk" = (/obj/machinery/space_heater,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"sl" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"sm" = (/obj/machinery/light/spot{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"sn" = (/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"so" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"sp" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"sq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Pool North"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"sr" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"ss" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"st" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"su" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light/spot{dir = 1},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"sv" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"sw" = (/obj/structure/closet/athletic_mixed,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"sx" = (/obj/structure/extinguisher_cabinet{pixel_y = 30},/obj/structure/closet/athletic_mixed,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"sy" = (/obj/machinery/newscaster{pixel_y = 30},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"sz" = (/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"sA" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/corridor)
+"sB" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/corridor)
+"sC" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Corridor Access South"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/main/corridor)
+"sD" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/pool)
+"sE" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"sF" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"sG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"sH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"sI" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"sJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"sK" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"sL" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/purple,/obj/machinery/alarm{dir = 1; pixel_y = -25},/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms)
+"sM" = (/obj/machinery/door/airlock{id_tag = "modorm3"; name = "Room 3"},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"sN" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"sO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Dorms Hallway South 1"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"sP" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{id_tag = "modorm4"; name = "Room 4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"sQ" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms)
+"sR" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/red,/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms)
+"sS" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/red,/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms)
+"sT" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms)
+"sU" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{id_tag = "modorm7"; name = "Room 7"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"sV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera/network/main_outpost{c_tag = "MO - Dorms Hallway South 2"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"sW" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{id_tag = "modorm8"; name = "Room 8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/main/dorms)
+"sX" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/blue,/obj/machinery/alarm{dir = 1; pixel_y = -25},/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms)
+"sY" = (/obj/machinery/door/airlock/mining{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "main3_airlock_exterior"; locked = 1; name = "Main Outpost Exterior"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "main3_airlock_control"; name = "Main Access Button"; pixel_x = -32; pixel_y = 0; req_access = null},/turf/simulated/floor/tiled/steel_dirty,/area/surface/outpost/main/corridor)
+"sZ" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/main/pool)
+"ta" = (/obj/structure/table/glass,/obj/item/device/paicard,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"tb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"tc" = (/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"td" = (/obj/effect/floor_decal/spline/plain{dir = 9},/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool)
+"te" = (/obj/effect/floor_decal/spline/plain{dir = 1},/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool)
+"tf" = (/obj/effect/floor_decal/spline/plain{dir = 1},/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool)
+"tg" = (/obj/effect/floor_decal/spline/plain{dir = 5},/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool)
+"th" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"ti" = (/obj/structure/table/glass,/obj/item/weapon/inflatable_duck,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"tj" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/light,/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms)
+"tk" = (/obj/item/weapon/stool/padded,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm3"; name = "Door Bolt Control"; pixel_x = 25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/carpet/purcarpet,/area/surface/outpost/main/dorms)
+"tl" = (/obj/item/weapon/stool/padded,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm4"; name = "Door Bolt Control"; pixel_x = -25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms)
+"tm" = (/obj/structure/table/standard,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/light,/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms)
+"tn" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/light,/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms)
+"to" = (/obj/item/weapon/stool,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm7"; name = "Door Bolt Control"; pixel_x = 25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/carpet,/area/surface/outpost/main/dorms)
+"tp" = (/obj/item/weapon/stool/padded,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/button/remote/airlock{id = "modorm8"; name = "Door Bolt Control"; pixel_x = -25; pixel_y = 0; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms)
+"tq" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/light,/turf/simulated/floor/carpet/blucarpet,/area/surface/outpost/main/dorms)
+"tr" = (/obj/effect/overlay/snow/floor,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/main/corridor)
+"ts" = (/obj/effect/floor_decal/spline/plain{dir = 8},/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool)
+"tt" = (/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool)
+"tu" = (/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool)
+"tv" = (/obj/effect/floor_decal/spline/plain{dir = 4},/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool)
+"tw" = (/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = -32; pixel_y = 0},/obj/item/weapon/stool/padded,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Pool West"; dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"tx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/hologram/holopad,/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"ty" = (/obj/effect/floor_decal/spline/plain{dir = 9},/obj/item/weapon/beach_ball,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"tz" = (/obj/effect/floor_decal/spline/plain{dir = 1},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"tA" = (/obj/effect/floor_decal/spline/plain{dir = 5},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"tB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/hologram/holopad,/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"tC" = (/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32; pixel_y = 0},/obj/item/weapon/stool/padded,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Pool East"; dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"tD" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/snow/sif/planetuse,/area/surface/northwest)
+"tE" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/snow/sif/planetuse,/area/surface/center)
+"tF" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/center)
+"tG" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/obj/effect/zone_divider,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/center)
+"tH" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/effect/zone_divider,/turf/simulated/floor/plating,/area/surface/outpost/main/pool)
+"tI" = (/obj/structure/table/glass,/obj/item/weapon/book/codex/lore/vir,/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"tJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/table/glass,/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"tK" = (/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"tL" = (/obj/effect/floor_decal/spline/plain{dir = 8},/obj/effect/zone_divider,/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool)
+"tM" = (/obj/effect/zone_divider,/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool)
+"tN" = (/obj/effect/floor_decal/spline/plain{dir = 10},/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"tO" = (/obj/effect/floor_decal/spline/plain,/obj/machinery/hologram/holopad,/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"tP" = (/obj/effect/floor_decal/spline/plain{dir = 6},/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"tQ" = (/obj/effect/zone_divider,/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool)
+"tR" = (/obj/effect/floor_decal/spline/plain{dir = 4},/obj/effect/zone_divider,/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool)
+"tS" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/table/glass,/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"tT" = (/obj/structure/table/glass,/obj/effect/zone_divider,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"tU" = (/obj/effect/zone_divider,/turf/simulated/mineral/sif,/area/surface/center)
+"tV" = (/obj/effect/zone_divider,/turf/simulated/mineral/sif,/area/surface/northeast)
+"tW" = (/turf/unsimulated/wall/planetary/sif,/area/surface/west)
+"tX" = (/turf/simulated/floor/outdoors/snow/sif/planetuse,/area/surface/west)
+"tY" = (/turf/simulated/floor/outdoors/snow/sif/planetuse,/area/surface/center)
+"tZ" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/center)
+"ua" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/center)
+"ub" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"uc" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"ud" = (/turf/simulated/mineral/sif,/area/surface/center)
+"ue" = (/turf/simulated/mineral/sif,/area/surface/east)
+"uf" = (/turf/unsimulated/wall/planetary/sif,/area/surface/east)
+"ug" = (/obj/effect/floor_decal/spline/plain{dir = 10},/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool)
+"uh" = (/obj/effect/floor_decal/spline/plain,/turf/simulated/floor/water/pool,/area/surface/outpost/main/pool)
+"ui" = (/obj/effect/floor_decal/spline/plain,/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool)
+"uj" = (/obj/effect/floor_decal/spline/plain{dir = 6},/turf/simulated/floor/water/deep/pool,/area/surface/outpost/main/pool)
+"uk" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/surface/outpost/main/pool)
+"ul" = (/obj/structure/closet/emcloset,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency,/obj/item/clothing/suit/storage/hooded/wintercoat,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"um" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/surface/outpost/main/pool)
+"un" = (/obj/structure/table/glass,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"uo" = (/obj/machinery/light/spot,/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"up" = (/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"uq" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"ur" = (/obj/structure/table/glass,/obj/item/inflatable{pixel_x = 6; pixel_y = 6},/obj/item/inflatable{pixel_x = 2; pixel_y = 2},/obj/item/inflatable{pixel_x = -2; pixel_y = -3},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"us" = (/obj/effect/overlay/snow/floor,/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "surface_dock_1"; name = "shuttle bay controller"; pixel_x = -26; pixel_y = 0; tag_door = "surface_dock_1_door"},/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/main/corridor)
+"ut" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/center)
+"uu" = (/obj/effect/overlay/snow/floor,/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "surface_dock_2"; name = "shuttle bay controller"; pixel_x = 26; pixel_y = 0; tag_door = "surface_dock_2_door"},/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/main/corridor)
+"uv" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"uw" = (/obj/structure/table/glass,/obj/machinery/camera/network/main_outpost{c_tag = "MO - Pool South"; dir = 1},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"ux" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/main/pool)
+"uy" = (/obj/machinery/light{dir = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/main/corridor)
+"uz" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/center)
+"uA" = (/obj/effect/floor_decal/industrial/warning,/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/center)
+"uB" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/center)
+"uC" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/center)
+"uD" = (/turf/simulated/floor/plating/sif/planetuse,/area/surface/center)
+"uE" = (/turf/simulated/floor/plating/sif/planetuse,/area/shuttle/shuttle1/planet)
+"uF" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/center)
+"uG" = (/turf/simulated/floor/plating/sif/planetuse,/area/shuttle/shuttle2/planet)
+"uH" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "icon-1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/center)
+"uI" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/heavyduty{icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/center)
+"uJ" = (/obj/structure/cable/heavyduty{icon_state = "2-8"},/obj/effect/overlay/snow/floor,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/center)
+"uK" = (/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/center)
+"uL" = (/turf/simulated/floor/water,/area/surface/east)
+"uM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/center)
+"uN" = (/obj/machinery/light/small,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/research/xenoresearch)
+"uO" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/research/xenoresearch)
+"uP" = (/obj/structure/sign/warning/biohazard,/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch)
+"uQ" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch)
+"uR" = (/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "research_airlock_exterior"; locked = 1; name = "Research Exterior Airlock"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "research_airlock_control"; name = "Research Access Button"; pixel_x = -24; pixel_y = 0; req_access = null},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/steel,/area/surface/outpost/research/xenoresearch)
+"uS" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch)
+"uT" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/emergencystorage)
+"uU" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/smes)
+"uV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes)
+"uW" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/restroom)
+"uX" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/machinery/status_display{pixel_x = -32},/turf/simulated/floor/tiled/steel,/area/surface/outpost/research/xenoresearch)
+"uY" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
+"uZ" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/computer/guestpass{pixel_x = 30; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
+"va" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch)
+"vb" = (/turf/simulated/wall,/area/surface/outpost/research/xenoresearch)
+"vc" = (/obj/item/weapon/storage/toolbox/emergency,/obj/machinery/light/small{dir = 1},/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/emergencystorage)
+"vd" = (/obj/machinery/floodlight,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/emergencystorage)
+"ve" = (/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/smes)
+"vf" = (/obj/machinery/power/smes/buildable/outpost_substation{charge = 500000; input_attempt = 1; input_level = 150000; output_level = 150000; RCon_tag = "Outpost - Research"},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes)
+"vg" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/effect/decal/cleanable/dirt,/obj/machinery/power/terminal{dir = 8},/obj/structure/cable/heavyduty,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes)
+"vh" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/light/small{dir = 4},/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes)
+"vi" = (/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/restroom)
+"vj" = (/obj/structure/toilet{dir = 4},/obj/structure/window/reinforced/tinted,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom)
+"vk" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom)
+"vl" = (/obj/machinery/light{dir = 1},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom)
+"vm" = (/obj/structure/sink{pixel_y = 16},/obj/structure/mirror{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom)
+"vn" = (/obj/structure/table/standard,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/item/weapon/towel,/obj/random/soap,/obj/random/soap,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom)
+"vo" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
+"vp" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
+"vq" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Research Airlock"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
+"vr" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/ai_status_display{pixel_y = 32},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
+"vs" = (/obj/structure/table/reinforced,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
+"vt" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
+"vu" = (/obj/structure/table/reinforced,/obj/machinery/light{dir = 1},/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/pen,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
+"vv" = (/obj/item/weapon/storage/box/donkpockets,/obj/structure/table/reinforced,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
+"vw" = (/obj/machinery/microwave,/obj/structure/table/reinforced,/obj/machinery/status_display{pixel_y = 32},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
+"vx" = (/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch)
+"vy" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch)
+"vz" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch)
+"vA" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/center)
+"vB" = (/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/east)
+"vC" = (/turf/simulated/floor/outdoors/rocks/sif/planetuse,/area/surface/east)
+"vD" = (/turf/simulated/floor/water/shoreline/corner{tag = "icon-shorelinecorner (WEST)"; icon_state = "shorelinecorner"; dir = 8},/area/surface/east)
+"vE" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (NORTHEAST)"; icon_state = "shoreline"; dir = 5},/area/surface/east)
+"vF" = (/obj/item/clothing/glasses/meson,/obj/structure/closet/hydrant{pixel_x = -32},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/emergencystorage)
+"vG" = (/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/emergencystorage)
+"vH" = (/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/emergencystorage)
+"vI" = (/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/item/weapon/cell/high,/obj/item/weapon/weldpack,/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes)
+"vJ" = (/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/sensor{long_range = 1; name_tag = "Research Outpost"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes)
+"vK" = (/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes)
+"vL" = (/obj/machinery/recharge_station,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom)
+"vM" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom)
+"vN" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom)
+"vO" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom)
+"vP" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom)
+"vQ" = (/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "research_airlock_interior"; locked = 1; name = "Research Interior Airlock"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "research_airlock_control"; name = "Research Access Button"; pixel_x = -26; pixel_y = 6; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
+"vR" = (/obj/structure/disposalpipe/segment,/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
+"vS" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
+"vT" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
+"vU" = (/obj/structure/table/reinforced,/obj/item/device/multitool,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
+"vV" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
+"vW" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
+"vX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch)
+"vY" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch)
+"vZ" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/east)
+"wa" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (WEST)"; icon_state = "shoreline"; dir = 8},/area/surface/east)
+"wb" = (/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/emergencystorage)
+"wc" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock{name = "Emergency Storage"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/emergencystorage)
+"wd" = (/obj/machinery/door/firedoor/border_only,/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,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/engineering{name = "SMES Room"; req_one_access = list(12,47)},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/smes)
+"we" = (/obj/machinery/door/firedoor/border_only,/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,/obj/machinery/door/airlock{name = "Research Restroom"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/restroom)
+"wf" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wg" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "research_airlock_control"; name = "Research Access Console"; pixel_x = -26; pixel_y = 26; tag_exterior_door = "research_airlock_exterior"; tag_interior_door = "research_airlock_interior"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wh" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wi" = (/obj/structure/disposalpipe/segment,/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
+"wj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
+"wk" = (/obj/structure/bed/chair{dir = 4},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
+"wl" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
+"wm" = (/obj/structure/bed/chair{dir = 8},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
+"wn" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch)
+"wo" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch)
+"wp" = (/obj/machinery/light,/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/main/corridor)
+"wq" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/center)
+"wr" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/center)
+"ws" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/center)
+"wt" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/closet/emcloset,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"ww" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wx" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Research Hallway 1"; dir = 2},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wy" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wA" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wD" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wF" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Research Hallway 2"; dir = 2},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wG" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wI" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wK" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wM" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wN" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wQ" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wR" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wS" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/main/corridor)
+"wT" = (/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wU" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wW" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wX" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/mob/living/bot/secbot/slime,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wY" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"wZ" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"xa" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"xb" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"xc" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"xd" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"xe" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"xf" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"xg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"xh" = (/obj/structure/disposalpipe/junction{dir = 8},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"xi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"xj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"xk" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"xl" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"xm" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Research Hallway 4"; dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"xn" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"xo" = (/turf/simulated/floor/water/deep,/area/surface/east)
+"xp" = (/obj/structure/bed/chair,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"xq" = (/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"xr" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/bed/chair,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"xs" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/xenobiology)
+"xt" = (/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/structure/disposalpipe/segment,/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "xeno_airlock_exterior"; locked = 1; name = "Xenobiology External Airlock"; req_access = list(55)},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "xeno_airlock_control"; name = "Xenobiology Access Button"; pixel_x = -26; pixel_y = 0; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"xu" = (/obj/structure/bed/chair,/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for containment."; id = "xenobiocontain"; name = "Containment Switch"; pixel_x = -28; pixel_y = 0; req_access = null},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"xv" = (/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"xw" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/bed/chair,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"xx" = (/obj/structure/table/glass,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"xy" = (/obj/structure/sign/greencross{desc = "White cross in a green field, you can get medical aid here."; name = "First-Aid"},/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch)
+"xz" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_medical,/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/surface/outpost/research/xenoresearch)
+"xA" = (/obj/machinery/space_heater,/obj/structure/extinguisher_cabinet{pixel_x = -25},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"xB" = (/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Research Hallway 3"; dir = 1},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"xC" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/xenoflora)
+"xD" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_research{name = "Xenoflora Research"; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"xE" = (/obj/machinery/smartfridge,/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/xenoflora)
+"xF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"xG" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch)
+"xH" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch)
+"xI" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; external_pressure_bound = 140; external_pressure_bound_default = 140; icon_state = "map_vent_out"; pressure_checks = 1; pressure_checks_default = 1; use_power = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/sif/planetuse,/area/surface/outpost/research/xenoresearch/xenoflora)
+"xJ" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "xenobiocontain"; name = "Containment Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
+"xK" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "xenobiocontain"; name = "Containment Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
+"xL" = (/obj/structure/sign/warning/biohazard,/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/xenobiology)
+"xM" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/structure/closet/l3closet/scientist,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"xN" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"xO" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/structure/window/reinforced,/obj/machinery/shower{pixel_y = 3},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoresearch/xenobiology)
+"xP" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "xenobiocontain"; name = "Containment Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
+"xQ" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "xenobiocontain"; name = "Containment Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
+"xR" = (/obj/structure/bed/roller,/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"xS" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"xT" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"xU" = (/obj/machinery/camera/network/research_outpost{c_tag = "OPR - First Aid Station"; dir = 2},/obj/structure/bed/chair/office/light{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"xV" = (/obj/structure/table/glass,/obj/machinery/recharger,/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = 25; pixel_y = 0},/obj/effect/floor_decal/corner/paleblue{dir = 6},/obj/item/device/defib_kit/loaded,/obj/item/device/radio{frequency = 1487; icon_state = "med_walkietalkie"; name = "Medbay Emergency Radio Link"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"xW" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora)
+"xX" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora)
+"xY" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"xZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"ya" = (/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"yb" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/universal,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora)
+"yc" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora)
+"yd" = (/obj/machinery/computer/operating{name = "Xenobiology Operating Computer"},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"ye" = (/obj/machinery/optable{name = "Xenobiology Operating Table"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"yf" = (/obj/structure/table/standard,/obj/item/weapon/surgical/scalpel{pixel_y = 12},/obj/item/weapon/surgical/circular_saw,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"yg" = (/obj/structure/table/standard,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/weldingtool,/obj/item/clothing/head/welding,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"yh" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/structure/closet/l3closet/scientist,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"yi" = (/obj/effect/floor_decal/industrial/warning,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"yj" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenobiology Access"; dir = 1},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"yk" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/pen/blue{pixel_x = -5; pixel_y = -1},/obj/item/weapon/pen/red{pixel_x = -1; pixel_y = 3},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"yl" = (/obj/structure/table/standard,/obj/item/weapon/folder/red{pixel_y = 3},/obj/item/weapon/folder/blue{pixel_x = 5},/obj/item/weapon/reagent_containers/spray/cleaner,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"ym" = (/obj/structure/table/standard,/obj/item/weapon/clipboard,/obj/item/weapon/folder,/obj/item/weapon/pen,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"yn" = (/obj/structure/table/standard,/obj/machinery/reagentgrinder,/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"yo" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/effect/floor_decal/corner/paleblue{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"yp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"yq" = (/obj/machinery/newscaster{pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/effect/floor_decal/corner/paleblue,/obj/structure/table/rack,/obj/item/weapon/storage/firstaid/toxin{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/firstaid/fire{pixel_x = 0; pixel_y = 0},/obj/item/weapon/storage/firstaid/adv{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/firstaid/o2{pixel_x = 0; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"yr" = (/obj/machinery/atmospherics/unary/freezer{dir = 2; icon_state = "freezer"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
+"ys" = (/obj/machinery/atmospherics/unary/heater{dir = 2; icon_state = "heater"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
+"yt" = (/obj/machinery/atmospherics/portables_connector,/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
+"yu" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/closet/crate/hydroponics/prespawned,/obj/machinery/light{dir = 1},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoflora North"; dir = 2},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"yv" = (/obj/structure/sink/kitchen{pixel_y = 28},/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"yw" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"yx" = (/obj/structure/table/glass,/obj/item/weapon/tape_roll,/obj/item/device/analyzer/plant_analyzer,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"yy" = (/obj/machinery/atmospherics/tvalve{dir = 1; name = "siphon switching valve"},/obj/effect/floor_decal/industrial/warning/full,/obj/machinery/light{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora)
+"yz" = (/obj/structure/table/glass,/obj/machinery/atmospherics/pipe/simple/hidden/universal{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"yA" = (/obj/structure/table/glass,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 9; icon_state = "intact"; tag = "icon-intact (NORTHEAST)"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"yB" = (/obj/structure/table/glass,/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 30; pixel_y = 0},/obj/item/weapon/clipboard,/obj/item/weapon/folder/white,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"yC" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/extinguisher,/obj/item/weapon/extinguisher,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenobiology)
+"yD" = (/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"yE" = (/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"yF" = (/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/structure/disposalpipe/segment,/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "xeno_airlock_interior"; locked = 1; name = "Xenobiology Internal Airlock"; req_access = list(55)},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "xeno_airlock_control"; name = "Xenobiology Access Button"; pixel_x = -26; pixel_y = 6; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"yG" = (/obj/item/clothing/shoes/galoshes,/obj/item/clothing/shoes/galoshes,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"yH" = (/obj/structure/bed/chair/office/light{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"yI" = (/obj/structure/bed/chair/office/light{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"yJ" = (/obj/structure/table/reinforced,/obj/machinery/chemical_dispenser/full{density = 1},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenobiology)
+"yK" = (/obj/machinery/sleeper{dir = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/effect/floor_decal/corner/paleblue/full,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"yL" = (/obj/machinery/sleep_console,/obj/effect/floor_decal/corner/paleblue{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"yM" = (/obj/structure/table/rack,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/firstaid/regular,/obj/random/medical/lite,/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/obj/effect/floor_decal/corner/paleblue/full{dir = 4},/obj/item/bodybag/cryobag,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"yN" = (/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/xenoflora)
+"yO" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/obj/structure/extinguisher_cabinet{pixel_x = -25},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
+"yP" = (/obj/machinery/atmospherics/pipe/manifold/visible,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
+"yQ" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
+"yR" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/closet/crate/hydroponics{desc = "All you need to start your own honey farm."; name = "beekeeping crate"},/obj/item/beehive_assembly,/obj/item/bee_smoker,/obj/item/honey_frame,/obj/item/honey_frame,/obj/item/honey_frame,/obj/item/honey_frame,/obj/item/honey_frame,/obj/item/bee_pack,/obj/item/weapon/crowbar,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"yS" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"yT" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"yU" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"yV" = (/obj/structure/bed/chair/office/dark{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"yW" = (/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"yX" = (/obj/structure/closet/emcloset/legacy,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenoflora)
+"yY" = (/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"yZ" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = 30},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"za" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for containment."; id = "xenobiocontain"; name = "Containment Switch"; pixel_x = -6; pixel_y = 28; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"zb" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "xeno_airlock_control"; name = "Xenobiology Access Console"; pixel_x = -26; pixel_y = 26; tag_exterior_door = "xeno_airlock_exterior"; tag_interior_door = "xeno_airlock_interior"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"zc" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"zd" = (/obj/structure/sink{pixel_x = 0; pixel_y = 28},/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = 38},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"ze" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 28; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"zf" = (/obj/structure/reagent_dispensers/watertank/high,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"zg" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"zh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"zi" = (/obj/effect/floor_decal/corner/green{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"zj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"zk" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"zl" = (/obj/structure/bed/chair/office/dark,/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"zm" = (/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"zn" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"zo" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 28; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"zp" = (/obj/structure/disposaloutlet,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
+"zq" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
+"zr" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
+"zs" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio3"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
+"zt" = (/obj/structure/window/reinforced,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"zu" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"zv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"zw" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/obj/structure/window/reinforced,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"zx" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio6"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
+"zy" = (/obj/structure/disposaloutlet,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
+"zz" = (/obj/machinery/portable_atmospherics/hydroponics{closed_system = 1; name = "isolation tray"},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"zA" = (/obj/machinery/portable_atmospherics/hydroponics{closed_system = 1; name = "isolation tray"},/obj/machinery/atmospherics/portables_connector,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"zB" = (/obj/machinery/portable_atmospherics/hydroponics{closed_system = 1; name = "isolation tray"},/obj/machinery/atmospherics/portables_connector,/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"zC" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"zD" = (/obj/effect/floor_decal/corner/green,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"zE" = (/obj/structure/table/glass,/obj/item/weapon/material/minihoe,/obj/item/weapon/material/minihoe,/obj/item/weapon/material/hatchet,/obj/item/weapon/material/hatchet,/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"zF" = (/obj/structure/table/glass,/obj/item/weapon/hand_labeler,/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"zG" = (/obj/structure/table/glass,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/effect/floor_decal/corner/green/full,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"zH" = (/obj/structure/table/glass,/obj/effect/floor_decal/corner/green{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"zI" = (/obj/effect/floor_decal/corner/green{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"zJ" = (/obj/structure/sink{pixel_x = 0; pixel_y = 28},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"zK" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"zL" = (/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
+"zM" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio3"; name = "Containment Blast Doors"; opacity = 0},/obj/machinery/door/window/brigdoor/westleft{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
+"zN" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/door/window/brigdoor/eastright{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"zO" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"zP" = (/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/structure/window/reinforced{dir = 8},/obj/structure/table/standard,/obj/item/clothing/gloves/sterile/latex,/obj/item/weapon/hand_labeler,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/item/device/slime_scanner,/obj/item/device/slime_scanner,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"zQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"zR" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/junction/yjunction{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"zS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"zT" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/structure/table/standard,/obj/item/weapon/melee/baton/slime/loaded,/obj/item/weapon/gun/energy/taser/xeno,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"zU" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"zV" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"zW" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/door/window/brigdoor/westleft{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"zX" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio6"; name = "Containment Blast Doors"; opacity = 0},/obj/machinery/door/window/brigdoor/eastright{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
+"zY" = (/obj/structure/extinguisher_cabinet{pixel_x = -25},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"zZ" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/obj/machinery/meter,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Aa" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Ab" = (/obj/machinery/atmospherics/binary/pump{dir = 4; name = "Isolation to Waste"},/obj/effect/floor_decal/industrial/warning/full,/obj/machinery/door/window/westright{name = "Xenoflora Containment"; req_access = list(55)},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Ac" = (/obj/effect/floor_decal/corner/green{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 10},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Ad" = (/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Ae" = (/obj/structure/closet/secure_closet/hydroponics{req_access = list(47)},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Af" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/vending/hydronutrients{categories = 3},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Ag" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/botany/editor,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Ah" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/obj/machinery/botany/extractor,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Ai" = (/obj/effect/floor_decal/corner/green/full,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Aj" = (/obj/effect/floor_decal/corner/green{dir = 10},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoflora East"; dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Ak" = (/obj/machinery/portable_atmospherics/hydroponics,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Al" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio3"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Am" = (/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/structure/table/reinforced,/obj/machinery/button/remote/blast_door{id = "xenobio3"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"An" = (/obj/machinery/disposal,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Ao" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Ap" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/machinery/button/remote/blast_door{id = "xenobio6"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Aq" = (/obj/structure/window/reinforced,/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Ar" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"As" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"At" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/botanydisk,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Au" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Av" = (/obj/machinery/atmospherics/pipe/manifold/hidden/yellow,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Aw" = (/obj/machinery/door/airlock/glass_research{name = "Xenoflora Research"; req_access = list(55)},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Ax" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Ay" = (/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Az" = (/obj/machinery/status_display,/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/xenobiology)
+"AA" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenobiology West"; dir = 4},/obj/structure/closet/firecloset/full/double,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"AB" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"AC" = (/obj/structure/table/standard,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"AD" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"AE" = (/obj/structure/table/standard,/obj/item/glass_jar,/obj/item/glass_jar,/obj/item/weapon/storage/box/syringes,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"AF" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/extinguisher,/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenobiology East"; dir = 8},/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/item/weapon/extinguisher,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"AG" = (/obj/machinery/ai_status_display,/turf/simulated/wall,/area/surface/outpost/research/xenoresearch/xenobiology)
+"AH" = (/obj/machinery/door/blast/regular{desc = "Blastdoor divider"; id = "xenobioout7"; name = "Containment Divider"},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
+"AI" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoflora West"; dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"AJ" = (/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"AK" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"AL" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"AM" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"AN" = (/obj/item/weapon/stool/padded,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"AO" = (/obj/structure/table/glass,/obj/machinery/reagentgrinder,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 9; icon_state = "intact"; tag = "icon-intact (NORTHEAST)"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"AP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"AQ" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"AR" = (/obj/machinery/light/spot{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"AS" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"AT" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"AU" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"AV" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio4"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
+"AW" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/machinery/button/remote/blast_door{id = "xenobio4"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access = list(55)},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"AX" = (/obj/machinery/smartfridge/secure/extract,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"AY" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/button/remote/blast_door{id = "xenobio5"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access = list(55)},/obj/structure/window/reinforced,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"AZ" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio5"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Ba" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Bb" = (/obj/machinery/atmospherics/pipe/manifold/visible,/obj/machinery/meter,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Bc" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Bd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Be" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Bf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Bg" = (/obj/machinery/door/airlock/glass_research{name = "Xenoflora Research"; req_access = list(55)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Bh" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Bi" = (/turf/simulated/floor/water,/area/surface/outside/river/indalsalven)
+"Bj" = (/mob/living/simple_animal/slime,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Bk" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio4"; name = "Containment Blast Doors"; opacity = 0},/obj/machinery/door/window/brigdoor/westleft{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Bl" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Bm" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/table/standard,/obj/item/weapon/melee/baton/slime/loaded,/obj/item/weapon/gun/energy/taser/xeno,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Bn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Bo" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Bp" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/processor,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Bq" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Br" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Bs" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio5"; name = "Containment Blast Doors"; opacity = 0},/obj/machinery/door/window/brigdoor/eastright{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Bt" = (/obj/machinery/atmospherics/binary/pump{dir = 1; name = "Port to Isolation"},/obj/structure/extinguisher_cabinet{pixel_x = -25},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Bu" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Bv" = (/obj/machinery/atmospherics/binary/pump{dir = 4; name = "Isolation to Waste"},/obj/effect/floor_decal/industrial/warning/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Bw" = (/obj/effect/floor_decal/corner/green{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 9; icon_state = "intact"; tag = "icon-intact (NORTHEAST)"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Bx" = (/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"By" = (/obj/structure/closet/secure_closet/hydroponics{req_access = list(47)},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/structure/window/reinforced,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Bz" = (/obj/structure/window/reinforced,/obj/machinery/biogenerator,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
+"BA" = (/obj/structure/window/reinforced,/obj/machinery/seed_extractor,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
+"BB" = (/obj/machinery/seed_storage/xenobotany,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
+"BC" = (/obj/effect/floor_decal/corner/green/full{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"BD" = (/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"BE" = (/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoflora Grow Room 2"; dir = 4},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"BF" = (/turf/simulated/floor/water/shoreline/corner,/area/surface/east)
+"BG" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (SOUTHEAST)"; icon_state = "shoreline"; dir = 6},/area/surface/east)
+"BH" = (/obj/structure/disposaloutlet{dir = 1},/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
+"BI" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
+"BJ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio4"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
+"BK" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"BL" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"BM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio5"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
+"BN" = (/obj/structure/disposaloutlet{dir = 1},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
+"BO" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/obj/machinery/meter,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"BP" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/item/weapon/wrench,/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"BQ" = (/obj/effect/floor_decal/corner/green{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"BR" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/gloves{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/syringes,/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"BS" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/reagent_containers/glass/bucket,/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"BT" = (/obj/effect/floor_decal/corner/green/full{dir = 8},/obj/structure/reagent_dispensers/watertank/high,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"BU" = (/obj/machinery/smartfridge/drying_rack,/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"BV" = (/obj/effect/floor_decal/corner/green{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"BW" = (/obj/machinery/light,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"BX" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"BY" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"BZ" = (/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for the divider between pens."; id = "xenobioout7"; name = "Containment Divider Switch"; pixel_x = 28; pixel_y = 0; req_access = list(55)},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Ca" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Cb" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Cc" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Cd" = (/obj/effect/floor_decal/corner/green{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Ce" = (/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Cf" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Cg" = (/obj/effect/floor_decal/corner/green{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Ch" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Ci" = (/obj/machinery/status_display{pixel_x = 32},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Cj" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Xenoflora Storage"; req_access = list(55)},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Ck" = (/obj/structure/closet,/obj/item/toy/figure/scientist,/obj/item/clothing/accessory/armband/science,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Cl" = (/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for a door to space."; id = "xenobioout6"; name = "Containment Release Switch"; pixel_x = 0; pixel_y = -28; req_access = list(55)},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Cm" = (/obj/structure/disposalpipe/trunk,/obj/machinery/disposal,/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Cn" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/door/window/brigdoor/northright{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Co" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/button/remote/blast_door{id = "xenobio1"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Cp" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/light,/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenobiology South"; dir = 1},/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = -38},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Cq" = (/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/table/reinforced,/obj/machinery/button/remote/blast_door{id = "xenobio2"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Cr" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Cs" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Ct" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Cu" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Cv" = (/obj/structure/closet/radiation,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Cw" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Cx" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/disposaloutlet,/obj/structure/disposalpipe/trunk{dir = 8},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Cy" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/center)
+"Cz" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
+"CA" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
+"CB" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
+"CC" = (/obj/machinery/ai_status_display{pixel_y = -32},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"CD" = (/obj/machinery/light/spot,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenoflora)
+"CE" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
+"CF" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
+"CG" = (/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
+"CH" = (/turf/simulated/floor/water/deep,/area/surface/outside/river/indalsalven)
+"CI" = (/turf/simulated/wall,/area/surface/center)
+"CJ" = (/turf/simulated/floor/wood,/area/surface/center)
+"CK" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/extinguisher,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"CL" = (/obj/structure/disposalpipe/segment,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio1"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
+"CM" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio1"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/window/brigdoor/southright{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
+"CN" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio1"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
+"CO" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio2"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
+"CP" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio2"; name = "Containment Blast Doors"; opacity = 0},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/window/brigdoor/southright{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
+"CQ" = (/obj/effect/wingrille_spawn/reinforced,/obj/structure/disposalpipe/segment,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio2"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoresearch/xenobiology)
+"CR" = (/obj/structure/closet/l3closet/general,/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoresearch/xenobiology)
+"CS" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
+"CT" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
+"CU" = (/obj/machinery/door/airlock/glass_research{name = "Xenoflora Research"; req_access = list(55)},/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"CV" = (/obj/machinery/door/airlock/glass_research{name = "Xenoflora Research"; req_access = list(55)},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"CW" = (/obj/structure/closet/crate/hydroponics{name = "exotic seeds crate"},/obj/item/seeds/replicapod,/obj/item/seeds/replicapod,/obj/item/seeds/ambrosiavulgarisseed,/obj/item/seeds/ambrosiavulgarisseed,/obj/item/seeds/libertymycelium,/obj/item/seeds/reishimycelium,/obj/item/seeds/random,/obj/item/seeds/random,/obj/item/seeds/random,/obj/item/seeds/random,/obj/item/seeds/random,/obj/item/seeds/random,/obj/item/seeds/kudzuseed,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoresearch/xenoflora)
+"CX" = (/turf/simulated/floor/wood,/area/surface/outside/river/indalsalven)
+"CY" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenobiology)
+"CZ" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Da" = (/obj/structure/closet/bombcloset,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Db" = (/obj/effect/overlay/snow/floor,/obj/structure/grille,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/center)
+"Dc" = (/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/center)
+"Dd" = (/obj/effect/overlay/snow/floor,/obj/structure/grille,/turf/simulated/floor/plating/sif/planetuse,/area/surface/south)
+"De" = (/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Df" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Dg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Dh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Di" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Dj" = (/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoflora Grow Room 1"; dir = 2},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Dk" = (/obj/structure/disposalpipe/segment,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Dl" = (/obj/structure/disposalpipe/segment,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Dm" = (/obj/effect/overlay/snow/floor,/obj/structure/grille,/turf/simulated/floor/plating/sif/planetuse,/area/surface/center)
+"Dn" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Do" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Dp" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Dq" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Dr" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Ds" = (/obj/structure/disposaloutlet{dir = 8},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Dt" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Du" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled/hydro,/area/surface/outpost/research/xenoresearch/xenoflora)
+"Dv" = (/obj/machinery/door/blast/regular{desc = "By gods, release the hounds!"; id = "xenobioout6"; name = "Containment Release"},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoresearch/xenobiology)
+"Dw" = (/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/west)
+"Dx" = (/obj/effect/zone_divider,/turf/simulated/floor/water,/area/surface/outside/river/indalsalven)
+"Dy" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/shuttle/response_ship/planet)
+"Dz" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (NORTHWEST)"; icon_state = "shoreline"; dir = 9},/area/surface/east)
+"DA" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (NORTH)"; icon_state = "shoreline"; dir = 1},/area/surface/east)
+"DB" = (/turf/simulated/floor/water/shoreline/corner{tag = "icon-shorelinecorner (EAST)"; icon_state = "shorelinecorner"; dir = 4},/area/surface/east)
+"DC" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (EAST)"; icon_state = "shoreline"; dir = 4},/area/surface/east)
+"DD" = (/turf/simulated/floor/water/shoreline,/area/surface/east)
+"DE" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (SOUTHWEST)"; icon_state = "shoreline"; dir = 10},/area/surface/east)
+"DF" = (/turf/simulated/floor/water/shoreline/corner{tag = "icon-shorelinecorner (NORTH)"; icon_state = "shorelinecorner"; dir = 1},/area/surface/east)
+"DG" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/west)
+"DH" = (/turf/simulated/floor/water,/area/surface/outside/river/faxalven)
+"DI" = (/obj/effect/zone_divider,/turf/simulated/floor/water/deep,/area/surface/outside/river/indalsalven)
+"DJ" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/syndicate_station/planet)
+"DK" = (/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/west)
+"DL" = (/turf/simulated/floor/wood,/area/surface/outside/river/faxalven)
+"DM" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/center)
+"DN" = (/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/center)
+"DO" = (/turf/unsimulated/wall/planetary/sif,/area/surface/southwest)
+"DP" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/southwest)
+"DQ" = (/obj/effect/zone_divider,/turf/simulated/floor/water,/area/surface/outside/river/faxalven)
+"DR" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/southeast)
+"DS" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/southeast)
+"DT" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/rocks/sif/planetuse,/area/surface/southeast)
+"DU" = (/obj/effect/zone_divider,/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (WEST)"; icon_state = "shoreline"; dir = 8},/area/surface/southeast)
+"DV" = (/obj/effect/zone_divider,/turf/simulated/floor/water,/area/surface/southeast)
+"DW" = (/obj/effect/zone_divider,/turf/simulated/floor/water/deep,/area/surface/southeast)
+"DX" = (/turf/unsimulated/wall/planetary/sif,/area/surface/southeast)
+"DY" = (/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/southwest)
+"DZ" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/south)
+"Ea" = (/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/south)
+"Eb" = (/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/south)
+"Ec" = (/turf/simulated/floor/water,/area/surface/outside/lake/romsele)
+"Ed" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/south)
+"Ee" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/south)
+"Ef" = (/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/southeast)
+"Eg" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/southeast)
+"Eh" = (/turf/simulated/floor/outdoors/rocks/sif/planetuse,/area/surface/southeast)
+"Ei" = (/turf/simulated/floor/water/shoreline/corner{tag = "icon-shorelinecorner (WEST)"; icon_state = "shorelinecorner"; dir = 8},/area/surface/southeast)
+"Ej" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (NORTHEAST)"; icon_state = "shoreline"; dir = 5},/area/surface/southeast)
+"Ek" = (/turf/simulated/floor/water,/area/surface/southeast)
+"El" = (/turf/simulated/floor/water/deep,/area/surface/southeast)
+"Em" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (WEST)"; icon_state = "shoreline"; dir = 8},/area/surface/southeast)
+"En" = (/turf/simulated/floor/water/deep,/area/surface/outside/lake/romsele)
+"Eo" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (NORTH)"; icon_state = "shoreline"; dir = 1},/area/surface/southeast)
+"Ep" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/skipjack_station/planet)
+"Eq" = (/obj/item/weapon/caution/cone,/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/south)
+"Er" = (/obj/item/weapon/caution/cone,/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/south)
+"Es" = (/turf/unsimulated/wall/planetary/sif{icon_state = "rock-dark"},/area/surface/southwest)
+"Et" = (/turf/unsimulated/wall/planetary/sif{icon_state = "rock-dark"},/area/surface/south)
+"Eu" = (/obj/effect/step_trigger/teleporter/wild/to_wild,/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/south)
+"Ev" = (/turf/unsimulated/wall/planetary/sif{icon_state = "rock-dark"},/area/surface/southeast)
(1,1,1) = {"
aaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadaeaeaeacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaf
@@ -1604,238 +1604,237 @@ aaagagagagagagagagagagagagagagagagagagagagagagagagagagagahahahahahahahahahahahah
aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaDamamamapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapakakakakakakakakakajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagahahahahahahahahahahahahahahahahahahahahahagagagagagagagagagaEapapapapapapapapapaFapapapapapapapapapapapapapapapapapapapapapapapaGapapapaHaHaIaIaIaHaHaJaJaJaJaKaKaKaJaJapapapapapapaDamamamapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapakakakakakakakakakajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagahahahahahahagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapaLaMapapapapapapapapapaMaLaMapapapapapapapapapaMaLapapaHaHaNaOaPaQaRaHaSaTaUaVaVaVaWaXaJaJaJaJapapapaDamamamapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapakakakakakakakakakajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapaYaZbabababababababababbaYaZbabababababababababbaYapapaHbcbdbebebfbgaIbhbibibibibibibjaJbkblaJbmbmbmaDamamamapapapapapapapapapapapapapapapapapcxcxcyczcycxcxapapapapapapapapapapapapapapapapapapakakakakakakakakajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbnbobobpbpbpbpbpbobobqbrbnbsbsbobobobobobsbsbqapapapaIbtbebubvbwbxbybzbAbBbCbBbDbEbFbGbHbIbJbmbmbmaDamamamapapapapapapapapapapapapcRcScTcScRcxcUcVcWcXcYcxcZdadbdacZapapapapapapapapapapapapapapakakakakakakakajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbnbobpbpbpbpbpbpbpbobqbrbnbsbsbsbobobobsbsbsbqapapapaIbKbLbMbNbObPaIbQbRbibSbTbUbTbVaKbWbXaKbmbmbmaDamamamapapapapapapapapapapapcRcRdndmdpdodqcXdrdsdtcXdudvdxdwdycZcZapapapapapapapapapapapapapakakakakakakakajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagbYagagagbYagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbnbobpbpbpbpbpbpbpbobqbrbnbsbsbsbsbsbsbsbsbsbqapapapaHbZbZcacacacaaHcbcccdaKcecfcgchcicicicicjcjcjckamamamapapapapapapapapapapcRcRdNdNdOdPdQdRdSdTdUdVdWdRdXdYdYeadZcZcZapapapapapapapapapapapapakakakakakakakajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagbYagagagbYagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbnbobpbpbpbpbpbpbpbobqbrbnbsbsbsbsbsbsbsbsbsbqapapapaHcacacaclcmcncocpbRcqcicicicicicicrcsctcucvcvcwamamamapapapapapapapapapapcSeueteBevdPeCdRewexeyezeAdReKdYdYePeDeEdaapapapapapapapapapapapapakakakakakakakajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagbYagagagbYagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbnbobpbpbpbpbpbpbpbobqbrbnbsbsbsbsbsbsbsbsbsbqapapapaHcAcBcacCcDcEcocFbRcGcicHcIcJcKcLcMcNcOcPcPcPcQamamamapapapapapapapapapapcTeQdPeSdPeReWcSeTeUeUeUeVdaeYeXdYfaeZfddbapapapapapapapapapapapapakakakakakakakajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagbYbYbYbYbYagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbnbobpbpbpbpbpbpbpbobqbrbnbsbsbsbsbsbsbsbsbsbqapapapaHaHaHaHdcddcocodedfdgcidhdidicidicrcicidjdkcjdlamamamapapapapapapapapapapcSfkflfmfnfofpfrfqfsftfsfufwfvfxfyfzfAfBdaapapapapapapapapapapapapakakakakakakakajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagbYbYbYbYbYbYbYbYbYagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbnbobpbpbpbpbpbpbpbobqbrbnbsbsbsbsbsbsbsbsbsbqbmbmbmaKdzdAaKdBdCdDdEbhdFbidGdHdHdIdJdidKcidLdLdLdLdMamamamapapapapapapapapapapcRfRfQfTfSfVfUcSfWfXfYfZgadagbgdgcgfgeggcZapapapapapapapapapapapapakakakakakakakajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagbYbYbYbYbYbYbYbYbYbYbYagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbnbpbpbpbpbpbpbpbpbpbqbrbnbobsbsbsbsbsbsbsbobqbmbmebecedeeefegeheiejeiekelemeneoepeqerescidLdLdLdLdMamamamamapapapapapapapcRcRcRgMgMgMgNgPgOgMdRcygtcydRhugThVhwhuhuhucZcZapapapapapapapapapapapakakakakakakakajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagbYbYbYbYbYbYbYbYbYbYbYagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbnbpbpbpbpbpbpbpbpbpbqbrbnbobsbsbsbsbsbsbsbobqbmbmeFaJeGeHaJeIeJhWbQbidFbidGdHeLeMeNdieOcidLdLdLdLdMamamamamamamamamamamhXcSimikcSiniEiodPdPiScSgRjfjgdajqjhjhjrjsjhjhjFdaapapapapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagbYbYbYbYbYbYbYbYbYbYbYagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbnbpbpbpbpbpbpbpbpbpbqbrbnbobsbsbsbsbsbsbsbobqamamamaJaJfbaJfcfcaJkcfefffgcifhdidifidicrcidLdLdLdLfjamamamamamamamamamamhXkdkHkelwkJdPlxfnfnlElymxlTmPmJngmTmTnhjhjhnjnidaapapapapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagbYbYbYbYbYbYbYbYbYbYbYagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbnbpbpbpbpbpbpbpbpbpbqbrbnbobsbsbsbsbsbsbsbobqamamamaLfCfDfEfDfFaLnkfGfHfGcifIfJfKfLfMfNcifOfOfOfOfPamamamamamamamamamamnlcRnwnvcRnxnBnynDnCnEgMnFgSnHhunJnInLnKnQnPnSnRcZapapapapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagbYbYbYbYbYbYbYbYbYagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbnbpbpbpbpbpbpbpbpbpbqbrbnbobsbsbsbsbsbsbsbobqapamamaLaLghgigjgkglgmgngogngpaLaLaLaLaLaLaLapapapapaqamamamamamapapapapapapcRgqgqgqgqgqgrgrgrgsgsnTgSoogugugugugugvgvgvguguapapapapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagbYbYbYbYbYbYbYagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbnbpbpbpbobobobpbpbpbqbrbnbobsbsbsbsbsbsbsbobqapamamamaLgwgxgngygzgAgBgCgDgEgFgGgHgHgIaLapapapapapaqamamamamapapapapapapapapgqgJgKgLgqouoxowoKgQnTgSoogugUgVgWgXgYgZhahbguapapapapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagbYbYbYbYbYagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbnbpbpbobobobobobpbpbqbrbnbobobsbsbsbsbsbobobqapamamamaLhcgxgnhdhehfhghhhihjhkhkhlhmhnaLapapapapapaqamamamapapapapapapapapapgqhohphqgqhrhshshtgroLhvoNguhxhyhyhyhzhzhyhAguapapapapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapaphBhChDhDhDhDhDhDhDhDhDhEhBhChDhDhDhDhDhDhDhDhDhEhBapamamaLhFhGhHgygnhIhJhKhLhMhNhOhPhQhRaLapapapapapaqamamamapapapapapapapapapgqgqhSgqgqhThUoOoPgrnTgSoQguhzhzhYhahahzhzhygvapapapapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapaLaMapapapamamamapapapaMaLaMapapapamamamapapapaMaLapamamaLaLhZiaibicaLaLidaLaLieifigigaLaLapapapapapaqamamamapapapapapapapapapihiiijoRilgrgroSgrgroTgSoUgviphziqirishyhzhzgvapapapapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapamamamamapapapapapapapapamamamapapapapapamamamaLaLaLaLitaLiuiviuaLaLaLaLaLaLapapapapapapaqamamamapapapapapapapapapihiwixiyoViziAoWiCiDgRgSoXgviFhziGhzhyhyhzhzgvapamamapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapamamamamamapapapapapapapapamamamapapapapamamamiHiIiIiIiJiIiIiKiLiLiLiLiLiLiLiLiLiLiLiLiLiMiLiLiLiLiLiLiLiLiLiLiLiLiNiOiPiQiRoZiTiUiTiViTiWiXiYiZjajbjajajchzhzgvapapamapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapamamamamamamamamamamamamamamamamamamamamamamaqamamamamamamamamamamamamamamamamamamamamaqamamamapapapapapapapapapihjdixjeilpapcpbpgjijjjkjlgvjmhyiqhzhzhzhzhzguapapapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapamamamamamamamamamamamamamamamamamamamamaqamamamamamamamamamamamamamamamamamamamamaqamamamapapapapapapapapapihjnjojpilphptpojtjtiDjujvgugujwjxjyjzjAjBjCguapapapapamapapapapapajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapamamamamamapapapapapapapapapaqapapapapapapapapapapapapapapapapapapapapaqamamamapapapapapapapapapjDjEjEjEjEjEjEjEjDpujGjHjIjJgugvjKgvgvguguguguapapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapamamamamapapjLjLjLjLjMjMjNjOjNjPjPjPjPjQjQjPjPjPjPapapapapapapapapapaqamamamapapapapapapapapapjDjRjSjTjSjUjVjWjXpvjZkakbgRiDpwpypxpzkfkgkhkikjamapapapapapapapajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamapapjLjLkkklkmknkokpkqkrksktkukvkwkxkykzkAjPjPapapapapapapapapaqkBkBkCapapapapapapapapapjDkDkEkEkEkEkFpEpJpHkIqekKkLkMkNkOkPkQkRkSkTkUkVamamamapapapapajajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamapapjLkWknknknkXkYkpkZlakslblcldlelflglglhlijPapapapapapapapapljlklllmlmapapapapapapapaplnlolplplplplqlrlnnFlsltlugRiDlvqFqgqJjtlzlAjtlBapamamapapapapajajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamapapjLkkknlCknlDknkpxslFkslGkzlHlIlJlKlLkzlMjPapapapapapapapaplNlOlPlQlkapapapapapapapaplnkGlRkGlRkGkGlSjDzvgRiBjIlUlVlWlXlWlWjtjtjtjtapapapamamapapajajajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamapapjLlYknlZmambmckpAgmdksmemfmgmhmimjmjmkmljPapapapapapapapaplNmmmnmolkapapapapapapapapjDmpmqmrmsmtkGmujDjtiDmvjvlVlVmwAUmymzmAlVapapapapapapamapapajajajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamapapjLmBmCknknmDmEmFmGmHksmIkzBkkzmKmLkzkzmIjPapapapapapapaplmljlkmMlmlmlmapapapapapapapjDmNmOBxmQmRkGmSjEBLgRhvmUmVmWmymXmYlWlWlVapapapapapapamapapajajajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamapmZjLjLjLjMjMnanbmFncndksnejQjQksnfksjQjQnejPlmlmlklklmlklklmBVCyCnCHCGlmlklklmlklklmlmjDjElnCIlnjElnlnjECJgRiBjIlWnmmynnmynonplVapapapapapapamapapajajajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamnqnrnsntnuCKCMCLCOCNnznACQCPCRCRCTCSCUCRCVCPCRnGCXCWCWCYCWCZCWDanMnNnODbDcCWCWDdCZCWCWnGDfDepvDgDhDeDiDeDjjYjYnUnVlWnWmynnnXlWlWlVlVlVapapapapamapapajajajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamnYnZoaobocodncoeofogohoiojogogokogologogomogDkonDlopoqoqoqoroqosotDmovoqoqoqopoqoroqDoDnmxkLkLoyozozoAozozoziToBoClWoDmynnnXlWoEoFoGlVapapapapapapapajajajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamoHmZoIoJmZDpDqoMncDrDtDsDvDuDxDwncoMDzDyDBDADCoYDEDDDEDFDEDEDHDGpdpepfDIDEDEDDDJDEDEDEoYDLDKDKDMDKDKDKDKDNgRpipjpklWplpmpnDOppDPpqprlVapapapapapapapajajajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamapmZmZmZmZpspsoMncpspspspspspspsncoMpspsmZmZmZlmlmlklklmlklklmDQDRmnDTDSlmlklklmlklklmlmjtDUDWDVDXpApBpCpDgRDZDYEapFpGmyEbpIlWoEEcoGlVapapapapapapapajajajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamapapmZpKpLpMpNpOpPpQpRpSpspTpUpVpPpOpWpXpYpZmZapapapapapapaplmqalmqblklmlmapapapapapapapjtqcqdqdqdqdqdqdqdqdEdqfEelWlWlWqhlWlWlWqilVlVapapapapapapapajajajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamapapnrqjqkqlpsoMqmpsqnqopsqpqqpsqroMpsqsqtqunrapapapapapapapapqvqwlPlQlkapapapapapapapapapqcqxqyqzqzqAqBqCqDEfqEEgqGqHqIEhqKqLqMEiqcapapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamapapmZpspspspsoMncpspspspspspspsncoMpspspspsmZapapapapapapapapqvqOqPqQlkapapapapapapapapapqRqSqTqUqVqVqVqVqVqVqWqVqVqVqVqVqVqXqYqSqRapapapapamapapapapajajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamamapmZqZpLpMrarbrcrdrerfpsrgrhrirjrbrkpXpYrlmZapapapapapapapapqalmrmlklmapapapapapapapapaprnroqSrpqNrqrrrrrrrrrrrrrsrsrsrtqNruqSrvrnapapapapamapapapapapajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamamapmZmZrwrxpsnrnrpsryrzpsrArBpsnrnrpsrCrDmZmZapapapapapapapapaDrEkBkBapapapapapapapapapapqRqSqNrpqNrFrGrGrGrGrGrGrHrHrHrIqNruqNqSqRapapapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapapamamapapmZnrmZmZapapmZmZnrmZnrmZmZapapmZmZnrmZapapapapapapapapapaDamamamapapapapapapapapapapqcqcrJrKqNrFrGrGrGrLrMrNrHrHrHrIqNrOrPqcqcapapapapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
-aarQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrQrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrSrSrSrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrRrTrSrSrSrRrRrRrRrRrRrRrRrRrRrRrUrVrWrXrYrZrZrZsasbscsdsdsdserXsfsgrUrRrRrRrRrRrRrRrRrRrRrRrRshshshshshshshshshshshshshshshshshshshshshshshshsisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisiao
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslsmsmsmsmsmslslslslslslslslslslslslslslslslslslslslslslslslslslsnsmsmsmsmslslslslslslslslslslrnqSsoqNrFrGrGrGrHrHrHrHrHrHrIqNspqSrnslslslslslslslslslslslslsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqshsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsmsmsmsmslslslslslslslslslslslslslslslslslslslslslslslslslsnsmsmsmsmslslslslslslslslslslqRqNqNqNstsusususvsvsvsvsvsvswqNqNqNqRslslslslslslslslslslslslsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqshsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsmsmsmsmslslslslslslslslslslslslslslslslslslslslslslslsnsmsmsmsmslslslslslslslslslslqcsxsyqNqNqNqNqNqNqNqNqNqNqNqNqNqNszqcslslslsmslslslslslslslslsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqshsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsmsmsmslslslslslslslslslslslslslslslslslslslslslslslsnsmsmsmsmslslslslslslslslslslslqcqcqSsAsBsCqNqNqNqNqNsDsBsEqSqcqcslslslslsmslslslslslslslslslsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqshsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsllmsFsmsmslslslslslslslsGlmsGslslslslslslslslslsHlmslsnslsmsmsmslslslslslslslslslslslslqcqRrnqRqcsAsIsJsKsAqcqRrnqRqcslslslslslslslslslslslslslslslsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqshsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsLsMsNsNsNsNsNsNsNsNsNsOsLsMsNsNsNsNsNsNsNsNsNsOsLslsnslsmsmsmslslslslslslslslslslslslslslslslqcqcqRrnqRqcqcslslslslslslslslslslslslslslslslslslslsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqshsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsPsQsQsRsRsRsRsRsQsQsSsGsPsTsTsQsQsQsQsQsTsTsSslslsnsmsmsmsmslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsmslslslslslslslslslslslslslsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqshsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsPsQsRsRsRsRsRsRsRsQsSsGsPsTsTsTsQsQsQsTsTsTsSslsmsnsmsmsmsmsmsmsmsmsmsmsmsmsmsmslslslslslslslslslslslslslslslslslslsmsmslslslslslslslslslslslslslsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqshsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsPsQsRsRsRsRsRsRsRsQsSsGsPsTsTsTsTsTsTsTsTsTsSsmsmsnsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqshsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsPsQsRsRsRsRsRsRsRsQsSsGsPsTsTsTsTsTsTsTsTsTsSsmsmsnslsmsmsmslsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmslslslslslslslslslslslslslslslslslslslslslslslslslslslslsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqshsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsPsQsRsRsRsRsRsRsRsQsSsGsPsTsTsTsTsTsTsTsTsTsSsmslsUsVsVsVsVsVsVsVsVsVsVsVsVsVsWsmsmsmsmsmsmsmsmslslslslslsmsmsmslslslslslslslslslslslslslslslslslslslslsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqshsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsPsQsRsRsRsRsRsRsRsQsSsGsPsTsTsTsTsTsTsTsTsTsSslslslsmsmsmsmslslslslslslslslslsnslslslslsmsmsmsmsmsmslslsmsmslslslslslslslslslslslslslslslslslslslslslslslsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqshsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsPsQsRsRsRsRsRsRsRsQsSsGsPsTsTsTsTsTsTsTsTsTsSslslslsmsmsmslslslslslslslslslslsnslslslslslslsmsmsmsmsmslslslslslslslslslslslslslslslslslslslslslslslslslsXsXsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqshsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsYsYsYsYsYsYss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsPsRsRsRsRsRsRsRsRsRsSsGsPsQsTsTsTsTsTsTsTsQsSslslslsmsmsmslslslslslslslslslslsnslslslslslslslslsmsmsmslslslslslslslslslslslslslslslslslslslslslslslslsXsXsXsXsXsqsqsqsqsqsqsqsqsqsqsqsqsqsqshsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsYsYsYsYsYsYsYsYsYsYss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsPsRsRsRsRsRsRsRsRsRsSsGsPsQsTsTsTsTsTsTsTsQsSslslslsmsmsmslslslslslslslslslslsZslslslslslslslsltatbtbslslslslslslslslslslslslslslslslslslslslslslslslsXsXsXsXsXsXsXsqsqsqsqsqsqsqsqsqsqsqsqshsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsYsYsYsYsYsYsYsYsYsYsYsYss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsPsRsRsRsRsRsRsRsRsRsSsGsPsQsTsTsTsTsTsTsTsQsSslslslsmsmsmslslslslslslslslslslsZslslslslslslsltctdtetftcslslslslslslslslslslslslslslslslslslslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsqsqsqsqsqsqsqshsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsPsRsRsRsRsRsRsRsRsRsSsGsPsQsTsTsTsTsTsTsTsQsSslslslsmsmsmslslslslsltgtgtgththtithtjtjtjtjtjtjtjtktltmtdtdtdtftntftdtdtftdtotdtftdslslslslslslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsqsqsqsqshsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsPsRsRsRsRsRsRsRsRsRsSsGsPsQsTsTsTsTsTsTsTsQsSslslslsmsmsmslslslsltgtgtptqtrtstttutvtwtxtytztAtjtBtCtDtdtEtFtGtHtItJtotKtKtKtLtMtdtdslslslslslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOsrsrsrsrsrsrsrsrsrsrsrsrsrtPtPtPtPtPtPtPtPtPtPtQtRsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsPsRsRsRsQsQsQsRsRsRsSsGsPsQsTsTsTsTsTsTsTsQsSslslslsmsmsmslslslsltgtStTtUtrtVtWtXtvtYtZuaubuctjtdudtftdueufuguhuiujtotKtKtKukultotdslslslslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsPsRsRsQsQsQsQsQsRsRsSsGsPsQsQsTsTsTsTsTsQsQsSslslslsmsmsmslslslsltguoupuotrtruqtrtvtvtvurtvtvtvusutuutouvuwuxuyuzuAtotototouBtototdslslslslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtQtRsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsluCuDuEuEuEuEuEuEuEuEuEuFuCuDuEuEuEuEuEuEuEuEuEuFuCslslsmsmsmslslslsltfuGuHuIuJuKuLuMuNuOuPuQuPuRuSuPuTuPuUuVuWuXuYuPuZvauXuPvbvcvdvetfslslslslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsllmvfslslslslslslslslslvflmvfslslslslslslslslslvflmslslsmsmsmslslslsltnvgvhvivjvkvlvmvnvovpvqvpvpvrvpvsvpvtvuvpvvvpvpvpvwvxvyvzvAvgvgtnslslslslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYvBvBvBvBvBss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsmsmsmslslslsltfvCvDvEvFvFvGvFvFvHvIvJvKvLtftfvMtftftdvNvOvDvgvPvPvQvRvPvSvDvTvUvVslslslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsmsmsmslslslvFvFvWvXvWvYvZwawbvYwcwdwcvFvFwewfwgwhwivPvPwjwkwjvPwlwmwnvPwowkwpvPvPslslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsmsmsmsmslslvFvFwqwrwswtvFwuwvwwvFwxwywzwAvFvFwBwCwDvPvPwEwFwGwHwIwnwJwnwKwLwMwNwOvPvPslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsmsmsmsmslslslvFwPwQwRwQwQvFvFwSvFvFwTwUwRwVwWvFwXwYwZvPxaxbxcxdxexfwnwJwnxgxhxixjxjxkvPslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsmsmsmsmslslvFvFvFvFvFxlwRwQxmxnxoxpxqwQwRxrvFvFvFvFvFvPvPEjwnxjxtxuxvxwxxwnxyxzxAxBxaxavPvPvPslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsmsmsmsmsmslslslvFxCxDxExFxGwQxHwRwRxIwRwRxHwQxJxKxExDxLvFxMxNxOxPxjxQxRxSwnwJwnxTxUxVxjwjxWxXwnwjsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsmsmsmsmsmsmslslslslvFxYxYxYxZyawRybycydyeyfygyhyiyjykxYxYxYvFylymynyoypyqyryswnwJwnytyuyvywwjwnwnyxwksXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsmsmsmsmsmsmslslslslslslvFxYxYxYyyyzwQwRwQwQyAwQwQwRyByCxKxYxYxYvFyDyEyExPyFwnwnwnwnyGyHyHyIyHyHyJyHyKyxwjsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsmsmsmsmsmsmsmslslslslslslslvFyLyLyLyMyNwQwRyOyPyQyRwQwRyBySyTyUyUyUvFyVyWyWyXxzyYyZyZzazbzcxjxjzdzexazfzgzhvPsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsmsmsmsmsmsmsmslslslslslslslslslvFxYxYxYzizjwQwRwQwQzkwQwQwRyBzlzmxYxYxYvPznzozpyXyFwnwnwnzqzrzsxwxwxwxwztxwzuyxwjsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjEkskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsmsmsmsmsmsmslslslslslslslslslslslvFxYzwxYzxyawRzyzzzAzBydzCzDzEyjzFxYxYxYvPzGxjzHzIzJzKzLzMzqxjwnzNzOzPzQwjzRwnyxwksXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPzSzTsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjEkEkEkskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsmsmsmsmsmslslslslslslslslslslslslslvFzUzVxEzWzXwQxHwRwRwRwRwRxHyBzYzZxEzVAavPAbAcxjyXxjAdAeAfzqxjwnElAhAixjwjwnAjAkwjsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjEkEkEkEkskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsmsmsmsmslslslslslslslslslslslslslslslvFvFvFvFvFAlwRwQwRwQwQwQwRwQzEAmvFvFvFvFvPvPvPAnAoxjApyZAqArAsxwAtxuAuAvxaAwvPvPvPsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjEkEkEkEkEkskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslsmsmsmslslslslslslslslslslslslslslslslslslvFAxwQwRAyAzAAABACADAAAEAFAGAHAIAJAKALALvPAMANAOAPxjxfzqAQwnxgxjxjARASATvPsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumtPtPtPtPtPtPtPtPtPtPtPzSzTsYsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjEmEmEkEkEkEkskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslAVAWAWAVslslslslslslslslslslslslslslslslslslvFvFAXwQvFAYAZBayLBbBcBdvFwQBevFvFALALsGvPvPBfBgxawjwjBhxaBiwjwjxaASBjvPvPsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjEkEmEmEkEkEkEkEkskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslEkEnEnEkEkEkEkslslslslslslslslslslslslslslslslvFvFBlvFBmxYxYyLxYxYBmvFBnvFvFBoBpBpsGBqvPvPBrxaBswnBtBuBvBwwnAwATvPvPsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjEkEkEkEkEmEkEkEkEkEkskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslEkEkEkEnEnEmEmEkEkEkEkEkEkEkEkEkEkEkEkEkEkEkEkEkEkslvFvFvFByxYxYyLxYzwBzvFvFvFslBABABABABAslvPvPvPBBwnBCzgBDwnBEvPvPvPsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPzSzTsYsYsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjskEkEkEkEmEmEmEkEkEkEkEkEkEkEkEkskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslEkEkEkEmEnEnEmEmEmEmEmEkEkEkEkEkEkEkEkEkEkEkEkEkEkEkEkslslvFBFxYxYyLxYxYBGvFslslslslslslslslslslslvPwnyxyxBHyxyxBIvPsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjskskEkEkEkEkEmEmEkEkEkEkEkEkEkEkEkEkEkskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslEkEkEkEkEkEmEmEnEnEmEkEkEmEmEmEmEmEmEmEmEmEmEmEmEmEmEmEmEmEkEkEkvFBJBJBJvFvFvFvFvFslslslslslslslslslslsXvPwjwkwjvPwjwkwjvPsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjskskskEkEkEkEkEkEkEkEkEkEkEkEkEkEkEkEkEkEkskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslEkEkEkEkEmEmEmEmEkEnEnEkEkEkEkEkEkEkEkEkEkEmEmEmEkEmEmEmEmEmEmEmEkEkEkslslslslslslslslslslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjskskskskskskEkEkEkEkEkEkEkEkEkEmEmEkEkEkEkEkEkEkskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslEkEkEkEkEkEmEmEkEkEkEkEnEnEkEkEkEkEkEkEkEkEkEkEkEkEkEkEkEkEkEkEkEmEmEmEmEkEkEkEkEkEkslslslslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPtPtQtRsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjskskskskskskskskskskEkEkEkEkEkEkEmEmEmEkEkEkEkEkEkEkskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslEkEkEkEkEkEkEkEkEkEkEkEkEkEnEnEkEkslslslslslslslslslslslslslslslslEkEkEkEkEmEmEmEmEmEkEkEkEkEkEkEkEksXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjskskskskskskskskskskskskskEkEkEkEkEkEmEmEmEkEkEkEkEkEkEkskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslslslEkEkEkEkEkEkEkEkEkEkEkEkslAVAWAWAVslslslslslslslslslslslslslslslslslslslEkEkEkEkEkEmEmEmEmEkEkEkEkEkEkEkEkEkEkEksXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtQtRsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjskskskskskskskskskskskskskskskEkEkEkEkEkEkEkEkEkEkEkEkEkEkEkskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslslEkEkEkEkEkEkEkEkEkEkEkslslslslslsmsmslslslslslslslslslslslslslslslslslslslslslslslEkEkEkEkEkEkEmEmEmEmEmEmEkEkEkEkEkEkEkEksXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjskskskskskskskskskskskskskskskskskEkEkEkEkEkEkEmEmEmEkEkEkEkEkEkskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslslslEkEkEkEmEmEkEkEkEkEkslslslslslslslsmsmsmslslslslslslslslslslslslslslslslslslslslsXsXsXsXEkEkEkEkEkEkEkEmEmEmEmEmEmEmEkEkEkEkEkEksXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjskskskskskskskskskskskskskskskskskskskEkEkEkEkEkEkEmEmEkEkEkEkEkEkskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslslslEkEkEkEkEmEmEkEkEkEkslslslslslslslslslslsmsmslslslslslslslslslslslslslslslslslslsXsXsXsXsXsXsXsXsXsXsXEkEkEkEkEkEkEkEkEmEmEmEmEkEkEkEkEkEksXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtQtRsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjskskskskskskskskskskskskskskskskskskskskskskEkEkEkEkEmEmEmEkEkEkEkEkskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslslEkEkEkEkEkEmEkEkEkslslslslslslslslslslslslslsmsmslslslslslslslslslslslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEkEkEkEkEkEkEkEmEkEkEkEkEkEkEksXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjskskskskskskskskskskskskskskskskskskskskskskskskEkEkEkEkEkEkEkEkEkEkEkEkskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslslslEkEkEkEkEkEkEkEkEkslslslslslslslslslslslslslslsmsmsmslslslslslslslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEkEkEkEkEmEmEkEkEkEkEkEksXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjskskskskskskskskskskskskskskskskskskskskskskskskskskEkEkEkEkEkEkEkEkEkEkEkskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslslEkEkEkEkEkEkEkEkEkslslslslslslslslslslslslslslslslslsmsmslslslslslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEkEkEkEmEmEkEkEkEkEksXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtQtRsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBKskskskskskskskskskskskskskskskskskskskskskskskskskskskskEkEkEkEkEkEkEkEkEkEkskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslslEkEkEkEkEkEkEkEkEkslslslslslslslslslslslslslslslslslslsmsmslslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEkEkEmEmEmEkEkEksXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBKBKskskskskskskskskskskskskskskskskskskskskskskskskskskskskskEkEkEkEkEmEmEkEkEkEkskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslslslEkEkEkEmEmEkEkEkEkslslslslslslslslslslslslslslslslslslslsmsmslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEkEkEkEmEkEkEksXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBKBKskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskEkEkEkEkEmEmEkEkEkEkEkskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslEkEkEkEmEmEmEkEkEkslslslslslslslslslslslslslslslslslslslslslsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEkEkEmEkEkEksXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBKBKBKskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskEkEkEkEmEmEkEkEkEkEkskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslEkEkEkEkEkEmEkEkEkEkslslslslslslslslslslslslslslslslslslslslslslsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEkEkEkEkEksXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBKBKBKBKskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskEkEkEkEkEkEkEkEkEkEkskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslEkEkEkEkEkEmEmEkEkEkslslslslslslslslslslslslslslslslslslslslslsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEkEkEkEkEksXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBKBKBKBKBKBKBKskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskEkEkEkEkEkEkEkEkEkEkEkskskskskskskskskskskskskskskskrRslslslslslslslslslslslEkEkEkEkEmEmEkEkEkEkslslslslslslslslslslslslslslslslslslslsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEkEkEkEkEksXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBKBKBKBKBKBKBKBKskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskskEkEkEkEkEkEkEkEkEkEkEkskskskskskskskskskskskskskrRslslslslslslslslslEkEkEkEkEkEmEmEkEkEkslslslslslslslslslslslslslslslslslslslslsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEkEkEkEkEksXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPzSzTsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKskskskskskskskskskskskskskskskskskskskskskskskskskskEkEkEkEkEkEkEkEkEkEkEkEkskskskskskskskskskskskrRslslslslslslslEkEkEkEkEkEkEmEmEkEkEkslslslslslslslslslslslslslslslslslslslsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEkEkEkEkEkEksXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKskskskskskskskskskskskskskskskskskskskskskskskskskEkEkEkEkEkEmEmEkEkEkEkEkEkskskskskskEkEkEkEoEkEkEkEkEkEkEkEkEkEkEkEkEkEkEkEkEkslslslslslslslslslslslslslslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEkEmEkEkEkEksXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPzSzTsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKskskskskskskskskskskskskskskskskskskskskskskskskskskEkEkEkEkEmEmEmEkEkEkEkEkEkEkEkEkEkEkEkEoEkEkEkEkEkEkEmEmEmEmEkEkEkEkEkEkslslslslslslslslslslslslslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEkEmEkEkEkEksXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumumtPtPtPtPtPtPtPtPtPtPtPzSzTsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKskskskskskskskskskskskskskskskskskskskskskskskskskskskEkEkEkEkEkEkEmEmEkEkEkEkEkEkEkEkEkEoEkEmEmEmEmEmEkEkEkEkEkEkEkEkslslslslslslslslslslslslslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEmEmEkEkEkEksXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumumtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKskskskskskskskskskskskskskskskskskskskskskskskskskEkEkEkEkEkEkEmEmEmEmEmEkEkEkEkEkEoEkEkEkEkEkEkEkEkEkEkEkslslslslslslslslslslslslslslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsmsmsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEmEmEkEkEksXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOumumumumumumumumumumtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKskskskskskskskskskskskskskskskskskskskskskskskskEkEkEkEkEkEkEkEkEmEmEkEkEkEkEoEkEkEkEkEkEkEkslslslslslslslslslslslslslslslslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsmsmsmsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEkEmEmEkEkEksXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOumumumumumumumumumumumumumtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKskskskskskskskskskskskskskskskskskskskskskskskskEkEkEkEkEkEkEkEkEkEkEkEoEkEkslslslslslslslslslslslslslslslslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsXsXsXsXsXsXsmsmsmsmsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEkEmEmEkEksXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOumumumumumumumumumumumumumumumumtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKskskskskskskskskskskskskskskskskskskskskskskskEkEkEkEkEkskskskrRslslslslslslslslslslslslslslslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsmsmsmsmsmsmsmsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEkEmEmEkEkEksXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOumumumumumumumumumumumumumumumumumtPtPtPtPtPtPtPtPtPtPtPzSzTsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKskskskskskskskskskskskskskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEkEmEkEkEksXsXsXsXsXsXsXsXsXsXsmsmsmsmsmsmrSumumumumumtOtOtOtOtOtOtOumumumumumumumtPtPtPtPtPtPtPtPtPtPzSzTsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKskskskskskskskskskskskskskskskskskrRslslslslslslslslslslslslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXEkEkEkEmEmEkEkEksXsXsXsXsXsXsmsmsmsmsmsmsmsmsmrSumumumtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKskskskskskskskskskskskskskrRslslslslslslslslslslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsXsXsXsXsmsmsmsmsmsmsmsmsmsXsXsXsXsXsXsXsXsXsXEkEkEmEmEmEkEksXsXsXsXsmsmsmsmsmsmsXsXsXsXsXtNumBMBMBMBMBMBMBMBMBMBMBMtOumumumumumumtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKskskskrRslslslslslslslslslsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsmsmsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsmsmsmsXsXsXsXsXsXAVEkEkEmEmEmEkEksXAVsmsmsmsmsXsXsXsXsXsXsXsXtNumBMBMBMBMBMBMBMBMBMBMBMBMumumumumumumtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsmsXsXsmsmsmAWAWEnEnEnEnEnEnAWAWsmsmsXsXsXsXsXsXsXsXsXsXtNumBMBMBMBMBMBMBMBMBMBMBMBMumumumumumumtPtPtPtPtPtPtPtPtPtPtQtRsYsYsYsYvBvBvBvBvBvBsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsmsmsmAWAWEnEnEnEnEnEnAWAWsmsXsXsXsXsXsXsXsXsXsXsXtNtOBMBMBMBMBMBMBMBMBMBMBMBMumumumumumumtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYvBvBvBvBvBsYsYsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsmsXsXsXAVsXEkEkEmEmEmEkEkAVsXsXsXsXsXsXsXsXsXsXsXsXtNtOBMBMBMBMBMBMBMBMBMBMBMumumumumumumumumtPtPtPtPtPtPtPtPtPtPunsYsYsYsYvBvBvBvBvBsYsYsYBNBOBOBOtRsYsYsYsYvBvBvBvBvBvBvBvBss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsmsXsXsXsXsXsXsXEkEkEkEmEmEkEksXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOumumumumumtOtOtOumumumumumumumumumtPtPtPtPtPtPtPtPtPtPtQtRsYsYsYsYvBvBvBvBsYsYBNBPtPtPtPtQBOtRsYsYsYsYvBvBvBvBvBvBss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsXsXsXsXsXsXsXsXsXsXEkEkEkEmEkEksXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumumtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYvBvBvBvBsYsYBQtPumumtPtPtPtQBOtRsYsYsYsYvBvBvBvBss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEmEmEkEksXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYvBvBvBsYsYsYBQtPtPumumumtPtPtPtQtRsYsYsYsYvBvBvBss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEkEmEkEksXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPtPunsYsYsYvBvBvBsYsYsYBNBPtPtPumumumumumtPtPtQBOtRsYsYvBvBvBss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsmsXsXsXsXsXsXsXsXsmsmsmsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEmEkEkEksXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumumtPtPtPtPtPtPtPtPtPzSBRzTsYsYsYvBvBvBsYsYBNBPtPtPumumtOtOtOumtPtPtPtPunsYsYsYvBvBss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsXsXsXsXsmsmsmsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEmEmEkEksXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumumtPtPtPtPtPzSBRBRBRzTsYsYsYsYsYvBvBvBsYsYBQtPtPumumtOtOtOtOumumumumtPtQtRsYsYsYvBss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsmsXsXsmsmsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEkEmEkEkEksXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumumtPtPBRBRBRzTsYsYsYsYsYsYsYsYsYvBvBvBvBsYBSBTtPumumumtOtOtOtOumumumumtPtQtRsYsYsYss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEmEmEkEksXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumumEkEksYsYsYsYsYsYsYsYsYsYsYsYsYsYvBvBvBsYsYBSBTtPumumumumtOtOtOtOumumumtPtQtRsYsYss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEkEmEmEkEksXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumEkEkEkEkEksYsYsYsYBNBOBOBOBOBOBOtRsYsYvBvBvBsYsYsYBSBTtPtPumumumumumumumumumtPtPunsYsYss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEmEmEkEkEksXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOEkEkEkEkEkEkEkEkEkEksYsYBNBOBPtPtPtPtPtPtPunsYsYsYvBvBvBsYsYsYBSBTtPtPumumumumumumtPtPtPtPunsYsYss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEkEmEkEkEkEksXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOEkEkEkEkEkEkEkEkEkEkEkEkBOBOBPtPtPtPtPtPtPtPtPunsYsYsYsYvBvBvBsYsYsYBSBRBTtPtPtPtPtPtPtPzSBRBRzTsYsYss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEkEkEkEkEkEksXsXsXsXsXsXtNtOtOtOtOtOtOtOtOEkEkEkEkEkEkEkEkEkEkEkEkEkEktPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYvBvBvBvBsYsYsYsYBSBRBRBRBRBRBRBRzTsYsYsYsYsYss
-sjBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEkEkEkEkEkEksXsXsXsXsXtNtOtOtOtOtOtOtOEkEkEkEkEkEkEkEkEkEkEkumtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYvBvBvBvBvBvBvBsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYsYss
-sjBUBUBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEkEkEmEmEkEkEkEkEkEkEkEkEoEkEkEkEkEkEkEkEkEkEkEkEkEkEkEkumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYvBvBvBvBvBvBvBsYsYsYsYsYsYsYsYsYsYsYsYvBvBvBss
-sjBUBUBUBUBUBUBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEkEkEkEmEmEmEkEkEkEkEmEmEqEmEmEmEkEkEkEkEkEkEkEkEkumumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBUBUBUBUBUBUBUBUBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEkEkEkEkEkEkEmEmEmEmEmEqEmEmEmEmEmEmEmEmEmEkEkEkumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBUBUBUBUBUBUBUBUBUBUBUBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpEpEpEpEkEkEkEkEkEkEkEkEkEkEoEkEkEkEkEkEmEmEkEkEkEkEkEkumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBUBUBUBUBUBUBUBUBUBUBUBUBKBKBKBKBKBKBKBKBKBKBKBKBKBUBUBUBUBUBUBUBUBKBUBUBUBUBUBUBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpEpEpEpEpEpsXsXsXsXsXsXsXEkEkEoEkEkEkEkEkEkEkEkEkEkEkEkEkEkEkumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBUBUBUBUBUBUBUBUBUBUBUBUBUBKBKBKBKBKBKBKBKBKBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOEkEkEkEkEkEkEkEkEkEkEkEkEkumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBUBUBUBUBUBUBUBUBUBUBUBUBUBUBKBKBKBKBKBUBUBUBUBUBUBUBUBUBUBUBUBUBUBWBWBWBWBWBWBWBWBWBWBWBWBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOEkEkEkEkEkEkEkEkEkEkEkEkEkEktPtPtPtPtPtPtPtPtPtPtPtPtPzSzTsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBWBWBWBWBUBUBUBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBUBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOEkEkEkEkEkEkEkEktPtPtPtPtPtPtPtPtPtPtPzSzTsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBUBUBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumEkEkEkEkEkEkEktPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBUBUBUBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumEkEkEkEkEkEkEktPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBUBUBUBUBUBUBUBUBUBUBUBUBUBUBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBUBUBUBKBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumEkEkEkEkEkEkBRBTtPtPtPtPtPtPunsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBUBUBUBUBUBUBUBUBUBUBUBUBUBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBUBUBUBKBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumEkEkEkEksYBSBTtPtPtPtPzSzTsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBUBUBUBUBUBUBUBUBUBUBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBUBUBUBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPEkEkEksYsYBSBRBRBTtPunsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBUBUBUBUBUBUBUBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBUBUBKBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsQsXsQsXAVAWAWAVsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPEkEksYsYsYsYsYBSBRzTsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBUBUBUBUBUBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBUBUBUBKBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpEpEpEpEpEpErErEpEpEpEpEpEpEpEpsXsXsXsXsXsXsXEpEpEpEpEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtQBOBOtRsYsYsYsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBXBXBUBUBUBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBUBUBUBUBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpEpEpEpEpEpEpEpErErEpEpEpEpEpEpEpEpEpsXsXsXsXEpEpEpEpEpEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumumtPtPtPtPtPtPtPtQtRsYsYsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBXBXBXBUBUBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBUBUBUBUBUBKBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpEpEpEpEpEpEpEpEpEpErErEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumumtPtPtPtPtPtPtPtPtQBOtRsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBXBXBXBXBUBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBUBUBUBUBUBUBUBKBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpEpEpEpEpEpEpEpEpEpEpErErEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumumtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBXBXBXBXBXBUBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBUBUBUBUBUBUBUBUBUBKBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpEpEpEpEpEpEpEpsQsXsQsXAVAWAWAVsXsXsXEpEpEpEpEpEpEpEpEpEpEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumumtPtPtPtPtPtPtPtPtPtPtQtRsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBUBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBUBUBUBUBUBUBUBUBUBUBKBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpEpEpEpEpsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXEpEpEpEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumumtPtPtPtPtPtPtPtPtPtPtPtQtRsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBUBUBUBUBUBUBUBUBUBUBUBKBKBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpEpEpEpEpEpsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBUBUBWBWBWBWBUBUBUBWBWBWBWBWBWBWBWBWBWBWBWBWBWBWBUBUBUBUBUBUBUBUBUBUBUBUBXBKBKBKBKBKtNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpEpEpEpEpsXsXsXsXsXsXsXsXsXsXsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBUBUBUBUBUBUBUBUBUBUBWBWBWBWBWBWBWBWBWBWBWBWBUBUBUBUBUBUBUBUBUBUBUBUBUBXBXBXBXBXBYsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBXBXBXBXBYBZBZBZsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtQtRsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBUBXBXBXBYBZBZBZBZBZBZsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBUBUBXBUBUBUBXBXBXBXBXBYBZBZBZBZBZBZBZsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtQtRsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBYBZBZBZBZBZBZBZBZBZBZsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBYBZBZBZBZBZBZBZBZBZBZBZBZBZsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBYBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBYBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPtQtRsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBYBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBYBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBYBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBYBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBYBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBYBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBYBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBYBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPzSzTsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBYBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBYBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPzSzTsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBYBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPtPunsYsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-sjBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBYBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZBZsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXEpEpEpsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsmsmsmsmsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtNtOtOtOtOtOtOtOtOtOtOtOtOtOumumumumumumtPtPtPtPtPtPtPtPtPtPtPtPzSzTsYsYsYsYsYsYvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBss
-CaCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbCbBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYBYtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNEsEsEstNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNrSrSrSrStNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNCcCcCcCcCcCcCcCcCcCcCcCcCcCdCdCdCdCdCdCeCeCeCeCeCeCeCeCeCeCeCeCfCgCgCgCgCgCgCgChChChChChChChChChChChChChChChChChChChChChCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmEtEtEtCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCtCuCvCvCvCvCvCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClCmCmCmCmCmCmCmCmCmCmCmCmCmCmEtEtEtCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCxCvCvCvCvCvCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClCmCmCmCmCmCmCmCmCmCmCmCmEtEtEtCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCtCuCvCvCvCvCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClCmCmCmCmCmCmCmCmEtEtEtCmCmCmCmCmCmCmCmCmCmCmCmCmCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCxCvCvCvCvCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClCmCmCmCmEtEtEtEtEtCmCmCmCmCmCmCmCmCmCmCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCxCvCvCvCvCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtCmCmCmCmCmCmCmCmCmCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCxCvCvCvCvCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtCmCmCmCmCmCmCmCmCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCtCuCvCvCvCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtCmCmCmCmCmCmCmCmCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCxCvCvCvCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtCmCmCmCmCmCmCmCmCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCxCvCvCvCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtCmCmCmCmCmCmCmCmCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCtCuCvCvCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtCmCmCmCmCmCmCmCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCxCvCvCvCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtCmCmCmCmCmCmCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCtCuCvCvCvCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtCmCmCmCmCmCmCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCxCvCvCvCvCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEtCmCmCmCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCxCvCvCvCvCvCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEtEtEtCmCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCxCvCvCvCvCvCvCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEtEtEtEtCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCxCvCvCvCvCvCvCvCvCwCwCwCwCwCwCwCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEuEtEtEtEtEtCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCxCvCvCvCvCvCvCvCvCvCwCwCwCwCwCwCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEuEuEuEtEtEtEtCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCtCzCuCvCvCvCvCvCvCvCwCwCwCwCwCwCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEuEuEuEuEtEtEtEtEtCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCtCuCvCvCvCvCvCvCvCwCwCwCwCwCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEuEuEuEuEuEuEtEtEtEtCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCtCuCvCvCvCvCvCvCwCwCwCwCwCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEuEuEuEuEuEuEtEtEtEtEtCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCxCvCvCvCvCvCvCvCwCwCwCwCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEuEuEuEuEuEuEuEtEtEtEtEtCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCtCuCvCvCvCvCvCvCwCwCwCwCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEuEuEuEuEuEuEuEuEtEtEtEtEtCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCtCzCuCvCvCvCvCvCwCwCwCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEuEuEuEuEuEuEuEuEtEtEtEtEtCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCtCuCvCvCvCvCwCwCwCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEtEtEtEtCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCxCvCvCvCvCvCwCwCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEtEtEtEtCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCtCuCvCvCvCvCwCwCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCtCuCvCvCvCvCwCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCxCvCvCvCvCvCwCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtEtCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCtCvCvCvCvCvCvCwCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtEtCoCoCoCoCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCtCuCvCvCvCvCvCwCwCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtEtEtEtEtCoCoCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCtCuCvCvCvCvCvCvCwCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtEtEtEtEtEtCoCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCtCzCuCvCvCvCvCvCwCwCwCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtEtEtEtEtCoCoCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCtCuCvCvCvCvCvCvCvCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtEtEtEtEtCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCtCuCvCvCvCvCvCvCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtEtEtEtEtCoCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCtCuCvCvCvCvCvCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtEtEtEtEtCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCtCzCzCuCvCvCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtEtEtEtCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCtCzCzCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtEtEtCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtEtCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtEtEtCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtEtCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCACACACACrCrCrCACrCrCrCrCrCACrCrCrCACACACACrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtEtCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCACACACACrCrCrCACACACACACACACrCrCrCACACACACrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCACACACACrCrCACACACACACACACACACrCrCACACACACrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCACACACACrCrCACACACACACACACACACrCrCACACACACrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCsCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCACACACACACACACACACACACACACACACACACACACACACrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCsCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtCoCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCACACACACACACACACACACACACACACACACACACACACACrCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCsCsCsCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCACACACACACACACACACACACACACACACACACACACACACrCrCrCrCrCrCrCrCrCrCrCsCsCsCsCsCsCsCsCsCsCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtEtCmCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCACACACACACACACACACACACACACACACACACACACACACrCrCrCrCrCrCrCrCrCrCrCrCrCrCsCsCsCsCsCsCsCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCACACACACACACACACACACACACACACACACACACACACACrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCsCsCsCsCsCsCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCACACACACACACACACACACACACACACACACACACACACACrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCsCsCsCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtCmCmCmCmCmCmCoCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCACACACACACACACACACACACACACACACACACACACACACACACrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtCmCmCmCmCmCmCmCmCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCACACACACACACACACACACACACACACACACACACACACACACACrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCACACACACACACACACACACACACACACACACACACACACACrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtEtEtCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCACACACACACACACACACACACACACrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtEtEtEtEtCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCACACACACACACACACACACACACACrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEtEtEtEtEtEtEtEtEuEuEuEtEtEtEtEtEtEtEtEtEtEtEtCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCACACACACACACACACACACACACACrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtCmCmCmCmCmCmCmCmCmCmCmCmCmCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCACACACACACACACACACACACACACrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCrCACACACACACACACACACrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCrCrCACACACACACACACrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCkClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClEtEtEtEtClClClClClClCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCpClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCoCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCi
-CaCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCjCpClClClClClClClClClClClClClClClClClClClClClCBClClClClClClClClClClClClClCBClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClClCmCmCmCmCmCmCmCmCmCmCmCmCmCmEvCmCmCmCmCmCmCmCmCmCmCmCmCmEvCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCmCpCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCqCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCrCi
-CaCaCaCaCaCaCaCaCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCaCaCaCaCaCaCaCaCaCaCaCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCECECECECECECECECECECECECECDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCECECECECECECECECECECECECECDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCiCiCiCiCiCiCiCiCiCiCiCiCiCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapaYaZbabababababababababbaYaZbabababababababababbaYapapaHbcbdbebebfbgaIbhbibibibibibibjaJbkblaJbmbmbmaDamamamapapapapapapapapapapapapapapapapapbnbnbobpbobnbnapapapapapapapapapapapapapapapapapapakakakakakakakakajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbqbrbrbsbsbsbsbsbrbrbtbubqbvbvbrbrbrbrbrbvbvbtapapapaIbwbebxbybzbAbBbCbDbEbFbEbGbHbIbJbKbLbMbmbmbmaDamamamapapapapapapapapapapapapbNbObPbObNbnbQbRbSbTbUbnbVbWbXbWbVapapapapapapapapapapapapapapakakakakakakakajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbqbrbsbsbsbsbsbsbsbrbtbubqbvbvbvbrbrbrbvbvbvbtapapapaIbYbZcacbcccdaIcecfbicgchcichcjaKckclaKbmbmbmaDamamamapapapapapapapapapapapbNbNcmcncocpcqbTcrcsctbTcucvcwcxcybVbVapapapapapapapapapapapapapakakakakakakakajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagczagagagczagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbqbrbsbsbsbsbsbsbsbrbtbubqbvbvbvbvbvbvbvbvbvbtapapapaHcAcAcBcBcBcBaHcCcDcEaKcFcGcHcIcJcJcJcJcKcKcKcLamamamapapapapapapapapapapbNbNcMcMcNcOcPcQcRcScTcUcVcQcWcXcXcYcZbVbVapapapapapapapapapapapapakakakakakakakajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagczagagagczagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbqbrbsbsbsbsbsbsbsbrbtbubqbvbvbvbvbvbvbvbvbvbtapapapaHcBcBcBdadbdcdddecfdfcJcJcJcJcJcJdgdhdidjdkdkdlamamamapapapapapapapapapapbOdmdndodpcOdqcQdrdsdtdudvcQdwcXcXdxdydzbWapapapapapapapapapapapapakakakakakakakajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagczagagagczagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbqbrbsbsbsbsbsbsbsbrbtbubqbvbvbvbvbvbvbvbvbvbtapapapaHdAdBcBdCdDdEdddFcfdGcJdHdIdJdKdLdMdNdOdPdPdPdQamamamapapapapapapapapapapbPdRcOdScOdTdUbOdVdWdWdWdXbWdYdZcXeaebecbXapapapapapapapapapapapapakakakakakakakajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagczczczczczagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbqbrbsbsbsbsbsbsbsbrbtbubqbvbvbvbvbvbvbvbvbvbtapapapaHaHaHaHedeeddddefegehcJeiejejcJejdgcJcJekelcKemamamamapapapapapapapapapapbOeneoepeqereseteuevewevexeyezeAeBeCeDeEbWapapapapapapapapapapapapakakakakakakakajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagczczczczczczczczczagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbqbrbsbsbsbsbsbsbsbrbtbubqbvbvbvbvbvbvbvbvbvbtbmbmbmaKeFeGaKeHeIeJeKbheLbieMeNeNeOePejeQcJeReReReReSamamamapapapapapapapapapapbNeTeUeVeWeXeYbOeZfafbfcfdbWfefffgfhfifjbVapapapapapapapapapapapapakakakakakakakajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagczczczczczczczczczczczagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbqbsbsbsbsbsbsbsbsbsbtbubqbrbvbvbvbvbvbvbvbrbtbmbmfkflfmfnfofpfqfrfsfrftfufvfwfxfyfzfAfBcJeReReReReSamamamamapapapapapapapbNbNbNfCfCfCfDfEfFfCcQbofGbocQfHfIfJfKfHfHfHbVbVapapapapapapapapapapapakakakakakakakajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagczczczczczczczczczczczagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbqbsbsbsbsbsbsbsbsbsbtbubqbrbvbvbvbvbvbvbvbrbtbmbmfLaJfMfNaJfOfPfQcebieLbieMeNfRfSfTejfUcJeReReReReSamamamamamamamamamamfVbOfWfXbOfYfZgacOcOgbbOgcgdgebWgfggggghgigggggjbWapapapapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagczczczczczczczczczczczagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbqbsbsbsbsbsbsbsbsbsbtbubqbrbvbvbvbvbvbvbvbrbtamamamaJaJgkaJglglaJgmgngogpcJgqejejgrejdgcJeReReReRgsamamamamamamamamamamfVgtgugvgwgxcOgyeqeqgzgAgBgCgDgEgFgGgGgHgggggIgJbWapapapapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagczczczczczczczczczczczagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbqbsbsbsbsbsbsbsbsbsbtbubqbrbvbvbvbvbvbvbvbrbtamamamaLgKgLgMgLgNaLgOgPgQgPcJgRgSgTgUgVgWcJgXgXgXgXgYamamamamamamamamamamgZbNhahbbNhchdhehfhghhfChihjhkfHhlhmhnhohphqhrhsbVapapapapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagczczczczczczczczczagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbqbsbsbsbsbsbsbsbsbsbtbubqbrbvbvbvbvbvbvbvbrbtapamamaLaLhthuhvhwhxhyhzhAhzhBaLaLaLaLaLaLaLapapapapaqamamamamamapapapapapapbNhChChChChChDhDhDhEhEhFhjhGhHhHhHhHhHhIhIhIhHhHapapapapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagczczczczczczczagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbqbsbsbsbrbrbrbsbsbsbtbubqbrbvbvbvbvbvbvbvbrbtapamamamaLhJhKhzhLhMhNhOhPhQhRhShThUhUhVaLapapapapapaqamamamamapapapapapapapaphChWhXhYhChZiaibicidhFhjhGhHieifigihiiijikilhHapapapapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagczczczczczagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapbqbsbsbrbrbrbrbrbsbsbtbubqbrbrbvbvbvbvbvbrbrbtapamamamaLimhKhzinioipiqirisitiuiuiviwixaLapapapapapaqamamamapapapapapapapapaphCiyiziAhCiBiCiCiDhDiEiFiGhHiHiIiIiIiJiJiIiKhHapapapapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapiLiMiNiNiNiNiNiNiNiNiNiOiLiMiNiNiNiNiNiNiNiNiNiOiLapamamaLiPiQiRhLhziSiTiUiViWiXiYiZjajbaLapapapapapaqamamamapapapapapapapapaphChCjchChCjdjejfjghDhFhjjhhHiJiJjiikikiJiJiIhIapapapapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapaLaMapapapamamamapapapaMaLaMapapapamamamapapapaMaLapamamaLaLjjjkjljmaLaLjnaLaLjojpjqjqaLaLapapapapapaqamamamapapapapapapapapapjrjsjtjujvhDhDjwhDhDjxhjjyhIjziJjAjBjCiIiJiJhIapapapapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapamamamamapapapapapapapapamamamapapapapapamamamaLaLaLaLjDaLjEjFjEaLaLaLaLaLaLapapapapapapaqamamamapapapapapapapapapjrjGjHjIjJjKjLjMjNjOgchjjPhIjQiJjRiJiIiIiJiJhIapamamapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapamamamamamapapapapapapapapamamamapapapapamamamjSjTjTjTjUjTjTjVjWjWjWjWjWjWjWjWjWjWjWjWjWjXjWjWjWjWjWjWjWjWjWjWjWjWjYjZkakbkckdkekfkekgkekhkikjkkklkmklklkniJiJhIapapamapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapamamamamamamamamamamamamamamamamamamamamamamaqamamamamamamamamamamamamamamamamamamamamaqamamamapapapapapapapapapjrkojHkpjvkqkrksktkukvkwkxhIkyiIjAiJiJiJiJiJhHapapapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapamamamamamamamamamamamamamamamamamamamamaqamamamamamamamamamamamamamamamamamamamamaqamamamapapapapapapapapapjrkzkAkBjvkCkDkEkFkFjOkGkHhHhHkIkJkKkLkMkNkOhHapapapapamapapapapapajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapamamamamamapapapapapapapapapaqapapapapapapapapapapapapapapapapapapapapaqamamamapapapapapapapapapkPkQkQkQkQkQkQkQkPkRkSkTkUkVhHhIkWhIhIhHhHhHhHapapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapamamamamapapkXkXkXkXkYkYkZlakZlblblblblclclblblblbapapapapapapapapapaqamamamapapapapapapapapapkPldlelflelglhliljlklllmlngcjOlolplqlrlsltlulvlwamapapapapapapapajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamapapkXkXlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlblbapapapapapapapapaqlOlOlPapapapapapapapapapkPlQlRlRlRlRlSlTlUlVlWlXlYlZmambmcmdmemfmgmhmimjamamamapapapapajajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamapapkXmklAlAlAmlmmlCmnmolFmpmqmrmsmtmumumvmwlbapapapapapapapapmxmymzmAmAapapapapapapapapmBmCmDmDmDmDmEmFmBhimGmHmIgcjOmJmKmLmMkFmNmOkFmPapamamapapapapajajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamapapkXlxlAmQlAmRlAlCmSmTlFmUlMmVmWmXmYmZlMnalbapapapapapapapapnbncndnemyapapapapapapapapmBnfngnfngnfnfnhkPnigcnjkUnknlnmnnnmnmkFkFkFkFapapapamamapapajajajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamapapkXnolAnpnqnrnslCntnulFnvnwnxnynznAnAnBnClbapapapapapapapapnbnDnEnFmyapapapapapapapapkPnGnHnInJnKnfnLkPkFjOnMkHnlnlnNnOnPnQnRnlapapapapapapamapapajajajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamapapkXnSnTlAlAnUnVnWnXnYlFnZlMoalMoboclMlMnZlbapapapapapapapmAmxmyodmAmAmAapapapapapapapkPoeofogohoinfojkQokgciFolomonnPooopnmnmnlapapapapapapamapapajajajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamapoqkXkXkXkYkYorosnWotoulFovlclclFowlFlclcovlbmAmAmymymAmymymAoxoyozoAoBmAmymymAmymymAmAkPkQmBoCmBkQmBmBkQoDgcnjkUnmoEnPoFnPoGoHnlapapapapapapamapapajajajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamoIoJoKoLoMoNoOoPoQoRoSoToUoVoWoWoXoYoZoWpaoVoWpbpcpdpdpepdpfpdpgphpipjpkplpdpdpmpfpdpdpbpnpolkpppqpoprpopsptptpupvnmpwnPoFpxnmnmnlnlnlapapapapamapapajajajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamampypzpApBpCpDotpEpFpGpHpIpJpGpGpKpGpLpGpGpMpGpNpOpPpQpRpRpRpSpRpTpUpVpWpRpRpRpQpRpSpRpXpYgBlZlZpZqaqaqbqaqaqakeqcqdnmqenPoFpxnmqfqgqhnlapapapapapapapajajajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamqioqqjqkoqqlqmqnotqoqpqqqrqsqtquotqnqvqwqxqyqzqAqBqCqBqDqBqBqEqFqGqHqIqJqBqBqCqKqBqBqBqAqLqMqMqNqMqMqMqMqOgcqPqQqRnmqSqTqUqVqWqXqYqZnlapapapapapapapajajajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamapoqoqoqoqraraqnotrararararararaotqnraraoqoqoqmAmAmymymAmymymArbrcnErdremAmymymAmymymAmAkFrfrgrhrirjrkrlrmgcrnrorprqrrnPrsrtnmqfruqhnlapapapapapapapajajajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamapapoqrvrwrxryrzrArBrCrDrarErFrGrArzrHrIrJrKoqapapapapapapapmArLmArMmymAmAapapapapapapapkFrNrOrOrOrOrOrOrOrOrPrQrRnmnmnmrSnmnmnmrTnlnlapapapapapapapajajajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamapapoJrUrVrWraqnrXrarYrZrasasbrascqnrasdsesfoJapapapapapapapapsgshndnemyapapapapapapapapaprNsisjskskslsmsnsospsqsrssstsusvswsxsyszrNapapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamapapoqrarararaqnotrararararararaotqnrarararaoqapapapapapapapapsgsAsBsCmyapapapapapapapapapsDsEsFsGsHsHsHsHsHsHsIsHsHsHsHsHsHsJsKsEsDapapapapamapapapapajajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamamapoqsLrwrxsMsNsOsPsQsRrasSsTsUsVsNsWrIrJsXoqapapapapapapapaprLmAsYmymAapapapapapapapapapsZtasEtbtctdtetetetetetetftftftgtcthsEtisZapapapapamapapapapapajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapamamamapoqoqtjtkraoJoJratltmratntoraoJoJratptqoqoqapapapapapapapapaDtrlOlOapapapapapapapapapapsDsEtctbtctstttttttttttttutututvtcthtcsEsDapapapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aaagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagaEapapapapapapapapapapapapapapapapapapapapapapapapapapapamamapapoqoJoqoqapapoqoqoJoqoJoqoqapapoqoqoJoqapapapapapapapapapaDamamamapapapapapapapapapaprNrNtwtxtctstttttttytztAtutututvtctBtCrNrNapapapapapapapapapapapajajajajajajajajajajajajajajajajajajajajajajajaiananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananao
+aatDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtDtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtFtFtFtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtGtFtFtFtEtEtEtEtEtEtEtEtEtEtEtHtItJtKtLtMtMtMtNtOtPtQtQtQtRtKtStTtHtEtEtEtEtEtEtEtEtEtEtEtEtUtUtUtUtUtUtUtUtUtUtUtUtUtUtUtUtUtUtUtUtUtUtUtUtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVtVao
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtZtZtZtZtZtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuatZtZtZtZtYtYtYtYtYtYtYtYtYtYsZsEubtctstttttttututututututvtcucsEsZtYtYtYtYtYtYtYtYtYtYtYtYudududududududududududududududududududududududtUueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueuf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtZtZtZtZtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuatZtZtZtZtYtYtYtYtYtYtYtYtYtYsDtctctcuguhuhuhuiuiuiuiuiuiujtctctcsDtYtYtYtYtYtYtYtYtYtYtYtYudududududududududududududududududududududududtUueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueuf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtZtZtZtZtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuatZtZtZtZtYtYtYtYtYtYtYtYtYtYrNukultctctctctctctctctctctctctctcumrNtYtYtYtZtYtYtYtYtYtYtYtYudududududududududududududududududududududududtUueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueuf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtZtZtZtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuatZtZtZtZtYtYtYtYtYtYtYtYtYtYtYrNrNsEunuouptctctctctcuquoursErNrNtYtYtYtYtZtYtYtYtYtYtYtYtYtYududududududududududududududududududududududtUueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueuf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYmAustZtZtYtYtYtYtYtYtYutmAuttYtYtYtYtYtYtYtYtYuumAtYuatYtZtZtZtYtYtYtYtYtYtYtYtYtYtYtYrNsDsZsDrNunuvuwuxunrNsDsZsDrNtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYududududududududududududududududududududududtUueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueuf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuyuzuAuAuAuAuAuAuAuAuAuBuyuzuAuAuAuAuAuAuAuAuAuBuytYuatYtZtZtZtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYrNrNsDsZsDrNrNtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYududududududududududududududududududududududtUueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueuf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuCuDuDuEuEuEuEuEuDuDuFutuCuGuGuDuDuDuDuDuGuGuFtYtYuatZtZtZtZtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtZtYtYtYtYtYtYtYtYtYtYtYtYtYudududududududududududududududududududududtUueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueuf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuCuDuEuEuEuEuEuEuEuDuFutuCuGuGuGuDuDuDuGuGuGuFtYtZuatZtZtZtZtZtZtZtZtZtZtZtZtZtZtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtZtZtYtYtYtYtYtYtYtYtYtYtYtYtYudududududududududududududududududududududtUueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueuf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuCuDuEuEuEuEuEuEuEuDuFutuCuGuGuGuGuGuGuGuGuGuFtZtZuatZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYududududududududududududududududududududtUueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueuf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuCuDuEuEuEuEuEuEuEuDuFutuCuGuGuGuGuGuGuGuGuGuFtZtZuatYtZtZtZtYtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYududududududududududududududududududududtUueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueuf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuCuDuEuEuEuEuEuEuEuDuFutuCuGuGuGuGuGuGuGuGuGuFtZtYuHuIuIuIuIuIuIuIuIuIuIuIuIuIuJtZtZtZtZtZtZtZtZtYtYtYtYtYtZtZtZtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYududududududududududududududududududtUueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueuf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuCuDuEuEuEuEuEuEuEuDuFutuCuGuGuGuGuGuGuGuGuGuFtYtYtYtZtZtZtZtYtYtYtYtYtYtYtYtYuatYtYtYtYtZtZtZtZtZtZtYtYtZtZtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYudududududududududududududududududtUueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueuf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuCuDuEuEuEuEuEuEuEuDuFutuCuGuGuGuGuGuGuGuGuGuFtYtYtYtZtZtZtYtYtYtYtYtYtYtYtYtYuatYtYtYtYtYtYtZtZtZtZtZtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuKuKududududududududududududududududtUueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueuLuLuLuLuLuLuf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuCuEuEuEuEuEuEuEuEuEuFutuCuDuGuGuGuGuGuGuGuDuFtYtYtYtZtZtZtYtYtYtYtYtYtYtYtYtYuatYtYtYtYtYtYtYtYtZtZtZtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuKuKuKuKuKududududududududududududududtUueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueuLuLuLuLuLuLuLuLuLuLuf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuCuEuEuEuEuEuEuEuEuEuFutuCuDuGuGuGuGuGuGuGuDuFtYtYtYtZtZtZtYtYtYtYtYtYtYtYtYtYuMtYtYtYtYtYtYtYtYuNuOuOtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuKuKuKuKuKuKuKududududududududududududtUueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueuLuLuLuLuLuLuLuLuLuLuLuLuf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuCuEuEuEuEuEuEuEuEuEuFutuCuDuGuGuGuGuGuGuGuDuFtYtYtYtZtZtZtYtYtYtYtYtYtYtYtYtYuMtYtYtYtYtYtYtYuPuQuRuSuPtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKudududududududtUueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuCuEuEuEuEuEuEuEuEuEuFutuCuDuGuGuGuGuGuGuGuDuFtYtYtYtZtZtZtYtYtYtYtYuTuTuTuUuUuVuUuWuWuWuWuWuWuWuXuYuZuQuQuQuSvauSuQuQuSuQvbuQuSuQtYtYtYtYtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKududududtUueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueueuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuCuEuEuEuEuEuEuEuEuEuFutuCuDuGuGuGuGuGuGuGuDuFtYtYtYtZtZtZtYtYtYtYuTuTvcvdvevfvgvhvivjvkvlvmvnuWvovpvquQvrvsvtvuvvvwvbvxvxvxvyvzuQuQtYtYtYtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBueueueueueueueueueueueueuevCvCvCvCvCvCvCvCvCvCvDvEuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuCuEuEuEuDuDuDuEuEuEuFutuCuDuGuGuGuGuGuGuGuDuFtYtYtYtZtZtZtYtYtYtYuTvFvGvHvevIvJvKvivLvMvNvOvPuWuQvQuSuQvRvSvTvUvVvWvbvxvxvxvXvYvbuQtYtYtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuCuEuEuDuDuDuDuDuEuEuFutuCuDuDuGuGuGuGuGuDuDuFtYtYtYtZtZtZtYtYtYtYuTwbwcwbvevewdveviviviweviviviwfwgwhvbwiwjwkwlwmwnvbvbvbvbwovbvbuQtYtYtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvDvEuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYwpwqwrwrwrwrwrwrwrwrwrwswpwqwrwrwrwrwrwrwrwrwrwswptYtYtZtZtZtYtYtYtYuSwtwuwvwwwxwywzwAwBwCwDwCwEwFwCwGwCwHwIwJwKwLwCwMwNwKwCwOwPwQwRuStYtYtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYmAwStYtYtYtYtYtYtYtYtYwSmAwStYtYtYtYtYtYtYtYtYwSmAtYtYtZtZtZtYtYtYtYvawTwUwVwWwXwYwZxaxbxcxdxcxcxexcxfxcxgxhxcxixcxcxcxjxkxlxmxnwTwTvatYtYtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLxoxoxoxoxouf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtZtZtZtYtYtYtYuSxpxqxrxsxsxtxsxsxuxvxwxxxyuSuSxzuSuSuQxAxBxqwTxCxCxDxExCxFxqxGxHxItYtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtZtZtZtYtYtYxsxsxJxKxJxLxMxNxOxLxPxQxPxsxsxRxSxTxUxVxCxCxWxXxWxCxYxZyaxCybxXycxCxCtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtZtZtZtZtYtYxsxsydyeyfygxsyhyiyjxsykylymynxsxsyoypyqxCxCyrysytyuyvyaywyayxyyyzyAyBxCxCtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtZtZtZtZtYtYtYxsyCyDyEyDyDxsxsyFxsxsyGyHyEyIyJxsyKyLyMxCyNyOyPyQyRySyaywyayTyUyVyWyWyXxCtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtZtZtZtZtYtYxsxsxsxsxsyYyEyDyZzazbzczdyDyEzexsxsxsxsxsxCxCzfyayWzgzhzizjzkyazlzmznzoyNyNxCxCxCtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtZtZtZtZtZtYtYtYxszpzqzrzsztyDzuyEyEzvyEyEzuyDzwzxzrzqzyxszzzAzBzCyWzDzEzFyaywyazGzHzIyWxWzJzKyaxWuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtZtZtZtZtZtZtYtYtYtYxszLzLzLzMzNyEzOzPzQzRzSzTzUzVzWzXzLzLzLxszYzZAaAbAcAdAeAfyaywyaAgAhAiAjxWyayaAkxXuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtZtZtZtZtZtZtYtYtYtYtYtYxszLzLzLAlAmyDyEyDyDAnyDyDyEAoApzxzLzLzLxsAqArArzCAsyayayayaAtAuAuAvAuAuAwAuAxAkxWuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtZtZtZtZtZtZtZtYtYtYtYtYtYtYxsAyAyAyAzAAyDyEABACADAEyDyEAoAFAGAHAHAHxsAIAJAJAKzmALAMAMANAOAPyWyWAQARyNASATAUxCuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtZtZtZtZtZtZtZtYtYtYtYtYtYtYtYtYxszLzLzLAVAWyDyEyDyDAXyDyDyEAoAYAZzLzLzLxCBaBbBcAKAsyayayaBdBeBfzjzjzjzjBgzjBhAkxWuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWBitXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtZtZtZtZtZtZtYtYtYtYtYtYtYtYtYtYtYxszLBjzLBkzNyEBlBmBnBozQBpBqBrzWBszLzLzLxCBtyWBuBvBwBxByBzBdyWyaBABBBCBDxWBEyaAkxXuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCBFBGuLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWBiBiBitXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtZtZtZtZtZtYtYtYtYtYtYtYtYtYtYtYtYtYxsBHBIzrBJBKyDzuyEyEyEyEyEzuAoBLBMzrBIBNxCBOBPyWAKyWBQBRBSBdyWyaBTBUBVyWxWyaBWBXxWuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWBiBiBiBitXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtZtZtZtZtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYxsxsxsxsxsBYyEyDyEyDyDyDyEyDBrBZxsxsxsxsxCxCxCCaCbyWCcAMCdCeCfzjCgzhChCiyNCjxCxCxCuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWBiBiBiBiBitXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtZtZtZtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYxsCkyDyEClCmCnCoCpCqCnCrCsCtCuCvCwCxCyCyxCCzCACBCCyWySBdCDyayTyWyWCECFCGxCuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCBFBGuLuLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWCHCHBiBiBiBitXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYCICJCJCItYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYxsxsCKyDxsCLCMCNAyCOCPCQxsyDCRxsxsCyCyutxCxCCSCTyNxWxWCUyNCVxWxWyNCFCWxCxCuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWBiCHCHBiBiBiBiBitXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYBiCXCXBiBiBiBitYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYxsxsCYxsCZzLzLAyzLzLCZxsDaxsxsDbDcDcutDdxCxCDeyNDfyaDgDhDiDjyaCjCGxCxCuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWBiBiBiBiCHBiBiBiBiBitXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYBiBiBiCXCXCHCHBiBiBiBiBiBiBiBiBiBiBiBiBiBiBiBiBiBitYxsxsxsDkzLzLAyzLBjDlxsxsxstYDmDmDmDmDmtYxCxCxCDnyaDoATDpyaDqxCxCxCuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCBFBGuLuLuLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWtXBiBiBiCHCHCHBiBiBiBiBiBiBiBiBitXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYBiBiBiCHCXCXCHCHCHCHCHBiBiBiBiBiBiBiBiBiBiBiBiBiBiBiBitYtYxsDrzLzLAyzLzLDsxstYtYtYtYtYtYtYtYtYtYtYxCyaAkAkDtAkAkDuxCuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWtXtXBiBiBiBiCHCHBiBiBiBiBiBiBiBiBiBiBitXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYBiBiBiBiBiCHCHCXCXCHBiBiCHCHCHCHCHCHCHCHCHCHCHCHCHCHCHCHCHBiBiBixsDvDvDvxsxsxsxsxstYtYtYtYtYtYtYtYtYtYuKxCxWxXxWxCxWxXxWxCuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWtXtXtXBiBiBiBiBiBiBiBiBiBiBiBiBiBiBiBiBiBitXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYBiBiBiBiCHCHCHCHBiCXCXBiBiBiBiBiBiBiBiBiBiCHCHCHBiCHCHCHCHCHCHCHBiBiBitYtYtYtYtYtYtYtYtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWtXtXtXtXtXtXBiBiBiBiBiBiBiBiBiCHCHBiBiBiBiBiBiBitXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYBiBiBiBiBiCHCHBiBiBiBiCXCXBiBiBiBiBiBiBiBiBiBiBiBiBiBiBiBiBiBiBiCHCHCHCHBiBiBiBiBiBitYtYtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvDvEuLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWtXtXtXtXtXtXtXtXtXtXBiBiBiBiBiBiCHCHCHBiBiBiBiBiBiBitXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYBiBiBiBiBiBiBiBiBiBiBiBiBiCXCXBiBitYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYBiBiBiBiCHCHCHCHCHBiBiBiBiBiBiBiBiuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXBiBiBiBiBiCHCHCHBiBiBiBiBiBiBitXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYBiBiBiBiBiBiBiBiBiBiBiBitYCICJCJCItYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYBiBiBiBiBiCHCHCHCHBiBiBiBiBiBiBiBiBiBiBiuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvDvEuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXBiBiBiBiBiBiBiBiBiBiBiBiBiBiBitXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYBiBiBiBiBiBiBiBiBiBiBitYtYtYtYtYtZtZtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYBiBiBiBiBiBiCHCHCHCHCHCHBiBiBiBiBiBiBiBiuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXBiBiBiBiBiBiCHCHCHBiBiBiBiBiBitXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYBiBiBiCHCHBiBiBiBiBitYtYtYtYtYtYtYtZtZtZtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuKuKuKuKBiBiBiBiBiBiBiCHCHCHCHCHCHCHBiBiBiBiBiBiuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXBiBiBiBiBiBiCHCHBiBiBiBiBiBitXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYBiBiBiBiCHCHBiBiBiBitYtYtYtYtYtYtYtYtYtYtZtZtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKBiBiBiBiBiBiBiBiCHCHCHCHBiBiBiBiBiBiuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvDvEuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXBiBiBiBiCHCHCHBiBiBiBiBitXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYBiBiBiBiBiCHBiBiBitYtYtYtYtYtYtYtYtYtYtYtYtYtZtZtYtYtYtYtYtYtYtYtYtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiBiBiBiBiBiBiBiCHBiBiBiBiBiBiBiuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXBiBiBiBiBiBiBiBiBiBiBiBitXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYBiBiBiBiBiBiBiBiBitYtYtYtYtYtYtYtYtYtYtYtYtYtYtZtZtZtYtYtYtYtYtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiBiBiBiBiCHCHBiBiBiBiBiBiuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXBiBiBiBiBiBiBiBiBiBiBitXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYBiBiBiBiBiBiBiBiBitYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtZtZtYtYtYtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiBiBiBiCHCHBiBiBiBiBiuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvDvEuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDwtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXBiBiBiBiBiBiBiBiBiBitXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYBiBiBiBiBiBiBiBiBitYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtZtZtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiBiBiCHCHCHBiBiBiuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDwDwtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXBiBiBiBiCHCHBiBiBiBitXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYBiBiBiCHCHBiBiBiBitYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtZtZtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiBiBiBiCHBiBiBiuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDwDwtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXBiBiBiBiCHCHBiBiBiBiBitXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYBiBiBiCHCHCHBiBiBitYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiBiBiCHBiBiBiuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDwDwDwtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXBiBiBiCHCHBiBiBiBiBitXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYBiBiBiBiBiCHBiBiBiBitYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiBiBiBiBiBiuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDwDwDwDwtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXBiBiBiBiBiBiBiBiBiBitXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYBiBiBiBiBiCHCHBiBiBitYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiBiBiBiBiBiuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDwDwDwDwDwDwDwtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXBiBiBiBiBiBiBiBiBiBiBitXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYBiBiBiBiCHCHBiBiBiBitYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiBiBiBiBiBiuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDwDwDwDwDwDwDwDwtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXBiBiBiBiBiBiBiBiBiBiBitXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYBiBiBiBiBiCHCHBiBiBitYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiBiBiBiBiBiuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCBFBGuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXBiBiBiBiBiBiBiBiBiBiBiBitXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYBiBiBiBiBiBiCHCHBiBiBitYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiBiBiBiBiBiBiuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXBiBiBiBiBiCHCHBiBiBiBiBiBitXtXtXtXtXBiBiBiDxBiBiBiBiBiBiBiBiBiBiBiBiBiBiBiBiBitYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiBiCHBiBiBiBiuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCBFBGuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXBiBiBiBiCHCHCHBiBiBiBiBiBiBiBiBiBiBiBiDxBiBiBiBiBiBiCHCHCHCHBiBiBiBiBiBitYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiBiCHBiBiBiBiuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCBFBGuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXBiBiBiBiBiBiCHCHBiBiBiBiBiBiBiBiBiDxBiCHCHCHCHCHBiBiBiBiBiBiBiBitYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiCHCHBiBiBiBiuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXBiBiBiBiBiBiCHCHCHCHCHBiBiBiBiBiDxBiBiBiBiBiBiBiBiBiBiBitYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZtZtZtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiCHCHBiBiBiuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXBiBiBiBiBiBiBiBiCHCHBiBiBiBiDxBiBiBiBiBiBiBitYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKtZtZtZtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiBiCHCHBiBiBiuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvZvZvZvZvZvZvZvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXBiBiBiBiBiBiBiBiBiBiBiDxBiBitYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZuKuKuKuKuKuKtZtZtZtZtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiBiCHCHBiBiuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvZvZvZvZvZvZvZvZvZvZvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXBiBiBiBiBitXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKtZtZtZtZtZtZtZuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiBiCHCHBiBiBiuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvZvZvZvZvZvZvZvZvZvZvZvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCBFBGuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiBiCHBiBiBiuKuKuKuKuKuKuKuKuKuKtZtZtZtZtZtZtFvZvZvZvZvZvBvBvBvBvBvBvBvZvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCBFBGuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKBiBiBiCHCHBiBiBiuKuKuKuKuKuKtZtZtZtZtZtZtZtZtZtFvZvZvZvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwtXtXtXtXtXtXtXtXtXtXtXtXtXtEtYtYtYtYtYtYtYtYtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZtZuKuKuKuKtZtZtZtZtZtZtZtZtZuKuKuKuKuKuKuKuKuKuKBiBiCHCHCHBiBiuKuKuKuKtZtZtZtZtZtZuKuKuKuKuKvAvZDyDyDyDyDyDyDyDyDyDyDyvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwtXtXtXtEtYtYtYtYtYtYtYtYtYuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZtZtZtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZtZtZtZuKuKuKuKuKuKCIBiBiCHCHCHBiBiuKCItZtZtZtZuKuKuKuKuKuKuKuKvAvZDyDyDyDyDyDyDyDyDyDyDyDyvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZtZuKuKtZtZtZCJCJCXCXCXCXCXCXCJCJtZtZuKuKuKuKuKuKuKuKuKuKvAvZDyDyDyDyDyDyDyDyDyDyDyDyvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvDvEuLuLuLuLxoxoxoxoxoxouLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxouf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZtZtZtZCJCJCXCXCXCXCXCXCJCJtZuKuKuKuKuKuKuKuKuKuKuKvAvBDyDyDyDyDyDyDyDyDyDyDyDyvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLxoxoxoxoxouLuLuLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxouf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZtZuKuKuKCIuKBiBiCHCHCHBiBiCIuKuKuKuKuKuKuKuKuKuKuKuKvAvBDyDyDyDyDyDyDyDyDyDyDyvZvZvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCwauLuLuLuLxoxoxoxoxouLuLuLDzDADADAvEuLuLuLuLxoxoxoxoxoxoxoxouf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZtZuKuKuKuKuKuKuKBiBiBiCHCHBiBiuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvZvZvZvZvZvBvBvBvZvZvZvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvDvEuLuLuLuLxoxoxoxouLuLDzDBvCvCvCvDDAvEuLuLuLuLxoxoxoxoxoxouf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZuKuKuKuKuKuKuKuKuKuKBiBiBiCHBiBiuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLxoxoxoxouLuLDCvCvZvZvCvCvCvDDAvEuLuLuLuLxoxoxoxouf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiCHCHBiBiuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLxoxoxouLuLuLDCvCvCvZvZvZvCvCvCvDvEuLuLuLuLxoxoxouf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiBiCHBiBiuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCwauLuLuLxoxoxouLuLuLDzDBvCvCvZvZvZvZvZvCvCvDDAvEuLuLxoxoxouf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZtZuKuKuKuKuKuKuKuKtZtZtZtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiCHBiBiBiuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCBFDDBGuLuLuLxoxoxouLuLDzDBvCvCvZvZvBvBvBvZvCvCvCvCwauLuLuLxoxouf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZuKuKuKuKtZtZtZtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiCHCHBiBiuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvZvCvCvCvCvCBFDDDDDDBGuLuLuLuLuLxoxoxouLuLDCvCvCvZvZvBvBvBvBvZvZvZvZvCvDvEuLuLuLxouf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZtZuKuKtZtZtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiBiCHBiBiBiuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvZvCvCDDDDDDBGuLuLuLuLuLuLuLuLuLxoxoxoxouLDEDFvCvZvZvZvBvBvBvBvZvZvZvZvCvDvEuLuLuLuf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiCHCHBiBiuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvZBiBiuLuLuLuLuLuLuLuLuLuLuLuLuLuLxoxoxouLuLDEDFvCvZvZvZvZvBvBvBvBvZvZvZvCvDvEuLuLuf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiBiCHCHBiBiuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZBiBiBiBiBiuLuLuLuLDzDADADADADADAvEuLuLxoxoxouLuLuLDEDFvCvCvZvZvZvZvZvZvZvZvZvCvCwauLuLuf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiCHCHBiBiBiuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBBiBiBiBiBiBiBiBiBiBiuLuLDzDADBvCvCvCvCvCvCwauLuLuLxoxoxouLuLuLDEDFvCvCvZvZvZvZvZvZvCvCvCvCwauLuLuf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiBiCHBiBiBiBiuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBBiBiBiBiBiBiBiBiBiBiBiBiDADADBvCvCvCvCvCvCvCvCwauLuLuLuLxoxoxouLuLuLDEDDDFvCvCvCvCvCvCvCBFDDDDBGuLuLuf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiBiBiBiBiBiBiuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBBiBiBiBiBiBiBiBiBiBiBiBiBiBivCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLxoxoxoxouLuLuLuLDEDDDDDDDDDDDDDDBGuLuLuLuLuLuf
+tWDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiBiBiBiBiBiBiuKuKuKuKuKvAvBvBvBvBvBvBvBBiBiBiBiBiBiBiBiBiBiBivZvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLxoxoxoxoxoxoxouLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuLuf
+tWDGDGDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKBiBiCHCHBiBiBiBiBiBiBiBiDxBiBiBiBiBiBiBiBiBiBiBiBiBiBiBivZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLxoxoxoxoxoxoxouLuLuLuLuLuLuLuLuLuLuLuLxoxoxouf
+tWDGDGDGDGDGDGDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHBiBiBiCHCHCHBiBiBiBiCHCHDICHCHCHBiBiBiBiBiBiBiBiBivZvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDGDGDGDGDGDGDGDGDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHBiBiBiBiBiBiCHCHCHCHCHDICHCHCHCHCHCHCHCHCHBiBiBivZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDGDGDGDGDGDGDGDGDGDGDGDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHDHDHDHBiBiBiBiBiBiBiBiBiBiDxBiBiBiBiBiCHCHBiBiBiBiBiBivZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDGDGDGDGDGDGDGDGDGDGDGDGDwDwDwDwDwDwDwDwDwDwDwDwDwDGDGDGDGDGDGDGDGDwDGDGDGDGDGDGDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHDHDHDHDHDHuKuKuKuKuKuKuKBiBiDxBiBiBiBiBiBiBiBiBiBiBiBiBiBiBivZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDGDGDGDGDGDGDGDGDGDGDGDGDGDwDwDwDwDwDwDwDwDwDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBBiBiBiBiBiBiBiBiBiBiBiBiBivZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDGDGDGDGDGDGDGDGDGDGDGDGDGDGDwDwDwDwDwDGDGDGDGDGDGDGDGDGDGDGDGDGDGDJDJDJDJDJDJDJDJDJDJDJDJDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBBiBiBiBiBiBiBiBiBiBiBiBiBiBivCvCvCvCvCvCvCvCvCvCvCvCvCBFBGuLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDJDJDJDJDGDGDGDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDGDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBBiBiBiBiBiBiBiBivCvCvCvCvCvCvCvCvCvCvCBFBGuLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDGDGDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZBiBiBiBiBiBiBivCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDGDGDGDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZBiBiBiBiBiBiBivCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDGDGDGDGDGDGDGDGDGDGDGDGDGDGDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDGDGDGDwDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZBiBiBiBiBiBiDDDFvCvCvCvCvCvCwauLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDGDGDGDGDGDGDGDGDGDGDGDGDGDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDGDGDGDwDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZBiBiBiBiuLDEDFvCvCvCvCBFBGuLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDGDGDGDGDGDGDGDGDGDGDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDGDGDGDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCBiBiBiuLuLDEDDDDDFvCwauLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDGDGDGDGDGDGDGDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDGDGDwDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuDuKuDuKCICJCJCIuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCBiBiuLuLuLuLuLDEDDBGuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDGDGDGDGDGDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDGDGDGDwDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHDHDHDHDHDHDLDLDHDHDHDHDHDHDHDHuKuKuKuKuKuKuKDHDHDHDHDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvDDADAvEuLuLuLuLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDKDKDGDGDGDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDGDGDGDGDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHDHDHDHDHDHDHDHDLDLDHDHDHDHDHDHDHDHDHuKuKuKuKDHDHDHDHDHDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvZvCvCvCvCvCvCvCvDvEuLuLuLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDKDKDKDGDGDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDGDGDGDGDGDwDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHDHDHDHDHDHDHDHDHDHDLDLDHDHDHDHDHDHDHDHDHDHDHDHDHDHDHDHDHDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvZvCvCvCvCvCvCvCvCvDDAvEuLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDKDKDKDKDGDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDGDGDGDGDGDGDGDwDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHDHDHDHDHDHDHDHDHDHDHDLDLDHDHDHDHDHDHDHDHDHDHDHDHDHDHDHDHDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDKDKDKDKDKDGDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDGDGDGDGDGDGDGDGDGDwDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHDHDHDHDHDHDHDHuDuKuDuKCICJCJCIuKuKuKDHDHDHDHDHDHDHDHDHDHDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvDvEuLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDGDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDGDGDGDGDGDGDGDGDGDGDwDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHDHDHDHDHuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKDHDHDHDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvDvEuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDGDGDGDGDGDGDGDGDGDGDGDwDwDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHDHDHDHDHDHuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDGDGDJDJDJDJDGDGDGDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDGDGDGDGDGDGDGDGDGDGDGDGDKDwDwDwDwDwvAuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHDHDHDHDHuKuKuKuKuKuKuKuKuKuKtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDGDGDGDGDGDGDGDGDGDGDJDJDJDJDJDJDJDJDJDJDJDJDGDGDGDGDGDGDGDGDGDGDGDGDGDKDKDKDKDKDMuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDKDKDKDKDMDNDNDNuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvDvEuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDGDKDKDKDMDNDNDNDNDNDNuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDGDGDKDGDGDGDKDKDKDKDKDMDNDNDNDNDNDNDNuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvDvEuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDMDNDNDNDNDNDNDNDNDNDNuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDMDNDNDNDNDNDNDNDNDNDNDNDNDNuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDMDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDMDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvDvEuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDMDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDMDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDMDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDMDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDMDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDMDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDMDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDMDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCBFBGuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDMDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDMDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCBFBGuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDMDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCvCwauLuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+tWDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDKDMDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNDNuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKDHDHDHuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKtZtZtZtZuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKuKvAvBvBvBvBvBvBvBvBvBvBvBvBvBvZvZvZvZvZvZvCvCvCvCvCvCvCvCvCvCvCvCBFBGuLuLuLuLuLuLxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxouf
+DODPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDPDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMDMvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvADQDQDQvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAtFtFtFtFvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvADRDRDRDRDRDRDRDRDRDRDRDRDRDSDSDSDSDSDSDTDTDTDTDTDTDTDTDTDTDTDTDUDVDVDVDVDVDVDVDWDWDWDWDWDWDWDWDWDWDWDWDWDWDWDWDWDWDWDWDWDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEcEcEcEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEiEjEkEkEkEkEkElElElElElElElElElElElElElElElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEbEbEbEbEbEbEbEbEbEbEbEbEbEbEcEcEcEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEmEkEkEkEkEkElElElElElElElElElElElElElElElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEbEbEbEbEbEbEbEbEbEbEbEbEcEcEcEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEiEjEkEkEkEkElElElElElElElElElElElElElElElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEbEbEbEbEbEbEbEbEcEcEcEbEbEbEbEbEbEbEbEbEbEbEbEbEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEmEkEkEkEkElElElElElElElElElElElElElElElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEbEbEbEbEcEcEcEcEcEbEbEbEbEbEbEbEbEbEbEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEmEkEkEkEkElElElElElElElElElElElElElElElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEbEbEbEbEbEbEbEbEbEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEmEkEkEkEkElElElElElElElElElElElElElElElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEbEbEbEbEbEbEbEbEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEiEjEkEkEkElElElElElElElElElElElElElElElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEbEbEbEbEbEbEbEbEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEmEkEkEkElElElElElElElElElElElElElElElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEbEbEbEbEbEbEbEbEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEmEkEkEkElElElElElElElElElElElElElElElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEbEbEbEbEbEbEbEbEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEiEjEkEkElElElElElElElElElElElElElElElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEbEbEbEbEbEbEbEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEmEkEkEkElElElElElElElElElElElElElElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEbEbEbEbEbEbEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEiEjEkEkEkElElElElElElElElElElElElElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEbEbEbEbEbEbEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEmEkEkEkEkElElElElElElElElElElElElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEcEbEbEbEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEmEkEkEkEkEkElElElElElElElElElElElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEcEcEcEbEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEmEkEkEkEkEkEkElElElElElElElElElElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEcEcEcEcEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEmEkEkEkEkEkEkEkEkElElElElElElElElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEnEcEcEcEcEcEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEmEkEkEkEkEkEkEkEkEkElElElElElElElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEnEnEnEcEcEcEcEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEiEoEjEkEkEkEkEkEkEkElElElElElElElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEnEnEnEnEcEcEcEcEcEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEiEjEkEkEkEkEkEkEkElElElElElElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEnEnEnEnEnEnEcEcEcEcEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEiEjEkEkEkEkEkEkElElElElElElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEnEnEnEnEnEnEcEcEcEcEcEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEmEkEkEkEkEkEkEkElElElElElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEnEnEnEnEnEnEnEcEcEcEcEcEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEiEjEkEkEkEkEkEkElElElElElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEnEnEnEnEnEnEnEnEcEcEcEcEcEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEiEoEjEkEkEkEkEkElElElElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEnEnEnEnEnEnEnEnEcEcEcEcEcEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEiEjEkEkEkEkElElElElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEcEcEcEcEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEmEkEkEkEkEkElElElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEcEcEcEcEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEiEjEkEkEkEkElElElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEiEjEkEkEkEkElElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEmEkEkEkEkEkElElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEcEcEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEiEkEkEkEkEkEkElElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEcEcEdEdEdEdEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEiEjEkEkEkEkEkElElElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEcEcEcEcEcEdEdEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEiEjEkEkEkEkEkEkElElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEcEcEcEcEcEcEdEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEiEoEjEkEkEkEkEkElElElDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEcEcEcEcEcEdEdEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEiEjEkEkEkEkEkEkEkDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEcEcEcEcEcEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEiEjEkEkEkEkEkEkDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEcEcEcEcEcEdEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEiEjEkEkEkEkEkDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEcEcEcEcEcEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEiEoEoEjEkEkDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEcEcEcEcEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEiEoEoDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEcEcEcEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEcEcEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEcEcEcEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEcEcEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEcEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEpEpEpEpEgEgEgEpEgEgEgEgEgEpEgEgEgEpEpEpEpEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEcEcEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEpEpEpEpEgEgEgEpEpEpEpEpEpEpEgEgEgEpEpEpEpEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEcEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEpEpEpEpEgEgEpEpEpEpEpEpEpEpEpEgEgEpEpEpEpEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEcEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEpEpEpEpEgEgEpEpEpEpEpEpEpEpEpEgEgEpEpEpEpEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhEhDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEcEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhEhDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEdEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEgEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhEhEhEhDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEcEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEgEgEgEgEgEgEgEgEgEgEgEhEhEhEhEhEhEhEhEhEhDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEcEcEbEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEgEgEgEgEgEgEgEgEgEgEgEgEgEgEhEhEhEhEhEhEhDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEcEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEhEhEhEhEhEhDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEcEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEhEhEhDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEcEbEbEbEbEbEbEdEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEcEbEbEbEbEbEbEbEbEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEcEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEpEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEnEnEnEnEnEcEcEcEcEcEcEcEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEpEpEpEpEpEpEpEpEpEpEpEpEpEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEcEcEcEcEcEnEnEnEnEnEnEnEnEnEnEcEcEcEcEcEcEcEcEcEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEpEpEpEpEpEpEpEpEpEpEpEpEpEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEcEcEcEcEcEcEcEcEnEnEnEcEcEcEcEcEcEcEcEcEcEcEcEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEpEpEpEpEpEpEpEpEpEpEpEpEpEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEcEcEcEcEcEcEcEcEcEcEcEcEcEcEcEcEcEcEcEcEcEbEbEbEbEbEbEbEbEbEbEbEbEbEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEpEpEpEpEpEpEpEpEpEpEpEpEpEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEcEcEcEcEcEcEcEcEcEcEcEcEcEcEcEcEcEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEgEpEpEpEpEpEpEpEpEpEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEcEcEcEcEcEcEcEcEcEcEcEcEcEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEgEgEpEpEpEpEpEpEpEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDZEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEcEcEcEcEaEaEaEaEaEaEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYEeEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEdEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgDX
+DODYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYDYEeEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEqEaEaEaEaEaEaEaEaEaEaEaEaEaEqEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEaEbEbEbEbEbEbEbEbEbEbEbEbEbEbErEbEbEbEbEbEbEbEbEbEbEbEbEbErEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEeEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEfEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgEgDX
+DODODODODODODODOEsEsEsEsEsEsEsEsEsEsEsEsEsEsEsEsEsEsEsDODODODODODODODODODODOEsEsEsEsEsEsEsEsEsEsEsEsEsEsEsEsEsEsEsEsEsEsEsEsEsEsEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEuEuEuEuEuEuEuEuEuEuEuEuEuEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEtEvEvEvEvEvEvEvEvEvEvEvEvEvEvEvEvEvEvEvEvEvEvEvDXDXDXDXDXDXDXDXDXDXDXDXDXEvEvEvEvEvEvEvEvEvEvEvEvEvEvEvEvEvEvEvEvEvEvEvEvEv
"}
-
diff --git a/maps/southern_cross/southern_cross-4.dmm b/maps/southern_cross/southern_cross-4.dmm
index fab736ada5..5dcb0cb8bf 100644
--- a/maps/southern_cross/southern_cross-4.dmm
+++ b/maps/southern_cross/southern_cross-4.dmm
@@ -415,7 +415,7 @@
"hY" = (/obj/machinery/radiocarbon_spectrometer,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/analysis)
"hZ" = (/obj/structure/table/rack,/obj/item/weapon/storage/toolbox/emergency,/obj/item/clothing/accessory/armband/science,/obj/item/clothing/glasses/science,/obj/item/device/suit_cooling_unit,/obj/item/weapon/extinguisher,/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/emergencystorage)
"ia" = (/obj/structure/cable/ender{icon_state = "1-2"; id = "surface_cave"},/turf/simulated/floor/plating{tag = "icon-asteroidplating2"; icon_state = "asteroidplating2"},/area/mine/explored)
-"ib" = (/turf/unsimulated/wall,/area/mine/unexplored)
+"ib" = (/turf/simulated/wall/dungeon,/area/mine/unexplored)
"ic" = (/obj/effect/step_trigger/teleporter/mine/from_mining,/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/space)
(1,1,1) = {"
@@ -675,4 +675,3 @@ aaababababababababababababababababababababababababababababababababababababababab
aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababiaacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibicicicaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"}
-
diff --git a/maps/southern_cross/southern_cross-5.dmm b/maps/southern_cross/southern_cross-5.dmm
index fa8d8fdb88..177679ae24 100644
--- a/maps/southern_cross/southern_cross-5.dmm
+++ b/maps/southern_cross/southern_cross-5.dmm
@@ -61,13 +61,13 @@
"bm" = (/obj/machinery/computer/pod{id = "oldship_gun"},/turf/simulated/shuttle/floor/white,/area/derelict/ship)
"bn" = (/obj/structure/table/standard,/obj/item/weapon/screwdriver,/obj/machinery/light,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
"bo" = (/obj/structure/table/standard,/obj/item/device/radio/off,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
-"bp" = (/turf/simulated/mineral,/area/mine/unexplored)
-"bq" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/explored)
-"br" = (/obj/item/weapon/ore,/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/explored)
+"bp" = (/turf/simulated/mineral/vacuum,/area/mine/unexplored)
+"bq" = (/turf/simulated/mineral/floor/ignore_mapgen/vacuum,/area/mine/explored)
+"br" = (/obj/item/weapon/ore,/turf/simulated/mineral/floor/ignore_mapgen/vacuum,/area/mine/explored)
"bs" = (/obj/structure/girder,/turf/simulated/floor/airless,/area/wreck/ufoship)
"bt" = (/turf/simulated/wall/skipjack,/area/wreck/ufoship)
"bu" = (/turf/simulated/floor/airless,/area/wreck/ufoship)
-"bv" = (/obj/effect/floor_decal/asteroid,/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/explored)
+"bv" = (/obj/effect/floor_decal/asteroid,/turf/simulated/mineral/floor/ignore_mapgen/vacuum,/area/mine/explored)
"bw" = (/obj/item/stack/rods,/turf/simulated/floor/airless,/area/wreck/ufoship)
"bx" = (/obj/item/stack/material/steel,/turf/simulated/floor/airless,/area/wreck/ufoship)
"by" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/stack/rods,/turf/simulated/floor/airless,/area/wreck/ufoship)
@@ -82,7 +82,7 @@
"bH" = (/turf/simulated/floor/tiled/white/airless,/area/wreck/ufoship)
"bI" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/tiled/white/airless,/area/wreck/ufoship)
"bJ" = (/turf/simulated/floor/tiled/airless,/area/wreck/ufoship)
-"bK" = (/obj/effect/floor_decal/asteroid,/obj/effect/decal/cleanable/molten_item,/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/explored)
+"bK" = (/obj/effect/floor_decal/asteroid,/obj/effect/decal/cleanable/molten_item,/turf/simulated/mineral/floor/ignore_mapgen/vacuum,/area/mine/explored)
"bL" = (/obj/effect/decal/mecha_wreckage/gygax/dark,/turf/simulated/floor/airless,/area/wreck/ufoship)
"bM" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/airless,/area/wreck/ufoship)
"bN" = (/obj/structure/table/rack,/turf/simulated/floor/airless,/area/wreck/ufoship)
diff --git a/maps/southern_cross/southern_cross-6.dmm b/maps/southern_cross/southern_cross-6.dmm
index 5cf0e522fb..87a0530da3 100644
--- a/maps/southern_cross/southern_cross-6.dmm
+++ b/maps/southern_cross/southern_cross-6.dmm
@@ -1742,7 +1742,6 @@
"HV" = (/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad)
"HW" = (/obj/mecha/combat/marauder/mauler,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad)
"HX" = (/obj/machinery/mech_recharger,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad)
-"HY" = (/obj/machinery/mech_recharger,/turf/space,/area/syndicate_mothership/elite_squad)
"HZ" = (/turf/simulated/shuttle/wall/dark,/area/shuttle/syndicate_elite/mothership)
"Ia" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 1},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/syndicate_elite/mothership)
"Ib" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 1},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/syndicate_elite/mothership)
@@ -2425,7 +2424,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFjHvGoHwFjHxHxHxFjFyFyFyFyFyFyFyFyFyFyFyFyFyFyFyFyHyHjHjFjaaaaaaaaaaFkGYGZGZGZGZGZGZGZGZGZGZGZGZGZGZGZGZGZGZGZGYFkaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFjHzHAHBFjHxHxHxFjFyFyFyFyFyFyFyFyFyFyFyFyFyFyFyFyFjHCHDFjaaaaaaaaaaFkGYGYGYGYGYGYGYGYGYGYGYGYGYGYGYGYGYGYGYGYGYFkaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFjHEHFHGFjHHHIHJFjHcFjHcFjHKHKHKHKHKHKHKHKFyFyFBHLHMHMHMHMHMHMHMHMHMHMHMabababababababababababababababababababababaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababHNHNHNHNHNHNHNHNHNHNHNHNHNababababababababababHOHOHOHOHOHOHOHOHOHOHOHOHOababHKHKHPHQHRHSHTHUHKHKHKHKHKHMHVHWHXHWHXHWHYHWHYHMaaaaaaaaHZIaIbIcHZaaIdIdIdIdIdIdIdIdIdIdabaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababHNHNHNHNHNHNHNHNHNHNHNHNHNababababababababababHOHOHOHOHOHOHOHOHOHOHOHOHOababHKHKHPHQHRHSHTHUHKHKHKHKHKHMHVHWHXHWHXHWHXHWHXHMaaaaaaaaHZIaIbIcHZaaIdIdIdIdIdIdIdIdIdIdabaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIdIdIdIdIdIdIdIdIeIeIeIfHNIgIgIhHNIiIjIjHNIeIdIdIdIdIdIdIdIdIdIdHOIkIlHOIkIlHOIkIlHOIkIlHOIdIdHKImInInInInInInIoHKHKIpHKHMHVHVHVHVHVHVHVHVHVHMaaaaaaaaHZIqIqIqHZaaIdIdIdIdIdIdIdIdIdIdabaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIdIdIdIdIdIdIdIdIeIfIfIfIrIjIjIjHNIjIjIsItIeIeIeIdIdIdIdIdIdIdIdHOHOHOHOHOHOHOHOHOHOHOHOHOIdIdHKIuInInIvIwInInIoHKInInIxHMHMHMHMHMIyHMHMHMHMHMHMHMIzHMIAIBIBIBIAaaIdIdIdIdIdIdIdIdIdIdabaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIdIdIdIdIdIdIdIdIeIeIfIfICIfIjIjIDIjIjIjHNIEIFIeIeIdIdIdIdIdIdIdHOIkIlHOIkIlHOIkIlHOIkIlHOIdIdHKIGInInIHIIInInIJHKIKIKIKHMHVHVHVHVHVHVHVHVHVHVHVILIMINIOIPIPIPHZaaIdIdIdIdIdIdIdIdIdIdabaaaa
diff --git a/maps/southern_cross/southern_cross_defines.dm b/maps/southern_cross/southern_cross_defines.dm
index e85b765c10..dae2282210 100644
--- a/maps/southern_cross/southern_cross_defines.dm
+++ b/maps/southern_cross/southern_cross_defines.dm
@@ -42,13 +42,9 @@
station_networks = list()
allowed_spawns = list("Arrivals Shuttle","Gateway", "Cryogenic Storage", "Cyborg Storage")
- unit_test_exempt_areas = list(
- /area/ninja_dojo
- )
+ unit_test_exempt_areas = list(/area/ninja_dojo, /area/ninja_dojo/firstdeck, /area/ninja_dojo/arrivals_dock)
- unit_test_exempt_from_atmos = list(
- /area/tcomm/chamber
- )
+ unit_test_exempt_from_atmos = list(/area/tcomm/chamber)
// Short range computers see only the six main levels, others can see the surrounding surface levels.
@@ -115,19 +111,19 @@
/datum/map_z_level/southern_cross/surface
z = Z_LEVEL_SURFACE
name = "Planet"
- flags = MAP_LEVEL_STATION|MAP_LEVEL_CONTACT|MAP_LEVEL_PLAYER
+ flags = MAP_LEVEL_STATION|MAP_LEVEL_CONTACT|MAP_LEVEL_PLAYER|MAP_LEVEL_SEALED
base_turf = /turf/simulated/floor/outdoors/rocks
/datum/map_z_level/southern_cross/surface_mine
z = Z_LEVEL_SURFACE_MINE
name = "Planet"
- flags = MAP_LEVEL_STATION|MAP_LEVEL_CONTACT|MAP_LEVEL_PLAYER
+ flags = MAP_LEVEL_STATION|MAP_LEVEL_CONTACT|MAP_LEVEL_PLAYER|MAP_LEVEL_SEALED
base_turf = /turf/simulated/floor/outdoors/rocks
/datum/map_z_level/southern_cross/surface_wild
z = Z_LEVEL_SURFACE_WILD
name = "Wild"
- flags = MAP_LEVEL_PLAYER
+ flags = MAP_LEVEL_PLAYER|MAP_LEVEL_SEALED
base_turf = /turf/simulated/floor/outdoors/rocks
/datum/map_z_level/southern_cross/misc
diff --git a/maps/southern_cross/southern_cross_jobs.dm b/maps/southern_cross/southern_cross_jobs.dm
index ad73abb120..8a8c3b5b11 100644
--- a/maps/southern_cross/southern_cross_jobs.dm
+++ b/maps/southern_cross/southern_cross_jobs.dm
@@ -112,7 +112,7 @@ var/const/access_explorer = 43
total_positions = 2
spawn_positions = 2
supervisors = "the chief medical officer"
- selection_color = "#013D3B"
+ selection_color = "#515151"
idtype = /obj/item/weapon/card/id/medical
economic_modifier = 4
access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_virology, access_eva, access_maint_tunnels, access_external_airlocks, access_psychiatrist, access_explorer)
diff --git a/maps/southern_cross/structures/closets/engineering.dm b/maps/southern_cross/structures/closets/engineering.dm
index 7bea46071e..ee3972df3f 100644
--- a/maps/southern_cross/structures/closets/engineering.dm
+++ b/maps/southern_cross/structures/closets/engineering.dm
@@ -13,29 +13,28 @@
icon_off = "secureceoff"
- New()
- ..()
- if(prob(50))
- new /obj/item/weapon/storage/backpack/industrial(src)
- else
- new /obj/item/weapon/storage/backpack/satchel/eng(src)
- if(prob(50))
- new /obj/item/weapon/storage/backpack/dufflebag/eng(src)
- new /obj/item/clothing/accessory/storage/brown_vest(src)
- new /obj/item/blueprints(src)
- new /obj/item/clothing/head/hardhat/white(src)
- new /obj/item/clothing/head/welding(src)
- new /obj/item/clothing/gloves/yellow(src)
- new /obj/item/device/radio/headset/heads/ce(src)
- new /obj/item/device/radio/headset/heads/ce/alt(src)
- new /obj/item/weapon/storage/toolbox/mechanical(src)
- new /obj/item/device/multitool(src)
- new /obj/item/weapon/weldingtool/experimental(src)
- new /obj/item/device/flash(src)
- new /obj/item/taperoll/engineering(src)
- return
-
-
+/obj/structure/closet/secure_closet/engineering_chief/lite/New()
+ ..()
+ if(prob(50))
+ new /obj/item/weapon/storage/backpack/industrial(src)
+ else
+ new /obj/item/weapon/storage/backpack/satchel/eng(src)
+ if(prob(50))
+ new /obj/item/weapon/storage/backpack/dufflebag/eng(src)
+ new /obj/item/clothing/accessory/storage/brown_vest(src)
+ new /obj/item/blueprints(src)
+ new /obj/item/clothing/head/hardhat/white(src)
+ new /obj/item/clothing/head/welding(src)
+ new /obj/item/clothing/gloves/yellow(src)
+ new /obj/item/device/radio/headset/heads/ce(src)
+ new /obj/item/device/radio/headset/heads/ce/alt(src)
+ new /obj/item/weapon/storage/toolbox/mechanical(src)
+ new /obj/item/device/multitool(src)
+ new /obj/item/weapon/storage/belt/utility/chief/full(src)
+ new /obj/item/device/flash(src)
+ new /obj/item/device/t_scanner/upgraded
+ new /obj/item/taperoll/engineering(src)
+ return
/obj/structure/closet/secure_closet/engineering_chief/wardrobe
name = "chief engineer's locker"
@@ -48,24 +47,24 @@
icon_off = "secureceoff"
- New()
- ..()
- if(prob(50))
- new /obj/item/weapon/storage/backpack/industrial(src)
- else
- new /obj/item/weapon/storage/backpack/satchel/eng(src)
- if(prob(50))
- new /obj/item/weapon/storage/backpack/dufflebag/eng(src)
- new /obj/item/clothing/under/rank/chief_engineer(src)
- new /obj/item/clothing/under/rank/chief_engineer/skirt(src)
- new /obj/item/clothing/head/hardhat/white(src)
- new /obj/item/clothing/shoes/brown(src)
- new /obj/item/weapon/cartridge/ce(src)
- new /obj/item/device/radio/headset/heads/ce(src)
- new /obj/item/device/radio/headset/heads/ce/alt(src)
- new /obj/item/clothing/suit/storage/hazardvest(src)
- new /obj/item/clothing/mask/gas(src)
- new /obj/item/weapon/tank/emergency/oxygen/engi(src)
- new /obj/item/taperoll/engineering(src)
- new /obj/item/clothing/suit/storage/hooded/wintercoat/engineering(src)
- return
\ No newline at end of file
+/obj/structure/closet/secure_closet/engineering_chief/wardrobe/New()
+ ..()
+ if(prob(50))
+ new /obj/item/weapon/storage/backpack/industrial(src)
+ else
+ new /obj/item/weapon/storage/backpack/satchel/eng(src)
+ if(prob(50))
+ new /obj/item/weapon/storage/backpack/dufflebag/eng(src)
+ new /obj/item/clothing/under/rank/chief_engineer(src)
+ new /obj/item/clothing/under/rank/chief_engineer/skirt(src)
+ new /obj/item/clothing/head/hardhat/white(src)
+ new /obj/item/clothing/shoes/brown(src)
+ new /obj/item/weapon/cartridge/ce(src)
+ new /obj/item/device/radio/headset/heads/ce(src)
+ new /obj/item/device/radio/headset/heads/ce/alt(src)
+ new /obj/item/clothing/suit/storage/hazardvest(src)
+ new /obj/item/clothing/mask/gas(src)
+ new /obj/item/weapon/tank/emergency/oxygen/engi(src)
+ new /obj/item/taperoll/engineering(src)
+ new /obj/item/clothing/suit/storage/hooded/wintercoat/engineering(src)
+ return
\ No newline at end of file
diff --git a/maps/southern_cross/structures/closets/medical.dm b/maps/southern_cross/structures/closets/medical.dm
index 258a724ac1..0ab97a79a6 100644
--- a/maps/southern_cross/structures/closets/medical.dm
+++ b/maps/southern_cross/structures/closets/medical.dm
@@ -12,23 +12,23 @@
icon_broken = "cmosecurebroken"
icon_off = "cmosecureoff"
- New()
- ..()
- if(prob(50))
- new /obj/item/weapon/storage/backpack/medic(src)
- else
- new /obj/item/weapon/storage/backpack/satchel/med(src)
- if(prob(50))
- new /obj/item/weapon/storage/backpack/dufflebag/med(src)
- new /obj/item/clothing/suit/bio_suit/cmo(src)
- new /obj/item/clothing/head/bio_hood/cmo(src)
- new /obj/item/clothing/gloves/sterile/latex(src)
- new /obj/item/device/radio/headset/heads/cmo/alt(src)
- new /obj/item/device/flash(src)
- new /obj/item/weapon/reagent_containers/hypospray/vial(src)
- new /obj/item/weapon/storage/box/freezer(src)
- new /obj/item/clothing/mask/gas(src)
- return
+/obj/structure/closet/secure_closet/CMO/lite/New()
+ ..()
+ if(prob(50))
+ new /obj/item/weapon/storage/backpack/medic(src)
+ else
+ new /obj/item/weapon/storage/backpack/satchel/med(src)
+ if(prob(50))
+ new /obj/item/weapon/storage/backpack/dufflebag/med(src)
+ new /obj/item/clothing/suit/bio_suit/cmo(src)
+ new /obj/item/clothing/head/bio_hood/cmo(src)
+ new /obj/item/clothing/gloves/sterile/latex(src)
+ new /obj/item/device/radio/headset/heads/cmo/alt(src)
+ new /obj/item/device/flash(src)
+ new /obj/item/weapon/reagent_containers/hypospray/vial(src)
+ new /obj/item/weapon/storage/box/freezer(src)
+ new /obj/item/clothing/mask/gas(src)
+ return
@@ -42,38 +42,38 @@
icon_broken = "cmosecurebroken"
icon_off = "cmosecureoff"
- New()
- ..()
- if(prob(50))
- new /obj/item/weapon/storage/backpack/medic(src)
- else
- new /obj/item/weapon/storage/backpack/satchel/med(src)
- if(prob(50))
- new /obj/item/weapon/storage/backpack/dufflebag/med(src)
- new /obj/item/clothing/shoes/white(src)
- switch(pick("blue", "green", "purple", "black", "navyblue"))
- if ("blue")
- new /obj/item/clothing/under/rank/medical/scrubs(src)
- new /obj/item/clothing/head/surgery/blue(src)
- if ("green")
- new /obj/item/clothing/under/rank/medical/scrubs/green(src)
- new /obj/item/clothing/head/surgery/green(src)
- if ("purple")
- new /obj/item/clothing/under/rank/medical/scrubs/purple(src)
- new /obj/item/clothing/head/surgery/purple(src)
- if ("black")
- new /obj/item/clothing/under/rank/medical/scrubs/black(src)
- new /obj/item/clothing/head/surgery/black(src)
- if ("navyblue")
- new /obj/item/clothing/under/rank/medical/scrubs/navyblue(src)
- new /obj/item/clothing/head/surgery/navyblue(src)
- new /obj/item/clothing/under/rank/chief_medical_officer(src)
- new /obj/item/clothing/under/rank/chief_medical_officer/skirt(src)
- new /obj/item/clothing/suit/storage/toggle/labcoat/cmo(src)
- new /obj/item/clothing/suit/storage/toggle/labcoat/cmoalt(src)
- new /obj/item/weapon/cartridge/cmo(src)
- new /obj/item/clothing/gloves/sterile/latex(src)
- new /obj/item/clothing/shoes/brown (src)
- new /obj/item/device/radio/headset/heads/cmo(src)
- new /obj/item/clothing/suit/storage/hooded/wintercoat/medical(src)
- return
\ No newline at end of file
+/obj/structure/closet/secure_closet/CMO/wardrobe/New()
+ ..()
+ if(prob(50))
+ new /obj/item/weapon/storage/backpack/medic(src)
+ else
+ new /obj/item/weapon/storage/backpack/satchel/med(src)
+ if(prob(50))
+ new /obj/item/weapon/storage/backpack/dufflebag/med(src)
+ new /obj/item/clothing/shoes/white(src)
+ switch(pick("blue", "green", "purple", "black", "navyblue"))
+ if ("blue")
+ new /obj/item/clothing/under/rank/medical/scrubs(src)
+ new /obj/item/clothing/head/surgery/blue(src)
+ if ("green")
+ new /obj/item/clothing/under/rank/medical/scrubs/green(src)
+ new /obj/item/clothing/head/surgery/green(src)
+ if ("purple")
+ new /obj/item/clothing/under/rank/medical/scrubs/purple(src)
+ new /obj/item/clothing/head/surgery/purple(src)
+ if ("black")
+ new /obj/item/clothing/under/rank/medical/scrubs/black(src)
+ new /obj/item/clothing/head/surgery/black(src)
+ if ("navyblue")
+ new /obj/item/clothing/under/rank/medical/scrubs/navyblue(src)
+ new /obj/item/clothing/head/surgery/navyblue(src)
+ new /obj/item/clothing/under/rank/chief_medical_officer(src)
+ new /obj/item/clothing/under/rank/chief_medical_officer/skirt(src)
+ new /obj/item/clothing/suit/storage/toggle/labcoat/cmo(src)
+ new /obj/item/clothing/suit/storage/toggle/labcoat/cmoalt(src)
+ new /obj/item/weapon/cartridge/cmo(src)
+ new /obj/item/clothing/gloves/sterile/latex(src)
+ new /obj/item/clothing/shoes/brown (src)
+ new /obj/item/device/radio/headset/heads/cmo(src)
+ new /obj/item/clothing/suit/storage/hooded/wintercoat/medical(src)
+ return
\ No newline at end of file
diff --git a/maps/southern_cross/structures/closets/misc.dm b/maps/southern_cross/structures/closets/misc.dm
index c0efbb19e3..9f442f7b46 100644
--- a/maps/southern_cross/structures/closets/misc.dm
+++ b/maps/southern_cross/structures/closets/misc.dm
@@ -4,27 +4,27 @@
name = "emergency weapon cabinet"
req_one_access = list(access_armory,access_captain)
- New()
- ..()
- for(var/i = 1 to 4)
- new /obj/item/weapon/gun/energy/gun(src)
- return
+/obj/structure/closet/secure_closet/guncabinet/sidearm/New()
+ ..()
+ for(var/i = 1 to 4)
+ new /obj/item/weapon/gun/energy/gun(src)
+ return
/obj/structure/closet/secure_closet/guncabinet/rifle
name = "rifle cabinet"
req_access = list(access_explorer)
- New()
- ..()
- for(var/i = 1 to 9)
- new /obj/item/ammo_magazine/clip/c762/hunter(src)
- if(prob(85))
- new /obj/item/weapon/gun/projectile/shotgun/pump/rifle(src)
- else
- new /obj/item/weapon/gun/projectile/shotgun/pump/rifle/lever(src)
+/obj/structure/closet/secure_closet/guncabinet/rifle/New()
+ ..()
+ for(var/i = 1 to 9)
+ new /obj/item/ammo_magazine/clip/c762/hunter(src)
+ if(prob(85))
new /obj/item/weapon/gun/projectile/shotgun/pump/rifle(src)
- new /obj/item/weapon/gun/projectile/shotgun/pump/rifle(src)
- return
+ else
+ new /obj/item/weapon/gun/projectile/shotgun/pump/rifle/lever(src)
+ new /obj/item/weapon/gun/projectile/shotgun/pump/rifle(src)
+ new /obj/item/weapon/gun/projectile/shotgun/pump/rifle(src)
+ return
//Explorer Lockers
@@ -32,26 +32,26 @@
name = "explorer locker"
req_access = list(access_explorer)
- New()
- ..()
- if(prob(50))
- new /obj/item/weapon/storage/backpack(src)
- else
- new /obj/item/weapon/storage/backpack/satchel/norm(src)
- new /obj/item/clothing/under/explorer(src)
- new /obj/item/clothing/suit/storage/hooded/explorer(src)
- new /obj/item/clothing/mask/gas/explorer(src)
- new /obj/item/clothing/shoes/boots/winter/explorer(src)
- new /obj/item/clothing/gloves/black(src)
- new /obj/item/device/radio/headset(src)
- new /obj/item/device/flashlight(src)
- new /obj/item/device/gps/explorer(src)
- new /obj/item/weapon/material/hatchet/tacknife/survival(src)
- new /obj/item/weapon/storage/box/flare(src)
- new /obj/item/device/geiger(src)
- new /obj/item/weapon/cell/device(src)
- new /obj/item/device/radio(src)
- return
+/obj/structure/closet/secure_closet/explorer/New()
+ ..()
+ if(prob(50))
+ new /obj/item/weapon/storage/backpack(src)
+ else
+ new /obj/item/weapon/storage/backpack/satchel/norm(src)
+ new /obj/item/clothing/under/explorer(src)
+ new /obj/item/clothing/suit/storage/hooded/explorer(src)
+ new /obj/item/clothing/mask/gas/explorer(src)
+ new /obj/item/clothing/shoes/boots/winter/explorer(src)
+ new /obj/item/clothing/gloves/black(src)
+ new /obj/item/device/radio/headset(src)
+ new /obj/item/device/flashlight(src)
+ new /obj/item/device/gps/explorer(src)
+ new /obj/item/weapon/material/hatchet/tacknife/survival(src)
+ new /obj/item/weapon/storage/box/flare(src)
+ new /obj/item/device/geiger(src)
+ new /obj/item/weapon/cell/device(src)
+ new /obj/item/device/radio(src)
+ return
/obj/structure/closet/secure_closet/sar
name = "search and rescue locker"
@@ -65,30 +65,30 @@
req_access = list(access_medical_equip)
- New()
- ..()
- new /obj/item/weapon/storage/backpack/dufflebag/emt(src)
- new /obj/item/weapon/storage/box/autoinjectors(src)
- new /obj/item/weapon/storage/box/syringes(src)
- new /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline(src)
- new /obj/item/weapon/reagent_containers/glass/bottle/antitoxin(src)
- new /obj/item/weapon/storage/belt/medical/emt(src)
- new /obj/item/clothing/mask/gas(src)
- new /obj/item/clothing/suit/storage/hooded/wintercoat/medical/sar(src)
- new /obj/item/clothing/shoes/boots/winter/explorer(src)
- new /obj/item/device/radio/headset/headset_med/alt(src)
- new /obj/item/weapon/cartridge/medical(src)
- new /obj/item/device/flashlight(src)
- new /obj/item/weapon/tank/emergency/oxygen/engi(src)
- new /obj/item/clothing/glasses/hud/health(src)
- new /obj/item/device/healthanalyzer(src)
- new /obj/item/device/radio/off(src)
- new /obj/random/medical(src)
- new /obj/item/weapon/crowbar(src)
- new /obj/item/weapon/extinguisher/mini(src)
- new /obj/item/weapon/storage/box/freezer(src)
- new /obj/item/clothing/accessory/storage/white_vest(src)
- new /obj/item/taperoll/medical(src)
- new /obj/item/device/gps(src)
- new /obj/item/device/geiger(src)
- return
+/obj/structure/closet/secure_closet/sar/New()
+ ..()
+ new /obj/item/weapon/storage/backpack/dufflebag/emt(src)
+ new /obj/item/weapon/storage/box/autoinjectors(src)
+ new /obj/item/weapon/storage/box/syringes(src)
+ new /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline(src)
+ new /obj/item/weapon/reagent_containers/glass/bottle/antitoxin(src)
+ new /obj/item/weapon/storage/belt/medical/emt(src)
+ new /obj/item/clothing/mask/gas(src)
+ new /obj/item/clothing/suit/storage/hooded/wintercoat/medical/sar(src)
+ new /obj/item/clothing/shoes/boots/winter/explorer(src)
+ new /obj/item/device/radio/headset/headset_med/alt(src)
+ new /obj/item/weapon/cartridge/medical(src)
+ new /obj/item/device/flashlight(src)
+ new /obj/item/weapon/tank/emergency/oxygen/engi(src)
+ new /obj/item/clothing/glasses/hud/health(src)
+ new /obj/item/device/healthanalyzer(src)
+ new /obj/item/device/radio/off(src)
+ new /obj/random/medical(src)
+ new /obj/item/weapon/crowbar(src)
+ new /obj/item/weapon/extinguisher/mini(src)
+ new /obj/item/weapon/storage/box/freezer(src)
+ new /obj/item/clothing/accessory/storage/white_vest(src)
+ new /obj/item/taperoll/medical(src)
+ new /obj/item/device/gps(src)
+ new /obj/item/device/geiger(src)
+ return
diff --git a/maps/southern_cross/structures/closets/research.dm b/maps/southern_cross/structures/closets/research.dm
index 02c001be98..87eb4bb40b 100644
--- a/maps/southern_cross/structures/closets/research.dm
+++ b/maps/southern_cross/structures/closets/research.dm
@@ -12,16 +12,16 @@
icon_broken = "rdsecurebroken"
icon_off = "rdsecureoff"
- New()
- ..()
- new /obj/item/clothing/suit/bio_suit/scientist(src)
- new /obj/item/clothing/head/bio_hood/scientist(src)
- new /obj/item/clothing/gloves/sterile/latex(src)
- new /obj/item/device/radio/headset/heads/rd/alt(src)
- new /obj/item/weapon/tank/air(src)
- new /obj/item/clothing/mask/gas(src)
- new /obj/item/device/flash(src)
- return
+/obj/structure/closet/secure_closet/RD/lite/New()
+ ..()
+ new /obj/item/clothing/suit/bio_suit/scientist(src)
+ new /obj/item/clothing/head/bio_hood/scientist(src)
+ new /obj/item/clothing/gloves/sterile/latex(src)
+ new /obj/item/device/radio/headset/heads/rd/alt(src)
+ new /obj/item/weapon/tank/air(src)
+ new /obj/item/clothing/mask/gas(src)
+ new /obj/item/device/flash(src)
+ return
@@ -35,15 +35,15 @@
icon_broken = "rdsecurebroken"
icon_off = "rdsecureoff"
- New()
- ..()
- new /obj/item/clothing/under/rank/research_director(src)
- new /obj/item/clothing/under/rank/research_director/rdalt(src)
- new /obj/item/clothing/under/rank/research_director/dress_rd(src)
- new /obj/item/clothing/suit/storage/toggle/labcoat(src)
- new /obj/item/weapon/cartridge/rd(src)
- new /obj/item/clothing/shoes/white(src)
- new /obj/item/clothing/shoes/leather(src)
- new /obj/item/clothing/gloves/sterile/latex(src)
- new /obj/item/device/radio/headset/heads/rd(src)
- return
\ No newline at end of file
+/obj/structure/closet/secure_closet/RD/wardrobe/New()
+ ..()
+ new /obj/item/clothing/under/rank/research_director(src)
+ new /obj/item/clothing/under/rank/research_director/rdalt(src)
+ new /obj/item/clothing/under/rank/research_director/dress_rd(src)
+ new /obj/item/clothing/suit/storage/toggle/labcoat(src)
+ new /obj/item/weapon/cartridge/rd(src)
+ new /obj/item/clothing/shoes/white(src)
+ new /obj/item/clothing/shoes/leather(src)
+ new /obj/item/clothing/gloves/sterile/latex(src)
+ new /obj/item/device/radio/headset/heads/rd(src)
+ return
\ No newline at end of file
diff --git a/maps/southern_cross/structures/closets/security.dm b/maps/southern_cross/structures/closets/security.dm
index 7ebdf6bd64..7f41dbd46b 100644
--- a/maps/southern_cross/structures/closets/security.dm
+++ b/maps/southern_cross/structures/closets/security.dm
@@ -12,33 +12,33 @@
icon_broken = "hossecurebroken"
icon_off = "hossecureoff"
- New()
- ..()
- if(prob(50))
- new /obj/item/weapon/storage/backpack/security(src)
- else
- new /obj/item/weapon/storage/backpack/satchel/sec(src)
- if(prob(50))
- new /obj/item/weapon/storage/backpack/dufflebag/sec(src)
- new /obj/item/clothing/head/helmet/HoS(src)
- new /obj/item/clothing/suit/storage/vest/hos(src)
- new /obj/item/clothing/head/helmet/HoS/dermal(src)
- new /obj/item/device/radio/headset/heads/hos/alt(src)
- new /obj/item/clothing/glasses/sunglasses/sechud(src)
- new /obj/item/taperoll/police(src)
- new /obj/item/weapon/shield/riot(src)
- new /obj/item/weapon/shield/riot/tele(src)
- new /obj/item/weapon/reagent_containers/spray/pepper(src)
- new /obj/item/weapon/crowbar/red(src)
- new /obj/item/weapon/storage/box/flashbangs(src)
- new /obj/item/weapon/storage/belt/security(src)
- new /obj/item/device/flash(src)
- new /obj/item/weapon/melee/baton/loaded(src)
- new /obj/item/weapon/gun/energy/gun(src)
- new /obj/item/weapon/cell/device/weapon(src)
- new /obj/item/weapon/melee/telebaton(src)
- new /obj/item/device/flashlight/maglight(src)
- return
+/obj/structure/closet/secure_closet/hos/lite/New()
+ ..()
+ if(prob(50))
+ new /obj/item/weapon/storage/backpack/security(src)
+ else
+ new /obj/item/weapon/storage/backpack/satchel/sec(src)
+ if(prob(50))
+ new /obj/item/weapon/storage/backpack/dufflebag/sec(src)
+ new /obj/item/clothing/head/helmet/HoS(src)
+ new /obj/item/clothing/suit/storage/vest/hos(src)
+ new /obj/item/clothing/head/helmet/HoS/dermal(src)
+ new /obj/item/device/radio/headset/heads/hos/alt(src)
+ new /obj/item/clothing/glasses/sunglasses/sechud(src)
+ new /obj/item/taperoll/police(src)
+ new /obj/item/weapon/shield/riot(src)
+ new /obj/item/weapon/shield/riot/tele(src)
+ new /obj/item/weapon/reagent_containers/spray/pepper(src)
+ new /obj/item/weapon/crowbar/red(src)
+ new /obj/item/weapon/storage/box/flashbangs(src)
+ new /obj/item/weapon/storage/belt/security(src)
+ new /obj/item/device/flash(src)
+ new /obj/item/weapon/melee/baton/loaded(src)
+ new /obj/item/weapon/gun/energy/gun(src)
+ new /obj/item/weapon/cell/device/weapon(src)
+ new /obj/item/weapon/melee/telebaton(src)
+ new /obj/item/device/flashlight/maglight(src)
+ return
@@ -52,24 +52,24 @@
icon_broken = "hossecurebroken"
icon_off = "hossecureoff"
- New()
- ..()
- if(prob(50))
- new /obj/item/weapon/storage/backpack/security(src)
- else
- new /obj/item/weapon/storage/backpack/satchel/sec(src)
- if(prob(50))
- new /obj/item/weapon/storage/backpack/dufflebag/sec(src)
- new /obj/item/clothing/under/rank/head_of_security/jensen(src)
- new /obj/item/clothing/under/rank/head_of_security/corp(src)
- new /obj/item/clothing/suit/storage/vest/hoscoat/jensen(src)
- new /obj/item/clothing/suit/storage/vest/hoscoat(src)
- new /obj/item/weapon/cartridge/hos(src)
- new /obj/item/device/radio/headset/heads/hos(src)
- new /obj/item/clothing/glasses/sunglasses/sechud(src)
- new /obj/item/weapon/storage/box/holobadge/hos(src)
- new /obj/item/clothing/accessory/badge/holo/hos(src)
- new /obj/item/clothing/accessory/holster/waist(src)
- new /obj/item/clothing/head/beret/sec/corporate/hos(src)
- new /obj/item/clothing/mask/gas/half(src)
- return
\ No newline at end of file
+/obj/structure/closet/secure_closet/hos/wardrobe/New()
+ ..()
+ if(prob(50))
+ new /obj/item/weapon/storage/backpack/security(src)
+ else
+ new /obj/item/weapon/storage/backpack/satchel/sec(src)
+ if(prob(50))
+ new /obj/item/weapon/storage/backpack/dufflebag/sec(src)
+ new /obj/item/clothing/under/rank/head_of_security/jensen(src)
+ new /obj/item/clothing/under/rank/head_of_security/corp(src)
+ new /obj/item/clothing/suit/storage/vest/hoscoat/jensen(src)
+ new /obj/item/clothing/suit/storage/vest/hoscoat(src)
+ new /obj/item/weapon/cartridge/hos(src)
+ new /obj/item/device/radio/headset/heads/hos(src)
+ new /obj/item/clothing/glasses/sunglasses/sechud(src)
+ new /obj/item/weapon/storage/box/holobadge/hos(src)
+ new /obj/item/clothing/accessory/badge/holo/hos(src)
+ new /obj/item/clothing/accessory/holster/waist(src)
+ new /obj/item/clothing/head/beret/sec/corporate/hos(src)
+ new /obj/item/clothing/mask/gas/half(src)
+ return
\ No newline at end of file
diff --git a/maps/southern_cross/turfs/outdoors.dm b/maps/southern_cross/turfs/outdoors.dm
index 08b8626730..80eb784938 100644
--- a/maps/southern_cross/turfs/outdoors.dm
+++ b/maps/southern_cross/turfs/outdoors.dm
@@ -75,4 +75,56 @@
/turf/simulated/mineral/floor/ignore_mapgen/sif
oxygen = MOLES_O2SIF
nitrogen = MOLES_N2SIF
- temperature = TEMPERATURE_SIF
\ No newline at end of file
+ temperature = TEMPERATURE_SIF
+
+/turf/simulated/floor/outdoors/mud/sif/planetuse
+ oxygen = MOLES_O2SIF
+ nitrogen = MOLES_N2SIF
+ temperature = TEMPERATURE_SIF
+
+// PoI compatability, to stop active edges.
+// In hindsight it would've been better to do this first instead of making a billion /sif subtypes above,
+// but maybe we can transition to this instead now and over time get rid of the /sif subtypes.
+// The downside is if someone wants to use this in normal/vaccum they'll need to make a new subtype, but since the typical use case has changed, this might be acceptable.
+
+/turf/simulated/mineral
+ oxygen = MOLES_O2SIF
+ nitrogen = MOLES_N2SIF
+ temperature = TEMPERATURE_SIF
+
+/turf/simulated/floor/outdoors
+ oxygen = MOLES_O2SIF
+ nitrogen = MOLES_N2SIF
+ temperature = TEMPERATURE_SIF
+
+/turf/simulated/floor/water
+ oxygen = MOLES_O2SIF
+ nitrogen = MOLES_N2SIF
+ temperature = TEMPERATURE_SIF
+
+/turf/simulated/shuttle/floor/alienplating/external
+ oxygen = MOLES_O2SIF
+ nitrogen = MOLES_N2SIF
+ temperature = TEMPERATURE_SIF
+
+// Space mineral tiles are now not the default, so they get demoted to subtype status.
+
+/turf/simulated/mineral/vacuum
+ oxygen = 0
+ nitrogen = 0
+ temperature = TCMB
+
+/turf/simulated/mineral/ignore_mapgen/vacuum
+ oxygen = 0
+ nitrogen = 0
+ temperature = TCMB
+
+/turf/simulated/mineral/floor/vacuum
+ oxygen = 0
+ nitrogen = 0
+ temperature = TCMB
+
+/turf/simulated/mineral/floor/ignore_mapgen/vacuum
+ oxygen = 0
+ nitrogen = 0
+ temperature = TCMB
\ No newline at end of file
diff --git a/maps/submaps/cave_submaps/Scave1.dmm b/maps/submaps/cave_submaps/Scave1.dmm
index 110fb5f663..59872d153a 100644
--- a/maps/submaps/cave_submaps/Scave1.dmm
+++ b/maps/submaps/cave_submaps/Scave1.dmm
@@ -1,41 +1,21 @@
"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/turf/simulated/mineral,/area/submap/cave/Scave1)
-"c" = (/obj/effect/spider/stickyweb,/turf/simulated/mineral/floor,/area/submap/cave/Scave1)
-"d" = (/turf/simulated/mineral/floor,/area/submap/cave/Scave1)
-"e" = (/obj/effect/spider/spiderling,/turf/simulated/mineral/floor,/area/submap/cave/Scave1)
-"f" = (/obj/item/weapon/spacecash/c100,/obj/item/weapon/spacecash/c100,/turf/simulated/mineral/floor,/area/submap/cave/Scave1)
-"g" = (/obj/item/weapon/spacecash/c100,/obj/item/weapon/spacecash/c100,/obj/item/weapon/spacecash/c100,/obj/effect/decal/remains,/turf/simulated/mineral/floor,/area/submap/cave/Scave1)
-"h" = (/obj/item/weapon/grenade/spawnergrenade/spider,/turf/simulated/mineral/floor,/area/submap/cave/Scave1)
-"i" = (/mob/living/simple_animal/hostile/giant_spider/hunter,/turf/simulated/mineral/floor,/area/submap/cave/Scave1)
-"j" = (/obj/random/toolbox,/turf/simulated/mineral/floor,/area/submap/cave/Scave1)
-"k" = (/mob/living/simple_animal/hostile/giant_spider,/turf/simulated/mineral/floor,/area/submap/cave/Scave1)
-"l" = (/mob/living/simple_animal/hostile/giant_spider/nurse,/turf/simulated/mineral/floor,/area/submap/cave/Scave1)
-"m" = (/obj/effect/decal/mecha_wreckage/ripley,/turf/simulated/mineral/floor,/area/submap/cave/Scave1)
-"n" = (/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill,/turf/simulated/mineral/floor,/area/submap/cave/Scave1)
-"o" = (/obj/item/device/flashlight,/turf/simulated/mineral/floor,/area/submap/cave/Scave1)
-"p" = (/obj/effect/spider/stickyweb,/obj/effect/spider/stickyweb,/turf/simulated/mineral/floor,/area/submap/cave/Scave1)
-"q" = (/obj/effect/spider/stickyweb,/mob/living/simple_animal/hostile/giant_spider/hunter,/turf/simulated/mineral/floor,/area/submap/cave/Scave1)
-"r" = (/obj/effect/decal/remains,/turf/simulated/mineral/floor,/area/submap/cave/Scave1)
"b" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/cave/Scave1)
-"c" = (/turf/simulated/mineral,/area/submap/cave/Scave1)
-"d" = (/obj/effect/spider/stickyweb,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
-"e" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
-"f" = (/obj/effect/spider/spiderling,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
-"g" = (/obj/item/weapon/spacecash/c100,/obj/item/weapon/spacecash/c100,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
-"h" = (/obj/effect/spider/stickyweb,/turf/simulated/mineral/floor,/area/submap/cave/Scave1)
-"i" = (/obj/item/weapon/spacecash/c100,/obj/item/weapon/spacecash/c100,/obj/item/weapon/spacecash/c100,/obj/effect/decal/remains,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
-"j" = (/obj/item/weapon/grenade/spawnergrenade/spider,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
-"k" = (/mob/living/simple_animal/hostile/giant_spider/hunter,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
-"l" = (/obj/random/toolbox,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
-"m" = (/mob/living/simple_animal/hostile/giant_spider,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
-"n" = (/mob/living/simple_animal/hostile/giant_spider/nurse,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
-"o" = (/obj/effect/decal/mecha_wreckage/ripley,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
-"p" = (/turf/simulated/mineral/floor,/area/submap/cave/Scave1)
-"q" = (/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
-"r" = (/obj/item/device/flashlight,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
-"s" = (/obj/effect/spider/stickyweb,/obj/effect/spider/stickyweb,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
-"t" = (/obj/effect/spider/stickyweb,/mob/living/simple_animal/hostile/giant_spider/hunter,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
-"u" = (/obj/effect/decal/remains,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
+"c" = (/obj/effect/spider/stickyweb,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
+"d" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
+"e" = (/obj/effect/spider/spiderling,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
+"f" = (/obj/item/weapon/spacecash/c100,/obj/item/weapon/spacecash/c100,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
+"g" = (/obj/item/weapon/spacecash/c100,/obj/item/weapon/spacecash/c100,/obj/item/weapon/spacecash/c100,/obj/effect/decal/remains,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
+"h" = (/obj/item/weapon/grenade/spawnergrenade/spider,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
+"i" = (/mob/living/simple_animal/hostile/giant_spider/hunter,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
+"j" = (/obj/random/toolbox,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
+"k" = (/mob/living/simple_animal/hostile/giant_spider,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
+"l" = (/mob/living/simple_animal/hostile/giant_spider/nurse,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
+"m" = (/obj/effect/decal/mecha_wreckage/ripley,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
+"n" = (/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
+"o" = (/obj/item/device/flashlight,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
+"p" = (/obj/effect/spider/stickyweb,/obj/effect/spider/stickyweb,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
+"q" = (/obj/effect/spider/stickyweb,/mob/living/simple_animal/hostile/giant_spider/hunter,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
+"r" = (/obj/effect/decal/remains,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/Scave1)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -80,9 +60,9 @@ aabbbccbpeeccccccdeenedbcbaaaa
aaebbccbpekcccccccddeeebcbaaaa
aarebccbppcccccccccmdeebbbaaaa
aaeebbbbpppcccccccccceebbeaaaa
-aaeeeseeeeeeccccccccefebbeaaaa
-aaeessdeeeeeetcdeeeeedbbbeaaaa
-aauebbbbbeeeeeeeeeeedbbbbeaaaa
+aaeeepeeeeeeccccccccefebbeaaaa
+aaeeppdeeeeeeqcdeeeeedbbbeaaaa
+aarebbbbbeeeeeeeeeeedbbbbeaaaa
aabbbbccbbdeeedeeeeedbccbbaaaa
aabbcccccbbbbbbbbkbbbbccbbaaaa
aabbbbccbbbbbbccbbbbbcccbbaaaa
diff --git a/maps/submaps/cave_submaps/crashed_ufo.dmm b/maps/submaps/cave_submaps/crashed_ufo.dmm
index e6911eb76a..e977d9ba4d 100644
--- a/maps/submaps/cave_submaps/crashed_ufo.dmm
+++ b/maps/submaps/cave_submaps/crashed_ufo.dmm
@@ -1,111 +1,112 @@
"aa" = (/turf/template_noop,/area/template_noop)
-"ab" = (/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"ab" = (/turf/simulated/shuttle/floor/alienplating/external,/area/submap/cave/crashed_ufo)
"ac" = (/turf/simulated/shuttle/wall/alien,/area/submap/cave/crashed_ufo)
"ad" = (/obj/structure/closet/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
"ae" = (/obj/structure/closet/alien,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"af" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"ag" = (/obj/effect/decal/remains/xeno,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"ah" = (/obj/machinery/porta_turret/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"ai" = (/obj/structure/loot_pile/surface/alien/engineering,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aj" = (/obj/structure/prop/alien/computer,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"ak" = (/obj/item/weapon/wrench/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"al" = (/obj/structure/bed/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"am" = (/obj/structure/table/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"an" = (/obj/structure/table/alien,/obj/item/clothing/head/helmet/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"ao" = (/obj/structure/prop/alien/power,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"ap" = (/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"aq" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"ar" = (/turf/simulated/shuttle/wall/alien/hard_corner,/area/submap/cave/crashed_ufo)
-"as" = (/obj/structure/prop/alien/computer,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"at" = (/obj/structure/table/alien,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"au" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"av" = (/obj/structure/loot_pile/surface/alien/security,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aw" = (/obj/structure/prop/alien/computer{dir = 8},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"ax" = (/obj/structure/prop/alien/computer{tag = "icon-console-c (EAST)"; icon_state = "console-c"; dir = 4},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"ay" = (/obj/machinery/door/airlock/alien/locked{welded = 1},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"az" = (/obj/structure/bed/alien,/obj/effect/decal/remains/xeno,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aA" = (/obj/item/weapon/screwdriver/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aB" = (/obj/item/weapon/wirecutters/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aC" = (/obj/structure/table/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aD" = (/obj/item/device/multitool/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aE" = (/obj/structure/prop/alien/computer/camera/flipped{tag = "icon-camera_flipped (EAST)"; icon_state = "camera_flipped"; dir = 4},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"aF" = (/obj/structure/prop/alien/computer/camera{tag = "icon-camera (WEST)"; icon_state = "camera"; dir = 8},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"aG" = (/obj/machinery/porta_turret/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"aH" = (/obj/machinery/door/airlock/alien/locked{p_open = 1},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aI" = (/obj/effect/decal/remains/robot,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aJ" = (/obj/item/weapon/crowbar/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aK" = (/obj/item/stack/cable_coil/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aL" = (/obj/structure/table/alien,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aM" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/obj/item/device/gps/internal/alien_vessel,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aN" = (/obj/structure/prop/alien/computer{tag = "icon-console-c (EAST)"; icon_state = "console-c"; dir = 4},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"aO" = (/obj/structure/table/alien,/obj/item/clothing/accessory/medal/dungeon/alien_ufo,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aP" = (/obj/structure/table/alien,/obj/item/weapon/weldingtool/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aQ" = (/obj/structure/bed/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"aR" = (/obj/structure/prop/alien/computer/camera,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"aS" = (/obj/structure/closet/alien,/obj/item/weapon/paper/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"aT" = (/obj/structure/bed/alien,/obj/effect/decal/remains/xeno,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"aU" = (/obj/structure/loot_pile/surface/alien/end,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aV" = (/obj/structure/table/alien,/obj/item/weapon/surgical/circular_saw/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"aW" = (/obj/structure/table/alien,/obj/item/weapon/surgical/FixOVein/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"aX" = (/obj/structure/table/alien,/obj/item/weapon/surgical/scalpel/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"aY" = (/obj/item/weapon/surgical/hemostat/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"aZ" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"ba" = (/obj/effect/decal/remains/lizard,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"bb" = (/obj/structure/prop/alien/dispenser,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"bc" = (/obj/structure/table/alien,/obj/item/weapon/surgical/bone_clamp/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"bd" = (/obj/structure/loot_pile/surface/alien/medical,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"be" = (/obj/structure/closet/alien,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"bf" = (/obj/structure/prop/alien/dispenser,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"bg" = (/obj/effect/decal/remains/mouse,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"bh" = (/obj/structure/closet/alien,/obj/item/prop/alien/junk,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"bi" = (/obj/machinery/porta_turret/alien/destroyed{tag = "icon-destroyed_target_prism (SOUTHEAST)"; icon_state = "destroyed_target_prism"; dir = 6},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"bj" = (/obj/item/weapon/cell/device/weapon/empty,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"bk" = (/obj/machinery/porta_turret/alien/destroyed{tag = "icon-destroyed_target_prism (SOUTHWEST)"; icon_state = "destroyed_target_prism"; dir = 10},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"bl" = (/obj/item/weapon/gun/energy/retro/empty,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"bm" = (/obj/item/device/gps{gps_tag = "COMDOM1"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"bn" = (/obj/item/weapon/reagent_containers/hypospray/autoinjector/used,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"bo" = (/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/burn,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"bp" = (/obj/effect/decal/remains/human{desc = "They look like human remains. Based on the equipment you saw nearby when you walked in, they were some kind of command person, and a poor one at that."},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"bq" = (/obj/item/clothing/gloves/yellow,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"br" = (/obj/item/weapon/storage/belt/utility/full,/obj/item/device/multitool,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"bs" = (/obj/machinery/door/airlock/alien/public,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"bt" = (/obj/item/clothing/suit/storage/hooded/wintercoat/captain,/obj/item/clothing/shoes/boots/winter/command,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"bu" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop)
+"af" = (/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"ag" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"ah" = (/obj/effect/decal/remains/xeno,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"ai" = (/obj/machinery/porta_turret/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aj" = (/obj/structure/loot_pile/surface/alien/engineering,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"ak" = (/obj/structure/prop/alien/computer,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"al" = (/obj/item/weapon/wrench/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"am" = (/obj/structure/bed/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"an" = (/obj/structure/table/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"ao" = (/obj/structure/table/alien,/obj/item/clothing/head/helmet/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"ap" = (/obj/structure/prop/alien/power,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aq" = (/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"ar" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"as" = (/turf/simulated/shuttle/wall/alien/hard_corner,/area/submap/cave/crashed_ufo)
+"at" = (/obj/structure/prop/alien/computer,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"au" = (/obj/structure/table/alien,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"av" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"aw" = (/obj/structure/loot_pile/surface/alien/security,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"ax" = (/obj/structure/prop/alien/computer{dir = 8},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"ay" = (/obj/structure/prop/alien/computer{tag = "icon-console-c (EAST)"; icon_state = "console-c"; dir = 4},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"az" = (/obj/machinery/door/airlock/alien/locked{welded = 1},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aA" = (/obj/structure/bed/alien,/obj/effect/decal/remains/xeno,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aB" = (/obj/item/weapon/screwdriver/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aC" = (/obj/item/weapon/wirecutters/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aD" = (/obj/structure/table/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aE" = (/obj/item/device/multitool/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aF" = (/obj/structure/prop/alien/computer/camera/flipped{tag = "icon-camera_flipped (EAST)"; icon_state = "camera_flipped"; dir = 4},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"aG" = (/obj/structure/prop/alien/computer/camera{tag = "icon-camera (WEST)"; icon_state = "camera"; dir = 8},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"aH" = (/obj/machinery/porta_turret/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"aI" = (/obj/machinery/door/airlock/alien/locked{p_open = 1},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aJ" = (/obj/effect/decal/remains/robot,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aK" = (/obj/item/weapon/crowbar/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aL" = (/obj/item/stack/cable_coil/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aM" = (/obj/structure/table/alien,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aN" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/obj/item/device/gps/internal/alien_vessel,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aO" = (/obj/structure/prop/alien/computer{tag = "icon-console-c (EAST)"; icon_state = "console-c"; dir = 4},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"aP" = (/obj/structure/table/alien,/obj/item/clothing/accessory/medal/dungeon/alien_ufo,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aQ" = (/obj/structure/table/alien,/obj/item/weapon/weldingtool/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aR" = (/obj/structure/bed/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"aS" = (/obj/structure/prop/alien/computer/camera,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"aT" = (/obj/structure/closet/alien,/obj/item/weapon/paper/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"aU" = (/obj/structure/bed/alien,/obj/effect/decal/remains/xeno,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"aV" = (/obj/structure/loot_pile/surface/alien/end,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aW" = (/obj/structure/table/alien,/obj/item/weapon/surgical/circular_saw/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"aX" = (/obj/structure/table/alien,/obj/item/weapon/surgical/FixOVein/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"aY" = (/obj/structure/table/alien,/obj/item/weapon/surgical/scalpel/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"aZ" = (/obj/item/weapon/surgical/hemostat/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"ba" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"bb" = (/obj/effect/decal/remains/lizard,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"bc" = (/obj/structure/prop/alien/dispenser,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"bd" = (/obj/structure/table/alien,/obj/item/weapon/surgical/bone_clamp/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"be" = (/obj/structure/loot_pile/surface/alien/medical,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bf" = (/obj/structure/closet/alien,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"bg" = (/obj/structure/prop/alien/dispenser,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bh" = (/obj/effect/decal/remains/mouse,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"bi" = (/obj/structure/closet/alien,/obj/item/prop/alien/junk,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bj" = (/obj/machinery/porta_turret/alien/destroyed{tag = "icon-destroyed_target_prism (SOUTHEAST)"; icon_state = "destroyed_target_prism"; dir = 6},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bk" = (/obj/item/weapon/cell/device/weapon/empty,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bl" = (/obj/machinery/porta_turret/alien/destroyed{tag = "icon-destroyed_target_prism (SOUTHWEST)"; icon_state = "destroyed_target_prism"; dir = 10},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bm" = (/obj/item/weapon/gun/energy/retro/empty,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bn" = (/obj/item/device/gps{gps_tag = "COMDOM1"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bo" = (/obj/item/weapon/reagent_containers/hypospray/autoinjector/used,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bp" = (/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/burn,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bq" = (/obj/effect/decal/remains/human{desc = "They look like human remains. Based on the equipment you saw nearby when you walked in, they were some kind of command person, and a poor one at that."},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"br" = (/obj/item/clothing/gloves/yellow,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bs" = (/obj/item/weapon/storage/belt/utility/full,/obj/item/device/multitool,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bt" = (/obj/machinery/door/airlock/alien/public,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bu" = (/obj/item/clothing/suit/storage/hooded/wintercoat/captain,/obj/item/clothing/shoes/boots/winter/command,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bv" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaababababacacacacacacacababababaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaabababacacacacadadaeadadacacacacabababaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaababacacacabafabababagabababafabacacacababaaaaaaaaaaaaaa
-aaaaaaaaaaaaababacacabababacabababababababacabababacacababaaaaaaaaaaaa
-aaaaaaaaaaababacacababacacacacahabababahacacacacababacacababaaaaaaaaaa
-aaaaaaaaababacacababacacaiajacacababakacacalagacacababacacababaaaaaaaa
-aaaaaaababacacababacacahababamacacabacacanabagaeacacababacacababaaaaaa
-aaaaaaabacacababacacaoababapamaqarafaracacafacacacacacababacacabaaaaaa
-aaaaababacababacacaoababapapapabarabarahapapasatatacacacababacababaaaa
-aaaaabacacabacacahababapapapababafabafababapapapauacaeacacabacacabaaaa
-aaaaabacababacaiababapapapababaiarabaravababapapawacabagacababacabaaaa
-aaababacafacacaxabapapapababadacarayaracavababapapafabazacacafacababaa
-aaabacacababacacamamapaAaBadacacasabasacacavababapacaCacacababacacabaa
-aaabacadababahacacaCaDagaiacacaEapabapaFacacavabaGacacacahababaeacabaa
-aaabacadababababacararaHaracapapapaIapapapacarafararacabababaJadacabaa
-aaabacaeabaKabababafabababacahapaLaMaqapahacabababafabababababadacabaa
-aaabacaeababababacararafaracaNapaOagaPapawacarafararacagabababaeacabaa
-aaabacadababahacacasacapaQacacapapapapapacacaRapapaSacacahababadacabaa
-aaabacacababacacapapacapapaTacacahaUahacacaVapapapacacacacababacacabaa
-aaababacafacacaWapaTaracapapaQacacacacacaXaGapaparacaYacacacafacababaa
-aaaaabacababacauapapaZapapapapaTarabaraEapapapapaZapbaapacababacabaaaa
-aaaaabacacabacacbbbcarahapacapapafabafapapapapaparacapacacabacacabaaaa
-aaaaababacababacacacacarafaracacarabarapaparaZaracacacacababacababaaaa
-aaaaaaabacacababacacacbdabababbdarafarbeacacapacacacacababacacabaaaaaa
-aaaaaaababacacababacacbfababbdacacabacacacapbgapacacababacacababaaaaaa
-aaaaaaaaababacacababacacbhbdacacabababacacacapacacababacacababaaaaaaaa
-aaaaaaaaaaababacacababacacacacbibjababbkacacacacababacacababaaaaaaaaaa
-aaaaaaaaaaaaababacacabababarabababblbmbnboarabababacacababaaaaaaaaaaaa
-aaaaaaaaaaaaaaababacacacabafabbjababbpbqbrafabacacacababaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaabababacacaracabarbsarbtacaracacabababaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaababababacararabaracacababababaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaabububuabababarbsarabababbububuaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaabububububububububububububububuaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaababacacacafagafafafahafafafagafacacacababaaaaaaaaaaaaaa
+aaaaaaaaaaaaababacacafafafacafafafafafafafacafafafacacababaaaaaaaaaaaa
+aaaaaaaaaaababacacafafacacacacaiafafafaiacacacacafafacacababaaaaaaaaaa
+aaaaaaaaababacacafafacacajakacacafafalacacamahacacafafacacababaaaaaaaa
+aaaaaaababacacafafacacaiafafanacacafacacaoafahaeacacafafacacababaaaaaa
+aaaaaaabacacafafacacapafafaqanarasagasacacagacacacacacafafacacabaaaaaa
+aaaaababacafafacacapafafaqaqaqafasafasaiaqaqatauauacacacafafacababaaaa
+aaaaabacacafacacaiafafaqaqaqafafagafagafafaqaqaqavacaeacacafacacabaaaa
+aaaaabacafafacajafafaqaqaqafafajasafasawafafaqaqaxacafahacafafacabaaaa
+aaababacagacacayafaqaqaqafafadacasazasacawafafaqaqagafaAacacagacababaa
+aaabacacafafacacananaqaBaCadacacatafatacacawafafaqacaDacacafafacacabaa
+aaabacadafafaiacacaDaEahajacacaFaqafaqaGacacawafaHacacacaiafafaeacabaa
+aaabacadafafafafacasasaIasacaqaqaqaJaqaqaqacasagasasacafafafaKadacabaa
+aaabacaeafaLafafafagafafafacaiaqaMaNaraqaiacafafafagafafafafafadacabaa
+aaabacaeafafafafacasasagasacaOaqaPahaQaqaxacasagasasacahafafafaeacabaa
+aaabacadafafaiacacatacaqaRacacaqaqaqaqaqacacaSaqaqaTacacaiafafadacabaa
+aaabacacafafacacaqaqacaqaqaUacacaiaVaiacacaWaqaqaqacacacacafafacacabaa
+aaababacagacacaXaqaUasacaqaqaRacacacacacaYaHaqaqasacaZacacacagacababaa
+aaaaabacafafacavaqaqbaaqaqaqaqaUasafasaFaqaqaqaqbaaqbbaqacafafacabaaaa
+aaaaabacacafacacbcbdasaiaqacaqaqagafagaqaqaqaqaqasacaqacacafacacabaaaa
+aaaaababacafafacacacacasagasacacasafasaqaqasbaasacacacacafafacababaaaa
+aaaaaaabacacafafacacacbeafafafbeasagasbfacacaqacacacacafafacacabaaaaaa
+aaaaaaababacacafafacacbgafafbeacacafacacacaqbhaqacacafafacacababaaaaaa
+aaaaaaaaababacacafafacacbibeacacafafafacacacaqacacafafacacababaaaaaaaa
+aaaaaaaaaaababacacafafacacacacbjbkafafblacacacacafafacacababaaaaaaaaaa
+aaaaaaaaaaaaababacacafafafasafafafbmbnbobpasafafafacacababaaaaaaaaaaaa
+aaaaaaaaaaaaaaababacacacafagafbkafafbqbrbsagafacacacababaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaabababacacasacafasbtasbuacasacacabababaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaababababacasasafasacacababababaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaabvbvbvabababasbtasabababbvbvbvaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaabvbvbvbvbvbvbvbvbvbvbvbvbvbvbvaaaaaaaaaaaaaaaaaaaa
"}
diff --git a/maps/submaps/cave_submaps/quarantineshuttle.dmm b/maps/submaps/cave_submaps/quarantineshuttle.dmm
index 9b952dba2c..e71c4f8c5d 100644
--- a/maps/submaps/cave_submaps/quarantineshuttle.dmm
+++ b/maps/submaps/cave_submaps/quarantineshuttle.dmm
@@ -94,28 +94,27 @@
"bP" = (/obj/item/weapon/contraband/poster,/turf/simulated/shuttle/floor{tag = "icon-floor_yellow"; icon_state = "floor_yellow"},/area/submap/cave/qShuttle)
"bQ" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/shuttle/floor{tag = "icon-floor_yellow"; icon_state = "floor_yellow"},/area/submap/cave/qShuttle)
"bR" = (/obj/structure/sign/biohazard,/turf/simulated/shuttle/wall/hard_corner,/area/submap/cave/qShuttle)
-"bS" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/space)
-"bT" = (/obj/item/tape/medical{icon_state = "tape_v_0"},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
-"bU" = (/obj/item/taperoll/medical,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
-"bV" = (/obj/item/tape/medical{dir = 1; icon_state = "tape_dir_0"},/obj/item/tape/medical{dir = 4; icon_state = "tape_dir_0"},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
-"bW" = (/obj/item/tape/medical{icon_state = "tape_h_0"},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
-"bX" = (/obj/structure/lattice,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
-"bY" = (/obj/structure/sign/warning/secure_area,/turf/simulated/wall/iron,/area/submap/cave/qShuttle)
-"bZ" = (/obj/structure/sign/kiddieplaque{desc = "By order of the S.D.D.C, this site or craft is to be buried and not disturbed until such time that sterility can be confirmed. Dated: 20/12/2491 "; name = "\improper Sif Department of Disease Control notice"},/turf/simulated/wall/iron,/area/submap/cave/qShuttle)
-"ca" = (/obj/structure/sign/warning,/turf/simulated/wall/iron,/area/submap/cave/qShuttle)
-"cb" = (/obj/item/bodybag,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
-"cc" = (/obj/structure/table/steel,/obj/item/weapon/storage/box/bodybags,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
-"cd" = (/obj/structure/table/steel,/obj/item/clothing/suit/bio_suit,/obj/random/medical/lite,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
-"ce" = (/obj/structure/closet/l3closet/virology,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
-"cf" = (/obj/item/weapon/reagent_containers/syringe/antiviral,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
-"cg" = (/obj/structure/dispenser/oxygen,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
-"ch" = (/obj/structure/table/steel,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
-"ci" = (/obj/structure/table/steel,/obj/item/weapon/reagent_containers/syringe/antiviral,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
-"cj" = (/obj/structure/table/steel,/obj/item/weapon/reagent_containers/spray/cleaner{desc = "Someone has crossed out the 'Space' from Space Cleaner and written in Chemistry. Scrawled on the back is, 'Okay, whoever filled this with polytrinic acid, it was only funny the first time. It was hard enough replacing the CMO's first cat!'"; name = "Chemistry Cleaner"},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
-"ck" = (/obj/structure/table/steel,/obj/item/weapon/crowbar/power,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
-"cl" = (/obj/structure/table/rack,/obj/item/clothing/head/bio_hood,/obj/item/clothing/suit/bio_suit,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
-"cm" = (/obj/item/weapon/weldingtool/largetank,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
-"cn" = (/obj/structure/closet/crate/medical,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
+"bS" = (/obj/item/tape/medical{icon_state = "tape_v_0"},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
+"bT" = (/obj/item/taperoll/medical,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
+"bU" = (/obj/item/tape/medical{dir = 1; icon_state = "tape_dir_0"},/obj/item/tape/medical{dir = 4; icon_state = "tape_dir_0"},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
+"bV" = (/obj/item/tape/medical{icon_state = "tape_h_0"},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
+"bW" = (/obj/structure/lattice,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
+"bX" = (/obj/structure/sign/warning/secure_area,/turf/simulated/wall/iron,/area/submap/cave/qShuttle)
+"bY" = (/obj/structure/sign/kiddieplaque{desc = "By order of the S.D.D.C, this site or craft is to be buried and not disturbed until such time that sterility can be confirmed. Dated: 20/12/2491 "; name = "\improper Sif Department of Disease Control notice"},/turf/simulated/wall/iron,/area/submap/cave/qShuttle)
+"bZ" = (/obj/structure/sign/warning,/turf/simulated/wall/iron,/area/submap/cave/qShuttle)
+"ca" = (/obj/item/bodybag,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
+"cb" = (/obj/structure/table/steel,/obj/item/weapon/storage/box/bodybags,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
+"cc" = (/obj/structure/table/steel,/obj/item/clothing/suit/bio_suit,/obj/random/medical/lite,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
+"cd" = (/obj/structure/closet/l3closet/virology,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
+"ce" = (/obj/item/weapon/reagent_containers/syringe/antiviral,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
+"cf" = (/obj/structure/dispenser/oxygen,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
+"cg" = (/obj/structure/table/steel,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
+"ch" = (/obj/structure/table/steel,/obj/item/weapon/reagent_containers/syringe/antiviral,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
+"ci" = (/obj/structure/table/steel,/obj/item/weapon/reagent_containers/spray/cleaner{desc = "Someone has crossed out the 'Space' from Space Cleaner and written in Chemistry. Scrawled on the back is, 'Okay, whoever filled this with polytrinic acid, it was only funny the first time. It was hard enough replacing the CMO's first cat!'"; name = "Chemistry Cleaner"},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
+"cj" = (/obj/structure/table/steel,/obj/item/weapon/crowbar/power,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
+"ck" = (/obj/structure/table/rack,/obj/item/clothing/head/bio_hood,/obj/item/clothing/suit/bio_suit,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
+"cl" = (/obj/item/weapon/weldingtool/largetank,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
+"cm" = (/obj/structure/closet/crate/medical,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -134,11 +133,11 @@ aaabaiaJbmbnadbobpbqbrbsbtbqaNbuaUbvaAbwaVbxaYabaa
aaabadadadadadaDbyaAbzaAbAbBbCbDadbEaGbFadadbGabaa
aaababadadbHbIbJaoadbKaQbLadbMbNadbObPbQadagahabaa
ababacabadaiajakakbRaiadaiadadadadadadadadadadaaaa
-bSabababbTabaeaeafaeababababbUabababababadagahaaaa
-aaabababbVbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWadadadaaaa
-aaaaababababababababbXbYbZcacbcbcbabcccdceabcfaaaa
-aaaaacababcgchcicjckclababcmabcbcbababababababaaaa
-aaaaaaababcnchababababababababaaaaaaaaaaababacaaaa
+ababababbSabaeaeafaeababababbTabababababadagahaaaa
+aaabababbUbVbVbVbVbVbVbVbVbVbVbVbVbVbVbVadadadaaaa
+aaaaababababababababbWbXbYbZcacacaabcbcccdabceaaaa
+aaaaacababcfcgchcicjckababclabcacaababababababaaaa
+aaaaaaababcmcgababababababababaaaaaaaaaaababacaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/maps/submaps/surface_submaps/Blackshuttledown.dmm b/maps/submaps/surface_submaps/Blackshuttledown.dmm
index 04d9db0a3c..7feb3726b6 100644
--- a/maps/submaps/surface_submaps/Blackshuttledown.dmm
+++ b/maps/submaps/surface_submaps/Blackshuttledown.dmm
@@ -1,17 +1,17 @@
"aa" = (/turf/template_noop,/area/template_noop)
-"ab" = (/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/Blackshuttledown)
-"ac" = (/obj/effect/decal/remains/human,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/Blackshuttledown)
-"ad" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/Blackshuttledown)
-"ae" = (/obj/structure/flora/tree/sif,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/Blackshuttledown)
-"af" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/Blackshuttledown)
-"ag" = (/obj/structure/table/steel,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/Blackshuttledown)
-"ah" = (/mob/living/simple_animal/hostile/syndicate/ranged{desc = "Dosen't look friendly in the slightest."; name = "Unknown Individual."; say_got_target = list("Looks like trouble!","Contact!","We've got company!","Perimeter Breached!!"); speak = list("One day the'll fix that damn engine..","Next time, We're hidding on the tropical beach planet.","Wish I had better equipment...","I knew I should have been a line chef...","Fuckin' helmet keeps fogging up.","Hate this blocky ass ship.")},/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/Blackshuttledown)
-"ai" = (/turf/simulated/floor/outdoors/grass/sif/forest,/turf/simulated/shuttle/wall/dark{icon_state = "dark6"; name = "Unknown Shuttle"; tag = "icon-dark6"},/area/submap/Blackshuttledown)
+"ab" = (/turf/template_noop,/area/submap/Blackshuttledown)
+"ac" = (/obj/effect/decal/remains/human,/turf/template_noop,/area/submap/Blackshuttledown)
+"ad" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/Blackshuttledown)
+"ae" = (/obj/effect/decal/cleanable/blood,/turf/template_noop,/area/submap/Blackshuttledown)
+"af" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/Blackshuttledown)
+"ag" = (/obj/structure/table/steel,/turf/template_noop,/area/submap/Blackshuttledown)
+"ah" = (/mob/living/simple_animal/hostile/syndicate/ranged{desc = "Dosen't look friendly in the slightest."; name = "Unknown Individual."; say_got_target = list("Looks like trouble!","Contact!","We've got company!","Perimeter Breached!!"); speak = list("One day the'll fix that damn engine..","Next time, We're hidding on the tropical beach planet.","Wish I had better equipment...","I knew I should have been a line chef...","Fuckin' helmet keeps fogging up.","Hate this blocky ass ship.")},/turf/template_noop,/area/submap/Blackshuttledown)
+"ai" = (/turf/template_noop,/turf/simulated/shuttle/wall/dark{icon_state = "dark6"; name = "Unknown Shuttle"; tag = "icon-dark6"},/area/submap/Blackshuttledown)
"aj" = (/turf/simulated/shuttle/wall/dark{icon_state = "dark0"; name = "Unknown Shuttle"; tag = "icon-dark0"},/area/submap/Blackshuttledown)
-"ak" = (/turf/simulated/floor/outdoors/grass/sif/forest,/turf/simulated/shuttle/wall/dark{icon_state = "dark10"; name = "Unknown Shuttle"; tag = "icon-dark10"},/area/submap/Blackshuttledown)
+"ak" = (/turf/template_noop,/turf/simulated/shuttle/wall/dark{icon_state = "dark10"; name = "Unknown Shuttle"; tag = "icon-dark10"},/area/submap/Blackshuttledown)
"al" = (/obj/machinery/door/airlock/external,/turf/simulated/shuttle/wall/dark{icon_state = "dark0"; name = "Unknown Shuttle"; tag = "icon-dark0"},/area/submap/Blackshuttledown)
"am" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/turf/simulated/shuttle/wall/dark{icon_state = "dark0"; name = "Unknown Shuttle"; tag = "icon-dark0"},/area/submap/Blackshuttledown)
-"an" = (/obj/structure/shuttle/engine/propulsion{dir = 4; icon_state = "propulsion_l"},/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/Blackshuttledown)
+"an" = (/obj/structure/shuttle/engine/propulsion{dir = 4; icon_state = "propulsion_l"},/turf/template_noop,/area/submap/Blackshuttledown)
"ao" = (/obj/machinery/light{dir = 1},/obj/structure/table/rack,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"ap" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"aq" = (/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
@@ -37,7 +37,7 @@
"aK" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/masks,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"aL" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"aM" = (/obj/structure/bed/chair/office/dark{dir = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
-"aN" = (/obj/machinery/door/airlock/security,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
+"aN" = (/obj/machinery/door/airlock/security{locked = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"aO" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"aP" = (/turf/simulated/floor/tiled/steel,/turf/simulated/shuttle/wall/dark{icon_state = "dark10"; name = "Unknown Shuttle"; tag = "icon-dark10"},/area/submap/Blackshuttledown)
"aQ" = (/obj/machinery/computer/communications,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
@@ -45,64 +45,67 @@
"aS" = (/obj/structure/table/steel,/obj/item/weapon/material/knife,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"aT" = (/obj/structure/table/steel,/obj/random/toolbox,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"aU" = (/obj/structure/table/steel,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
-"aV" = (/obj/structure/window,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
+"aV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/submap/Blackshuttledown)
"aW" = (/obj/item/weapon/stool,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
-"aX" = (/obj/structure/table/steel,/obj/item/pizzabox,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
-"aY" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
-"aZ" = (/obj/machinery/power/apc{cell_type = /obj/item/weapon/cell/hyper; dir = 4; name = "Unknown APC"; pixel_x = 24},/turf/simulated/shuttle/wall/dark{icon_state = "dark0"; name = "Unknown Shuttle"; tag = "icon-dark0"},/area/submap/Blackshuttledown)
-"ba" = (/obj/machinery/computer/area_atmos,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
-"bb" = (/obj/structure/closet/toolcloset,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
-"bc" = (/obj/machinery/portable_atmospherics/canister/empty/oxygen,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
-"bd" = (/obj/machinery/atmospherics/pipe/tank/oxygen,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
-"be" = (/obj/structure/bed/chair/office/dark,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
-"bf" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
-"bg" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
-"bh" = (/mob/living/simple_animal/hostile/viscerator,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
-"bi" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/pistol,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
-"bj" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/structure/bed,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
-"bk" = (/mob/living/simple_animal/hostile/viscerator,/mob/living/simple_animal/hostile/viscerator,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
-"bl" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/pistol,/obj/item/weapon/gun/projectile/shotgun/pump,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
-"bm" = (/obj/structure/toilet{dir = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
-"bn" = (/obj/machinery/light,/obj/structure/table/rack,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
-"bo" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/light,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
-"bp" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/toy/plushie/spider,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
-"bq" = (/turf/simulated/floor/outdoors/grass/sif/forest,/turf/simulated/shuttle/wall/dark{icon_state = "dark5"; name = "Unknown Shuttle"; tag = "icon-dark5"},/area/submap/Blackshuttledown)
-"br" = (/turf/simulated/floor/outdoors/grass/sif/forest,/turf/simulated/shuttle/wall/dark{icon_state = "dark9"; name = "Unknown Shuttle"; tag = "icon-dark9"},/area/submap/Blackshuttledown)
+"aX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/submap/Blackshuttledown)
+"aY" = (/obj/structure/table/steel,/obj/item/pizzabox,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
+"aZ" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
+"ba" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/submap/Blackshuttledown)
+"bb" = (/obj/machinery/power/apc{cell_type = /obj/item/weapon/cell/hyper; dir = 4; name = "Unknown APC"; pixel_x = 24},/turf/simulated/shuttle/wall/dark{icon_state = "dark0"; name = "Unknown Shuttle"; tag = "icon-dark0"},/area/submap/Blackshuttledown)
+"bc" = (/obj/machinery/computer/area_atmos,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
+"bd" = (/obj/machinery/light,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
+"be" = (/obj/structure/closet/toolcloset,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
+"bf" = (/obj/machinery/portable_atmospherics/canister/empty/oxygen,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
+"bg" = (/obj/machinery/atmospherics/pipe/tank/oxygen,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
+"bh" = (/obj/structure/bed/chair/office/dark,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
+"bi" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
+"bj" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
+"bk" = (/mob/living/simple_animal/hostile/viscerator,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
+"bl" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/pistol,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
+"bm" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/structure/bed,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
+"bn" = (/mob/living/simple_animal/hostile/viscerator,/mob/living/simple_animal/hostile/viscerator,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
+"bo" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/pistol,/obj/item/weapon/gun/projectile/shotgun/pump,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
+"bp" = (/obj/structure/toilet{dir = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
+"bq" = (/obj/machinery/light,/obj/structure/table/rack,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
+"br" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/light,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
+"bs" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/toy/plushie/spider,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
+"bt" = (/turf/template_noop,/turf/simulated/shuttle/wall/dark{icon_state = "dark5"; name = "Unknown Shuttle"; tag = "icon-dark5"},/area/submap/Blackshuttledown)
+"bu" = (/turf/template_noop,/turf/simulated/shuttle/wall/dark{icon_state = "dark9"; name = "Unknown Shuttle"; tag = "icon-dark9"},/area/submap/Blackshuttledown)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaabababababacabababababababababababacabababababacabababababababababaa
-aaababababababadababababababababababababababababababababababaeababacaa
-aaabababababababababababababababababababababababababadabababababababaa
-aaababaeabafafafababababaeabababababababababababababababababababababaa
-aaabababababafafafabacababababagagagagagagabababababacabaeabababababaa
-aaababababababafafababababababagahabababagabababababababababababababaa
-aaabababababababaiajajajakababagabababahagabababaeaiajajajajakabababaa
+aaabababababacababababababababadadabacabababababacabababababababababaa
+aaababababababaeabababababababadadababababababababababababadafababacaa
+aaabababababababababababababadadababababababababababaeababadadabababaa
+aaababafabadadadababababafababababababababababababababababadadabababaa
+aaabababababadadadabacababababagagagagagagabababababacabafabadabababaa
+aaababababababadadababababababagahabababagabababababababababababababaa
+aaabababababababaiajajajakababagabababahagabababafaiajajajajakabababaa
aaabababababababajajajajajajajajajalalajajajajajajajajajajajamanababaa
-aaababababaeababajajajajajajaoapajaqarajaqaqasaqatajajajajajamanababaa
+aaababababafababajajajajajajaoapajaqarajaqaqasaqatajajajajajamanababaa
aaabababababababauajajaqavajaqaqajawawajaqaxaqaqaqaqayajajazababababaa
aaabababababababaAajajaBaCajaqaqaqaqaqajaqaqaqaqaDaqaEajazabababababaa
-aaabaeababababaAajaFajaqaFajaqaqaqaqaEajaGaHaqaqaIaJaKajababababaeabaa
+aaabafababababaAajaFajaqaFajaqaqaqaqaEajaGaHaqaqaIaJaKajababababafabaa
aaabababababaAajaLaMajaNajajaqaqajajajajajajaOajajajajajaPabababababaa
-aaabababababajaQaqaqajaqaqaqaqaqajaRaSaqaqaqaDaqajaTaTaUajaPababababaa
+aaabababababajaQaqaqajaqaqaqaqaqajaRaSaqasaqaDaqajaTaTaUajaPababababaa
aaabababababaVaFaqaqajaLaqaqaqaEajaqaqaWaWaWaqaqajaFaqaqaqamanabababaa
-aaabababababaVaFaqaqaOaqaqaqaqaqaOaqaqaXaFaFaqaqaYaqaqaqaqamanabababaa
-aaabababababaVaFaqaqaOaqaqaqaqaqaOaqaqaFaFaFaqaqaYaqaqaqaqamanabababaa
-aaabababababaVaFaqaqajaLaqaqaqaEajaqaqaWaWaWaqaqaZaqaqaqaDamanabababaa
-aaabababababajbaaqaDajaqaqaqaqaqajaFaFaqaqaDaqaqajbbbcbdajazababababaa
-aaabababababauajaLbeajaNajajaqaqajajajajajajaOajajajajajazabababababaa
-aaababababababauajaFajaqbfajaqaqaqaqaEajbgaqaqaqaqaYaqajababababababaa
-aaabaeabababababauajajbhbiajaqaqaqaqaqajbjaqbgaqbgajarajaPabaeabababaa
-aaabababababababaAajajbkblajaqaDajawawajbgaqbgaqbgajbmajajaPababababaa
-aaabababababababajajajajajajbnapajaqarajbgaqboaqbpajajajajamanabababaa
+aaabababababaXaFaqaqaOaqaqaqaqaqaOaqaqaYaFaFaqaqaZaqaqaqaqamanabababaa
+aaabababababaXaFaqaqaOaqaqaqaqaqaOaqaqaFaFaFaqaqaZaqaqaqaqamanabababaa
+aaabababababbaaFaqaqajaLaqaqaqaEajaqaqaWaWaWaqaqbbaqaqaqaDamanabababaa
+aaabababababajbcaqaDajaqaqaqaqaqajaFaFaqbdaDaqaqajbebfbgajazababababaa
+aaabababababauajaLbhajaNajajaqaqajajajajajajaOajajajajajazabababababaa
+aaababababababauajaFajaqbiajaqaqaqaqaEajbjaqaqaqaqaZaqajababababababaa
+aaabafabababababauajajbkblajaqaqaqaqaqajbmaqbjaqbjajarajaPabafabababaa
+aaabababababababaAajajbnboajaqaDajawawajbjaqbjaqbjajbpajajaPababababaa
+aaabababababababajajajajajajbqapajaqarajbjaqbraqbsajajajajamanabababaa
aaabababababababajajajajajajajajajalalajajajajajajajajajajamanabababaa
-aaababaeababababbqajajajbrababagahabababagabababbqajajajajbrababababaa
-aaabababafabababababaeababababagabababahagababababaeabababafafafababaa
-aaababafafabacababababababababagagagagagagababababacababafafafafababaa
-aaabafafafabababababababadabababababababababababababababafafafafababaa
-aaababafafababacabababababababababababababababababababababafafabababaa
-aaabababababababababaeababababababababacababababaeabababababababababaa
-aaabababaeababababababababababababababababababababababababababaeababaa
-aaababababababababababacababababababababababababadabacaeababababababaa
+aaababafababababbtajajajbuababagahabababagabababbtajajajajbuababababaa
+aaabababadabababababafababababagabababahagababababafabababadadadababaa
+aaababadadabacababababababababagagagagagagababababacababadadadadababaa
+aaabadadadabababababababaeababababababababababadadabababadadadadababaa
+aaababadadababacabadababababababababababababadadadababababadadabababaa
+aaabababababababadadafababababababababacabadadadafabababababababababaa
+aaabababafababadadadababababababababababadadadadabababababababafababaa
+aaabababababababadadabacabababababababababababadaeabacafababababababaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"}
diff --git a/maps/submaps/surface_submaps/Boombase.dmm b/maps/submaps/surface_submaps/Boombase.dmm
index 14d5a3a936..4af40a47cd 100644
--- a/maps/submaps/surface_submaps/Boombase.dmm
+++ b/maps/submaps/surface_submaps/Boombase.dmm
@@ -1,7 +1,7 @@
"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/BoomBase)
-"c" = (/obj/effect/decal/remains/human,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/BoomBase)
-"d" = (/obj/structure/flora/tree/sif,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/BoomBase)
+"b" = (/turf/template_noop,/area/submap/BoomBase)
+"c" = (/obj/effect/decal/remains/human,/turf/template_noop,/area/submap/BoomBase)
+"d" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/BoomBase)
"e" = (/turf/simulated/wall/r_wall,/area/submap/BoomBase)
"f" = (/obj/structure/girder,/turf/simulated/floor/plating,/area/submap/BoomBase)
"g" = (/obj/structure/girder,/obj/item/stack/rods,/turf/simulated/floor/plating,/area/submap/BoomBase)
@@ -14,7 +14,6 @@
"n" = (/obj/effect/decal/cleanable/dirt,/obj/effect/spider,/obj/item/weapon/material/shard,/turf/simulated/floor/tiled/steel,/area/submap/BoomBase)
"o" = (/turf/simulated/floor/tiled/steel,/area/submap/BoomBase)
"p" = (/mob/living/simple_animal/hostile/giant_spider/phorogenic{returns_home = 1},/turf/simulated/floor/tiled/steel,/area/submap/BoomBase)
-"p" = (/mob/living/simple_animal/hostile/giant_spider/phorogenic,/turf/simulated/floor/tiled/steel,/area/submap/BoomBase)
"q" = (/obj/machinery/portable_atmospherics/canister/empty/phoron,/turf/simulated/floor/tiled/steel{tag = "icon-steel_dirty"; icon_state = "steel_dirty"},/area/submap/BoomBase)
"r" = (/obj/machinery/portable_atmospherics/canister/empty/phoron,/obj/item/weapon/material/shard,/turf/simulated/floor/tiled/steel{tag = "icon-steel_dirty"; icon_state = "steel_dirty"},/area/submap/BoomBase)
"s" = (/obj/item/weapon/material/shard,/turf/simulated/floor/plating,/area/submap/BoomBase)
@@ -33,7 +32,6 @@
"F" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/steel{tag = "icon-burned2"; icon_state = "burned2"},/area/submap/BoomBase)
"G" = (/obj/effect/decal/cleanable/ash,/turf/simulated/floor/outdoors/dirt,/area/submap/BoomBase)
"H" = (/obj/structure/table,/turf/simulated/floor/tiled/steel,/area/submap/BoomBase)
-"I" = (/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/giant_spider/phorogenic{returns_home = 1},/turf/simulated/floor/tiled/steel,/area/submap/BoomBase)
"I" = (/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/giant_spider/phorogenic,/turf/simulated/floor/tiled/steel,/area/submap/BoomBase)
"J" = (/turf/simulated/floor/tiled/steel{tag = "icon-burned2"; icon_state = "burned2"},/area/submap/BoomBase)
"K" = (/turf/simulated/floor/outdoors/rocks,/area/submap/BoomBase)
@@ -41,23 +39,14 @@
"M" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/ash,/turf/simulated/floor/tiled/steel{tag = "icon-steel_dirty"; icon_state = "steel_dirty"},/area/submap/BoomBase)
"N" = (/obj/item/weapon/material/shard,/turf/simulated/floor/tiled/steel{tag = "icon-steel_dirty"; icon_state = "steel_dirty"},/area/submap/BoomBase)
"O" = (/obj/item/device/transfer_valve,/turf/simulated/floor/outdoors/rocks,/area/submap/BoomBase)
-"P" = (/mob/living/simple_animal/hostile/giant_spider/webslinger{returns_home = 1},/turf/simulated/floor/outdoors/rocks,/area/submap/BoomBase)
-"Q" = (/obj/item/weapon/material/shard,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/BoomBase)
-"R" = (/obj/effect/decal/cleanable/ash,/turf/simulated/floor/plating,/area/submap/BoomBase)
-"S" = (/obj/effect/decal/cleanable/ash,/turf/simulated/floor/tiled/steel,/area/submap/BoomBase)
-"T" = (/obj/effect/spider/stickyweb,/obj/item/weapon/material/shard,/mob/living/simple_animal/hostile/giant_spider/phorogenic{returns_home = 1},/turf/simulated/floor/tiled/steel,/area/submap/BoomBase)
-"U" = (/obj/effect/spider/stickyweb,/turf/simulated/floor/tiled/steel,/area/submap/BoomBase)
-"V" = (/obj/effect/spider/stickyweb,/obj/effect/decal/cleanable/ash,/turf/simulated/floor/tiled/steel{tag = "icon-burned1"; icon_state = "burned1"},/area/submap/BoomBase)
-"W" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/ash,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/BoomBase)
-"X" = (/obj/structure/flora/tree/dead,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/BoomBase)
-"P" = (/obj/item/weapon/material/shard,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/BoomBase)
+"P" = (/obj/item/weapon/material/shard,/turf/template_noop,/area/submap/BoomBase)
"Q" = (/obj/effect/decal/cleanable/ash,/turf/simulated/floor/plating,/area/submap/BoomBase)
"R" = (/obj/effect/decal/cleanable/ash,/turf/simulated/floor/tiled/steel,/area/submap/BoomBase)
"S" = (/obj/effect/spider/stickyweb,/obj/item/weapon/material/shard,/turf/simulated/floor/tiled/steel,/area/submap/BoomBase)
"T" = (/obj/effect/spider/stickyweb,/mob/living/simple_animal/hostile/giant_spider/phorogenic,/turf/simulated/floor/tiled/steel,/area/submap/BoomBase)
"U" = (/obj/effect/spider/stickyweb,/obj/effect/decal/cleanable/ash,/turf/simulated/floor/tiled/steel{tag = "icon-burned1"; icon_state = "burned1"},/area/submap/BoomBase)
-"V" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/ash,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/BoomBase)
-"W" = (/obj/structure/flora/tree/dead,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/BoomBase)
+"V" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/ash,/turf/template_noop,/area/submap/BoomBase)
+"W" = (/obj/structure/flora/tree/dead,/turf/template_noop,/area/submap/BoomBase)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaa
@@ -78,14 +67,6 @@ abbbbfAgbuuuuuuuuuuuuASba
abbbbbbAbuuuuuuuuuuAAToba
abbbbbbfAbuuuuuuuuAAUVeba
abbbbbbAfbuubbbuuuAeeheba
-abWbbbbbXbbbbbbuubbbbbbca
-abbbbeoNuuuuuKKOKuuuuuuba
-abbbPeAzuuuuuKKKKuuuubbba
-adbbbeQyuuuuuKuuuuuuubAba
-abbbbfAgbuuuuuuuuuuuuARba
-abbbbbbAbuuuuuuuuuuAASoba
-abbbbbbfAbuuuuuuuuAATUeba
-abbbbbbAfbuubbbuuuAeeheba
-abVbbbbbWbbbbbbuubbbbbbca
+abWbbbbbWbbbbbbuubbbbbbca
aaaaaaaaaaaaaaaaaaaaaaaaa
"}
diff --git a/maps/submaps/surface_submaps/Cragzone1.dmm b/maps/submaps/surface_submaps/Cragzone1.dmm
index 0591185915..b876135d09 100644
--- a/maps/submaps/surface_submaps/Cragzone1.dmm
+++ b/maps/submaps/surface_submaps/Cragzone1.dmm
@@ -1,6 +1,6 @@
"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/turf/simulated/floor/outdoors/grass/sif,/area/submap/Cragzone1)
-"c" = (/obj/structure/flora/tree/sif,/turf/simulated/floor/outdoors/grass/sif,/area/submap/Cragzone1)
+"b" = (/turf/template_noop,/area/submap/Cragzone1)
+"c" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/Cragzone1)
"d" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/Cragzone1)
"e" = (/turf/simulated/floor/outdoors/dirt,/area/submap/Cragzone1)
diff --git a/maps/submaps/surface_submaps/Epod.dmm b/maps/submaps/surface_submaps/Epod.dmm
index 5da9131ca5..23ad06ceb5 100644
--- a/maps/submaps/surface_submaps/Epod.dmm
+++ b/maps/submaps/surface_submaps/Epod.dmm
@@ -1,8 +1,8 @@
"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/turf/simulated/floor/outdoors/grass/sif,/area/submap/Epod1)
-"c" = (/obj/item/weapon/airlock_electronics,/turf/simulated/floor/outdoors/grass/sif,/area/submap/Epod1)
-"d" = (/obj/structure/door_assembly/door_assembly_ext,/turf/simulated/floor/outdoors/grass/sif,/area/submap/Epod1)
-"e" = (/obj/structure/flora/tree/sif,/turf/simulated/floor/outdoors/grass/sif,/area/submap/Epod1)
+"b" = (/turf/template_noop,/area/submap/Epod1)
+"c" = (/obj/item/weapon/airlock_electronics,/turf/template_noop,/area/submap/Epod1)
+"d" = (/obj/structure/door_assembly/door_assembly_ext,/turf/template_noop,/area/submap/Epod1)
+"e" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/Epod1)
"f" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 1},/turf/simulated/shuttle/wall,/area/submap/Epod1)
"g" = (/turf/simulated/shuttle/floor,/area/submap/Epod1)
"h" = (/turf/simulated/shuttle/wall,/area/submap/Epod1)
diff --git a/maps/submaps/surface_submaps/Field1.dmm b/maps/submaps/surface_submaps/Field1.dmm
index a893a964f0..73f1fad901 100644
--- a/maps/submaps/surface_submaps/Field1.dmm
+++ b/maps/submaps/surface_submaps/Field1.dmm
@@ -1,43 +1,42 @@
"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/turf/simulated/floor/outdoors/grass/sif,/area/submap/Field1)
-"c" = (/turf/template_noop,/area/submap/Field1)
-"d" = (/obj/structure/flora/tree/pine,/turf/simulated/floor/outdoors/grass/sif,/area/submap/Field1)
-"e" = (/obj/structure/flora/tree/sif,/turf/simulated/floor/outdoors/grass/sif,/area/submap/Field1)
-"f" = (/turf/simulated/floor/outdoors/dirt,/area/submap/Field1)
-"g" = (/obj/structure/ore_box,/turf/simulated/floor/outdoors/dirt,/area/submap/Field1)
-"h" = (/obj/item/device/radio,/turf/simulated/floor/outdoors/dirt,/area/submap/Field1)
-"i" = (/obj/vehicle/train/cargo/trolley,/turf/simulated/floor/outdoors/dirt,/area/submap/Field1)
-"j" = (/obj/vehicle/train/cargo/engine,/turf/simulated/floor/outdoors/dirt,/area/submap/Field1)
-"k" = (/obj/item/device/flashlight,/turf/simulated/floor/outdoors/dirt,/area/submap/Field1)
+"b" = (/turf/template_noop,/area/submap/Field1)
+"c" = (/obj/structure/flora/tree/pine,/turf/template_noop,/area/submap/Field1)
+"d" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/Field1)
+"e" = (/turf/simulated/floor/outdoors/dirt,/area/submap/Field1)
+"f" = (/obj/structure/ore_box,/turf/simulated/floor/outdoors/dirt,/area/submap/Field1)
+"g" = (/obj/item/device/radio,/turf/simulated/floor/outdoors/dirt,/area/submap/Field1)
+"h" = (/obj/vehicle/train/cargo/trolley,/turf/simulated/floor/outdoors/dirt,/area/submap/Field1)
+"i" = (/obj/vehicle/train/cargo/engine,/turf/simulated/floor/outdoors/dirt,/area/submap/Field1)
+"j" = (/obj/item/device/flashlight,/turf/simulated/floor/outdoors/dirt,/area/submap/Field1)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaabbbbcccccccbbbba
-abbaaaaaaaaaabbbbbbccccccbbbaa
-adbaaaaaabbbbbbebbbbbbccbebbaa
+aaaaaaaaaaaaaabbbbbbbbbbbbbbba
+abbaaaaaaaaaabbbbbbbbbbbbbbbaa
+acbaaaaaabbbbbbdbbbbbbbbbdbbaa
abbbaaabbbbbbbbbbbbbbbbbbbbaaa
-abbbbbbbbbbbbbbbbbbebbbbbbbaaa
+abbbbbbbbbbbbbbbbbbdbbbbbbbaaa
abbbbbbbbbbbbbbbbbbbbbbbbbbaaa
-abbbbbbbbbdbbbbbbbbbbbbbbbaaaa
-abbbebbbbbbbbbbbbbbbbbbbbbaaaa
+abbbbbbbbbcbbbbbbbbbbbbbbbaaaa
+abbbdbbbbbbbbbbbbbbbbbbbbbaaaa
aabbbbbbbbbbbbbbbbbbbbbbbbaaaa
aabbbbbbbbbbbbbbbbbbbbbbbbbaaa
-aaabbbbbbbbbbbfffbbbbbbbbbbaaa
-aaabbbbbbbbbffffffffffbbbbbbba
-aaaabbbbbbbffffffffffffbbbbbba
-aaaabbbbbbbffffffffffffbbbbeba
-aaaabbbbbbbfffgfhffffbbbbbbbba
-aaabbbbbbbbbfgiijfffbbbbbbbbca
-aaabbbbbbbbbbbfkbfbbbbbbbbbbca
-aabbbbbbbbbbbbbbbbbbbbbbbebbca
-abbbebbbbbbbbbbbbbbbbbbbbbbbca
-abbbbbbbbbbbbbbbbbbbbbbbbbbcca
-abbbbbbbbbbbbbbbbbbbdbbbbbbcca
-abbbbbbbbbbbbbbbbbbbbbbbbbbcca
-abbbbbbbebbbbbbbbbbbbbbbbbbbca
-abbbbbbbbbbbbbbbbbbbbbbbbbbbca
-abdbbbbbbbbbbbbbbbbbbbbbebbbba
-aabbbbbbebbbbaaaabaaabbbbbbeba
+aaabbbbbbbbbbbeeebbbbbbbbbbaaa
+aaabbbbbbbbbeeeeeeeeeebbbbbbba
+aaaabbbbbbbeeeeeeeeeeeebbbbbba
+aaaabbbbbbbeeeeeeeeeeeebbbbdba
+aaaabbbbbbbeeefegeeeebbbbbbbba
+aaabbbbbbbbbefhhieeebbbbbbbbba
+aaabbbbbbbbbbbejbebbbbbbbbbbba
+aabbbbbbbbbbbbbbbbbbbbbbbdbbba
+abbbdbbbbbbbbbbbbbbbbbbbbbbbba
+abbbbbbbbbbbbbbbbbbbbbbbbbbbba
+abbbbbbbbbbbbbbbbbbbcbbbbbbbba
+abbbbbbbbbbbbbbbbbbbbbbbbbbbba
+abbbbbbbdbbbbbbbbbbbbbbbbbbbba
+abbbbbbbbbbbbbbbbbbbbbbbbbbbba
+abcbbbbbbbbbbbbbbbbbbbbbdbbbba
+aabbbbbbdbbbbaaaabaaabbbbbbdba
aaaaaaabbbbbaaaaaaaaaabbbbbbba
aaaaaaaaabbaaaaaaaaaaabbbbbbba
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/maps/submaps/surface_submaps/Flake.dmm b/maps/submaps/surface_submaps/Flake.dmm
index b43addfe29..222cc15912 100644
--- a/maps/submaps/surface_submaps/Flake.dmm
+++ b/maps/submaps/surface_submaps/Flake.dmm
@@ -1,14 +1,14 @@
"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/turf/simulated/floor/outdoors/grass/sif,/area/submap/Lake1)
-"c" = (/obj/structure/flora/tree/sif,/turf/simulated/floor/outdoors/grass/sif,/area/submap/Lake1)
-"d" = (/obj/structure/flora/ausbushes/grassybush,/turf/simulated/floor/outdoors/grass/sif,/area/submap/Lake1)
-"e" = (/obj/structure/flora/tree/dead,/turf/simulated/floor/outdoors/grass/sif,/area/submap/Lake1)
+"b" = (/turf/template_noop,/area/submap/Lake1)
+"c" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/Lake1)
+"d" = (/obj/structure/flora/ausbushes/grassybush,/turf/template_noop,/area/submap/Lake1)
+"e" = (/obj/structure/flora/tree/dead,/turf/template_noop,/area/submap/Lake1)
"f" = (/turf/simulated/floor/outdoors/rocks,/area/submap/Lake1)
-"g" = (/obj/structure/flora/ausbushes/palebush,/turf/simulated/floor/outdoors/grass/sif,/area/submap/Lake1)
+"g" = (/obj/structure/flora/ausbushes/palebush,/turf/template_noop,/area/submap/Lake1)
"h" = (/turf/simulated/floor/water,/area/submap/Lake1)
"i" = (/turf/simulated/floor/outdoors/dirt,/area/submap/Lake1)
"j" = (/turf/simulated/mineral,/area/submap/Lake1)
-"k" = (/obj/structure/flora/ausbushes/stalkybush,/turf/simulated/floor/outdoors/grass/sif,/area/submap/Lake1)
+"k" = (/obj/structure/flora/ausbushes/stalkybush,/turf/template_noop,/area/submap/Lake1)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/maps/submaps/surface_submaps/Lab1.dmm b/maps/submaps/surface_submaps/Lab1.dmm
index f0da00f9a3..f19ff17e2a 100644
--- a/maps/submaps/surface_submaps/Lab1.dmm
+++ b/maps/submaps/surface_submaps/Lab1.dmm
@@ -1,5 +1,5 @@
"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/Lab1)
+"b" = (/turf/template_noop,/area/submap/Lab1)
"c" = (/turf/simulated/wall/r_wall,/area/submap/Lab1)
"d" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/submap/Lab1)
"e" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/submap/Lab1)
diff --git a/maps/submaps/surface_submaps/MCamp1.dmm b/maps/submaps/surface_submaps/MCamp1.dmm
index 0cc8210172..df9dd6ecaa 100644
--- a/maps/submaps/surface_submaps/MCamp1.dmm
+++ b/maps/submaps/surface_submaps/MCamp1.dmm
@@ -34,24 +34,6 @@
"H" = (/obj/machinery/light,/obj/structure/table/standard,/turf/simulated/floor/tiled/steel,/area/submap/MilitaryCamp1)
"I" = (/obj/machinery/door/airlock,/turf/simulated/floor,/area/submap/MilitaryCamp1)
"J" = (/obj/effect/mine,/turf/template_noop,/area/submap/MilitaryCamp1)
-"p" = (/turf/simulated/floor/tiled/steel,/area/submap/MilitaryCamp1)
-"q" = (/obj/effect/mine,/turf/simulated/floor,/area/submap/MilitaryCamp1)
-"r" = (/obj/structure/table/standard,/obj/item/weapon/gun/energy/gun,/turf/simulated/floor/tiled/steel,/area/submap/MilitaryCamp1)
-"s" = (/obj/structure/table/standard,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/simulated/floor/tiled/steel,/area/submap/MilitaryCamp1)
-"t" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/syndie_kit/space,/turf/simulated/floor/tiled/steel,/area/submap/MilitaryCamp1)
-"u" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled/steel,/area/submap/MilitaryCamp1)
-"v" = (/mob/living/simple_animal/hostile/viscerator,/turf/simulated/floor/tiled/steel,/area/submap/MilitaryCamp1)
-"w" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/tiled/steel,/area/submap/MilitaryCamp1)
-"x" = (/obj/structure/girder,/turf/simulated/floor,/area/submap/MilitaryCamp1)
-"y" = (/obj/machinery/computer/security,/turf/simulated/floor/tiled/steel,/area/submap/MilitaryCamp1)
-"z" = (/obj/machinery/computer/message_monitor,/turf/simulated/floor/holofloor/tiled,/area/submap/MilitaryCamp1)
-"A" = (/obj/machinery/light,/turf/simulated/floor/tiled/steel,/area/submap/MilitaryCamp1)
-"B" = (/obj/structure/flora/tree/dead,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/MilitaryCamp1)
-"C" = (/obj/structure/door_assembly,/turf/simulated/floor/tiled/steel,/area/submap/MilitaryCamp1)
-"D" = (/obj/structure/table/standard,/obj/random/toolbox,/turf/simulated/floor/tiled/steel,/area/submap/MilitaryCamp1)
-"E" = (/obj/machinery/light,/obj/structure/table/standard,/turf/simulated/floor/tiled/steel,/area/submap/MilitaryCamp1)
-"F" = (/obj/machinery/door/airlock,/turf/simulated/floor,/area/submap/MilitaryCamp1)
-"G" = (/obj/effect/mine,/turf/template_noop,/area/submap/MilitaryCamp1)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaa
@@ -73,17 +55,5 @@ abedddlllmmllldcceda
abcddddlldnlldkcddba
achceddddedjddchibba
abccfbJdigddeccdbbba
-abbdlltmmmpuvpllddda
-abdnlllllwpllllxdeda
-adddmlplyppzlpllddda
-agedmlpuAvpAuvlldeda
-adddxlpllllllplxdBda
-adddllwpppCpppllddda
-aBddllDoppppEollndga
-addfdllllFmlllldedda
-abedddlllmmllldcceda
-abcddddlldnlldkcddba
-achceddddedjddchibba
-abccfbGdigddeccdbbba
aaaaaaaaaaaaaaaaaaaa
"}
diff --git a/maps/submaps/surface_submaps/Rocky1.dmm b/maps/submaps/surface_submaps/Rocky1.dmm
index 8bc7506c9f..bbe9827a67 100644
--- a/maps/submaps/surface_submaps/Rocky1.dmm
+++ b/maps/submaps/surface_submaps/Rocky1.dmm
@@ -1,36 +1,35 @@
"a" = (/turf/template_noop,/area/template_noop)
"b" = (/turf/template_noop,/area/submap/Rocky1)
-"c" = (/turf/simulated/floor/outdoors/grass/sif,/area/submap/Rocky1)
-"d" = (/turf/simulated/floor/outdoors/dirt,/area/submap/Rocky1)
-"e" = (/obj/structure/boulder,/turf/simulated/floor/outdoors/dirt,/area/submap/Rocky1)
-"f" = (/turf/simulated/mineral,/area/submap/Rocky1)
-"g" = (/obj/structure/flora/tree/sif,/turf/simulated/floor/outdoors/grass/sif,/area/submap/Rocky1)
-"h" = (/obj/random/handgun/sec,/obj/effect/decal/remains/human,/obj/item/weapon/spacecash/c200,/turf/simulated/floor/outdoors/dirt,/area/submap/Rocky1)
+"c" = (/turf/simulated/floor/outdoors/dirt,/area/submap/Rocky1)
+"d" = (/obj/structure/boulder,/turf/simulated/floor/outdoors/dirt,/area/submap/Rocky1)
+"e" = (/turf/simulated/mineral,/area/submap/Rocky1)
+"f" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/Rocky1)
+"g" = (/obj/random/handgun/sec,/obj/effect/decal/remains/human,/obj/item/weapon/spacecash/c200,/turf/simulated/floor/outdoors/dirt,/area/submap/Rocky1)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaa
-aabbbccccbccccbbbccccccaa
-aabbddefccbbgccbccffffcaa
-aabddfffdccbbcbbcfffffcaa
-aacddfffddccbbbcddeffffaa
-aaccdfffeddccccdddddfffaa
-aaccdddddddcccdddddhfffaa
-aacccdccddccccddddddfffaa
-aacccccddddcccdddddffffaa
-aagcbccdddddcccdddeffffaa
-aacbcdccddddddddddfffffaa
-aabbcdddddffffffdeffffcaa
-aabccdfffffffffffffccccaa
-aabcddfffffffffffccgcccaa
-aacddfffddccfffccccccccaa
-aacdfffddccccccccccccbbaa
-aacdfffdcccccccgcccbbbbaa
-aaccddfdcccccccccccbbbcaa
-aabccddddccccccbbccccccaa
-aabccccccccgcccbccgccbbaa
-aabcccbbbbccccbbcccbbbbaa
-aacgcbbbbbbbcbbcccbbbbcaa
+aabbbbbbbbbbbbbbbbbbbbbaa
+aabbccdebbbbfbbbbbeeeebaa
+aabcceeecbbbbbbbbeeeeebaa
+aabcceeeccbbbbbbccdeeeeaa
+aabbceeedccbbbbccccceeeaa
+aabbcccccccbbbcccccgeeeaa
+aabbbcbbccbbbbcccccceeeaa
+aabbbbbccccbbbccccceeeeaa
+aafbbbbcccccbbbcccdeeeeaa
+aabbbcbbcccccccccceeeeeaa
+aabbbccccceeeeeecdeeeebaa
+aabbbceeeeeeeeeeeeebbbbaa
+aabbcceeeeeeeeeeebbfbbbaa
+aabcceeeccbbeeebbbbbbbbaa
+aabceeeccbbbbbbbbbbbbbbaa
+aabceeecbbbbbbbfbbbbbbbaa
+aabbccecbbbbbbbbbbbbbbbaa
+aabbbccccbbbbbbbbbbbbbbaa
+aabbbbbbbbbfbbbbbbfbbbbaa
+aabbbbbbbbbbbbbbbbbbbbbaa
+aabfbbbbbbbbbbbbbbbbbbbaa
aaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaa
"}
diff --git a/maps/submaps/surface_submaps/Rocky2.dmm b/maps/submaps/surface_submaps/Rocky2.dmm
index b9103f6477..eaa06c481a 100644
--- a/maps/submaps/surface_submaps/Rocky2.dmm
+++ b/maps/submaps/surface_submaps/Rocky2.dmm
@@ -1,41 +1,40 @@
"a" = (/turf/template_noop,/area/template_noop)
"b" = (/turf/template_noop,/area/submap/Rocky2)
-"c" = (/turf/simulated/floor/outdoors/grass/sif,/area/submap/Rocky2)
-"d" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/Rocky2)
-"e" = (/obj/structure/flora/tree/sif,/turf/simulated/floor/outdoors/grass/sif,/area/submap/Rocky2)
-"f" = (/turf/simulated/floor/outdoors/dirt,/area/submap/Rocky2)
-"g" = (/obj/structure/flora/tree/pine,/turf/simulated/floor/outdoors/grass/sif,/area/submap/Rocky2)
-"h" = (/obj/structure/flora/ausbushes/grassybush,/turf/simulated/floor/outdoors/grass/sif,/area/submap/Rocky2)
-"i" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/outdoors/grass/sif,/area/submap/Rocky2)
-"j" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/outdoors/grass/sif,/area/submap/Rocky2)
-"k" = (/obj/structure/flora/ausbushes/sunnybush,/turf/simulated/floor/outdoors/grass/sif,/area/submap/Rocky2)
-"l" = (/obj/structure/flora/ausbushes/stalkybush,/turf/simulated/floor/outdoors/grass/sif,/area/submap/Rocky2)
-"m" = (/obj/structure/flora/tree/dead,/turf/simulated/floor/outdoors/grass/sif,/area/submap/Rocky2)
+"c" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/Rocky2)
+"d" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/Rocky2)
+"e" = (/turf/simulated/floor/outdoors/dirt,/area/submap/Rocky2)
+"f" = (/obj/structure/flora/tree/pine,/turf/template_noop,/area/submap/Rocky2)
+"g" = (/obj/structure/flora/ausbushes/grassybush,/turf/template_noop,/area/submap/Rocky2)
+"h" = (/obj/structure/flora/ausbushes/fullgrass,/turf/template_noop,/area/submap/Rocky2)
+"i" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/template_noop,/area/submap/Rocky2)
+"j" = (/obj/structure/flora/ausbushes/sunnybush,/turf/template_noop,/area/submap/Rocky2)
+"k" = (/obj/structure/flora/ausbushes/stalkybush,/turf/template_noop,/area/submap/Rocky2)
+"l" = (/obj/structure/flora/tree/dead,/turf/template_noop,/area/submap/Rocky2)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaa
-abbbbbbcccbbbbbbccddcbbba
-abbbbcccdddddddddcdddcbea
-abbccccddddddddcccddddcca
-acccffdddddddddccdddddcca
-agccfdddddddcddcdddddddca
-acccfdddddddhcccdddddddca
-abcccddddddcccccddddddfca
-abbccdddddcicgcccddddfffa
-abcccccdddccccccjddddfffa
-abbccccdddcecciccddddfffa
-abecccddddccccccccdddfffa
-abcccddddcciccccccddffffa
-acccddddddgcccecccddddffa
-accfddddddccccccgjddddffa
-accfddddddchciccccddddcca
-accffdddddccccccccdddddca
-accffdddddkcecccicdddddba
-abccfdddddcccccccddddddba
-abbcfdddffcclccccddddddba
-abbccdddffddccgcdddddccca
-accccdddfffddddddddddccca
-acmccdddcfddddddcccdbbmba
-abcbbbccccccdddcccccbbbba
+abbbbbbbbbbbbbbbbbccbbbba
+abbbbbbbcccccccccbcccbbda
+abbbbbbccccccccbbbccccbba
+abbbeecccccccccbbcccccbba
+afbbecccccccbccbcccccccba
+abbbecccccccgbbbcccccccba
+abbbbccccccbbbbbcccccceba
+abbbbcccccbhbfbbbcccceeea
+abbbbbbcccbbbbbbicccceeea
+abbbbbbcccbdbbhbbcccceeea
+abdbbbccccbbbbbbbbccceeea
+abbbbccccbbhbbbbbbcceeeea
+abbbccccccfbbbdbbbcccceea
+abbeccccccbbbbbbficccceea
+abbeccccccbgbhbbbbccccbba
+abbeecccccbbbbbbbbcccccba
+abbeecccccjbdbbbhbcccccba
+abbbecccccbbbbbbbccccccba
+abbbeccceebbkbbbbccccccba
+abbbbccceeccbbfbcccccbbba
+abbbbccceeeccccccccccbbba
+ablbbcccbeccccccbbbcbblba
+abbbbbbbbbbbcccbbbbbbbbba
aaaaaaaaaaaaaaaaaaaaaaaaa
"}
diff --git a/maps/submaps/surface_submaps/Rocky3.dmm b/maps/submaps/surface_submaps/Rocky3.dmm
index dcb80f0828..ad6350078b 100644
--- a/maps/submaps/surface_submaps/Rocky3.dmm
+++ b/maps/submaps/surface_submaps/Rocky3.dmm
@@ -1,8 +1,8 @@
"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/turf/simulated/floor/outdoors/snow,/area/submap/Rocky3)
-"c" = (/obj/structure/flora/tree/sif,/turf/simulated/floor/outdoors/snow,/area/submap/Rocky3)
+"b" = (/turf/template_noop,/area/submap/Rocky3)
+"c" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/Rocky3)
"d" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/Rocky3)
-"e" = (/obj/structure/flora/tree/pine,/turf/simulated/floor/outdoors/snow,/area/submap/Rocky3)
+"e" = (/obj/structure/flora/tree/pine,/turf/template_noop,/area/submap/Rocky3)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaa
diff --git a/maps/submaps/surface_submaps/Rocky4.dmm b/maps/submaps/surface_submaps/Rocky4.dmm
index c95fb291a4..fa99e25ee0 100644
--- a/maps/submaps/surface_submaps/Rocky4.dmm
+++ b/maps/submaps/surface_submaps/Rocky4.dmm
@@ -1,7 +1,7 @@
"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/Rocky4)
+"b" = (/turf/template_noop,/area/submap/Rocky4)
"c" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/Rocky4)
-"d" = (/obj/structure/flora/tree/sif,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/Rocky4)
+"d" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/Rocky4)
"e" = (/turf/simulated/floor/outdoors/rocks,/area/submap/Rocky4)
"f" = (/turf/simulated/floor/water,/area/submap/Rocky4)
diff --git a/maps/submaps/surface_submaps/Shack1.dmm b/maps/submaps/surface_submaps/Shack1.dmm
index 75bd03dcbe..ba80b01555 100644
--- a/maps/submaps/surface_submaps/Shack1.dmm
+++ b/maps/submaps/surface_submaps/Shack1.dmm
@@ -1,6 +1,6 @@
"a" = (/turf/template_noop,/area/template_noop)
"b" = (/turf/simulated/wall/log_sif,/area/submap/Shack1)
-"c" = (/turf/simulated/floor/outdoors/grass/sif,/area/submap/Shack1)
+"c" = (/turf/template_noop,/area/submap/Shack1)
"d" = (/turf/simulated/floor/outdoors/dirt,/area/submap/Shack1)
"e" = (/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood{tag = "icon-wood_broken1"; icon_state = "wood_broken1"},/area/submap/Shack1)
"f" = (/obj/structure/table/wooden_reinforced,/turf/simulated/floor/wood,/area/submap/Shack1)
@@ -9,7 +9,7 @@
"i" = (/turf/simulated/floor/wood,/area/submap/Shack1)
"j" = (/turf/simulated/floor/holofloor/wood{tag = "icon-wood_broken0"; icon_state = "wood_broken0"},/area/submap/Shack1)
"k" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood{tag = "icon-wood_broken5"; icon_state = "wood_broken5"},/area/submap/Shack1)
-"l" = (/obj/structure/flora/tree/sif,/turf/simulated/floor/outdoors/grass/sif,/area/submap/Shack1)
+"l" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/Shack1)
"m" = (/obj/structure/simple_door/wood,/turf/simulated/floor/wood,/area/submap/Shack1)
"n" = (/turf/simulated/floor/holofloor/wood{tag = "icon-wood_broken3"; icon_state = "wood_broken3"},/area/submap/Shack1)
"o" = (/obj/structure/table/bench/wooden,/turf/simulated/floor/wood,/area/submap/Shack1)
@@ -18,7 +18,7 @@
"r" = (/obj/effect/decal/cleanable/spiderling_remains,/turf/simulated/floor/wood,/area/submap/Shack1)
"s" = (/turf/simulated/floor/holofloor/wood{tag = "icon-wood_broken6"; icon_state = "wood_broken6"},/area/submap/Shack1)
"t" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table/wooden_reinforced,/obj/item/device/flashlight/lamp,/turf/simulated/floor/wood,/area/submap/Shack1)
-"u" = (/obj/structure/flora/tree/dead,/turf/simulated/floor/outdoors/grass/sif,/area/submap/Shack1)
+"u" = (/obj/structure/flora/tree/dead,/turf/template_noop,/area/submap/Shack1)
(1,1,1) = {"
aaaaaaaaaaaaaaa
diff --git a/maps/submaps/surface_submaps/Snowrock1.dmm b/maps/submaps/surface_submaps/Snowrock1.dmm
index 4d25521839..5bf7acdbc6 100644
--- a/maps/submaps/surface_submaps/Snowrock1.dmm
+++ b/maps/submaps/surface_submaps/Snowrock1.dmm
@@ -2,16 +2,10 @@
"b" = (/turf/template_noop,/area/submap/SnowR1)
"c" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/SnowR1)
"d" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/SnowR1)
-"e" = (/obj/structure/loot_pile/maint,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/SnowR1)
+"e" = (/obj/structure/loot_pile/maint/trash,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/SnowR1)
"f" = (/obj/structure/closet/crate/trashcart,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/SnowR1)
"g" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/SnowR1)
"h" = (/obj/random/trash,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/SnowR1)
-"e" = (/obj/structure/loot_pile/surface,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/SnowR1)
-"f" = (/obj/structure/closet/crate/trashcart,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/SnowR1)
-"g" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/SnowR1)
-"h" = (/obj/random/trash,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/SnowR1)
-"i" = (/turf/simulated/floor/outdoors/snow,/area/submap/SnowR1)
-"j" = (/obj/structure/flora/tree/sif,/turf/simulated/floor/outdoors/snow,/area/submap/SnowR1)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaa
@@ -33,18 +27,5 @@ abbbccccccccccccbbba
abbbbbcccccccbcbbbba
abbbbbbbbbbbbbbbbdba
abdbbbbbbbbbbbbbbbba
-abbccccchggggcccibba
-abbcccccggggiiiiiiba
-abbcciiiiiiiiiijiiba
-abbciiiiiiiiiiiiiiba
-abbiiiiiiiiiiiiiiiia
-abbbiiiiiijiiiiiiiba
-abbbjiiiiiiiiiiiiiba
-abiiiiiiiiicccccibba
-abbiiiiiccccccccibba
-abbicccccccccccciiba
-abbbbiccccccciciibba
-abbbbbiiiiiiiiiiidba
-abdbbbbiiiiiiiibbbba
aaaaaaaaaaaaaaaaaaaa
"}
diff --git a/nano/css/icons.css b/nano/css/icons.css
index b2eacc0ab8..68ac412aba 100644
--- a/nano/css/icons.css
+++ b/nano/css/icons.css
@@ -50,222 +50,241 @@
/* positioning */
.uiIcon16.icon-blank { background-position: 16px 16px; }
-.uiIcon16.icon-carat-1-n { background-position: 0 0; }
-.uiIcon16.icon-carat-1-ne { background-position: -16px 0; }
-.uiIcon16.icon-carat-1-e { background-position: -32px 0; }
-.uiIcon16.icon-carat-1-se { background-position: -48px 0; }
-.uiIcon16.icon-carat-1-s { background-position: -64px 0; }
-.uiIcon16.icon-carat-1-sw { background-position: -80px 0; }
-.uiIcon16.icon-carat-1-w { background-position: -96px 0; }
-.uiIcon16.icon-carat-1-nw { background-position: -112px 0; }
+
+.uiIcon16.icon-carat-1-n { background-position: 0 0; }
+.uiIcon16.icon-carat-1-ne { background-position: -16px 0; }
+.uiIcon16.icon-carat-1-e { background-position: -32px 0; }
+.uiIcon16.icon-carat-1-se { background-position: -48px 0; }
+.uiIcon16.icon-carat-1-s { background-position: -64px 0; }
+.uiIcon16.icon-carat-1-sw { background-position: -80px 0; }
+.uiIcon16.icon-carat-1-w { background-position: -96px 0; }
+.uiIcon16.icon-carat-1-nw { background-position: -112px 0; }
.uiIcon16.icon-carat-2-n-s { background-position: -128px 0; }
.uiIcon16.icon-carat-2-e-w { background-position: -144px 0; }
-.uiIcon16.icon-triangle-1-n { background-position: 0 -16px; }
-.uiIcon16.icon-triangle-1-ne { background-position: -16px -16px; }
-.uiIcon16.icon-triangle-1-e { background-position: -32px -16px; }
-.uiIcon16.icon-triangle-1-se { background-position: -48px -16px; }
-.uiIcon16.icon-triangle-1-s { background-position: -64px -16px; }
-.uiIcon16.icon-triangle-1-sw { background-position: -80px -16px; }
-.uiIcon16.icon-triangle-1-w { background-position: -96px -16px; }
-.uiIcon16.icon-triangle-1-nw { background-position: -112px -16px; }
+
+.uiIcon16.icon-triangle-1-n { background-position: 0 -16px; }
+.uiIcon16.icon-triangle-1-ne { background-position: -16px -16px; }
+.uiIcon16.icon-triangle-1-e { background-position: -32px -16px; }
+.uiIcon16.icon-triangle-1-se { background-position: -48px -16px; }
+.uiIcon16.icon-triangle-1-s { background-position: -64px -16px; }
+.uiIcon16.icon-triangle-1-sw { background-position: -80px -16px; }
+.uiIcon16.icon-triangle-1-w { background-position: -96px -16px; }
+.uiIcon16.icon-triangle-1-nw { background-position: -112px -16px; }
.uiIcon16.icon-triangle-2-n-s { background-position: -128px -16px; }
.uiIcon16.icon-triangle-2-e-w { background-position: -144px -16px; }
-.uiIcon16.icon-arrow-1-n { background-position: 0 -32px; }
-.uiIcon16.icon-arrow-1-ne { background-position: -16px -32px; }
-.uiIcon16.icon-arrow-1-e { background-position: -32px -32px; }
-.uiIcon16.icon-arrow-1-se { background-position: -48px -32px; }
-.uiIcon16.icon-arrow-1-s { background-position: -64px -32px; }
-.uiIcon16.icon-arrow-1-sw { background-position: -80px -32px; }
-.uiIcon16.icon-arrow-1-w { background-position: -96px -32px; }
-.uiIcon16.icon-arrow-1-nw { background-position: -112px -32px; }
-.uiIcon16.icon-arrow-2-n-s { background-position: -128px -32px; }
+
+.uiIcon16.icon-arrow-1-n { background-position: 0 -32px; }
+.uiIcon16.icon-arrow-1-ne { background-position: -16px -32px; }
+.uiIcon16.icon-arrow-1-e { background-position: -32px -32px; }
+.uiIcon16.icon-arrow-1-se { background-position: -48px -32px; }
+.uiIcon16.icon-arrow-1-s { background-position: -64px -32px; }
+.uiIcon16.icon-arrow-1-sw { background-position: -80px -32px; }
+.uiIcon16.icon-arrow-1-w { background-position: -96px -32px; }
+.uiIcon16.icon-arrow-1-nw { background-position: -112px -32px; }
+.uiIcon16.icon-arrow-2-n-s { background-position: -128px -32px; }
.uiIcon16.icon-arrow-2-ne-sw { background-position: -144px -32px; }
-.uiIcon16.icon-arrow-2-e-w { background-position: -160px -32px; }
+.uiIcon16.icon-arrow-2-e-w { background-position: -160px -32px; }
.uiIcon16.icon-arrow-2-se-nw { background-position: -176px -32px; }
+
.uiIcon16.icon-arrowstop-1-n { background-position: -192px -32px; }
.uiIcon16.icon-arrowstop-1-e { background-position: -208px -32px; }
.uiIcon16.icon-arrowstop-1-s { background-position: -224px -32px; }
.uiIcon16.icon-arrowstop-1-w { background-position: -240px -32px; }
-.uiIcon16.icon-arrowthick-1-n { background-position: 0 -48px; }
-.uiIcon16.icon-arrowthick-1-ne { background-position: -16px -48px; }
-.uiIcon16.icon-arrowthick-1-e { background-position: -32px -48px; }
-.uiIcon16.icon-arrowthick-1-se { background-position: -48px -48px; }
-.uiIcon16.icon-arrowthick-1-s { background-position: -64px -48px; }
-.uiIcon16.icon-arrowthick-1-sw { background-position: -80px -48px; }
-.uiIcon16.icon-arrowthick-1-w { background-position: -96px -48px; }
-.uiIcon16.icon-arrowthick-1-nw { background-position: -112px -48px; }
-.uiIcon16.icon-arrowthick-2-n-s { background-position: -128px -48px; }
+
+.uiIcon16.icon-arrowthick-1-n { background-position: 0 -48px; }
+.uiIcon16.icon-arrowthick-1-ne { background-position: -16px -48px; }
+.uiIcon16.icon-arrowthick-1-e { background-position: -32px -48px; }
+.uiIcon16.icon-arrowthick-1-se { background-position: -48px -48px; }
+.uiIcon16.icon-arrowthick-1-s { background-position: -64px -48px; }
+.uiIcon16.icon-arrowthick-1-sw { background-position: -80px -48px; }
+.uiIcon16.icon-arrowthick-1-w { background-position: -96px -48px; }
+.uiIcon16.icon-arrowthick-1-nw { background-position: -112px -48px; }
+.uiIcon16.icon-arrowthick-2-n-s { background-position: -128px -48px; }
.uiIcon16.icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
-.uiIcon16.icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.uiIcon16.icon-arrowthick-2-e-w { background-position: -160px -48px; }
.uiIcon16.icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+
.uiIcon16.icon-arrowthickstop-1-n { background-position: -192px -48px; }
.uiIcon16.icon-arrowthickstop-1-e { background-position: -208px -48px; }
.uiIcon16.icon-arrowthickstop-1-s { background-position: -224px -48px; }
.uiIcon16.icon-arrowthickstop-1-w { background-position: -240px -48px; }
+
.uiIcon16.icon-arrowreturnthick-1-w { background-position: 0 -64px; }
.uiIcon16.icon-arrowreturnthick-1-n { background-position: -16px -64px; }
.uiIcon16.icon-arrowreturnthick-1-e { background-position: -32px -64px; }
.uiIcon16.icon-arrowreturnthick-1-s { background-position: -48px -64px; }
-.uiIcon16.icon-arrowreturn-1-w { background-position: -64px -64px; }
-.uiIcon16.icon-arrowreturn-1-n { background-position: -80px -64px; }
-.uiIcon16.icon-arrowreturn-1-e { background-position: -96px -64px; }
-.uiIcon16.icon-arrowreturn-1-s { background-position: -112px -64px; }
+
+.uiIcon16.icon-arrowreturn-1-w { background-position: -64px -64px; }
+.uiIcon16.icon-arrowreturn-1-n { background-position: -80px -64px; }
+.uiIcon16.icon-arrowreturn-1-e { background-position: -96px -64px; }
+.uiIcon16.icon-arrowreturn-1-s { background-position: -112px -64px; }
.uiIcon16.icon-arrowrefresh-1-w { background-position: -128px -64px; }
.uiIcon16.icon-arrowrefresh-1-n { background-position: -144px -64px; }
.uiIcon16.icon-arrowrefresh-1-e { background-position: -160px -64px; }
.uiIcon16.icon-arrowrefresh-1-s { background-position: -176px -64px; }
-.uiIcon16.icon-arrow-4 { background-position: 0 -80px; }
-.uiIcon16.icon-arrow-4-diag { background-position: -16px -80px; }
-.uiIcon16.icon-extlink { background-position: -32px -80px; }
-.uiIcon16.icon-newwin { background-position: -48px -80px; }
-.uiIcon16.icon-refresh { background-position: -64px -80px; }
-.uiIcon16.icon-shuffle { background-position: -80px -80px; }
-.uiIcon16.icon-transfer-e-w { background-position: -96px -80px; }
+
+.uiIcon16.icon-arrow-4 { background-position: 0 -80px; }
+.uiIcon16.icon-arrow-4-diag { background-position: -16px -80px; }
+.uiIcon16.icon-extlink { background-position: -32px -80px; }
+.uiIcon16.icon-newwin { background-position: -48px -80px; }
+.uiIcon16.icon-refresh { background-position: -64px -80px; }
+.uiIcon16.icon-shuffle { background-position: -80px -80px; }
+.uiIcon16.icon-transfer-e-w { background-position: -96px -80px; }
.uiIcon16.icon-transferthick-e-w { background-position: -112px -80px; }
-.uiIcon16.icon-radiation { background-position: -128px -80px; }
-.uiIcon16.icon-folder-collapsed { background-position: 0 -96px; }
-.uiIcon16.icon-folder-open { background-position: -16px -96px; }
-.uiIcon16.icon-document { background-position: -32px -96px; }
-.uiIcon16.icon-document-b { background-position: -48px -96px; }
-.uiIcon16.icon-note { background-position: -64px -96px; }
-.uiIcon16.icon-mail-closed { background-position: -80px -96px; }
-.uiIcon16.icon-mail-open { background-position: -96px -96px; }
-.uiIcon16.icon-suitcase { background-position: -112px -96px; }
-.uiIcon16.icon-comment { background-position: -128px -96px; }
-.uiIcon16.icon-person { background-position: -144px -96px; }
-.uiIcon16.icon-print { background-position: -160px -96px; }
-.uiIcon16.icon-trash { background-position: -176px -96px; }
-.uiIcon16.icon-locked { background-position: -192px -96px; }
-.uiIcon16.icon-unlocked { background-position: -208px -96px; }
-.uiIcon16.icon-bookmark { background-position: -224px -96px; }
-.uiIcon16.icon-tag { background-position: -240px -96px; }
-.uiIcon16.icon-home { background-position: 0 -112px; }
-.uiIcon16.icon-flag { background-position: -16px -112px; }
-.uiIcon16.icon-calendar { background-position: -32px -112px; }
-.uiIcon16.icon-cart { background-position: -48px -112px; }
-.uiIcon16.icon-pencil { background-position: -64px -112px; }
-.uiIcon16.icon-clock { background-position: -80px -112px; }
-.uiIcon16.icon-disk { background-position: -96px -112px; }
-.uiIcon16.icon-calculator { background-position: -112px -112px; }
-.uiIcon16.icon-zoomin { background-position: -128px -112px; }
-.uiIcon16.icon-zoomout { background-position: -144px -112px; }
-.uiIcon16.icon-search { background-position: -160px -112px; }
-.uiIcon16.icon-wrench { background-position: -176px -112px; }
-.uiIcon16.icon-gear { background-position: -192px -112px; }
-.uiIcon16.icon-heart { background-position: -208px -112px; }
-.uiIcon16.icon-star { background-position: -224px -112px; }
-.uiIcon16.icon-link { background-position: -240px -112px; }
-.uiIcon16.icon-cancel { background-position: 0 -128px; }
-.uiIcon16.icon-plus { background-position: -16px -128px; }
-.uiIcon16.icon-plusthick { background-position: -32px -128px; }
-.uiIcon16.icon-minus { background-position: -48px -128px; }
-.uiIcon16.icon-minusthick { background-position: -64px -128px; }
-.uiIcon16.icon-close { background-position: -80px -128px; }
-.uiIcon16.icon-closethick { background-position: -96px -128px; }
-.uiIcon16.icon-key { background-position: -112px -128px; }
-.uiIcon16.icon-lightbulb { background-position: -128px -128px; }
-.uiIcon16.icon-scissors { background-position: -144px -128px; }
-.uiIcon16.icon-clipboard { background-position: -160px -128px; }
-.uiIcon16.icon-copy { background-position: -176px -128px; }
-.uiIcon16.icon-contact { background-position: -192px -128px; }
-.uiIcon16.icon-image { background-position: -208px -128px; }
-.uiIcon16.icon-video { background-position: -224px -128px; }
-.uiIcon16.icon-script { background-position: -240px -128px; }
-.uiIcon16.icon-alert { background-position: 0 -144px; }
-.uiIcon16.icon-alert-red { background-image: url(uiIcons16Red.png); background-position: 0 -144px; }
-.uiIcon16.icon-info { background-position: -16px -144px; }
-.uiIcon16.icon-notice { background-position: -32px -144px; }
-.uiIcon16.icon-help { background-position: -48px -144px; }
-.uiIcon16.icon-check { background-position: -64px -144px; }
-.uiIcon16.icon-bullet { background-position: -80px -144px; }
-.uiIcon16.icon-radio-on { background-position: -96px -144px; }
-.uiIcon16.icon-radio-off { background-position: -112px -144px; }
-.uiIcon16.icon-pin-w { background-position: -128px -144px; }
-.uiIcon16.icon-pin-s { background-position: -144px -144px; }
-.uiIcon16.icon-phone { background-position: -160px -144px; }
-.uiIcon16.icon-list { background-position: -176px -144px; }
-.uiIcon16.icon-syringe { background-position: -192px -144px; }
-.uiIcon16.icon-play { background-position: 0 -160px; }
-.uiIcon16.icon-pause { background-position: -16px -160px; }
-.uiIcon16.icon-seek-next { background-position: -32px -160px; }
-.uiIcon16.icon-seek-prev { background-position: -48px -160px; }
-.uiIcon16.icon-seek-end { background-position: -64px -160px; }
-.uiIcon16.icon-seek-start { background-position: -80px -160px; }
+.uiIcon16.icon-radiation { background-position: -128px -80px; }
+.uiIcon16.icon-folder-collapsed { background-position: 0 -96px; }
+.uiIcon16.icon-folder-open { background-position: -16px -96px; }
+.uiIcon16.icon-document { background-position: -32px -96px; }
+.uiIcon16.icon-document-b { background-position: -48px -96px; }
+.uiIcon16.icon-note { background-position: -64px -96px; }
+.uiIcon16.icon-mail-closed { background-position: -80px -96px; }
+.uiIcon16.icon-mail-open { background-position: -96px -96px; }
+.uiIcon16.icon-suitcase { background-position: -112px -96px; }
+.uiIcon16.icon-comment { background-position: -128px -96px; }
+.uiIcon16.icon-person { background-position: -144px -96px; }
+.uiIcon16.icon-print { background-position: -160px -96px; }
+.uiIcon16.icon-trash { background-position: -176px -96px; }
+.uiIcon16.icon-locked { background-position: -192px -96px; }
+.uiIcon16.icon-unlocked { background-position: -208px -96px; }
+.uiIcon16.icon-bookmark { background-position: -224px -96px; }
+.uiIcon16.icon-tag { background-position: -240px -96px; }
+.uiIcon16.icon-home { background-position: 0 -112px; }
+.uiIcon16.icon-flag { background-position: -16px -112px; }
+.uiIcon16.icon-calendar { background-position: -32px -112px; }
+.uiIcon16.icon-cart { background-position: -48px -112px; }
+.uiIcon16.icon-pencil { background-position: -64px -112px; }
+.uiIcon16.icon-clock { background-position: -80px -112px; }
+.uiIcon16.icon-disk { background-position: -96px -112px; }
+.uiIcon16.icon-calculator { background-position: -112px -112px; }
+.uiIcon16.icon-zoomin { background-position: -128px -112px; }
+.uiIcon16.icon-zoomout { background-position: -144px -112px; }
+.uiIcon16.icon-search { background-position: -160px -112px; }
+.uiIcon16.icon-wrench { background-position: -176px -112px; }
+.uiIcon16.icon-gear { background-position: -192px -112px; }
+.uiIcon16.icon-heart { background-position: -208px -112px; }
+.uiIcon16.icon-star { background-position: -224px -112px; }
+.uiIcon16.icon-link { background-position: -240px -112px; }
+.uiIcon16.icon-cancel { background-position: 0 -128px; }
+.uiIcon16.icon-plus { background-position: -16px -128px; }
+.uiIcon16.icon-plusthick { background-position: -32px -128px; }
+.uiIcon16.icon-minus { background-position: -48px -128px; }
+.uiIcon16.icon-minusthick { background-position: -64px -128px; }
+.uiIcon16.icon-close { background-position: -80px -128px; }
+.uiIcon16.icon-closethick { background-position: -96px -128px; }
+.uiIcon16.icon-key { background-position: -112px -128px; }
+.uiIcon16.icon-lightbulb { background-position: -128px -128px; }
+.uiIcon16.icon-scissors { background-position: -144px -128px; }
+.uiIcon16.icon-clipboard { background-position: -160px -128px; }
+.uiIcon16.icon-copy { background-position: -176px -128px; }
+.uiIcon16.icon-contact { background-position: -192px -128px; }
+.uiIcon16.icon-image { background-position: -208px -128px; }
+.uiIcon16.icon-video { background-position: -224px -128px; }
+.uiIcon16.icon-script { background-position: -240px -128px; }
+.uiIcon16.icon-alert { background-position: 0 -144px; }
+.uiIcon16.icon-alert-red { background-image: url(uiIcons16Red.png); background-position: 0 -144px; }
+.uiIcon16.icon-info { background-position: -16px -144px; }
+.uiIcon16.icon-notice { background-position: -32px -144px; }
+.uiIcon16.icon-help { background-position: -48px -144px; }
+.uiIcon16.icon-check { background-position: -64px -144px; }
+.uiIcon16.icon-bullet { background-position: -80px -144px; }
+.uiIcon16.icon-radio-on { background-position: -96px -144px; }
+.uiIcon16.icon-radio-off { background-position: -112px -144px; }
+.uiIcon16.icon-pin-w { background-position: -128px -144px; }
+.uiIcon16.icon-pin-s { background-position: -144px -144px; }
+.uiIcon16.icon-phone { background-position: -160px -144px; }
+.uiIcon16.icon-list { background-position: -176px -144px; }
+.uiIcon16.icon-syringe { background-position: -192px -144px; }
+.uiIcon16.icon-play { background-position: 0 -160px; }
+.uiIcon16.icon-pause { background-position: -16px -160px; }
+.uiIcon16.icon-seek-next { background-position: -32px -160px; }
+.uiIcon16.icon-seek-prev { background-position: -48px -160px; }
+.uiIcon16.icon-seek-end { background-position: -64px -160px; }
+.uiIcon16.icon-seek-start { background-position: -80px -160px; }
+
/* uiIcon-seek-first is deprecated, use uiIcon-seek-start instead */
-.uiIcon16.icon-seek-first { background-position: -80px -160px; }
-.uiIcon16.icon-stop { background-position: -96px -160px; }
-.uiIcon16.icon-eject { background-position: -112px -160px; }
-.uiIcon16.icon-volume-off { background-position: -128px -160px; }
-.uiIcon16.icon-volume-on { background-position: -144px -160px; }
-.uiIcon16.icon-power { background-position: 0 -176px; }
-.uiIcon16.icon-signal-diag { background-position: -16px -176px; }
-.uiIcon16.icon-signal { background-position: -32px -176px; }
+.uiIcon16.icon-seek-first { background-position: -80px -160px; }
+.uiIcon16.icon-stop { background-position: -96px -160px; }
+.uiIcon16.icon-eject { background-position: -112px -160px; }
+.uiIcon16.icon-volume-off { background-position: -128px -160px; }
+.uiIcon16.icon-volume-on { background-position: -144px -160px; }
+.uiIcon16.icon-power { background-position: 0 -176px; }
+.uiIcon16.icon-signal-diag { background-position: -16px -176px; }
+.uiIcon16.icon-signal { background-position: -32px -176px; }
.uiIcon16.icon-signal-green { background-image: url(uiIcons16Green.png); background-position: -32px -176px; }
+
.uiIcon16.icon-battery-0 { background-position: -48px -176px; }
.uiIcon16.icon-battery-1 { background-position: -64px -176px; }
.uiIcon16.icon-battery-2 { background-position: -80px -176px; }
.uiIcon16.icon-battery-3 { background-position: -96px -176px; }
-.uiIcon16.icon-circle-plus { background-position: 0 -192px; }
-.uiIcon16.icon-circle-minus { background-position: -16px -192px; }
-.uiIcon16.icon-circle-close { background-position: -32px -192px; }
+
+.uiIcon16.icon-circle-plus { background-position: 0 -192px; }
+.uiIcon16.icon-circle-minus { background-position: -16px -192px; }
+.uiIcon16.icon-circle-close { background-position: -32px -192px; }
.uiIcon16.icon-circle-triangle-e { background-position: -48px -192px; }
.uiIcon16.icon-circle-triangle-s { background-position: -64px -192px; }
.uiIcon16.icon-circle-triangle-w { background-position: -80px -192px; }
.uiIcon16.icon-circle-triangle-n { background-position: -96px -192px; }
-.uiIcon16.icon-circle-arrow-e { background-position: -112px -192px; }
-.uiIcon16.icon-circle-arrow-s { background-position: -128px -192px; }
-.uiIcon16.icon-circle-arrow-w { background-position: -144px -192px; }
-.uiIcon16.icon-circle-arrow-n { background-position: -160px -192px; }
-.uiIcon16.icon-circle-zoomin { background-position: -176px -192px; }
-.uiIcon16.icon-circle-zoomout { background-position: -192px -192px; }
-.uiIcon16.icon-circle-check { background-position: -208px -192px; }
-.uiIcon16.icon-circlesmall-plus { background-position: 0 -208px; }
+.uiIcon16.icon-circle-arrow-e { background-position: -112px -192px; }
+.uiIcon16.icon-circle-arrow-s { background-position: -128px -192px; }
+.uiIcon16.icon-circle-arrow-w { background-position: -144px -192px; }
+.uiIcon16.icon-circle-arrow-n { background-position: -160px -192px; }
+.uiIcon16.icon-circle-zoomin { background-position: -176px -192px; }
+.uiIcon16.icon-circle-zoomout { background-position: -192px -192px; }
+.uiIcon16.icon-circle-check { background-position: -208px -192px; }
+
+.uiIcon16.icon-circlesmall-plus { background-position: 0 -208px; }
.uiIcon16.icon-circlesmall-minus { background-position: -16px -208px; }
.uiIcon16.icon-circlesmall-close { background-position: -32px -208px; }
-.uiIcon16.icon-squaresmall-plus { background-position: -48px -208px; }
+
+.uiIcon16.icon-squaresmall-plus { background-position: -48px -208px; }
.uiIcon16.icon-squaresmall-minus { background-position: -64px -208px; }
.uiIcon16.icon-squaresmall-close { background-position: -80px -208px; }
-.uiIcon16.icon-grip-dotted-vertical { background-position: 0 -224px; }
+
+.uiIcon16.icon-grip-dotted-vertical { background-position: 0 -224px; }
.uiIcon16.icon-grip-dotted-horizontal { background-position: -16px -224px; }
-.uiIcon16.icon-grip-solid-vertical { background-position: -32px -224px; }
-.uiIcon16.icon-grip-solid-horizontal { background-position: -48px -224px; }
-.uiIcon16.icon-gripsmall-diagonal-se { background-position: -64px -224px; }
-.uiIcon16.icon-grip-diagonal-se { background-position: -80px -224px; }
+.uiIcon16.icon-grip-solid-vertical { background-position: -32px -224px; }
+.uiIcon16.icon-grip-solid-horizontal { background-position: -48px -224px; }
+.uiIcon16.icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.uiIcon16.icon-grip-diagonal-se { background-position: -80px -224px; }
+
.uiIcon16.icon-batt_full { background-image: url(c_max.gif); background-position: 0px 0px }
.uiIcon16.icon-batt_disc { background-image: url(c_discharging.gif); background-position: 0px 0px }
.uiIcon16.icon-batt_chrg { background-image: url(c_charging.gif); background-position: 0px 0px }
-/*yes, defining these all like this is awful, but unless the javascript for icon handling is sorted out this will have to do*/
-.uiIcon16.icon-empty64 { background-image: url(uiIcons64.png); background-position: 0 0; width: 64px; height: 64px; }
-.uiIcon16.icon-phone64 { background-image: url(uiIcons64.png); background-position: -64px 0; width: 64px; height: 64px; }
-.uiIcon16.icon-comment64 { background-image: url(uiIcons64.png); background-position: -128px 0; width: 64px; height: 64px; }
-.uiIcon16.icon-list64 { background-image: url(uiIcons64.png); background-position: -192px 0; width: 64px; height: 64px; }
-.uiIcon16.icon-gear64 { background-image: url(uiIcons64.png); background-position: -256px 0; width: 64px; height: 64px; }
-.uiIcon16.icon-person64 { background-image: url(uiIcons64.png); background-position: -320px 0; width: 64px; height: 64px; }
-.uiIcon16.icon-newspaper64 { background-image: url(uiIcons64.png); background-position: 0 -64px; width: 64px; height: 64px; }
-.uiIcon16.icon-note64 { background-image: url(uiIcons64.png); background-position: -64px -64px; width: 64px; height: 64px; }
-.uiIcon16.icon-close64 { background-image: url(uiIcons64.png); background-position: -128px -64px; width: 64px; height: 64px; }
-.uiIcon16.icon-pill { background-image: url(pills32.png); width: 32px; height: 32px;}
-.uiIcon16.icon-pill.pill1 { background-position: 0 0; }
-.uiIcon16.icon-pill.pill2 { background-position: -32px 0; }
-.uiIcon16.icon-pill.pill3 { background-position: -64px 0; }
-.uiIcon16.icon-pill.pill4 { background-position: -96px 0; }
-.uiIcon16.icon-pill.pill5 { background-position: -128px 0; }
-.uiIcon16.icon-pill.pill6 { background-position: 0 -32px; }
-.uiIcon16.icon-pill.pill7 { background-position: -32px -32px; }
-.uiIcon16.icon-pill.pill8 { background-position: -64px -32px; }
-.uiIcon16.icon-pill.pill9 { background-position: -96px -32px; }
-.uiIcon16.icon-pill.pill10 { background-position: -128px -32px; }
-.uiIcon16.icon-pill.pill11 { background-position: 0 -64px; }
-.uiIcon16.icon-pill.pill12 { background-position: -32px -64px; }
-.uiIcon16.icon-pill.pill13 { background-position: -64px -64px; }
-.uiIcon16.icon-pill.pill14 { background-position: -96px -64px; }
-.uiIcon16.icon-pill.pill15 { background-position: -128px -64px; }
-.uiIcon16.icon-pill.pill16 { background-position: 0 -96px; }
-.uiIcon16.icon-pill.pill17 { background-position: -32px -96px; }
-.uiIcon16.icon-pill.pill18 { background-position: -64px -96px; }
-.uiIcon16.icon-pill.pill19 { background-position: -96px -96px; }
-.uiIcon16.icon-pill.pill20 { background-position: -128px -96px; }
+/*yes, defining these all like this is awful, but unless the javascript for icon handling is sorted out this will have to do*/
+.uiIcon16.icon-empty64 { background-image: url(uiIcons64.png); background-position: 0 0; width: 64px; height: 64px; }
+.uiIcon16.icon-phone64 { background-image: url(uiIcons64.png); background-position: -64px 0; width: 64px; height: 64px; }
+.uiIcon16.icon-comment64 { background-image: url(uiIcons64.png); background-position: -128px 0; width: 64px; height: 64px; }
+.uiIcon16.icon-list64 { background-image: url(uiIcons64.png); background-position: -192px 0; width: 64px; height: 64px; }
+.uiIcon16.icon-gear64 { background-image: url(uiIcons64.png); background-position: -256px 0; width: 64px; height: 64px; }
+.uiIcon16.icon-person64 { background-image: url(uiIcons64.png); background-position: -320px 0; width: 64px; height: 64px; }
+.uiIcon16.icon-newspaper64 { background-image: url(uiIcons64.png); background-position: 0 -64px; width: 64px; height: 64px; }
+.uiIcon16.icon-note64 { background-image: url(uiIcons64.png); background-position: -64px -64px; width: 64px; height: 64px; }
+.uiIcon16.icon-close64 { background-image: url(uiIcons64.png); background-position: -128px -64px; width: 64px; height: 64px; }
+.uiIcon16.icon-sun64 { background-image: url(uiIcons64.png); background-position: -192px -64px; width: 64px; height: 64px; }
+.uiIcon16.icon-external64 { background-image: url(uiIcons64.png); background-position: -256px -64px; width: 64px; height: 64px; }
+
+.uiIcon16.icon-pill { background-image: url(pills32.png); width: 32px; height: 32px;}
+.uiIcon16.icon-pill.pill1 { background-position: 0 0; }
+.uiIcon16.icon-pill.pill2 { background-position: -32px 0; }
+.uiIcon16.icon-pill.pill3 { background-position: -64px 0; }
+.uiIcon16.icon-pill.pill4 { background-position: -96px 0; }
+.uiIcon16.icon-pill.pill5 { background-position: -128px 0; }
+.uiIcon16.icon-pill.pill6 { background-position: 0 -32px; }
+.uiIcon16.icon-pill.pill7 { background-position: -32px -32px; }
+.uiIcon16.icon-pill.pill8 { background-position: -64px -32px; }
+.uiIcon16.icon-pill.pill9 { background-position: -96px -32px; }
+.uiIcon16.icon-pill.pill10 { background-position: -128px -32px; }
+.uiIcon16.icon-pill.pill11 { background-position: 0 -64px; }
+.uiIcon16.icon-pill.pill12 { background-position: -32px -64px; }
+.uiIcon16.icon-pill.pill13 { background-position: -64px -64px; }
+.uiIcon16.icon-pill.pill14 { background-position: -96px -64px; }
+.uiIcon16.icon-pill.pill15 { background-position: -128px -64px; }
+.uiIcon16.icon-pill.pill16 { background-position: 0 -96px; }
+.uiIcon16.icon-pill.pill17 { background-position: -32px -96px; }
+.uiIcon16.icon-pill.pill18 { background-position: -64px -96px; }
+.uiIcon16.icon-pill.pill19 { background-position: -96px -96px; }
+.uiIcon16.icon-pill.pill20 { background-position: -128px -96px; }
.uiIcon16.icon-pill.bottle1 { background-position: 0 -128px; }
.uiIcon16.icon-pill.bottle2 { background-position: -32px -128px; }
.uiIcon16.icon-pill.bottle3 { background-position: -64px -128px; }
diff --git a/nano/images/source/uiIcons64.xcf b/nano/images/source/uiIcons64.xcf
index c167e3b686..76c06ea1b6 100644
Binary files a/nano/images/source/uiIcons64.xcf and b/nano/images/source/uiIcons64.xcf differ
diff --git a/nano/images/uiIcons64.png b/nano/images/uiIcons64.png
index b58eb78f62..d849b3e869 100644
Binary files a/nano/images/uiIcons64.png and b/nano/images/uiIcons64.png differ
diff --git a/nano/templates/communicator.tmpl b/nano/templates/communicator.tmpl
index 6157f45d61..00f58378be 100644
--- a/nano/templates/communicator.tmpl
+++ b/nano/templates/communicator.tmpl
@@ -234,9 +234,39 @@ Used In File(s): code\game\objects\items\devices\communicator\communicator.dm
-
+
{{else data.currentTab == 6}}
+ Weather
+
+
+ {{:helper.link('Home', 'home', {'switch_tab' : 1})}}
+
+ {{for data.weather}}
+
+
+ {{:value.Planet}}:
+
+
+ Weather: {{:value.Weather}}, {{:value.Temperature - 273.15}}℃
+ High: {{:value.High - 273.15}}℃ | Low: {{:value.Low - 273.15}}℃
+ Wind: {{:value.Wind}}
+
+
+ {{empty}}
+
+
+ Error
+
+
+ No weather reports available. Please try again later.
+
+
+ {{/for}}
+
+
+
+{{else data.currentTab == 7}}
Settings
@@ -295,4 +325,12 @@ Used In File(s): code\game\objects\items\devices\communicator\communicator.dm
-{{/if}}
+
+
+{{else data.currentTab == 8}}
+
+
+
+
+
+{{/if}}
\ No newline at end of file
diff --git a/vorestation.dme b/vorestation.dme
index cee89d172a..3125a33ac7 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -21,6 +21,7 @@
#include "code\world.dm"
#include "code\__defines\_compile_options.dm"
#include "code\__defines\_planes+layers.dm"
+#include "code\__defines\_tick.dm"
#include "code\__defines\admin.dm"
#include "code\__defines\appearance.dm"
#include "code\__defines\atmos.dm"
@@ -53,7 +54,6 @@
#include "code\__defines\species_languages_vr.dm"
#include "code\__defines\subsystems.dm"
#include "code\__defines\targeting.dm"
-#include "code\__defines\tick.dm"
#include "code\__defines\turfs.dm"
#include "code\__defines\unit_tests.dm"
#include "code\__defines\xenoarcheaology.dm"
@@ -176,7 +176,6 @@
#include "code\controllers\Processes\event.dm"
#include "code\controllers\Processes\game_master.dm"
#include "code\controllers\Processes\inactivity.dm"
-#include "code\controllers\Processes\machinery.dm"
#include "code\controllers\Processes\nanoui.dm"
#include "code\controllers\Processes\obj.dm"
#include "code\controllers\Processes\planet.dm"
@@ -193,6 +192,7 @@
#include "code\controllers\subsystems\creation.dm"
#include "code\controllers\subsystems\garbage.dm"
#include "code\controllers\subsystems\lighting.dm"
+#include "code\controllers\subsystems\machines.dm"
#include "code\controllers\subsystems\mobs.dm"
#include "code\controllers\subsystems\transcore_vr.dm"
#include "code\datums\ai_law_sets.dm"
@@ -201,6 +201,7 @@
#include "code\datums\category.dm"
#include "code\datums\computerfiles.dm"
#include "code\datums\datacore.dm"
+#include "code\datums\datum.dm"
#include "code\datums\EPv2.dm"
#include "code\datums\ghost_query.dm"
#include "code\datums\hierarchy.dm"
@@ -918,7 +919,12 @@
#include "code\game\objects\items\devices\uplink_random_lists.dm"
#include "code\game\objects\items\devices\violin.dm"
#include "code\game\objects\items\devices\whistle.dm"
+#include "code\game\objects\items\devices\communicator\cartridge.dm"
#include "code\game\objects\items\devices\communicator\communicator.dm"
+#include "code\game\objects\items\devices\communicator\integrated.dm"
+#include "code\game\objects\items\devices\communicator\messaging.dm"
+#include "code\game\objects\items\devices\communicator\phone.dm"
+#include "code\game\objects\items\devices\communicator\UI.dm"
#include "code\game\objects\items\devices\PDA\cart.dm"
#include "code\game\objects\items\devices\PDA\chatroom.dm"
#include "code\game\objects\items\devices\PDA\PDA.dm"
@@ -2116,6 +2122,7 @@
#include "code\modules\mob\new_player\sprite_accessories_vr.dm"
#include "code\modules\multiz\_stubs.dm"
#include "code\modules\multiz\basic.dm"
+#include "code\modules\multiz\hoist.dm"
#include "code\modules\multiz\ladder_assembly_vr.dm"
#include "code\modules\multiz\movement.dm"
#include "code\modules\multiz\movement_vr.dm"
|