diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index 7c38f4708c8..e76793fa04c 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -66353,7 +66353,7 @@ dir = 1 }, /turf/simulated/floor/plating/airless, -/area/space) +/area/turret_protected/aisat_interior) "doe" = ( /obj/structure/sign/securearea{ pixel_y = -32 @@ -74107,7 +74107,7 @@ volume_rate = 200 }, /turf/simulated/floor/plating/airless, -/area/space/nearstation) +/area/engine/engineering) "idz" = ( /obj/structure/disposalpipe/segment{ dir = 4 diff --git a/_maps/map_files/generic/Lavaland.dmm b/_maps/map_files/generic/Lavaland.dmm index 4a79312a245..53b8e5ab95b 100644 --- a/_maps/map_files/generic/Lavaland.dmm +++ b/_maps/map_files/generic/Lavaland.dmm @@ -149,15 +149,14 @@ /turf/simulated/floor/plasteel/white, /area/mine/laborcamp) "az" = ( -/turf/simulated/floor/bluegrid, -/area/mine/maintenance) +/obj/machinery/conveyor{ + dir = 8; + id = "mining_internal" + }, +/turf/simulated/floor/plating, +/area/mine/abandoned) "aA" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/alarm{ - dir = 1; - name = "custom placement"; - pixel_y = -22 - }, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 }, @@ -212,14 +211,22 @@ }, /area/mine/laborcamp) "aI" = ( -/obj/machinery/firealarm{ - dir = 1; - name = "south bump"; - pixel_y = -24 +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4 }, -/obj/machinery/suit_storage_unit/lavaland, -/turf/simulated/floor/plasteel, -/area/mine/eva) +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/alarm{ + dir = 8; + name = "east bump"; + pixel_x = 24 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/living_quarters) "aJ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -251,13 +258,21 @@ /turf/simulated/floor/plasteel, /area/mine/laborcamp) "aN" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/simulated/floor/plasteel, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, /area/mine/production) "aP" = ( /turf/simulated/floor/plasteel{ @@ -316,21 +331,14 @@ /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/explored) "aY" = ( -/obj/machinery/light/small{ - dir = 4 +/obj/machinery/firealarm{ + dir = 8; + name = "west bump"; + pixel_x = -24 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/door_control{ - id = "miningdorm1"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 24; - specialfunctions = 4 - }, -/turf/simulated/floor/carpet, -/area/mine/living_quarters) +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/mine/abandoned) "aZ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -338,9 +346,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 }, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ dir = 1; @@ -363,9 +368,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" - }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "darkfull" @@ -379,9 +381,6 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 4 }, -/obj/structure/cable{ - icon_state = "2-8" - }, /turf/simulated/floor/plasteel, /area/mine/laborcamp) "be" = ( @@ -400,9 +399,16 @@ /turf/simulated/wall, /area/mine/eva) "bg" = ( -/obj/effect/spawner/window/reinforced, -/turf/simulated/floor/plating, -/area/mine/eva) +/obj/structure/cable{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkyellowcorners" + }, +/area/mine/living_quarters) "bh" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ @@ -410,21 +416,22 @@ }, /area/mine/laborcamp) "bi" = ( -/obj/machinery/light/small{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/machinery/door_control{ - id = "miningdorm2"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 24; - specialfunctions = 4 +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 }, -/turf/simulated/floor/carpet, -/area/mine/living_quarters) +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel{ + icon_regular_floor = "yellowsiding"; + icon_state = "tranquillite" + }, +/area/mine/cafeteria) "bk" = ( /turf/simulated/floor/plasteel, /area/mine/laborcamp) @@ -456,87 +463,92 @@ }, /area/mine/laborcamp) "bo" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/obj/machinery/door_control{ - id = "miningbathroom"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_y = -24; - specialfunctions = 4 - }, -/turf/simulated/floor/plasteel/freezer, +/obj/structure/closet/crate/secure/loot, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random_spawners/cobweb_left_frequent, +/turf/simulated/floor/plating, /area/mine/living_quarters) "bp" = ( -/obj/machinery/suit_storage_unit/lavaland, +/obj/structure/ore_box, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - dir = 9; - icon_state = "purple" + dir = 1; + icon_state = "darkfull" }, /area/mine/eva) "bq" = ( /turf/simulated/wall, /area/mine/production) "br" = ( -/obj/machinery/light/small{ - dir = 4 +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkyellowcorners" }, -/obj/machinery/door_control{ - id = "miningdorm3"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 24; - specialfunctions = 4 - }, -/turf/simulated/floor/carpet, /area/mine/living_quarters) "bt" = ( -/obj/machinery/suit_storage_unit/lavaland, +/obj/structure/ore_box, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random_spawners/cobweb_right_rare, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "brown" + icon_state = "darkfull" }, /area/mine/eva) "bu" = ( -/obj/machinery/suit_storage_unit/lavaland, -/turf/simulated/floor/plasteel{ - dir = 5; - icon_state = "purple" +/obj/machinery/power/smes{ + charge = 5e+006 }, -/area/mine/eva) +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/simulated/floor/plating, +/area/mine/living_quarters) "bv" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, -/area/mine/eva) +/obj/effect/spawner/random_spawners/wall_rusted_maybe, +/turf/simulated/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) "bw" = ( -/obj/machinery/alarm{ - name = "custom placement"; - pixel_y = 23 +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/obj/machinery/computer/shuttle/mining{ - req_access = null - }, -/turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "purple" - }, -/area/mine/production) +/turf/simulated/floor/plating, +/area/mine/abandoned) "bx" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/machinery/light_switch{ - name = "custom placement"; - pixel_y = -25 +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) +/turf/simulated/floor/plasteel{ + icon_regular_floor = "yellowsiding"; + icon_state = "tranquillite" + }, +/area/mine/cafeteria) "by" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 4 @@ -545,16 +557,15 @@ dir = 4 }, /obj/structure/cable{ - icon_state = "1-4" + icon_state = "1-4"; + d1 = 1; + d2 = 4 }, /turf/simulated/floor/plasteel{ icon_state = "brown" }, /area/mine/laborcamp) "bz" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/light_switch{ name = "custom placement"; pixel_y = 25 @@ -566,9 +577,6 @@ name = "Labor Camp Backroom"; req_access_txt = "2" }, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/door/firedoor, /turf/simulated/floor/plasteel, /area/mine/laborcamp) @@ -579,58 +587,34 @@ pixel_x = 1; pixel_y = 24 }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "0-2" - }, /obj/machinery/computer/cryopod{ pixel_y = 38 }, /turf/simulated/floor/plasteel, /area/mine/laborcamp) "bC" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/mechanical{ - pixel_y = 2; - pixel_x = 1 - }, -/obj/item/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 +/turf/simulated/wall, +/area/mine/sleeper) +"bD" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "brown" - }, -/area/mine/production) -"bD" = ( -/obj/machinery/camera{ - c_tag = "EVA"; - dir = 4; - network = list("Mining Outpost") - }, -/obj/machinery/alarm{ - dir = 4; - name = "custom placement"; - pixel_x = -23 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "brown" + icon_state = "darkfull" }, /area/mine/eva) "bE" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 8 }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "purplecorner" + dir = 1; + icon_state = "darkfull" }, /area/mine/eva) "bF" = ( @@ -638,26 +622,38 @@ /turf/simulated/floor/plating, /area/mine/eva) "bG" = ( -/obj/machinery/light_switch{ - name = "custom placement"; - pixel_x = 27 +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 }, -/obj/effect/baseturf_helper/lava_land/surface, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "brown" + dir = 1; + icon_state = "darkfull" }, -/area/mine/eva) +/area/mine/sleeper) "bH" = ( -/obj/machinery/atmospherics/unary/vent_pump/on, -/turf/simulated/floor/plasteel, -/area/mine/eva) -"bI" = ( -/obj/structure/dispenser/oxygen, -/turf/simulated/floor/plasteel{ - icon_state = "purplecorner" +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 }, -/area/mine/eva) +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurplecorners" + }, +/area/mine/mechbay) +"bI" = ( +/obj/machinery/door/airlock/mining/glass{ + name = "Mining Station Bridge"; + req_access_txt = "48" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurplecorners" + }, +/area/mine/living_quarters) "bJ" = ( /obj/effect/spawner/window/reinforced, /obj/structure/sign/securearea{ @@ -666,18 +662,20 @@ /turf/simulated/floor/plating, /area/mine/production) "bK" = ( -/obj/machinery/light/small{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 }, -/obj/machinery/embedded_controller/radio/airlock/access_controller{ - id_tag = "mining"; - pixel_y = 25; - tag_exterior_door = "mining_outer"; - tag_interior_door = "mining_inner" +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "purplecorner" + dir = 1; + icon_state = "darkfull" }, /area/mine/eva) "bL" = ( @@ -694,9 +692,6 @@ name = "Labor Camp Maintenance"; req_access_txt = "2" }, -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/visible/universal, /turf/simulated/floor/plating, /area/mine/laborcamp) @@ -732,100 +727,105 @@ /turf/simulated/floor/plating, /area/shuttle/siberia) "bP" = ( -/obj/item/radio/beacon, +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/maintenance{ + name = "Catwalk Airlock"; + req_access_txt = "48" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/mine/living_quarters) +"bQ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/railing/corner, +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/lattice/catwalk/mining, +/turf/simulated/floor/plating, +/area/lavaland/surface/outdoors) +"bR" = ( +/obj/machinery/recharge_station, /turf/simulated/floor/plasteel{ dir = 8; - icon_state = "purplecorner" + icon_state = "darkpurplecorners" }, -/area/mine/production) -"bQ" = ( -/obj/structure/cable{ - icon_state = "2-4" +/area/mine/mechbay) +"bS" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 }, -/turf/simulated/floor/plasteel, +/obj/effect/decal/cleanable/dirt, +/obj/structure/lattice/catwalk/mining, +/turf/simulated/floor/plating, +/area/lavaland/surface/outdoors) +"bT" = ( +/obj/machinery/door/airlock/mining{ + name = "Mining Station Storage"; + req_access_txt = "48" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/storage) +"bU" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, /area/mine/production) -"bR" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ +"bV" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ +/obj/structure/window/reinforced{ dir = 1 }, -/turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "brown" - }, -/area/mine/production) -"bS" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/mining/glass{ - name = "Mining Station EVA"; - req_access_txt = "54" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/mine/eva) -"bT" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, -/turf/simulated/floor/plasteel{ - icon_state = "purplecorner" - }, -/area/mine/production) -"bU" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/mine/eva) -"bV" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, -/turf/simulated/floor/plasteel, -/area/mine/eva) +/turf/simulated/floor/plating/airless, +/area/shuttle/mining) "bW" = ( -/obj/structure/extinguisher_cabinet{ - name = "custom placement"; - pixel_x = -5; - pixel_y = 30 - }, -/obj/machinery/shower{ +/obj/machinery/atmospherics/unary/vent_pump/on{ dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "purplecorner" + dir = 1; + icon_state = "darkfull" }, /area/mine/eva) "bX" = ( -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1379; - master_tag = "mining"; - name = "interior access button"; - pixel_x = 25; - pixel_y = 25; - req_access_txt = null - }, +/obj/machinery/suit_storage_unit/lavaland, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "brown" + dir = 8; + icon_state = "darkyellowcorners" }, /area/mine/eva) "bY" = ( -/turf/simulated/floor/plasteel, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, /area/mine/eva) "bZ" = ( /obj/machinery/economy/vending/wallmed{ @@ -900,11 +900,9 @@ /turf/simulated/floor/plating, /area/mine/laborcamp) "ch" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, +/obj/effect/spawner/window/reinforced, /turf/simulated/floor/plating, -/area/mine/laborcamp) +/area/mine/cafeteria) "ci" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 1 @@ -914,94 +912,110 @@ }, /area/mine/laborcamp) "cj" = ( -/obj/machinery/door/airlock/external{ - frequency = 1379; - glass = 1; - id_tag = "mining_inner"; - locked = 1; - name = "Mining External Airlock"; - opacity = 0; - req_access_txt = "54" +/obj/machinery/alarm{ + dir = 1; + name = "south bump"; + pixel_y = -24 }, -/obj/structure/fans/tiny, -/turf/simulated/floor/plasteel, -/area/mine/eva) -"ck" = ( /turf/simulated/floor/plasteel{ dir = 8; - icon_state = "brown" + icon_state = "darkpurplecorners" + }, +/area/mine/eva) +"ck" = ( +/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" + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurplecorners" }, /area/mine/eva) "cl" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/mine/production) +/obj/effect/spawner/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plating, +/area/mine/living_quarters) "cm" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ +/obj/machinery/light/small{ dir = 4 }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/hologram/holopad, -/turf/simulated/floor/plasteel, -/area/mine/production) +/turf/simulated/floor/mineral/titanium, +/area/shuttle/mining) "cn" = ( -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "brown" +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 }, -/area/mine/production) -"co" = ( -/obj/machinery/power/apc{ - name = "Mining EVA APC"; - pixel_x = 1; - pixel_y = -23 - }, -/obj/structure/cable, -/obj/machinery/suit_storage_unit/lavaland, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "purplecorner" + icon_state = "darkfull" }, -/area/mine/eva) -"cp" = ( -/obj/machinery/suit_storage_unit/lavaland, -/turf/simulated/floor/plasteel, -/area/mine/eva) -"cq" = ( +/area/mine/mechbay) +"co" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "brown" + dir = 1; + icon_state = "darkfull" + }, +/area/mine/production) +"cp" = ( +/turf/simulated/wall, +/area/mine/cafeteria) +"cq" = ( +/obj/machinery/light, +/obj/machinery/firealarm{ + dir = 1; + name = "south bump"; + pixel_y = -24 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurplecorners" }, /area/mine/eva) "cr" = ( -/obj/structure/closet/emcloset, +/obj/machinery/door/airlock/mining/glass{ + name = "Mining Station EVA"; + req_access_txt = "54" + }, +/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" + }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "purplecorner" + icon_state = "darkfull" }, /area/mine/eva) "cs" = ( -/obj/structure/cable{ - icon_state = "2-8" +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/door/airlock/multi_tile/glass{ + name = "Crates Airlock" }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "brown" + dir = 1; + icon_state = "darkfull" }, /area/mine/eva) "ct" = ( /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "purplecorner" + dir = 8; + icon_state = "darkpurplecorners" }, -/area/mine/production) +/area/mine/mechbay) "cu" = ( /obj/item/pickaxe, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, @@ -1011,28 +1025,34 @@ /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "cw" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 1 - }, -/obj/machinery/camera{ - c_tag = "Shuttle Docking Foyer North"; - dir = 8; - network = list("Mining Outpost") +/obj/machinery/computer/shuttle/mining{ + req_access = null }, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "brown" + dir = 8; + icon_state = "darkyellowcorners" }, /area/mine/production) "cx" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ +/obj/machinery/door/airlock/medical/glass{ + name = "Infirmary" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "purplecorner" +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 }, -/area/mine/production) +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/sleeper) "cy" = ( /obj/effect/baseturf_helper/lava_land/surface, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -1051,9 +1071,6 @@ /turf/simulated/floor/plating, /area/mine/laborcamp) "cA" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, /turf/simulated/floor/plating, /area/mine/laborcamp) "cB" = ( @@ -1074,33 +1091,23 @@ /turf/simulated/floor/plating, /area/mine/laborcamp) "cD" = ( -/obj/item/radio/intercom{ - name = "west bump"; - pixel_x = -28 +/obj/structure/fans/tiny, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" }, +/area/mine/airlock) +"cE" = ( /turf/simulated/floor/plasteel{ dir = 8; - icon_state = "brown" + icon_state = "darkred" }, /area/mine/production) -"cE" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/simulated/floor/plasteel, -/area/mine/production) "cF" = ( -/obj/structure/extinguisher_cabinet{ - name = "custom placement"; - pixel_x = 30 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 1 - }, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "brown" + dir = 8; + icon_state = "darkyellowcorners" }, /area/mine/production) "cG" = ( @@ -1108,278 +1115,380 @@ /turf/simulated/floor/plating, /area/mine/laborcamp/security) "cH" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Mining Station Starboard Wing APC"; - pixel_x = -27; - pixel_y = 2 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "purple" - }, -/area/mine/production) -"cI" = ( +/obj/structure/railing, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/railing{ dir = 1 }, -/turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "purplecorner" - }, -/area/mine/production) -"cJ" = ( -/obj/machinery/door/airlock{ - name = "Closet" - }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/lattice/catwalk/mining, /turf/simulated/floor/plating, +/area/lavaland/surface/outdoors) +"cI" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/lattice/catwalk/mining, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/mine/living_quarters) +"cJ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, /area/mine/production) "cK" = ( /obj/machinery/light/small{ dir = 1 }, +/obj/effect/spawner/random_spawners/cobweb_left_frequent, /turf/simulated/floor/plating, /area/mine/production) "cL" = ( -/obj/machinery/space_heater, -/obj/item/gps/ruin{ - gpstag = "BASE0"; - pixel_y = 32 +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" }, -/turf/simulated/floor/plating, /area/mine/production) "cM" = ( /turf/simulated/wall, /area/mine/living_quarters) "cN" = ( -/obj/machinery/mineral/equipment_vendor, -/turf/simulated/floor/plasteel{ - dir = 5; - icon_state = "brown" - }, -/area/mine/production) -"cO" = ( -/obj/machinery/light/small{ - dir = 1 - }, +/obj/structure/closet/secure_closet/miner, /obj/machinery/firealarm{ name = "north bump"; pixel_y = 24 }, -/obj/effect/turf_decal/loading_area{ - dir = 8 +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" }, -/turf/simulated/floor/plasteel, -/area/mine/production) +/area/mine/storage) +"cO" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/lattice/catwalk/mining, +/turf/simulated/floor/plating, +/area/lavaland/surface/outdoors) "cP" = ( -/obj/structure/closet/crate, -/obj/machinery/alarm{ - name = "custom placement"; - pixel_y = 23 +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 }, -/obj/effect/turf_decal/bot, -/turf/simulated/floor/plasteel, -/area/mine/production) +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/lattice/catwalk/mining, +/turf/simulated/floor/plating, +/area/lavaland/surface/outdoors) "cQ" = ( /turf/simulated/wall/r_wall, -/area/mine/maintenance) +/area/mine/maintenance{ + name = "Mining Station Communicatiosns" + }) "cR" = ( /obj/effect/spawner/window/reinforced, /turf/simulated/floor/plating, /area/mine/living_quarters) "cS" = ( -/obj/machinery/power/smes{ - charge = 5e+006 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/simulated/floor/plating, -/area/mine/living_quarters) -"cT" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light/small{ +/obj/structure/table, +/obj/item/storage/box/donkpockets, +/obj/machinery/light{ dir = 1 }, -/obj/structure/closet/crate/secure/loot, -/obj/structure/sign/electricshock{ - pixel_y = 32 +/turf/simulated/floor/plasteel{ + icon_regular_floor = "yellowsiding"; + icon_state = "tranquillite" }, -/turf/simulated/floor/plating, -/area/mine/living_quarters) +/area/mine/cafeteria) +"cT" = ( +/obj/effect/turf_decal/box, +/obj/effect/turf_decal/caution/stand_clear, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/mechbay) "cU" = ( -/obj/machinery/atmospherics/portable/canister/oxygen, -/obj/structure/cable{ - icon_state = "2-8" +/obj/structure/ore_box, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 }, -/turf/simulated/floor/plating, -/area/mine/living_quarters) +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/eva) "cV" = ( /turf/simulated/floor/plating, /area/mine/living_quarters) "cW" = ( /obj/structure/reagent_dispensers/fueltank, +/obj/effect/spawner/random_spawners/cobweb_right_rare, /turf/simulated/floor/plating, /area/mine/living_quarters) "cX" = ( -/obj/structure/ore_box, -/obj/effect/turf_decal/bot, -/turf/simulated/floor/plasteel, -/area/mine/production) +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/machinery/light/small, +/obj/machinery/power/apc{ + dir = 4; + name = "Processing Room APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/simulated/floor/plating, +/area/mine/abandoned) "cY" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/structure/cable{ - icon_state = "1-2" + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/obj/structure/cable{ - icon_state = "2-8" +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" }, -/turf/simulated/floor/plasteel, -/area/mine/production) +/area/mine/mechbay) "cZ" = ( -/obj/effect/turf_decal/bot, -/turf/simulated/floor/plasteel, -/area/mine/production) -"da" = ( -/obj/machinery/mineral/mint{ - input_dir = 4 +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/multi_tile/glass{ + name = "Outpost Airlock"; + req_access_txt = "54" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/airlock) +"da" = ( +/obj/machinery/mineral/equipment_vendor, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" }, -/turf/simulated/floor/plasteel, /area/mine/production) "db" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/machinery/light_switch{ + name = "North Switch"; + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/mechbay) +"dc" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/structure/cable, +/obj/machinery/power/apc{ + name = "Airlock APC"; + pixel_y = -24 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurplecorners" + }, +/area/mine/airlock) +"dd" = ( +/turf/simulated/floor/plating, +/area/mine/abandoned) +"de" = ( +/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" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/mining/glass{ + req_access_txt = "54"; + name = "Main Airlock" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/airlock) +"df" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/hologram/holopad, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/airlock) +"dg" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/alarm{ + name = "north bump"; + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/mechbay) +"dh" = ( +/obj/machinery/camera{ + c_tag = "Mining Outpost - Hallway 3"; + dir = 1; + network = list("Mining Outpost") + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurplecorners" + }, +/area/mine/production) +"di" = ( +/obj/structure/closet/crate{ + opened = 1 + }, +/obj/effect/turf_decal/bot, /obj/machinery/light/small{ dir = 8 }, -/obj/machinery/alarm{ - name = "custom placement"; - pixel_y = 23 - }, -/obj/machinery/iv_drip, -/turf/simulated/floor/plasteel/white{ - dir = 9; - icon_state = "whiteblue" - }, -/area/mine/living_quarters) -"dc" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on, -/turf/simulated/floor/plasteel/white{ - dir = 1; - icon_state = "whiteblue" - }, -/area/mine/living_quarters) -"dd" = ( -/obj/structure/extinguisher_cabinet{ - name = "custom placement"; - pixel_x = -5; - pixel_y = 30 - }, -/obj/structure/table, -/turf/simulated/floor/plasteel, -/area/mine/production) -"de" = ( -/turf/simulated/floor/plasteel/white{ - dir = 1; - icon_state = "whiteblue" - }, -/area/mine/living_quarters) -"df" = ( -/obj/structure/table, -/obj/item/storage/firstaid/toxin{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/machinery/firealarm{ - name = "north bump"; - pixel_y = 24 - }, -/turf/simulated/floor/plasteel/white{ - dir = 5; - icon_state = "whiteblue" - }, -/area/mine/living_quarters) -"dg" = ( -/obj/machinery/alarm{ - name = "north bump"; - pixel_y = 24 - }, -/turf/simulated/floor/bluegrid, -/area/mine/maintenance) -"dh" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Mining Communications APC"; - pixel_x = 1; - pixel_y = 25 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on, -/turf/simulated/floor/plasteel/dark, -/area/mine/maintenance) -"di" = ( /obj/machinery/light/small{ - dir = 1 + dir = 8 }, -/obj/machinery/tcomms/relay/mining, -/turf/simulated/floor/plasteel/dark, -/area/mine/maintenance) +/turf/simulated/floor/plating, +/area/mine/abandoned) "dj" = ( -/obj/machinery/atmospherics/unary/vent_pump/on, -/turf/simulated/floor/plasteel/dark, -/area/mine/maintenance) -"dk" = ( -/obj/structure/cable{ - icon_state = "1-4" +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 1 - }, -/turf/simulated/floor/bluegrid, -/area/mine/maintenance) -"dl" = ( -/obj/machinery/mineral/equipment_vendor, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "purple" + dir = 1; + icon_state = "darkfull" + }, +/area/mine/mechbay) +"dk" = ( +/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" + }, +/turf/simulated/floor/plating, +/area/mine/abandoned) +"dl" = ( +/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" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" }, /area/mine/production) "dm" = ( -/obj/effect/turf_decal/loading_area, -/turf/simulated/floor/plasteel, -/area/mine/production) -"dn" = ( -/obj/effect/turf_decal/loading_area{ - dir = 4 +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/turf/simulated/floor/plasteel, -/area/mine/production) +/obj/machinery/atmospherics/binary/pump/on, +/turf/simulated/floor/plating, +/area/mine/living_quarters) +"dn" = ( +/obj/machinery/conveyor{ + id = "mining_internal" + }, +/turf/simulated/floor/plating, +/area/mine/abandoned) "do" = ( /obj/machinery/power/terminal{ dir = 1 }, /obj/structure/cable{ + d2 = 2; icon_state = "0-2" }, /turf/simulated/floor/plating, /area/mine/living_quarters) "dp" = ( +/obj/structure/extinguisher_cabinet{ + name = "west bump"; + pixel_x = -27 + }, +/obj/machinery/hologram/holopad, /obj/structure/cable{ + d1 = 1; + d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/meter, -/obj/machinery/atmospherics/pipe/simple/visible/cyan{ - dir = 6 +/obj/structure/cable{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkyellowcorners" }, -/turf/simulated/floor/plating, /area/mine/living_quarters) "dq" = ( /obj/machinery/atmospherics/pipe/manifold/visible/cyan{ @@ -1395,167 +1504,174 @@ /area/mine/living_quarters) "ds" = ( /obj/machinery/light/small{ - dir = 4 + dir = 8 }, -/obj/effect/turf_decal/delivery, -/turf/simulated/floor/plasteel, -/area/mine/production) +/obj/effect/turf_decal{ + dir = 1 + }, +/obj/effect/turf_decal/caution, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/airlock) "dt" = ( -/obj/structure/table, -/obj/item/storage/firstaid/regular, -/turf/simulated/floor/plasteel/white{ - dir = 4; - icon_state = "whiteblue" - }, -/area/mine/living_quarters) -"du" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ +/obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 }, -/obj/machinery/firealarm{ - dir = 8; - name = "west bump"; - pixel_x = -24 - }, /turf/simulated/floor/plasteel{ dir = 8; - icon_state = "purple" + icon_state = "darkpurplecorners" }, -/area/mine/production) -"dv" = ( +/area/mine/mechbay) +"du" = ( /obj/machinery/light{ dir = 4 }, -/obj/machinery/newscaster{ - name = "custom placement"; - pixel_x = 30; - pixel_y = 1 +/turf/simulated/floor/plasteel{ + icon_regular_floor = "yellowsiding"; + icon_state = "tranquillite" }, -/obj/machinery/camera{ - c_tag = "Shuttle Docking Foyer South"; - dir = 8; - network = list("Mining Outpost") +/area/mine/cafeteria) +"dv" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "brown" + dir = 8; + icon_state = "darkyellowcorners" }, /area/mine/production) "dw" = ( -/obj/structure/closet/crate{ - opened = 1 +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 }, -/obj/effect/turf_decal/bot, -/turf/simulated/floor/plasteel, -/area/mine/production) +/obj/item/radio/intercom{ + name = "south bump"; + pixel_y = -28 + }, +/obj/machinery/camera{ + c_tag = "Mining Outpost - Mech Storage 1"; + dir = 1; + network = list("Mining Outpost") + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurplecorners" + }, +/area/mine/mechbay) "dx" = ( -/obj/machinery/light_switch{ - name = "custom placement"; - pixel_y = -25 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, -/turf/simulated/floor/bluegrid, -/area/mine/maintenance) -"dy" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/effect/baseturf_helper/lava_land/surface, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "purple" + dir = 1; + icon_state = "darkfull" + }, +/area/mine/living_quarters) +"dy" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkyellowcorners" }, /area/mine/production) "dz" = ( -/obj/machinery/camera{ - c_tag = "Communications Relay"; - dir = 8; - network = list("Mining Outpost") - }, -/turf/simulated/floor/bluegrid, -/area/mine/maintenance) -"dA" = ( -/obj/machinery/camera{ - c_tag = "Processing Area Room"; - dir = 8; - network = list("Mining Outpost") - }, -/obj/item/radio/intercom{ - name = "east bump"; - pixel_x = 28 +/obj/item/radio/beacon, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "brown" + dir = 1; + icon_state = "darkfull" }, /area/mine/production) -"dB" = ( -/obj/structure/closet/crate/freezer, -/obj/item/reagent_containers/iv_bag/blood, -/obj/item/reagent_containers/iv_bag/blood{ - pixel_x = -3; - pixel_y = -3 +"dA" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 2; + pixel_x = 1 }, -/obj/item/reagent_containers/iv_bag/blood/AMinus, -/obj/item/reagent_containers/iv_bag/blood/BMinus{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/reagent_containers/iv_bag/blood/BPlus{ - pixel_x = 1; - pixel_y = 2 - }, -/obj/item/reagent_containers/iv_bag/blood/OMinus, -/obj/item/reagent_containers/iv_bag/blood/OPlus{ +/obj/item/storage/toolbox/mechanical{ pixel_x = -2; pixel_y = -1 }, -/obj/item/reagent_containers/iv_bag/blood/random, -/obj/item/reagent_containers/iv_bag/blood/random, -/obj/item/reagent_containers/iv_bag/blood/random, -/obj/machinery/camera{ - c_tag = "Sleeper Room"; +/obj/item/gps/ruin{ + gpstag = "OUTPOST"; + pixel_y = 32 + }, +/turf/simulated/floor/plasteel{ dir = 1; - network = list("Mining Outpost") + icon_state = "darkfull" }, -/turf/simulated/floor/plasteel/white{ - dir = 8; - icon_state = "whiteblue" - }, -/area/mine/living_quarters) +/area/mine/production) +"dB" = ( +/obj/effect/spawner/random_spawners/wall_rusted_maybe, +/turf/simulated/wall, +/area/mine/abandoned) "dC" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 1 +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 }, -/turf/simulated/floor/plasteel/white, -/area/mine/living_quarters) +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/mine/abandoned) "dD" = ( -/obj/machinery/atmospherics/unary/vent_pump/on, -/turf/simulated/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/simple/visible/cyan{ + dir = 6 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/meter, +/turf/simulated/floor/plating, /area/mine/living_quarters) "dE" = ( -/obj/machinery/mineral/unloading_machine{ +/obj/effect/turf_decal, +/turf/simulated/floor/plasteel{ dir = 1; - icon_state = "unloader-corner"; - input_dir = 1; - output_dir = 2 + icon_state = "darkfull" }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/simulated/floor/plating, -/area/mine/production) +/area/mine/airlock) "dF" = ( -/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /obj/structure/cable{ - icon_state = "1-4" + d1 = 1; + d2 = 8; + icon_state = "1-8" }, -/obj/machinery/power/port_gen/pacman{ - anchored = 1 +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkyellowcorners" }, -/turf/simulated/floor/plating, /area/mine/living_quarters) "dG" = ( /obj/machinery/power/port_gen/pacman{ @@ -1567,578 +1683,747 @@ /turf/simulated/floor/plating, /area/mine/living_quarters) "dH" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/structure/ore_box, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 }, -/obj/machinery/atmospherics/binary/pump/on, -/turf/simulated/floor/plating, -/area/mine/living_quarters) +/obj/effect/turf_decal/bot, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/eva) "dI" = ( /obj/machinery/atmospherics/pipe/simple/visible/cyan{ dir = 5 }, +/obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/mine/living_quarters) "dJ" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/turf/simulated/floor/plasteel, -/area/mine/production) -"dK" = ( +/obj/machinery/economy/vending/cigarette, /turf/simulated/floor/plasteel{ - icon_state = "purplecorner" + icon_regular_floor = "yellowsiding"; + icon_state = "tranquillite" + }, +/area/mine/cafeteria) +"dK" = ( +/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" + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkyellowcorners" }, /area/mine/production) "dL" = ( -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "purplecorner" +/obj/machinery/mineral/mint{ + input_dir = 4 }, -/area/mine/production) +/obj/effect/spawner/random_spawners/cobweb_left_frequent, +/turf/simulated/floor/plating, +/area/mine/abandoned) "dM" = ( -/obj/machinery/atmospherics/unary/vent_pump/on, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plating, /area/mine/production) "dN" = ( -/obj/machinery/conveyor_switch/oneway{ - id = "mining_internal"; - name = "mining conveyor" - }, -/turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "purple" - }, -/area/mine/production) +/obj/structure/ore_box, +/turf/simulated/floor/plating, +/area/mine/abandoned) "dO" = ( -/obj/machinery/conveyor{ - id = "mining_internal" +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/simulated/floor/plating, -/area/mine/production) -"dP" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Mining Station Communications"; - req_access_txt = "48" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/plasteel, -/area/mine/maintenance) -"dQ" = ( -/obj/effect/spawner/window, -/turf/simulated/floor/plating, -/area/mine/living_quarters) -"dR" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Infirmary" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/plasteel/white, -/area/mine/living_quarters) -"dS" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/maintenance{ - name = "Mining Station Maintenance"; - req_access_txt = "48" - }, -/obj/machinery/atmospherics/pipe/simple/visible/universal, -/turf/simulated/floor/plating, -/area/mine/living_quarters) -"dT" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ +/obj/structure/railing{ dir = 1 }, -/turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "purplecorner" +/obj/structure/lattice/catwalk/mining, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 }, -/area/mine/living_quarters) -"dU" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/cable{ - icon_state = "1-2" +/turf/simulated/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"dP" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "brown" + icon_state = "darkfull" }, +/area/mine/mechbay) +"dQ" = ( +/obj/machinery/computer/mech_bay_power_console, +/obj/effect/turf_decal/bot/right, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/mechbay) +"dR" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkyellowcorners" + }, +/area/mine/living_quarters) +"dS" = ( +/obj/structure/table, +/obj/machinery/kitchen_machine/microwave{ + pixel_y = 6 + }, +/turf/simulated/floor/plasteel{ + icon_regular_floor = "yellowsiding"; + icon_state = "tranquillite" + }, +/area/mine/cafeteria) +"dT" = ( +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/lattice/catwalk/mining, +/turf/simulated/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"dU" = ( +/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" + }, +/obj/effect/spawner/random_spawners/grille_often, +/turf/simulated/floor/plating, /area/mine/living_quarters) "dV" = ( /obj/effect/spawner/window, /turf/simulated/floor/plating, /area/mine/production) "dW" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/plasteel, +/obj/structure/rack, +/obj/item/storage/toolbox/electrical, +/turf/simulated/floor/plating, /area/mine/production) "dX" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "purplecorner" + icon_state = "darkfull" }, -/area/mine/living_quarters) +/area/mine/production) "dY" = ( -/obj/machinery/door/airlock/external{ - frequency = 1379; - glass = 1; - id_tag = "mining_outer"; - locked = 1; - name = "Mining External Airlock"; - opacity = 0; - req_access_txt = "54" +/obj/machinery/suit_storage_unit/lavaland, +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "darkyellowcorners" }, -/obj/structure/fans/tiny, -/turf/simulated/floor/plasteel, /area/mine/eva) "ea" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/camera{ + c_tag = "Mining Outpost - Hallway 4"; + network = list("Mining Outpost"); + dir = 8 + }, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "purplecorner" + dir = 1; + icon_state = "darkfull" }, /area/mine/living_quarters) "eb" = ( -/obj/structure/cable{ - icon_state = "1-2" +/turf/simulated/floor/plasteel{ + icon_regular_floor = "yellowsiding"; + icon_state = "tranquillite" + }, +/area/mine/cafeteria) +"ec" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 1 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "brown" - }, -/area/mine/living_quarters) -"ec" = ( -/obj/machinery/camera{ - c_tag = "Crew Area Hallway East"; - network = list("Mining Outpost") - }, -/turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "purplecorner" - }, -/area/mine/living_quarters) -"ed" = ( -/obj/machinery/camera{ - c_tag = "Crew Area Hallway West"; - network = list("Mining Outpost") - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) -"ee" = ( -/turf/simulated/floor/plasteel{ - icon_state = "purplecorner" - }, -/area/mine/living_quarters) -"ef" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "purplecorner" - }, -/area/mine/production) -"eg" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Mining Station Port Wing APC"; - pixel_x = 1; - pixel_y = 25 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) -"eh" = ( -/obj/structure/extinguisher_cabinet{ - name = "custom placement"; - pixel_x = -5; - pixel_y = 30 - }, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) -"ei" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "brown" - }, -/area/mine/production) -"ej" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "brown" - }, -/area/mine/production) -"ek" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "brown" - }, -/area/mine/production) -"el" = ( -/obj/machinery/door/airlock/mining/glass{ - name = "Processing Area"; - req_access_txt = "48" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/mine/production) -"em" = ( -/obj/machinery/mineral/processing_unit{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/lattice/catwalk/mining, /turf/simulated/floor/plating, -/area/mine/production) -"en" = ( -/obj/machinery/mineral/processing_unit_console, -/turf/simulated/wall, -/area/mine/production) -"eo" = ( -/obj/machinery/suit_storage_unit/lavaland, -/turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "purplecorner" +/area/lavaland/surface/outdoors) +"ed" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 }, -/area/mine/eva) -"ep" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) -"eq" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) -"er" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 + dir = 10 }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) -"es" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) -"et" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ +/obj/machinery/light/small{ dir = 1 }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb2, /obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/hologram/holopad, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) -"eu" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) -"ev" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) -"ew" = ( -/obj/structure/ore_box, -/turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "purplecorner" - }, -/area/mine/eva) -"ex" = ( -/obj/machinery/door/airlock/mining/glass{ - name = "Mining Station Bridge"; - req_access_txt = "48" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) -"ey" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, -/turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "brown" - }, -/area/mine/living_quarters) -"ez" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "brown" - }, -/area/mine/living_quarters) -"eA" = ( -/obj/machinery/door/airlock/mining/glass{ - name = "Mining Station Bridge"; - req_access_txt = "48" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel, -/area/mine/production) -"eB" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "brown" - }, -/area/mine/production) -"eC" = ( -/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ + d1 = 2; + d2 = 8; icon_state = "2-8" }, -/obj/machinery/hologram/holopad, -/turf/simulated/floor/plasteel, -/area/mine/production) -"eD" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "brown" - }, -/area/mine/production) -"eE" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "brown" - }, -/area/mine/production) -"eF" = ( -/obj/machinery/door/airlock/mining/glass{ - name = "Processing Area"; - req_access_txt = "48" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/mine/production) -"eG" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "brown" - }, -/area/mine/production) -"eH" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/mine/production) -"eI" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - icon_state = "purplecorner" - }, -/area/mine/production) -"eJ" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, -/obj/structure/ore_box, -/turf/simulated/floor/plasteel{ - icon_state = "brown" - }, -/area/mine/production) -"eK" = ( -/turf/simulated/floor/plasteel{ - dir = 6; - icon_state = "purple" - }, -/area/mine/production) -"eL" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 - }, -/turf/simulated/floor/plasteel{ - icon_state = "purplecorner" - }, +/turf/simulated/floor/plating, /area/mine/living_quarters) -"eM" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) -"eN" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ +"ee" = ( +/obj/effect/turf_decal/loading_area{ dir = 8 }, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) -"eO" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - icon_state = "brown" - }, -/area/mine/living_quarters) -"eP" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 +/obj/effect/decal/cleanable/dirt, +/obj/machinery/alarm{ + name = "north bump"; + pixel_y = 24 }, +/turf/simulated/floor/plating, +/area/mine/abandoned) +"ef" = ( /obj/structure/cable{ - icon_state = "1-2" - }, -/turf/simulated/floor/plasteel, -/area/mine/production) -"eQ" = ( -/obj/machinery/door/airlock/mining{ - name = "Mining Station Storage"; - req_access_txt = "48" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) -"eR" = ( -/obj/machinery/door/airlock/glass{ - name = "Break Room" - }, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) -"eS" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 + icon_state = "1-4"; + d1 = 1; + d2 = 4 }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "purplecorner" + dir = 1; + icon_state = "darkfull" + }, +/area/mine/eva) +"eg" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" }, /area/mine/living_quarters) -"eT" = ( -/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) -"eU" = ( +"eh" = ( /obj/machinery/light/small, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, +/turf/simulated/floor/bluegrid, +/area/mine/maintenance{ + name = "Mining Station Communicatiosns" + }) +"ei" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/firealarm{ + dir = 8; + name = "west bump"; + pixel_x = -24 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, /turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkyellowcorners" + }, +/area/mine/production) +"ej" = ( +/obj/item/radio/intercom, +/turf/simulated/wall, +/area/mine/production) +"ek" = ( +/obj/machinery/door/airlock/mining{ + name = "Mining Station Storage"; + req_access_txt = "48" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/storage) +"el" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurplecorners" + }, +/area/mine/production) +"em" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/sleeper) +"en" = ( +/obj/machinery/mineral/processing_unit_console, +/turf/simulated/wall, +/area/mine/abandoned) +"eo" = ( +/obj/machinery/camera{ + c_tag = "Mining Outpost - EVA Storage"; + network = list("Mining Outpost") + }, +/obj/machinery/light_switch{ + name = "North Switch"; + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/eva) +"ep" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/power/apc{ dir = 4; - icon_state = "purplecorner" + name = "Dinner Room APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/simulated/floor/plasteel{ + icon_regular_floor = "yellowsiding"; + icon_state = "tranquillite" + }, +/area/mine/cafeteria) +"eq" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/baseturf_helper/lava_land/surface, +/turf/simulated/floor/plating, +/area/mine/abandoned) +"er" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/turf/simulated/floor/plasteel{ + icon_regular_floor = "yellowsiding"; + icon_state = "tranquillite" + }, +/area/mine/cafeteria) +"es" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkyellowcorners" }, /area/mine/living_quarters) -"eV" = ( +"et" = ( +/obj/machinery/mineral/unloading_machine{ + dir = 1; + icon_state = "unloader-corner"; + input_dir = 1; + output_dir = 2 + }, +/obj/machinery/conveyor{ + id = "mining_internal" + }, +/turf/simulated/floor/plating, +/area/mine/abandoned) +"eu" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, /turf/simulated/floor/plasteel{ + icon_regular_floor = "yellowsiding"; + icon_state = "tranquillite" + }, +/area/mine/cafeteria) +"ev" = ( +/obj/machinery/alarm{ + name = "north bump"; + pixel_y = 24 + }, +/obj/machinery/camera{ + c_tag = "Mining Outpost - Dinner Room"; + network = list("Mining Outpost") + }, +/turf/simulated/floor/plasteel{ + icon_regular_floor = "yellowsiding"; + icon_state = "tranquillite" + }, +/area/mine/cafeteria) +"ew" = ( +/obj/structure/window/reinforced, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/simulated/floor/plating, +/area/mine/abandoned) +"ex" = ( +/obj/effect/baseturf_helper/lava_land/surface, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/hologram/holopad, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/eva) +"ey" = ( +/obj/machinery/firealarm{ dir = 4; - icon_state = "purplecorner" + name = "east bump"; + pixel_x = 24 + }, +/obj/machinery/light_switch{ + name = "North Switch"; + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + icon_regular_floor = "yellowsiding"; + icon_state = "tranquillite" + }, +/area/mine/cafeteria) +"ez" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkyellowcorners" + }, +/area/mine/living_quarters) +"eA" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/living_quarters) +"eC" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurplecorners" + }, +/area/mine/mechbay) +"eD" = ( +/obj/machinery/camera{ + c_tag = "Mining Outpost - Mech Storage 2"; + network = list("Mining Outpost"); + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/mechbay) +"eE" = ( +/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/production) +"eF" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_x = 24; + name = "East Switch"; + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/production) +"eG" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/table, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/production) +"eH" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/door/airlock/mining/glass{ + name = "Mining Station Bridge"; + req_access_txt = "48" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/production) +"eI" = ( +/obj/structure/grille, +/turf/simulated/floor/plating, +/area/mine/production) +"eJ" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "EVA Storage APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/eva) +"eK" = ( +/obj/effect/turf_decal/bot/left, +/obj/structure/cable, +/obj/machinery/constructable_frame/machine_frame, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/mechbay) +"eL" = ( +/obj/structure/fans/tiny, +/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/door/airlock{ + name = "Maintence Door" + }, +/obj/effect/spawner/random_barrier/obstruction, +/turf/simulated/floor/plating, +/area/mine/living_quarters) +"eM" = ( +/obj/structure/fans/tiny, +/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/door/airlock{ + name = "Maintence Door" + }, +/obj/effect/spawner/random_barrier/obstruction, +/turf/simulated/floor/plating, +/area/mine/abandoned) +"eN" = ( +/obj/machinery/mineral/processing_unit{ + dir = 1 + }, +/obj/machinery/conveyor{ + id = "mining_internal" + }, +/turf/simulated/floor/plating, +/area/mine/abandoned) +"eO" = ( +/obj/machinery/firealarm{ + dir = 8; + name = "west bump"; + pixel_x = -24 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurplecorners" + }, +/area/mine/airlock) +"eP" = ( +/obj/machinery/camera{ + c_tag = "Mining Outpost - Hallway 2"; + dir = 1; + network = list("Mining Outpost") + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurplecorners" + }, +/area/mine/production) +"eQ" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurplecorners" + }, +/area/mine/storage) +"eR" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_regular_floor = "yellowsiding"; + icon_state = "tranquillite" + }, +/area/mine/cafeteria) +"eS" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/eva) +"eT" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel{ + icon_regular_floor = "yellowsiding"; + icon_state = "tranquillite" + }, +/area/mine/cafeteria) +"eU" = ( +/turf/simulated/wall, +/area/mine/storage) +"eV" = ( +/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/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurplecorners" }, /area/mine/production) "eW" = ( -/turf/simulated/floor/plasteel, +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/external/glass{ + name = "Mining Shuttle Airlock"; + id_tag = "mining_away"; + req_access_txt = "48" + }, +/turf/simulated/floor/plating, /area/mine/production) "eX" = ( /obj/machinery/conveyor{ @@ -2147,7 +2432,7 @@ }, /obj/structure/plasticflaps, /turf/simulated/floor/plating, -/area/mine/production) +/area/mine/abandoned) "eY" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -2157,293 +2442,398 @@ /turf/simulated/floor/plasteel, /area/mine/laborcamp) "eZ" = ( -/turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "brown" +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8 }, -/area/mine/production) +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/living_quarters) "fa" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door/airlock/mining/glass{ + name = "Mining Station Bridge"; + req_access_txt = "48" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, /turf/simulated/floor/plasteel{ dir = 8; - icon_state = "purplecorner" + icon_state = "darkpurplecorners" }, -/area/mine/living_quarters) +/area/mine/production) "fb" = ( -/obj/machinery/alarm{ +/obj/machinery/mineral/equipment_vendor, +/turf/simulated/floor/plasteel{ dir = 1; - name = "custom placement"; - pixel_y = -22 + icon_state = "darkfull" }, -/obj/machinery/recharge_station, -/turf/simulated/floor/plasteel{ - icon_state = "purple" - }, -/area/mine/production) +/area/mine/storage) "fc" = ( -/obj/machinery/alarm{ - name = "custom placement"; - pixel_y = 23 +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 8 }, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) -"fd" = ( -/obj/machinery/light, -/obj/machinery/mech_bay_recharge_port, -/obj/structure/cable, -/turf/simulated/floor/plasteel{ - icon_state = "brown" +/obj/structure/window/reinforced{ + dir = 1 }, -/area/mine/production) -"fe" = ( -/obj/structure/bed, -/obj/item/bedsheet/brown, -/obj/machinery/alarm{ - name = "custom placement"; - pixel_y = 23 - }, -/turf/simulated/floor/carpet, -/area/mine/living_quarters) -"ff" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ +/obj/structure/window/reinforced{ dir = 4 }, -/turf/simulated/floor/carpet, -/area/mine/living_quarters) -"fg" = ( -/obj/machinery/door/airlock{ - id_tag = "miningdorm1"; - name = "Room 1" +/turf/simulated/floor/plating/airless, +/area/shuttle/mining) +"fd" = ( +/obj/structure/closet/emcloset, +/obj/machinery/alarm{ + dir = 4; + name = "west bump"; + pixel_x = -24 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/airlock) +"fe" = ( +/obj/machinery/door/airlock/glass{ + name = "Break Room" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) -"fh" = ( -/turf/simulated/floor/mech_bay_recharge_floor, -/area/mine/production) -"fi" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) -"fj" = ( -/obj/machinery/computer/mech_bay_power_console{ - dir = 1 +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, /turf/simulated/floor/plasteel{ - icon_state = "brown" + dir = 1; + icon_state = "darkfull" }, -/area/mine/production) -"fk" = ( -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) -"fl" = ( +/area/mine/cafeteria) +"ff" = ( /obj/effect/turf_decal/loading_area{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/mine/production) -"fm" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "mining_internal" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/simulated/floor/plating, -/area/mine/production) -"fn" = ( -/obj/machinery/conveyor{ - dir = 10; - id = "mining_internal" - }, -/obj/machinery/light/small{ dir = 4 }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/simulated/floor/plating, -/area/mine/production) -"fo" = ( -/obj/machinery/mineral/equipment_vendor, -/turf/simulated/floor/plasteel{ - dir = 9; - icon_state = "brown" - }, -/area/mine/living_quarters) -"fp" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) -"fr" = ( -/obj/structure/table, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/simulated/floor/carpet, -/area/mine/living_quarters) -"fs" = ( -/obj/machinery/light/small{ - dir = 1 - }, /obj/structure/extinguisher_cabinet{ name = "custom placement"; pixel_x = -5; pixel_y = 30 }, -/turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "purplecorner" +/obj/machinery/light/small{ + dir = 1 }, -/area/mine/living_quarters) -"ft" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "brown" - }, -/area/mine/living_quarters) -"fu" = ( +/turf/simulated/floor/plating, +/area/mine/abandoned) +"fg" = ( +/obj/structure/closet/secure_closet/miner, /obj/machinery/alarm{ - name = "custom placement"; - pixel_y = 23 + name = "north bump"; + pixel_y = 24 }, -/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "purplecorner" + icon_state = "darkfull" + }, +/area/mine/storage) +"fh" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" }, /area/mine/living_quarters) -"fv" = ( +"fj" = ( +/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/door/airlock/multi_tile/glass{ + name = "Mech bay Airlock" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/mechbay) +"fk" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_regular_floor = "yellowsiding"; + icon_state = "tranquillite" + }, +/area/mine/cafeteria) +"fl" = ( +/obj/machinery/door/airlock{ + name = "Maintence Door" + }, +/turf/simulated/floor/plating, +/area/mine/mechbay) +"fm" = ( +/obj/machinery/light, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurplecorners" + }, +/area/mine/production) +"fn" = ( +/obj/machinery/conveyor{ + dir = 10; + id = "mining_internal" + }, +/turf/simulated/floor/plating, +/area/mine/abandoned) +"fo" = ( +/obj/structure/chair, +/turf/simulated/floor/plasteel{ + icon_regular_floor = "yellowsiding"; + icon_state = "tranquillite" + }, +/area/mine/cafeteria) +"fp" = ( /obj/machinery/camera{ - c_tag = "Storage"; + c_tag = "Mining Outpost - Hallway 1"; + dir = 8; network = list("Mining Outpost") }, -/obj/structure/reagent_dispensers/watertank, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/production) +"fr" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /obj/machinery/firealarm{ name = "north bump"; pixel_y = 24 }, /turf/simulated/floor/plasteel{ - dir = 5; - icon_state = "brown" - }, -/area/mine/living_quarters) -"fw" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "brown" - }, -/area/mine/living_quarters) -"fx" = ( -/obj/machinery/economy/vending/snack, -/turf/simulated/floor/plasteel{ - icon_state = "bar" - }, -/area/mine/living_quarters) -"fy" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/plasteel{ - icon_state = "bar" - }, -/area/mine/living_quarters) -"fz" = ( -/turf/simulated/floor/plasteel{ - icon_state = "bar" - }, -/area/mine/living_quarters) -"fA" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 1 - }, -/turf/simulated/floor/plasteel{ - icon_state = "bar" - }, -/area/mine/living_quarters) -"fB" = ( -/obj/structure/lattice/catwalk, -/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"fC" = ( -/obj/machinery/economy/vending/cigarette, -/obj/machinery/newscaster{ - name = "north bump"; - pixel_y = 28 - }, -/turf/simulated/floor/plasteel{ - icon_state = "bar" - }, -/area/mine/living_quarters) -"fD" = ( -/obj/structure/table, -/obj/machinery/kitchen_machine/microwave{ - pixel_y = 6 - }, -/turf/simulated/floor/plasteel{ - icon_state = "bar" - }, -/area/mine/living_quarters) -"fE" = ( -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "purple" - }, -/area/mine/living_quarters) -"fF" = ( -/obj/item/radio/intercom{ - name = "east bump"; - pixel_x = 28 + dir = 1; + icon_state = "darkfull" }, +/area/mine/mechbay) +"fs" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "purple" - }, -/area/mine/living_quarters) -"fG" = ( -/obj/machinery/camera{ - c_tag = "Dormitories"; - dir = 4; - network = list("Mining Outpost") - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 4 }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "purplecorner" + icon_state = "darkfull" }, -/area/mine/living_quarters) -"fH" = ( -/obj/machinery/door/airlock{ - id_tag = "miningdorm2"; - name = "Room 2" +/area/mine/eva) +"ft" = ( +/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/structure/lattice/catwalk/mining, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/lavaland/surface/outdoors) +"fu" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/spawner/random_spawners/cobweb_right_rare, +/turf/simulated/floor/plating, +/area/mine/abandoned) +"fv" = ( +/obj/effect/baseturf_helper/lava_land/surface, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/production) +"fw" = ( +/obj/effect/baseturf_helper/lava_land/surface, +/obj/structure/cable{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/obj/machinery/hologram/holopad, +/turf/simulated/floor/plasteel/dark, +/area/mine/maintenance{ + name = "Mining Station Communicatiosns" + }) +"fx" = ( +/obj/machinery/light{ dir = 4 }, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) -"fI" = ( -/obj/structure/chair, /turf/simulated/floor/plasteel{ - icon_state = "bar" + dir = 1; + icon_state = "darkfull" }, +/area/mine/production) +"fy" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_regular_floor = "yellowsiding"; + icon_state = "tranquillite" + }, +/area/mine/cafeteria) +"fz" = ( +/obj/structure/fans/tiny, +/obj/structure/barricade/wooden, +/obj/effect/spawner/random_barrier/possibly_welded_airlock, +/turf/simulated/floor/plating, +/area/mine/cafeteria) +"fA" = ( +/obj/structure/rack, +/obj/item/storage/firstaid/regular{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/storage/firstaid/machine, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "darkblue" + }, +/area/mine/sleeper) +"fB" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Mining Communications APC"; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/bluegrid, +/area/mine/maintenance{ + name = "Mining Station Communicatiosns" + }) +"fC" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_regular_floor = "yellowsiding"; + icon_state = "tranquillite" + }, +/area/mine/cafeteria) +"fD" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/cans/beer{ + pixel_x = -1; + pixel_y = 9 + }, +/obj/item/reagent_containers/food/drinks/cans/beer{ + pixel_x = -8 + }, +/obj/item/reagent_containers/food/drinks/cans/beer{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/simulated/floor/plasteel{ + icon_regular_floor = "yellowsiding"; + icon_state = "tranquillite" + }, +/area/mine/cafeteria) +"fE" = ( +/obj/structure/closet/secure_closet/miner, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/storage) +"fF" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/simulated/floor/plating, /area/mine/living_quarters) +"fG" = ( +/obj/effect/turf_decal{ + dir = 1 + }, +/obj/effect/turf_decal/caution, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/airlock) +"fH" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/obj/effect/baseturf_helper/lava_land/surface, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/storage) +"fI" = ( +/obj/effect/turf_decal/loading_area, +/obj/item/radio/intercom{ + name = "west bump"; + pixel_x = -28 + }, +/turf/simulated/floor/plating, +/area/mine/abandoned) "fJ" = ( /obj/machinery/door/airlock/titanium{ id_tag = "s_docking_airlock"; @@ -2472,47 +2862,63 @@ /turf/simulated/floor/plating, /area/shuttle/mining) "fK" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder, -/turf/simulated/floor/plasteel{ - icon_state = "bar" - }, -/area/mine/living_quarters) -"fL" = ( -/obj/structure/closet/secure_closet/miner, -/turf/simulated/floor/plasteel{ - dir = 10; - icon_state = "brown" - }, -/area/mine/living_quarters) -"fN" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/light{ - dir = 4 - }, /obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 + dir = 1 }, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) -"fO" = ( -/obj/machinery/door/airlock{ - id_tag = "miningdorm3"; - name = "Room 3" +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/production) +"fL" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/turf/simulated/floor/plating, +/area/mine/living_quarters) +"fN" = ( +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/obj/structure/cable{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/simulated/floor/plating, +/area/mine/living_quarters) +"fO" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/effect/turf_decal/bot/left, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/mechbay) +"fP" = ( +/obj/structure/window/reinforced{ dir = 4 }, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) -"fP" = ( -/obj/structure/closet/secure_closet/miner, -/obj/effect/turf_decal/tile/brown{ +/obj/machinery/atmospherics/unary/vent_pump/on{ dir = 8 }, -/obj/effect/turf_decal/tile/brown, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) +/obj/machinery/light/small, +/turf/simulated/floor/plating, +/area/mine/abandoned) "fQ" = ( /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/unexplored/danger) @@ -2532,9 +2938,14 @@ /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "fU" = ( -/obj/structure/closet/secure_closet/miner, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, /turf/simulated/floor/plasteel{ - icon_state = "purple" + dir = 8; + icon_state = "darkpurplecorners" }, /area/mine/living_quarters) "fV" = ( @@ -2546,124 +2957,142 @@ /turf/simulated/floor/indestructible/boss, /area/lavaland/surface/outdoors) "fX" = ( -/obj/structure/closet/secure_closet/miner, -/turf/simulated/floor/plasteel{ - dir = 6; - icon_state = "brown" - }, -/area/mine/living_quarters) -"fY" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - icon_state = "bar" - }, -/area/mine/living_quarters) -"fZ" = ( -/obj/structure/chair{ +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, -/turf/simulated/floor/plasteel{ - icon_state = "bar" - }, -/area/mine/living_quarters) -"ga" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/drinks/cans/beer{ - pixel_x = 7; - pixel_y = 5 - }, -/obj/item/reagent_containers/food/drinks/cans/beer{ - pixel_x = -1; - pixel_y = 9 - }, -/obj/item/reagent_containers/food/drinks/cans/beer{ - pixel_x = -8 - }, -/turf/simulated/floor/plasteel{ - icon_state = "bar" - }, -/area/mine/living_quarters) -"gb" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 - }, -/turf/simulated/floor/plasteel{ - icon_state = "bar" - }, -/area/mine/living_quarters) -"gc" = ( -/obj/machinery/door/window/southleft, -/obj/machinery/shower{ - pixel_y = 22 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/structure/curtain/open/shower, -/turf/simulated/floor/plasteel/freezer, -/area/mine/living_quarters) -"gd" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, -/turf/simulated/floor/plasteel, -/area/mine/production) -"ge" = ( -/obj/machinery/door/window/southright, -/obj/machinery/shower{ - pixel_y = 22 +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/curtain/open/shower, -/turf/simulated/floor/plasteel/freezer, -/area/mine/living_quarters) -"gf" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/simulated/floor/plasteel{ - icon_state = "bar" - }, -/area/mine/living_quarters) -"gg" = ( -/obj/structure/table, -/obj/item/storage/box/donkpockets, -/turf/simulated/floor/plasteel{ - icon_state = "bar" - }, -/area/mine/living_quarters) -"gh" = ( -/obj/item/radio/intercom{ - name = "west bump"; - pixel_x = -28 - }, -/turf/simulated/floor/plasteel{ - icon_state = "bar" - }, -/area/mine/living_quarters) -"gi" = ( +/obj/structure/lattice/catwalk/mining, +/turf/simulated/floor/plating, +/area/lavaland/surface/outdoors) +"fY" = ( +/obj/machinery/economy/vending/assist, +/turf/simulated/floor/plating, +/area/mine/cafeteria) +"fZ" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on, /obj/machinery/camera{ - c_tag = "Crew Area"; - dir = 1; + c_tag = "Mining Outpost - Storage Room"; network = list("Mining Outpost") }, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_y = -32 +/obj/machinery/light_switch{ + name = "North Switch"; + pixel_y = 24 }, -/obj/machinery/light, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/storage) +"ga" = ( +/obj/structure/closet/crate/freezer/iv_storage, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "darkblue" + }, +/area/mine/sleeper) +"gb" = ( +/obj/machinery/iv_drip, +/obj/machinery/camera{ + c_tag = "Mining Outpost - Outpost Medbay"; + network = list("Mining Outpost") + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkblue" + }, +/area/mine/sleeper) +"gd" = ( /obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ - icon_state = "bar" + dir = 1; + icon_state = "darkfull" + }, +/area/mine/storage) +"ge" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/door/airlock/mining/glass{ + name = "Mining Station Bridge"; + req_access_txt = "48" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" }, /area/mine/living_quarters) +"gf" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Outpost Medbay APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkblue" + }, +/area/mine/sleeper) +"gg" = ( +/obj/machinery/alarm{ + name = "north bump"; + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkblue" + }, +/area/mine/sleeper) +"gh" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Mining Station Communications"; + req_access_txt = "48" + }, +/obj/structure/fans/tiny, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel/dark, +/area/mine/maintenance{ + name = "Mining Station Communicatiosns" + }) +"gi" = ( +/obj/machinery/firealarm{ + dir = 8; + name = "west bump"; + pixel_x = -24 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkblue" + }, +/area/mine/sleeper) "gj" = ( /obj/structure/stone_tile/surrounding_tile{ dir = 1 @@ -2689,54 +3118,68 @@ /turf/simulated/floor/indestructible/boss, /area/lavaland/surface/outdoors) "gl" = ( -/obj/machinery/alarm{ - dir = 1; - name = "custom placement"; - pixel_y = -22 +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 }, /turf/simulated/floor/plasteel{ - icon_state = "bar" + dir = 1; + icon_state = "darkfull" }, -/area/mine/living_quarters) +/area/mine/sleeper) "gm" = ( -/obj/machinery/firealarm{ +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/obj/effect/baseturf_helper/lava_land/surface, +/turf/simulated/floor/plasteel{ dir = 1; - name = "south bump"; - pixel_y = -24 + icon_state = "darkfull" }, -/turf/simulated/floor/plasteel{ - icon_state = "bar" - }, -/area/mine/living_quarters) +/area/mine/sleeper) "gn" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, /turf/simulated/floor/plasteel{ - icon_state = "bar" + dir = 1; + icon_state = "darkfull" }, -/area/mine/living_quarters) +/area/mine/sleeper) "go" = ( /obj/structure/stone_tile/block, /turf/simulated/floor/plating/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors) "gp" = ( -/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, -/turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "purplecorner" - }, -/area/mine/living_quarters) -"gq" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, +/obj/structure/closet/secure_closet/miner, /turf/simulated/floor/plasteel{ dir = 8; - icon_state = "purplecorner" + icon_state = "darkpurplecorners" }, -/area/mine/living_quarters) +/area/mine/storage) +"gq" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/lattice/catwalk/mining, +/turf/simulated/floor/plating, +/area/lavaland/surface/outdoors) "gr" = ( /obj/structure/stone_tile{ dir = 1 @@ -2764,48 +3207,54 @@ /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "gt" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 - }, -/turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "purplecorner" +/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" }, +/turf/simulated/floor/plating, /area/mine/living_quarters) "gu" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" - }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "darkred" }, /area/mine/laborcamp/security) "gv" = ( -/obj/machinery/door/airlock/external{ - glass = 1; - id_tag = "mining_away"; - name = "Mining Shuttle Airlock"; - opacity = 0; - req_one_access_txt = "48" +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/obj/structure/fans/tiny, -/turf/simulated/floor/plasteel, -/area/mine/production) -"gw" = ( -/obj/machinery/door/airlock/external{ - glass = 1; - id_tag = "mining_away"; - name = "Mining Shuttle Airlock"; - opacity = 0; +/obj/machinery/atmospherics/pipe/simple/visible/universal, +/obj/machinery/door/airlock/maintenance{ + name = "Mining Station Maintenance"; req_access_txt = "48" }, -/obj/structure/fans/tiny, -/turf/simulated/floor/plasteel, -/area/mine/production) +/turf/simulated/floor/plating, +/area/mine/living_quarters) +"gw" = ( +/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" + }, +/obj/machinery/door/airlock{ + name = "Maintence Door" + }, +/turf/simulated/floor/plating, +/area/mine/living_quarters) "gx" = ( /obj/structure/fans/tiny, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -2833,9 +3282,15 @@ /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "gA" = ( -/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/lattice/catwalk/mining, +/turf/simulated/floor/plating, +/area/lavaland/surface/outdoors) "gB" = ( /obj/structure/stone_tile/block{ dir = 4 @@ -2892,48 +3347,58 @@ /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "gH" = ( -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1379; - master_tag = "mining"; - name = "exterior access button"; - pixel_x = -25; - pixel_y = -25; - req_access_txt = null +/obj/machinery/light/small{ + dir = 4 }, -/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/turf/simulated/floor/mineral/titanium/blue, +/area/shuttle/mining) "gI" = ( -/obj/structure/cable{ - icon_state = "2-8" +/obj/machinery/shower{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 6 +/obj/effect/turf_decal/bot_white, +/obj/structure/extinguisher_cabinet{ + name = "custom placement"; + pixel_x = -5; + pixel_y = 30 }, -/obj/effect/baseturf_helper/lava_land/surface, -/obj/machinery/hologram/holopad, -/turf/simulated/floor/plasteel/dark, -/area/mine/maintenance) +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/airlock) "gJ" = ( -/obj/machinery/atmospherics/unary/outlet_injector/on{ - dir = 4; - name = "scrubber outlet" +/obj/machinery/atmospherics/pipe/simple/visible/universal{ + dir = 4 }, -/obj/structure/lattice/catwalk, +/obj/structure/lattice/catwalk/mining, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/mine/living_quarters) "gK" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 8 + dir = 4 }, -/obj/structure/lattice/catwalk, -/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, -/area/mine/living_quarters) +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/mechbay) "gL" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/effect/baseturf_helper/lava_land/surface, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_x = -24; + name = "West Switch"; + dir = 4 + }, +/turf/simulated/floor/plasteel/dark, +/area/mine/maintenance{ + name = "Mining Station Communicatiosns" + }) "gM" = ( /obj/structure/stone_tile/block{ dir = 4 @@ -3002,11 +3467,13 @@ }, /area/mine/laborcamp) "hz" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/simulated/floor/plasteel{ + icon_regular_floor = "yellowsiding"; + icon_state = "tranquillite" }, -/turf/simulated/floor/plasteel/freezer, -/area/mine/living_quarters) +/area/mine/cafeteria) "hA" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -3063,6 +3530,19 @@ }, /turf/simulated/floor/indestructible/boss, /area/lavaland/surface/outdoors) +"ii" = ( +/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" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/airlock) "ir" = ( /obj/structure/stone_tile/slab/cracked{ dir = 5 @@ -3269,6 +3749,12 @@ }, /turf/simulated/floor/plating/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors) +"jK" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/storage) "jL" = ( /obj/structure/stone_tile/surrounding_tile, /obj/structure/stone_tile/surrounding_tile{ @@ -3291,6 +3777,10 @@ /obj/structure/stone_tile/center/cracked, /turf/simulated/floor/plating/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors) +"jP" = ( +/obj/effect/spawner/random_spawners/wall_rusted_maybe, +/turf/simulated/wall, +/area/mine/eva) "jQ" = ( /obj/structure/stone_tile{ dir = 1 @@ -3309,6 +3799,18 @@ }, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"kf" = ( +/obj/structure/fans/tiny, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/multi_tile/glass{ + name = "Outpost Airlock"; + req_access_txt = "54" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/airlock) "kg" = ( /obj/structure/fluff/drake_statue, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, @@ -3648,11 +4150,6 @@ dir = 4; network = list("Labor Camp") }, -/obj/machinery/alarm{ - dir = 4; - name = "custom placement"; - pixel_x = -23 - }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "darkred" @@ -3686,6 +4183,10 @@ }, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"mp" = ( +/obj/effect/spawner/random_spawners/wall_rusted_maybe, +/turf/simulated/wall, +/area/mine/living_quarters) "mq" = ( /obj/structure/stone_tile/block/cracked{ dir = 4 @@ -4029,14 +4530,23 @@ /turf/simulated/floor/indestructible/boss, /area/lavaland/surface/outdoors) "on" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" }, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/airlock) "op" = ( /obj/structure/closet/secure_closet/brig/gulag, /turf/simulated/floor/plasteel, @@ -4051,6 +4561,22 @@ icon_state = "brown" }, /area/mine/laborcamp) +"oF" = ( +/obj/structure/cable{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/mechbay) "oR" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/dispenser/oxygen, @@ -4060,8 +4586,10 @@ }, /area/mine/laborcamp) "pa" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/plasteel, +/obj/machinery/door/airlock{ + name = "Maintence Door" + }, +/turf/simulated/floor/plating, /area/mine/living_quarters) "pq" = ( /turf/simulated/floor/mineral/titanium, @@ -4075,6 +4603,23 @@ icon_state = "darkredcorners" }, /area/mine/laborcamp/security) +"pQ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/storage) "qw" = ( /obj/effect/decal/cleanable/dirt, /obj/item/cigbutt, @@ -4139,21 +4684,20 @@ /turf/simulated/floor/mineral/titanium, /area/shuttle/mining) "rS" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, /turf/simulated/floor/plasteel{ dir = 6; icon_state = "brown" }, /area/mine/laborcamp) "rV" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +/obj/machinery/light{ + dir = 8 }, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) +/turf/simulated/floor/plasteel{ + icon_regular_floor = "yellowsiding"; + icon_state = "tranquillite" + }, +/area/mine/cafeteria) "sv" = ( /obj/machinery/light{ dir = 4 @@ -4166,11 +4710,9 @@ /turf/simulated/floor/plasteel/white, /area/mine/laborcamp) "sL" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) +/obj/effect/spawner/random_spawners/wall_rusted_maybe, +/turf/simulated/wall, +/area/mine/storage) "sO" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -4199,6 +4741,13 @@ }, /turf/simulated/floor/plasteel, /area/mine/laborcamp) +"sT" = ( +/obj/machinery/hologram/holopad, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/mechbay) "tb" = ( /obj/effect/spawner/window/shuttle, /turf/simulated/floor/plating, @@ -4219,14 +4768,16 @@ }, /area/mine/laborcamp) "tI" = ( -/obj/machinery/light/small{ +/obj/machinery/light_switch{ + pixel_x = -24; + name = "West Switch"; dir = 4 }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkblue" }, -/turf/simulated/floor/plasteel/freezer, -/area/mine/living_quarters) +/area/mine/sleeper) "tJ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -4239,9 +4790,19 @@ }, /area/mine/laborcamp) "tK" = ( -/obj/structure/ore_box, -/turf/simulated/floor/plasteel, -/area/mine/production) +/obj/structure/closet/secure_closet/miner, +/obj/structure/extinguisher_cabinet{ + name = "west bump"; + pixel_x = -27 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurplecorners" + }, +/area/mine/storage) "tT" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/visible/cyan{ @@ -4282,11 +4843,16 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" - }, /turf/simulated/floor/plasteel, /area/mine/laborcamp) +"um" = ( +/obj/effect/spawner/window/reinforced, +/turf/simulated/floor/plating, +/area/mine/mechbay) +"uq" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/mine/living_quarters) "uL" = ( /obj/effect/spawner/window/reinforced, /obj/machinery/flasher{ @@ -4312,6 +4878,26 @@ icon_state = "darkred" }, /area/mine/laborcamp/security) +"vg" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/effect/turf_decal/bot/left, +/obj/structure/cable, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/mechbay) +"vh" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/mechbay) "vk" = ( /obj/machinery/door/airlock/titanium{ name = "Labor Shuttle Airlock"; @@ -4320,9 +4906,13 @@ /turf/simulated/floor/mineral/plastitanium/red, /area/shuttle/siberia) "vq" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/mechbay) "vw" = ( /obj/structure/table, /obj/item/storage/fancy/cigarettes/cigpack_random, @@ -4356,12 +4946,34 @@ }, /turf/simulated/floor/plasteel, /area/mine/laborcamp) -"vZ" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +"vT" = ( +/obj/effect/turf_decal, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" }, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) +/area/mine/airlock) +"vZ" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/cans/beer{ + pixel_x = -7 + }, +/obj/item/reagent_containers/food/drinks/cans/beer, +/obj/item/reagent_containers/food/drinks/cans/beer{ + pixel_x = 7; + pixel_y = 5 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel{ + icon_regular_floor = "yellowsiding"; + icon_state = "tranquillite" + }, +/area/mine/cafeteria) "wg" = ( /obj/machinery/mineral/equipment_vendor/labor, /turf/simulated/floor/plasteel, @@ -4401,6 +5013,10 @@ icon_state = "darkredcorners" }, /area/mine/laborcamp/security) +"xl" = ( +/obj/effect/spawner/random_spawners/wall_rusted_maybe, +/turf/simulated/wall, +/area/mine/mechbay) "xo" = ( /obj/structure/shuttle/engine/propulsion/burst, /turf/simulated/floor/plating/airless, @@ -4416,20 +5032,27 @@ /area/mine/laborcamp) "xA" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 + dir = 9 }, -/turf/simulated/floor/plasteel, -/area/mine/production) +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/effect/baseturf_helper/lava_land/surface, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/airlock) "xC" = ( /turf/simulated/wall/mineral/titanium, /area/shuttle/mining) "xM" = ( -/obj/structure/ore_box, -/obj/machinery/light/small{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 }, -/turf/simulated/floor/mineral/titanium/blue, -/area/shuttle/mining) +/obj/structure/lattice/catwalk/mining, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/mine/living_quarters) "xR" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ @@ -4437,6 +5060,10 @@ icon_state = "browncorner" }, /area/mine/laborcamp) +"xS" = ( +/obj/effect/spawner/random_spawners/wall_rusted_maybe, +/turf/simulated/wall, +/area/mine/cafeteria) "ym" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -4446,6 +5073,26 @@ icon_state = "darkred" }, /area/mine/laborcamp) +"yp" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/plating, +/area/mine/abandoned) +"yq" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/production) "yw" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -4455,9 +5102,18 @@ /area/mine/laborcamp) "yR" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 8 + dir = 10 }, -/turf/simulated/floor/plasteel, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/plating, /area/mine/living_quarters) "zo" = ( /obj/structure/table, @@ -4479,11 +5135,42 @@ }, /area/mine/laborcamp) "zu" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/simulated/floor/plasteel, -/area/mine/production) +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/lattice/catwalk/mining, +/turf/simulated/floor/plating, +/area/lavaland/surface/outdoors) +"zy" = ( +/turf/simulated/wall, +/area/mine/mechbay) +"zN" = ( +/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/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/sleeper) "zY" = ( /obj/structure/chair{ dir = 1 @@ -4512,22 +5199,53 @@ }, /area/mine/laborcamp/security) "AB" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ +/obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 }, -/obj/machinery/hologram/holopad, -/turf/simulated/floor/plasteel, -/area/mine/production) +/obj/machinery/alarm{ + dir = 4; + name = "west bump"; + pixel_x = -24 + }, +/turf/simulated/floor/plasteel/dark, +/area/mine/maintenance{ + name = "Mining Station Communicatiosns" + }) +"AE" = ( +/turf/simulated/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) "Bg" = ( /turf/simulated/floor/mineral/plastitanium/red, /area/shuttle/siberia) "BD" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ +/obj/effect/turf_decal/bot_white, +/obj/machinery/shower{ dir = 4 }, -/turf/simulated/wall, -/area/mine/living_quarters) +/turf/simulated/floor/plasteel{ + dir = 10; + icon_state = "darkblue" + }, +/area/mine/sleeper) +"BE" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Airlock Maintence"; + req_access_txt = "54" + }, +/turf/simulated/floor/plating, +/area/mine/airlock) +"BH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc{ + pixel_x = 24; + name = "Mech Bay APC" + }, +/obj/structure/cable, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurplecorners" + }, +/area/mine/mechbay) "BP" = ( /obj/structure/chair/comfy/shuttle{ dir = 8 @@ -4535,22 +5253,31 @@ /turf/simulated/floor/mineral/plastitanium/red, /area/shuttle/siberia) "BT" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 + dir = 6 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "West Hallway APC"; + pixel_y = 24 }, /obj/structure/cable{ - icon_state = "4-8" + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" }, -/turf/simulated/floor/plasteel, /area/mine/living_quarters) "Ca" = ( +/obj/machinery/economy/vending/cola/free, /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 }, -/obj/machinery/economy/vending/sovietsoda, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "darkred" @@ -4559,6 +5286,29 @@ "Cf" = ( /turf/simulated/floor/mineral/titanium, /area/shuttle/mining) +"Cn" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurplecorners" + }, +/area/mine/mechbay) +"Co" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/mechbay) +"Cw" = ( +/obj/effect/spawner/random_spawners/wall_rusted_maybe, +/turf/simulated/wall, +/area/mine/production) "Cy" = ( /obj/machinery/door/airlock{ name = "Labor Camp Prisoner Lockers" @@ -4576,9 +5326,17 @@ /turf/simulated/floor/plasteel, /area/mine/laborcamp) "CF" = ( -/obj/structure/closet/crate, -/turf/simulated/floor/mineral/titanium/blue, -/area/shuttle/mining) +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/production) "CI" = ( /obj/effect/decal/cleanable/dirt, /mob/living/simple_animal/bot/secbot/beepsky{ @@ -4626,6 +5384,24 @@ icon_state = "darkred" }, /area/mine/laborcamp/security) +"Dq" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/mechbay) +"Dz" = ( +/turf/simulated/wall, +/area/mine/airlock) +"DA" = ( +/obj/effect/spawner/random_spawners/grille_often, +/turf/simulated/floor/plating, +/area/mine/production) "DT" = ( /obj/machinery/computer/shuttle/labor/one_way, /obj/effect/decal/cleanable/cobweb, @@ -4639,20 +5415,37 @@ /turf/simulated/floor/plasteel, /area/mine/laborcamp) "Eg" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) -"Ej" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +/obj/structure/dispenser/oxygen, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" }, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) +/area/mine/eva) +"Ej" = ( +/obj/machinery/tcomms/relay/mining, +/obj/machinery/camera{ + c_tag = "Mining Outpost - Communications Relay"; + dir = 4; + network = list("Mining Outpost") + }, +/turf/simulated/floor/plasteel/dark, +/area/mine/maintenance{ + name = "Mining Station Communicatiosns" + }) "El" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/wall, -/area/mine/living_quarters) +/obj/machinery/economy/vending/snack, +/turf/simulated/floor/plasteel{ + icon_regular_floor = "yellowsiding"; + icon_state = "tranquillite" + }, +/area/mine/cafeteria) +"Ez" = ( +/obj/effect/spawner/random_spawners/cobweb_right_rare, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/mechbay) "EF" = ( /obj/effect/baseturf_helper/lava_land/surface, /obj/item/cigbutt, @@ -4662,27 +5455,21 @@ }, /area/mine/laborcamp/security) "EG" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ +/obj/machinery/light/small{ dir = 1 }, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plating, /area/mine/living_quarters) "Fe" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12 +/obj/item/roller{ + pixel_x = -2; + pixel_y = 10 }, -/obj/structure/mirror{ - pixel_x = -28 +/obj/structure/rack, +/turf/simulated/floor/plasteel{ + icon_state = "darkblue" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel/freezer, -/area/mine/living_quarters) +/area/mine/sleeper) "Fp" = ( /obj/structure/bed, /obj/item/bedsheet/orange, @@ -4720,6 +5507,13 @@ /obj/structure/fans/tiny, /turf/simulated/floor/plating, /area/shuttle/siberia) +"Gh" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/mechbay) "Gp" = ( /obj/structure/sign/poster/contraband/clown, /obj/effect/spawner/random_spawners/wall_rusted_always, @@ -4734,6 +5528,11 @@ /obj/effect/decal/cleanable/ash, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/explored) +"GO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille, +/turf/simulated/floor/plating, +/area/mine/cafeteria) "Hc" = ( /obj/machinery/door/airlock/external{ id_tag = "laborcamp_away"; @@ -4771,6 +5570,15 @@ }, /turf/simulated/floor/plasteel, /area/mine/laborcamp/security) +"HT" = ( +/obj/structure/ore_box, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/eva) "Ia" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 4 @@ -4785,12 +5593,16 @@ /turf/simulated/floor/plasteel/dark, /area/mine/laborcamp) "Iv" = ( -/obj/structure/table, -/obj/machinery/light/small{ - dir = 1 +/obj/structure/window/reinforced{ + dir = 4 }, -/turf/simulated/floor/mineral/titanium/blue, -/area/shuttle/mining) +/obj/machinery/conveyor_switch/oneway{ + id = "mining_internal"; + name = "mining conveyor" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/mine/abandoned) "IF" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/unary/vent_scrubber/on{ @@ -4799,34 +5611,49 @@ /turf/simulated/floor/plasteel, /area/mine/laborcamp) "IK" = ( -/obj/structure/toilet{ - dir = 8 +/obj/structure/rack, +/obj/item/roller{ + pixel_x = -2; + pixel_y = 10 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 +/turf/simulated/floor/plasteel{ + icon_state = "darkblue" }, -/turf/simulated/floor/plasteel/freezer, -/area/mine/living_quarters) +/area/mine/sleeper) "IZ" = ( -/obj/structure/window/reinforced{ - dir = 1 +/obj/effect/baseturf_helper/lava_land/surface, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/obj/structure/shuttle/engine/heater, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ +/obj/machinery/light_switch{ + pixel_x = -24; + name = "West Switch"; dir = 4 }, -/turf/simulated/floor/plating/airless, -/area/shuttle/mining) -"Jl" = ( -/obj/effect/spawner/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 8 +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkyellowcorners" }, +/area/mine/living_quarters) +"Jl" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/mechbay) +"JC" = ( +/obj/structure/grille, /turf/simulated/floor/plating, /area/mine/living_quarters) +"JD" = ( +/obj/structure/lattice/catwalk/mining, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/mine/living_quarters) "JP" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/old, @@ -4866,17 +5693,15 @@ /turf/simulated/floor/plasteel, /area/mine/laborcamp) "Kb" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 1 + dir = 10 }, -/turf/simulated/floor/plasteel, -/area/mine/living_quarters) +/obj/effect/baseturf_helper/lava_land/surface, +/turf/simulated/floor/plasteel{ + icon_regular_floor = "yellowsiding"; + icon_state = "tranquillite" + }, +/area/mine/cafeteria) "Kl" = ( /obj/structure/table, /obj/item/trash/plate, @@ -4896,6 +5721,10 @@ }, /turf/simulated/floor/mineral/titanium, /area/shuttle/siberia) +"Lr" = ( +/obj/effect/spawner/window/reinforced, +/turf/simulated/floor/plating, +/area/mine/sleeper) "Lz" = ( /obj/machinery/atmospherics/unary/outlet_injector/on{ dir = 4; @@ -4904,13 +5733,22 @@ /obj/structure/lattice/catwalk, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/mine/laborcamp) -"LO" = ( -/obj/effect/spawner/window, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +"LK" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" }, -/turf/simulated/floor/plating, -/area/mine/eva) +/area/mine/mechbay) +"LO" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/turf_decal, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/airlock) "LQ" = ( /obj/item/cigbutt, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -4927,6 +5765,24 @@ icon_state = "brown" }, /area/mine/laborcamp) +"Mh" = ( +/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/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/production) "ME" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -4944,9 +5800,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/cable{ - icon_state = "1-2" - }, /turf/simulated/floor/plasteel, /area/mine/laborcamp) "Ni" = ( @@ -4957,14 +5810,28 @@ /turf/simulated/floor/plating, /area/mine/laborcamp) "Nj" = ( -/obj/machinery/door/airlock{ - name = "Restroom" +/obj/effect/turf_decal/bot/left, +/obj/machinery/mech_bay_recharge_port, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" }, -/turf/simulated/floor/plasteel/freezer, -/area/mine/living_quarters) +/area/mine/mechbay) +"Nk" = ( +/obj/effect/spawner/random_spawners/wall_rusted_maybe, +/turf/simulated/wall, +/area/mine/airlock) +"Nq" = ( +/obj/machinery/light, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurplecorners" + }, +/area/mine/mechbay) "ND" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -5005,6 +5872,9 @@ icon_state = "brown" }, /area/mine/laborcamp) +"Oq" = ( +/turf/simulated/wall, +/area/mine/abandoned) "Ov" = ( /obj/machinery/camera{ c_tag = "Labor Camp Monitoring"; @@ -5047,15 +5917,19 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "darkredcorners" }, /area/mine/laborcamp/security) +"Pu" = ( +/obj/machinery/hologram/holopad, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/sleeper) "PK" = ( /obj/structure/closet/secure_closet/brig/gulag, /obj/machinery/flasher{ @@ -5065,10 +5939,12 @@ /turf/simulated/floor/plasteel, /area/mine/laborcamp) "PQ" = ( -/obj/effect/spawner/window, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/plating, -/area/mine/living_quarters) +/obj/machinery/hologram/holopad, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/production) "PX" = ( /turf/simulated/wall, /area/mine/laborcamp/security) @@ -5077,30 +5953,49 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel, /area/mine/laborcamp) +"Qq" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/mine/production) +"Qv" = ( +/obj/effect/turf_decal/bot/right, +/obj/machinery/computer, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/mechbay) "QE" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small{ dir = 8 }, -/obj/machinery/alarm{ - dir = 4; - name = "custom placement"; - pixel_x = -22 - }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "brown" }, /area/mine/laborcamp) -"QR" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable{ - icon_state = "1-2" +"QF" = ( +/obj/machinery/door/airlock{ + name = "Abandoned Airlock"; + req_access_txt = "48" }, -/turf/simulated/floor/plasteel, -/area/mine/laborcamp) +/obj/structure/barricade/wooden, +/obj/structure/fans/tiny, +/turf/simulated/floor/plating, +/area/mine/cafeteria) +"QR" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/storage) "Rd" = ( /obj/structure/rack, /obj/item/storage/bag/ore, @@ -5122,9 +6017,19 @@ }, /area/mine/laborcamp) "Rs" = ( -/obj/structure/table, -/turf/simulated/floor/mineral/titanium/blue, -/area/shuttle/mining) +/obj/structure/fans/tiny, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/barricade/wooden, +/obj/machinery/door/airlock{ + name = "Catwalk Airlock" + }, +/turf/simulated/floor/plating, +/area/mine/eva) "Ss" = ( /obj/structure/rack, /obj/item/storage/bag/ore, @@ -5141,6 +6046,33 @@ icon_state = "brown" }, /area/mine/laborcamp) +"SO" = ( +/obj/machinery/light, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurplecorners" + }, +/area/mine/mechbay) +"Ta" = ( +/obj/structure/closet/secure_closet/miner, +/obj/machinery/power/apc{ + dir = 1; + name = "Storage Room APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/storage) "Tk" = ( /obj/machinery/camera{ c_tag = "Labor Camp Bedroom 1"; @@ -5157,12 +6089,14 @@ }, /area/mine/laborcamp) "Tn" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 }, -/obj/machinery/light/small, -/turf/simulated/floor/plasteel/freezer, -/area/mine/living_quarters) +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/sleeper) "Ts" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/unary/tank/air{ @@ -5174,11 +6108,22 @@ }, /area/mine/laborcamp) "TN" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 1 +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4 }, -/turf/simulated/wall/r_wall, -/area/mine/maintenance) +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/mechbay) "TU" = ( /obj/machinery/door/airlock/external{ id_tag = "laborcamp_away"; @@ -5190,15 +6135,17 @@ /turf/simulated/floor/plating, /area/mine/laborcamp) "Uh" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/sign/electricshock{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - icon_state = "1-2" + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/mine/production) +/turf/simulated/floor/plating, +/area/mine/living_quarters) "Uy" = ( /obj/structure/chair/comfy/shuttle{ dir = 4 @@ -5206,17 +6153,55 @@ /turf/simulated/floor/mineral/titanium, /area/shuttle/siberia) "UQ" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/obj/machinery/camera{ + c_tag = "Mining Outpost - EVA Airlock"; + network = list("Mining Outpost") }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/airlock) +"Ve" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" }, /obj/structure/cable{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/mechbay) +"Vg" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/turf/simulated/floor/plasteel, -/area/mine/production) +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/mechbay) "Vt" = ( /obj/machinery/camera{ c_tag = "Labor Camp Central"; @@ -5251,10 +6236,18 @@ /turf/simulated/floor/plasteel, /area/mine/laborcamp) "VD" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 1 +/obj/structure/reagent_dispensers/watertank, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + pixel_x = -24; + name = "East Hallway APC" + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkyellowcorners" }, -/turf/simulated/floor/plasteel, /area/mine/production) "VJ" = ( /obj/structure/table, @@ -5283,6 +6276,31 @@ icon_state = "brown" }, /area/mine/laborcamp) +"VV" = ( +/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/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/airlock) +"Wi" = ( +/obj/machinery/atmospherics/unary/outlet_injector/on{ + dir = 4; + name = "scrubber outlet" + }, +/obj/structure/lattice/catwalk/mining, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/mine/living_quarters) "Wo" = ( /obj/structure/chair/comfy/shuttle{ dir = 1 @@ -5290,9 +6308,19 @@ /turf/simulated/floor/mineral/titanium, /area/shuttle/mining) "Ww" = ( -/obj/machinery/hologram/holopad, -/turf/simulated/floor/plasteel, -/area/mine/eva) +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/alarm{ + dir = 8; + name = "east bump"; + pixel_x = 24 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/production) "Wx" = ( /obj/structure/table, /obj/item/folder/red, @@ -5312,12 +6340,12 @@ }, /area/mine/laborcamp) "WO" = ( -/obj/effect/spawner/window, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 1 +/obj/machinery/hologram/holopad, +/turf/simulated/floor/plasteel{ + icon_regular_floor = "yellowsiding"; + icon_state = "tranquillite" }, -/turf/simulated/floor/plating, -/area/mine/living_quarters) +/area/mine/cafeteria) "WP" = ( /obj/machinery/atmospherics/unary/vent_pump/on, /turf/simulated/floor/plasteel{ @@ -5333,6 +6361,18 @@ icon_state = "brown" }, /area/mine/laborcamp) +"Xl" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/baseturf_helper/lava_land/surface, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/mechbay) "Xq" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -5348,10 +6388,41 @@ /obj/machinery/atmospherics/unary/vent_pump/on, /turf/simulated/floor/plasteel, /area/mine/laborcamp) +"XI" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/wall, +/area/mine/living_quarters) +"XW" = ( +/obj/structure/closet/secure_closet/miner, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurplecorners" + }, +/area/mine/storage) +"Ya" = ( +/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" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkfull" + }, +/area/mine/mechbay) "Yb" = ( /obj/effect/spawner/random_spawners/wall_rusted_always, /turf/simulated/wall, /area/mine/laborcamp/security) +"Yv" = ( +/obj/effect/spawner/window/reinforced, +/turf/simulated/floor/plating, +/area/mine/airlock) "YI" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/plasteel, @@ -5391,24 +6462,23 @@ /turf/simulated/floor/plasteel/white, /area/mine/laborcamp) "Zf" = ( -/obj/machinery/door/airlock{ - id_tag = "miningbathroom"; - name = "Restroom" +/obj/machinery/sleeper{ + dir = 2 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 +/obj/machinery/light{ + dir = 1 }, -/turf/simulated/floor/plasteel/freezer, -/area/mine/living_quarters) +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "darkblue" + }, +/area/mine/sleeper) "Zk" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable{ - icon_state = "1-2" - }, /turf/simulated/floor/plasteel, /area/mine/laborcamp) "Zv" = ( @@ -6152,7 +7222,7 @@ aj aj aj aj -ab +aj aj aj aj @@ -6408,9 +7478,9 @@ aj aj aj aj -ab -ai -ai +aj +aj +aj aj aj aj @@ -6664,10 +7734,10 @@ aj aj aj aj -ab -ai -ai -ai +aj +aj +aj +aj aj aj aj @@ -6912,8 +7982,6 @@ aj aj aj aj -ab -ab aj aj aj @@ -6922,16 +7990,18 @@ aj aj aj aj -ab -ai -ab -ab aj aj aj aj aj -ab +aj +aj +aj +aj +aj +aj +aj ab ab aj @@ -7173,14 +8243,6 @@ aj aj aj aj -ab -aj -aj -aj -aj -ab -ab -ab aj aj aj @@ -7188,7 +8250,15 @@ aj aj aj aj -ab +aj +aj +aj +aj +aj +aj +aj +aj +ai ab aj aj @@ -7424,11 +8494,11 @@ aj aj aj aj -ab aj aj aj -ab +aj +aj aj aj aj @@ -7457,7 +8527,7 @@ aj aj aj aj -aj +ab aj aj aj @@ -7680,11 +8750,6 @@ aj aj aj aj -ab -ab -aj -ab -ab aj aj aj @@ -7705,7 +8770,12 @@ aj aj aj aj -ab +aj +aj +aj +aj +aj +ai aj aj aj @@ -7936,10 +9006,6 @@ aj aj aj aj -aj -aj -aj -aj ab ab aj @@ -7962,18 +9028,6 @@ aj aj aj aj -ab -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj aj aj aj @@ -7981,10 +9035,26 @@ aj ab aj aj +ab +aj +ad aj aj aj ab +ab +aj +aj +aj +aj +aj +ai +aj +aj +aj +aj +aj +ad aj aj aj @@ -8198,10 +9268,6 @@ aj aj aj aj -aj -aj -aj -aj ab aj aj @@ -8216,6 +9282,10 @@ wP wt aj aj +aj +aj +aj +aj ab aj aj @@ -8223,12 +9293,12 @@ aj aj aj aj -aj -aj -aj -aj -aj -aj +ab +ab +ad +ad +ad +ab aj aj aj @@ -8457,10 +9527,6 @@ aj aj aj aj -aj -aj -aj -aj ab NW BP @@ -8484,10 +9550,14 @@ aj aj aj aj +ad +ad +ad +ad +ad +ad aj -aj -aj -aj +ad aj aj aj @@ -8502,7 +9572,7 @@ aj aj aj aj -aj +ab aj aj aj @@ -8707,10 +9777,6 @@ aj aj aj aj -ab -aj -aj -aj aj tj aj @@ -8730,6 +9796,7 @@ wP wt aj aj +ab aj aj aj @@ -8739,12 +9806,15 @@ aj aj aj aj -aj -aj -aj -aj -aj -aj +ad +ad +ad +ad +ad +ad +ad +ad +ab aj aj aj @@ -8755,6 +9825,7 @@ aj aj aj ab +ad ab aj aj @@ -8762,7 +9833,6 @@ aj aj aj aj -aj "} (14,1,1) = {" aa @@ -8963,10 +10033,6 @@ aj aj aj aj -ab -ab -aj -aj aj aj mj @@ -8987,7 +10053,6 @@ kI kI aj aj -ab aj aj aj @@ -8997,12 +10062,17 @@ aj aj aj aj -aj -aj -aj -aj -aj -aj +ab +ad +ad +ad +ad +ad +ad +ad +ad +ad +ab aj aj aj @@ -9011,12 +10081,12 @@ aj aj aj ab +ad +ad +ad ab ab aj -ab -aj -aj aj aj aj @@ -9222,10 +10292,6 @@ aj aj aj aj -aj -aj -aj -aj aD OF wD @@ -9254,25 +10320,29 @@ aj aj aj aj -aj -aj -aj -aj -aj -aj -aj -aj -aj +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad aj aj aj aj ab -ab -ab -aj -aj -aj +ad +ad +ad +ad +ad +ad aj aj aj @@ -9479,10 +10549,6 @@ aj aj aj aj -aj -aj -aj -aj tj aD GF @@ -9505,6 +10571,22 @@ aj aj aj aj +aj +aj +aj +aj +ab +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad ab aj aj @@ -9513,27 +10595,15 @@ aj aj aj aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj +ab +ad +ad +ad ab ab aj aj aj -aj -aj -aj -aj "} (17,1,1) = {" aa @@ -9734,10 +10804,6 @@ aj aj aj aj -aj -aj -aj -aj aD qT ap @@ -9767,13 +10833,17 @@ aj aj aj aj -aj -aj -aj -aj -aj -aj -aj +ab +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad aj aj aj @@ -9783,9 +10853,9 @@ aj aj aj ab +ad +ad ab -aj -aj ab aj aj @@ -9991,10 +11061,6 @@ aj aj aj aj -ab -aj -aj -aj aD aq vw @@ -10019,7 +11085,21 @@ aj aj aj aj -ai +aj +aj +aj +aj +aj +aj +ad +ad +ad +ad +ad +ad +ad +ad +ad ab aj aj @@ -10031,18 +11111,8 @@ aj aj aj aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj +ad +ab aj aj aj @@ -10244,15 +11314,11 @@ an an an an -an -an -an -an -ab ab aj aj aj +aj Gp rj wh @@ -10275,24 +11341,26 @@ aq aj aj aj +aj +aj +aj +aj +aj +aj +ab +ad +ad +ad +ad +ad +ad +ad +ad +ad +aj +aj ab ai -ai -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj aj aj aj @@ -10300,10 +11368,12 @@ aj aj aj aj +ab aj aj aj aj +ab aj "} (20,1,1) = {" @@ -10501,13 +11571,9 @@ an an an an +ab an -an -an -an -an -an -an +aj aj aj tZ @@ -10532,32 +11598,36 @@ ap aj aj aj -ai -ai -ai -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj aj aj aj aj aj +ab +aj +aj +ad +ad +ad +ad +ad +ad +ab +aj +aj +aj +aj +ab aj aj aj aj aj +ab aj aj aj +ab aj aj aj @@ -10760,11 +11830,7 @@ an an an an -an -an -an -an -an +aj qT qT aq @@ -10789,19 +11855,20 @@ ap aj aj aj -ai +aj +aj +aj +aj +aj +aj +aj +ab +ab ad -ai -ai -aj -aj -aj -aj -aj -aj -aj -aj -aj +ad +ad +ad +ab aj aj aj @@ -10812,6 +11879,9 @@ aj aj aj aj +ab +ad +ab aj aj aj @@ -11017,11 +12087,7 @@ an an an an -an -an -an -an -an +ab qT NZ sF @@ -11047,8 +12113,14 @@ aj aj aj aj -ai -ab +aj +aj +aj +aj +aj +aj +aj +ad ab aj aj @@ -11064,10 +12136,8 @@ aj aj aj aj -aj -aj -aj -aj +ad +ad aj aj aj @@ -11274,11 +12344,7 @@ an an an an -an -an -an -an -an +ab qT qT GD @@ -11294,7 +12360,7 @@ aU bb Zk Ne -QR +hA by bL cc @@ -11305,7 +12371,11 @@ aj aj aj aj -ab +aj +aj +aj +aj +aj ab aj aj @@ -11315,8 +12385,8 @@ aj aj aj aj -aj -aj +ab +ab aj aj aj @@ -11532,10 +12602,6 @@ an an an an -an -an -an -an qT Dd sF @@ -11561,8 +12627,6 @@ aj aj aj aj -ab -ab aj aj aj @@ -11577,6 +12641,12 @@ aj aj aj aj +ai +ad +ai +aj +aj +aj aj aj aj @@ -11789,10 +12859,6 @@ an an an an -an -an -an -an qT qT aq @@ -11817,18 +12883,22 @@ aq aj aj aj -ab -ab +aj +aj +aj +aj +aj +aj +aj +aj +aj ab aj aj aj aj -aj -aj -aj -aj -aj +ab +ab aj aj aj @@ -12047,10 +13117,6 @@ an an an an -an -an -an -an aq Ss FO @@ -12074,19 +13140,23 @@ aq aj aj aj -ab -ab -ab -gJ -ab -ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj aj aj aj ai -ai -aj -aj +ab aj aj aj @@ -12304,10 +13374,6 @@ an an an an -an -an -an -an qT lO HA @@ -12325,25 +13391,11 @@ bm aq bB bM -ch +cA cA tZ aj aj -ab -ad -ai -fB -gK -fB -ai -ab -ab -ab -ad -ai -ai -ai aj aj aj @@ -12361,6 +13413,24 @@ aj aj aj aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (28,1,1) = {" aa @@ -12561,10 +13631,6 @@ an an an an -an -an -an -an qT tT WJ @@ -12586,20 +13652,24 @@ cg cA tZ aj -cQ -cQ -cQ -cQ -cR -Jl -cR -cM -cR -cR -cR -cM -ai -ai +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj aj aj aj @@ -12818,10 +13888,6 @@ an an an an -an -an -an -an aq oA Ts @@ -12843,22 +13909,26 @@ cB cC aq aj -cQ -az -az -cQ -fk -yR -fk -cM -fo -fE -fL -cM +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj ab aj aj aj +ab aj aj aj @@ -13075,10 +14145,6 @@ an an an an -an -an -an -an aq qT qT @@ -13100,18 +14166,15 @@ qT qT qT aj -cQ -dh -dk -TN -dT -ep -eL -cM -fs -fk -fU -cR +aj +aj +aj +aj +aj +aj +aj +aj +aj ab aj aj @@ -13119,11 +14182,18 @@ aj aj aj aj +ab +ai aj aj aj aj aj +ai +aj +aj +aj +aj aj aj aj @@ -13337,10 +14407,6 @@ an an an an -an -an -an -an aq tC JZ @@ -13357,31 +14423,35 @@ aj aj aj aj -cQ -di -gI -dP -dU -eq -eO -eQ -ft -fp -fP -cR +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj ab aj aj aj aj +ab aj aj aj aj -aj -aj -aj -aj +ab +ab aj aj aj @@ -13594,10 +14664,6 @@ an an an an -an -an -an -an aq ap gF @@ -13612,22 +14678,23 @@ aj aj aj aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj ab -ad -cQ -dj -dx -cQ -dX -er -eS -cM -fu -fk -fU -cR -ab -ai +aj +aj +aj +aj ai aj aj @@ -13641,6 +14708,9 @@ aj aj aj aj +ai +ab +aj aj aj aj @@ -13852,10 +14922,6 @@ an an an an -an -an -an -an aD aD ro @@ -13869,25 +14935,29 @@ aj aj aj aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj ab -ai -cQ -dg -dz -cQ -ed -Kb -eM -El -fv -fF -fX -cM -ai -ad -ai -ai -ab +aj +aj aj aj aj @@ -14111,10 +15181,6 @@ an an an an -an -an -an -an aD aD aD @@ -14126,29 +15192,33 @@ aj aj aj aj +aj +aj +aj +aj +aj +aj +aj +AE +aj +aj +aj +aj +aj +aj +AE +aj +aj +aj +ab +aj +aj +aj +aj ab +ad +ai ab -cQ -cQ -cQ -cQ -fc -er -vZ -cM -cM -cM -cM -cM -cM -cM -cM -cM -cM -ab -ab -aj -aj aj aj aj @@ -14368,10 +15438,6 @@ an an an an -an -an -an -an aD aD aD @@ -14384,28 +15450,32 @@ aj aj aj aj +aj +aj +aj ab -cM -db -dB -cM -fk -EG -on -cM -fe -fr -cM -fe -fr -cM -fe -fr -cM ab aj aj aj +AE +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +ai +ai +aj +aj aj aj aj @@ -14625,11 +15695,6 @@ an an an an -an -an -an -an -aD aD aD aD @@ -14641,24 +15706,18 @@ aj aj aj aj +aj +aj +aj +AE +aj +aj +aj +aj +aj +aj +aj ab -cR -dc -dC -WO -dT -Kb -Eg -cM -ff -aY -cM -ff -bi -cM -ff -br -cM aj aj aj @@ -14671,6 +15730,17 @@ aj aj aj aj +ab +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj aj aj aj @@ -14884,38 +15954,38 @@ an an an an -an -an -an -an aT aT aT an aD -aD +aj +aj +aj +aj +aj +aj +aj +aj +aj +AE +AE +aj +aj +AE +AE +ab +aj +aj +aj +AE aj aj aj aj ab -cR -de -dD -dR -ft -es -vZ -cM -fg -BD -cM -fH -BD -cM -fO -BD -cM +aj +aj aj aj aj @@ -15145,34 +16215,34 @@ an an an an -an -an -an -an -aD -aD aD aj aj -ai -ad -cM -df -dt -dQ -dX -er -sL -fa -fw -fG -fa -fw -gp -gq -fw -gt -cR +aj +aj +aj +aj +aj +aj +aj +aj +AE +AE +aj +aj +AE +AE +AE +aj +aj +ab +AE +AE +aj +aj +aj +aj +aj aj aj aj @@ -15403,39 +16473,39 @@ an an an an -an -an -an -an -an -an aj aj -ai -cM -cM -cM -cM -cM -eg -et -eN -gL -fi -pa -pa -fi -fN -Ej -gA -fp -cR +aj +aj ab aj aj aj aj aj +ab +AE +ab +aj +aj +ab +AE +AE +AE +AE +AE +AE +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj aj aj aj @@ -15658,39 +16728,39 @@ an an an an -an -an -an -an -an -an -an -an +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +AE +AE +cp +ch +ch +ch +xS +cp +cp +cp +cp +cp +AE +AE +aj +aj +AE +aj aj aj aj -cM -cS -do -dF -cM -eh -EG -on -cM -cM -dQ -dQ -cM -cM -BD -Nj -cM -cM -ai -ab -ab -ab aj aj aj @@ -15915,40 +16985,32 @@ an an an an -an -an -an -an -an -an -an ab aj aj aj -cM -cT -cV -dG -cM -ea -er +aj +aj +aj +aj +aj +AE +aj +AE +AE +AE +cp +El +eb +eb rV -cM -fx +QF +GO fz fY -gh -cM -gc -hz -cM -ai -ad -ai -ai -ab -ab +AE +AE +AE ab ab aj @@ -15959,6 +17021,14 @@ aj aj aj aj +aj +aj +aj +aj +aj +aj +aj +aj "} (42,1,1) = {" aa @@ -16173,37 +17243,32 @@ an an an an -an -an -an -an -an -an +aj +aj +aj +AE +aj ab +AE aj aj -aj -cM -cU -dp -dH +ab +AE +AE +AE +cp dS eb eu -Ej -PQ -fy -fy -fZ -fz -cM -ge -Tn -cM -ab -ai -ai -ab +ep +cp +xS +bC +bC +bC +bC +bC +bC ab ab aj @@ -16216,6 +17281,11 @@ aj aj aj aj +aj +aj +aj +aj +aj "} (43,1,1) = {" aa @@ -16428,37 +17498,36 @@ an an an an -an -an -an -an -an -an -an -an ab aj aj -ab -cM -cV -dq -dI -cM -ec -ev +aj +aj +aj +AE +AE +AE +AE +AE +AE +AE +AE +AE +xS +hz +eb +fk vZ eR -fz -fI +eb +bC ga gi -cM +tI BD -Zf -cM -aj -aj +bC +AE +AE aj aj aj @@ -16466,6 +17535,7 @@ aj aj aj aj +ab aj aj aj @@ -16685,41 +17755,41 @@ an an an an -an -an -an -an -an -an -an -ab ab aj aj -ab -cM -cW -dr -dr -cM -vq +aj +aj +AE +AE +cQ +cQ +cQ +cQ +cQ +bv +AE +bv +cp +cS +eb Kb eT WO -fA -fA +eb +bC gb gl -cM +bG Fe -bo -cM -aj -aj -aj +bC +AE +ab aj ab -ab +aj +aj +aj aj aj aj @@ -16938,40 +18008,41 @@ an an an an +an +an +an +an +aj +aj +aj +aj +aj ab -aj -aj -an -an -an -an -an -ab -ab -ab -aj -aj -aj -aj -aj +AE +cQ +AB +Ej +gL +cQ +mp +XI cM -cM -cM -cM -cM -fk +cp +dJ +eb er -vZ -cM +bi +eb fC -fz +bC gf gm -cM +Pu IK -tI -cM -aj +bC +AE +AE +ab aj aj aj @@ -16986,7 +18057,6 @@ aj aj aj aj -aj "} (46,1,1) = {" aa @@ -17189,51 +18259,46 @@ aj aj aj aj +aj +aj +aj +ab an an an an -an -aj -aj -aj -aj -aj -aj -aj -ab -ab -ab ab aj aj aj aj aj -aj -aj -aj -ab -ab -cR -fk +AE +AE +AE +cQ +fB +fw +eh +cQ +bo +cM +mp +cM +mp +cM ev bx -cM +fo fD -fK +bC gg gn -cM -cM -cM -cM -aj -aj -aj -aj -aj -aj +Tn +IK +bC +AE +AE aj aj ab @@ -17242,6 +18307,11 @@ aj aj aj aj +AE +aj +aj +aj +aj aj aj "} @@ -17461,31 +18531,31 @@ aj aj aj aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -ab -cR -ee +AE +AE +cQ +cQ +gh +cQ +cQ +JC +mp +bu +do +fN +cM ey -eU -cM -cR -cR -cR -cR -cM -ai -ai -ai -aj +bx +du +fy +bC +Zf +zN +em +fA +bC +AE +AE ab aj aj @@ -17493,9 +18563,9 @@ ab ab aj ab -ab -ab aj +AE +ab aj aj aj @@ -17717,43 +18787,43 @@ aj aj aj aj -aj -aj -aj -aj -ab -aj +AE +AE +AE +AE +AE +cO +AE +AE +cM +cM +Uh +cV +dG +cM +cp +fe +cp +cp +bC +Lr +cx +Lr +bC +bC +Wi ab aj aj +AE +AE aj -aj -aj -cR -cR -ex -cR -cR -ab -ab -ab -ab -ai -ai -ai -ab +AE aj aj aj aj ab -ab -ab -ai -ad -ad -ab -ab aj aj aj @@ -17972,49 +19042,49 @@ ai ai aj aj -aj -aj -aj +AE aj ab -ab -ab -ab -ab -ab -ab -aj -aj -aj -aj -cR +AE +AE +AE +AE +fX +gA +gA +gA +bP +fF +dD +dm +gv ez +dR +IZ +es +dp +br +dF +bg cR +JD +gJ +aj ab +AE +AE +AE +ab +AE +AE +ab +aj ab aj aj aj aj aj -aj -aj -aj -aj -aj -aj -aj -ab -ad -ad -ad -ad -ad -ai -ai -aj -aj -aj "} (50,1,1) = {" aa @@ -18230,45 +19300,45 @@ ab aj aj aj -aj -aj -ab -xC -xC -tb -xC -tb -xC -xC -ab -aj -aj -aj -cR +AE +AE +AE +bS +ec +ec +gq +AE +AE +cM +cM +EG +dq +dI +cM BT -cR +eA +eg +ea +eZ +eg +aI +fh +cl +cI +xM +AE +AE +AE +AE +AE +AE +AE +AE +AE +AE ab aj aj -aj -aj -aj -aj -aj -aj -aj -ab -aj -ab -ab -ad -ad -ad -ad -ad -ad -ad -ad ab aj aj @@ -18486,48 +19556,48 @@ ab aj aj aj +AE aj +AE +bS +gq +AE +AE +AE +AE aj -ab -ab -xC -Rs -Cf -JX -Vu -CF -xC +AE +cM +cW +dr +dr +mp +dx +fU +eU +eU +ek +eU +eU +gw +cM +AE +AE +AE +AE +AE +Oq +Oq +dB +Oq +Oq +Oq +Oq +AE ab aj aj aj -cR -BT -cR -ab -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -ab -ab -ad -ad -ad -ad -ad -ad -ad -ab -aj aj "} (52,1,1) = {" @@ -18742,50 +19812,50 @@ ai ab aj aj +AE ab -ab -aj -ab -ab -tb -NP -Wo -rM -Vu -IZ -xo -ab -ab -aj -aj -cR -BT -cR +AE +AE +cP +AE ab aj aj aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -ab -ad -ad -ad -ad -ad -ad -ad ab aj aj +mp +cM +cM +cM +ge +bI +eU +Ta +pQ +tK +sL +dU +cM +mp +cM +AE +AE +AE +Oq +dL +fI +di +aY +dN +dB +AE +AE +aj +aj +aj +aj "} (53,1,1) = {" aa @@ -18999,48 +20069,48 @@ ai ab aj ab -ab aj +ab +AE +AE +bQ +AE aj aj ab -xC -Iv -Cf -Cf -Vu -xM -xC ab ab -aj +ab +ab +ab +ab ab bN -UQ -bN -ab -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj +yq +el +eU +fg +QR +gp +eU +ed +gt +fL +cM +AE +AE +AE +Oq +ee +dd +dC +yp +cX +Oq +AE aj ab -ab -ad -ad -ai -ad -ab -ab +aj aj aj "} @@ -19259,47 +20329,47 @@ aj aj aj aj +ab +cH +aj aj ab -xC +ab xC tb -fJ +xC tb -xC -xC -ab -aj -aj +fc +xo ab bN -UQ -bN -ab +CF +dh +eU +fZ +fH +eQ +fb +cM +mp +yR +eL +ft +ft +ft +eM +bw +dk +eq +ew +eX +Oq +AE aj aj aj aj aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -ab -ab -ab -ab -ab -aj -aj -aj -aj "} (55,1,1) = {" aa @@ -19512,46 +20582,46 @@ am am ai aj -ab aj aj aj aj aj +dO +aj +aj ab -ab -bJ -gv -bN -ab -ab -aj -aj -aj +xC +xC +Cf +JX +Vu +Vu +xC ab bN -UQ -bN -ab -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -ab -ab -ab +yq +el +eU +cN +gd +gp +eU +EG +JC +cV +mp +AE +AE +AE +dB +ff +Iv +fP +en +az +Oq +AE aj aj aj @@ -19768,49 +20838,49 @@ am am am ai -ab +aj +aj ab aj aj aj +dT aj aj -aj +ab +tb +NP +Wo +rM +Vu +Vu +xC ab bN -eW -bN +yq +el +eU +fE +jK +XW +sL +uq +mp +cM +cM +AE +AE +AE +Oq +fu +et +dn +eN +fn +Oq ab aj -aj -aj -aj ab -bN -eB -bN -ab -ab -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -ab -aj -aj aj aj aj @@ -20025,48 +21095,48 @@ am am am am -ai -ab -aj -aj -aj -aj -aj -aj -bN -bN -gw -bN -bN ab aj aj ab -bN -bN -eA -bN -bN -ab ab aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj +dT aj ab -aj +ab +xC +xC +cm +Cf +Vu +gH +xC +ab +bN +yq +fm +eU +eU +bT +eU +eU +pa +cM +AE +AE +AE +ab +AE +Oq +Oq +dB +Oq +Oq +dB +Oq +AE +ab aj aj aj @@ -20283,47 +21353,47 @@ am am am am -ai -ai -ai aj aj +AE +AE +ab +cH aj -bq +aj +ab +ab +xC +tb +fJ +tb +bV +xo +ab bN -bP -cn -ct -bN -bq -bq -bq -bq -bN -ef +yq +el +zy +LK +LK eD +Gh ct -bN -bq +xl +AE +AE +ab +ab +ab +AE +AE +AE +AE +AE +AE +AE ab ab -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj aj aj aj @@ -20541,50 +21611,50 @@ am am am am -ai +aj +aj +AE +AE +zu +AE aj aj aj ab -bq -bw +bJ eW -cl -eW -cx -cD -cH -cn -du -dJ -xA -aN -eW -fb -bq +bN +ab +ab +ab +bN +yq +el +zy +Jl +Nj +oF +eK +SO +zy +zy +ab +ab +aj +ab +ab +AE +AE +AE +AE +AE ab aj aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj ab aj aj aj -aj -aj "} (60,1,1) = {" aa @@ -20800,42 +21870,42 @@ am ai aj aj +AE +AE +cP +AE aj aj -ab +dV +dV bN -bC -bQ -cm cE -Uh -cE -cY -cE -Uh -cE -Uh -eC -eP -fd +bN bq +Cw +AE +bN +yq +eP +zy +db +cT +cY +cT +dt +zy +xl +ab ab aj aj aj +ab +ab aj +ab aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj +ab aj aj aj @@ -21056,41 +22126,41 @@ am ai aj aj -aj -aj ab -ab -bN -bT -bR -cI +aj +bf +Rs +bf +jP +bf +dV cw dy +bU cF -cI VD -zu -VD -gd +bq +Cw +bq eH -eW -fh -bN +fa +zy +dg +dQ +Co +Qv +bH +bR +um +ab +ab ab aj aj aj aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj +ab +ab aj aj aj @@ -21313,44 +22383,44 @@ am ai aj aj -ai -ab +aj +aj bf +cU +dH +HT bf -bf -LO -bS -bF -bf +dA +bU cJ -bq -cN dl +dl +Mh dv dK ei eE eV fj -bN +TN +Ya +Ve +vq +dP +Cn +um +AE +aj +ab +aj +aj +aj ab aj aj aj aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj +ab aj aj aj @@ -21569,37 +22639,37 @@ am am am ai -ai -ai -ab +aj +aj +aj bf bp bD bE cs co -bf -cK -bq -bq -bN -bq -dV -el +co +dz +PQ +fv +fp +Ww +fx +bU eF -dV -bq -bq -ab +bU +LK +dj +sT +Xl +Gh +gK +ct +um +AE ab aj -aj -aj -aj -aj -aj -aj -aj +ab aj aj aj @@ -21826,35 +22896,35 @@ am am am am -ai ab ab -bg +aj +jP bt bY -Ww +bW +eS bU -cp -bf +dX cL -bq +fK da -dm -dw -dL +bq +bq +bq ej -eG -ct -tK -bN -ab -ab -aj -aj -aj -aj -aj -aj +bq +Cw +zy +fr +fO +Vg +vg +eC +bR +um +AE +AE aj aj aj @@ -22083,35 +23153,35 @@ am am am ai -aj -aj ab -bg -bt -bY -bH -bV -aI +aj +aj bf -bq -bq -cO -eW -eW -eW -xA +bf +jP +bf +bf +jP +eG +aN +bU +da +Cw +cK +dM +Qq eI -eZ +dM fl -bq -ab -ab -aj -aj -aj -aj -aj -aj +cn +cT +Co +cT +dw +zy +zy +AE +AE aj aj aj @@ -22342,26 +23412,32 @@ am ai aj aj -ab +aj bf -bu -bG -bI bX -eo +bX +bX +bX bf -ad +Dz +de +Dz +Dz bq -cP -eW -dM +Qq dW -AB -eJ bq -eX +Cw bq -ab +zy +Jl +dQ +cY +Qv +Nq +zy +zy +AE ab aj aj @@ -22378,12 +23454,6 @@ aj aj aj aj -ab -aj -aj -aj -aj -aj "} (67,1,1) = {" aa @@ -22599,26 +23669,31 @@ am ai aj aj -ab +aj bf -bf -bf -bg +eJ +ef +fs cj -bg bf -ai +fd +VV +eO +BE +Qq +DA bq -dd -eW -dA -dN -ek -eK -dV -fm bq -ab +AE +bq +xl +Ez +LK +vh +Dq +BH +zy +AE ab aj aj @@ -22635,11 +23710,6 @@ aj aj aj aj -ab -aj -aj -aj -aj aj "} (68,1,1) = {" @@ -22856,34 +23926,32 @@ am ai aj aj -ab -ab -ab +AE bf +Eg +ex bK ck cr -bf -ai -bq -cX -dn -bq -dV -en -dV -dV -fm -bq -ab -ab -aj -aj -aj -aj -aj -aj -aj +ii +on +dc +Dz +Nk +Dz +Dz +AE +AE +AE +zy +zy +um +um +um +zy +zy +AE +AE aj aj aj @@ -22898,6 +23966,8 @@ aj aj aj aj +aj +aj "} (69,1,1) = {" aa @@ -23111,39 +24181,39 @@ am am am ai -ai -aj -aj -ab ab +AE +AE bf +eo +eS bW cq -ew bf -ai -bq +UQ +xA +LO cZ ds dE -dO -em -dO -dO -fn -bq +kf ab ab ab -aj -aj -aj -aj -aj -aj -aj +AE +AE +AE +AE +AE +ab +ab aj ab +ab +aj +aj +aj +aj aj aj aj @@ -23368,45 +24438,45 @@ am am ai ab -ai -ai -aj -aj ab +AE +AE bf -bg dY -bg +dY +dY +dY bf -ai -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq +gI +df +dE +cD +fG +vT +cD ab ab ab -aj -aj -aj -aj ab -aj -aj -aj +AE +AE +AE +ab ab aj aj aj aj aj -ab +aj +aj +aj +aj +aj +aj +aj +aj +aj aj aj aj @@ -23626,23 +24696,21 @@ ai ab ab ab -ab -ab -ab -ab -bv -ab -gH -ab -bv -ai -ai -ab -ab -aj -aj -aj -aj +AE +AE +bf +bF +bF +bF +bF +bf +Dz +Dz +Dz +Dz +Yv +Yv +Dz ab ab ab @@ -23650,14 +24718,16 @@ ab ab ab aj +ab aj ab aj aj aj aj +aj ab -ab +aj aj aj aj @@ -23884,6 +24954,17 @@ ab ab ab ab +AE +AE +ab +ab +ab +ab +AE +AE +AE +AE +AE ab ab ab @@ -23893,7 +24974,13 @@ ab ab ab ab -ab +aj +aj +aj +aj +aj +aj +aj aj aj aj @@ -23902,26 +24989,9 @@ aj aj aj ab -ab -ab -ab -ab -aj -aj -aj -aj -aj aj aj ab -ab -aj -aj -aj -aj -aj -ab -aj aj aj aj @@ -24142,6 +25212,15 @@ ab ab ab ab +AE +AE +ab +ab +ab +AE +AE +AE +AE ab ab ab @@ -24151,25 +25230,6 @@ ab ab ab ab -aj -aj -aj -aj -aj -aj -aj -aj -ab -ab -ab -ab -aj -aj -ab -aj -aj -aj -aj ab ab aj @@ -24177,10 +25237,20 @@ aj aj aj ab +aj +aj +ab +aj +ab +aj +aj +aj ab ab aj aj +ab +aj aj aj "} @@ -24407,16 +25477,16 @@ ab ab ab ab -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab ab ab ab @@ -24430,13 +25500,13 @@ aj ab ab aj -aj +ab aj aj ab ab ab -aj +ab aj aj aj @@ -24663,20 +25733,20 @@ ab ab ab ab -aj -aj -aj -aj -aj -aj -aj -aj -aj +ab +ab +ab +ab +ab +ab +ab +ai ai ai ab ab ab +ab aj ab ab @@ -24694,7 +25764,7 @@ ab ab ab aj -aj +ab aj aj "} @@ -24920,13 +25990,13 @@ ab ab ab ab -aj -aj -aj -aj -aj -aj -aj +ab +ab +ab +ab +ab +ab +ai ai ai ai @@ -24940,7 +26010,7 @@ ab ab aj aj -aj +ab ab ab ab @@ -25189,7 +26259,7 @@ ai ai ai ai -ai +ab ab aj ab @@ -25207,9 +26277,9 @@ ab ab ab ab +ab aj -aj -aj +ab aj "} (78,1,1) = {" @@ -25454,7 +26524,7 @@ ab ab ab ab -aj +ab ab ab ab @@ -25465,7 +26535,7 @@ ab ab ab aj -aj +ab aj aj "} @@ -25978,7 +27048,7 @@ ab ab aj aj -aj +ab aj aj aj @@ -26236,7 +27306,7 @@ ab aj aj aj -aj +ab aj aj "} @@ -27006,7 +28076,7 @@ ab ab ab aj -aj +ab aj aj aj @@ -27262,11 +28332,11 @@ ab ab ab ab +ab aj aj aj -aj -aj +ab "} (86,1,1) = {" aa @@ -27520,7 +28590,7 @@ ab ab ab aj -aj +ab aj aj aj @@ -28292,7 +29362,7 @@ ab ab ab aj -aj +ab aj aj "} @@ -28806,8 +29876,8 @@ ab ab ab ab -aj -aj +ab +ab aj "} (92,1,1) = {" @@ -29577,7 +30647,7 @@ ab ab ab ab -aj +ab aj aj "} @@ -32148,7 +33218,7 @@ ab ab ab aj -aj +ab aj "} (105,1,1) = {" @@ -32404,7 +33474,7 @@ ab ab ab ab -aj +ab aj aj "} @@ -32662,8 +33732,8 @@ ab ab ab aj -aj -aj +ab +ab "} (107,1,1) = {" aa diff --git a/_maps/map_files/generic/centcomm.dmm b/_maps/map_files/generic/centcomm.dmm index 6088794d006..39d7f903f6f 100644 --- a/_maps/map_files/generic/centcomm.dmm +++ b/_maps/map_files/generic/centcomm.dmm @@ -11971,6 +11971,9 @@ icon_state = "snow" }, /area/holodeck/source_snowfield) +"UO" = ( +/turf/simulated/wall/indestructible/opsglass/limited_smooth, +/area/syndicate_mothership) "UT" = ( /obj/machinery/economy/vending/cola/free, /turf/simulated/floor/plasteel{ @@ -60454,9 +60457,9 @@ KR mI KY nB -BZ -BZ -BZ +UO +UO +UO KY rU sn @@ -60970,7 +60973,7 @@ ab ab BZ hG -BZ +UO iT rU sx @@ -61227,7 +61230,7 @@ ab ab BZ BY -BZ +UO lB KY KY diff --git a/code/__DEFINES/_init.dm b/code/__DEFINES/_init.dm index e7deaa481f9..5346b087c0d 100644 --- a/code/__DEFINES/_init.dm +++ b/code/__DEFINES/_init.dm @@ -4,6 +4,11 @@ // This exists so that world.Profile() is THE FIRST PROC TO RUN in the init sequence. // This allows us to get the real details of everything lagging at server start. world.Profile(PROFILE_START) + #if defined(ENABLE_BYOND_TRACY) && (DM_BUILD == 1589) + var/tracy_init = CALL_EXT("prof.dll", "init")() // Setup Tracy integration + if(tracy_init != "0") + CRASH("Tracy init error: [tracy_init]") + #endif // After that, the debugger is initialized. // Doing it this early makes it possible to set breakpoints in the New() // of things assigned to global variables or objects included in a compiled map file. diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index e968543612f..b878f39aafc 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -824,3 +824,7 @@ // /obj/machinery/door/airlock signals #define COMSIG_AIRLOCK_OPEN "airlock_open" #define COMSIG_AIRLOCK_CLOSE "airlock_close" + +// /datum/objective signals +///from datum/objective/proc/find_target() +#define COMSIG_OBJECTIVE_TARGET_FOUND "objective_target_found" diff --git a/code/__DEFINES/icon_smoothing.dm b/code/__DEFINES/icon_smoothing.dm index 14ae3addcd8..bcc1c8fa8af 100644 --- a/code/__DEFINES/icon_smoothing.dm +++ b/code/__DEFINES/icon_smoothing.dm @@ -23,7 +23,7 @@ DEFINE_BITFIELD(smoothing_flags, list( /*smoothing macros*/ -#define QUEUE_SMOOTH(thing_to_queue) if(thing_to_queue.smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) {SSicon_smooth.add_to_queue(thing_to_queue)} +#define QUEUE_SMOOTH(thing_to_queue) if((thing_to_queue.smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) && thing_to_queue.z) {SSicon_smooth.add_to_queue(thing_to_queue)} #define QUEUE_SMOOTH_NEIGHBORS(thing_to_queue) for(var/neighbor in orange(1, thing_to_queue)) {var/atom/atom_neighbor = neighbor; QUEUE_SMOOTH(atom_neighbor)} @@ -97,6 +97,7 @@ DEFINE_BITFIELD(smoothing_flags, list( #define SMOOTH_GROUP_BRASS_WALL S_OBJ(16) ///turf/simulated/wall/mineral/brass, /obj/structure/falsewall/brass #define SMOOTH_GROUP_REGULAR_WALLS S_OBJ(17) ///turf/simulated/wall, /obj/structure/falsewall #define SMOOTH_GROUP_REINFORCED_WALLS S_OBJ(18) ///turf/simulated/wall/r_wall, /obj/structure/falsewall/reinforced +#define SMOOTH_GROUP_CULT_WALLS S_OBJ(19) ///turf/simulated/wall/cult #define SMOOTH_GROUP_WINDOW_FULLTILE S_OBJ(21) ///turf/simulated/indestructible/fakeglass, /obj/structure/window/full/basic, /obj/structure/window/full/plasmabasic, /obj/structure/window/full/plasmareinforced, /obj/structure/window/full/reinforced #define SMOOTH_GROUP_WINDOW_FULLTILE_BRASS S_OBJ(22) ///obj/structure/window/brass/fulltile diff --git a/code/__HELPERS/icon_smoothing.dm b/code/__HELPERS/icon_smoothing.dm index 62b25d3d789..2caf0883727 100644 --- a/code/__HELPERS/icon_smoothing.dm +++ b/code/__HELPERS/icon_smoothing.dm @@ -152,8 +152,7 @@ DEFINE_BITFIELD(smoothing_junction, list( //do not use, use QUEUE_SMOOTH(atom) /atom/proc/smooth_icon() smoothing_flags &= ~SMOOTH_QUEUED - if(!z) //nullspace are not sending their best - stack_trace("[type] called smooth_icon() without being on a z-level") + if(!z) return if(smoothing_flags & SMOOTH_CORNERS) if(smoothing_flags & SMOOTH_DIAGONAL_CORNERS) diff --git a/code/__HELPERS/lists.dm b/code/__HELPERS/lists.dm index bff94ef67f0..739634d92f2 100644 --- a/code/__HELPERS/lists.dm +++ b/code/__HELPERS/lists.dm @@ -593,65 +593,6 @@ else min = mid+1 -/* -proc/dd_sortedObjectList(list/incoming) - /* - Use binary search to order by dd_SortValue(). - This works by going to the half-point of the list, seeing if the node in - question is higher or lower cost, then going halfway up or down the list - and checking again. This is a very fast way to sort an item into a list. - */ - var/list/sorted_list = new() - var/low_index - var/high_index - var/insert_index - var/midway_calc - var/current_index - var/current_item - var/current_item_value - var/current_sort_object_value - var/list/list_bottom - - var/current_sort_object - for(current_sort_object in incoming) - low_index = 1 - high_index = sorted_list.len - while(low_index <= high_index) - // Figure out the midpoint, rounding up for fractions. (BYOND rounds down, so add 1 if necessary.) - midway_calc = (low_index + high_index) / 2 - current_index = round(midway_calc) - if(midway_calc > current_index) - current_index++ - current_item = sorted_list[current_index] - - current_item_value = current_item:dd_SortValue() - current_sort_object_value = current_sort_object:dd_SortValue() - if(current_sort_object_value < current_item_value) - high_index = current_index - 1 - else if(current_sort_object_value > current_item_value) - low_index = current_index + 1 - else - // current_sort_object == current_item - low_index = current_index - break - - // Insert before low_index. - insert_index = low_index - - // Special case adding to end of list. - if(insert_index > sorted_list.len) - sorted_list += current_sort_object - continue - - // Because BYOND lists don't support insert, have to do it by: - // 1) taking out bottom of list, 2) adding item, 3) putting back bottom of list. - list_bottom = sorted_list.Copy(insert_index) - sorted_list.Cut(insert_index) - sorted_list += current_sort_object - sorted_list += list_bottom - return sorted_list -*/ - /proc/dd_sortedtextlist(list/incoming, case_sensitive = 0) // Returns a new list with the text values sorted. // Use binary search to order by sortValue. diff --git a/code/_compile_options.dm b/code/_compile_options.dm index d418f30c78d..6a14468ac8f 100644 --- a/code/_compile_options.dm +++ b/code/_compile_options.dm @@ -4,6 +4,11 @@ // Uncomment the following line to compile unit tests. // #define UNIT_TESTS +// Uncomment the following line to enable Tracy profiling. +// DO NOT DO THIS UNLESS YOU UNDERSTAND THE IMPLICATIONS +// Your data directory will grow by about a gigabyte every time you launch the server, as well as introducing potential instabilities over multiple BYOND versions. +// #define ENABLE_BYOND_TRACY + #ifdef CIBUILDING #define UNIT_TESTS diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 868cb3b3da4..a14671bd967 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -1195,10 +1195,7 @@ if("traitor") if(!(has_antag_datum(/datum/antagonist/traitor))) - var/datum/antagonist/traitor/T = new() - T.give_objectives = FALSE - T.give_uplink = FALSE - add_antag_datum(T) + add_antag_datum(/datum/antagonist/traitor) log_admin("[key_name(usr)] has traitored [key_name(current)]") message_admins("[key_name_admin(usr)] has traitored [key_name_admin(current)]") diff --git a/code/datums/spells/rod_form.dm b/code/datums/spells/rod_form.dm index 48c863f19e0..3670b320b8e 100644 --- a/code/datums/spells/rod_form.dm +++ b/code/datums/spells/rod_form.dm @@ -17,6 +17,10 @@ return new /datum/spell_targeting/self /obj/effect/proc_holder/spell/rod_form/cast(list/targets,mob/user = usr) + if(get_turf(user) != user.loc) + to_chat(user, "You cannot summon a rod in the ether, the spell fizzles out!") + revert_cast() + return FALSE for(var/mob/living/M in targets) var/turf/start = get_turf(M) var/obj/effect/immovablerod/wizard/W = new(start, get_ranged_target_turf(M, M.dir, (15 + spell_level * 3)), rod_delay) diff --git a/code/game/area/areas/mining.dm b/code/game/area/areas/mining.dm index 59bbcdb35da..255654fbc36 100644 --- a/code/game/area/areas/mining.dm +++ b/code/game/area/areas/mining.dm @@ -88,6 +88,11 @@ /area/mine/podbay name = "Mining Podbay" +/area/mine/airlock + name = "Mining Airlock" + +/area/mine/mechbay + name = "Mining Mechbay Storage" /**********************Lavaland Areas**************************/ diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 28c6cf8cabd..9325596dcaa 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -180,6 +180,7 @@ qdel(AA) alternate_appearances = null + REMOVE_FROM_SMOOTH_QUEUE(src) QDEL_NULL(reagents) invisibility = INVISIBILITY_MAXIMUM LAZYCLEARLIST(overlays) diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index 89c8aea2c73..db863ee96f0 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -74,10 +74,10 @@ knockdown_duration = 2 SECONDS /obj/item/restraints/legcuffs/bola/cult/throw_at(atom/target, range, speed, mob/thrower, spin, diagonals_first, datum/callback/callback) - . = ..() if(!iscultist(thrower)) thrower.visible_message("The bola glows, and boomarangs back at [thrower]!") throw_impact(thrower) + . = ..() /obj/item/restraints/legcuffs/bola/cult/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) if(iscultist(hit_atom)) diff --git a/code/game/gamemodes/miniantags/guardian/guardian.dm b/code/game/gamemodes/miniantags/guardian/guardian.dm index 109c679210c..41ba9251b66 100644 --- a/code/game/gamemodes/miniantags/guardian/guardian.dm +++ b/code/game/gamemodes/miniantags/guardian/guardian.dm @@ -43,6 +43,8 @@ var/bio_fluff_string = "Your scarabs fail to mutate. This shouldn't happen! Submit a bug report!" var/admin_fluff_string = "URK URF!"//the wheels on the bus... var/name_color = "white"//only used with protector shields for the time being + /// If true, it will not make a message on host when hit, or make an effect when deploying or recalling + var/stealthy_deploying = FALSE /mob/living/simple_animal/hostile/guardian/Initialize(mapload, mob/living/host) . = ..() @@ -92,9 +94,10 @@ if(iseffect(summoner.loc)) Recall(TRUE) else - new /obj/effect/temp_visual/guardian/phase/out(loc) + if(!stealthy_deploying) + new /obj/effect/temp_visual/guardian/phase/out(get_turf(src)) + new /obj/effect/temp_visual/guardian/phase(get_turf(summoner)) forceMove(summoner.loc) //move to summoner's tile, don't recall - new /obj/effect/temp_visual/guardian/phase(loc) /mob/living/simple_animal/hostile/guardian/proc/is_deployed() return loc != summoner @@ -139,7 +142,8 @@ summoner.adjustBruteLoss(damage) if(damage) to_chat(summoner, "Your [name] is under attack! You take damage!") - summoner.visible_message("Blood sprays from [summoner] as [src] takes damage!") + if(!stealthy_deploying) + summoner.visible_message("Blood sprays from [summoner] as [src] takes damage!") if(summoner.stat == UNCONSCIOUS) to_chat(summoner, "Your body can't take the strain of sustaining [src] in this condition, it begins to fall apart!") summoner.adjustCloneLoss(damage/2) @@ -169,8 +173,10 @@ return if(!summoner) return if(loc == summoner) - forceMove(get_turf(summoner)) - new /obj/effect/temp_visual/guardian/phase(loc) + var/turf/T = get_turf(summoner) + forceMove(T) + if(!stealthy_deploying) + new /obj/effect/temp_visual/guardian/phase(T) reset_perspective() cooldown = world.time + 30 @@ -178,7 +184,8 @@ if(!summoner || loc == summoner || (cooldown > world.time && !forced)) return if(!summoner) return - new /obj/effect/temp_visual/guardian/phase/out(get_turf(src)) + if(!stealthy_deploying) + new /obj/effect/temp_visual/guardian/phase/out(get_turf(src)) forceMove(summoner) buckled = null cooldown = world.time + 30 diff --git a/code/game/gamemodes/miniantags/guardian/types/assassin.dm b/code/game/gamemodes/miniantags/guardian/types/assassin.dm index 093ebbf5b57..45e7a8f039b 100644 --- a/code/game/gamemodes/miniantags/guardian/types/assassin.dm +++ b/code/game/gamemodes/miniantags/guardian/types/assassin.dm @@ -1,22 +1,29 @@ /mob/living/simple_animal/hostile/guardian/assassin - melee_damage_lower = 15 - melee_damage_upper = 15 - armour_penetration_percentage = 0 - playstyle_string = "As an Assassin type you do medium damage and have no damage resistance, but can enter stealth, massively increasing the damage of your next attack and causing it to ignore armor. Stealth is broken when you attack or take damage." + melee_damage_lower = 20 + melee_damage_upper = 20 + damage_transfer = 0.6 + playstyle_string = "As an Assassin type you do medium damage and have moderate damage resistance, but can enter stealth, massively increasing the damage of your next attack and causing it to ignore armor. Stealth is broken when you attack or take damage." magic_fluff_string = "..And draw the Space Ninja, a lethal, invisible assassin." tech_fluff_string = "Boot sequence complete. Assassin modules loaded. Holoparasite swarm online." bio_fluff_string = "Your scarab swarm finishes mutating and stirs to life, capable of sneaking and stealthy attacks." + stealthy_deploying = TRUE + attacktext = "slashes" + attack_sound = 'sound/weapons/bladeslice.ogg' var/toggle = FALSE var/stealthcooldown = 0 - var/default_stealth_cooldown = 16 SECONDS + var/default_stealth_cooldown = 10 SECONDS var/obj/screen/alert/canstealthalert var/obj/screen/alert/instealthalert +/mob/living/simple_animal/hostile/guardian/assassin/Initialize(mapload, mob/living/host) + . = ..() + remove_from_all_data_huds() + if(loc == summoner && toggle) + ToggleMode(0) + /mob/living/simple_animal/hostile/guardian/assassin/Life(seconds, times_fired) . = ..() updatestealthalert() - if(loc == summoner && toggle) - ToggleMode(0) /mob/living/simple_animal/hostile/guardian/assassin/Stat() ..() @@ -30,15 +37,19 @@ if(toggle && (isliving(target) || istype(target, /obj/structure/window) || istype(target, /obj/structure/grille))) ToggleMode(1) +/mob/living/simple_animal/hostile/guardian/assassin/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect) + if(!no_effect && !visual_effect_icon) + visual_effect_icon = ATTACK_EFFECT_CLAW + return ..() + /mob/living/simple_animal/hostile/guardian/assassin/adjustHealth(amount, updating_health = TRUE) . = ..() if(. > 0 && toggle) ToggleMode(1) -/mob/living/simple_animal/hostile/guardian/assassin/Recall() - ..() - if(toggle) - ToggleMode(0) +/mob/living/simple_animal/hostile/guardian/assassin/Manifest() + . = ..() + ToggleMode(FALSE) /mob/living/simple_animal/hostile/guardian/assassin/ToggleMode(forced = 0) if(toggle) @@ -58,17 +69,16 @@ toggle = FALSE else if(stealthcooldown <= world.time) if(loc == summoner) - to_chat(src, "You have to be manifested to enter stealth!") + to_chat(src, "You automatically deploy stealthed!") return melee_damage_lower = 50 melee_damage_upper = 50 armour_penetration_percentage = 100 obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE - new /obj/effect/temp_visual/guardian/phase/out(get_turf(src)) - alpha = 15 + alpha = 10 if(!forced) - to_chat(src, "You enter stealth, empowering your next attack.") + to_chat(src, "You enter stealth, becoming mostly invisible, empowering your next attack.") updatestealthalert() toggle = TRUE else if(!forced) diff --git a/code/game/gamemodes/miniantags/revenant/revenant.dm b/code/game/gamemodes/miniantags/revenant/revenant.dm index e576920c2a2..57955f0046f 100644 --- a/code/game/gamemodes/miniantags/revenant/revenant.dm +++ b/code/game/gamemodes/miniantags/revenant/revenant.dm @@ -328,7 +328,7 @@ continue var/mob/living/simple_animal/revenant/R = M.current total_essence += R.essence_accumulated - if(total_essence >= targetAmount) + if(total_essence < targetAmount) return FALSE return TRUE diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index 20d8d8463f9..2d6b8ac9c63 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -90,6 +90,8 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective) if(possible_targets.len > 0) target = pick(possible_targets) + SEND_SIGNAL(src, COMSIG_OBJECTIVE_TARGET_FOUND, target) + /** * Called when the objective's target goes to cryo. */ @@ -348,23 +350,54 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective) /datum/objective/escape/escape_with_identity - var/target_real_name // Has to be stored because the target's real_name can change over the course of the round + /// Stored because the target's `[mob/var/real_name]` can change over the course of the round. + var/target_real_name + /// If the objective has an assassinate objective tied to it. + var/has_assassinate_objective = FALSE + +/datum/objective/escape/escape_with_identity/New(text, datum/objective/assassinate/assassinate) + ..() + if(!assassinate) + return + target = assassinate.target + target_real_name = assassinate.target.current.real_name + explanation_text = "Escape on the shuttle or an escape pod with the identity of [target_real_name], the [target.assigned_role] while wearing [target.p_their()] identification card." + has_assassinate_objective = TRUE + RegisterSignal(assassinate, COMSIG_OBJECTIVE_TARGET_FOUND, PROC_REF(assassinate_found_target)) + +/datum/objective/escape/escape_with_identity/is_invalid_target(datum/mind/possible_target) + if(..() || !possible_target.current.client) + return TRUE + // If the target is geneless, then it's an invalid target. + return HAS_TRAIT(possible_target.current, TRAIT_GENELESS) /datum/objective/escape/escape_with_identity/find_target() - var/list/possible_targets = list() //Copypasta because NO_DNA races, yay for snowflakes. - for(var/datum/mind/possible_target in SSticker.minds) - if(possible_target != owner && ishuman(possible_target.current) && (possible_target.current.stat != DEAD) && possible_target.current.client) - var/mob/living/carbon/human/H = possible_target.current - if(!HAS_TRAIT(H, TRAIT_GENELESS)) - possible_targets += possible_target - if(possible_targets.len > 0) - target = pick(possible_targets) + ..() if(target && target.current) target_real_name = target.current.real_name explanation_text = "Escape on the shuttle or an escape pod with the identity of [target_real_name], the [target.assigned_role] while wearing [target.p_their()] identification card." else explanation_text = "Free Objective" +/datum/objective/escape/escape_with_identity/proc/assassinate_found_target(datum/source, datum/mind/new_target) + SIGNAL_HANDLER + if(new_target) + target_real_name = new_target.current.real_name + return + // The assassinate objective was unable to find a new target after the old one cryo'd as was qdel'd. We're on our own. + find_target() + has_assassinate_objective = FALSE + +/datum/objective/escape/escape_with_identity/on_target_cryo() + if(has_assassinate_objective) + return // Our assassinate objective will handle this. + ..() + +/datum/objective/escape/escape_with_identity/post_target_cryo() + if(has_assassinate_objective) + return // Our assassinate objective will handle this. + ..() + // This objective should only be given to a single owner since only 1 person can have the ID card of the target. // We're fine to use `owner` instead of `get_owners()`. /datum/objective/escape/escape_with_identity/check_completion() diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index c74a1ab3cf5..69821541a19 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -156,6 +156,9 @@ if(!is_authenticated(usr)) to_chat(usr, "Access denied.") return + if(SSticker.current_state == GAME_STATE_FINISHED) + to_chat(usr, "Access denied, borgs are no longer your station's property.") + return switch(action) if("arm") // Arms the emergency self-destruct system if(issilicon(usr)) diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index df571d84dc4..004fe0a6244 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -736,6 +736,7 @@ GLOBAL_LIST_EMPTY(turret_icons) A.current = T A.yo = U.y - T.y A.xo = U.x - T.x + A.starting = loc A.fire() else A.throw_at(target, scan_range, 1) diff --git a/code/game/machinery/vendors/vending.dm b/code/game/machinery/vendors/vending.dm index fe109164529..7470e1d1373 100644 --- a/code/game/machinery/vendors/vending.dm +++ b/code/game/machinery/vendors/vending.dm @@ -100,7 +100,7 @@ var/shoot_chance = 2 /// If true, enforce access checks on customers. Disabled by messing with wires. - var/scan_id + var/scan_id = TRUE /// Holder for a coin inserted into the vendor var/obj/item/coin/coin var/datum/wires/vending/wires diff --git a/code/game/objects/effects/anomalies.dm b/code/game/objects/effects/anomalies.dm index c9e2d632fe8..1fe60affc22 100644 --- a/code/game/objects/effects/anomalies.dm +++ b/code/game/objects/effects/anomalies.dm @@ -98,8 +98,19 @@ icon_state = "shield2" density = FALSE var/boing = FALSE + var/knockdown = FALSE aSignal = /obj/item/assembly/signaler/anomaly/grav +/obj/effect/anomaly/grav/Initialize(mapload, new_lifespan, _drops_core = TRUE, event_spawned = TRUE) + . = ..() + if(!event_spawned) //So an anomaly in the hallway is assured to have some risk to it, but not make sm / vetus too much pain + return + for(var/I in 1 to 3) + if(prob(75)) + new /obj/item/stack/rods(loc) + if(prob(75)) + new /obj/item/shard(loc) + /obj/effect/anomaly/grav/anomalyEffect() ..() boing = TRUE @@ -112,7 +123,7 @@ if(!M.mob_negates_gravity()) step_towards(M,src) for(var/obj/O in range(0, src)) - if(!O.anchored && O.loc != src) // so it cannot throw the anomaly core + if(!O.anchored && O.loc != src && O.move_resist < MOVE_FORCE_OVERPOWERING) // so it cannot throw the anomaly core or super big things var/mob/living/target = locate() in view(4, src) if(target && !target.stat) O.throw_at(target, 5, 10, dodgeable = FALSE) @@ -129,7 +140,10 @@ /obj/effect/anomaly/grav/proc/gravShock(mob/living/A) if(boing && isliving(A) && !A.stat) - A.Weaken(4 SECONDS) + if(!knockdown) + A.Weaken(4 SECONDS) + else + A.KnockDown(4 SECONDS) //You know, maybe hard stuns in a megafauna fight are a bad idea. var/atom/target = get_edge_target_turf(A, get_dir(src, get_step_away(A, src))) A.throw_at(target, 5, 1) boing = FALSE @@ -147,6 +161,7 @@ var/zap_flags = ZAP_MOB_DAMAGE | ZAP_OBJ_DAMAGE var/zap_range = 5 var/power = 5000 + var/knockdown = FALSE /obj/effect/anomaly/flux/Initialize(mapload, new_lifespan, drops_core = TRUE, _explosive = TRUE) . = ..() @@ -175,7 +190,10 @@ if(canshock && istype(M)) canshock = FALSE //Just so you don't instakill yourself if you slam into the anomaly five times in a second. M.electrocute_act(shockdamage, name, flags = SHOCK_NOGLOVES) - M.Weaken(explosive ? 6 SECONDS : 3 SECONDS) //Back to being deadly if you touch it, rather than just being able to crawl out of it. Non explosive ones less deadly, since you can't loot them / vetus + if(!knockdown) + M.Weaken(explosive ? 6 SECONDS : 3 SECONDS) //Back to being deadly if you touch it, rather than just being able to crawl out of it. Non explosive ones less deadly, since you can't loot them + else + M.KnockDown(3 SECONDS) /obj/effect/anomaly/flux/detonate() if(explosive) diff --git a/code/game/objects/items/decorations.dm b/code/game/objects/items/decorations.dm index 8e07a023d4b..e5949ec5b7f 100644 --- a/code/game/objects/items/decorations.dm +++ b/code/game/objects/items/decorations.dm @@ -214,7 +214,6 @@ //Decorative structures /////// - /obj/structure/decorative_structures icon = 'icons/obj/decorations.dmi' icon_state = "" @@ -222,6 +221,13 @@ anchored = FALSE max_integrity = 100 +/obj/structure/decorative_structures/wrench_act(mob/user, obj/item/I) + . = TRUE + add_fingerprint(user) + if(!I.tool_use_check(user, 0)) + return + default_unfasten_wrench(user, I, 0) + /obj/structure/decorative_structures/metal flags = CONDUCT diff --git a/code/game/objects/items/flag.dm b/code/game/objects/items/flag.dm index 224f86a3e40..9e7a6122ce5 100644 --- a/code/game/objects/items/flag.dm +++ b/code/game/objects/items/flag.dm @@ -195,6 +195,16 @@ desc = "A flag proudly boasting the logo of the cultists, sworn enemies of NT." icon_state = "cultflag" +/obj/item/flag/ussp + name = "\improper USSP flag" + desc = "A flag proudly boasting the logo of the USSP, a noticable faction in the galaxy." + icon_state = "usspflag" + +/obj/item/flag/solgov + name = "\improper Trans-Solar Federation flag" + desc = "A flag proudly boasting the logo of the SolGov, allied to NT government originated from Earth." + icon_state = "solgovflag" + //Chameleon /obj/item/flag/chameleon diff --git a/code/game/objects/items/weapons/implants/implant_traitor.dm b/code/game/objects/items/weapons/implants/implant_traitor.dm index 387635627bb..17d90673765 100644 --- a/code/game/objects/items/weapons/implants/implant_traitor.dm +++ b/code/game/objects/items/weapons/implants/implant_traitor.dm @@ -11,7 +11,7 @@ /obj/item/implant/traitor/implant(mob/living/carbon/human/mindslave_target, mob/living/carbon/human/user) // Check `activated` here so you can't just keep taking it out and putting it back into other people. - if(!..() || activated || !istype(mindslave_target) || !istype(user)) // Both the target and the user need to be human. + if(activated || !istype(mindslave_target) || !istype(user)) // Both the target and the user need to be human. return FALSE // If the target is catatonic or doesn't have a mind, return. @@ -24,7 +24,6 @@ mindslave_target.visible_message( "[mindslave_target] seems to resist the bio-chip!", \ "You feel a strange sensation in your head that quickly dissipates.") - removed(mindslave_target) qdel(src) return FALSE @@ -32,7 +31,6 @@ if(mindslave_target == user) to_chat(user, "Making yourself loyal to yourself was a great idea! Perhaps even the best idea ever! Actually, you just feel like an idiot.") user.adjustBrainLoss(20) - removed(mindslave_target) qdel(src) return FALSE @@ -40,7 +38,7 @@ mindslave_target.mind.add_antag_datum(new /datum/antagonist/mindslave(user.mind)) mindslave_UID = mindslave_target.mind.UID() log_admin("[key_name_admin(user)] has mind-slaved [key_name_admin(mindslave_target)].") - return TRUE + return ..() /obj/item/implant/traitor/removed(mob/target) . = ..() diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index 55f7af96cee..3d304cf2945 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -59,7 +59,7 @@ max_combined_w_class = 35 resistance_flags = FIRE_PROOF flags_2 = NO_MAT_REDEMPTION_2 - cant_hold = list(/obj/item/storage/backpack/holding) + cant_hold = list(/obj/item/storage/backpack, /obj/item/storage/belt/bluespace) armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 60, ACID = 50) /obj/item/storage/backpack/holding/attackby(obj/item/W, mob/user, params) @@ -356,16 +356,65 @@ new /obj/item/crowbar(src) /* - * Duffelbags - My thanks to MrSnapWalk for the original icon and Neinhaus for the job variants - Dave. + * Duffelbags */ /obj/item/storage/backpack/duffel name = "duffelbag" - desc = "A large grey duffelbag designed to hold more items than a regular bag." + desc = "A large grey duffelbag designed to hold more items than a regular bag. It slows you down when unzipped." icon_state = "duffel" item_state = "duffel" max_combined_w_class = 30 - slowdown = 1 + /// Is the bag zipped up? + var/zipped = TRUE + /// How long it takes to toggle the zip state of this bag + var/zip_time = 0.7 SECONDS + +/obj/item/storage/backpack/duffel/examine(mob/user) + . = ..() + . += "It is currently [zipped ? "zipped" : "unzipped"]. Alt+Shift+Click to [zipped ? "un-" : ""]zip it!" + +/obj/item/storage/backpack/duffel/AltShiftClick(mob/user) + . = ..() + handle_zipping(user) + +/obj/item/storage/backpack/duffel/proc/handle_zipping(mob/user) + if(!zip_time || do_after(user, zip_time, target = src)) + playsound(src, 'sound/items/zip.ogg', 75, TRUE) + zipped = !zipped + + if(!zipped && zip_time) // Handle slowdown and stuff now that we just zipped it + slowdown = 1 + show_to(user) + return + + slowdown = 0 + hide_from_all() + for(var/obj/item/storage/container in src) + container.hide_from_all() // Hide everything inside the bag too + +// The following three procs handle refusing access to contents if the duffel is zipped + +/obj/item/storage/backpack/duffel/handle_item_insertion(obj/item/I, prevent_warning) + if(zipped) + to_chat(usr, "[src] is zipped shut!") + return FALSE + + return ..() + +/obj/item/storage/backpack/duffel/remove_from_storage(obj/item/I, atom/new_location) + if(zipped) + to_chat(usr, "[src] is zipped shut!") + return FALSE + + return ..() + +/obj/item/storage/backpack/duffel/show_to(mob/user) + if(zipped) + to_chat(usr, "[src] is zipped shut!") + return FALSE + + return ..() /obj/item/storage/backpack/duffel/syndie name = "suspicious looking duffelbag" @@ -374,7 +423,7 @@ item_state = "duffel-syndiammo" origin_tech = "syndicate=1" silent = TRUE - slowdown = 0 + zip_time = 0 resistance_flags = FIRE_PROOF /obj/item/storage/backpack/duffel/syndie/med diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index a34b0cbc150..a5cf04a9b9a 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -609,6 +609,7 @@ icon = 'icons/obj/cigarettes.dmi' icon_state = "matchbox" item_state = "matchbox" + base_icon_state = "matchbox" storage_slots = 10 w_class = WEIGHT_CLASS_TINY max_w_class = WEIGHT_CLASS_TINY @@ -627,6 +628,18 @@ playsound(user.loc, 'sound/goonstation/misc/matchstick_light.ogg', 50, 1) return +/obj/item/storage/box/matches/update_icon_state() + . = ..() + switch(length(contents)) + if(10) + icon_state = base_icon_state + if(5 to 9) + icon_state = "[base_icon_state]_almostfull" + if(1 to 4) + icon_state = "[base_icon_state]_almostempty" + if(0) + icon_state = "[base_icon_state]_e" + /obj/item/storage/box/autoinjectors name = "box of injectors" desc = "Contains autoinjectors." diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index 9dd44b8e65f..abb6c7ad622 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -212,6 +212,13 @@ if(user.s_active == src) user.s_active = null +/** + * Hides the current container interface from all viewers. + */ +/obj/item/storage/proc/hide_from_all() + for(var/mob/M in mobs_viewing) + hide_from(M) + /** * Checks all mobs currently viewing the storage inventory, and hides it if they shouldn't be able to see it. */ diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm index 5020fda9c87..147fb147bf0 100644 --- a/code/game/objects/structures/lattice.dm +++ b/code/game/objects/structures/lattice.dm @@ -91,6 +91,14 @@ C.deconstruct() ..() +/obj/structure/lattice/catwalk/mining + name = "reinforced catwalk" + desc = "A heavily reinforced catwalk used to build bridges in hostile environments. It doesn't look like anything could make this budge." + resistance_flags = INDESTRUCTIBLE + +/obj/structure/lattice/catwalk/mining/deconstruction_hints(mob/user) + return + /obj/structure/lattice/catwalk/clockwork name = "clockwork catwalk" icon = 'icons/obj/smooth_structures/catwalk_clockwork.dmi' diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index 493e41ab4c6..98afc59cbec 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -120,7 +120,7 @@ curse(user) if("Body") - var/list/race_list = list("Human", "Tajaran", "Skrell", "Unathi", "Diona", "Vulpkanin") + var/list/race_list = list("Human", "Tajaran", "Skrell", "Unathi", "Diona", "Vulpkanin", "Nian") for(var/species in GLOB.whitelisted_species) if(can_use_species(H, species)) race_list += species diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 9a047c4c69f..a3775a875be 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -449,6 +449,11 @@ setDir(ini_dir) move_update_air(T) +/obj/structure/window/force_pushed(atom/movable/pusher, force = MOVE_FORCE_DEFAULT, direction) + . = ..() + anchored = FALSE + QUEUE_SMOOTH_NEIGHBORS(src) + /obj/structure/window/CanAtmosPass(turf/T) if(!anchored || !density) return TRUE diff --git a/code/game/turfs/simulated/walls_indestructible.dm b/code/game/turfs/simulated/walls_indestructible.dm index 03effb0026f..b5bfda3ddb3 100644 --- a/code/game/turfs/simulated/walls_indestructible.dm +++ b/code/game/turfs/simulated/walls_indestructible.dm @@ -196,6 +196,10 @@ underlays += mutable_appearance('icons/obj/structures.dmi', "grille") underlays += mutable_appearance('icons/turf/floors.dmi', "plating") +/turf/simulated/wall/indestructible/opsglass/limited_smooth + smoothing_groups = list(SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUM) + canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUM) + /turf/simulated/wall/indestructible/rock name = "dense rock" desc = "An extremely densely-packed rock, most mining tools or explosives would never get through this." diff --git a/code/game/turfs/simulated/walls_misc.dm b/code/game/turfs/simulated/walls_misc.dm index 4f17c4ee48b..8a04d251ab0 100644 --- a/code/game/turfs/simulated/walls_misc.dm +++ b/code/game/turfs/simulated/walls_misc.dm @@ -5,7 +5,8 @@ icon_state = "cult_wall-0" base_icon_state = "cult_wall" smoothing_flags = SMOOTH_BITMASK - canSmoothWith = null + smoothing_groups = list(SMOOTH_GROUP_SIMULATED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_CULT_WALLS) + canSmoothWith = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_REGULAR_WALLS, SMOOTH_GROUP_REINFORCED_WALLS) sheet_type = /obj/item/stack/sheet/runed_metal sheet_amount = 1 girder_type = /obj/structure/girder/cult diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 88f79c93791..712e7df07ef 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -202,7 +202,7 @@ // Removes all signs of lattice on the pos of the turf -Donkieyo /turf/proc/RemoveLattice() var/obj/structure/lattice/L = locate(/obj/structure/lattice, src) - if(L) + if(L && !(L.resistance_flags & INDESTRUCTIBLE)) qdel(L) /turf/proc/dismantle_wall(devastated = FALSE, explode = FALSE) diff --git a/code/game/world.dm b/code/game/world.dm index 59f53b8c02c..cbeb8144f55 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -299,4 +299,7 @@ GLOBAL_LIST_EMPTY(world_topic_handlers) rustg_close_async_http_client() // Close the HTTP client. If you dont do this, youll get phantom threads which can crash DD from memory access violations disable_auxtools_debugger() // Disables the debugger if running. See above comment rustg_redis_disconnect() // Disconnects the redis connection. See above. + #ifdef ENABLE_BYOND_TRACY + CALL_EXT("prof.dll", "destroy")() // Setup Tracy integration + #endif ..() diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index 4b5e077d9ff..46ed68bf5b6 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -510,13 +510,15 @@ var/count_eggs = 0 var/count_spiderlings = 0 + var/count_infected = 0 for(var/obj/structure/spider/eggcluster/terror_eggcluster/E in GLOB.ts_egg_list) if(is_station_level(E.z)) count_eggs += E.spiderling_number for(var/obj/structure/spider/spiderling/terror_spiderling/L in GLOB.ts_spiderling_list) if(!L.stillborn && is_station_level(L.z)) count_spiderlings += 1 - dat += "
Growing TS on-station: [count_eggs] egg[count_eggs != 1 ? "s" : ""], [count_spiderlings] spiderling[count_spiderlings != 1 ? "s" : ""].
" + count_infected = length(GLOB.ts_infected_list) + dat += "
Growing TS on-station: [count_eggs] egg\s, [count_spiderlings] spiderling\s, [count_infected] infected
" if(SSticker.mode.ert.len) dat += check_role_table("ERT", SSticker.mode.ert) diff --git a/code/modules/antagonists/changeling/datum_changeling.dm b/code/modules/antagonists/changeling/datum_changeling.dm index cc971efe0d2..096537992c6 100644 --- a/code/modules/antagonists/changeling/datum_changeling.dm +++ b/code/modules/antagonists/changeling/datum_changeling.dm @@ -151,11 +151,8 @@ var/mob/living/carbon/human/H = kill_objective.target?.current if(!(locate(/datum/objective/escape) in owner.get_all_objectives()) && H && !HAS_TRAIT(H, TRAIT_GENELESS)) - var/datum/objective/escape/escape_with_identity/identity_theft = new + var/datum/objective/escape/escape_with_identity/identity_theft = new(assassinate = kill_objective) identity_theft.owner = owner - identity_theft.target = kill_objective.target - identity_theft.target_real_name = kill_objective.target.current.real_name - identity_theft.explanation_text = "Escape on the shuttle or an escape pod with the identity of [identity_theft.target_real_name], the [identity_theft.target.assigned_role] while wearing [identity_theft.target.p_their()] identification card." objectives += identity_theft if(!(locate(/datum/objective/escape) in owner.get_all_objectives())) diff --git a/code/modules/antagonists/changeling/evolution_menu.dm b/code/modules/antagonists/changeling/evolution_menu.dm index 8a8adac784e..6a2eea77cb8 100644 --- a/code/modules/antagonists/changeling/evolution_menu.dm +++ b/code/modules/antagonists/changeling/evolution_menu.dm @@ -81,6 +81,8 @@ return TRUE /datum/action/changeling/evolution_menu/proc/try_purchase_power(power_type) + if(!(power_type in cling.purchaseable_powers)) + return FALSE if(power_type in purchased_abilities) to_chat(owner, "We have already evolved this ability!") return FALSE diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm index 30facfa6774..542f74f94db 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm @@ -16,13 +16,14 @@ max_integrity = 350 armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 0, BIO = 100, RAD = 100, FIRE = 30, ACID = 30) var/temperature_archived + var/current_heat_capacity = 50 + var/mob/living/carbon/occupant = null - var/obj/item/reagent_containers/glass/beaker = null /// Holds two bitflags, AUTO_EJECT_DEAD and AUTO_EJECT_HEALTHY. Used to determine if the cryo cell will auto-eject dead and/or completely healthy patients. var/auto_eject_prefs = AUTO_EJECT_HEALTHY | AUTO_EJECT_DEAD - - var/next_trans = 0 - var/current_heat_capacity = 50 + var/obj/item/reagent_containers/glass/beaker = null + var/last_injection + var/injection_cooldown = 34 SECONDS var/efficiency var/running_bob_animation = FALSE // This is used to prevent threads from building up if update_icons is called multiple times @@ -46,7 +47,7 @@ /obj/machinery/atmospherics/unary/cryo_cell/power_change() ..() - if(!(stat & (BROKEN|NOPOWER))) + if(!(stat & (BROKEN | NOPOWER))) set_light(2) else set_light(0) @@ -161,13 +162,13 @@ /obj/machinery/atmospherics/unary/cryo_cell/process() ..() - if(!occupant) + if(!on || !occupant) return if((auto_eject_prefs & AUTO_EJECT_DEAD) && occupant.stat == DEAD) auto_eject(AUTO_EJECT_DEAD) return - if((auto_eject_prefs & AUTO_EJECT_HEALTHY) && !occupant.has_organic_damage() && !occupant.has_mutated_organs()) + if((auto_eject_prefs & AUTO_EJECT_HEALTHY) && !(occupant.has_organic_damage() || occupant.has_mutated_organs())) auto_eject(AUTO_EJECT_HEALTHY) return @@ -178,9 +179,7 @@ /obj/machinery/atmospherics/unary/cryo_cell/process_atmos() ..() - if(!node) - return - if(!on) + if(!node || !on) return if(air_contents) @@ -262,7 +261,7 @@ /obj/machinery/atmospherics/unary/cryo_cell/ui_act(action, params) if(..() || usr == occupant) return - if(stat & (NOPOWER|BROKEN)) + if(stat & (NOPOWER | BROKEN)) return . = TRUE @@ -393,30 +392,28 @@ /obj/machinery/atmospherics/unary/cryo_cell/proc/process_occupant() if(air_contents.total_moles() < 10) return - if(occupant) - if(occupant.stat == 2 || (occupant.health >= 100 && !occupant.has_mutated_organs())) //Why waste energy on dead or healthy people - occupant.bodytemperature = T0C - return - occupant.bodytemperature += 2*(air_contents.temperature - occupant.bodytemperature)*current_heat_capacity/(current_heat_capacity + air_contents.heat_capacity()) - occupant.bodytemperature = max(occupant.bodytemperature, air_contents.temperature) // this is so ugly i'm sorry for doing it i'll fix it later i promise - if(occupant.bodytemperature < T0C) - var/stun_time = (max(5 / efficiency, (1 / occupant.bodytemperature) * 2000/efficiency)) STATUS_EFFECT_CONSTANT - occupant.Sleeping(stun_time) - occupant.Paralyse(stun_time) - if(air_contents.oxygen > 2) - if(occupant.getOxyLoss()) - occupant.adjustOxyLoss(-6) - else - occupant.adjustOxyLoss(-1.2) - if(beaker && next_trans == 0) - var/proportion = 10 * min(1/beaker.volume, 1) - // Yes, this means you can get more bang for your buck with a beaker of SF vs a patch - // But it also means a giant beaker of SF won't heal people ridiculously fast 4 cheap - beaker.reagents.reaction(occupant, REAGENT_TOUCH, proportion) - beaker.reagents.trans_to(occupant, 1, 10) - next_trans++ - if(next_trans == 17) - next_trans = 0 + + if(occupant.stat == DEAD || !(occupant.has_organic_damage() || occupant.has_mutated_organs())) // Why waste energy on dead or healthy people + occupant.bodytemperature = T0C + return + + occupant.bodytemperature += 2 * (air_contents.temperature - occupant.bodytemperature) * current_heat_capacity / (current_heat_capacity + air_contents.heat_capacity()) + occupant.bodytemperature = max(occupant.bodytemperature, air_contents.temperature) // this is so ugly i'm sorry for doing it i'll fix it later i promise + + if(occupant.bodytemperature < T0C) + var/stun_time = (max(5 / efficiency, (1 / occupant.bodytemperature) * 2000 / efficiency)) STATUS_EFFECT_CONSTANT + occupant.Sleeping(stun_time) + + var/heal_mod = air_contents.oxygen < 2 ? 0.2 : 1 + occupant.adjustOxyLoss(-6 * heal_mod) + + if(beaker && world.time >= last_injection + injection_cooldown) + // Take 1u from the beaker mix, react and inject 10x the amount + var/proportion = 10 * min(1 / beaker.volume, 1) + beaker.reagents.reaction(occupant, REAGENT_TOUCH, proportion) + beaker.reagents.trans_to(occupant, 1, 10) + + last_injection = world.time /obj/machinery/atmospherics/unary/cryo_cell/proc/heat_gas_contents() if(air_contents.total_moles() < 1) @@ -430,14 +427,14 @@ /obj/machinery/atmospherics/unary/cryo_cell/proc/go_out() if(!occupant) return - occupant.forceMove(get_step(loc, SOUTH)) //this doesn't account for walls or anything, but i don't forsee that being a problem. - if(occupant.bodytemperature < 261 && occupant.bodytemperature >= 70) //Patch by Aranclanos to stop people from taking burn damage after being ejected - occupant.bodytemperature = 261 + + occupant.forceMove(get_step(loc, SOUTH)) // Doesn't account for walls + + if(occupant.bodytemperature < occupant.dna.species.cold_level_1) // Hacky fix for people taking burn damage after being ejected + occupant.bodytemperature = occupant.dna.species.cold_level_1 + occupant = null update_icon(UPDATE_OVERLAYS) - // eject trash the occupant dropped - for(var/atom/movable/A in contents - component_parts - list(beaker)) - A.forceMove(get_step(loc, SOUTH)) /obj/machinery/atmospherics/unary/cryo_cell/force_eject_occupant(mob/target) go_out() @@ -515,7 +512,7 @@ to_chat(usr, "[usr] will not fit into [src] because [usr.p_they()] [usr.p_have()] a slime latched onto [usr.p_their()] head.") return - if(stat & (NOPOWER|BROKEN)) + if(stat & (NOPOWER | BROKEN)) return if(usr.incapacitated() || usr.buckled) //are you cuffed, dying, lying, stunned or other diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 50550990dcf..d3b1077ac0f 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -808,7 +808,7 @@ icon_state = "bombersyndie" item_state = "bombersyndie" ignore_suitadjust = FALSE - allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/gun, /obj/item/melee/classic_baton/telescopic/contractor, /obj/item/kitchen/knife/combat) body_parts_covered = UPPER_TORSO | LOWER_TORSO | ARMS cold_protection = UPPER_TORSO | LOWER_TORSO | ARMS min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT diff --git a/code/modules/economy/economy_machinery/account_terminal.dm b/code/modules/economy/economy_machinery/account_terminal.dm index a3d60655f12..a781ffc5607 100644 --- a/code/modules/economy/economy_machinery/account_terminal.dm +++ b/code/modules/economy/economy_machinery/account_terminal.dm @@ -44,14 +44,16 @@ var/list/account_data = list( "account_number" = account.account_number, "owner_name" = account.account_name, - "suspended" = account.suspended ? "SUSPENDED" : "Active") + "suspended" = account.suspended ? "SUSPENDED" : "Active", + "money" = account.credit_balance) data["accounts"] += list(account_data) data["department_accounts"] = list() for(var/datum/money_account/account as anything in GLOB.station_money_database.get_all_department_accounts()) var/list/account_data = list( "account_number" = account.account_number, "name" = account.account_name, - "suspended" = account.suspended ? "SUSPENDED" : "Active") + "suspended" = account.suspended ? "SUSPENDED" : "Active", + "money" = account.credit_balance) data["department_accounts"] += list(account_data) if(AUT_ACCINF) data["account_number"] = detailed_account_view.account_number diff --git a/code/modules/economy/merch_items.dm b/code/modules/economy/merch_items.dm index 6b4fbfdea24..2ea99175cfa 100644 --- a/code/modules/economy/merch_items.dm +++ b/code/modules/economy/merch_items.dm @@ -222,6 +222,13 @@ cost = 750 category = MERCH_CAT_DECORATION +/datum/merch_item/flag_solgov + name = "SolGov Flag" + desc = "The banner of Trans-Solar Federation, allied government." + typepath = /obj/item/flag/solgov + cost = 750 + category = MERCH_CAT_DECORATION + /datum/merch_item/banhammer name = "Banhammer" desc = "A Banhammer." diff --git a/code/modules/events/event_container.dm b/code/modules/events/event_container.dm index f14e378f685..6b21388b23b 100644 --- a/code/modules/events/event_container.dm +++ b/code/modules/events/event_container.dm @@ -168,7 +168,6 @@ GLOBAL_LIST_EMPTY(event_last_fired) // NON-BAY EVENTS new /datum/event_meta(EVENT_LEVEL_MODERATE, "Mass Hallucination", /datum/event/mass_hallucination, 300), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Brand Intelligence", /datum/event/brand_intelligence, 50, list(ASSIGNMENT_ENGINEER = 25), TRUE), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Space Dust", /datum/event/dust, 50, list(ASSIGNMENT_ENGINEER = 50)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Dimensional Tear", /datum/event/tear, 0, list(ASSIGNMENT_SECURITY = 35)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Honknomoly", /datum/event/tear/honk, 0), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Vent Clog", /datum/event/vent_clog, 250), diff --git a/code/modules/food_and_drinks/drinks/drinks/cans.dm b/code/modules/food_and_drinks/drinks/drinks/cans.dm index 0239c89e4da..b4b3d5a927f 100644 --- a/code/modules/food_and_drinks/drinks/drinks/cans.dm +++ b/code/modules/food_and_drinks/drinks/drinks/cans.dm @@ -13,7 +13,7 @@ if(can_opened) . += "It has been opened." else - . += "Alt-click to shake it up!" + . += "Ctrl-click to shake it up!" /obj/item/reagent_containers/food/drinks/cans/attack_self(mob/user) if(can_opened) @@ -41,14 +41,14 @@ qdel(src) return crushed_can -/obj/item/reagent_containers/food/drinks/cans/AltClick(mob/user) +/obj/item/reagent_containers/food/drinks/cans/CtrlClick(mob/user) var/mob/living/carbon/human/H if(!can_shake || !ishuman(user)) return ..() H = user if(can_opened) to_chat(H, "You can't shake up an already opened drink!") - return ..() + return if(src == H.l_hand || src == H.r_hand) can_shake = FALSE addtimer(CALLBACK(src, PROC_REF(reset_shakable)), 1 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) @@ -65,8 +65,7 @@ addtimer(CALLBACK(src, PROC_REF(reset_shaken)), 20 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE | TIMER_NO_HASH_WAIT) handle_bursting(user) else - to_chat(H, "You need to hold [src] in order to shake it.") - return ..() + return ..() /obj/item/reagent_containers/food/drinks/cans/attack(mob/M, mob/user, proximity) if(!can_opened) diff --git a/code/modules/food_and_drinks/food/foods/desserts.dm b/code/modules/food_and_drinks/food/foods/desserts.dm index a0a458e2b61..efb685f45f1 100644 --- a/code/modules/food_and_drinks/food/foods/desserts.dm +++ b/code/modules/food_and_drinks/food/foods/desserts.dm @@ -19,7 +19,9 @@ /obj/item/reagent_containers/food/snacks/icecream/update_overlays() . = ..() var/mutable_appearance/filling = mutable_appearance('icons/obj/kitchen.dmi', "icecream_color") - filling.color = mix_color_from_reagents(reagents.reagent_list) + var/list/reagent_colors = rgb2num(mix_color_from_reagents(reagents.reagent_list), COLORSPACE_HSV) //switching to HSV colorspace lets us easily manipulate the saturation and brightness independently + //Clamping the brightness keeps us from having greyish ice cream while still alowing for a range of colours + filling.color = rgb(reagent_colors[1], ((1.5 * reagent_colors[2]) - 10), (clamp(reagent_colors[3], 85, 100) - 10), space = COLORSPACE_HSV) . += filling /obj/item/reagent_containers/food/snacks/icecream/icecreamcone @@ -30,12 +32,20 @@ bitesize = 3 list_reagents = list("nutriment" = 3, "sugar" = 7, "ice" = 2) +/obj/item/reagent_containers/food/snacks/icecream/wafflecone + name = "ice cream in a waffle cone" + desc = "Delicious ice cream." + icon_state = "icecream_cone_waffle" + volume = 50 + bitesize = 3 + list_reagents = list("nutriment" = 3, "sugar" = 7, "ice" = 2) + /obj/item/reagent_containers/food/snacks/icecream/icecreamcup name = "chocolate ice cream cone" desc = "Delicious ice cream." - icon_state = "icecream_cup" + icon_state = "icecream_cone_chocolate" volume = 50 - bitesize = 6 + bitesize = 3 list_reagents = list("nutriment" = 5, "chocolate" = 8, "ice" = 2) /obj/item/reagent_containers/food/snacks/icecreamsandwich diff --git a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm index 18bc71bde37..e514ed60658 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm @@ -2,7 +2,7 @@ //Code made by Sawu at Sawu-Station. /obj/machinery/icemachine - name = "cream-master deluxe" + name = "\improper Cream-Master Deluxe" density = TRUE anchored = TRUE icon = 'icons/obj/kitchen.dmi' @@ -15,8 +15,8 @@ /obj/machinery/icemachine/proc/generate_name(reagent_name) - var/name_prefix = pick("Mr.","Mrs.","Super","Happy","Whippy") - var/name_suffix = pick(" Whippy "," Slappy "," Creamy "," Dippy "," Swirly "," Swirl ") + var/name_prefix = pick("Mr.","Mrs.","Mx.","Dr.","Super","Happy","Whippy", "Sugary", "Sweet", "Lawful", "Chaotic", "Neutral", "Drippy","Sicknasty","Tubular","Radical") + var/name_suffix = pick(" Whippy "," Slappy "," Creamy "," Dippy "," Swirly "," Swirl ", " Rootin'Tootin "," Frosty ", " Chilly "," Neutral ", " Good ", " Evil ", " Smooth ", " Chunky ", " Flaming ") var/cone_name = null //Heart failure prevention. cone_name += name_prefix cone_name += name_suffix @@ -55,13 +55,13 @@ /obj/machinery/icemachine/proc/validexchange(reag) - if(reag == "sprinkles" | reag == "cola" | reag == "kahlua" | reag == "dr_gibb" | reag == "vodka" | reag == "space_up" | reag == "rum" | reag == "spacemountainwind" | reag == "gin" | reag == "cream" | reag == "water") - return 1 - else - if(reagents.total_volume < 500) - to_chat(usr, "[src] vibrates for a moment, apparently accepting the unknown liquid.") - playsound(loc, 'sound/machines/twobeep.ogg', 10, 1) - return 1 + var/list/static/invalid_reagents = list("sprinkles", "cola", "kahlua", "dr_gibb", "vodka", "space-up", "rum", "spacemountainwind", "gin", "cream", "vanilla") + if(reag in invalid_reagents) + return + if(reagents.total_volume < 500) + to_chat(usr, "[src] vibrates for a moment, apparently accepting the unknown liquid.") + playsound(loc, 'sound/machines/twobeep.ogg', 10, 1) + return TRUE /obj/machinery/icemachine/Topic(href, href_list) @@ -141,25 +141,18 @@ else reagents.add_reagent("gin",5) else if(ID == 4) - if(reagents.total_volume <= 500 & reagents.total_volume >= 15) - reagents.add_reagent("cream",(30 - reagents.total_volume)) - else if(reagents.total_volume <= 15) - reagents.add_reagent("cream",(15 - reagents.total_volume)) + reagents.add_reagent("cream", 5) else if(ID == 5) - if(reagents.total_volume <= 500 & reagents.total_volume >= 15) - reagents.add_reagent("water",(30 - reagents.total_volume)) - else if(reagents.total_volume <= 15) - reagents.add_reagent("water",(15 - reagents.total_volume)) + reagents.add_reagent("vanilla", 5) - else if(href_list["createcup"]) + else if(href_list["createchoco"]) var/name = generate_name(reagents.get_master_reagent_name()) name += " Chocolate Cone" - var/obj/item/reagent_containers/food/snacks/icecream/icecreamcup/C - C = new/obj/item/reagent_containers/food/snacks/icecream/icecreamcup(loc) + var/obj/item/reagent_containers/food/snacks/icecream/icecreamcup/C = new(loc) C.name = "[name]" C.pixel_x = rand(-8, 8) C.pixel_y = -16 - reagents.trans_to(C,30) + reagents.trans_to(C, 50) if(reagents) reagents.clear_reagents() C.update_icon() @@ -167,12 +160,23 @@ else if(href_list["createcone"]) var/name = generate_name(reagents.get_master_reagent_name()) name += " Cone" - var/obj/item/reagent_containers/food/snacks/icecream/icecreamcone/C - C = new/obj/item/reagent_containers/food/snacks/icecream/icecreamcone(loc) + var/obj/item/reagent_containers/food/snacks/icecream/icecreamcone/C = new(loc) C.name = "[name]" C.pixel_x = rand(-8, 8) C.pixel_y = -16 - reagents.trans_to(C,15) + reagents.trans_to(C, 30) + if(reagents) + reagents.clear_reagents() + C.update_icon() + + else if(href_list["createwaffle"]) + var/name = generate_name(reagents.get_master_reagent_name()) + name += " Waffle Cone" + var/obj/item/reagent_containers/food/snacks/icecream/wafflecone/C = new(loc) + C.name = "[name]" + C.pixel_x = rand(-8, 8) + C.pixel_y = -16 + reagents.trans_to(C, 20) if(reagents) reagents.clear_reagents() C.update_icon() @@ -192,10 +196,11 @@ dat += "Alcohol
" dat += "Finish With:
" dat += "Cream
" - dat += "Water
" + dat += "Vanilla
" dat += "Dispense in:
" - dat += "Chocolate Cone
" + dat += "Chocolate Cone
" dat += "Cone
" + dat += "Waffle Cone
" dat += "" return dat diff --git a/code/modules/hydroponics/grown/cocoa_vanilla.dm b/code/modules/hydroponics/grown/cocoa_vanilla.dm index 136b4c7dbf4..b00c4b1aded 100644 --- a/code/modules/hydroponics/grown/cocoa_vanilla.dm +++ b/code/modules/hydroponics/grown/cocoa_vanilla.dm @@ -23,7 +23,7 @@ name = "cocoa pod" desc = "Fattening... Mmmmm... chucklate." icon_state = "cocoapod" - filling_color = "#FFD700" + filling_color = "#5F3A13" bitesize_mod = 2 tastes = list("cocoa" = 1) @@ -44,6 +44,6 @@ name = "vanilla pod" desc = "Fattening... Mmmmm... vanilla." icon_state = "vanillapod" - filling_color = "#FFD700" + filling_color = "#FEFEFE" tastes = list("vanilla" = 1) distill_reagent = "vanilla" //Takes longer, but you can get even more vanilla from it. diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 3b11d36c259..7e8ec27e2e3 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -11,7 +11,8 @@ emp_act /mob/living/carbon/human/bullet_act(obj/item/projectile/P, def_zone) if(!dna.species.bullet_act(P, src)) add_attack_logs(P.firer, src, "hit by [P.type] but got deflected by species '[dna.species]'") - return FALSE + P.reflect_back(src) //It has to be here, not on species. Why? Who knows. Testing showed me no reason why it doesn't work on species, and neither did tracing. It has to be here, or it gets qdel'd by bump. + return -1 if(P.is_reflectable(REFLECTABILITY_ENERGY)) var/can_reflect = check_reflect(def_zone) var/reflected = FALSE diff --git a/code/modules/mob/living/carbon/human/human_organs.dm b/code/modules/mob/living/carbon/human/human_organs.dm index 2995e0fcb17..3d52ef5e3ff 100644 --- a/code/modules/mob/living/carbon/human/human_organs.dm +++ b/code/modules/mob/living/carbon/human/human_organs.dm @@ -170,12 +170,12 @@ I use this to standardize shadowling dethrall code return O.parent_organ /mob/living/carbon/human/has_organic_damage() - var/odmg = 0 - for(var/obj/item/organ/external/O in bodyparts) - if(O.is_robotic()) - odmg += O.brute_dam - odmg += O.burn_dam - return (health < (100 - odmg)) + var/robo_damage = 0 + for(var/obj/item/organ/external/E in bodyparts) + if(E.is_robotic()) + robo_damage += E.brute_dam + robo_damage += E.burn_dam + return health < maxHealth - robo_damage /mob/living/carbon/human/proc/handle_splints() //proc that rebuilds the list of splints on this person, for ease of processing splinted_limbs.Cut() diff --git a/code/modules/mob/living/carbon/human/species/golem.dm b/code/modules/mob/living/carbon/human/species/golem.dm index 8a2d2980d7c..33a80ee9843 100644 --- a/code/modules/mob/living/carbon/human/species/golem.dm +++ b/code/modules/mob/living/carbon/human/species/golem.dm @@ -415,9 +415,7 @@ H.visible_message("[P] gets reflected by [H]'s glass skin!", \ "[P] gets reflected by [H]'s glass skin!") - P.reflect_back(H) - - return FALSE + return FALSE //Reflect back must be handled on the human bullet act for some arcane reason return TRUE /datum/unarmed_attack/golem/glass diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index 03b767eba14..6222a6a7faa 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -12,8 +12,7 @@ final_pixel_y = pixel_y else //if(lying != 0) if(lying_prev == 0) //Standing to lying - pixel_y = pixel_y - final_pixel_y = pixel_y + PIXEL_Y_OFFSET_LYING + final_pixel_y = PIXEL_Y_OFFSET_LYING if(dir & (EAST|WEST)) //Facing east or west final_dir = pick(NORTH, SOUTH) //So you fall on your side rather than your face or ass if(resize != RESIZE_DEFAULT_SIZE) diff --git a/code/modules/mob/living/silicon/ai/freelook/README.md b/code/modules/mob/living/silicon/ai/freelook/README.md new file mode 100644 index 00000000000..14092354293 --- /dev/null +++ b/code/modules/mob/living/silicon/ai/freelook/README.md @@ -0,0 +1,60 @@ +# AI Freelook + +## Credits + +Initial code credit for this goes to Uristqwerty. +Debugging, functionality, all comments and porting by Giacom. + +## What is this? + +This is a replacement for the current camera movement system, of the AI. Before +this, the AI had to move between cameras and could only see what the cameras +could see. Not only this but the cameras could see through walls, which created +problems. With this, the AI controls an "AI Eye" mob, which moves just like a +ghost; such as moving through walls and being invisible to players. The AI's eye +is set to this mob and then we use a system (explained below) to determine what +the cameras around the AI Eye can and cannot see. If the camera cannot see a +turf, it will black it out, otherwise it won't and the AI will be able to see +it. This creates several features, such as.. no more see-through-wall cameras, +easier to control camera movement, easier tracking, the AI only being able to +track mobs which are visible to a camera, only trackable mobs appearing on the +mob list and many more. + +## How it Works + +It works by first creating a camera network datum. Inside of this camera network +are "chunks" (which will be explained later) and "cameras". The cameras list is +kept up to date by obj/machinery/camera/New() and Destroy(). + +Next the camera network has chunks. These chunks are a 16x16 tile block of turfs +and cameras contained inside the chunk. These turfs are then sorted out based on +what the cameras can and cannot see. If none of the cameras can see the turf, +inside the 16x16 block, it is listed as an "obscured" turf. Meaning the AI won't +be able to see it. + +## How it Updates + +The camera network uses a streaming method in order to effeciently update +chunks. Since the server will have doors opening, doors closing, turf being +destroyed and other lag inducing stuff, we want to update it under certain +conditions and not every tick. + +The chunks are not created straight away, only when an AI eye moves into it's +area is when it gets created. One a chunk is created, when a non glass door +opens/closes or an opacity turf is destroyed, we check to see if an AI Eye is +looking in the area. We do this with the "seenby" list, which updates everytime +an AI is near a chunk. If there is an AI eye inside the area, we update the +chunk that the changed atom is inside and all surrounding chunks, since a +camera's vision could leak onto another chunk. If there is no AI Eye, we instead +flag the chunk to update whenever it is loaded by an AI Eye. This is basically +how the chunks update and keep it in sync. We then add some lag reducing +measures, such as an UPDATE_BUFFER which stops a chunk from updating too many +times in a certain time-frame, only updating if the changed atom was blocking +sight; for example, we don't update glass airlocks or floors. + +## Where is Everything? + +- `cameranet.dm`: Everything about the cameranet datum. +- `chunk.dm`: Everything about the chunk datum. +- `eye.dm`: Everything about the AI and the AIEye. +- `updating.dm`: Everything about triggers that will update chunks. diff --git a/code/modules/mob/living/silicon/ai/freelook/read_me.dm b/code/modules/mob/living/silicon/ai/freelook/read_me.dm deleted file mode 100644 index 869fcc2cdac..00000000000 --- a/code/modules/mob/living/silicon/ai/freelook/read_me.dm +++ /dev/null @@ -1,51 +0,0 @@ -// CREDITS -/* - Initial code credit for this goes to Uristqwerty. - Debugging, functionality, all comments and porting by Giacom. - - Everything about freelook (or what we can put in here) will be stored here. - - - WHAT IS THIS? - - This is a replacement for the current camera movement system, of the AI. Before this, the AI had to move between cameras and could - only see what the cameras could see. Not only this but the cameras could see through walls, which created problems. - With this, the AI controls an "AI Eye" mob, which moves just like a ghost; such as moving through walls and being invisible to players. - The AI's eye is set to this mob and then we use a system (explained below) to determine what the cameras around the AI Eye can and - cannot see. If the camera cannot see a turf, it will black it out, otherwise it won't and the AI will be able to see it. - This creates several features, such as.. no more see-through-wall cameras, easier to control camera movement, easier tracking, - the AI only being able to track mobs which are visible to a camera, only trackable mobs appearing on the mob list and many more. - - - HOW IT WORKS - - It works by first creating a camera network datum. Inside of this camera network are "chunks" (which will be - explained later) and "cameras". The cameras list is kept up to date by obj/machinery/camera/New() and Destroy(). - - Next the camera network has chunks. These chunks are a 16x16 tile block of turfs and cameras contained inside the chunk. - These turfs are then sorted out based on what the cameras can and cannot see. If none of the cameras can see the turf, inside - the 16x16 block, it is listed as an "obscured" turf. Meaning the AI won't be able to see it. - - - HOW IT UPDATES - - The camera network uses a streaming method in order to effeciently update chunks. Since the server will have doors opening, doors closing, - turf being destroyed and other lag inducing stuff, we want to update it under certain conditions and not every tick. - - The chunks are not created straight away, only when an AI eye moves into it's area is when it gets created. - One a chunk is created, when a non glass door opens/closes or an opacity turf is destroyed, we check to see if an AI Eye is looking in the area. - We do this with the "seenby" list, which updates everytime an AI is near a chunk. If there is an AI eye inside the area, we update the chunk - that the changed atom is inside and all surrounding chunks, since a camera's vision could leak onto another chunk. If there is no AI Eye, we instead - flag the chunk to update whenever it is loaded by an AI Eye. This is basically how the chunks update and keep it in sync. We then add some lag reducing - measures, such as an UPDATE_BUFFER which stops a chunk from updating too many times in a certain time-frame, only updating if the changed atom was blocking - sight; for example, we don't update glass airlocks or floors. - - - WHERE IS EVERYTHING? - - cameranet.dm = Everything about the cameranet datum. - chunk.dm = Everything about the chunk datum. - eye.dm = Everything about the AI and the AIEye. - updating.dm = Everything about triggers that will update chunks. - -*/ diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm index ab5c25c2b5b..2c3115818e2 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm @@ -363,13 +363,15 @@ Difficulty: Hard var/obj/effect/anomaly/bluespace/A = new(spot, 150, FALSE) A.mass_teleporting = FALSE if(GRAV) - new /obj/effect/anomaly/grav(spot, 150, FALSE) + var/obj/effect/anomaly/grav/A = new(spot, 150, FALSE, FALSE) + A.knockdown = TRUE if(PYRO) var/obj/effect/anomaly/pyro/A = new(spot, 150, FALSE) A.produces_slime = FALSE if(FLUX) var/obj/effect/anomaly/flux/A = new(spot, 150, FALSE) A.explosive = FALSE + A.knockdown = TRUE if(VORTEX) new /obj/effect/anomaly/bhole(spot, 150, FALSE) anomalies++ @@ -516,6 +518,9 @@ Difficulty: Hard beam.forceMove(get_turf(src)) return ..() +/mob/living/simple_animal/hostile/megafauna/ancient_robot/mob_negates_gravity() //No more being thrown around like a spastic child by grav anomalies + return TRUE + /mob/living/simple_animal/hostile/ancient_robot_leg name = "leg" desc = "Legs with a mounted turret, for shooting and crushing small miners like you." @@ -526,6 +531,7 @@ Difficulty: Hard faction = list("mining", "boss") // No attacking your leg weather_immunities = list("lava","ash") atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 0 flying = TRUE check_friendly_fire = 1 ranged = TRUE @@ -548,9 +554,9 @@ Difficulty: Hard stat_attack = DEAD var/range = 3 var/mob/living/simple_animal/hostile/megafauna/ancient_robot/core = null - var/fake_max_hp = 400 - var/fake_hp = 400 - var/fake_hp_regen = 10 + var/fake_max_hp = 300 + var/fake_hp = 300 + var/fake_hp_regen = 2 var/transfer_rate = 0.75 var/who_am_i = null var/datum/beam/leg_part @@ -608,7 +614,7 @@ Difficulty: Hard if(regen) fake_hp = min(fake_hp + fake_hp_regen, fake_max_hp) transfer_rate = 0.75 * (fake_hp/fake_max_hp) - if(fake_hp >= 300 && !ranged) + if(fake_hp >= 250 && !ranged) ranged = TRUE visible_message("[src]'s turret pops out of it!") if(get_dist(get_turf(core),get_turf(src)) <= range) @@ -665,6 +671,9 @@ Difficulty: Hard /mob/living/simple_animal/hostile/ancient_robot_leg/Moved(atom/OldLoc, Dir, Forced = FALSE) playsound(src, 'sound/effects/meteorimpact.ogg', 60, TRUE, 2, TRUE) //turned way down from bubblegum levels due to 4 legs +/mob/living/simple_animal/hostile/ancient_robot_leg/mob_negates_gravity() + return TRUE + /obj/item/projectile/ancient_robot_bullet damage = 8 damage_type = BRUTE diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm index a3342163d84..e2c4bdbf0fa 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm @@ -7,6 +7,7 @@ GLOBAL_VAR_INIT(ts_death_window, 9000) // 15 minutes GLOBAL_LIST_EMPTY(ts_spiderlist) GLOBAL_LIST_EMPTY(ts_egg_list) GLOBAL_LIST_EMPTY(ts_spiderling_list) +GLOBAL_LIST_EMPTY(ts_infected_list) // -------------------------------------------------------------------------------- // --------------------- TERROR SPIDERS: DEFAULTS --------------------------------- diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/white.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/white.dm index 5b2e45466d5..cf848d94928 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/white.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/white.dm @@ -53,6 +53,26 @@ return 1 return 0 +/obj/item/organ/internal/body_egg/terror_eggs/Initialize(mapload) + . = ..() + GLOB.ts_infected_list += src + +/obj/item/organ/internal/body_egg/terror_eggs/insert(mob/living/carbon/M, special) + . = ..() + RegisterSignal(owner, COMSIG_MOB_STATCHANGE, PROC_REF(readd_infected)) + +/obj/item/organ/internal/body_egg/terror_eggs/proc/readd_infected(mob/infected, new_stat, old_stat) + SIGNAL_HANDLER + if(new_stat != DEAD) + GLOB.ts_infected_list |= src + +/obj/item/organ/internal/body_egg/terror_eggs/Destroy() + GLOB.ts_infected_list -= src + return ..() + +/obj/item/organ/internal/body_egg/terror_eggs/on_owner_death() + GLOB.ts_infected_list -= src + return ..() /obj/structure/spider/terrorweb/white name = "infested web" diff --git a/code/modules/mob/living/stat_states.dm b/code/modules/mob/living/stat_states.dm index d3e5be870eb..26d5664a0f2 100644 --- a/code/modules/mob/living/stat_states.dm +++ b/code/modules/mob/living/stat_states.dm @@ -12,6 +12,7 @@ add_attack_logs(src, null, "Fallen unconscious", ATKLOG_ALL) log_game("[key_name(src)] fell unconscious at [atom_loc_line(get_turf(src))]") set_stat(UNCONSCIOUS) + ADD_TRAIT(src, TRAIT_DEAF, STAT_TRAIT) ADD_TRAIT(src, TRAIT_FLOORED, STAT_TRAIT) ADD_TRAIT(src, TRAIT_IMMOBILIZED, STAT_TRAIT) ADD_TRAIT(src, TRAIT_HANDS_BLOCKED, STAT_TRAIT) diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index a55f965a20d..4b29746d368 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -50,7 +50,7 @@ if(S.glass_type == /obj/item/stack/sheet/rglass) //if the panel is in reinforced glass max_integrity *= 2 //this need to be placed here, because panels already on the map don't have an assembly linked to obj_integrity = max_integrity - update_icon() + update_icon(UPDATE_OVERLAYS) /obj/machinery/power/solar/crowbar_act(mob/user, obj/item/I) @@ -78,7 +78,7 @@ playsound(loc, 'sound/effects/glassbr3.ogg', 100, TRUE) stat |= BROKEN unset_control() - update_icon() + update_icon(UPDATE_OVERLAYS) /obj/machinery/power/solar/deconstruct(disassembled = TRUE) if(!(flags & NODECONSTRUCT)) @@ -98,8 +98,11 @@ if(stat & BROKEN) . += image('icons/goonstation/objects/power.dmi', icon_state = "solar_panel-b", layer = FLY_LAYER) else - . += image('icons/goonstation/objects/power.dmi', icon_state = "solar_panel", layer = FLY_LAYER) - set_angle(adir) + var/image/panel = image('icons/goonstation/objects/power.dmi', icon_state = "solar_panel", layer = FLY_LAYER) + var/matrix/M = matrix() + M.Turn(adir) + panel.transform = M + . += panel //calculates the fraction of the sunlight that the panel recieves /obj/machinery/power/solar/proc/update_solar_exposure() @@ -137,7 +140,7 @@ . = (!(stat & BROKEN)) stat |= BROKEN unset_control() - update_icon() + update_icon(UPDATE_OVERLAYS) /obj/machinery/power/solar/fake/New(turf/loc, obj/item/solar_assembly/S) ..(loc, S, 0) @@ -488,7 +491,7 @@ for(var/obj/machinery/power/solar/S in connected_panels) S.adir = cdir //instantly rotates the panel S.occlusion()//and - S.update_icon() //update it + S.update_icon(UPDATE_OVERLAYS) //update it update_icon() diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 0994e6afd6a..7dcea6e3376 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -886,7 +886,7 @@ var/obj/effect/anomaly/flux/A = new(L, 300, FALSE) A.explosive = FALSE if(GRAVITATIONAL_ANOMALY) - new /obj/effect/anomaly/grav(L, 250, FALSE) + new /obj/effect/anomaly/grav(L, 250, FALSE, FALSE) if(PYRO_ANOMALY) new /obj/effect/anomaly/pyro(L, 200, FALSE) diff --git a/code/modules/projectiles/ammunition/boxes.dm b/code/modules/projectiles/ammunition/boxes.dm index e09be1238b2..168bf37e03c 100644 --- a/code/modules/projectiles/ammunition/boxes.dm +++ b/code/modules/projectiles/ammunition/boxes.dm @@ -14,7 +14,7 @@ ammo_type = /obj/item/ammo_casing/a357 max_ammo = 7 multi_sprite_step = 1 - icon_state = "357OLD" + icon_state = "357_box" /obj/item/ammo_box/c9mm name = "ammo box (9mm)" diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index 2e47ab0c484..b144897574f 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -116,6 +116,7 @@ desc = "An outdated personal defense weapon utilized by law enforcement. The WT-550 Automatic Rifle fires 4.6x30mm rounds." icon_state = "wt550" item_state = "wt550" + w_class = WEIGHT_CLASS_BULKY mag_type = /obj/item/ammo_box/magazine/wt550m9 fire_sound = 'sound/weapons/gunshots/gunshot_rifle.ogg' magin_sound = 'sound/weapons/gun_interactions/batrifle_magin.ogg' diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm index 411d1dad400..aa7b3fee35a 100644 --- a/code/modules/projectiles/projectile/special.dm +++ b/code/modules/projectiles/projectile/special.dm @@ -210,6 +210,13 @@ sharp = TRUE impact_effect_type = /obj/effect/temp_visual/impact_effect/purple_laser +/obj/item/projectile/plasma/prehit(atom/target) + . = ..() + if(!lavaland_equipment_pressure_check(get_turf(target))) + name = "weakened [name]" + dismemberment = 0 + sharp = FALSE + /obj/item/projectile/plasma/on_hit(atom/target) . = ..() if(ismineralturf(target)) diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index bbc86cb9e87..e109a30594d 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -1,11 +1,31 @@ #define ADDICTION_TIME 4800 //8 minutes -/////////////////////////////////////////////////////////////////////////////////// - +/** + * # Reagents Holder + * + * The holder is the datum that holds a list of all reagents + * currently in the object. + * + * By default, all atom have an empty reagents var. If you want to use + * an object for the chemistry system you'll need to add something like this in + * its new proc: + * + * // Create a new datum, 100 is the maximum_volume of the new holder datum. + * var/datum/reagents/R = new/datum/reagents(100) + * reagents = R // Assign the new datum to the objects reagents var + * R.my_atom = src // set the holders my_atom to src so that we know where we are. + * + * This can also be done by calling a convenience proc e.g. + * /atom/proc/create_reagents(max_volume) + */ /datum/reagents + /// All contained reagents. More specifically, references to the reagent datums. var/list/datum/reagent/reagent_list = new/list() + /// The total volume of all reagents in this holder. var/total_volume = 0 + /// This is the maximum volume of the holder. var/maximum_volume = 100 + /// This is the atom the holder is 'in'. Useful if you need to find the location. (i.e. for explosions) var/atom/my_atom = null var/chem_temp = T20C var/temperature_min = 0 @@ -53,6 +73,11 @@ GLOB.chemical_reactions_list[id] += D break // Don't bother adding ourselves to other reagent ids, it is redundant. +/** + * Removes reagents from the holder until the passed amount is matched. + * + * It'll try to remove some of ALL reagents contained. + */ /datum/reagents/proc/remove_any(amount = 1) var/list/cached_reagents = reagent_list var/total_transfered = 0 @@ -124,7 +149,17 @@ return the_id -/datum/reagents/proc/trans_to(target, amount = 1, multiplier = 1, preserve_data = TRUE, no_react = FALSE) //if preserve_data=0, the reagents data will be lost. Usefull if you use data for some strange stuff and don't want it to be transferred. +/** + * Equally transfer the contents of the holder to another objects holder. + * + * You need to pass it the object (not the holder) you want to transfer to and + * the amount you want to transfer. Its return value is the actual amount + * transfered (if one of the objects is full/empty). + * + * If `preserve_data = FALSE`, the reagents data will be lost. Useful if you use + * data for some strange stuff and don't want it to be transferred. + */ +/datum/reagents/proc/trans_to(target, amount = 1, multiplier = 1, preserve_data = TRUE, no_react = FALSE) if(!target) return if(total_volume <= 0) @@ -212,6 +247,12 @@ handle_reactions() +/** + * Same as [/datum/reagents/proc/trans_to] but only for a specific reagent in + * the reagent list. If the specified amount is greater than what is available, + * it will use the amount of the reagent that is available. If no reagent + * exists, returns null. + */ /datum/reagents/proc/trans_id_to(obj/target, reagent, amount = 1, preserve_data = TRUE) //Not sure why this proc didn't exist before. It does now! /N if(!target) return @@ -248,6 +289,9 @@ if((R.process_flags & ORGANIC) && (R.process_flags & SYNTHETIC) && (H.dna.species.reagent_tag & PROCESS_DUO)) return TRUE +/** + * Called by `/mob/living/proc/Life`. You shouldn't have to use this one directly. + */ /datum/reagents/proc/metabolize(mob/living/M) if(M) temperature_reagents(M.bodytemperature - 30) @@ -346,6 +390,9 @@ var/datum/reagent/R = A R.on_mob_death(M) +/** + * Returns a list of all the chemical IDs in the reagent holder that are overdosing. + */ /datum/reagents/proc/overdose_list() var/od_chems[0] for(var/A in reagent_list) @@ -372,6 +419,14 @@ R.on_update(A) update_total() +/** + * Check all recipes and, on a match, uses them. + * + * It will also call the recipe's on_reaction proc (for explosions or w/e). + * Currently, this proc is automatically called by [/datum/reagents/proc/trans_to]. + * Modified from the original to preserve reagent data across reactions + * (originally for xenoarchaeology). + */ /datum/reagents/proc/handle_reactions() if(flags & REAGENT_NOREACT) return //Yup, no reactions here. No siree. @@ -468,6 +523,9 @@ update_total() return FALSE +/** + * Remove all reagents but the specified one. + */ /datum/reagents/proc/isolate_reagent(reagent) for(var/A in reagent_list) var/datum/reagent/R = A @@ -475,6 +533,9 @@ del_reagent(R.id) update_total() +/** + * Completely remove the reagent with the matching ID. + */ /datum/reagents/proc/del_reagent(reagent) var/list/cached_reagents = reagent_list for(var/A in cached_reagents) @@ -491,6 +552,9 @@ return FALSE return TRUE +/** + * Update the total volume of the holder (the volume of all reagents added together). + */ /datum/reagents/proc/update_total() total_volume = 0 for(var/A in reagent_list) @@ -501,6 +565,9 @@ total_volume += R.volume return FALSE +/** + * Remove all reagents from the holder. + */ /datum/reagents/proc/clear_reagents() for(var/A in reagent_list) var/datum/reagent/R = A @@ -526,6 +593,22 @@ can_process = TRUE return can_process +/** + * Calls the appropriate reaction procs of the reagents. + * + * I.e. if A is an object, it will call the reagent's reaction_obj + * proc. The method var is used for reaction on mobs. It simply tells + * us if the mob TOUCHed the reagent or if it INGESTed the reagent. + * + * Since the volume can be checked in a reagents proc, you might want to + * use the volume_modifier var to modifiy the passed value without actually + * changing the volume of the reagents. + * + * If you're not sure if you need to use this the answer is very most likely 'No'. + * + * You'll want to use this proc whenever an atom first comes in contact + * with the reagents of a holder. (in the 'splash' part of a beaker i.e.) + */ /datum/reagents/proc/reaction(atom/A, method = REAGENT_TOUCH, volume_modifier = 1, show_message = TRUE) var/react_type if(isliving(A)) @@ -583,6 +666,11 @@ var/amt = list_reagents[r_id] add_reagent(r_id, amt, data) +/** + * Attempts to add X of the matching reagent to the holder. + * + * You won't use this much. Mostly in new procs for pre-filled objects. + */ /datum/reagents/proc/add_reagent(reagent, amount, list/data=null, reagtemp = T20C, no_react = FALSE) if(!isnum(amount)) return TRUE @@ -637,6 +725,12 @@ add_reagent(reagent, add) return TRUE +/** + * The exact opposite of the add_reagent proc. + * + * Modified from original to return the reagent's data, in order to preserve + * reagent data across reactions (originally for xenoarchaeology). + */ /datum/reagents/proc/remove_reagent(reagent, amount, safety) //Added a safety check for the trans_id_to if(!isnum(amount)) return TRUE @@ -653,6 +747,11 @@ return FALSE return TRUE +/** + * Return whether the holder contains the reagent. + * + * If you pass it an amount it will additionally check if the amount is matched. + */ /datum/reagents/proc/has_reagent(reagent, amount = -1) for(var/A in reagent_list) var/datum/reagent/R = A @@ -666,6 +765,11 @@ return FALSE return FALSE +/** + * Returns the amount of the matching reagent inside the holder. + * + * Returns FALSE if the reagent is missing. + */ /datum/reagents/proc/get_reagent_amount(reagent) for(var/A in reagent_list) var/datum/reagent/R = A diff --git a/code/modules/reagents/chemistry/readme.dm b/code/modules/reagents/chemistry/readme.dm deleted file mode 100644 index ddcdb8a123e..00000000000 --- a/code/modules/reagents/chemistry/readme.dm +++ /dev/null @@ -1,241 +0,0 @@ -/* -NOTE: IF YOU UPDATE THE REAGENT-SYSTEM, ALSO UPDATE THIS README. - -Structure: /////////////////// ////////////////////////// - // Mob or object // -------> // Reagents var (datum) // Is a reference to the datum that holds the reagents. - /////////////////// ////////////////////////// - | | - The object that holds everything. V - reagent_list var (list) A List of datums, each datum is a reagent. - - | | | - V V V - - reagents (datums) Reagents. I.e. Water , antitoxins or mercury. - - -Random important notes: - - An objects on_reagent_change will be called every time the objects reagents change. - Useful if you want to update the objects icon etc. - -About the Holder: - - The holder (reagents datum) is the datum that holds a list of all reagents - currently in the object.It also has all the procs needed to manipulate reagents - - remove_any(amount) - This proc removes reagents from the holder until the passed amount - is matched. It'll try to remove some of ALL reagents contained. - - trans_to(obj/target, amount) - This proc equally transfers the contents of the holder to another - objects holder. You need to pass it the object (not the holder) you want - to transfer to and the amount you want to transfer. Its return value is the - actual amount transfered (if one of the objects is full/empty) - - trans_id_to(obj/target, reagent, amount) - Same as above but only for a specific reagent in the reagent list. - If the specified amount is greater than what is available, it will use - the amount of the reagent that is available. If no reagent exists, returns null. - - metabolize(mob/living/M) - This proc is called by the mobs life proc. It simply calls on_mob_life for - all contained reagents. You shouldnt have to use this one directly. - - handle_reactions() - This proc check all recipes and, on a match, uses them. - It will also call the recipe's on_reaction proc (for explosions or w/e). - Currently, this proc is automatically called by trans_to. - - Modified from the original to preserve reagent data across reactions (originally for xenoarchaeology) - - isolate_reagent(reagent) - Pass it a reagent id and it will remove all reagents but that one. - It's that simple. - - del_reagent(reagent) - Completely remove the reagent with the matching id. - - update_total() - This one simply updates the total volume of the holder. - (the volume of all reagents added together) - - clear_reagents() - This proc removes ALL reagents from the holder. - - reaction(atom/A, method=TOUCH, volume_modifier=0) - This proc calls the appropriate reaction procs of the reagents. - I.e. if A is an object, it will call the reagents reaction_obj - proc. The method var is used for reaction on mobs. It simply tells - us if the mob TOUCHed the reagent or if it INGESTed the reagent. - Since the volume can be checked in a reagents proc, you might want to - use the volume_modifier var to modifiy the passed value without actually - changing the volume of the reagents. - If you're not sure if you need to use this the answer is very most likely 'No'. - You'll want to use this proc whenever an atom first comes in - contact with the reagents of a holder. (in the 'splash' part of a beaker i.e.) - More on the reaction in the reagent part of this readme. - - add_reagent(reagent, amount, data) - Attempts to add X of the matching reagent to the holder. - You wont use this much. Mostly in new procs for pre-filled - objects. - - remove_reagent(reagent, amount) - The exact opposite of the add_reagent proc. - - Modified from original to return the reagent's data, in order to preserve reagent data across reactions (originally for xenoarchaeology) - - has_reagent(reagent, amount) - Returns 1 if the holder contains this reagent. - Or 0 if not. - If you pass it an amount it will additionally check - if the amount is matched. This is optional. - - get_reagent_amount(reagent) - Returns the amount of the matching reagent inside the - holder. Returns 0 if the reagent is missing. - - overdose_list() - Returns a list of all the chemical IDs in the reagent holder that are overdosing - - Important variables: - - total_volume - This variable contains the total volume of all reagents in this holder. - - reagent_list - This is a list of all contained reagents. More specifically, references - to the reagent datums. - - maximum_volume - This is the maximum volume of the holder. - - my_atom - This is the atom the holder is 'in'. Useful if you need to find the location. - (i.e. for explosions) - - -About Reagents: - - Reagents are all the things you can mix and fille in bottles etc. This can be anything from - rejuvs over water to ... iron. Each reagent also has a few procs - i'll explain those below. - - reaction_mob(mob/living/M, method=TOUCH) - This is called by the holder's reation proc. - This version is only called when the reagent - reacts with a mob. The method var can be either - TOUCH or INGEST. You'll want to put stuff like - acid-facemelting in here. Should only ever be - called, directly, on living mobs. - - reaction_obj(obj/O) - This is called by the holder's reation proc. - This version is called when the reagents reacts - with an object. You'll want to put stuff like - object melting in here ... or something. i dunno. - - reaction_turf(turf/T) - This is called by the holder's reation proc. - This version is called when the reagents reacts - with a turf. You'll want to put stuff like extra - slippery floors for lube or something in here. - - on_mob_life(mob/living/M) - This proc is called everytime the mobs life proc executes. - This is the place where you put damage for toxins , - drowsyness for sleep toxins etc etc. - You'll want to call the parents proc by using ..() . - If you dont, the chemical will stay in the mob forever - - unless you write your own piece of code to slowly remove it. - (Should be pretty easy, 1 line of code) - - Important variables: - - holder - This variable contains a reference to the holder the chemical is 'in' - - volume - This is the volume of the reagent. - - id - The id of the reagent - - name - The name of the reagent. - - data - This var can be used for whatever the fuck you want.You could use this - for DNA in a blood reagent or ... well whatever you want. - - color - This is a hexadecimal color that represents the reagent outside of containers, - you define it as "#RRGGBB", or, red green blue. You can also define it using the - rgb() proc, which returns a hexadecimal value too. The color is black by default. - - A good website for color calculations: http://www.psyclops.com/tools/rgb/ - - - - -About Recipes: - - Recipes are simple datums that contain a list of required reagents and a result. - They also have a proc that is called when the recipe is matched. - - on_reaction(datum/reagents/holder, created_volume) - This proc is called when the recipe is matched. - You'll want to add explosions etc here. - To find the location you'll have to do something - like get_turf(holder.my_atom) - - name & id - Should be pretty obvious. - - result - This var contains the id of the resulting reagent. - - required_reagents - This is a list of ids of the required reagents. - Each id also needs an associated value that gives us the minimum required amount - of that reagent. The handle_reaction proc can detect mutiples of the same recipes - so for most cases you want to set the required amount to 1. - - required_catalysts (Added May 2011) - This is a list of the ids of the required catalysts. - Functionally similar to required_reagents, it is a list of reagents that are required - for the reaction. However, unlike required_reagents, catalysts are NOT consumed. - They mearly have to be present in the container. - - result_amount - This is the amount of the resulting reagent this recipe will produce. - I recommend you set this to the total volume of all required reagent. - - required_container - The container the recipe has to take place in in order to happen. Leave this blank/null - if you want the reaction to happen anywhere. - - required_other - Basically like a reagent's data variable. You can set extra requirements for a - reaction with this. - - -About the Tools: - - By default, all atom have a reagents var - but its empty. if you want to use an object for the chem. - system you'll need to add something like this in its new proc: - - var/datum/reagents/R = new/datum/reagents(100), <<< create a new datum, 100 is the maximum_volume of the new holder datum. - reagents = R, <<< assign the new datum to the objects reagents var - R.my_atom = src, <<< set the holders my_atom to src so that we know where we are. - - This can also be done by calling a convenience proc: - atom/proc/create_reagents(max_volume) - - Other important stuff: - - amount_per_transfer_from_this var - This var is mostly used by beakers and bottles. - It simply tells us how much to transfer when - 'pouring' our reagents into something else. - -*/ diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm index 3ee7cc3e226..cda47f9b9ea 100644 --- a/code/modules/reagents/chemistry/reagents.dm +++ b/code/modules/reagents/chemistry/reagents.dm @@ -2,11 +2,13 @@ var/name = "Reagent" var/id = "reagent" var/description = "" + /// A reference to the holder the chemical is 'in'. var/datum/reagents/holder = null var/reagent_state = SOLID var/list/data = null var/volume = 0 var/metabolization_rate = REAGENTS_METABOLISM + /// The color of the agent outside of containers. var/color = "#000000" // rgb: 0, 0, 0 (does not support alpha channels - yet!) var/shock_reduction = 0 var/heart_rate_increase = 0 @@ -45,7 +47,15 @@ /datum/reagent/proc/reaction_temperature(exposed_temperature, exposed_volume) //By default we do nothing. return -/datum/reagent/proc/reaction_mob(mob/living/M, method = REAGENT_TOUCH, volume, show_message = TRUE) //Some reagents transfer on touch, others don't; dependent on if they penetrate the skin or not. +/** + * React with a mob. + * + * The method var can be either `REAGENT_TOUCH` or `REAGENT_INGEST`. Some + * reagents transfer on touch, others don't; dependent on if they penetrate the + * skin or not. You'll want to put stuff like acid-facemelting in here. Should + * only ever be called, directly, on living mobs. + */ +/datum/reagent/proc/reaction_mob(mob/living/M, method = REAGENT_TOUCH, volume, show_message = TRUE) if(!holder) //for catching rare runtimes return if(method == REAGENT_TOUCH && penetrates_skin) @@ -73,9 +83,17 @@ // This one only matters if the mob is dead. M.absorb_blood() +/** + * React with an object. + */ /datum/reagent/proc/reaction_obj(obj/O, volume) return +/** + * React with a turf. + * + * You'll want to put stuff like extra slippery floors for lube or something in here. + */ /datum/reagent/proc/reaction_turf(turf/T, volume, color) return diff --git a/code/modules/reagents/chemistry/reagents/drinks.dm b/code/modules/reagents/chemistry/reagents/drinks.dm index 1f5ee19b29d..2c86287296a 100644 --- a/code/modules/reagents/chemistry/reagents/drinks.dm +++ b/code/modules/reagents/chemistry/reagents/drinks.dm @@ -18,7 +18,7 @@ name = "Tomato Juice" id = "tomatojuice" description = "Tomatoes made into juice. What a waste of big, juicy tomatoes, huh?" - color = "#731008" // rgb: 115, 16, 8 + color = "#C00609" drink_icon = "glass_red" drink_name = "Glass of Tomato juice" drink_desc = "Are you sure this is tomato juice?" @@ -44,7 +44,7 @@ name = "Lime Juice" id = "limejuice" description = "The sweet-sour juice of limes." - color = "#365E30" // rgb: 54, 94, 48 + color = "#68E735" drink_icon = "glass_green" drink_name = "Glass of Lime juice" drink_desc = "A glass of sweet-sour lime juice." @@ -60,7 +60,7 @@ name = "Carrot juice" id = "carrotjuice" description = "Just like a carrot, but without the crunching." - color = "#973800" // rgb: 151, 56, 0 + color = "#FFA500" drink_icon = "carrotjuice" drink_name = "Glass of carrot juice" drink_desc = "Just like a carrot, but without the crunching." @@ -100,7 +100,7 @@ id = "triple_citrus" description = "A refreshing mixed drink of orange, lemon and lime juice." reagent_state = LIQUID - color = "#23A046" + color = "#B5FF00" drink_icon = "triplecitrus" drink_name = "Glass of Triplecitrus Juice" drink_desc = "As colorful and healthy as it is delicious." @@ -114,7 +114,7 @@ name = "Berry Juice" id = "berryjuice" description = "A delicious blend of several different kinds of berries." - color = "#863333" // rgb: 134, 51, 51 + color = "#B23A4E" drink_icon = "berryjuice" drink_name = "Glass of berry juice" drink_desc = "Berry juice. Or maybe it's jam. Who cares?" @@ -124,7 +124,7 @@ name = "Poison Berry Juice" id = "poisonberryjuice" description = "A tasty juice blended from various kinds of very deadly and toxic berries." - color = "#863353" // rgb: 134, 51, 83 + color = "#B23A4E" drink_icon = "poisonberryjuice" drink_name = "Glass of poison berry juice" drink_desc = "A glass of deadly juice." @@ -139,7 +139,7 @@ name = "Apple Juice" id = "applejuice" description = "The sweet juice of an apple, fit for all ages." - color = "#ECFF56" // rgb: 236, 255, 86 + color = "#FBF969" drink_name = "Apple Juice" drink_desc = "Apple juice. Maybe it would have been better in a pie..." taste_description = "apple juice" @@ -157,7 +157,7 @@ name = "Lemon Juice" id = "lemonjuice" description = "This juice is VERY sour." - color = "#863333" // rgb: 175, 175, 0 + color = "#E5F249" drink_icon = "lemonglass" drink_name = "Glass of lemonjuice" drink_desc = "Sour..." @@ -176,7 +176,7 @@ name = "Banana Juice" id = "banana" description = "The raw essence of a banana." - color = "#863333" // rgb: 175, 175, 0 + color = "#F6F834" drink_icon = "banana" drink_name = "Glass of banana juice" drink_desc = "The raw essence of a banana. HONK" @@ -220,7 +220,7 @@ name = "Milk" id = "milk" description = "An opaque white liquid produced by the mammary glands of mammals." - color = "#DFDFDF" // rgb: 223, 223, 223 + color = "#F1F1F1" drink_icon = "glass_white" drink_name = "Glass of milk" drink_desc = "White and nutritious goodness!" @@ -238,7 +238,7 @@ name = "Soy Milk" id = "soymilk" description = "An opaque white liquid made from soybeans." - color = "#DFDFC7" // rgb: 223, 223, 199 + color = "#DCD3AF" drink_name = "Glass of soy milk" drink_desc = "White and nutritious soy goodness!" taste_description = "fake milk" @@ -246,8 +246,8 @@ /datum/reagent/consumable/drink/milk/cream name = "Cream" id = "cream" - description = "The fatty, still liquid part of milk. Why don't you mix this with sum scotch, eh?" - color = "#DFD7AF" // rgb: 223, 215, 175 + description = "The fatty, still liquid part of milk. Why don't you mix this with some scotch, eh?" + color = "#F1F1F1" drink_name = "Glass of cream" drink_desc = "Ewwww..." taste_description = "cream" @@ -256,7 +256,7 @@ name = "Chocolate milk" id ="chocolate_milk" description = "Chocolate-flavored milk, tastes like being a kid again." - color = "#85432C" + color = "#652109" drink_name = "Chocolate milk" drink_desc = "Smells like childhood. What would they need to add to make it taste like childhood too?" taste_description = "chocolate milk" @@ -266,7 +266,7 @@ id = "hot_coco" description = "Made with love! And coco beans." nutriment_factor = 3 * REAGENTS_METABOLISM - color = "#403010" // rgb: 64, 48, 16 + color = "#401101" drink_icon = "hot_coco" drink_name = "Glass of hot coco" drink_desc = "Delicious and cozy." @@ -307,7 +307,7 @@ name = "Iced Coffee" id = "icecoffee" description = "Coffee and ice, refreshing and cool." - color = "#102838" // rgb: 16, 40, 56 + color = "#33250A" drink_icon = "icedcoffeeglass" drink_name = "Iced Coffee" drink_desc = "A drink to perk you up and refresh you!" @@ -317,12 +317,12 @@ name = "Soy Latte" id = "soy_latte" description = "A nice and tasty beverage while you are reading your hippie books." - color = "#664300" // rgb: 102, 67, 0 + color = "#8A6723" adj_sleepy = 0 drink_icon = "soy_latte" drink_name = "Soy Latte" drink_desc = "A nice and refrshing beverage while you are reading." - taste_description = "fake milky coffee" + taste_description = "milkish coffee" /datum/reagent/consumable/drink/coffee/soy_latte/on_mob_life(mob/living/M) var/update_flags = STATUS_UPDATE_NONE @@ -335,7 +335,7 @@ name = "Cafe Latte" id = "cafe_latte" description = "A nice, strong and tasty beverage while you are reading." - color = "#664300" // rgb: 102, 67, 0 + color = "#7A5C21" adj_sleepy = 0 drink_icon = "cafe_latte" drink_name = "Cafe Latte" @@ -353,7 +353,7 @@ name = "Cafe Mocha" id = "cafe_mocha" description = "The perfect blend of coffee, milk, and chocolate." - color = "#673629" + color = "#3E2603" drink_name = "Cafe Mocha" drink_desc = "The perfect blend of coffee, milk, and chocolate." taste_description = "chocolatey coffee" @@ -633,7 +633,7 @@ name = "Space-Up" id = "space_up" description = "Tastes like a hull breach in your mouth." - color = "#202800" // rgb: 32, 40, 0 + color = "#C7DF67" drink_icon = "space-up_glass" drink_name = "Glass of Space-up" drink_desc = "Space-up. It helps keep your cool." @@ -643,7 +643,7 @@ name = "Lemon Lime" description = "A tangy substance made of 0.5% natural citrus!" id = "lemon_lime" - color = "#878F00" // rgb: 135, 40, 0 + color = "#BEC80F" taste_description = "citrus soda" /datum/reagent/consumable/drink/lemonade @@ -731,7 +731,7 @@ return ..() // imitate alcohol effects using current cycle M.AdjustDrunk(alcohol_perc STATUS_EFFECT_CONSTANT) - M.AdjustDizzy(dizzy_adj, bound_upper = 1.5 MINUTES) + M.AdjustDizzy(dizzy_adj, bound_upper = 1.5 MINUTES) return ..() /datum/reagent/consumable/drink/fyrsskar_tears/on_mob_delete(mob/living/M) diff --git a/code/modules/reagents/chemistry/reagents/food.dm b/code/modules/reagents/chemistry/reagents/food.dm index a63cfb089b0..702f385c837 100644 --- a/code/modules/reagents/chemistry/reagents/food.dm +++ b/code/modules/reagents/chemistry/reagents/food.dm @@ -312,16 +312,16 @@ description = "A fatty, bitter paste made from cocoa beans." reagent_state = SOLID nutriment_factor = 5 * REAGENTS_METABOLISM - color = "#302000" // rgb: 48, 32, 0 + color = "#5F3A13" taste_description = "bitter cocoa" /datum/reagent/consumable/vanilla - name = "Vanilla Powder" + name = "Vanilla" id = "vanilla" description = "A fatty, bitter paste made from vanilla pods." reagent_state = SOLID nutriment_factor = 5 * REAGENTS_METABOLISM - color = "#FFFACD" + color = "#FEFEFE" taste_description = "bitter vanilla" /datum/reagent/consumable/hot_coco diff --git a/code/modules/reagents/chemistry/reagents/medicine.dm b/code/modules/reagents/chemistry/reagents/medicine.dm index d22647191cb..141bc76dab3 100644 --- a/code/modules/reagents/chemistry/reagents/medicine.dm +++ b/code/modules/reagents/chemistry/reagents/medicine.dm @@ -120,24 +120,28 @@ /datum/reagent/medicine/cryoxadone/on_mob_life(mob/living/M) var/update_flags = STATUS_UPDATE_NONE + var/external_temp if(istype(M.loc, /obj/machinery/atmospherics/unary/cryo_cell)) var/obj/machinery/atmospherics/unary/cryo_cell/C = M.loc - external_temp = C.temperature_archived + external_temp = C.air_contents.temperature else var/turf/T = get_turf(M) external_temp = T.temperature + if(external_temp < TCRYO) update_flags |= M.adjustCloneLoss(-4, FALSE) update_flags |= M.adjustOxyLoss(-10, FALSE) update_flags |= M.adjustToxLoss(-3, FALSE) update_flags |= M.adjustBruteLoss(-12, FALSE) update_flags |= M.adjustFireLoss(-12, FALSE) + if(ishuman(M)) var/mob/living/carbon/human/H = M var/obj/item/organ/external/head/head = H.get_organ("head") if(head) head.status &= ~ORGAN_DISFIGURED + return ..() | update_flags /datum/reagent/medicine/rezadone diff --git a/code/modules/reagents/chemistry/recipes.dm b/code/modules/reagents/chemistry/recipes.dm index 9b98a849032..3a759640931 100644 --- a/code/modules/reagents/chemistry/recipes.dm +++ b/code/modules/reagents/chemistry/recipes.dm @@ -3,13 +3,26 @@ var/name = null var/id = null var/result = null + /// A list of IDs of the required reagents. + /// + /// Each ID also needs an associated value that gives us the minimum + /// required amount / of that reagent. The handle_reaction proc can detect + /// mutiples of the same recipes / so for most cases you want to set the + /// required amount to 1. var/list/required_reagents = list() var/list/required_catalysts = list() - // Both of these variables are mostly going to be used with slime cores - but if you want to, you can use them for other things - var/atom/required_container = null // the container required for the reaction to happen - var/required_other = FALSE // extra requirements for the reaction to happen + // Both of these variables are mostly going to be used with slime cores + // but if you want to, you can use them for other things + /// The container required for the reaction to happen. + /// Leave this null if you want the reaction to happen anywhere. + var/atom/required_container = null + /// Extra requirements for the reaction to happen. + var/required_other = FALSE + + /// This is the amount of the resulting reagent this recipe will produce. + /// It's recommended you set this to the total volume of all required reagents. var/result_amount = 0 var/list/secondary_results = list() //additional reagents produced by the reaction var/min_temp = 0 //Minimum temperature required for the reaction to occur (heat to/above this). min_temp = 0 means no requirement diff --git a/code/modules/research/designs/bluespace_designs.dm b/code/modules/research/designs/bluespace_designs.dm index dc213e0aae8..e128238844d 100644 --- a/code/modules/research/designs/bluespace_designs.dm +++ b/code/modules/research/designs/bluespace_designs.dm @@ -15,7 +15,7 @@ name = "Bag of Holding" desc = "A backpack that opens into a localized pocket of Blue Space." id = "bag_holding" - req_tech = list("bluespace" = 7, "materials" = 5, "engineering" = 5, "plasmatech" = 6) + req_tech = list("bluespace" = 7, "materials" = 5, "engineering" = 7, "plasmatech" = 6) build_type = PROTOLATHE materials = list(MAT_GOLD = 3000, MAT_DIAMOND = 1500, MAT_URANIUM = 250, MAT_BLUESPACE = 2000) build_path = /obj/item/storage/backpack/holding @@ -25,7 +25,7 @@ name = "Belt of Holding" desc = "An astonishingly complex belt popularized by a rich blue-space technology magnate." id = "bluespace_belt" - req_tech = list("bluespace" = 7, "materials" = 5, "engineering" = 5, "plasmatech" = 6) + req_tech = list("bluespace" = 7, "materials" = 5, "engineering" = 6, "plasmatech" = 6) build_type = PROTOLATHE materials = list(MAT_GOLD = 1500, MAT_DIAMOND = 3000, MAT_URANIUM = 1000) build_path = /obj/item/storage/belt/bluespace diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 38c09fbdbba..e3c1e9b330a 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -602,7 +602,6 @@ A.unlock() /obj/docking_port/mobile/proc/roadkill(list/L0, list/L1, dir) - var/list/hurt_mobs = list() for(var/i in 1 to L0.len) var/turf/T0 = L0[i] var/turf/T1 = L1[i] @@ -621,17 +620,11 @@ if(isliving(AM)) var/mob/living/L = AM L.stop_pulling() - if(L.anchored) - L.gib() - else - if(!(L in hurt_mobs)) - hurt_mobs |= L - L.visible_message("[L] is hit by \ - a hyperspace ripple[L.anchored ? "":" and is thrown clear"]!", + L.visible_message("[L] is hit by \ + a hyperspace ripple!", "You feel an immense \ crushing pressure as the space around you ripples.") - L.Paralyse(20 SECONDS) - L.ex_act(2) + L.gib() // Move unanchored atoms if(!AM.anchored) diff --git a/code/modules/supply/supply_packs/pack_miscellaneous.dm b/code/modules/supply/supply_packs/pack_miscellaneous.dm index 4408ede78ac..3f0e101f4f6 100644 --- a/code/modules/supply/supply_packs/pack_miscellaneous.dm +++ b/code/modules/supply/supply_packs/pack_miscellaneous.dm @@ -360,6 +360,14 @@ containername = "crate" //let's keep it subtle, eh? contraband = TRUE +/datum/supply_packs/misc/flags + name = "Unapproved flags Crate" + contains = list(/obj/item/flag/ussp, + /obj/item/flag/syndi) + cost = 200 + containername = "flags crate" + contraband = TRUE + /datum/supply_packs/misc/formalwear //This is a very classy crate. name = "Formal Wear Crate" contains = list(/obj/item/clothing/under/dress/blacktango, diff --git a/code/modules/surgery/robotics.dm b/code/modules/surgery/robotics.dm index 083b17f8096..49cbc7c67ec 100644 --- a/code/modules/surgery/robotics.dm +++ b/code/modules/surgery/robotics.dm @@ -666,3 +666,52 @@ user.visible_message(" [user]'s [tool.name] slips, failing to reprogram [target]'s [affected.name].", " Your [tool.name] slips, failing to reprogram [target]'s [affected.name].") return SURGERY_STEP_RETRY + +/datum/surgery/robotics/reconfigure_id + name = "Identity Reconfiguration" + steps = list( + /datum/surgery_step/robotics/external/unscrew_hatch, + /datum/surgery_step/robotics/external/open_hatch, + /datum/surgery_step/robotics/edit_serial, + /datum/surgery_step/robotics/external/close_hatch + ) + possible_locs = list(BODY_ZONE_HEAD) + +/datum/surgery_step/robotics/edit_serial + name = "edit serial number" + allowed_tools = list(TOOL_MULTITOOL = 100) + time = 4.8 SECONDS + +/datum/surgery_step/robotics/edit_serial/begin_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery) + user.visible_message( + "[user] begins to edit [target]'s identity parameters with [tool].", + "You begin to alter [target]'s identity parameters with [tool]." + ) + return ..() + +/datum/surgery_step/robotics/edit_serial/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery) + + var/new_name = copytext(reject_bad_text(input(user, "Choose a name for this machine.", "Set Name", "[target.real_name]") as null|text), 1, MAX_NAME_LEN) + if(!new_name) + to_chat(user, "Invalid name! Please try again.") + return SURGERY_STEP_INCOMPLETE + else if(!target.Adjacent(user)) + to_chat(user, "The multitool is out of range! Please try again.") + return SURGERY_STEP_INCOMPLETE + var/static/list/gender_list = list("Male" = MALE, "Female" = FEMALE, "Genderless" = PLURAL, "Object" = NEUTER) + var/gender_key = input(user, "Choose a gender for this machine.", "Select Gender", target.gender) as null|anything in gender_list + if(!gender_key) + to_chat(user, "You must choose a gender! Please try again.") + return SURGERY_STEP_INCOMPLETE + else if(!target.Adjacent(user)) + to_chat(user, "The multitool is out of range! Please try again.") + return SURGERY_STEP_INCOMPLETE + var/new_gender = gender_list[gender_key] + var/old_name = target.real_name + target.real_name = new_name + target.gender = new_gender + user.visible_message( + "[user] edits [old_name]'s identity parameters with [tool]; [target.p_they()] [target.p_are()] now known as [new_name].", + "You alter [old_name]'s identity parameters with [tool]; [target.p_they()] [target.p_are()] now known as [new_name]." + ) + return SURGERY_STEP_CONTINUE diff --git a/icons/effects/cult_effects.dmi b/icons/effects/cult_effects.dmi index c083384fd9e..a631ca39533 100644 Binary files a/icons/effects/cult_effects.dmi and b/icons/effects/cult_effects.dmi differ diff --git a/icons/mob/clothing/suit.dmi b/icons/mob/clothing/suit.dmi index 21db1922040..11c950ad6aa 100644 Binary files a/icons/mob/clothing/suit.dmi and b/icons/mob/clothing/suit.dmi differ diff --git a/icons/mob/inhands/flags_lefthand.dmi b/icons/mob/inhands/flags_lefthand.dmi index 56e4bc3fe4d..6b5c936dcc8 100644 Binary files a/icons/mob/inhands/flags_lefthand.dmi and b/icons/mob/inhands/flags_lefthand.dmi differ diff --git a/icons/mob/inhands/flags_righthand.dmi b/icons/mob/inhands/flags_righthand.dmi index f72dbfe3e98..85088c7a8df 100644 Binary files a/icons/mob/inhands/flags_righthand.dmi and b/icons/mob/inhands/flags_righthand.dmi differ diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index d378e6c3c42..bc3e6ceb49e 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/cigarettes.dmi b/icons/obj/cigarettes.dmi index 97710ac4805..11277d5e01d 100644 Binary files a/icons/obj/cigarettes.dmi and b/icons/obj/cigarettes.dmi differ diff --git a/icons/obj/custom_items.dmi b/icons/obj/custom_items.dmi index 2026f3a5566..7b7f2d6e815 100644 Binary files a/icons/obj/custom_items.dmi and b/icons/obj/custom_items.dmi differ diff --git a/icons/obj/flag.dmi b/icons/obj/flag.dmi index ffef0076b39..a40092f9038 100644 Binary files a/icons/obj/flag.dmi and b/icons/obj/flag.dmi differ diff --git a/icons/obj/kitchen.dmi b/icons/obj/kitchen.dmi index 4578f5dc589..b8424e583f5 100644 Binary files a/icons/obj/kitchen.dmi and b/icons/obj/kitchen.dmi differ diff --git a/icons/obj/reflector.dmi b/icons/obj/reflector.dmi index 1c6e71bdec4..7222d070416 100644 Binary files a/icons/obj/reflector.dmi and b/icons/obj/reflector.dmi differ diff --git a/icons/turf/walls/cult_wall.dmi b/icons/turf/walls/cult_wall.dmi index 4990c4474ff..844575d4ed1 100644 Binary files a/icons/turf/walls/cult_wall.dmi and b/icons/turf/walls/cult_wall.dmi differ diff --git a/paradise.dme b/paradise.dme index 79f6679295f..92cd3cae6a4 100644 --- a/paradise.dme +++ b/paradise.dme @@ -2027,7 +2027,6 @@ #include "code\modules\mob\living\silicon\ai\freelook\cameranet.dm" #include "code\modules\mob\living\silicon\ai\freelook\chunk.dm" #include "code\modules\mob\living\silicon\ai\freelook\eye.dm" -#include "code\modules\mob\living\silicon\ai\freelook\read_me.dm" #include "code\modules\mob\living\silicon\decoy\death.dm" #include "code\modules\mob\living\silicon\decoy\decoy.dm" #include "code\modules\mob\living\silicon\decoy\life.dm" @@ -2372,7 +2371,6 @@ #include "code\modules\reagents\reagent_dispenser.dm" #include "code\modules\reagents\chemistry\colors.dm" #include "code\modules\reagents\chemistry\holder.dm" -#include "code\modules\reagents\chemistry\readme.dm" #include "code\modules\reagents\chemistry\reagents.dm" #include "code\modules\reagents\chemistry\recipes.dm" #include "code\modules\reagents\chemistry\machinery\chem_dispenser.dm" diff --git a/prof.dll b/prof.dll new file mode 100644 index 00000000000..33a6da22947 Binary files /dev/null and b/prof.dll differ diff --git a/strings/tips.txt b/strings/tips.txt index 4294518f6b1..a53cd2d4348 100644 --- a/strings/tips.txt +++ b/strings/tips.txt @@ -32,26 +32,25 @@ Don't be afraid to ask for help, whether from your peers or from mentors. As the Captain, you are one of the highest priority targets on the station. Everything from nuclear operatives to traitors that need to rob you of your unique lasergun or your life are things to worry about. As the Captain, always take the nuclear disk and pinpointer with you every shift. It's a good idea to give one of these to another head or Blueshield you can trust with keeping it safe. As the Captain, you have absolute access and control over the station, but this does not mean that being a horrible person won't result in mutiny and a ban. -As the Chief Medical Officer, your hypospray is like a refillable instant injection syringe that can hold 30 units and the unlike standard hypospray, yours is able to be filled with harmful reagents and injects without telling anyone what have you exactly injected the person with. +As the Chief Medical Officer, your hypospray is like a refillable instant injection syringe that can hold 30 units and the unlike standard hypospray, yours is able to be filled with harmful reagents and can inject someone without telling anyone what you exactly injected the person with. As the Chief Medical Officer, coordinate and communicate with your doctors, chemists, and geneticists during a nuclear emergency, blob infestation, or some other crisis to keep people alive and fighting. As a Medical Doctor, you can surgically implant or extract things from people's chests. This can range from putting in a bomb to pulling out an alien larva. As a Medical Doctor, you must target the correct limb and be on help intent when trying to perform surgery on someone. As a Medical Doctor, corpses with the "...and their soul has departed" description no longer have a ghost attached to them and aren't revivable or clonable right now, but they might be clonable later. -As a Medical Doctor, treating plasmamen is not impossible! Salbutamol stops them from suffocating and showers stop them from burning alive. You can even perform surgery on them by doing the procedure on a roller bed under a shower. +As a Medical Doctor, remember to have either a shower or fire extinguisher at the ready when cloning plasmamen along with their envirosuit. As a Chemist, there are dozens of chemicals that can heal, and even more that can cause harm. Experiment! As a Chemist, some chemicals can only be synthesized by heating up the contents with a chemical heater or manually with lighters and similar tools. As a Chemist, you will be expected to supply crew with certain chemicals. For example, cryoxadone and mannitol for the cryo tubes, unstable mutagen and saltpetre for botany as well as healing pills and patches for the front desk. As a Chemist, Water and Potassium mixed together will create an explosion, with power scaling by amount used. Don't do it. -As a Geneticist, you can eject someone from cloning early by disabling power in genetics. Note that they will suffer more genetic damage and may lose vital organs from this. -As a Geneticist, becoming a hulk makes you capable of dealing high melee damage, stunlocking people, and punching through walls. However, you can't fire guns, will lose your hulk status if you go into critical condition. Being hulk also does not allow you to break any server rules and go berserk as non-antagonist. +As a Geneticist, becoming a hulk makes you capable of dealing high melee damage, stunlocking people, and punching through walls. However, you can't fire guns and will lose your hulk status if you go into critical condition. Being hulk also does not allow you to break any server rules and go berserk as non-antagonist. As the Virologist, your viruses can range from healing powers so great that you can heal out of critical status, to diseases so dangerous they can kill the entire crew with airborne spontaneous combustion. Experiment! As the Research Director, you can take AIs out of their cores by loading them into an intelliCard, which lets you see their laws, even ion/syndicate ones. It can then be placed into an AI system integrity restorer computer to revive and/or repair them. As the Research Director, you can lock down cyborgs instead of blowing them up. Then you can have their laws reset or if that doesn't work, safely dismantled. As the Research Director, you can spy on and even forge PDA communications with the message monitor console! The key is in your office. As a Scientist, you can maximize the number of uses you get out of a slime by feeding it slime steroid, created from purple slimes, while alive. You can then apply extract enhancer, created from cerulean slimes, on each extract. -As a Scientist, you can disable anomalies by scanning them with an analyzer, then send a signal on the frequency it gives you with a remote signaling device. This will leave behind an anomaly core, which can be used to construct a Phazon mech! +As a Scientist, you can disable anomalies by scanning them with an analyzer, then send a signal on the frequency it gives you with a remote signaling device. This will leave behind an anomaly core, which can be used to construct nifty gadgets! As a Scientist, researchable stock parts can seriously improve the efficiency and speed of machines around the station. In some cases, it can even unlock new functions. -As a Roboticist, keep an ear out for anomaly announcements. If you get your hands on an anomaly core, you can build a Phazon mech! +As a Roboticist, keep an ear out for anomaly announcements. If you get your hands on a bluespace anomaly core, you can build a Phazon mech! As a Roboticist, you can repair your cyborgs with a welding tool. If they have taken burn damage, you can remove their battery, expose the wiring with a screwdriver and replace their wires with a cable coil. As a Roboticist, you can reset a cyborg's module by cutting and mending the reset wire with a wire cutter or using a cyborg reset module. As a Roboticist, you can augment people with cyborg limbs. Augmented limbs can easily be repaired with cables and welders. @@ -64,12 +63,12 @@ As a Cyborg, you are impervious to fires and heat. If you are rogue, you can rel As a Cyborg, you are extremely vulnerable to EMPs as EMPs both stun you and damage you. The ion rifle in the armory or a traitor with an EMP kit can kill you in seconds. As an Engineering Cyborg, you can attach air alarm/fire alarm/APC frames to walls by using your magnetic gripper. As a Medical Cyborg, you can partially perform surgery, as you cannot replace organs, but you cannot fail any surgery steps. -As a Janitor Cyborg, you are the bane of all slaughter demons. Cleaning up blood stains will severely gimp them. +As a Janitor Cyborg, you are the bane of all slaughter demons. Cleaning up blood stains will severely hinder them. As the Chief Engineer, you can rename areas or create entirely new ones using your station blueprints. -As the Chief Engineer, your hardsuit is significantly better than everybody else's. It has the best features of both engineering and atmospherics hardsuits, boasting nigh-invulnerability to radiation and all atmospheric conditions. -As the Chief Engineer, the power flow control console in your office will show you APC infos and lets you control them remotely. -As an Engineer, you can electrify grilles by placing wire "nodes" beneath them: the big seemingly unconnected bulges from a half completed wiring job. The wire will be need to be connected to an active power source in order to function. -As an Engineer, return to Engineering once in a while to check on the engine and SMES cells. It's always a good idea to make sure containment isn't compromised. +As the Chief Engineer, your hardsuit is significantly better than everybody else's. It has the best features of both engineering and atmospherics hardsuits, boasting nigh-invulnerability to radiation and all atmospheric conditions. It even has a built in jet-pack! +As the Chief Engineer, using the power monitor consoles gives you a good overview of all the station APC units and their status. You can also use your PDA to remotely view this by connecting to a monitor console. +As an Engineer, you can electrify grilles and fences by placing wire "nodes" beneath them: the big seemingly unconnected bulges from a half completed wiring job. The wire will be need to be connected to an active power source in order to function. +As an Engineer, return to Engineering once in a while to check on the engines and SMES cells. It's always a good idea to make sure containment isn't compromised or if the SM is still properly being cooled. As an Engineer, you can power the station solely with the solar arrays. They will provide just enough electricity to power the station, however their output is still much worse compared to the true engine. As an Engineer, you can cool a supermatter shard by spraying it with a fire extinguisher. Only for the brave! As an Engineer, you can repair windows by using a welding tool on them while on help intent. @@ -92,7 +91,7 @@ As a Security Officer, mindshield implants can only prevent someone from being t As a Security Officer, examining someone while wearing sechuds or HUDsunglasses will let you set their arrest level, which will cause Beepsky and other security bots to chase after them. As the Detective, keep in mind that people leave fingerprints everywhere and on everything. With the exception of white latex, gloves will hide them. All is not lost, however, as gloves leave fibers specific to their kind such as black or nitrile, pointing to a general department. As the Detective, you can use your forensics scanner from a distance. -As the Detective, your revolver can be modified to load .357 ammunition obtained from a hacked autolathe. Firing it has a decent chance to blow up your revolver. +As the Detective, your energy revolver has a tracking mode. Shoot a fleeing suspect with it and use a crew pinpointer to track their position! As the IAA, try to negotiate with the Warden if sentences seem too high for the crime. As the IAA, you can try to convince the Captain and Head of Security to hold trials for prisoners in the courtroom. As the Head of Personnel, you are not higher ranking than other heads of staff, even though you are expected to take the Captain's place first should he go missing. If the situation seems too rough for you, consider allowing another head to become temporary Captain. @@ -130,6 +129,7 @@ As a Traitor, you may sometimes be assigned to hunt other traitors, and in turn As a Traitor, the syndicate encryption key is very useful for coordinating plans with your fellow traitors -- or, of course, betraying them. As a Traitor, plasma can be injected into many things to sabotage them. Power cells, light bulbs, cigars and e-cigs will all explode when used. As a Traitor, if you can find another Traitor and pool your TC you can buy a mega surplus crate, which costs 40TC but contains a lot of random syndicate gear. +As a Traitor, you can eject someone from cloning early by disabling power in genetics. Note that they will suffer more genetic damage and may lose vital organs from this. As a Nuclear Operative, communication is key! Use ; to speak to your fellow operatives and coordinate an attack plan. As a Nuclear Operative, you should look into purchasing a syndicate cyborg, as they can provide heavy fire support, full access, are immune to conventional stuns, and can easily take down the AI. As a Nuclear Operative, stick together! While your equipment is robust, your fellow operatives are much better at saving your life: they can drag you away from danger while stunned and provide cover fire. @@ -192,4 +192,4 @@ You can make lasertag turrets, for the ultimate lasertag tournament. Blob structures take half damage from brute damage. Use lasers. You can hide paper in vents, but you have to use a screwdriver to open it first. While the Standard Operating Procedures aren't fully rules, they are there for safety and professional reasons. -Killing the Wizard usually ends the round, unless they are a lich or Space Wizard Federation is RAGING. \ No newline at end of file +Killing the Wizard usually ends the round, unless they are a lich or Space Wizard Federation is RAGING. diff --git a/tgui/packages/tgui/interfaces/AccountsUplinkTerminal.js b/tgui/packages/tgui/interfaces/AccountsUplinkTerminal.js index a4c5dfd7517..876fede6fc0 100644 --- a/tgui/packages/tgui/interfaces/AccountsUplinkTerminal.js +++ b/tgui/packages/tgui/interfaces/AccountsUplinkTerminal.js @@ -103,6 +103,7 @@ const AccountsRecordList = (properties, context) => { Account Holder Account Number Account Status + Account Balance {accounts .filter( @@ -112,7 +113,9 @@ const AccountsRecordList = (properties, context) => { '|' + account.account_number + '|' + - account.suspended + account.suspended + + '|' + + account.money ); }) ) @@ -123,6 +126,9 @@ const AccountsRecordList = (properties, context) => { .map((account) => ( act('view_account_detail', { account_num: account.account_number }) } @@ -132,6 +138,7 @@ const AccountsRecordList = (properties, context) => { #{account.account_number} {account.suspended} + {account.money} ))} @@ -153,17 +160,25 @@ const DepartmentAccountsList = (properties, context) => { Department Name Account Number + Account Status + Account Balance {department_accounts .map((account) => ( - act('view_account_detail', { account_num: account.account_number })}> - {account.name} + {account.name} #{account.account_number} + {account.suspended} + {account.money} ))} diff --git a/tgui/packages/tgui/public/tgui.bundle.css b/tgui/packages/tgui/public/tgui.bundle.css index 983bc9bce44..66c1f95b694 100644 --- a/tgui/packages/tgui/public/tgui.bundle.css +++ b/tgui/packages/tgui/public/tgui.bundle.css @@ -1 +1 @@ -body,html{box-sizing:border-box;height:100%;margin:0;font-size:12px}html{overflow:hidden;cursor:default}body{overflow:auto;font-family:Verdana,Geneva,sans-serif}*,:after,:before{box-sizing:inherit}h1,h2,h3,h4,h5,h6{display:block;margin:0;padding:6px 0}h1{font-size:18px}h2{font-size:16px}h3{font-size:14px}h4{font-size:12px}td,th{vertical-align:baseline;text-align:left}.candystripe:nth-child(odd){background-color:rgba(0,0,0,.25)}.color-black{color:#0d0d0d!important}.color-white{color:#fff!important}.color-red{color:#d33!important}.color-orange{color:#f37827!important}.color-yellow{color:#fbd814!important}.color-olive{color:#c0d919!important}.color-green{color:#22be47!important}.color-teal{color:#00c5bd!important}.color-blue{color:#238cdc!important}.color-violet{color:#6c3fcc!important}.color-purple{color:#a93bcd!important}.color-pink{color:#e2439c!important}.color-brown{color:#af6d43!important}.color-grey{color:#7d7d7d!important}.color-good{color:#62b62a!important}.color-average{color:#f1951d!important}.color-bad{color:#d33!important}.color-label{color:#8496ab!important}.color-bg-black{background-color:#000!important}.color-bg-white{background-color:#d9d9d9!important}.color-bg-red{background-color:#bd2020!important}.color-bg-orange{background-color:#d95e0c!important}.color-bg-yellow{background-color:#d9b804!important}.color-bg-olive{background-color:#9aad14!important}.color-bg-green{background-color:#1b9638!important}.color-bg-teal{background-color:#009a93!important}.color-bg-blue{background-color:#1c71b1!important}.color-bg-violet{background-color:#552dab!important}.color-bg-purple{background-color:#8b2baa!important}.color-bg-pink{background-color:#cf2082!important}.color-bg-brown{background-color:#8c5836!important}.color-bg-grey{background-color:#646464!important}.color-bg-good{background-color:#4d9121!important}.color-bg-average{background-color:#cd7a0d!important}.color-bg-bad{background-color:#bd2020!important}.color-bg-label{background-color:#657a94!important}.debug-layout,.debug-layout :not(g):not(path){color:hsla(0,0%,100%,.9)!important;background:transparent!important;outline:1px solid hsla(0,0%,100%,.5)!important;box-shadow:none!important;filter:none!important}.debug-layout:hover,.debug-layout :not(g):not(path):hover{outline-color:hsla(0,0%,100%,.8)!important}.display-none{display:none}.display-block{display:block}.display-inline{display:inline}.display-inline-block{display:inline-block}.m-0{margin:0}.mx-0{margin-left:0;margin-right:0}.my-0{margin-top:0;margin-bottom:0}.ml-0{margin-left:0}.mt-0{margin-top:0}.mr-0{margin-right:0}.mb-0{margin-bottom:0}.m-1{margin:6px}.mx-1{margin-left:6px;margin-right:6px}.my-1{margin-top:6px;margin-bottom:6px}.ml-1{margin-left:6px}.mt-1{margin-top:6px}.mr-1{margin-right:6px}.mb-1{margin-bottom:6px}.m-2{margin:12px}.mx-2{margin-left:12px;margin-right:12px}.my-2{margin-top:12px;margin-bottom:12px}.ml-2{margin-left:12px}.mt-2{margin-top:12px}.mr-2{margin-right:12px}.mb-2{margin-bottom:12px}.outline-dotted{outline-style:dotted!important;outline-width:2px!important}.outline-dashed{outline-style:dashed!important;outline-width:2px!important}.outline-solid{outline-style:solid!important;outline-width:2px!important}.outline-double{outline-style:double!important;outline-width:2px!important}.outline-groove{outline-style:groove!important;outline-width:2px!important}.outline-ridge{outline-style:ridge!important;outline-width:2px!important}.outline-inset{outline-style:inset!important;outline-width:2px!important}.outline-outset{outline-style:outset!important;outline-width:2px!important}.outline-color-black{outline-color:#0d0d0d!important}.outline-color-white{outline-color:#fff!important}.outline-color-red{outline-color:#d33!important}.outline-color-orange{outline-color:#f37827!important}.outline-color-yellow{outline-color:#fbd814!important}.outline-color-olive{outline-color:#c0d919!important}.outline-color-green{outline-color:#22be47!important}.outline-color-teal{outline-color:#00c5bd!important}.outline-color-blue{outline-color:#238cdc!important}.outline-color-violet{outline-color:#6c3fcc!important}.outline-color-purple{outline-color:#a93bcd!important}.outline-color-pink{outline-color:#e2439c!important}.outline-color-brown{outline-color:#af6d43!important}.outline-color-grey{outline-color:#7d7d7d!important}.outline-color-good{outline-color:#62b62a!important}.outline-color-average{outline-color:#f1951d!important}.outline-color-bad{outline-color:#d33!important}.outline-color-label{outline-color:#8496ab!important}.position-relative{position:relative}.position-absolute{position:absolute}.position-fixed{position:fixed}.position-sticky{position:sticky}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-baseline{text-align:baseline}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-pre{white-space:pre}.text-bold{font-weight:700}.text-italic{font-style:italic}.text-underline{text-decoration:underline}.BlockQuote{color:#8496ab;border-left:2px solid #8496ab;padding-left:6px;margin-bottom:6px}.BlockQuote:last-child{margin-bottom:0}.Button{position:relative;display:inline-block;line-height:20px;padding:0 6px;margin-right:2px;white-space:nowrap;outline:0;border-radius:2px;margin-bottom:2px;user-select:none;-ms-user-select:none}.Button:last-child{margin-right:0}.Button .fa,.Button .far,.Button .fas{margin-left:-3px;margin-right:-3px;min-width:16px;text-align:center}.Button--hasContent .fa,.Button--hasContent .far,.Button--hasContent .fas{margin-right:3px}.Button--hasContent.Button--iconRight .fa,.Button--hasContent.Button--iconRight .far,.Button--hasContent.Button--iconRight .fas{margin-right:0;margin-left:3px}.Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.Button--fluid{display:block;margin-left:0;margin-right:0}.Button--color--black{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.Button--color--black:hover{transition:color 0ms,background-color 0ms}.Button--color--black:focus{transition:color .1s,background-color .1s}.Button--color--black:focus,.Button--color--black:hover{background-color:#0a0a0a;color:#fff}.Button--color--white{transition:color 50ms,background-color 50ms;background-color:#d9d9d9;color:#000}.Button--color--white:hover{transition:color 0ms,background-color 0ms}.Button--color--white:focus{transition:color .1s,background-color .1s}.Button--color--white:focus,.Button--color--white:hover{background-color:#f3f3f3;color:#000}.Button--color--red{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--red:hover{transition:color 0ms,background-color 0ms}.Button--color--red:focus{transition:color .1s,background-color .1s}.Button--color--red:focus,.Button--color--red:hover{background-color:#d52b2b;color:#fff}.Button--color--orange{transition:color 50ms,background-color 50ms;background-color:#d95e0c;color:#fff}.Button--color--orange:hover{transition:color 0ms,background-color 0ms}.Button--color--orange:focus{transition:color .1s,background-color .1s}.Button--color--orange:focus,.Button--color--orange:hover{background-color:#ed6f1d;color:#fff}.Button--color--yellow{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--yellow:hover{transition:color 0ms,background-color 0ms}.Button--color--yellow:focus{transition:color .1s,background-color .1s}.Button--color--yellow:focus,.Button--color--yellow:hover{background-color:#f3d00e;color:#000}.Button--color--olive{transition:color 50ms,background-color 50ms;background-color:#9aad14;color:#fff}.Button--color--olive:hover{transition:color 0ms,background-color 0ms}.Button--color--olive:focus{transition:color .1s,background-color .1s}.Button--color--olive:focus,.Button--color--olive:hover{background-color:#afc41f;color:#fff}.Button--color--green{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--color--green:hover{transition:color 0ms,background-color 0ms}.Button--color--green:focus{transition:color .1s,background-color .1s}.Button--color--green:focus,.Button--color--green:hover{background-color:#27ab46;color:#fff}.Button--color--teal{transition:color 50ms,background-color 50ms;background-color:#009a93;color:#fff}.Button--color--teal:hover{transition:color 0ms,background-color 0ms}.Button--color--teal:focus{transition:color .1s,background-color .1s}.Button--color--teal:focus,.Button--color--teal:hover{background-color:#0aafa8;color:#fff}.Button--color--blue{transition:color 50ms,background-color 50ms;background-color:#1c71b1;color:#fff}.Button--color--blue:hover{transition:color 0ms,background-color 0ms}.Button--color--blue:focus{transition:color .1s,background-color .1s}.Button--color--blue:focus,.Button--color--blue:hover{background-color:#2883c8;color:#fff}.Button--color--violet{transition:color 50ms,background-color 50ms;background-color:#552dab;color:#fff}.Button--color--violet:hover{transition:color 0ms,background-color 0ms}.Button--color--violet:focus{transition:color .1s,background-color .1s}.Button--color--violet:focus,.Button--color--violet:hover{background-color:#653ac1;color:#fff}.Button--color--purple{transition:color 50ms,background-color 50ms;background-color:#8b2baa;color:#fff}.Button--color--purple:hover{transition:color 0ms,background-color 0ms}.Button--color--purple:focus{transition:color .1s,background-color .1s}.Button--color--purple:focus,.Button--color--purple:hover{background-color:#9e38c1;color:#fff}.Button--color--pink{transition:color 50ms,background-color 50ms;background-color:#cf2082;color:#fff}.Button--color--pink:hover{transition:color 0ms,background-color 0ms}.Button--color--pink:focus{transition:color .1s,background-color .1s}.Button--color--pink:focus,.Button--color--pink:hover{background-color:#dd3794;color:#fff}.Button--color--brown{transition:color 50ms,background-color 50ms;background-color:#8c5836;color:#fff}.Button--color--brown:hover{transition:color 0ms,background-color 0ms}.Button--color--brown:focus{transition:color .1s,background-color .1s}.Button--color--brown:focus,.Button--color--brown:hover{background-color:#a06844;color:#fff}.Button--color--grey{transition:color 50ms,background-color 50ms;background-color:#646464;color:#fff}.Button--color--grey:hover{transition:color 0ms,background-color 0ms}.Button--color--grey:focus{transition:color .1s,background-color .1s}.Button--color--grey:focus,.Button--color--grey:hover{background-color:#757575;color:#fff}.Button--color--good{transition:color 50ms,background-color 50ms;background-color:#4d9121;color:#fff}.Button--color--good:hover{transition:color 0ms,background-color 0ms}.Button--color--good:focus{transition:color .1s,background-color .1s}.Button--color--good:focus,.Button--color--good:hover{background-color:#5da52d;color:#fff}.Button--color--average{transition:color 50ms,background-color 50ms;background-color:#cd7a0d;color:#fff}.Button--color--average:hover{transition:color 0ms,background-color 0ms}.Button--color--average:focus{transition:color .1s,background-color .1s}.Button--color--average:focus,.Button--color--average:hover{background-color:#e68d18;color:#fff}.Button--color--bad{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--bad:hover{transition:color 0ms,background-color 0ms}.Button--color--bad:focus{transition:color .1s,background-color .1s}.Button--color--bad:focus,.Button--color--bad:hover{background-color:#d52b2b;color:#fff}.Button--color--label{transition:color 50ms,background-color 50ms;background-color:#657a94;color:#fff}.Button--color--label:hover{transition:color 0ms,background-color 0ms}.Button--color--label:focus{transition:color .1s,background-color .1s}.Button--color--label:focus,.Button--color--label:hover{background-color:#7b8da4;color:#fff}.Button--color--default{transition:color 50ms,background-color 50ms;background-color:#3e6189;color:#fff}.Button--color--default:hover{transition:color 0ms,background-color 0ms}.Button--color--default:focus{transition:color .1s,background-color .1s}.Button--color--default:focus,.Button--color--default:hover{background-color:#4c729d;color:#fff}.Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--caution:hover{transition:color 0ms,background-color 0ms}.Button--color--caution:focus{transition:color .1s,background-color .1s}.Button--color--caution:focus,.Button--color--caution:hover{background-color:#f3d00e;color:#000}.Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--danger:hover{transition:color 0ms,background-color 0ms}.Button--color--danger:focus{transition:color .1s,background-color .1s}.Button--color--danger:focus,.Button--color--danger:hover{background-color:#d52b2b;color:#fff}.Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#252525;color:#fff;background-color:rgba(37,37,37,0);color:hsla(0,0%,100%,.5)}.Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.Button--color--transparent:focus{transition:color .1s,background-color .1s}.Button--color--transparent:focus,.Button--color--transparent:hover{background-color:#323232;color:#fff}.Button--disabled{background-color:#999!important}.Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--selected:hover{transition:color 0ms,background-color 0ms}.Button--selected:focus{transition:color .1s,background-color .1s}.Button--selected:focus,.Button--selected:hover{background-color:#27ab46;color:#fff}.Collapsible{margin-bottom:.5rem}.Collapsible:last-child{margin-bottom:0}.ColorBox{display:inline-block;width:12px;height:12px;line-height:12px;text-align:center}.Dimmer{display:flex;justify-content:center;align-items:center;position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(0,0,0,.75);z-index:1}.Divider--horizontal{margin:6px 0}.Divider--horizontal:not(.Divider--hidden){border-top:2px solid hsla(0,0%,100%,.1)}.Divider--vertical{height:100%;margin:0 6px}.Divider--vertical:not(.Divider--hidden){border-left:2px solid hsla(0,0%,100%,.1)}.Dropdown{position:relative}.Dropdown__control{position:relative;display:inline-block;font-family:Verdana,sans-serif;font-size:12px;width:100px;line-height:17px;user-select:none}.Dropdown__arrow-button{float:right;padding-left:6px;border-left:1px solid #000;border-left:1px solid rgba(0,0,0,.25)}.Dropdown__menu{overflow-y:auto;overflow-y:scroll}.Dropdown__menu,.Dropdown__menu-noscroll{position:absolute;z-index:5;width:100px;max-height:200px;border-radius:0 0 2px 2px;background-color:#000;background-color:rgba(0,0,0,.75)}.Dropdown__menu-noscroll{overflow-y:auto}.Dropdown__menuentry{padding:2px 4px;font-family:Verdana,sans-serif;font-size:12px;line-height:17px;transition:background-color .1s}.Dropdown__menuentry:hover{background-color:#444;transition:background-color 0ms}.Dropdown__over{top:auto;bottom:100%}.FatalError{display:block!important;position:absolute;top:0;left:0;right:0;bottom:0;padding:12px;font-size:12px;font-family:Consolas,monospace;color:#fff;background-color:#00d;z-index:1000;overflow:hidden;text-align:center}.FatalError__logo{display:inline-block;text-align:left;font-size:10px;line-height:8px;position:relative;margin-top:12px;top:0;left:0;animation:FatalError__rainbow 2s linear infinite alternate,FatalError__shadow 4s linear infinite alternate,FatalError__tfmX 3s infinite alternate,FatalError__tfmY 4s infinite alternate;white-space:pre-wrap;word-break:break-all}.FatalError__header{margin-top:12px}.FatalError__stack{text-align:left;white-space:pre-wrap;word-break:break-all;margin-top:24px;margin-bottom:24px}.FatalError__footer{margin-bottom:24px}@keyframes FatalError__rainbow{0%{color:#ff0}50%{color:#0ff}to{color:#f0f}}@keyframes FatalError__shadow{0%{left:-2px;text-shadow:4px 0 #f0f}50%{left:0;text-shadow:0 0 #0ff}to{left:2px;text-shadow:-4px 0 #ff0}}@keyframes FatalError__tfmX{0%{left:15px}to{left:-15px}}@keyframes FatalError__tfmY{to{top:-15px}}.Flex{display:-ms-flexbox;display:flex}.Flex--inline{display:inline-flex}.Flex--ie8{display:table!important}.Flex--ie8--column{display:block!important}.Flex--ie8--column>.Flex__item{display:block!important;margin-left:6px;margin-right:6px}.Flex__item--ie8{display:table-cell!important}.Flex--spacing--1{margin:0 -3px}.Flex--spacing--1>.Flex__item{margin:0 3px}.Flex--spacingPrecise--1{margin:-1px}.Flex--spacingPrecise--1>.Flex__item{margin:1px}.Flex--spacing--2{margin:0 -6px}.Flex--spacing--2>.Flex__item{margin:0 6px}.Flex--spacingPrecise--2{margin:-2px}.Flex--spacingPrecise--2>.Flex__item{margin:2px}.Knob{position:relative;font-size:1rem;width:2.6em;height:2.6em;margin:0 auto -.2em;cursor:n-resize}.Knob:after{content:".";color:transparent;line-height:2.5em}.Knob__circle{position:absolute;top:.1em;bottom:.1em;left:.1em;right:.1em;margin:.3em;background-color:#333;background-image:linear-gradient(180deg,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,0));border-radius:50%;box-shadow:0 .05em .5em 0 rgba(0,0,0,.5)}.Knob__cursorBox{position:absolute;top:0;bottom:0;left:0;right:0}.Knob__cursor{position:relative;top:.05em;margin:0 auto;width:.2em;height:.8em;background-color:hsla(0,0%,100%,.9)}.Knob__popupValue,.Knob__popupValue--right{position:absolute;top:-2rem;right:50%;font-size:1rem;text-align:center;padding:.25rem .5rem;background-color:#000;transform:translateX(50%);white-space:nowrap}.Knob__popupValue--right{top:.25rem;right:-50%}.Knob__ring{position:absolute;top:0;bottom:0;left:0;right:0;padding:.1em}.Knob__ringTrackPivot{transform:rotate(135deg)}.Knob__ringTrack{fill:transparent;stroke:hsla(0,0%,100%,.1);stroke-width:8;stroke-linecap:round;stroke-dasharray:235.62}.Knob__ringFillPivot{transform:rotate(135deg)}.Knob--bipolar .Knob__ringFillPivot{transform:rotate(270deg)}.Knob__ringFill{fill:transparent;stroke:#6a96c9;stroke-width:8;stroke-linecap:round;stroke-dasharray:314.16;transition:stroke 50ms}.Knob--color--black .Knob__ringFill{stroke:#0d0d0d}.Knob--color--white .Knob__ringFill{stroke:#fff}.Knob--color--red .Knob__ringFill{stroke:#d33}.Knob--color--orange .Knob__ringFill{stroke:#f37827}.Knob--color--yellow .Knob__ringFill{stroke:#fbd814}.Knob--color--olive .Knob__ringFill{stroke:#c0d919}.Knob--color--green .Knob__ringFill{stroke:#22be47}.Knob--color--teal .Knob__ringFill{stroke:#00c5bd}.Knob--color--blue .Knob__ringFill{stroke:#238cdc}.Knob--color--violet .Knob__ringFill{stroke:#6c3fcc}.Knob--color--purple .Knob__ringFill{stroke:#a93bcd}.Knob--color--pink .Knob__ringFill{stroke:#e2439c}.Knob--color--brown .Knob__ringFill{stroke:#af6d43}.Knob--color--grey .Knob__ringFill{stroke:#7d7d7d}.Knob--color--good .Knob__ringFill{stroke:#62b62a}.Knob--color--average .Knob__ringFill{stroke:#f1951d}.Knob--color--bad .Knob__ringFill{stroke:#d33}.Knob--color--label .Knob__ringFill{stroke:#8496ab}.LabeledList{display:table;width:100%;width:calc(100% + 12px);border-collapse:collapse;border-spacing:0;margin:-3px -6px 0;padding:0}.LabeledList__row{display:table-row}.LabeledList__row:last-child .LabeledList__cell{padding-bottom:0}.LabeledList__cell{display:table-cell;margin:0;padding:3px 6px;border:0;text-align:left;vertical-align:baseline}.LabeledList__label{width:1%;white-space:nowrap;min-width:60px}.LabeledList__buttons{width:.1%;white-space:nowrap;text-align:right;padding-top:1px;padding-bottom:0}.LabeledList__breakContents{word-break:break-all;word-wrap:break-word}.Modal{background-color:#252525;max-width:calc(100% - 1rem);padding:1rem;scrollbar-base-color:#1c1c1c;scrollbar-face-color:#3b3b3b;scrollbar-3dlight-color:#252525;scrollbar-highlight-color:#252525;scrollbar-track-color:#1c1c1c;scrollbar-arrow-color:#929292;scrollbar-shadow-color:#3b3b3b}.NanoMap__container{overflow:hiddden;width:100%;z-index:1}.NanoMap__marker{z-index:10;padding:0;margin:0}.NanoMap__zoomer{z-index:20;background-color:rgba(0,0,0,.33);position:absolute;top:30px;left:0;padding:.5rem;width:20%}.NoticeBox{padding:4px 6px;margin-bottom:6px;box-shadow:none;font-weight:700;font-style:italic;color:#000;background-color:#bb9b68;background-image:repeating-linear-gradient(-45deg,transparent,transparent 10px,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 20px)}.NoticeBox--color--black{color:#fff;background-color:#000}.NoticeBox--color--white{color:#000;background-color:#b3b3b3}.NoticeBox--color--red{color:#fff;background-color:#701f1f}.NoticeBox--color--orange{color:#fff;background-color:#854114}.NoticeBox--color--yellow{color:#000;background-color:#83710d}.NoticeBox--color--olive{color:#000;background-color:#576015}.NoticeBox--color--green{color:#fff;background-color:#174e24}.NoticeBox--color--teal{color:#fff;background-color:#064845}.NoticeBox--color--blue{color:#fff;background-color:#1b4565}.NoticeBox--color--violet{color:#fff;background-color:#3b2864}.NoticeBox--color--purple{color:#fff;background-color:#542663}.NoticeBox--color--pink{color:#fff;background-color:#802257}.NoticeBox--color--brown{color:#fff;background-color:#4c3729}.NoticeBox--color--grey{color:#fff;background-color:#3e3e3e}.NoticeBox--color--good{color:#fff;background-color:#2e4b1a}.NoticeBox--color--average{color:#fff;background-color:#7b4e13}.NoticeBox--color--bad{color:#fff;background-color:#701f1f}.NoticeBox--color--label{color:#fff;background-color:#53565a}.NoticeBox--type--info{color:#fff;background-color:#235982}.NoticeBox--type--success{color:#fff;background-color:#1e662f}.NoticeBox--type--warning{color:#fff;background-color:#a95219}.NoticeBox--type--danger{color:#fff;background-color:#8f2828}.Input{position:relative;display:inline-block;width:120px;border:1px solid #88bfff;border:1px solid rgba(136,191,255,.75);border-radius:2px;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible;white-space:nowrap}.Input--disabled{color:#777;border-color:#848484;border-color:hsla(0,0%,51.8%,.75);background-color:#333;background-color:rgba(0,0,0,.25)}.Input--fluid{display:block;width:auto}.Input__baseline{display:inline-block;color:transparent}.Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:12px;line-height:17px;height:17px;margin:0;padding:0 6px;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.Input__textarea{border:0;width:calc(100% + 4px);font-size:12px;line-height:17px;margin-left:-4px;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit;resize:both;overflow:auto;white-space:pre-wrap}.Input__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.NumberInput{position:relative;display:inline-block;border:1px solid #88bfff;border:1px solid rgba(136,191,255,.75);border-radius:2px;color:#88bfff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 4px;margin-right:2px;line-height:17px;text-align:right;overflow:visible;cursor:n-resize}.NumberInput--fluid{display:block}.NumberInput__content{margin-left:6px}.NumberInput__barContainer{position:absolute;top:2px;bottom:2px;left:2px}.NumberInput__bar{position:absolute;bottom:0;left:0;width:3px;box-sizing:border-box;border-bottom:1px solid #88bfff;background-color:#88bfff}.NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:12px;line-height:17px;height:17px;margin:0;padding:0 6px;font-family:Verdana,sans-serif;background-color:#000;color:#fff;text-align:right}.ProgressBar{display:inline-block;position:relative;width:100%;padding:0 6px;border-radius:2px;background-color:transparent;transition:border-color .5s}.ProgressBar__fill{position:absolute;top:0;left:0;bottom:0}.ProgressBar__fill--animated{transition:background-color .5s,width .5s}.ProgressBar__content{position:relative;line-height:17px;width:100%;text-align:right}.ProgressBar--color--default{border:1px solid #3e6189}.ProgressBar--color--default .ProgressBar__fill{background-color:#3e6189}.ProgressBar--color--black{border:1px solid #000!important}.ProgressBar--color--black .ProgressBar__fill{background-color:#000}.ProgressBar--color--white{border:1px solid #d9d9d9!important}.ProgressBar--color--white .ProgressBar__fill{background-color:#d9d9d9}.ProgressBar--color--red{border:1px solid #bd2020!important}.ProgressBar--color--red .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--orange{border:1px solid #d95e0c!important}.ProgressBar--color--orange .ProgressBar__fill{background-color:#d95e0c}.ProgressBar--color--yellow{border:1px solid #d9b804!important}.ProgressBar--color--yellow .ProgressBar__fill{background-color:#d9b804}.ProgressBar--color--olive{border:1px solid #9aad14!important}.ProgressBar--color--olive .ProgressBar__fill{background-color:#9aad14}.ProgressBar--color--green{border:1px solid #1b9638!important}.ProgressBar--color--green .ProgressBar__fill{background-color:#1b9638}.ProgressBar--color--teal{border:1px solid #009a93!important}.ProgressBar--color--teal .ProgressBar__fill{background-color:#009a93}.ProgressBar--color--blue{border:1px solid #1c71b1!important}.ProgressBar--color--blue .ProgressBar__fill{background-color:#1c71b1}.ProgressBar--color--violet{border:1px solid #552dab!important}.ProgressBar--color--violet .ProgressBar__fill{background-color:#552dab}.ProgressBar--color--purple{border:1px solid #8b2baa!important}.ProgressBar--color--purple .ProgressBar__fill{background-color:#8b2baa}.ProgressBar--color--pink{border:1px solid #cf2082!important}.ProgressBar--color--pink .ProgressBar__fill{background-color:#cf2082}.ProgressBar--color--brown{border:1px solid #8c5836!important}.ProgressBar--color--brown .ProgressBar__fill{background-color:#8c5836}.ProgressBar--color--grey{border:1px solid #646464!important}.ProgressBar--color--grey .ProgressBar__fill{background-color:#646464}.ProgressBar--color--good{border:1px solid #4d9121!important}.ProgressBar--color--good .ProgressBar__fill{background-color:#4d9121}.ProgressBar--color--average{border:1px solid #cd7a0d!important}.ProgressBar--color--average .ProgressBar__fill{background-color:#cd7a0d}.ProgressBar--color--bad{border:1px solid #bd2020!important}.ProgressBar--color--bad .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--label{border:1px solid #657a94!important}.ProgressBar--color--label .ProgressBar__fill{background-color:#657a94}.Section{position:relative;margin-bottom:6px;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box;scrollbar-base-color:#1c1c1c;scrollbar-face-color:#3b3b3b;scrollbar-3dlight-color:#252525;scrollbar-highlight-color:#252525;scrollbar-track-color:#1c1c1c;scrollbar-arrow-color:#929292;scrollbar-shadow-color:#3b3b3b}.Section:last-child{margin-bottom:0}.Section--flex{display:flex;flex-flow:column}.Section--flex .Section__content{overflow:auto;flex:1}.Section__title{padding:6px;border-bottom:2px solid #4972a1}.Section__titleText{font-size:14px;font-weight:700}.Section__buttons{position:absolute;display:inline-block;right:6px;margin-top:-1px}.Section__content{padding:8px 6px}.Section__content--noTopPadding{padding-top:0}.Section__content--stretchContents{height:100%}.Section--level--1 .Section__titleText{font-size:14px}.Section--level--2 .Section__titleText{font-size:13px}.Section--level--3 .Section__titleText{font-size:12px}.Section--level--2,.Section--level--3{background-color:transparent;box-shadow:none;margin-left:-6px;margin-right:-6px}.Slider{cursor:e-resize}.Slider__cursorOffset{position:absolute;top:0;left:0;bottom:0;transition:none!important}.Slider__cursor{position:absolute;top:0;right:-1px;bottom:0;width:0;border-left:2px solid #fff}.Slider__pointer{position:absolute;right:-5px;bottom:-4px;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #fff}.Slider__popupValue{position:absolute;right:0;top:-22px;padding:2px 4px;background-color:#000;transform:translateX(50%);white-space:nowrap}.Table{display:table;width:100%;border-collapse:collapse;border-spacing:0;margin:0}.Table--collapsing{width:auto}.Table__row{display:table-row}.Table__cell{display:table-cell;padding:0 3px}.Table__cell:first-child{padding-left:0}.Table__cell:last-child{padding-right:0}.Table__cell--header,.Table__row--header .Table__cell{font-weight:700;padding-bottom:6px}.Table__cell--collapsing{width:1%;white-space:nowrap}.Tabs--horizontal{border-bottom:2px solid hsla(0,0%,100%,.1);margin-bottom:6px}.Tabs--horizontal .Tabs__tab--altSelection:after{content:"";position:absolute;bottom:0;right:0;left:0;height:2px;width:100%;background-color:#fff;border-radius:2px}.Tabs--vertical{margin-right:9px}.Tabs--vertical .Tabs__tabBox{border-right:2px solid hsla(0,0%,100%,.1);vertical-align:top}.Tabs--vertical .Tabs__tab{display:block!important;margin-right:0!important;margin-bottom:0;padding:1px 9px 0 6px;border-bottom:2px solid hsla(0,0%,100%,.1)}.Tabs--vertical .Tabs__tab:last-child{border-bottom:0}.Tabs--vertical .Tabs__tab--altSelection:after{content:"";position:absolute;top:0;bottom:0;right:0;height:100%;width:3px;background-color:#fff;border-radius:2px}.Tooltip{position:absolute;top:0;left:0;right:0;bottom:0;font-style:normal;font-weight:400}.Tooltip:after{position:absolute;display:block;white-space:nowrap;z-index:2;padding:6px 10px;transform:translateX(-50%);pointer-events:none;visibility:hidden;opacity:0;text-align:left;content:attr(data-tooltip);transition:all .15s;background-color:#000;box-shadow:1px 1px 15px -1px rgba(0,0,0,.5);border-radius:2px}.Tooltip:hover:after{transition:all 70ms;pointer-events:none;visibility:visible;opacity:1}.Tooltip--long:after{width:250px;white-space:normal}.Tooltip--top:after{bottom:100%;left:50%;transform:translateX(-50%) translateY(8px)}.Tooltip--top:hover:after{transform:translateX(-50%) translateY(-8px)}.Tooltip--top-left:after{bottom:100%;right:50%;transform:translateX(12px) translateY(-8px)}.Tooltip--top-left:hover:after{transform:translateX(12px) translateY(8px)}.Tooltip--top-right:after{bottom:100%;left:50%;transform:translateX(-12px) translateY(-8px)}.Tooltip--top-right:hover:after{transform:translateX(-12px) translateY(8px)}.Tooltip--bottom:after{top:100%;left:50%;transform:translateX(-50%) translateY(-8px)}.Tooltip--bottom:hover:after{transform:translateX(-50%) translateY(8px)}.Tooltip--bottom-left:after{top:100%;right:50%;transform:translateX(12px) translateY(-8px)}.Tooltip--bottom-left:hover:after{transform:translateX(12px) translateY(8px)}.Tooltip--bottom-right:after{top:100%;left:50%;transform:translateX(-12px) translateY(-8px)}.Tooltip--bottom-right:hover:after{transform:translateX(-12px) translateY(8px)}.Tooltip--left:after{top:50%;right:100%;transform:translateX(8px) translateY(-50%)}.Tooltip--left:hover:after,.Tooltip--right:after{transform:translateX(-8px) translateY(-50%)}.Tooltip--right:after{top:50%;left:100%}.Tooltip--right:hover:after{transform:translateX(8px) translateY(-50%)}.AccountsUplinkTerminal__list tr>td{text-align:center}.AccountsUplinkTerminal__list tr:not(:first-child){height:24px;line-height:24px;cursor:pointer;transition:background-color 50ms}.AccountsUplinkTerminal__list tr:not(:first-child):focus,.AccountsUplinkTerminal__list tr:not(:first-child):hover{background-color:#252525}.BrigCells__list .Table__cell,.BrigCells__list .Table__row--header{text-align:center}.BrigCells__list .BrigCells__listRow--active .Table__cell{background-color:#890e26}.CameraConsole__left{position:absolute;top:0;bottom:0;left:0;width:220px}.CameraConsole__right{position:absolute;top:0;bottom:0;left:220px;right:0;background-color:rgba(0,0,0,.33)}.CameraConsole__toolbar{left:0;margin:3px 12px 0}.CameraConsole__toolbar,.CameraConsole__toolbarRight{position:absolute;top:0;right:0;height:24px;line-height:24px}.CameraConsole__toolbarRight{margin:4px 6px 0}.CameraConsole__map{position:absolute;top:26px;bottom:0;left:0;right:0;margin:6px;text-align:center}.CameraConsole__map .NoticeBox{margin-top:calc(50% - 24px)}.Contractor *{font-family:Courier New,Courier,monospace}.Contractor .Section__titleText{display:inline-block;max-width:70%}.Contractor .Section__titleText>.Flex{width:100%}.Contractor .Section__titleText>.Flex>.Flex__item:first-of-type{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.Contractor__Contract .Button{font-size:11px;white-space:normal!important}.Contractor__photoZoom{text-align:center}.Contractor__photoZoom>img{width:96px;-ms-interpolation-mode:nearest-neighbor}.Contractor__photoZoom>.Button{position:absolute}.Exofab .Dropdown__control{margin-bottom:-1px}.Exofab .Dropdown__selected-text{overflow:hidden;text-overflow:ellipsis;width:80%;display:inline-block;margin-bottom:-3px}.Exofab__materials{height:100%;overflow:auto}.Exofab__materials .Section__content{height:calc(100% - 31px)}.Exofab__material:not(.Exofab__material--line){margin-bottom:.25rem}.Exofab__material:not(.Exofab__material--line) .Button{width:28px;margin-right:.5rem}.Exofab__material:not(.Exofab__material--line) .Button img{vertical-align:middle}.Exofab__material--line .Button{background-color:transparent;width:14px}.Exofab__material--line .Button img{width:16px}.Exofab__material--name{color:#7e90a7;text-transform:capitalize}.Exofab__material .Button{margin-bottom:0;padding:0;vertical-align:middle}.Exofab__material .Button img{margin-left:-2px}.Exofab__queue{height:100%}.Exofab__queue--queue .Button{margin:0;transform:scale(.75)}.Exofab__queue--queue .Button:first-of-type{margin-left:.25rem}.Exofab__queue--time{text-align:center;color:#7e90a7}.Exofab__queue--deficit{text-align:center;color:#db2828;font-weight:700}.Exofab__queue--deficit>div:not(.Divider){display:inline-block;margin-bottom:-.75rem}.Exofab__queue .Section__content{height:calc(100% - 31px)}.Exofab__queue .Exofab__material--amount{margin-right:.25rem}.Exofab__design--cost{display:inline-block;vertical-align:middle;margin-top:.33rem}.Exofab__design--cost>div{display:inline-block}.Exofab__design--cost .Exofab__material{margin-left:.25rem}.Exofab__design--time{display:inline-block;margin-left:.5rem;color:#7e90a7}.Exofab__design--time i{margin-right:.25rem}.Exofab__designs .Section__content{height:calc(100% - 31px);overflow:auto}.Exofab__building{height:40px}.Exofab__building .ProgressBar{width:100%;height:100%}.Exofab__building .ProgressBar__content{line-height:22px}.Ingredient__Table tr:nth-child(2n){background-color:#333}.Ingredient__Table td{padding:3px}.Library__Booklist tr>td{text-align:center}.Library__Booklist tr:not(:first-child){height:24px;line-height:24px;transition:background-color 50ms}.Library__Booklist tr:not(:first-child):focus,.Library__Booklist tr:not(:first-child):hover{background-color:#252525}.Library__SearchContainer{background-color:rgba(37,37,37,.5)}.Library__SearchContainer tr td:first-child{width:60%}.Newscaster__menu{width:40px;height:100%;margin-right:.5rem;flex-basis:content}.Newscaster__menu .Section__content{padding-left:0}.Newscaster__menuButton{color:#767676;cursor:pointer;position:relative;margin-left:6px;margin-right:1rem;white-space:nowrap;transition:color .1s}.Newscaster__menuButton--title{width:80%;display:none;overflow:hidden;text-overflow:ellipsis}.Newscaster__menuButton--unread{background-color:#e45e5e;color:#fff;font-size:10px;text-align:center;border-radius:32px;display:inline-block;width:12px;position:absolute;left:16px;margin-top:14px}.Newscaster__menuButton--selected{color:#fff}.Newscaster__menuButton--selected:after{content:"";background-color:#4972a1;width:2px;height:24px;position:absolute;left:-6px}.Newscaster__menuButton--security{color:#4972a1}.Newscaster__menuButton i{width:30px;text-align:center;vertical-align:middle;margin-left:-1px;margin-right:.5rem;margin-top:1px}.Newscaster__menuButton:hover{color:#fff}.Newscaster__menuButton:hover:before{background-color:#fff}.Newscaster__menuButton:not(:last-of-type){margin-bottom:.5rem}.Newscaster__menu--open{width:175px}.Newscaster__menu--open .Newscaster__menuButton--title{display:inline-block}.Newscaster__jobCategory--security .Section__title{color:#a14c49;border-bottom:2px solid #a14c49!important}.Newscaster__jobCategory--engineering .Section__title{color:#a17849;border-bottom:2px solid #a17849!important}.Newscaster__jobCategory--medical .Section__title{color:#499ea1;border-bottom:2px solid #499ea1!important}.Newscaster__jobCategory--science .Section__title{color:#a14972;border-bottom:2px solid #a14972!important}.Newscaster__jobCategory--service .Section__title{color:#a1499e;border-bottom:2px solid #a1499e!important}.Newscaster__jobCategory--supply .Section__title{color:#9ea149;border-bottom:2px solid #9ea149!important}.Newscaster__jobCategory:last-child{margin-bottom:.5rem}.Newscaster__jobOpening--command{font-weight:700}.Newscaster__jobOpening:not(:last-child){margin-bottom:.5rem}.Newscaster__emptyNotice{color:#7e90a7;text-align:center;position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%)}.Newscaster__emptyNotice i{margin-bottom:.25rem}.Newscaster__photo{cursor:pointer;width:96px;border:1px solid #000;transition:border-color .1s;-ms-interpolation-mode:nearest-neighbor}.Newscaster__photo:hover{border-color:grey}.Newscaster__photoZoom{text-align:center}.Newscaster__photoZoom>img{transform:scale(2);-ms-interpolation-mode:nearest-neighbor}.Newscaster__photoZoom>.Button{position:absolute;width:64px;left:50%;margin-left:-32px;bottom:1rem}.Newscaster__story--wanted{background-color:rgba(219,40,40,.1)}.Newscaster__story--wanted .Section__title{color:#db2828;border-bottom:2px solid #a14c49!important}.Newscaster__story:last-child{margin-bottom:.5rem}.NuclearBomb__displayBox{background-color:#002003;border:4px inset #e8e4c9;color:#03e017;font-size:24px;font-family:monospace;padding:6px}.NuclearBomb__Button--keypad{background-color:#e8e4c9;border-color:#e8e4c9}.NuclearBomb__Button--keypad:hover{background-color:#f7f6ee!important;border-color:#f7f6ee!important}.NuclearBomb__Button--1{background-color:#d3cfb7!important;border-color:#d3cfb7!important;color:#a9a692!important}.NuclearBomb__Button--E{background-color:#d9b804!important;border-color:#d9b804!important}.NuclearBomb__Button--E:hover{background-color:#f3d00e!important;border-color:#f3d00e!important}.NuclearBomb__Button--C{background-color:#bd2020!important;border-color:#bd2020!important}.NuclearBomb__Button--C:hover{background-color:#d52b2b!important;border-color:#d52b2b!important}.NuclearBomb__NTIcon{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMCIgdmlld0JveD0iMCAwIDQyNSAyMDAiIG9wYWNpdHk9Ii4zMyI+PHBhdGggZD0iTTE3OC4wMDQuMDM5SDEwNi44YTYuNzYxIDYuMDI2IDAgMDAtNi43NjEgNi4wMjV2MTg3Ljg3MmE2Ljc2MSA2LjAyNiAwIDAwNi43NjEgNi4wMjVoNTMuMTA3YTYuNzYxIDYuMDI2IDAgMDA2Ljc2Mi02LjAyNVY5Mi4zOTJsNzIuMjE2IDEwNC43YTYuNzYxIDYuMDI2IDAgMDA1Ljc2IDIuODdIMzE4LjJhNi43NjEgNi4wMjYgMCAwMDYuNzYxLTYuMDI2VjYuMDY0QTYuNzYxIDYuMDI2IDAgMDAzMTguMi4wNGgtNTQuNzE3YTYuNzYxIDYuMDI2IDAgMDAtNi43NiA2LjAyNXYxMDIuNjJMMTgzLjc2MyAyLjkwOWE2Ljc2MSA2LjAyNiAwIDAwLTUuNzYtMi44N3pNNC44NDUgMjIuMTA5QTEzLjQxMiAxMi41MDIgMCAwMTEzLjQ3OC4wMzloNjYuMTE4QTUuMzY1IDUgMCAwMTg0Ljk2IDUuMDR2NzkuODh6TTQyMC4xNTUgMTc3Ljg5MWExMy40MTIgMTIuNTAyIDAgMDEtOC42MzMgMjIuMDdoLTY2LjExOGE1LjM2NSA1IDAgMDEtNS4zNjUtNS4wMDF2LTc5Ljg4eiIvPjwvc3ZnPg==);background-size:70%;background-position:50%;background-repeat:no-repeat}.OreRedemption__Ores .OreHeader,.OreRedemption__Ores .OreLine{min-height:32px;padding:0 .5rem}.OreRedemption__Ores .OreHeader{line-height:32px;background-color:rgba(0,0,0,.33);font-weight:700}.OreRedemption__Ores .OreLine:last-of-type{margin-bottom:.5rem}.OreRedemption__Ores .Section__content{padding:0;height:100%;overflow:auto}.PDA__footer{position:fixed;bottom:0;left:0;right:0;height:30px}.PDA__footer__button{text-align:center;padding-top:4px;padding-bottom:2px;font-size:24px}.PoolController__Buttons .Button:not(:last-child){margin-bottom:8px}.RndConsole{position:relative}.RndConsole__Overlay{position:absolute;display:flex;align-items:stretch;justify-content:stretch;top:0;left:0;width:100%;height:100vh}.RndConsole__LatheCategory__MatchingDesigns .Table__cell{padding-bottom:4px}.RndConsole__MainMenu__Buttons .Button:not(:last-child){margin-bottom:4px}.RndConsole__LatheMaterials .Table__cell:nth-child(2){padding-left:16px}.RndConsole__LatheMaterialStorage .Table__cell{padding:4px 0;border-bottom:1px solid #767676}.RndConsole__Overlay__Wrapper{display:flex;align-items:center;justify-content:stretch;flex-grow:1;padding:24px;background-color:hsla(0,0%,100%,0)}.RndConsole__Overlay__Wrapper .NoticeBox{flex-grow:1;margin-bottom:80px;font-size:18pt;padding:.3em .75em}.RndConsole__RndNavbar .Button{margin-bottom:10px}.Roulette{font-family:Palatino}.Roulette__board{display:table;width:100%;border-collapse:collapse;border:2px solid #fff;margin:0}.Roulette__board-row{padding:0;margin:0}.Roulette__board-cell{display:table-cell;padding:0;margin:0;border:2px solid #fff;font-family:Palatino}.Roulette__board-cell:first-child{padding-left:0}.Roulette__board-cell:last-child{padding-right:0}.Roulette__board-extrabutton{text-align:center;font-size:20px;font-weight:700;height:28px;border:none!important;margin:0!important;padding-top:4px!important;color:#fff!important}.Roulette__lowertable{margin-top:8px;margin-left:80px;margin-right:80px;border-collapse:collapse;border:2px solid #fff;border-spacing:0}.Roulette__lowertable--cell{border:2px solid #fff;padding:0;margin:0}.Roulette__lowertable--betscell{vertical-align:top}.Roulette__lowertable--spinresult{text-align:center;font-size:100px;font-weight:700;vertical-align:middle}.Roulette__lowertable--spinresult-black{background-color:#000}.Roulette__lowertable--spinresult-red{background-color:#db2828}.Roulette__lowertable--spinresult-green{background-color:#20b142}.Roulette__lowertable--spinbutton{margin:0!important;border:none!important;font-size:50px;line-height:60px!important;text-align:center;font-weight:700}.Roulette__lowertable--header{width:1%;text-align:center;font-size:20px;font-weight:700}.Safe--engraving{position:absolute;width:95%;height:96%;left:2.5%;top:2%;border:5px outset #3e4f6a;padding:5px;text-align:center}.Safe--engraving--arrow{color:#35435a}.Safe--engraving--hinge{content:" ";background-color:#191f2a;width:25px;height:40px;position:absolute;right:-15px;margin-top:-20px}.Safe--dialer{margin-bottom:.5rem}.Safe--dialer--number{color:#bbb;display:inline;background-color:#191f2a;font-size:1.5rem;font-weight:700;padding:0 .5rem}.Safe--dialer--right .Button i{z-index:-100}.Safe--dialer .Button{width:80px}.Safe--contents{border:10px solid #191f2a;background-color:#0f131a;height:calc(85% + 7.5px);text-align:left;padding:5px}.Safe--help{position:absolute;bottom:10px;left:5px;width:50%}.SecurityRecords__list tr>td{text-align:center}.SecurityRecords__list tr:not(:first-child){height:24px;line-height:24px;cursor:pointer;transition:background-color 50ms}.SecurityRecords__list tr:not(:first-child):focus,.SecurityRecords__list tr:not(:first-child):hover{background-color:#252525}.SecurityRecords__listRow--arrest{background-color:#740c20}.SecurityRecords__listRow--execute{background-color:#683e8c}.SecurityRecords__listRow--incarcerated{background-color:#633203}.SecurityRecords__listRow--parolled{background-color:#006d7b}.SecurityRecords__listRow--released{background-color:#1c5574}.SecurityRecords__listRow--demote{background-color:#155500}.SecurityRecords__listRow--search{background-color:#987a00}.SecurityRecords__listRow--monitor{background-color:#1f1180}.MedicalRecords__list tr>td{text-align:center}.MedicalRecords__list tr:not(:first-child){height:24px;line-height:24px;cursor:pointer;transition:background-color 50ms}.MedicalRecords__list tr:not(:first-child):focus,.MedicalRecords__list tr:not(:first-child):hover{background-color:#252525}.MedicalRecords__listRow--deceased{background-color:#740c20}.MedicalRecords__listRow--ssd{background-color:#006d7b}.MedicalRecords__listRow--physically_unfit{background-color:#987a00}.MedicalRecords__listRow--disabled{background-color:#1f1180}.MedicalRecords__listMedbot--0{background-color:#2b1414}.Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;margin:6px;scrollbar-base-color:#1c1c1c;scrollbar-face-color:#3b3b3b;scrollbar-3dlight-color:#252525;scrollbar-highlight-color:#252525;scrollbar-track-color:#1c1c1c;scrollbar-arrow-color:#929292;scrollbar-shadow-color:#3b3b3b}.Layout__content--flexRow{display:flex;flex-flow:row}.Layout__content--flexColumn{display:flex;flex-flow:column}.Layout__content--scrollable{overflow-y:auto}.Layout__content--noMargin{margin:0}.TitleBar{background-color:#363636;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#363636;transition:color .25s,background-color .25s}.TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.TitleBar__title{position:absolute;top:0;left:46px;color:hsla(0,0%,100%,.75);font-size:14px;line-height:31px;white-space:nowrap}.TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px}.TitleBar__statusIcon{position:absolute;top:0;left:12px;transition:color .5s;font-size:20px;line-height:32px!important}.TitleBar__minimize{position:absolute;top:6px;right:46px}.TitleBar__close{position:absolute;top:-1px;right:0;width:45px;height:32px;font-size:20px;line-height:31px;text-align:center}.Window{bottom:0;right:0;color:#fff;background-color:#252525;background-image:linear-gradient(180deg,#2a2a2a 0,#202020)}.Window,.Window__titleBar{position:fixed;top:0;left:0}.Window__titleBar{z-index:1;width:100%;height:32px}.Window__rest{top:32px}.Window__dimmer,.Window__rest{position:fixed;bottom:0;left:0;right:0}.Window__dimmer{top:0;background-color:rgba(62,62,62,.25);pointer-events:none}.Window__toast{position:fixed;bottom:0;left:0;right:0;font-size:12px;height:40px;line-height:39px;padding:0 12px;background-color:#131313;color:hsla(0,0%,100%,.8)}.Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;height:20px;cursor:se-resize}.Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;cursor:s-resize}.Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;cursor:e-resize}.Layout__content{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMCIgdmlld0JveD0iMCAwIDQyNSAyMDAiIG9wYWNpdHk9Ii4zMyI+PHBhdGggZD0iTTE3OC4wMDQuMDM5SDEwNi44YTYuNzYxIDYuMDI2IDAgMDAtNi43NjEgNi4wMjV2MTg3Ljg3MmE2Ljc2MSA2LjAyNiAwIDAwNi43NjEgNi4wMjVoNTMuMTA3YTYuNzYxIDYuMDI2IDAgMDA2Ljc2Mi02LjAyNVY5Mi4zOTJsNzIuMjE2IDEwNC43YTYuNzYxIDYuMDI2IDAgMDA1Ljc2IDIuODdIMzE4LjJhNi43NjEgNi4wMjYgMCAwMDYuNzYxLTYuMDI2VjYuMDY0QTYuNzYxIDYuMDI2IDAgMDAzMTguMi4wNGgtNTQuNzE3YTYuNzYxIDYuMDI2IDAgMDAtNi43NiA2LjAyNXYxMDIuNjJMMTgzLjc2MyAyLjkwOWE2Ljc2MSA2LjAyNiAwIDAwLTUuNzYtMi44N3pNNC44NDUgMjIuMTA5QTEzLjQxMiAxMi41MDIgMCAwMTEzLjQ3OC4wMzloNjYuMTE4QTUuMzY1IDUgMCAwMTg0Ljk2IDUuMDR2NzkuODh6TTQyMC4xNTUgMTc3Ljg5MWExMy40MTIgMTIuNTAyIDAgMDEtOC42MzMgMjIuMDdoLTY2LjExOGE1LjM2NSA1IDAgMDEtNS4zNjUtNS4wMDF2LTc5Ljg4eiIvPjwvc3ZnPg==);background-size:70%;background-position:50%;background-repeat:no-repeat}.theme-cardtable .Button{position:relative;display:inline-block;line-height:20px;padding:0 6px;margin-right:2px;white-space:nowrap;outline:0;border-radius:0;margin-bottom:2px;user-select:none;-ms-user-select:none}.theme-cardtable .Button:last-child{margin-right:0}.theme-cardtable .Button .fa,.theme-cardtable .Button .far,.theme-cardtable .Button .fas{margin-left:-3px;margin-right:-3px;min-width:16px;text-align:center}.theme-cardtable .Button--hasContent .fa,.theme-cardtable .Button--hasContent .far,.theme-cardtable .Button--hasContent .fas{margin-right:3px}.theme-cardtable .Button--hasContent.Button--iconRight .fa,.theme-cardtable .Button--hasContent.Button--iconRight .far,.theme-cardtable .Button--hasContent.Button--iconRight .fas{margin-right:0;margin-left:3px}.theme-cardtable .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-cardtable .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-cardtable .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#117039;color:#fff}.theme-cardtable .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--default:focus,.theme-cardtable .Button--color--default:hover{background-color:#1c8247;color:#fff}.theme-cardtable .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-cardtable .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--caution:focus,.theme-cardtable .Button--color--caution:hover{background-color:#d67313;color:#fff}.theme-cardtable .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-cardtable .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--danger:focus,.theme-cardtable .Button--color--danger:hover{background-color:#afb30a;color:#fff}.theme-cardtable .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#117039;color:#fff;background-color:rgba(17,112,57,0);color:hsla(0,0%,100%,.5)}.theme-cardtable .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--transparent:focus,.theme-cardtable .Button--color--transparent:hover{background-color:#1c8247;color:#fff}.theme-cardtable .Button--disabled{background-color:#363636!important}.theme-cardtable .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-cardtable .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--selected:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--selected:focus,.theme-cardtable .Button--selected:hover{background-color:#b31212;color:#fff}.theme-cardtable .Input{position:relative;display:inline-block;width:120px;border:1px solid #88bfff;border:1px solid rgba(136,191,255,.75);border-radius:0;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible;white-space:nowrap}.theme-cardtable .Input--disabled{color:#777;border-color:#848484;border-color:hsla(0,0%,51.8%,.75);background-color:#333;background-color:rgba(0,0,0,.25)}.theme-cardtable .Input--fluid{display:block;width:auto}.theme-cardtable .Input__baseline{display:inline-block;color:transparent}.theme-cardtable .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:12px;line-height:17px;height:17px;margin:0;padding:0 6px;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.theme-cardtable .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-cardtable .Input__textarea{border:0;width:calc(100% + 4px);font-size:12px;line-height:17px;margin-left:-4px;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit;resize:both;overflow:auto;white-space:pre-wrap}.theme-cardtable .Input__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-cardtable .NumberInput{position:relative;display:inline-block;border:1px solid #fff;border:1px solid hsla(0,0%,100%,.75);border-radius:0;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 4px;margin-right:2px;line-height:17px;text-align:right;overflow:visible;cursor:n-resize}.theme-cardtable .NumberInput--fluid{display:block}.theme-cardtable .NumberInput__content{margin-left:6px}.theme-cardtable .NumberInput__barContainer{position:absolute;top:2px;bottom:2px;left:2px}.theme-cardtable .NumberInput__bar{position:absolute;bottom:0;left:0;width:3px;box-sizing:border-box;border-bottom:1px solid #fff;background-color:#fff}.theme-cardtable .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:12px;line-height:17px;height:17px;margin:0;padding:0 6px;font-family:Verdana,sans-serif;background-color:#000;color:#fff;text-align:right}.theme-cardtable .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 6px;border-radius:0;background-color:rgba(0,0,0,.5);transition:border-color .5s}.theme-cardtable .ProgressBar__fill{position:absolute;top:0;left:0;bottom:0}.theme-cardtable .ProgressBar__fill--animated{transition:background-color .5s,width .5s}.theme-cardtable .ProgressBar__content{position:relative;line-height:17px;width:100%;text-align:right}.theme-cardtable .ProgressBar--color--default{border:1px solid #000}.theme-cardtable .ProgressBar--color--default .ProgressBar__fill{background-color:#000}.theme-cardtable .Section{position:relative;margin-bottom:6px;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box;scrollbar-base-color:#0d542b;scrollbar-face-color:#16914a;scrollbar-3dlight-color:#117039;scrollbar-highlight-color:#117039;scrollbar-track-color:#0d542b;scrollbar-arrow-color:#5ae695;scrollbar-shadow-color:#16914a}.theme-cardtable .Section:last-child{margin-bottom:0}.theme-cardtable .Section--flex{display:flex;flex-flow:column}.theme-cardtable .Section--flex .Section__content{overflow:auto;flex:1}.theme-cardtable .Section__title{padding:6px;border-bottom:2px solid #000}.theme-cardtable .Section__titleText{font-size:14px;font-weight:700}.theme-cardtable .Section__buttons{position:absolute;display:inline-block;right:6px;margin-top:-1px}.theme-cardtable .Section__content{padding:8px 6px}.theme-cardtable .Section__content--noTopPadding{padding-top:0}.theme-cardtable .Section__content--stretchContents{height:100%}.theme-cardtable .Section--level--1 .Section__titleText{font-size:14px}.theme-cardtable .Section--level--2 .Section__titleText{font-size:13px}.theme-cardtable .Section--level--3 .Section__titleText{font-size:12px}.theme-cardtable .Section--level--2,.theme-cardtable .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-6px;margin-right:-6px}.theme-cardtable .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;margin:6px;scrollbar-base-color:#0d542b;scrollbar-face-color:#16914a;scrollbar-3dlight-color:#117039;scrollbar-highlight-color:#117039;scrollbar-track-color:#0d542b;scrollbar-arrow-color:#5ae695;scrollbar-shadow-color:#16914a}.theme-cardtable .Layout__content--flexRow{display:flex;flex-flow:row}.theme-cardtable .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-cardtable .Layout__content--scrollable{overflow-y:auto}.theme-cardtable .Layout__content--noMargin{margin:0}.theme-cardtable .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#117039;background-image:linear-gradient(180deg,#117039 0,#117039)}.theme-cardtable .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px}.theme-cardtable .Window__rest{position:fixed;top:32px;bottom:0;left:0;right:0}.theme-cardtable .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(39,148,85,.25);pointer-events:none}.theme-cardtable .Window__toast{position:fixed;bottom:0;left:0;right:0;font-size:12px;height:40px;line-height:39px;padding:0 12px;background-color:#09381d;color:hsla(0,0%,100%,.8)}.theme-cardtable .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;height:20px;cursor:se-resize}.theme-cardtable .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;cursor:s-resize}.theme-cardtable .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;cursor:e-resize}.theme-cardtable .TitleBar{background-color:#381608;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-cardtable .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#381608;transition:color .25s,background-color .25s}.theme-cardtable .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-cardtable .TitleBar__title{position:absolute;top:0;left:46px;color:hsla(0,0%,100%,.75);font-size:14px;line-height:31px;white-space:nowrap}.theme-cardtable .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px}.theme-cardtable .TitleBar__statusIcon{position:absolute;top:0;left:12px;transition:color .5s;font-size:20px;line-height:32px!important}.theme-cardtable .TitleBar__minimize{position:absolute;top:6px;right:46px}.theme-cardtable .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;height:32px;font-size:20px;line-height:31px;text-align:center}.theme-cardtable .Button{border:2px solid #fff}.theme-changeling .Button{position:relative;display:inline-block;line-height:20px;padding:0 6px;margin-right:2px;white-space:nowrap;outline:0;border-radius:2px;margin-bottom:2px;user-select:none;-ms-user-select:none}.theme-changeling .Button:last-child{margin-right:0}.theme-changeling .Button .fa,.theme-changeling .Button .far,.theme-changeling .Button .fas{margin-left:-3px;margin-right:-3px;min-width:16px;text-align:center}.theme-changeling .Button--hasContent .fa,.theme-changeling .Button--hasContent .far,.theme-changeling .Button--hasContent .fas{margin-right:3px}.theme-changeling .Button--hasContent.Button--iconRight .fa,.theme-changeling .Button--hasContent.Button--iconRight .far,.theme-changeling .Button--hasContent.Button--iconRight .fas{margin-right:0;margin-left:3px}.theme-changeling .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-changeling .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-changeling .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#563d6b;color:#fff}.theme-changeling .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-changeling .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-changeling .Button--color--default:focus,.theme-changeling .Button--color--default:hover{background-color:#664b7d;color:#fff}.theme-changeling .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-changeling .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-changeling .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-changeling .Button--color--caution:focus,.theme-changeling .Button--color--caution:hover{background-color:#f3d00e;color:#000}.theme-changeling .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-changeling .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-changeling .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-changeling .Button--color--danger:focus,.theme-changeling .Button--color--danger:hover{background-color:#d52b2b;color:#fff}.theme-changeling .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#2e2633;color:#fff;background-color:rgba(46,38,51,0);color:hsla(0,0%,100%,.5)}.theme-changeling .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-changeling .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-changeling .Button--color--transparent:focus,.theme-changeling .Button--color--transparent:hover{background-color:#3b3341;color:#fff}.theme-changeling .Button--disabled{background-color:#999!important}.theme-changeling .Button--selected{transition:color 50ms,background-color 50ms;background-color:#188552;color:#fff}.theme-changeling .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-changeling .Button--selected:focus{transition:color .1s,background-color .1s}.theme-changeling .Button--selected:focus,.theme-changeling .Button--selected:hover{background-color:#249962;color:#fff}.theme-changeling .Section{position:relative;margin-bottom:6px;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box;scrollbar-base-color:#231d26;scrollbar-face-color:#44384b;scrollbar-3dlight-color:#2e2633;scrollbar-highlight-color:#2e2633;scrollbar-track-color:#231d26;scrollbar-arrow-color:#9986a5;scrollbar-shadow-color:#44384b}.theme-changeling .Section:last-child{margin-bottom:0}.theme-changeling .Section--flex{display:flex;flex-flow:column}.theme-changeling .Section--flex .Section__content{overflow:auto;flex:1}.theme-changeling .Section__title{padding:6px;border-bottom:2px solid #563d6b}.theme-changeling .Section__titleText{font-size:14px;font-weight:700}.theme-changeling .Section__buttons{position:absolute;display:inline-block;right:6px;margin-top:-1px}.theme-changeling .Section__content{padding:8px 6px}.theme-changeling .Section__content--noTopPadding{padding-top:0}.theme-changeling .Section__content--stretchContents{height:100%}.theme-changeling .Section--level--1 .Section__titleText{font-size:14px}.theme-changeling .Section--level--2 .Section__titleText{font-size:13px}.theme-changeling .Section--level--3 .Section__titleText{font-size:12px}.theme-changeling .Section--level--2,.theme-changeling .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-6px;margin-right:-6px}.theme-changeling .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;margin:6px;scrollbar-base-color:#231d26;scrollbar-face-color:#44384b;scrollbar-3dlight-color:#2e2633;scrollbar-highlight-color:#2e2633;scrollbar-track-color:#231d26;scrollbar-arrow-color:#9986a5;scrollbar-shadow-color:#44384b}.theme-changeling .Layout__content--flexRow{display:flex;flex-flow:row}.theme-changeling .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-changeling .Layout__content--scrollable{overflow-y:auto}.theme-changeling .Layout__content--noMargin{margin:0}.theme-changeling .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#2e2633;background-image:linear-gradient(180deg,#3e3345 0,#1e1921)}.theme-changeling .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px}.theme-changeling .Window__rest{position:fixed;top:32px;bottom:0;left:0;right:0}.theme-changeling .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(72,63,78,.25);pointer-events:none}.theme-changeling .Window__toast{position:fixed;bottom:0;left:0;right:0;font-size:12px;height:40px;line-height:39px;padding:0 12px;background-color:#17131a;color:hsla(0,0%,100%,.8)}.theme-changeling .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;height:20px;cursor:se-resize}.theme-changeling .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;cursor:s-resize}.theme-changeling .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;cursor:e-resize}.theme-changeling .TitleBar{background-color:#352d3b;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-changeling .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#352d3b;transition:color .25s,background-color .25s}.theme-changeling .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-changeling .TitleBar__title{position:absolute;top:0;left:46px;color:hsla(0,0%,100%,.75);font-size:14px;line-height:31px;white-space:nowrap}.theme-changeling .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px}.theme-changeling .TitleBar__statusIcon{position:absolute;top:0;left:12px;transition:color .5s;font-size:20px;line-height:32px!important}.theme-changeling .TitleBar__minimize{position:absolute;top:6px;right:46px}.theme-changeling .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;height:32px;font-size:20px;line-height:31px;text-align:center}.theme-changeling .Layout__content{background-image:none}.theme-hackerman .Button{position:relative;display:inline-block;line-height:20px;padding:0 6px;margin-right:2px;white-space:nowrap;outline:0;border-radius:2px;margin-bottom:2px;user-select:none;-ms-user-select:none}.theme-hackerman .Button:last-child{margin-right:0}.theme-hackerman .Button .fa,.theme-hackerman .Button .far,.theme-hackerman .Button .fas{margin-left:-3px;margin-right:-3px;min-width:16px;text-align:center}.theme-hackerman .Button--hasContent .fa,.theme-hackerman .Button--hasContent .far,.theme-hackerman .Button--hasContent .fas{margin-right:3px}.theme-hackerman .Button--hasContent.Button--iconRight .fa,.theme-hackerman .Button--hasContent.Button--iconRight .far,.theme-hackerman .Button--hasContent.Button--iconRight .fas{margin-right:0;margin-left:3px}.theme-hackerman .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-hackerman .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-hackerman .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#0f0;color:#000}.theme-hackerman .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--default:focus,.theme-hackerman .Button--color--default:hover{background-color:#26ff26;color:#000}.theme-hackerman .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-hackerman .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--caution:focus,.theme-hackerman .Button--color--caution:hover{background-color:#f3d00e;color:#000}.theme-hackerman .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-hackerman .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--danger:focus,.theme-hackerman .Button--color--danger:hover{background-color:#d52b2b;color:#fff}.theme-hackerman .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#121b12;color:#fff;background-color:rgba(18,27,18,0);color:hsla(0,0%,100%,.5)}.theme-hackerman .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--transparent:focus,.theme-hackerman .Button--color--transparent:hover{background-color:#1d271d;color:#fff}.theme-hackerman .Button--disabled{background-color:#4a6a4a!important}.theme-hackerman .Button--selected{transition:color 50ms,background-color 50ms;background-color:#0f0;color:#000}.theme-hackerman .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--selected:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--selected:focus,.theme-hackerman .Button--selected:hover{background-color:#26ff26;color:#000}.theme-hackerman .Input{position:relative;display:inline-block;width:120px;border:1px solid #0f0;border:1px solid rgba(0,255,0,.75);border-radius:2px;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible;white-space:nowrap}.theme-hackerman .Input--disabled{color:#777;border-color:#404040;border-color:rgba(64,64,64,.75);background-color:#333;background-color:rgba(0,0,0,.25)}.theme-hackerman .Input--fluid{display:block;width:auto}.theme-hackerman .Input__baseline{display:inline-block;color:transparent}.theme-hackerman .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:12px;line-height:17px;height:17px;margin:0;padding:0 6px;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.theme-hackerman .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-hackerman .Input__textarea{border:0;width:calc(100% + 4px);font-size:12px;line-height:17px;margin-left:-4px;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit;resize:both;overflow:auto;white-space:pre-wrap}.theme-hackerman .Input__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-hackerman .Modal{background-color:#121b12;max-width:calc(100% - 1rem);padding:1rem}.theme-hackerman .Modal,.theme-hackerman .Section{scrollbar-base-color:#0e140e;scrollbar-face-color:#253725;scrollbar-3dlight-color:#121b12;scrollbar-highlight-color:#121b12;scrollbar-track-color:#0e140e;scrollbar-arrow-color:#74a274;scrollbar-shadow-color:#253725}.theme-hackerman .Section{position:relative;margin-bottom:6px;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box}.theme-hackerman .Section:last-child{margin-bottom:0}.theme-hackerman .Section--flex{display:flex;flex-flow:column}.theme-hackerman .Section--flex .Section__content{overflow:auto;flex:1}.theme-hackerman .Section__title{padding:6px;border-bottom:2px solid #0f0}.theme-hackerman .Section__titleText{font-size:14px;font-weight:700}.theme-hackerman .Section__buttons{position:absolute;display:inline-block;right:6px;margin-top:-1px}.theme-hackerman .Section__content{padding:8px 6px}.theme-hackerman .Section__content--noTopPadding{padding-top:0}.theme-hackerman .Section__content--stretchContents{height:100%}.theme-hackerman .Section--level--1 .Section__titleText{font-size:14px}.theme-hackerman .Section--level--2 .Section__titleText{font-size:13px}.theme-hackerman .Section--level--3 .Section__titleText{font-size:12px}.theme-hackerman .Section--level--2,.theme-hackerman .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-6px;margin-right:-6px}.theme-hackerman .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;margin:6px;scrollbar-base-color:#0e140e;scrollbar-face-color:#253725;scrollbar-3dlight-color:#121b12;scrollbar-highlight-color:#121b12;scrollbar-track-color:#0e140e;scrollbar-arrow-color:#74a274;scrollbar-shadow-color:#253725}.theme-hackerman .Layout__content--flexRow{display:flex;flex-flow:row}.theme-hackerman .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-hackerman .Layout__content--scrollable{overflow-y:auto}.theme-hackerman .Layout__content--noMargin{margin:0}.theme-hackerman .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#121b12;background-image:linear-gradient(180deg,#121b12 0,#121b12)}.theme-hackerman .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px}.theme-hackerman .Window__rest{position:fixed;top:32px;bottom:0;left:0;right:0}.theme-hackerman .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(40,50,40,.25);pointer-events:none}.theme-hackerman .Window__toast{position:fixed;bottom:0;left:0;right:0;font-size:12px;height:40px;line-height:39px;padding:0 12px;background-color:#090e09;color:hsla(0,0%,100%,.8)}.theme-hackerman .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;height:20px;cursor:se-resize}.theme-hackerman .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;cursor:s-resize}.theme-hackerman .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;cursor:e-resize}.theme-hackerman .TitleBar{background-color:#223d22;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-hackerman .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#223d22;transition:color .25s,background-color .25s}.theme-hackerman .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-hackerman .TitleBar__title{position:absolute;top:0;left:46px;color:hsla(0,0%,100%,.75);font-size:14px;line-height:31px;white-space:nowrap}.theme-hackerman .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px}.theme-hackerman .TitleBar__statusIcon{position:absolute;top:0;left:12px;transition:color .5s;font-size:20px;line-height:32px!important}.theme-hackerman .TitleBar__minimize{position:absolute;top:6px;right:46px}.theme-hackerman .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;height:32px;font-size:20px;line-height:31px;text-align:center}.theme-hackerman .Layout__content{background-image:none}.theme-hackerman .Button{font-family:monospace;border:2px outset #0a0;outline:1px solid #007a00}.theme-hackerman .candystripe:nth-child(odd){background-color:rgba(0,100,0,.5)}.theme-malfunction .Button{position:relative;display:inline-block;line-height:20px;padding:0 6px;margin-right:2px;white-space:nowrap;outline:0;border-radius:2px;margin-bottom:2px;user-select:none;-ms-user-select:none}.theme-malfunction .Button:last-child{margin-right:0}.theme-malfunction .Button .fa,.theme-malfunction .Button .far,.theme-malfunction .Button .fas{margin-left:-3px;margin-right:-3px;min-width:16px;text-align:center}.theme-malfunction .Button--hasContent .fa,.theme-malfunction .Button--hasContent .far,.theme-malfunction .Button--hasContent .fas{margin-right:3px}.theme-malfunction .Button--hasContent.Button--iconRight .fa,.theme-malfunction .Button--hasContent.Button--iconRight .far,.theme-malfunction .Button--hasContent.Button--iconRight .fas{margin-right:0;margin-left:3px}.theme-malfunction .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-malfunction .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-malfunction .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#910101;color:#fff}.theme-malfunction .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--default:focus,.theme-malfunction .Button--color--default:hover{background-color:#a60b0b;color:#fff}.theme-malfunction .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-malfunction .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--caution:focus,.theme-malfunction .Button--color--caution:hover{background-color:#d67313;color:#fff}.theme-malfunction .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-malfunction .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--danger:focus,.theme-malfunction .Button--color--danger:hover{background-color:#afb30a;color:#fff}.theme-malfunction .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#1b3443;color:#fff;background-color:rgba(27,52,67,0);color:hsla(0,0%,100%,.5)}.theme-malfunction .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--transparent:focus,.theme-malfunction .Button--color--transparent:hover{background-color:#274252;color:#fff}.theme-malfunction .Button--disabled{background-color:#363636!important}.theme-malfunction .Button--selected{transition:color 50ms,background-color 50ms;background-color:#1e5881;color:#fff}.theme-malfunction .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--selected:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--selected:focus,.theme-malfunction .Button--selected:hover{background-color:#2a6894;color:#fff}.theme-malfunction .NoticeBox{padding:4px 6px;margin-bottom:6px;box-shadow:none;font-weight:700;font-style:italic;color:#fff;background-color:#1a3f57;background-image:repeating-linear-gradient(-45deg,transparent,transparent 10px,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 20px)}.theme-malfunction .NoticeBox--type--info{color:#fff;background-color:#235982}.theme-malfunction .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-malfunction .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-malfunction .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-malfunction .Input{position:relative;display:inline-block;width:120px;border:1px solid #910101;border:1px solid rgba(145,1,1,.75);border-radius:2px;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible;white-space:nowrap}.theme-malfunction .Input--disabled{color:#777;border-color:#090909;border-color:rgba(9,9,9,.75);background-color:#333;background-color:rgba(0,0,0,.25)}.theme-malfunction .Input--fluid{display:block;width:auto}.theme-malfunction .Input__baseline{display:inline-block;color:transparent}.theme-malfunction .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:12px;line-height:17px;height:17px;margin:0;padding:0 6px;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.theme-malfunction .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-malfunction .Input__textarea{border:0;width:calc(100% + 4px);font-size:12px;line-height:17px;margin-left:-4px;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit;resize:both;overflow:auto;white-space:pre-wrap}.theme-malfunction .Input__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-malfunction .NumberInput{position:relative;display:inline-block;border:1px solid #910101;border:1px solid rgba(145,1,1,.75);border-radius:2px;color:#910101;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 4px;margin-right:2px;line-height:17px;text-align:right;overflow:visible;cursor:n-resize}.theme-malfunction .NumberInput--fluid{display:block}.theme-malfunction .NumberInput__content{margin-left:6px}.theme-malfunction .NumberInput__barContainer{position:absolute;top:2px;bottom:2px;left:2px}.theme-malfunction .NumberInput__bar{position:absolute;bottom:0;left:0;width:3px;box-sizing:border-box;border-bottom:1px solid #910101;background-color:#910101}.theme-malfunction .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:12px;line-height:17px;height:17px;margin:0;padding:0 6px;font-family:Verdana,sans-serif;background-color:#000;color:#fff;text-align:right}.theme-malfunction .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 6px;border-radius:2px;background-color:rgba(0,0,0,.5);transition:border-color .5s}.theme-malfunction .ProgressBar__fill{position:absolute;top:0;left:0;bottom:0}.theme-malfunction .ProgressBar__fill--animated{transition:background-color .5s,width .5s}.theme-malfunction .ProgressBar__content{position:relative;line-height:17px;width:100%;text-align:right}.theme-malfunction .ProgressBar--color--default{border:1px solid #7b0101}.theme-malfunction .ProgressBar--color--default .ProgressBar__fill{background-color:#7b0101}.theme-malfunction .Section{position:relative;margin-bottom:6px;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box;scrollbar-base-color:#142732;scrollbar-face-color:#274b61;scrollbar-3dlight-color:#1b3443;scrollbar-highlight-color:#1b3443;scrollbar-track-color:#142732;scrollbar-arrow-color:#6ba2c3;scrollbar-shadow-color:#274b61}.theme-malfunction .Section:last-child{margin-bottom:0}.theme-malfunction .Section--flex{display:flex;flex-flow:column}.theme-malfunction .Section--flex .Section__content{overflow:auto;flex:1}.theme-malfunction .Section__title{padding:6px;border-bottom:2px solid #910101}.theme-malfunction .Section__titleText{font-size:14px;font-weight:700}.theme-malfunction .Section__buttons{position:absolute;display:inline-block;right:6px;margin-top:-1px}.theme-malfunction .Section__content{padding:8px 6px}.theme-malfunction .Section__content--noTopPadding{padding-top:0}.theme-malfunction .Section__content--stretchContents{height:100%}.theme-malfunction .Section--level--1 .Section__titleText{font-size:14px}.theme-malfunction .Section--level--2 .Section__titleText{font-size:13px}.theme-malfunction .Section--level--3 .Section__titleText{font-size:12px}.theme-malfunction .Section--level--2,.theme-malfunction .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-6px;margin-right:-6px}.theme-malfunction .Tooltip{position:absolute;top:0;left:0;right:0;bottom:0;font-style:normal;font-weight:400}.theme-malfunction .Tooltip:after{position:absolute;display:block;white-space:nowrap;z-index:2;padding:6px 10px;transform:translateX(-50%);pointer-events:none;visibility:hidden;opacity:0;text-align:left;content:attr(data-tooltip);transition:all .15s;background-color:#235577;box-shadow:1px 1px 15px -1px rgba(0,0,0,.5);border-radius:2px}.theme-malfunction .Tooltip:hover:after{transition:all 70ms;pointer-events:none;visibility:visible;opacity:1}.theme-malfunction .Tooltip--long:after{width:250px;white-space:normal}.theme-malfunction .Tooltip--top:after{bottom:100%;left:50%;transform:translateX(-50%) translateY(8px)}.theme-malfunction .Tooltip--top:hover:after{transform:translateX(-50%) translateY(-8px)}.theme-malfunction .Tooltip--top-left:after{bottom:100%;right:50%;transform:translateX(12px) translateY(-8px)}.theme-malfunction .Tooltip--top-left:hover:after{transform:translateX(12px) translateY(8px)}.theme-malfunction .Tooltip--top-right:after{bottom:100%;left:50%;transform:translateX(-12px) translateY(-8px)}.theme-malfunction .Tooltip--top-right:hover:after{transform:translateX(-12px) translateY(8px)}.theme-malfunction .Tooltip--bottom:after{top:100%;left:50%;transform:translateX(-50%) translateY(-8px)}.theme-malfunction .Tooltip--bottom:hover:after{transform:translateX(-50%) translateY(8px)}.theme-malfunction .Tooltip--bottom-left:after{top:100%;right:50%;transform:translateX(12px) translateY(-8px)}.theme-malfunction .Tooltip--bottom-left:hover:after{transform:translateX(12px) translateY(8px)}.theme-malfunction .Tooltip--bottom-right:after{top:100%;left:50%;transform:translateX(-12px) translateY(-8px)}.theme-malfunction .Tooltip--bottom-right:hover:after{transform:translateX(-12px) translateY(8px)}.theme-malfunction .Tooltip--left:after{top:50%;right:100%;transform:translateX(8px) translateY(-50%)}.theme-malfunction .Tooltip--left:hover:after,.theme-malfunction .Tooltip--right:after{transform:translateX(-8px) translateY(-50%)}.theme-malfunction .Tooltip--right:after{top:50%;left:100%}.theme-malfunction .Tooltip--right:hover:after{transform:translateX(8px) translateY(-50%)}.theme-malfunction .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;margin:6px;scrollbar-base-color:#142732;scrollbar-face-color:#274b61;scrollbar-3dlight-color:#1b3443;scrollbar-highlight-color:#1b3443;scrollbar-track-color:#142732;scrollbar-arrow-color:#6ba2c3;scrollbar-shadow-color:#274b61}.theme-malfunction .Layout__content--flexRow{display:flex;flex-flow:row}.theme-malfunction .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-malfunction .Layout__content--scrollable{overflow-y:auto}.theme-malfunction .Layout__content--noMargin{margin:0}.theme-malfunction .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#1b3443;background-image:linear-gradient(180deg,#244559 0,#12232d)}.theme-malfunction .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px}.theme-malfunction .Window__rest{position:fixed;top:32px;bottom:0;left:0;right:0}.theme-malfunction .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(50,79,96,.25);pointer-events:none}.theme-malfunction .Window__toast{position:fixed;bottom:0;left:0;right:0;font-size:12px;height:40px;line-height:39px;padding:0 12px;background-color:#0e1a22;color:hsla(0,0%,100%,.8)}.theme-malfunction .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;height:20px;cursor:se-resize}.theme-malfunction .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;cursor:s-resize}.theme-malfunction .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;cursor:e-resize}.theme-malfunction .TitleBar{background-color:#1a3f57;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-malfunction .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#1a3f57;transition:color .25s,background-color .25s}.theme-malfunction .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-malfunction .TitleBar__title{position:absolute;top:0;left:46px;color:hsla(0,0%,100%,.75);font-size:14px;line-height:31px;white-space:nowrap}.theme-malfunction .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px}.theme-malfunction .TitleBar__statusIcon{position:absolute;top:0;left:12px;transition:color .5s;font-size:20px;line-height:32px!important}.theme-malfunction .TitleBar__minimize{position:absolute;top:6px;right:46px}.theme-malfunction .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;height:32px;font-size:20px;line-height:31px;text-align:center}.theme-malfunction .Layout__content{background-image:none}.theme-ntos .Button{position:relative;display:inline-block;line-height:20px;padding:0 6px;margin-right:2px;white-space:nowrap;outline:0;border-radius:2px;margin-bottom:2px;user-select:none;-ms-user-select:none}.theme-ntos .Button:last-child{margin-right:0}.theme-ntos .Button .fa,.theme-ntos .Button .far,.theme-ntos .Button .fas{margin-left:-3px;margin-right:-3px;min-width:16px;text-align:center}.theme-ntos .Button--hasContent .fa,.theme-ntos .Button--hasContent .far,.theme-ntos .Button--hasContent .fas{margin-right:3px}.theme-ntos .Button--hasContent.Button--iconRight .fa,.theme-ntos .Button--hasContent.Button--iconRight .far,.theme-ntos .Button--hasContent.Button--iconRight .fas{margin-right:0;margin-left:3px}.theme-ntos .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-ntos .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-ntos .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#384e68;color:#fff}.theme-ntos .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--default:focus,.theme-ntos .Button--color--default:hover{background-color:#465e7a;color:#fff}.theme-ntos .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-ntos .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--caution:focus,.theme-ntos .Button--color--caution:hover{background-color:#f3d00e;color:#000}.theme-ntos .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-ntos .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--danger:focus,.theme-ntos .Button--color--danger:hover{background-color:#d52b2b;color:#fff}.theme-ntos .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#1f2b39;color:#fff;background-color:rgba(31,43,57,0);color:rgba(227,240,255,.75)}.theme-ntos .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--transparent:focus,.theme-ntos .Button--color--transparent:hover{background-color:#2b3847;color:#fff}.theme-ntos .Button--disabled{background-color:#999!important}.theme-ntos .Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.theme-ntos .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--selected:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--selected:focus,.theme-ntos .Button--selected:hover{background-color:#27ab46;color:#fff}.theme-ntos .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 6px;border-radius:2px;background-color:rgba(0,0,0,.5);transition:border-color .5s}.theme-ntos .ProgressBar__fill{position:absolute;top:0;left:0;bottom:0}.theme-ntos .ProgressBar__fill--animated{transition:background-color .5s,width .5s}.theme-ntos .ProgressBar__content{position:relative;line-height:17px;width:100%;text-align:right}.theme-ntos .ProgressBar--color--default{border:1px solid #384e68}.theme-ntos .ProgressBar--color--default .ProgressBar__fill{background-color:#384e68}.theme-ntos .Section{position:relative;margin-bottom:6px;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box;scrollbar-base-color:#17202b;scrollbar-face-color:#2e3f55;scrollbar-3dlight-color:#1f2b39;scrollbar-highlight-color:#1f2b39;scrollbar-track-color:#17202b;scrollbar-arrow-color:#7693b5;scrollbar-shadow-color:#2e3f55}.theme-ntos .Section:last-child{margin-bottom:0}.theme-ntos .Section--flex{display:flex;flex-flow:column}.theme-ntos .Section--flex .Section__content{overflow:auto;flex:1}.theme-ntos .Section__title{padding:6px;border-bottom:2px solid #4972a1}.theme-ntos .Section__titleText{font-size:14px;font-weight:700}.theme-ntos .Section__buttons{position:absolute;display:inline-block;right:6px;margin-top:-1px}.theme-ntos .Section__content{padding:8px 6px}.theme-ntos .Section__content--noTopPadding{padding-top:0}.theme-ntos .Section__content--stretchContents{height:100%}.theme-ntos .Section--level--1 .Section__titleText{font-size:14px}.theme-ntos .Section--level--2 .Section__titleText{font-size:13px}.theme-ntos .Section--level--3 .Section__titleText{font-size:12px}.theme-ntos .Section--level--2,.theme-ntos .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-6px;margin-right:-6px}.theme-ntos .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;margin:6px;scrollbar-base-color:#17202b;scrollbar-face-color:#2e3f55;scrollbar-3dlight-color:#1f2b39;scrollbar-highlight-color:#1f2b39;scrollbar-track-color:#17202b;scrollbar-arrow-color:#7693b5;scrollbar-shadow-color:#2e3f55}.theme-ntos .Layout__content--flexRow{display:flex;flex-flow:row}.theme-ntos .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-ntos .Layout__content--scrollable{overflow-y:auto}.theme-ntos .Layout__content--noMargin{margin:0}.theme-ntos .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#1f2b39;background-image:linear-gradient(180deg,#223040 0,#1b2633)}.theme-ntos .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px}.theme-ntos .Window__rest{position:fixed;top:32px;bottom:0;left:0;right:0}.theme-ntos .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(55,69,85,.25);pointer-events:none}.theme-ntos .Window__toast{position:fixed;bottom:0;left:0;right:0;font-size:12px;height:40px;line-height:39px;padding:0 12px;background-color:#0f151d;color:hsla(0,0%,100%,.8)}.theme-ntos .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;height:20px;cursor:se-resize}.theme-ntos .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;cursor:s-resize}.theme-ntos .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;cursor:e-resize}.theme-ntos .TitleBar{background-color:#2a3b4e;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-ntos .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#2a3b4e;transition:color .25s,background-color .25s}.theme-ntos .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-ntos .TitleBar__title{position:absolute;top:0;left:46px;color:hsla(0,0%,100%,.75);font-size:14px;line-height:31px;white-space:nowrap}.theme-ntos .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px}.theme-ntos .TitleBar__statusIcon{position:absolute;top:0;left:12px;transition:color .5s;font-size:20px;line-height:32px!important}.theme-ntos .TitleBar__minimize{position:absolute;top:6px;right:46px}.theme-ntos .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;height:32px;font-size:20px;line-height:31px;text-align:center}.theme-retro .Button{position:relative;display:inline-block;line-height:20px;padding:0 6px;margin-right:2px;white-space:nowrap;outline:0;border-radius:0;margin-bottom:2px;user-select:none;-ms-user-select:none}.theme-retro .Button:last-child{margin-right:0}.theme-retro .Button .fa,.theme-retro .Button .far,.theme-retro .Button .fas{margin-left:-3px;margin-right:-3px;min-width:16px;text-align:center}.theme-retro .Button--hasContent .fa,.theme-retro .Button--hasContent .far,.theme-retro .Button--hasContent .fas{margin-right:3px}.theme-retro .Button--hasContent.Button--iconRight .fa,.theme-retro .Button--hasContent.Button--iconRight .far,.theme-retro .Button--hasContent.Button--iconRight .fas{margin-right:0;margin-left:3px}.theme-retro .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-retro .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-retro .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#e8e4c9;color:#000}.theme-retro .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--default:focus,.theme-retro .Button--color--default:hover{background-color:#f7f6ee;color:#000}.theme-retro .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-retro .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--caution:focus,.theme-retro .Button--color--caution:hover{background-color:#d67313;color:#fff}.theme-retro .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-retro .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--danger:focus,.theme-retro .Button--color--danger:hover{background-color:#afb30a;color:#fff}.theme-retro .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#e8e4c9;color:#000;background-color:rgba(232,228,201,0);color:hsla(0,0%,100%,.5)}.theme-retro .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--transparent:focus,.theme-retro .Button--color--transparent:hover{background-color:#f7f6ee;color:#000}.theme-retro .Button--disabled{background-color:#363636!important}.theme-retro .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-retro .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--selected:focus{transition:color .1s,background-color .1s}.theme-retro .Button--selected:focus,.theme-retro .Button--selected:hover{background-color:#b31212;color:#fff}.theme-retro .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 6px;border-radius:0;background-color:rgba(0,0,0,.5);transition:border-color .5s}.theme-retro .ProgressBar__fill{position:absolute;top:0;left:0;bottom:0}.theme-retro .ProgressBar__fill--animated{transition:background-color .5s,width .5s}.theme-retro .ProgressBar__content{position:relative;line-height:17px;width:100%;text-align:right}.theme-retro .ProgressBar--color--default{border:1px solid #000}.theme-retro .ProgressBar--color--default .ProgressBar__fill{background-color:#000}.theme-retro .Section{position:relative;margin-bottom:6px;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box;scrollbar-base-color:#c8be7d;scrollbar-face-color:#eae7ce;scrollbar-3dlight-color:#e8e4c9;scrollbar-highlight-color:#e8e4c9;scrollbar-track-color:#c8be7d;scrollbar-arrow-color:#f4f2e4;scrollbar-shadow-color:#eae7ce}.theme-retro .Section:last-child{margin-bottom:0}.theme-retro .Section--flex{display:flex;flex-flow:column}.theme-retro .Section--flex .Section__content{overflow:auto;flex:1}.theme-retro .Section__title{padding:6px;border-bottom:2px solid #000}.theme-retro .Section__titleText{font-size:14px;font-weight:700}.theme-retro .Section__buttons{position:absolute;display:inline-block;right:6px;margin-top:-1px}.theme-retro .Section__content{padding:8px 6px}.theme-retro .Section__content--noTopPadding{padding-top:0}.theme-retro .Section__content--stretchContents{height:100%}.theme-retro .Section--level--1 .Section__titleText{font-size:14px}.theme-retro .Section--level--2 .Section__titleText{font-size:13px}.theme-retro .Section--level--3 .Section__titleText{font-size:12px}.theme-retro .Section--level--2,.theme-retro .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-6px;margin-right:-6px}.theme-retro .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;margin:6px;scrollbar-base-color:#c8be7d;scrollbar-face-color:#eae7ce;scrollbar-3dlight-color:#e8e4c9;scrollbar-highlight-color:#e8e4c9;scrollbar-track-color:#c8be7d;scrollbar-arrow-color:#f4f2e4;scrollbar-shadow-color:#eae7ce}.theme-retro .Layout__content--flexRow{display:flex;flex-flow:row}.theme-retro .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-retro .Layout__content--scrollable{overflow-y:auto}.theme-retro .Layout__content--noMargin{margin:0}.theme-retro .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#e8e4c9;background-image:linear-gradient(180deg,#e8e4c9 0,#e8e4c9)}.theme-retro .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px}.theme-retro .Window__rest{position:fixed;top:32px;bottom:0;left:0;right:0}.theme-retro .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(251,250,246,.25);pointer-events:none}.theme-retro .Window__toast{position:fixed;bottom:0;left:0;right:0;font-size:12px;height:40px;line-height:39px;padding:0 12px;background-color:#988d41;color:hsla(0,0%,100%,.8)}.theme-retro .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;height:20px;cursor:se-resize}.theme-retro .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;cursor:s-resize}.theme-retro .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;cursor:e-resize}.theme-retro .TitleBar{background-color:#585337;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-retro .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#585337;transition:color .25s,background-color .25s}.theme-retro .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-retro .TitleBar__title{position:absolute;top:0;left:46px;color:hsla(0,0%,100%,.75);font-size:14px;line-height:31px;white-space:nowrap}.theme-retro .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px}.theme-retro .TitleBar__statusIcon{position:absolute;top:0;left:12px;transition:color .5s;font-size:20px;line-height:32px!important}.theme-retro .TitleBar__minimize{position:absolute;top:6px;right:46px}.theme-retro .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;height:32px;font-size:20px;line-height:31px;text-align:center}.theme-retro .Button{font-family:monospace;color:#161613;border:8px outset #e8e4c9;outline:3px solid #161613}.theme-retro .Layout__content{background-image:none}.theme-safe .Section{position:relative;margin-bottom:6px;background-color:#c4c195;background-color:#b2ae74;box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box;scrollbar-base-color:#1a202c;scrollbar-face-color:#313f54;scrollbar-3dlight-color:#222b3a;scrollbar-highlight-color:#222b3a;scrollbar-track-color:#1a202c;scrollbar-arrow-color:#7b90b2;scrollbar-shadow-color:#313f54}.theme-safe .Section:last-child{margin-bottom:0}.theme-safe .Section--flex{display:flex;flex-flow:column}.theme-safe .Section--flex .Section__content{overflow:auto;flex:1}.theme-safe .Section__title{padding:6px;border-bottom:2px solid #3d566b}.theme-safe .Section__titleText{font-size:14px;font-weight:700}.theme-safe .Section__buttons{position:absolute;display:inline-block;right:6px;margin-top:-1px}.theme-safe .Section__content{padding:8px 6px}.theme-safe .Section__content--noTopPadding{padding-top:0}.theme-safe .Section__content--stretchContents{height:100%}.theme-safe .Section--level--1 .Section__titleText{font-size:14px}.theme-safe .Section--level--2 .Section__titleText{font-size:13px}.theme-safe .Section--level--3 .Section__titleText{font-size:12px}.theme-safe .Section--level--2,.theme-safe .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-6px;margin-right:-6px}.theme-safe .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#222b3a;background-image:linear-gradient(180deg,#242d3d 0,#202937)}.theme-safe .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px}.theme-safe .Window__rest{position:fixed;top:32px;bottom:0;left:0;right:0}.theme-safe .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(58,69,86,.25);pointer-events:none}.theme-safe .Window__toast{position:fixed;bottom:0;left:0;right:0;font-size:12px;height:40px;line-height:39px;padding:0 12px;background-color:#11161d;color:hsla(0,0%,100%,.8)}.theme-safe .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;height:20px;cursor:se-resize}.theme-safe .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;cursor:s-resize}.theme-safe .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;cursor:e-resize}.theme-safe .TitleBar{background-color:#35435a;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-safe .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#35435a;transition:color .25s,background-color .25s}.theme-safe .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-safe .TitleBar__title{position:absolute;top:0;left:46px;color:hsla(0,0%,100%,.75);font-size:14px;line-height:31px;white-space:nowrap}.theme-safe .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px}.theme-safe .TitleBar__statusIcon{position:absolute;top:0;left:12px;transition:color .5s;font-size:20px;line-height:32px!important}.theme-safe .TitleBar__minimize{position:absolute;top:6px;right:46px}.theme-safe .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;height:32px;font-size:20px;line-height:31px;text-align:center}.theme-safe .Safe--engraving{position:absolute;width:95%;height:96%;left:2.5%;top:2%;border:5px outset #3e4f6a;padding:5px;text-align:center}.theme-safe .Safe--engraving--arrow{color:#35435a}.theme-safe .Safe--engraving--hinge{content:" ";background-color:#191f2a;width:25px;height:40px;position:absolute;right:-15px;margin-top:-20px}.theme-safe .Safe--dialer{margin-bottom:.5rem}.theme-safe .Safe--dialer--number{color:#bbb;display:inline;background-color:#191f2a;font-size:1.5rem;font-weight:700;padding:0 .5rem}.theme-safe .Safe--dialer--right .Button i{z-index:-100}.theme-safe .Safe--dialer .Button{width:80px}.theme-safe .Safe--contents{border:10px solid #191f2a;background-color:#0f131a;height:calc(85% + 7.5px);text-align:left;padding:5px}.theme-safe .Safe--help{position:absolute;bottom:10px;left:5px;width:50%}.theme-safe .Layout__content{background-image:none}.theme-safe .Section{font-family:Comic Sans MS,cursive,sans-serif;font-style:italic;color:#000;box-shadow:5px 5px #111;background-image:linear-gradient(180deg,#b2ae74 0,#8e8b5d);transform:rotate(-1deg)}.theme-safe .Section__title{padding-bottom:0;border:0}.theme-safe .Section:before{content:" ";display:block;width:24px;height:40px;background-image:linear-gradient(180deg,transparent 0,#fff);box-shadow:1px 1px #111;opacity:.2;position:absolute;top:-30px;left:calc(50% - 12px);transform:rotate(-5deg)}.theme-security .color-label{color:#ab8784!important}.theme-security .color-bg-good{background-color:#4d9121!important}.theme-security .Button{position:relative;display:inline-block;line-height:20px;padding:0 6px;margin-right:2px;white-space:nowrap;outline:0;border-radius:2px;margin-bottom:2px;user-select:none;-ms-user-select:none}.theme-security .Button:last-child{margin-right:0}.theme-security .Button .fa,.theme-security .Button .far,.theme-security .Button .fas{margin-left:-3px;margin-right:-3px;min-width:16px;text-align:center}.theme-security .Button--hasContent .fa,.theme-security .Button--hasContent .far,.theme-security .Button--hasContent .fas{margin-right:3px}.theme-security .Button--hasContent.Button--iconRight .fa,.theme-security .Button--hasContent.Button--iconRight .far,.theme-security .Button--hasContent.Button--iconRight .fas{margin-right:0;margin-left:3px}.theme-security .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-security .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-security .Button--color--good{transition:color 50ms,background-color 50ms;background-color:#4d9121;color:#fff}.theme-security .Button--color--good:hover{transition:color 0ms,background-color 0ms}.theme-security .Button--color--good:focus{transition:color .1s,background-color .1s}.theme-security .Button--color--good:focus,.theme-security .Button--color--good:hover{background-color:#5da52d;color:#fff}.theme-security .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#a14c49;color:#fff}.theme-security .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-security .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-security .Button--color--default:focus,.theme-security .Button--color--default:hover{background-color:#b35f5c;color:#fff}.theme-security .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-security .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-security .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-security .Button--color--caution:focus,.theme-security .Button--color--caution:hover{background-color:#f3d00e;color:#000}.theme-security .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-security .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-security .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-security .Button--color--danger:focus,.theme-security .Button--color--danger:hover{background-color:#d52b2b;color:#fff}.theme-security .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#252525;color:#fff;background-color:rgba(37,37,37,0);color:hsla(0,0%,100%,.5)}.theme-security .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-security .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-security .Button--color--transparent:focus,.theme-security .Button--color--transparent:hover{background-color:#323232;color:#fff}.theme-security .Button--disabled{background-color:#999!important}.theme-security .Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.theme-security .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-security .Button--selected:focus{transition:color .1s,background-color .1s}.theme-security .Button--selected:focus,.theme-security .Button--selected:hover{background-color:#27ab46;color:#fff}.theme-security .Input{position:relative;display:inline-block;width:120px;border:1px solid #ff8d88;border:1px solid rgba(255,141,136,.75);border-radius:2px;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible;white-space:nowrap}.theme-security .Input--disabled{color:#777;border-color:#848484;border-color:hsla(0,0%,51.8%,.75);background-color:#333;background-color:rgba(0,0,0,.25)}.theme-security .Input--fluid{display:block;width:auto}.theme-security .Input__baseline{display:inline-block;color:transparent}.theme-security .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:12px;line-height:17px;height:17px;margin:0;padding:0 6px;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.theme-security .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-security .Input__textarea{border:0;width:calc(100% + 4px);font-size:12px;line-height:17px;margin-left:-4px;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit;resize:both;overflow:auto;white-space:pre-wrap}.theme-security .Input__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-security .NoticeBox{padding:4px 6px;margin-bottom:6px;box-shadow:none;font-weight:700;font-style:italic;color:#000;background-color:#bb9b68;background-image:repeating-linear-gradient(-45deg,transparent,transparent 10px,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 20px)}.theme-security .NoticeBox--color--good{color:#fff;background-color:#2e4b1a}.theme-security .NoticeBox--type--info{color:#fff;background-color:#822329}.theme-security .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-security .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-security .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-security .Section{position:relative;margin-bottom:6px;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box;scrollbar-base-color:#1c1c1c;scrollbar-face-color:#3b3b3b;scrollbar-3dlight-color:#252525;scrollbar-highlight-color:#252525;scrollbar-track-color:#1c1c1c;scrollbar-arrow-color:#929292;scrollbar-shadow-color:#3b3b3b}.theme-security .Section:last-child{margin-bottom:0}.theme-security .Section--flex{display:flex;flex-flow:column}.theme-security .Section--flex .Section__content{overflow:auto;flex:1}.theme-security .Section__title{padding:6px;border-bottom:2px solid #a14c49}.theme-security .Section__titleText{font-size:14px;font-weight:700}.theme-security .Section__buttons{position:absolute;display:inline-block;right:6px;margin-top:-1px}.theme-security .Section__content{padding:8px 6px}.theme-security .Section__content--noTopPadding{padding-top:0}.theme-security .Section__content--stretchContents{height:100%}.theme-security .Section--level--1 .Section__titleText{font-size:14px}.theme-security .Section--level--2 .Section__titleText{font-size:13px}.theme-security .Section--level--3 .Section__titleText{font-size:12px}.theme-security .Section--level--2,.theme-security .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-6px;margin-right:-6px}.theme-security .Newscaster__menu{width:40px;height:100%;margin-right:.5rem;flex-basis:content}.theme-security .Newscaster__menu .Section__content{padding-left:0}.theme-security .Newscaster__menuButton{color:#767676;cursor:pointer;position:relative;margin-left:6px;margin-right:1rem;white-space:nowrap;transition:color .1s}.theme-security .Newscaster__menuButton--title{width:80%;display:none;overflow:hidden;text-overflow:ellipsis}.theme-security .Newscaster__menuButton--unread{background-color:#e45e5e;color:#fff;font-size:10px;text-align:center;border-radius:32px;display:inline-block;width:12px;position:absolute;left:16px;margin-top:14px}.theme-security .Newscaster__menuButton--selected{color:#fff}.theme-security .Newscaster__menuButton--selected:after{content:"";background-color:#a14c49;width:2px;height:24px;position:absolute;left:-6px}.theme-security .Newscaster__menuButton--security{color:#a14c49}.theme-security .Newscaster__menuButton i{width:30px;text-align:center;vertical-align:middle;margin-left:-1px;margin-right:.5rem;margin-top:1px}.theme-security .Newscaster__menuButton:hover{color:#fff}.theme-security .Newscaster__menuButton:hover:before{background-color:#fff}.theme-security .Newscaster__menuButton:not(:last-of-type){margin-bottom:.5rem}.theme-security .Newscaster__menu--open{width:175px}.theme-security .Newscaster__menu--open .Newscaster__menuButton--title{display:inline-block}.theme-security .Newscaster__jobCategory--security .Section__title{color:#a14c49;border-bottom:2px solid #a14c49!important}.theme-security .Newscaster__jobCategory--engineering .Section__title{color:#a17849;border-bottom:2px solid #a17849!important}.theme-security .Newscaster__jobCategory--medical .Section__title{color:#499ea1;border-bottom:2px solid #499ea1!important}.theme-security .Newscaster__jobCategory--science .Section__title{color:#a14972;border-bottom:2px solid #a14972!important}.theme-security .Newscaster__jobCategory--service .Section__title{color:#a1499e;border-bottom:2px solid #a1499e!important}.theme-security .Newscaster__jobCategory--supply .Section__title{color:#9ea149;border-bottom:2px solid #9ea149!important}.theme-security .Newscaster__jobCategory:last-child{margin-bottom:.5rem}.theme-security .Newscaster__jobOpening--command{font-weight:700}.theme-security .Newscaster__jobOpening:not(:last-child){margin-bottom:.5rem}.theme-security .Newscaster__emptyNotice{color:#a7817e;text-align:center;position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%)}.theme-security .Newscaster__emptyNotice i{margin-bottom:.25rem}.theme-security .Newscaster__photo{cursor:pointer;width:96px;border:1px solid #000;transition:border-color .1s;-ms-interpolation-mode:nearest-neighbor}.theme-security .Newscaster__photo:hover{border-color:grey}.theme-security .Newscaster__photoZoom{text-align:center}.theme-security .Newscaster__photoZoom>img{transform:scale(2);-ms-interpolation-mode:nearest-neighbor}.theme-security .Newscaster__photoZoom>.Button{position:absolute;width:64px;left:50%;margin-left:-32px;bottom:1rem}.theme-security .Newscaster__story--wanted{background-color:rgba(219,40,40,.1)}.theme-security .Newscaster__story--wanted .Section__title{color:#db2828;border-bottom:2px solid #a14c49!important}.theme-security .Newscaster__story:last-child{margin-bottom:.5rem}.theme-syndicate .Button{position:relative;display:inline-block;line-height:20px;padding:0 6px;margin-right:2px;white-space:nowrap;outline:0;border-radius:2px;margin-bottom:2px;user-select:none;-ms-user-select:none}.theme-syndicate .Button:last-child{margin-right:0}.theme-syndicate .Button .fa,.theme-syndicate .Button .far,.theme-syndicate .Button .fas{margin-left:-3px;margin-right:-3px;min-width:16px;text-align:center}.theme-syndicate .Button--hasContent .fa,.theme-syndicate .Button--hasContent .far,.theme-syndicate .Button--hasContent .fas{margin-right:3px}.theme-syndicate .Button--hasContent.Button--iconRight .fa,.theme-syndicate .Button--hasContent.Button--iconRight .far,.theme-syndicate .Button--hasContent.Button--iconRight .fas{margin-right:0;margin-left:3px}.theme-syndicate .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-syndicate .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-syndicate .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#397439;color:#fff}.theme-syndicate .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--default:focus,.theme-syndicate .Button--color--default:hover{background-color:#478647;color:#fff}.theme-syndicate .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-syndicate .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--caution:focus,.theme-syndicate .Button--color--caution:hover{background-color:#d67313;color:#fff}.theme-syndicate .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-syndicate .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--danger:focus,.theme-syndicate .Button--color--danger:hover{background-color:#afb30a;color:#fff}.theme-syndicate .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#550202;color:#fff;background-color:rgba(85,2,2,0);color:hsla(0,0%,100%,.5)}.theme-syndicate .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--transparent:focus,.theme-syndicate .Button--color--transparent:hover{background-color:#650c0c;color:#fff}.theme-syndicate .Button--disabled{background-color:#363636!important}.theme-syndicate .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-syndicate .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--selected:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--selected:focus,.theme-syndicate .Button--selected:hover{background-color:#b31212;color:#fff}.theme-syndicate .NoticeBox{padding:4px 6px;margin-bottom:6px;box-shadow:none;font-weight:700;font-style:italic;color:#fff;background-color:#910101;background-image:repeating-linear-gradient(-45deg,transparent,transparent 10px,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 20px)}.theme-syndicate .NoticeBox--type--info{color:#fff;background-color:#235982}.theme-syndicate .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-syndicate .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-syndicate .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-syndicate .Input{position:relative;display:inline-block;width:120px;border:1px solid #87ce87;border:1px solid rgba(135,206,135,.75);border-radius:2px;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible;white-space:nowrap}.theme-syndicate .Input--disabled{color:#777;border-color:#6b6b6b;border-color:hsla(0,0%,42%,.75);background-color:#333;background-color:rgba(0,0,0,.25)}.theme-syndicate .Input--fluid{display:block;width:auto}.theme-syndicate .Input__baseline{display:inline-block;color:transparent}.theme-syndicate .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:12px;line-height:17px;height:17px;margin:0;padding:0 6px;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.theme-syndicate .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-syndicate .Input__textarea{border:0;width:calc(100% + 4px);font-size:12px;line-height:17px;margin-left:-4px;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit;resize:both;overflow:auto;white-space:pre-wrap}.theme-syndicate .Input__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-syndicate .NumberInput{position:relative;display:inline-block;border:1px solid #87ce87;border:1px solid rgba(135,206,135,.75);border-radius:2px;color:#87ce87;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 4px;margin-right:2px;line-height:17px;text-align:right;overflow:visible;cursor:n-resize}.theme-syndicate .NumberInput--fluid{display:block}.theme-syndicate .NumberInput__content{margin-left:6px}.theme-syndicate .NumberInput__barContainer{position:absolute;top:2px;bottom:2px;left:2px}.theme-syndicate .NumberInput__bar{position:absolute;bottom:0;left:0;width:3px;box-sizing:border-box;border-bottom:1px solid #87ce87;background-color:#87ce87}.theme-syndicate .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:12px;line-height:17px;height:17px;margin:0;padding:0 6px;font-family:Verdana,sans-serif;background-color:#000;color:#fff;text-align:right}.theme-syndicate .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 6px;border-radius:2px;background-color:rgba(0,0,0,.5);transition:border-color .5s}.theme-syndicate .ProgressBar__fill{position:absolute;top:0;left:0;bottom:0}.theme-syndicate .ProgressBar__fill--animated{transition:background-color .5s,width .5s}.theme-syndicate .ProgressBar__content{position:relative;line-height:17px;width:100%;text-align:right}.theme-syndicate .ProgressBar--color--default{border:1px solid #306330}.theme-syndicate .ProgressBar--color--default .ProgressBar__fill{background-color:#306330}.theme-syndicate .Section{position:relative;margin-bottom:6px;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box;scrollbar-base-color:#400202;scrollbar-face-color:#7e0303;scrollbar-3dlight-color:#550202;scrollbar-highlight-color:#550202;scrollbar-track-color:#400202;scrollbar-arrow-color:#fa3030;scrollbar-shadow-color:#7e0303}.theme-syndicate .Section:last-child{margin-bottom:0}.theme-syndicate .Section--flex{display:flex;flex-flow:column}.theme-syndicate .Section--flex .Section__content{overflow:auto;flex:1}.theme-syndicate .Section__title{padding:6px;border-bottom:2px solid #397439}.theme-syndicate .Section__titleText{font-size:14px;font-weight:700}.theme-syndicate .Section__buttons{position:absolute;display:inline-block;right:6px;margin-top:-1px}.theme-syndicate .Section__content{padding:8px 6px}.theme-syndicate .Section__content--noTopPadding{padding-top:0}.theme-syndicate .Section__content--stretchContents{height:100%}.theme-syndicate .Section--level--1 .Section__titleText{font-size:14px}.theme-syndicate .Section--level--2 .Section__titleText{font-size:13px}.theme-syndicate .Section--level--3 .Section__titleText{font-size:12px}.theme-syndicate .Section--level--2,.theme-syndicate .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-6px;margin-right:-6px}.theme-syndicate .Tooltip{position:absolute;top:0;left:0;right:0;bottom:0;font-style:normal;font-weight:400}.theme-syndicate .Tooltip:after{position:absolute;display:block;white-space:nowrap;z-index:2;padding:6px 10px;transform:translateX(-50%);pointer-events:none;visibility:hidden;opacity:0;text-align:left;content:attr(data-tooltip);transition:all .15s;background-color:#4a0202;box-shadow:1px 1px 15px -1px rgba(0,0,0,.5);border-radius:2px}.theme-syndicate .Tooltip:hover:after{transition:all 70ms;pointer-events:none;visibility:visible;opacity:1}.theme-syndicate .Tooltip--long:after{width:250px;white-space:normal}.theme-syndicate .Tooltip--top:after{bottom:100%;left:50%;transform:translateX(-50%) translateY(8px)}.theme-syndicate .Tooltip--top:hover:after{transform:translateX(-50%) translateY(-8px)}.theme-syndicate .Tooltip--top-left:after{bottom:100%;right:50%;transform:translateX(12px) translateY(-8px)}.theme-syndicate .Tooltip--top-left:hover:after{transform:translateX(12px) translateY(8px)}.theme-syndicate .Tooltip--top-right:after{bottom:100%;left:50%;transform:translateX(-12px) translateY(-8px)}.theme-syndicate .Tooltip--top-right:hover:after{transform:translateX(-12px) translateY(8px)}.theme-syndicate .Tooltip--bottom:after{top:100%;left:50%;transform:translateX(-50%) translateY(-8px)}.theme-syndicate .Tooltip--bottom:hover:after{transform:translateX(-50%) translateY(8px)}.theme-syndicate .Tooltip--bottom-left:after{top:100%;right:50%;transform:translateX(12px) translateY(-8px)}.theme-syndicate .Tooltip--bottom-left:hover:after{transform:translateX(12px) translateY(8px)}.theme-syndicate .Tooltip--bottom-right:after{top:100%;left:50%;transform:translateX(-12px) translateY(-8px)}.theme-syndicate .Tooltip--bottom-right:hover:after{transform:translateX(-12px) translateY(8px)}.theme-syndicate .Tooltip--left:after{top:50%;right:100%;transform:translateX(8px) translateY(-50%)}.theme-syndicate .Tooltip--left:hover:after,.theme-syndicate .Tooltip--right:after{transform:translateX(-8px) translateY(-50%)}.theme-syndicate .Tooltip--right:after{top:50%;left:100%}.theme-syndicate .Tooltip--right:hover:after{transform:translateX(8px) translateY(-50%)}.theme-syndicate .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;margin:6px;scrollbar-base-color:#400202;scrollbar-face-color:#7e0303;scrollbar-3dlight-color:#550202;scrollbar-highlight-color:#550202;scrollbar-track-color:#400202;scrollbar-arrow-color:#fa3030;scrollbar-shadow-color:#7e0303}.theme-syndicate .Layout__content--flexRow{display:flex;flex-flow:row}.theme-syndicate .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-syndicate .Layout__content--scrollable{overflow-y:auto}.theme-syndicate .Layout__content--noMargin{margin:0}.theme-syndicate .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#550202;background-image:linear-gradient(180deg,#730303 0,#370101)}.theme-syndicate .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px}.theme-syndicate .Window__rest{position:fixed;top:32px;bottom:0;left:0;right:0}.theme-syndicate .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(117,22,22,.25);pointer-events:none}.theme-syndicate .Window__toast{position:fixed;bottom:0;left:0;right:0;font-size:12px;height:40px;line-height:39px;padding:0 12px;background-color:#2b0101;color:hsla(0,0%,100%,.8)}.theme-syndicate .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;height:20px;cursor:se-resize}.theme-syndicate .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;cursor:s-resize}.theme-syndicate .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;cursor:e-resize}.theme-syndicate .TitleBar{background-color:#910101;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-syndicate .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#910101;transition:color .25s,background-color .25s}.theme-syndicate .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-syndicate .TitleBar__title{position:absolute;top:0;left:46px;color:hsla(0,0%,100%,.75);font-size:14px;line-height:31px;white-space:nowrap}.theme-syndicate .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px}.theme-syndicate .TitleBar__statusIcon{position:absolute;top:0;left:12px;transition:color .5s;font-size:20px;line-height:32px!important}.theme-syndicate .TitleBar__minimize{position:absolute;top:6px;right:46px}.theme-syndicate .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;height:32px;font-size:20px;line-height:31px;text-align:center}.theme-syndicate .Layout__content{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMCIgdmlld0JveD0iMCAwIDIwMCAyODkuNzQyIiBvcGFjaXR5PSIuMzMiPjxwYXRoIGQ9Ik05My41MzggMGMtMTguMTEzIDAtMzQuMjIgMy4xMTItNDguMzI0IDkuMzM0LTEzLjk2NSA2LjIyMi0yNC42MTIgMTUuMDcyLTMxLjk0IDI2LjU0N0M2LjA4NCA0Ny4yMiAyLjk3MiA2MC42MzEgMi45NzIgNzYuMTE2YzAgMTAuNjQ3IDIuNzI1IDIwLjQ2NSA4LjE3NSAyOS40NTMgNS42MTYgOC45ODcgMTQuMDM5IDE3LjM1MiAyNS4yNyAyNS4wOTQgMTEuMjMgNy42MDYgMjYuNTA3IDE1LjQxOSA0NS44MyAyMy40MzggMTkuOTg0IDguMjk2IDM0Ljg0OSAxNS41NTUgNDQuNTkzIDIxLjc3NiA5Ljc0NCA2LjIyMyAxNi43NjEgMTIuODU5IDIxLjA1NSAxOS45MSA0LjI5NSA3LjA1MiA2LjQ0MiAxNS43NjQgNi40NDIgMjYuMTM0IDAgMTYuMTc4LTUuMjAyIDI4LjQ4My0xNS42MDYgMzYuOTE3LTEwLjI0IDguNDM1LTI1LjAyMiAxMi42NTMtNDQuMzQ1IDEyLjY1My0xNC4wMzkgMC0yNS41MTYtMS42Ni0zNC40MzQtNC45NzgtOC45MTgtMy40NTctMTYuMTg2LTguNzExLTIxLjgtMTUuNzYzLTUuNjE2LTcuMDUyLTEwLjA3Ni0xNi42NjEtMTMuMzc5LTI4LjgyOUgwdjU2LjgyN2MzMy44NTcgNy4zMjggNjMuNzQ5IDEwLjk5NCA4OS42NzggMTAuOTk0IDE2LjAyIDAgMzAuNzItMS4zODMgNDQuMDk4LTQuMTQ4IDEzLjU0Mi0yLjkwNCAyNS4xMDQtNy40NjcgMzQuNjgzLTEzLjY5IDkuNzQ0LTYuMzU5IDE3LjM0LTE0LjUxOSAyMi43OS0yNC40NzQgNS40NS0xMC4wOTMgOC4xNzUtMjIuNCA4LjE3NS0zNi45MTcgMC0xMi45OTctMy4zMDItMjQuMzM1LTkuOTA4LTM0LjAxNC02LjQ0LTkuODE4LTE1LjUyNS0xOC41MjctMjcuMjUxLTI2LjEzMi0xMS41NjEtNy42MDQtMjcuOTExLTE1LjgzMS00OS4wNTEtMjQuNjgtMTcuNTA2LTcuMTktMzAuNzItMTMuNjktMzkuNjM4LTE5LjQ5N1M1NC45NjkgOTMuNzU2IDQ5LjQ3OSA4Ny4zMTZjLTUuNDI2LTYuMzY2LTkuNjU4LTE1LjA3LTkuNjU4LTI0Ljg4NyAwLTkuMjY0IDIuMDc1LTE3LjIxNCA2LjIyMy0yMy44NUM1Ny4xNDIgMjQuMTggODcuMzMxIDM2Ljc4MiA5MS4xMiA2Mi45MjVjNC44NCA2Ljc3NSA4Ljg1IDE2LjI0NyAxMi4wMyAyOC40MTVoMjAuNTMydi01NmMtNC40NzktNS45MjQtOS45NTUtMTAuNjMxLTE1LjkwOS0xNC4zNzMgMS42NC40NzkgMy4xOSAxLjAyMyA0LjYzOSAxLjY0IDYuNDk4IDIuNjI2IDEyLjE2OCA3LjMyNyAxNy4wMDcgMTQuMTAzIDQuODQgNi43NzUgOC44NSAxNi4yNDYgMTIuMDMgMjguNDE0IDAgMCA4LjQ4LS4xMjkgOC40OS0uMDAyLjQxNyA2LjQxNS0xLjc1NCA5LjQ1My00LjEyNCAxMi41NjEtMi40MTcgMy4xNy01LjE0NSA2Ljc5LTQuMDAzIDEzLjAwMyAxLjUwOCA4LjIwMyAxMC4xODQgMTAuNTk3IDE0LjYyMiA5LjMxMi0zLjMxOC0uNS01LjMxOC0xLjc1LTUuMzE4LTEuNzVzMS44NzYuOTk5IDUuNjUtMS4zNmMtMy4yNzYuOTU2LTEwLjcwNC0uNzk3LTExLjgtNi43NjMtLjk1OC01LjIwOC45NDYtNy4yOTUgMy40LTEwLjUxNCAyLjQ1NS0zLjIyIDUuMjg1LTYuOTU5IDQuNjg1LTE0LjQ4OWwuMDAzLjAwMmg4LjkyN3YtNTZjLTE1LjA3Mi0zLjg3MS0yNy42NTMtNi4zNi0zNy43NDctNy40NjVDMTE0LjI3OS41NTIgMTA0LjA0NiAwIDkzLjUzNyAwem03MC4zMjEgMTcuMzA5bC4yMzggNDAuMzA1YzEuMzE4IDEuMjI2IDIuNDQgMi4yNzggMy4zNDEgMy4xMDYgNC44NCA2Ljc3NSA4Ljg1IDE2LjI0NiAxMi4wMyAyOC40MTRIMjAwdi01NmMtNi42NzctNC41OTQtMTkuODM2LTEwLjQ3My0zNi4xNC0xNS44MjV6bS0yOC4xMiA1LjYwNWw4LjU2NSAxNy43MTdjLTExLjk3LTYuNDY3LTEzLjg0Ny05LjcxNy04LjU2NS0xNy43MTd6bTIyLjc5NyAwYzIuNzcxIDggMS43ODcgMTEuMjUtNC40OTQgMTcuNzE3bDQuNDk0LTE3LjcxN3ptMTUuMjIyIDI0LjAwOWw4LjU2NSAxNy43MTZjLTExLjk3LTYuNDY2LTEzLjg0Ny05LjcxNy04LjU2NS0xNy43MTZ6bTIyLjc5NyAwYzIuNzcxIDggMS43ODcgMTEuMjUtNC40OTQgMTcuNzE2bDQuNDk0LTE3LjcxNnpNOTcuNDQgNDkuMTNsOC41NjUgMTcuNzE2Yy0xMS45Ny02LjQ2Ny0xMy44NDctOS43MTctOC41NjUtMTcuNzE2em0yMi43OTUgMGMyLjc3MiA3Ljk5OSAxLjc4OCAxMS4yNS00LjQ5MyAxNy43MTZsNC40OTMtMTcuNzE2eiIvPjwvc3ZnPg==)}.theme-nologo .Layout__content{background-image:none} \ No newline at end of file +body,html{box-sizing:border-box;height:100%;margin:0;font-size:12px}html{overflow:hidden;cursor:default}body{overflow:auto;font-family:Verdana,Geneva,sans-serif}*,:after,:before{box-sizing:inherit}h1,h2,h3,h4,h5,h6{display:block;margin:0;padding:6px 0}h1{font-size:18px}h2{font-size:16px}h3{font-size:14px}h4{font-size:12px}td,th{vertical-align:baseline;text-align:left}.candystripe:nth-child(odd){background-color:rgba(0,0,0,.25)}.color-black{color:#0d0d0d!important}.color-white{color:#fff!important}.color-red{color:#d33!important}.color-orange{color:#f37827!important}.color-yellow{color:#fbd814!important}.color-olive{color:#c0d919!important}.color-green{color:#22be47!important}.color-teal{color:#00c5bd!important}.color-blue{color:#238cdc!important}.color-violet{color:#6c3fcc!important}.color-purple{color:#a93bcd!important}.color-pink{color:#e2439c!important}.color-brown{color:#af6d43!important}.color-grey{color:#7d7d7d!important}.color-good{color:#62b62a!important}.color-average{color:#f1951d!important}.color-bad{color:#d33!important}.color-label{color:#8496ab!important}.color-bg-black{background-color:#000!important}.color-bg-white{background-color:#d9d9d9!important}.color-bg-red{background-color:#bd2020!important}.color-bg-orange{background-color:#d95e0c!important}.color-bg-yellow{background-color:#d9b804!important}.color-bg-olive{background-color:#9aad14!important}.color-bg-green{background-color:#1b9638!important}.color-bg-teal{background-color:#009a93!important}.color-bg-blue{background-color:#1c71b1!important}.color-bg-violet{background-color:#552dab!important}.color-bg-purple{background-color:#8b2baa!important}.color-bg-pink{background-color:#cf2082!important}.color-bg-brown{background-color:#8c5836!important}.color-bg-grey{background-color:#646464!important}.color-bg-good{background-color:#4d9121!important}.color-bg-average{background-color:#cd7a0d!important}.color-bg-bad{background-color:#bd2020!important}.color-bg-label{background-color:#657a94!important}.debug-layout,.debug-layout :not(g):not(path){color:hsla(0,0%,100%,.9)!important;background:transparent!important;outline:1px solid hsla(0,0%,100%,.5)!important;box-shadow:none!important;filter:none!important}.debug-layout:hover,.debug-layout :not(g):not(path):hover{outline-color:hsla(0,0%,100%,.8)!important}.display-none{display:none}.display-block{display:block}.display-inline{display:inline}.display-inline-block{display:inline-block}.m-0{margin:0}.mx-0{margin-left:0;margin-right:0}.my-0{margin-top:0;margin-bottom:0}.ml-0{margin-left:0}.mt-0{margin-top:0}.mr-0{margin-right:0}.mb-0{margin-bottom:0}.m-1{margin:6px}.mx-1{margin-left:6px;margin-right:6px}.my-1{margin-top:6px;margin-bottom:6px}.ml-1{margin-left:6px}.mt-1{margin-top:6px}.mr-1{margin-right:6px}.mb-1{margin-bottom:6px}.m-2{margin:12px}.mx-2{margin-left:12px;margin-right:12px}.my-2{margin-top:12px;margin-bottom:12px}.ml-2{margin-left:12px}.mt-2{margin-top:12px}.mr-2{margin-right:12px}.mb-2{margin-bottom:12px}.outline-dotted{outline-style:dotted!important;outline-width:2px!important}.outline-dashed{outline-style:dashed!important;outline-width:2px!important}.outline-solid{outline-style:solid!important;outline-width:2px!important}.outline-double{outline-style:double!important;outline-width:2px!important}.outline-groove{outline-style:groove!important;outline-width:2px!important}.outline-ridge{outline-style:ridge!important;outline-width:2px!important}.outline-inset{outline-style:inset!important;outline-width:2px!important}.outline-outset{outline-style:outset!important;outline-width:2px!important}.outline-color-black{outline-color:#0d0d0d!important}.outline-color-white{outline-color:#fff!important}.outline-color-red{outline-color:#d33!important}.outline-color-orange{outline-color:#f37827!important}.outline-color-yellow{outline-color:#fbd814!important}.outline-color-olive{outline-color:#c0d919!important}.outline-color-green{outline-color:#22be47!important}.outline-color-teal{outline-color:#00c5bd!important}.outline-color-blue{outline-color:#238cdc!important}.outline-color-violet{outline-color:#6c3fcc!important}.outline-color-purple{outline-color:#a93bcd!important}.outline-color-pink{outline-color:#e2439c!important}.outline-color-brown{outline-color:#af6d43!important}.outline-color-grey{outline-color:#7d7d7d!important}.outline-color-good{outline-color:#62b62a!important}.outline-color-average{outline-color:#f1951d!important}.outline-color-bad{outline-color:#d33!important}.outline-color-label{outline-color:#8496ab!important}.position-relative{position:relative}.position-absolute{position:absolute}.position-fixed{position:fixed}.position-sticky{position:sticky}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-baseline{text-align:baseline}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-pre{white-space:pre}.text-bold{font-weight:700}.text-italic{font-style:italic}.text-underline{text-decoration:underline}.BlockQuote{color:#8496ab;border-left:2px solid #8496ab;padding-left:6px;margin-bottom:6px}.BlockQuote:last-child{margin-bottom:0}.Button{position:relative;display:inline-block;line-height:20px;padding:0 6px;margin-right:2px;white-space:nowrap;outline:0;border-radius:2px;margin-bottom:2px;user-select:none;-ms-user-select:none}.Button:last-child{margin-right:0}.Button .fa,.Button .far,.Button .fas{margin-left:-3px;margin-right:-3px;min-width:16px;text-align:center}.Button--hasContent .fa,.Button--hasContent .far,.Button--hasContent .fas{margin-right:3px}.Button--hasContent.Button--iconRight .fa,.Button--hasContent.Button--iconRight .far,.Button--hasContent.Button--iconRight .fas{margin-right:0;margin-left:3px}.Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.Button--fluid{display:block;margin-left:0;margin-right:0}.Button--color--black{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.Button--color--black:hover{transition:color 0ms,background-color 0ms}.Button--color--black:focus{transition:color .1s,background-color .1s}.Button--color--black:focus,.Button--color--black:hover{background-color:#0a0a0a;color:#fff}.Button--color--white{transition:color 50ms,background-color 50ms;background-color:#d9d9d9;color:#000}.Button--color--white:hover{transition:color 0ms,background-color 0ms}.Button--color--white:focus{transition:color .1s,background-color .1s}.Button--color--white:focus,.Button--color--white:hover{background-color:#f3f3f3;color:#000}.Button--color--red{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--red:hover{transition:color 0ms,background-color 0ms}.Button--color--red:focus{transition:color .1s,background-color .1s}.Button--color--red:focus,.Button--color--red:hover{background-color:#d52b2b;color:#fff}.Button--color--orange{transition:color 50ms,background-color 50ms;background-color:#d95e0c;color:#fff}.Button--color--orange:hover{transition:color 0ms,background-color 0ms}.Button--color--orange:focus{transition:color .1s,background-color .1s}.Button--color--orange:focus,.Button--color--orange:hover{background-color:#ed6f1d;color:#fff}.Button--color--yellow{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--yellow:hover{transition:color 0ms,background-color 0ms}.Button--color--yellow:focus{transition:color .1s,background-color .1s}.Button--color--yellow:focus,.Button--color--yellow:hover{background-color:#f3d00e;color:#000}.Button--color--olive{transition:color 50ms,background-color 50ms;background-color:#9aad14;color:#fff}.Button--color--olive:hover{transition:color 0ms,background-color 0ms}.Button--color--olive:focus{transition:color .1s,background-color .1s}.Button--color--olive:focus,.Button--color--olive:hover{background-color:#afc41f;color:#fff}.Button--color--green{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--color--green:hover{transition:color 0ms,background-color 0ms}.Button--color--green:focus{transition:color .1s,background-color .1s}.Button--color--green:focus,.Button--color--green:hover{background-color:#27ab46;color:#fff}.Button--color--teal{transition:color 50ms,background-color 50ms;background-color:#009a93;color:#fff}.Button--color--teal:hover{transition:color 0ms,background-color 0ms}.Button--color--teal:focus{transition:color .1s,background-color .1s}.Button--color--teal:focus,.Button--color--teal:hover{background-color:#0aafa8;color:#fff}.Button--color--blue{transition:color 50ms,background-color 50ms;background-color:#1c71b1;color:#fff}.Button--color--blue:hover{transition:color 0ms,background-color 0ms}.Button--color--blue:focus{transition:color .1s,background-color .1s}.Button--color--blue:focus,.Button--color--blue:hover{background-color:#2883c8;color:#fff}.Button--color--violet{transition:color 50ms,background-color 50ms;background-color:#552dab;color:#fff}.Button--color--violet:hover{transition:color 0ms,background-color 0ms}.Button--color--violet:focus{transition:color .1s,background-color .1s}.Button--color--violet:focus,.Button--color--violet:hover{background-color:#653ac1;color:#fff}.Button--color--purple{transition:color 50ms,background-color 50ms;background-color:#8b2baa;color:#fff}.Button--color--purple:hover{transition:color 0ms,background-color 0ms}.Button--color--purple:focus{transition:color .1s,background-color .1s}.Button--color--purple:focus,.Button--color--purple:hover{background-color:#9e38c1;color:#fff}.Button--color--pink{transition:color 50ms,background-color 50ms;background-color:#cf2082;color:#fff}.Button--color--pink:hover{transition:color 0ms,background-color 0ms}.Button--color--pink:focus{transition:color .1s,background-color .1s}.Button--color--pink:focus,.Button--color--pink:hover{background-color:#dd3794;color:#fff}.Button--color--brown{transition:color 50ms,background-color 50ms;background-color:#8c5836;color:#fff}.Button--color--brown:hover{transition:color 0ms,background-color 0ms}.Button--color--brown:focus{transition:color .1s,background-color .1s}.Button--color--brown:focus,.Button--color--brown:hover{background-color:#a06844;color:#fff}.Button--color--grey{transition:color 50ms,background-color 50ms;background-color:#646464;color:#fff}.Button--color--grey:hover{transition:color 0ms,background-color 0ms}.Button--color--grey:focus{transition:color .1s,background-color .1s}.Button--color--grey:focus,.Button--color--grey:hover{background-color:#757575;color:#fff}.Button--color--good{transition:color 50ms,background-color 50ms;background-color:#4d9121;color:#fff}.Button--color--good:hover{transition:color 0ms,background-color 0ms}.Button--color--good:focus{transition:color .1s,background-color .1s}.Button--color--good:focus,.Button--color--good:hover{background-color:#5da52d;color:#fff}.Button--color--average{transition:color 50ms,background-color 50ms;background-color:#cd7a0d;color:#fff}.Button--color--average:hover{transition:color 0ms,background-color 0ms}.Button--color--average:focus{transition:color .1s,background-color .1s}.Button--color--average:focus,.Button--color--average:hover{background-color:#e68d18;color:#fff}.Button--color--bad{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--bad:hover{transition:color 0ms,background-color 0ms}.Button--color--bad:focus{transition:color .1s,background-color .1s}.Button--color--bad:focus,.Button--color--bad:hover{background-color:#d52b2b;color:#fff}.Button--color--label{transition:color 50ms,background-color 50ms;background-color:#657a94;color:#fff}.Button--color--label:hover{transition:color 0ms,background-color 0ms}.Button--color--label:focus{transition:color .1s,background-color .1s}.Button--color--label:focus,.Button--color--label:hover{background-color:#7b8da4;color:#fff}.Button--color--default{transition:color 50ms,background-color 50ms;background-color:#3e6189;color:#fff}.Button--color--default:hover{transition:color 0ms,background-color 0ms}.Button--color--default:focus{transition:color .1s,background-color .1s}.Button--color--default:focus,.Button--color--default:hover{background-color:#4c729d;color:#fff}.Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--caution:hover{transition:color 0ms,background-color 0ms}.Button--color--caution:focus{transition:color .1s,background-color .1s}.Button--color--caution:focus,.Button--color--caution:hover{background-color:#f3d00e;color:#000}.Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--danger:hover{transition:color 0ms,background-color 0ms}.Button--color--danger:focus{transition:color .1s,background-color .1s}.Button--color--danger:focus,.Button--color--danger:hover{background-color:#d52b2b;color:#fff}.Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#252525;color:#fff;background-color:rgba(37,37,37,0);color:hsla(0,0%,100%,.5)}.Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.Button--color--transparent:focus{transition:color .1s,background-color .1s}.Button--color--transparent:focus,.Button--color--transparent:hover{background-color:#323232;color:#fff}.Button--disabled{background-color:#999!important}.Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--selected:hover{transition:color 0ms,background-color 0ms}.Button--selected:focus{transition:color .1s,background-color .1s}.Button--selected:focus,.Button--selected:hover{background-color:#27ab46;color:#fff}.Collapsible{margin-bottom:.5rem}.Collapsible:last-child{margin-bottom:0}.ColorBox{display:inline-block;width:12px;height:12px;line-height:12px;text-align:center}.Dimmer{display:flex;justify-content:center;align-items:center;position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(0,0,0,.75);z-index:1}.Divider--horizontal{margin:6px 0}.Divider--horizontal:not(.Divider--hidden){border-top:2px solid hsla(0,0%,100%,.1)}.Divider--vertical{height:100%;margin:0 6px}.Divider--vertical:not(.Divider--hidden){border-left:2px solid hsla(0,0%,100%,.1)}.Dropdown{position:relative}.Dropdown__control{position:relative;display:inline-block;font-family:Verdana,sans-serif;font-size:12px;width:100px;line-height:17px;user-select:none}.Dropdown__arrow-button{float:right;padding-left:6px;border-left:1px solid #000;border-left:1px solid rgba(0,0,0,.25)}.Dropdown__menu{overflow-y:auto;overflow-y:scroll}.Dropdown__menu,.Dropdown__menu-noscroll{position:absolute;z-index:5;width:100px;max-height:200px;border-radius:0 0 2px 2px;background-color:#000;background-color:rgba(0,0,0,.75)}.Dropdown__menu-noscroll{overflow-y:auto}.Dropdown__menuentry{padding:2px 4px;font-family:Verdana,sans-serif;font-size:12px;line-height:17px;transition:background-color .1s}.Dropdown__menuentry:hover{background-color:#444;transition:background-color 0ms}.Dropdown__over{top:auto;bottom:100%}.FatalError{display:block!important;position:absolute;top:0;left:0;right:0;bottom:0;padding:12px;font-size:12px;font-family:Consolas,monospace;color:#fff;background-color:#00d;z-index:1000;overflow:hidden;text-align:center}.FatalError__logo{display:inline-block;text-align:left;font-size:10px;line-height:8px;position:relative;margin-top:12px;top:0;left:0;animation:FatalError__rainbow 2s linear infinite alternate,FatalError__shadow 4s linear infinite alternate,FatalError__tfmX 3s infinite alternate,FatalError__tfmY 4s infinite alternate;white-space:pre-wrap;word-break:break-all}.FatalError__header{margin-top:12px}.FatalError__stack{text-align:left;white-space:pre-wrap;word-break:break-all;margin-top:24px;margin-bottom:24px}.FatalError__footer{margin-bottom:24px}@keyframes FatalError__rainbow{0%{color:#ff0}50%{color:#0ff}to{color:#f0f}}@keyframes FatalError__shadow{0%{left:-2px;text-shadow:4px 0 #f0f}50%{left:0;text-shadow:0 0 #0ff}to{left:2px;text-shadow:-4px 0 #ff0}}@keyframes FatalError__tfmX{0%{left:15px}to{left:-15px}}@keyframes FatalError__tfmY{to{top:-15px}}.Flex{display:-ms-flexbox;display:flex}.Flex--inline{display:inline-flex}.Flex--ie8{display:table!important}.Flex--ie8--column{display:block!important}.Flex--ie8--column>.Flex__item{display:block!important;margin-left:6px;margin-right:6px}.Flex__item--ie8{display:table-cell!important}.Flex--spacing--1{margin:0 -3px}.Flex--spacing--1>.Flex__item{margin:0 3px}.Flex--spacingPrecise--1{margin:-1px}.Flex--spacingPrecise--1>.Flex__item{margin:1px}.Flex--spacing--2{margin:0 -6px}.Flex--spacing--2>.Flex__item{margin:0 6px}.Flex--spacingPrecise--2{margin:-2px}.Flex--spacingPrecise--2>.Flex__item{margin:2px}.Knob{position:relative;font-size:1rem;width:2.6em;height:2.6em;margin:0 auto -.2em;cursor:n-resize}.Knob:after{content:".";color:transparent;line-height:2.5em}.Knob__circle{position:absolute;top:.1em;bottom:.1em;left:.1em;right:.1em;margin:.3em;background-color:#333;background-image:linear-gradient(180deg,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,0));border-radius:50%;box-shadow:0 .05em .5em 0 rgba(0,0,0,.5)}.Knob__cursorBox{position:absolute;top:0;bottom:0;left:0;right:0}.Knob__cursor{position:relative;top:.05em;margin:0 auto;width:.2em;height:.8em;background-color:hsla(0,0%,100%,.9)}.Knob__popupValue,.Knob__popupValue--right{position:absolute;top:-2rem;right:50%;font-size:1rem;text-align:center;padding:.25rem .5rem;background-color:#000;transform:translateX(50%);white-space:nowrap}.Knob__popupValue--right{top:.25rem;right:-50%}.Knob__ring{position:absolute;top:0;bottom:0;left:0;right:0;padding:.1em}.Knob__ringTrackPivot{transform:rotate(135deg)}.Knob__ringTrack{fill:transparent;stroke:hsla(0,0%,100%,.1);stroke-width:8;stroke-linecap:round;stroke-dasharray:235.62}.Knob__ringFillPivot{transform:rotate(135deg)}.Knob--bipolar .Knob__ringFillPivot{transform:rotate(270deg)}.Knob__ringFill{fill:transparent;stroke:#6a96c9;stroke-width:8;stroke-linecap:round;stroke-dasharray:314.16;transition:stroke 50ms}.Knob--color--black .Knob__ringFill{stroke:#0d0d0d}.Knob--color--white .Knob__ringFill{stroke:#fff}.Knob--color--red .Knob__ringFill{stroke:#d33}.Knob--color--orange .Knob__ringFill{stroke:#f37827}.Knob--color--yellow .Knob__ringFill{stroke:#fbd814}.Knob--color--olive .Knob__ringFill{stroke:#c0d919}.Knob--color--green .Knob__ringFill{stroke:#22be47}.Knob--color--teal .Knob__ringFill{stroke:#00c5bd}.Knob--color--blue .Knob__ringFill{stroke:#238cdc}.Knob--color--violet .Knob__ringFill{stroke:#6c3fcc}.Knob--color--purple .Knob__ringFill{stroke:#a93bcd}.Knob--color--pink .Knob__ringFill{stroke:#e2439c}.Knob--color--brown .Knob__ringFill{stroke:#af6d43}.Knob--color--grey .Knob__ringFill{stroke:#7d7d7d}.Knob--color--good .Knob__ringFill{stroke:#62b62a}.Knob--color--average .Knob__ringFill{stroke:#f1951d}.Knob--color--bad .Knob__ringFill{stroke:#d33}.Knob--color--label .Knob__ringFill{stroke:#8496ab}.LabeledList{display:table;width:100%;width:calc(100% + 12px);border-collapse:collapse;border-spacing:0;margin:-3px -6px 0;padding:0}.LabeledList__row{display:table-row}.LabeledList__row:last-child .LabeledList__cell{padding-bottom:0}.LabeledList__cell{display:table-cell;margin:0;padding:3px 6px;border:0;text-align:left;vertical-align:baseline}.LabeledList__label{width:1%;white-space:nowrap;min-width:60px}.LabeledList__buttons{width:.1%;white-space:nowrap;text-align:right;padding-top:1px;padding-bottom:0}.LabeledList__breakContents{word-break:break-all;word-wrap:break-word}.Modal{background-color:#252525;max-width:calc(100% - 1rem);padding:1rem;scrollbar-base-color:#1c1c1c;scrollbar-face-color:#3b3b3b;scrollbar-3dlight-color:#252525;scrollbar-highlight-color:#252525;scrollbar-track-color:#1c1c1c;scrollbar-arrow-color:#929292;scrollbar-shadow-color:#3b3b3b}.NanoMap__container{overflow:hiddden;width:100%;z-index:1}.NanoMap__marker{z-index:10;padding:0;margin:0}.NanoMap__zoomer{z-index:20;background-color:rgba(0,0,0,.33);position:absolute;top:30px;left:0;padding:.5rem;width:20%}.NoticeBox{padding:4px 6px;margin-bottom:6px;box-shadow:none;font-weight:700;font-style:italic;color:#000;background-color:#bb9b68;background-image:repeating-linear-gradient(-45deg,transparent,transparent 10px,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 20px)}.NoticeBox--color--black{color:#fff;background-color:#000}.NoticeBox--color--white{color:#000;background-color:#b3b3b3}.NoticeBox--color--red{color:#fff;background-color:#701f1f}.NoticeBox--color--orange{color:#fff;background-color:#854114}.NoticeBox--color--yellow{color:#000;background-color:#83710d}.NoticeBox--color--olive{color:#000;background-color:#576015}.NoticeBox--color--green{color:#fff;background-color:#174e24}.NoticeBox--color--teal{color:#fff;background-color:#064845}.NoticeBox--color--blue{color:#fff;background-color:#1b4565}.NoticeBox--color--violet{color:#fff;background-color:#3b2864}.NoticeBox--color--purple{color:#fff;background-color:#542663}.NoticeBox--color--pink{color:#fff;background-color:#802257}.NoticeBox--color--brown{color:#fff;background-color:#4c3729}.NoticeBox--color--grey{color:#fff;background-color:#3e3e3e}.NoticeBox--color--good{color:#fff;background-color:#2e4b1a}.NoticeBox--color--average{color:#fff;background-color:#7b4e13}.NoticeBox--color--bad{color:#fff;background-color:#701f1f}.NoticeBox--color--label{color:#fff;background-color:#53565a}.NoticeBox--type--info{color:#fff;background-color:#235982}.NoticeBox--type--success{color:#fff;background-color:#1e662f}.NoticeBox--type--warning{color:#fff;background-color:#a95219}.NoticeBox--type--danger{color:#fff;background-color:#8f2828}.Input{position:relative;display:inline-block;width:120px;border:1px solid #88bfff;border:1px solid rgba(136,191,255,.75);border-radius:2px;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible;white-space:nowrap}.Input--disabled{color:#777;border-color:#848484;border-color:hsla(0,0%,51.8%,.75);background-color:#333;background-color:rgba(0,0,0,.25)}.Input--fluid{display:block;width:auto}.Input__baseline{display:inline-block;color:transparent}.Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:12px;line-height:17px;height:17px;margin:0;padding:0 6px;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.Input__textarea{border:0;width:calc(100% + 4px);font-size:12px;line-height:17px;margin-left:-4px;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit;resize:both;overflow:auto;white-space:pre-wrap}.Input__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.NumberInput{position:relative;display:inline-block;border:1px solid #88bfff;border:1px solid rgba(136,191,255,.75);border-radius:2px;color:#88bfff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 4px;margin-right:2px;line-height:17px;text-align:right;overflow:visible;cursor:n-resize}.NumberInput--fluid{display:block}.NumberInput__content{margin-left:6px}.NumberInput__barContainer{position:absolute;top:2px;bottom:2px;left:2px}.NumberInput__bar{position:absolute;bottom:0;left:0;width:3px;box-sizing:border-box;border-bottom:1px solid #88bfff;background-color:#88bfff}.NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:12px;line-height:17px;height:17px;margin:0;padding:0 6px;font-family:Verdana,sans-serif;background-color:#000;color:#fff;text-align:right}.ProgressBar{display:inline-block;position:relative;width:100%;padding:0 6px;border-radius:2px;background-color:transparent;transition:border-color .5s}.ProgressBar__fill{position:absolute;top:0;left:0;bottom:0}.ProgressBar__fill--animated{transition:background-color .5s,width .5s}.ProgressBar__content{position:relative;line-height:17px;width:100%;text-align:right}.ProgressBar--color--default{border:1px solid #3e6189}.ProgressBar--color--default .ProgressBar__fill{background-color:#3e6189}.ProgressBar--color--black{border:1px solid #000!important}.ProgressBar--color--black .ProgressBar__fill{background-color:#000}.ProgressBar--color--white{border:1px solid #d9d9d9!important}.ProgressBar--color--white .ProgressBar__fill{background-color:#d9d9d9}.ProgressBar--color--red{border:1px solid #bd2020!important}.ProgressBar--color--red .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--orange{border:1px solid #d95e0c!important}.ProgressBar--color--orange .ProgressBar__fill{background-color:#d95e0c}.ProgressBar--color--yellow{border:1px solid #d9b804!important}.ProgressBar--color--yellow .ProgressBar__fill{background-color:#d9b804}.ProgressBar--color--olive{border:1px solid #9aad14!important}.ProgressBar--color--olive .ProgressBar__fill{background-color:#9aad14}.ProgressBar--color--green{border:1px solid #1b9638!important}.ProgressBar--color--green .ProgressBar__fill{background-color:#1b9638}.ProgressBar--color--teal{border:1px solid #009a93!important}.ProgressBar--color--teal .ProgressBar__fill{background-color:#009a93}.ProgressBar--color--blue{border:1px solid #1c71b1!important}.ProgressBar--color--blue .ProgressBar__fill{background-color:#1c71b1}.ProgressBar--color--violet{border:1px solid #552dab!important}.ProgressBar--color--violet .ProgressBar__fill{background-color:#552dab}.ProgressBar--color--purple{border:1px solid #8b2baa!important}.ProgressBar--color--purple .ProgressBar__fill{background-color:#8b2baa}.ProgressBar--color--pink{border:1px solid #cf2082!important}.ProgressBar--color--pink .ProgressBar__fill{background-color:#cf2082}.ProgressBar--color--brown{border:1px solid #8c5836!important}.ProgressBar--color--brown .ProgressBar__fill{background-color:#8c5836}.ProgressBar--color--grey{border:1px solid #646464!important}.ProgressBar--color--grey .ProgressBar__fill{background-color:#646464}.ProgressBar--color--good{border:1px solid #4d9121!important}.ProgressBar--color--good .ProgressBar__fill{background-color:#4d9121}.ProgressBar--color--average{border:1px solid #cd7a0d!important}.ProgressBar--color--average .ProgressBar__fill{background-color:#cd7a0d}.ProgressBar--color--bad{border:1px solid #bd2020!important}.ProgressBar--color--bad .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--label{border:1px solid #657a94!important}.ProgressBar--color--label .ProgressBar__fill{background-color:#657a94}.Section{position:relative;margin-bottom:6px;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box;scrollbar-base-color:#1c1c1c;scrollbar-face-color:#3b3b3b;scrollbar-3dlight-color:#252525;scrollbar-highlight-color:#252525;scrollbar-track-color:#1c1c1c;scrollbar-arrow-color:#929292;scrollbar-shadow-color:#3b3b3b}.Section:last-child{margin-bottom:0}.Section--flex{display:flex;flex-flow:column}.Section--flex .Section__content{overflow:auto;flex:1}.Section__title{padding:6px;border-bottom:2px solid #4972a1}.Section__titleText{font-size:14px;font-weight:700}.Section__buttons{position:absolute;display:inline-block;right:6px;margin-top:-1px}.Section__content{padding:8px 6px}.Section__content--noTopPadding{padding-top:0}.Section__content--stretchContents{height:100%}.Section--level--1 .Section__titleText{font-size:14px}.Section--level--2 .Section__titleText{font-size:13px}.Section--level--3 .Section__titleText{font-size:12px}.Section--level--2,.Section--level--3{background-color:transparent;box-shadow:none;margin-left:-6px;margin-right:-6px}.Slider{cursor:e-resize}.Slider__cursorOffset{position:absolute;top:0;left:0;bottom:0;transition:none!important}.Slider__cursor{position:absolute;top:0;right:-1px;bottom:0;width:0;border-left:2px solid #fff}.Slider__pointer{position:absolute;right:-5px;bottom:-4px;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #fff}.Slider__popupValue{position:absolute;right:0;top:-22px;padding:2px 4px;background-color:#000;transform:translateX(50%);white-space:nowrap}.Table{display:table;width:100%;border-collapse:collapse;border-spacing:0;margin:0}.Table--collapsing{width:auto}.Table__row{display:table-row}.Table__cell{display:table-cell;padding:0 3px}.Table__cell:first-child{padding-left:0}.Table__cell:last-child{padding-right:0}.Table__cell--header,.Table__row--header .Table__cell{font-weight:700;padding-bottom:6px}.Table__cell--collapsing{width:1%;white-space:nowrap}.Tabs--horizontal{border-bottom:2px solid hsla(0,0%,100%,.1);margin-bottom:6px}.Tabs--horizontal .Tabs__tab--altSelection:after{content:"";position:absolute;bottom:0;right:0;left:0;height:2px;width:100%;background-color:#fff;border-radius:2px}.Tabs--vertical{margin-right:9px}.Tabs--vertical .Tabs__tabBox{border-right:2px solid hsla(0,0%,100%,.1);vertical-align:top}.Tabs--vertical .Tabs__tab{display:block!important;margin-right:0!important;margin-bottom:0;padding:1px 9px 0 6px;border-bottom:2px solid hsla(0,0%,100%,.1)}.Tabs--vertical .Tabs__tab:last-child{border-bottom:0}.Tabs--vertical .Tabs__tab--altSelection:after{content:"";position:absolute;top:0;bottom:0;right:0;height:100%;width:3px;background-color:#fff;border-radius:2px}.Tooltip{position:absolute;top:0;left:0;right:0;bottom:0;font-style:normal;font-weight:400}.Tooltip:after{position:absolute;display:block;white-space:nowrap;z-index:2;padding:6px 10px;transform:translateX(-50%);pointer-events:none;visibility:hidden;opacity:0;text-align:left;content:attr(data-tooltip);transition:all .15s;background-color:#000;box-shadow:1px 1px 15px -1px rgba(0,0,0,.5);border-radius:2px}.Tooltip:hover:after{transition:all 70ms;pointer-events:none;visibility:visible;opacity:1}.Tooltip--long:after{width:250px;white-space:normal}.Tooltip--top:after{bottom:100%;left:50%;transform:translateX(-50%) translateY(8px)}.Tooltip--top:hover:after{transform:translateX(-50%) translateY(-8px)}.Tooltip--top-left:after{bottom:100%;right:50%;transform:translateX(12px) translateY(-8px)}.Tooltip--top-left:hover:after{transform:translateX(12px) translateY(8px)}.Tooltip--top-right:after{bottom:100%;left:50%;transform:translateX(-12px) translateY(-8px)}.Tooltip--top-right:hover:after{transform:translateX(-12px) translateY(8px)}.Tooltip--bottom:after{top:100%;left:50%;transform:translateX(-50%) translateY(-8px)}.Tooltip--bottom:hover:after{transform:translateX(-50%) translateY(8px)}.Tooltip--bottom-left:after{top:100%;right:50%;transform:translateX(12px) translateY(-8px)}.Tooltip--bottom-left:hover:after{transform:translateX(12px) translateY(8px)}.Tooltip--bottom-right:after{top:100%;left:50%;transform:translateX(-12px) translateY(-8px)}.Tooltip--bottom-right:hover:after{transform:translateX(-12px) translateY(8px)}.Tooltip--left:after{top:50%;right:100%;transform:translateX(8px) translateY(-50%)}.Tooltip--left:hover:after,.Tooltip--right:after{transform:translateX(-8px) translateY(-50%)}.Tooltip--right:after{top:50%;left:100%}.Tooltip--right:hover:after{transform:translateX(8px) translateY(-50%)}.AccountsUplinkTerminal__list tr>td{text-align:center}.AccountsUplinkTerminal__list tr:not(:first-child){height:24px;line-height:24px;cursor:pointer;transition:background-color 50ms}.AccountsUplinkTerminal__list tr:not(:first-child):focus,.AccountsUplinkTerminal__list tr:not(:first-child):hover{background-color:#252525}.AccountsUplinkTerminal__listRow--SUSPENDED{background-color:#740c20}.BrigCells__list .Table__cell,.BrigCells__list .Table__row--header{text-align:center}.BrigCells__list .BrigCells__listRow--active .Table__cell{background-color:#890e26}.CameraConsole__left{position:absolute;top:0;bottom:0;left:0;width:220px}.CameraConsole__right{position:absolute;top:0;bottom:0;left:220px;right:0;background-color:rgba(0,0,0,.33)}.CameraConsole__toolbar{left:0;margin:3px 12px 0}.CameraConsole__toolbar,.CameraConsole__toolbarRight{position:absolute;top:0;right:0;height:24px;line-height:24px}.CameraConsole__toolbarRight{margin:4px 6px 0}.CameraConsole__map{position:absolute;top:26px;bottom:0;left:0;right:0;margin:6px;text-align:center}.CameraConsole__map .NoticeBox{margin-top:calc(50% - 24px)}.Contractor *{font-family:Courier New,Courier,monospace}.Contractor .Section__titleText{display:inline-block;max-width:70%}.Contractor .Section__titleText>.Flex{width:100%}.Contractor .Section__titleText>.Flex>.Flex__item:first-of-type{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.Contractor__Contract .Button{font-size:11px;white-space:normal!important}.Contractor__photoZoom{text-align:center}.Contractor__photoZoom>img{width:96px;-ms-interpolation-mode:nearest-neighbor}.Contractor__photoZoom>.Button{position:absolute}.Exofab .Dropdown__control{margin-bottom:-1px}.Exofab .Dropdown__selected-text{overflow:hidden;text-overflow:ellipsis;width:80%;display:inline-block;margin-bottom:-3px}.Exofab__materials{height:100%;overflow:auto}.Exofab__materials .Section__content{height:calc(100% - 31px)}.Exofab__material:not(.Exofab__material--line){margin-bottom:.25rem}.Exofab__material:not(.Exofab__material--line) .Button{width:28px;margin-right:.5rem}.Exofab__material:not(.Exofab__material--line) .Button img{vertical-align:middle}.Exofab__material--line .Button{background-color:transparent;width:14px}.Exofab__material--line .Button img{width:16px}.Exofab__material--name{color:#7e90a7;text-transform:capitalize}.Exofab__material .Button{margin-bottom:0;padding:0;vertical-align:middle}.Exofab__material .Button img{margin-left:-2px}.Exofab__queue{height:100%}.Exofab__queue--queue .Button{margin:0;transform:scale(.75)}.Exofab__queue--queue .Button:first-of-type{margin-left:.25rem}.Exofab__queue--time{text-align:center;color:#7e90a7}.Exofab__queue--deficit{text-align:center;color:#db2828;font-weight:700}.Exofab__queue--deficit>div:not(.Divider){display:inline-block;margin-bottom:-.75rem}.Exofab__queue .Section__content{height:calc(100% - 31px)}.Exofab__queue .Exofab__material--amount{margin-right:.25rem}.Exofab__design--cost{display:inline-block;vertical-align:middle;margin-top:.33rem}.Exofab__design--cost>div{display:inline-block}.Exofab__design--cost .Exofab__material{margin-left:.25rem}.Exofab__design--time{display:inline-block;margin-left:.5rem;color:#7e90a7}.Exofab__design--time i{margin-right:.25rem}.Exofab__designs .Section__content{height:calc(100% - 31px);overflow:auto}.Exofab__building{height:40px}.Exofab__building .ProgressBar{width:100%;height:100%}.Exofab__building .ProgressBar__content{line-height:22px}.Ingredient__Table tr:nth-child(2n){background-color:#333}.Ingredient__Table td{padding:3px}.Library__Booklist tr>td{text-align:center}.Library__Booklist tr:not(:first-child){height:24px;line-height:24px;transition:background-color 50ms}.Library__Booklist tr:not(:first-child):focus,.Library__Booklist tr:not(:first-child):hover{background-color:#252525}.Library__SearchContainer{background-color:rgba(37,37,37,.5)}.Library__SearchContainer tr td:first-child{width:60%}.Newscaster__menu{width:40px;height:100%;margin-right:.5rem;flex-basis:content}.Newscaster__menu .Section__content{padding-left:0}.Newscaster__menuButton{color:#767676;cursor:pointer;position:relative;margin-left:6px;margin-right:1rem;white-space:nowrap;transition:color .1s}.Newscaster__menuButton--title{width:80%;display:none;overflow:hidden;text-overflow:ellipsis}.Newscaster__menuButton--unread{background-color:#e45e5e;color:#fff;font-size:10px;text-align:center;border-radius:32px;display:inline-block;width:12px;position:absolute;left:16px;margin-top:14px}.Newscaster__menuButton--selected{color:#fff}.Newscaster__menuButton--selected:after{content:"";background-color:#4972a1;width:2px;height:24px;position:absolute;left:-6px}.Newscaster__menuButton--security{color:#4972a1}.Newscaster__menuButton i{width:30px;text-align:center;vertical-align:middle;margin-left:-1px;margin-right:.5rem;margin-top:1px}.Newscaster__menuButton:hover{color:#fff}.Newscaster__menuButton:hover:before{background-color:#fff}.Newscaster__menuButton:not(:last-of-type){margin-bottom:.5rem}.Newscaster__menu--open{width:175px}.Newscaster__menu--open .Newscaster__menuButton--title{display:inline-block}.Newscaster__jobCategory--security .Section__title{color:#a14c49;border-bottom:2px solid #a14c49!important}.Newscaster__jobCategory--engineering .Section__title{color:#a17849;border-bottom:2px solid #a17849!important}.Newscaster__jobCategory--medical .Section__title{color:#499ea1;border-bottom:2px solid #499ea1!important}.Newscaster__jobCategory--science .Section__title{color:#a14972;border-bottom:2px solid #a14972!important}.Newscaster__jobCategory--service .Section__title{color:#a1499e;border-bottom:2px solid #a1499e!important}.Newscaster__jobCategory--supply .Section__title{color:#9ea149;border-bottom:2px solid #9ea149!important}.Newscaster__jobCategory:last-child{margin-bottom:.5rem}.Newscaster__jobOpening--command{font-weight:700}.Newscaster__jobOpening:not(:last-child){margin-bottom:.5rem}.Newscaster__emptyNotice{color:#7e90a7;text-align:center;position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%)}.Newscaster__emptyNotice i{margin-bottom:.25rem}.Newscaster__photo{cursor:pointer;width:96px;border:1px solid #000;transition:border-color .1s;-ms-interpolation-mode:nearest-neighbor}.Newscaster__photo:hover{border-color:grey}.Newscaster__photoZoom{text-align:center}.Newscaster__photoZoom>img{transform:scale(2);-ms-interpolation-mode:nearest-neighbor}.Newscaster__photoZoom>.Button{position:absolute;width:64px;left:50%;margin-left:-32px;bottom:1rem}.Newscaster__story--wanted{background-color:rgba(219,40,40,.1)}.Newscaster__story--wanted .Section__title{color:#db2828;border-bottom:2px solid #a14c49!important}.Newscaster__story:last-child{margin-bottom:.5rem}.NuclearBomb__displayBox{background-color:#002003;border:4px inset #e8e4c9;color:#03e017;font-size:24px;font-family:monospace;padding:6px}.NuclearBomb__Button--keypad{background-color:#e8e4c9;border-color:#e8e4c9}.NuclearBomb__Button--keypad:hover{background-color:#f7f6ee!important;border-color:#f7f6ee!important}.NuclearBomb__Button--1{background-color:#d3cfb7!important;border-color:#d3cfb7!important;color:#a9a692!important}.NuclearBomb__Button--E{background-color:#d9b804!important;border-color:#d9b804!important}.NuclearBomb__Button--E:hover{background-color:#f3d00e!important;border-color:#f3d00e!important}.NuclearBomb__Button--C{background-color:#bd2020!important;border-color:#bd2020!important}.NuclearBomb__Button--C:hover{background-color:#d52b2b!important;border-color:#d52b2b!important}.NuclearBomb__NTIcon{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMCIgdmlld0JveD0iMCAwIDQyNSAyMDAiIG9wYWNpdHk9Ii4zMyI+PHBhdGggZD0iTTE3OC4wMDQuMDM5SDEwNi44YTYuNzYxIDYuMDI2IDAgMDAtNi43NjEgNi4wMjV2MTg3Ljg3MmE2Ljc2MSA2LjAyNiAwIDAwNi43NjEgNi4wMjVoNTMuMTA3YTYuNzYxIDYuMDI2IDAgMDA2Ljc2Mi02LjAyNVY5Mi4zOTJsNzIuMjE2IDEwNC43YTYuNzYxIDYuMDI2IDAgMDA1Ljc2IDIuODdIMzE4LjJhNi43NjEgNi4wMjYgMCAwMDYuNzYxLTYuMDI2VjYuMDY0QTYuNzYxIDYuMDI2IDAgMDAzMTguMi4wNGgtNTQuNzE3YTYuNzYxIDYuMDI2IDAgMDAtNi43NiA2LjAyNXYxMDIuNjJMMTgzLjc2MyAyLjkwOWE2Ljc2MSA2LjAyNiAwIDAwLTUuNzYtMi44N3pNNC44NDUgMjIuMTA5QTEzLjQxMiAxMi41MDIgMCAwMTEzLjQ3OC4wMzloNjYuMTE4QTUuMzY1IDUgMCAwMTg0Ljk2IDUuMDR2NzkuODh6TTQyMC4xNTUgMTc3Ljg5MWExMy40MTIgMTIuNTAyIDAgMDEtOC42MzMgMjIuMDdoLTY2LjExOGE1LjM2NSA1IDAgMDEtNS4zNjUtNS4wMDF2LTc5Ljg4eiIvPjwvc3ZnPg==);background-size:70%;background-position:50%;background-repeat:no-repeat}.OreRedemption__Ores .OreHeader,.OreRedemption__Ores .OreLine{min-height:32px;padding:0 .5rem}.OreRedemption__Ores .OreHeader{line-height:32px;background-color:rgba(0,0,0,.33);font-weight:700}.OreRedemption__Ores .OreLine:last-of-type{margin-bottom:.5rem}.OreRedemption__Ores .Section__content{padding:0;height:100%;overflow:auto}.PDA__footer{position:fixed;bottom:0;left:0;right:0;height:30px}.PDA__footer__button{text-align:center;padding-top:4px;padding-bottom:2px;font-size:24px}.PoolController__Buttons .Button:not(:last-child){margin-bottom:8px}.RndConsole{position:relative}.RndConsole__Overlay{position:absolute;display:flex;align-items:stretch;justify-content:stretch;top:0;left:0;width:100%;height:100vh}.RndConsole__LatheCategory__MatchingDesigns .Table__cell{padding-bottom:4px}.RndConsole__MainMenu__Buttons .Button:not(:last-child){margin-bottom:4px}.RndConsole__LatheMaterials .Table__cell:nth-child(2){padding-left:16px}.RndConsole__LatheMaterialStorage .Table__cell{padding:4px 0;border-bottom:1px solid #767676}.RndConsole__Overlay__Wrapper{display:flex;align-items:center;justify-content:stretch;flex-grow:1;padding:24px;background-color:hsla(0,0%,100%,0)}.RndConsole__Overlay__Wrapper .NoticeBox{flex-grow:1;margin-bottom:80px;font-size:18pt;padding:.3em .75em}.RndConsole__RndNavbar .Button{margin-bottom:10px}.Roulette{font-family:Palatino}.Roulette__board{display:table;width:100%;border-collapse:collapse;border:2px solid #fff;margin:0}.Roulette__board-row{padding:0;margin:0}.Roulette__board-cell{display:table-cell;padding:0;margin:0;border:2px solid #fff;font-family:Palatino}.Roulette__board-cell:first-child{padding-left:0}.Roulette__board-cell:last-child{padding-right:0}.Roulette__board-extrabutton{text-align:center;font-size:20px;font-weight:700;height:28px;border:none!important;margin:0!important;padding-top:4px!important;color:#fff!important}.Roulette__lowertable{margin-top:8px;margin-left:80px;margin-right:80px;border-collapse:collapse;border:2px solid #fff;border-spacing:0}.Roulette__lowertable--cell{border:2px solid #fff;padding:0;margin:0}.Roulette__lowertable--betscell{vertical-align:top}.Roulette__lowertable--spinresult{text-align:center;font-size:100px;font-weight:700;vertical-align:middle}.Roulette__lowertable--spinresult-black{background-color:#000}.Roulette__lowertable--spinresult-red{background-color:#db2828}.Roulette__lowertable--spinresult-green{background-color:#20b142}.Roulette__lowertable--spinbutton{margin:0!important;border:none!important;font-size:50px;line-height:60px!important;text-align:center;font-weight:700}.Roulette__lowertable--header{width:1%;text-align:center;font-size:20px;font-weight:700}.Safe--engraving{position:absolute;width:95%;height:96%;left:2.5%;top:2%;border:5px outset #3e4f6a;padding:5px;text-align:center}.Safe--engraving--arrow{color:#35435a}.Safe--engraving--hinge{content:" ";background-color:#191f2a;width:25px;height:40px;position:absolute;right:-15px;margin-top:-20px}.Safe--dialer{margin-bottom:.5rem}.Safe--dialer--number{color:#bbb;display:inline;background-color:#191f2a;font-size:1.5rem;font-weight:700;padding:0 .5rem}.Safe--dialer--right .Button i{z-index:-100}.Safe--dialer .Button{width:80px}.Safe--contents{border:10px solid #191f2a;background-color:#0f131a;height:calc(85% + 7.5px);text-align:left;padding:5px}.Safe--help{position:absolute;bottom:10px;left:5px;width:50%}.SecurityRecords__list tr>td{text-align:center}.SecurityRecords__list tr:not(:first-child){height:24px;line-height:24px;cursor:pointer;transition:background-color 50ms}.SecurityRecords__list tr:not(:first-child):focus,.SecurityRecords__list tr:not(:first-child):hover{background-color:#252525}.SecurityRecords__listRow--arrest{background-color:#740c20}.SecurityRecords__listRow--execute{background-color:#683e8c}.SecurityRecords__listRow--incarcerated{background-color:#633203}.SecurityRecords__listRow--parolled{background-color:#006d7b}.SecurityRecords__listRow--released{background-color:#1c5574}.SecurityRecords__listRow--demote{background-color:#155500}.SecurityRecords__listRow--search{background-color:#987a00}.SecurityRecords__listRow--monitor{background-color:#1f1180}.MedicalRecords__list tr>td{text-align:center}.MedicalRecords__list tr:not(:first-child){height:24px;line-height:24px;cursor:pointer;transition:background-color 50ms}.MedicalRecords__list tr:not(:first-child):focus,.MedicalRecords__list tr:not(:first-child):hover{background-color:#252525}.MedicalRecords__listRow--deceased{background-color:#740c20}.MedicalRecords__listRow--ssd{background-color:#006d7b}.MedicalRecords__listRow--physically_unfit{background-color:#987a00}.MedicalRecords__listRow--disabled{background-color:#1f1180}.MedicalRecords__listMedbot--0{background-color:#2b1414}.Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;margin:6px;scrollbar-base-color:#1c1c1c;scrollbar-face-color:#3b3b3b;scrollbar-3dlight-color:#252525;scrollbar-highlight-color:#252525;scrollbar-track-color:#1c1c1c;scrollbar-arrow-color:#929292;scrollbar-shadow-color:#3b3b3b}.Layout__content--flexRow{display:flex;flex-flow:row}.Layout__content--flexColumn{display:flex;flex-flow:column}.Layout__content--scrollable{overflow-y:auto}.Layout__content--noMargin{margin:0}.TitleBar{background-color:#363636;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#363636;transition:color .25s,background-color .25s}.TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.TitleBar__title{position:absolute;top:0;left:46px;color:hsla(0,0%,100%,.75);font-size:14px;line-height:31px;white-space:nowrap}.TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px}.TitleBar__statusIcon{position:absolute;top:0;left:12px;transition:color .5s;font-size:20px;line-height:32px!important}.TitleBar__minimize{position:absolute;top:6px;right:46px}.TitleBar__close{position:absolute;top:-1px;right:0;width:45px;height:32px;font-size:20px;line-height:31px;text-align:center}.Window{bottom:0;right:0;color:#fff;background-color:#252525;background-image:linear-gradient(180deg,#2a2a2a 0,#202020)}.Window,.Window__titleBar{position:fixed;top:0;left:0}.Window__titleBar{z-index:1;width:100%;height:32px}.Window__rest{top:32px}.Window__dimmer,.Window__rest{position:fixed;bottom:0;left:0;right:0}.Window__dimmer{top:0;background-color:rgba(62,62,62,.25);pointer-events:none}.Window__toast{position:fixed;bottom:0;left:0;right:0;font-size:12px;height:40px;line-height:39px;padding:0 12px;background-color:#131313;color:hsla(0,0%,100%,.8)}.Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;height:20px;cursor:se-resize}.Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;cursor:s-resize}.Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;cursor:e-resize}.Layout__content{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMCIgdmlld0JveD0iMCAwIDQyNSAyMDAiIG9wYWNpdHk9Ii4zMyI+PHBhdGggZD0iTTE3OC4wMDQuMDM5SDEwNi44YTYuNzYxIDYuMDI2IDAgMDAtNi43NjEgNi4wMjV2MTg3Ljg3MmE2Ljc2MSA2LjAyNiAwIDAwNi43NjEgNi4wMjVoNTMuMTA3YTYuNzYxIDYuMDI2IDAgMDA2Ljc2Mi02LjAyNVY5Mi4zOTJsNzIuMjE2IDEwNC43YTYuNzYxIDYuMDI2IDAgMDA1Ljc2IDIuODdIMzE4LjJhNi43NjEgNi4wMjYgMCAwMDYuNzYxLTYuMDI2VjYuMDY0QTYuNzYxIDYuMDI2IDAgMDAzMTguMi4wNGgtNTQuNzE3YTYuNzYxIDYuMDI2IDAgMDAtNi43NiA2LjAyNXYxMDIuNjJMMTgzLjc2MyAyLjkwOWE2Ljc2MSA2LjAyNiAwIDAwLTUuNzYtMi44N3pNNC44NDUgMjIuMTA5QTEzLjQxMiAxMi41MDIgMCAwMTEzLjQ3OC4wMzloNjYuMTE4QTUuMzY1IDUgMCAwMTg0Ljk2IDUuMDR2NzkuODh6TTQyMC4xNTUgMTc3Ljg5MWExMy40MTIgMTIuNTAyIDAgMDEtOC42MzMgMjIuMDdoLTY2LjExOGE1LjM2NSA1IDAgMDEtNS4zNjUtNS4wMDF2LTc5Ljg4eiIvPjwvc3ZnPg==);background-size:70%;background-position:50%;background-repeat:no-repeat}.theme-cardtable .Button{position:relative;display:inline-block;line-height:20px;padding:0 6px;margin-right:2px;white-space:nowrap;outline:0;border-radius:0;margin-bottom:2px;user-select:none;-ms-user-select:none}.theme-cardtable .Button:last-child{margin-right:0}.theme-cardtable .Button .fa,.theme-cardtable .Button .far,.theme-cardtable .Button .fas{margin-left:-3px;margin-right:-3px;min-width:16px;text-align:center}.theme-cardtable .Button--hasContent .fa,.theme-cardtable .Button--hasContent .far,.theme-cardtable .Button--hasContent .fas{margin-right:3px}.theme-cardtable .Button--hasContent.Button--iconRight .fa,.theme-cardtable .Button--hasContent.Button--iconRight .far,.theme-cardtable .Button--hasContent.Button--iconRight .fas{margin-right:0;margin-left:3px}.theme-cardtable .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-cardtable .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-cardtable .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#117039;color:#fff}.theme-cardtable .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--default:focus,.theme-cardtable .Button--color--default:hover{background-color:#1c8247;color:#fff}.theme-cardtable .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-cardtable .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--caution:focus,.theme-cardtable .Button--color--caution:hover{background-color:#d67313;color:#fff}.theme-cardtable .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-cardtable .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--danger:focus,.theme-cardtable .Button--color--danger:hover{background-color:#afb30a;color:#fff}.theme-cardtable .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#117039;color:#fff;background-color:rgba(17,112,57,0);color:hsla(0,0%,100%,.5)}.theme-cardtable .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--transparent:focus,.theme-cardtable .Button--color--transparent:hover{background-color:#1c8247;color:#fff}.theme-cardtable .Button--disabled{background-color:#363636!important}.theme-cardtable .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-cardtable .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--selected:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--selected:focus,.theme-cardtable .Button--selected:hover{background-color:#b31212;color:#fff}.theme-cardtable .Input{position:relative;display:inline-block;width:120px;border:1px solid #88bfff;border:1px solid rgba(136,191,255,.75);border-radius:0;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible;white-space:nowrap}.theme-cardtable .Input--disabled{color:#777;border-color:#848484;border-color:hsla(0,0%,51.8%,.75);background-color:#333;background-color:rgba(0,0,0,.25)}.theme-cardtable .Input--fluid{display:block;width:auto}.theme-cardtable .Input__baseline{display:inline-block;color:transparent}.theme-cardtable .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:12px;line-height:17px;height:17px;margin:0;padding:0 6px;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.theme-cardtable .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-cardtable .Input__textarea{border:0;width:calc(100% + 4px);font-size:12px;line-height:17px;margin-left:-4px;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit;resize:both;overflow:auto;white-space:pre-wrap}.theme-cardtable .Input__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-cardtable .NumberInput{position:relative;display:inline-block;border:1px solid #fff;border:1px solid hsla(0,0%,100%,.75);border-radius:0;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 4px;margin-right:2px;line-height:17px;text-align:right;overflow:visible;cursor:n-resize}.theme-cardtable .NumberInput--fluid{display:block}.theme-cardtable .NumberInput__content{margin-left:6px}.theme-cardtable .NumberInput__barContainer{position:absolute;top:2px;bottom:2px;left:2px}.theme-cardtable .NumberInput__bar{position:absolute;bottom:0;left:0;width:3px;box-sizing:border-box;border-bottom:1px solid #fff;background-color:#fff}.theme-cardtable .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:12px;line-height:17px;height:17px;margin:0;padding:0 6px;font-family:Verdana,sans-serif;background-color:#000;color:#fff;text-align:right}.theme-cardtable .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 6px;border-radius:0;background-color:rgba(0,0,0,.5);transition:border-color .5s}.theme-cardtable .ProgressBar__fill{position:absolute;top:0;left:0;bottom:0}.theme-cardtable .ProgressBar__fill--animated{transition:background-color .5s,width .5s}.theme-cardtable .ProgressBar__content{position:relative;line-height:17px;width:100%;text-align:right}.theme-cardtable .ProgressBar--color--default{border:1px solid #000}.theme-cardtable .ProgressBar--color--default .ProgressBar__fill{background-color:#000}.theme-cardtable .Section{position:relative;margin-bottom:6px;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box;scrollbar-base-color:#0d542b;scrollbar-face-color:#16914a;scrollbar-3dlight-color:#117039;scrollbar-highlight-color:#117039;scrollbar-track-color:#0d542b;scrollbar-arrow-color:#5ae695;scrollbar-shadow-color:#16914a}.theme-cardtable .Section:last-child{margin-bottom:0}.theme-cardtable .Section--flex{display:flex;flex-flow:column}.theme-cardtable .Section--flex .Section__content{overflow:auto;flex:1}.theme-cardtable .Section__title{padding:6px;border-bottom:2px solid #000}.theme-cardtable .Section__titleText{font-size:14px;font-weight:700}.theme-cardtable .Section__buttons{position:absolute;display:inline-block;right:6px;margin-top:-1px}.theme-cardtable .Section__content{padding:8px 6px}.theme-cardtable .Section__content--noTopPadding{padding-top:0}.theme-cardtable .Section__content--stretchContents{height:100%}.theme-cardtable .Section--level--1 .Section__titleText{font-size:14px}.theme-cardtable .Section--level--2 .Section__titleText{font-size:13px}.theme-cardtable .Section--level--3 .Section__titleText{font-size:12px}.theme-cardtable .Section--level--2,.theme-cardtable .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-6px;margin-right:-6px}.theme-cardtable .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;margin:6px;scrollbar-base-color:#0d542b;scrollbar-face-color:#16914a;scrollbar-3dlight-color:#117039;scrollbar-highlight-color:#117039;scrollbar-track-color:#0d542b;scrollbar-arrow-color:#5ae695;scrollbar-shadow-color:#16914a}.theme-cardtable .Layout__content--flexRow{display:flex;flex-flow:row}.theme-cardtable .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-cardtable .Layout__content--scrollable{overflow-y:auto}.theme-cardtable .Layout__content--noMargin{margin:0}.theme-cardtable .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#117039;background-image:linear-gradient(180deg,#117039 0,#117039)}.theme-cardtable .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px}.theme-cardtable .Window__rest{position:fixed;top:32px;bottom:0;left:0;right:0}.theme-cardtable .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(39,148,85,.25);pointer-events:none}.theme-cardtable .Window__toast{position:fixed;bottom:0;left:0;right:0;font-size:12px;height:40px;line-height:39px;padding:0 12px;background-color:#09381d;color:hsla(0,0%,100%,.8)}.theme-cardtable .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;height:20px;cursor:se-resize}.theme-cardtable .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;cursor:s-resize}.theme-cardtable .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;cursor:e-resize}.theme-cardtable .TitleBar{background-color:#381608;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-cardtable .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#381608;transition:color .25s,background-color .25s}.theme-cardtable .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-cardtable .TitleBar__title{position:absolute;top:0;left:46px;color:hsla(0,0%,100%,.75);font-size:14px;line-height:31px;white-space:nowrap}.theme-cardtable .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px}.theme-cardtable .TitleBar__statusIcon{position:absolute;top:0;left:12px;transition:color .5s;font-size:20px;line-height:32px!important}.theme-cardtable .TitleBar__minimize{position:absolute;top:6px;right:46px}.theme-cardtable .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;height:32px;font-size:20px;line-height:31px;text-align:center}.theme-cardtable .Button{border:2px solid #fff}.theme-changeling .Button{position:relative;display:inline-block;line-height:20px;padding:0 6px;margin-right:2px;white-space:nowrap;outline:0;border-radius:2px;margin-bottom:2px;user-select:none;-ms-user-select:none}.theme-changeling .Button:last-child{margin-right:0}.theme-changeling .Button .fa,.theme-changeling .Button .far,.theme-changeling .Button .fas{margin-left:-3px;margin-right:-3px;min-width:16px;text-align:center}.theme-changeling .Button--hasContent .fa,.theme-changeling .Button--hasContent .far,.theme-changeling .Button--hasContent .fas{margin-right:3px}.theme-changeling .Button--hasContent.Button--iconRight .fa,.theme-changeling .Button--hasContent.Button--iconRight .far,.theme-changeling .Button--hasContent.Button--iconRight .fas{margin-right:0;margin-left:3px}.theme-changeling .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-changeling .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-changeling .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#563d6b;color:#fff}.theme-changeling .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-changeling .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-changeling .Button--color--default:focus,.theme-changeling .Button--color--default:hover{background-color:#664b7d;color:#fff}.theme-changeling .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-changeling .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-changeling .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-changeling .Button--color--caution:focus,.theme-changeling .Button--color--caution:hover{background-color:#f3d00e;color:#000}.theme-changeling .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-changeling .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-changeling .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-changeling .Button--color--danger:focus,.theme-changeling .Button--color--danger:hover{background-color:#d52b2b;color:#fff}.theme-changeling .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#2e2633;color:#fff;background-color:rgba(46,38,51,0);color:hsla(0,0%,100%,.5)}.theme-changeling .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-changeling .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-changeling .Button--color--transparent:focus,.theme-changeling .Button--color--transparent:hover{background-color:#3b3341;color:#fff}.theme-changeling .Button--disabled{background-color:#999!important}.theme-changeling .Button--selected{transition:color 50ms,background-color 50ms;background-color:#188552;color:#fff}.theme-changeling .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-changeling .Button--selected:focus{transition:color .1s,background-color .1s}.theme-changeling .Button--selected:focus,.theme-changeling .Button--selected:hover{background-color:#249962;color:#fff}.theme-changeling .Section{position:relative;margin-bottom:6px;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box;scrollbar-base-color:#231d26;scrollbar-face-color:#44384b;scrollbar-3dlight-color:#2e2633;scrollbar-highlight-color:#2e2633;scrollbar-track-color:#231d26;scrollbar-arrow-color:#9986a5;scrollbar-shadow-color:#44384b}.theme-changeling .Section:last-child{margin-bottom:0}.theme-changeling .Section--flex{display:flex;flex-flow:column}.theme-changeling .Section--flex .Section__content{overflow:auto;flex:1}.theme-changeling .Section__title{padding:6px;border-bottom:2px solid #563d6b}.theme-changeling .Section__titleText{font-size:14px;font-weight:700}.theme-changeling .Section__buttons{position:absolute;display:inline-block;right:6px;margin-top:-1px}.theme-changeling .Section__content{padding:8px 6px}.theme-changeling .Section__content--noTopPadding{padding-top:0}.theme-changeling .Section__content--stretchContents{height:100%}.theme-changeling .Section--level--1 .Section__titleText{font-size:14px}.theme-changeling .Section--level--2 .Section__titleText{font-size:13px}.theme-changeling .Section--level--3 .Section__titleText{font-size:12px}.theme-changeling .Section--level--2,.theme-changeling .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-6px;margin-right:-6px}.theme-changeling .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;margin:6px;scrollbar-base-color:#231d26;scrollbar-face-color:#44384b;scrollbar-3dlight-color:#2e2633;scrollbar-highlight-color:#2e2633;scrollbar-track-color:#231d26;scrollbar-arrow-color:#9986a5;scrollbar-shadow-color:#44384b}.theme-changeling .Layout__content--flexRow{display:flex;flex-flow:row}.theme-changeling .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-changeling .Layout__content--scrollable{overflow-y:auto}.theme-changeling .Layout__content--noMargin{margin:0}.theme-changeling .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#2e2633;background-image:linear-gradient(180deg,#3e3345 0,#1e1921)}.theme-changeling .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px}.theme-changeling .Window__rest{position:fixed;top:32px;bottom:0;left:0;right:0}.theme-changeling .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(72,63,78,.25);pointer-events:none}.theme-changeling .Window__toast{position:fixed;bottom:0;left:0;right:0;font-size:12px;height:40px;line-height:39px;padding:0 12px;background-color:#17131a;color:hsla(0,0%,100%,.8)}.theme-changeling .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;height:20px;cursor:se-resize}.theme-changeling .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;cursor:s-resize}.theme-changeling .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;cursor:e-resize}.theme-changeling .TitleBar{background-color:#352d3b;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-changeling .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#352d3b;transition:color .25s,background-color .25s}.theme-changeling .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-changeling .TitleBar__title{position:absolute;top:0;left:46px;color:hsla(0,0%,100%,.75);font-size:14px;line-height:31px;white-space:nowrap}.theme-changeling .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px}.theme-changeling .TitleBar__statusIcon{position:absolute;top:0;left:12px;transition:color .5s;font-size:20px;line-height:32px!important}.theme-changeling .TitleBar__minimize{position:absolute;top:6px;right:46px}.theme-changeling .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;height:32px;font-size:20px;line-height:31px;text-align:center}.theme-changeling .Layout__content{background-image:none}.theme-hackerman .Button{position:relative;display:inline-block;line-height:20px;padding:0 6px;margin-right:2px;white-space:nowrap;outline:0;border-radius:2px;margin-bottom:2px;user-select:none;-ms-user-select:none}.theme-hackerman .Button:last-child{margin-right:0}.theme-hackerman .Button .fa,.theme-hackerman .Button .far,.theme-hackerman .Button .fas{margin-left:-3px;margin-right:-3px;min-width:16px;text-align:center}.theme-hackerman .Button--hasContent .fa,.theme-hackerman .Button--hasContent .far,.theme-hackerman .Button--hasContent .fas{margin-right:3px}.theme-hackerman .Button--hasContent.Button--iconRight .fa,.theme-hackerman .Button--hasContent.Button--iconRight .far,.theme-hackerman .Button--hasContent.Button--iconRight .fas{margin-right:0;margin-left:3px}.theme-hackerman .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-hackerman .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-hackerman .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#0f0;color:#000}.theme-hackerman .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--default:focus,.theme-hackerman .Button--color--default:hover{background-color:#26ff26;color:#000}.theme-hackerman .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-hackerman .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--caution:focus,.theme-hackerman .Button--color--caution:hover{background-color:#f3d00e;color:#000}.theme-hackerman .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-hackerman .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--danger:focus,.theme-hackerman .Button--color--danger:hover{background-color:#d52b2b;color:#fff}.theme-hackerman .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#121b12;color:#fff;background-color:rgba(18,27,18,0);color:hsla(0,0%,100%,.5)}.theme-hackerman .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--transparent:focus,.theme-hackerman .Button--color--transparent:hover{background-color:#1d271d;color:#fff}.theme-hackerman .Button--disabled{background-color:#4a6a4a!important}.theme-hackerman .Button--selected{transition:color 50ms,background-color 50ms;background-color:#0f0;color:#000}.theme-hackerman .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--selected:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--selected:focus,.theme-hackerman .Button--selected:hover{background-color:#26ff26;color:#000}.theme-hackerman .Input{position:relative;display:inline-block;width:120px;border:1px solid #0f0;border:1px solid rgba(0,255,0,.75);border-radius:2px;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible;white-space:nowrap}.theme-hackerman .Input--disabled{color:#777;border-color:#404040;border-color:rgba(64,64,64,.75);background-color:#333;background-color:rgba(0,0,0,.25)}.theme-hackerman .Input--fluid{display:block;width:auto}.theme-hackerman .Input__baseline{display:inline-block;color:transparent}.theme-hackerman .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:12px;line-height:17px;height:17px;margin:0;padding:0 6px;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.theme-hackerman .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-hackerman .Input__textarea{border:0;width:calc(100% + 4px);font-size:12px;line-height:17px;margin-left:-4px;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit;resize:both;overflow:auto;white-space:pre-wrap}.theme-hackerman .Input__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-hackerman .Modal{background-color:#121b12;max-width:calc(100% - 1rem);padding:1rem}.theme-hackerman .Modal,.theme-hackerman .Section{scrollbar-base-color:#0e140e;scrollbar-face-color:#253725;scrollbar-3dlight-color:#121b12;scrollbar-highlight-color:#121b12;scrollbar-track-color:#0e140e;scrollbar-arrow-color:#74a274;scrollbar-shadow-color:#253725}.theme-hackerman .Section{position:relative;margin-bottom:6px;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box}.theme-hackerman .Section:last-child{margin-bottom:0}.theme-hackerman .Section--flex{display:flex;flex-flow:column}.theme-hackerman .Section--flex .Section__content{overflow:auto;flex:1}.theme-hackerman .Section__title{padding:6px;border-bottom:2px solid #0f0}.theme-hackerman .Section__titleText{font-size:14px;font-weight:700}.theme-hackerman .Section__buttons{position:absolute;display:inline-block;right:6px;margin-top:-1px}.theme-hackerman .Section__content{padding:8px 6px}.theme-hackerman .Section__content--noTopPadding{padding-top:0}.theme-hackerman .Section__content--stretchContents{height:100%}.theme-hackerman .Section--level--1 .Section__titleText{font-size:14px}.theme-hackerman .Section--level--2 .Section__titleText{font-size:13px}.theme-hackerman .Section--level--3 .Section__titleText{font-size:12px}.theme-hackerman .Section--level--2,.theme-hackerman .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-6px;margin-right:-6px}.theme-hackerman .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;margin:6px;scrollbar-base-color:#0e140e;scrollbar-face-color:#253725;scrollbar-3dlight-color:#121b12;scrollbar-highlight-color:#121b12;scrollbar-track-color:#0e140e;scrollbar-arrow-color:#74a274;scrollbar-shadow-color:#253725}.theme-hackerman .Layout__content--flexRow{display:flex;flex-flow:row}.theme-hackerman .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-hackerman .Layout__content--scrollable{overflow-y:auto}.theme-hackerman .Layout__content--noMargin{margin:0}.theme-hackerman .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#121b12;background-image:linear-gradient(180deg,#121b12 0,#121b12)}.theme-hackerman .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px}.theme-hackerman .Window__rest{position:fixed;top:32px;bottom:0;left:0;right:0}.theme-hackerman .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(40,50,40,.25);pointer-events:none}.theme-hackerman .Window__toast{position:fixed;bottom:0;left:0;right:0;font-size:12px;height:40px;line-height:39px;padding:0 12px;background-color:#090e09;color:hsla(0,0%,100%,.8)}.theme-hackerman .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;height:20px;cursor:se-resize}.theme-hackerman .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;cursor:s-resize}.theme-hackerman .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;cursor:e-resize}.theme-hackerman .TitleBar{background-color:#223d22;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-hackerman .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#223d22;transition:color .25s,background-color .25s}.theme-hackerman .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-hackerman .TitleBar__title{position:absolute;top:0;left:46px;color:hsla(0,0%,100%,.75);font-size:14px;line-height:31px;white-space:nowrap}.theme-hackerman .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px}.theme-hackerman .TitleBar__statusIcon{position:absolute;top:0;left:12px;transition:color .5s;font-size:20px;line-height:32px!important}.theme-hackerman .TitleBar__minimize{position:absolute;top:6px;right:46px}.theme-hackerman .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;height:32px;font-size:20px;line-height:31px;text-align:center}.theme-hackerman .Layout__content{background-image:none}.theme-hackerman .Button{font-family:monospace;border:2px outset #0a0;outline:1px solid #007a00}.theme-hackerman .candystripe:nth-child(odd){background-color:rgba(0,100,0,.5)}.theme-malfunction .Button{position:relative;display:inline-block;line-height:20px;padding:0 6px;margin-right:2px;white-space:nowrap;outline:0;border-radius:2px;margin-bottom:2px;user-select:none;-ms-user-select:none}.theme-malfunction .Button:last-child{margin-right:0}.theme-malfunction .Button .fa,.theme-malfunction .Button .far,.theme-malfunction .Button .fas{margin-left:-3px;margin-right:-3px;min-width:16px;text-align:center}.theme-malfunction .Button--hasContent .fa,.theme-malfunction .Button--hasContent .far,.theme-malfunction .Button--hasContent .fas{margin-right:3px}.theme-malfunction .Button--hasContent.Button--iconRight .fa,.theme-malfunction .Button--hasContent.Button--iconRight .far,.theme-malfunction .Button--hasContent.Button--iconRight .fas{margin-right:0;margin-left:3px}.theme-malfunction .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-malfunction .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-malfunction .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#910101;color:#fff}.theme-malfunction .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--default:focus,.theme-malfunction .Button--color--default:hover{background-color:#a60b0b;color:#fff}.theme-malfunction .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-malfunction .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--caution:focus,.theme-malfunction .Button--color--caution:hover{background-color:#d67313;color:#fff}.theme-malfunction .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-malfunction .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--danger:focus,.theme-malfunction .Button--color--danger:hover{background-color:#afb30a;color:#fff}.theme-malfunction .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#1b3443;color:#fff;background-color:rgba(27,52,67,0);color:hsla(0,0%,100%,.5)}.theme-malfunction .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--transparent:focus,.theme-malfunction .Button--color--transparent:hover{background-color:#274252;color:#fff}.theme-malfunction .Button--disabled{background-color:#363636!important}.theme-malfunction .Button--selected{transition:color 50ms,background-color 50ms;background-color:#1e5881;color:#fff}.theme-malfunction .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--selected:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--selected:focus,.theme-malfunction .Button--selected:hover{background-color:#2a6894;color:#fff}.theme-malfunction .NoticeBox{padding:4px 6px;margin-bottom:6px;box-shadow:none;font-weight:700;font-style:italic;color:#fff;background-color:#1a3f57;background-image:repeating-linear-gradient(-45deg,transparent,transparent 10px,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 20px)}.theme-malfunction .NoticeBox--type--info{color:#fff;background-color:#235982}.theme-malfunction .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-malfunction .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-malfunction .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-malfunction .Input{position:relative;display:inline-block;width:120px;border:1px solid #910101;border:1px solid rgba(145,1,1,.75);border-radius:2px;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible;white-space:nowrap}.theme-malfunction .Input--disabled{color:#777;border-color:#090909;border-color:rgba(9,9,9,.75);background-color:#333;background-color:rgba(0,0,0,.25)}.theme-malfunction .Input--fluid{display:block;width:auto}.theme-malfunction .Input__baseline{display:inline-block;color:transparent}.theme-malfunction .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:12px;line-height:17px;height:17px;margin:0;padding:0 6px;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.theme-malfunction .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-malfunction .Input__textarea{border:0;width:calc(100% + 4px);font-size:12px;line-height:17px;margin-left:-4px;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit;resize:both;overflow:auto;white-space:pre-wrap}.theme-malfunction .Input__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-malfunction .NumberInput{position:relative;display:inline-block;border:1px solid #910101;border:1px solid rgba(145,1,1,.75);border-radius:2px;color:#910101;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 4px;margin-right:2px;line-height:17px;text-align:right;overflow:visible;cursor:n-resize}.theme-malfunction .NumberInput--fluid{display:block}.theme-malfunction .NumberInput__content{margin-left:6px}.theme-malfunction .NumberInput__barContainer{position:absolute;top:2px;bottom:2px;left:2px}.theme-malfunction .NumberInput__bar{position:absolute;bottom:0;left:0;width:3px;box-sizing:border-box;border-bottom:1px solid #910101;background-color:#910101}.theme-malfunction .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:12px;line-height:17px;height:17px;margin:0;padding:0 6px;font-family:Verdana,sans-serif;background-color:#000;color:#fff;text-align:right}.theme-malfunction .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 6px;border-radius:2px;background-color:rgba(0,0,0,.5);transition:border-color .5s}.theme-malfunction .ProgressBar__fill{position:absolute;top:0;left:0;bottom:0}.theme-malfunction .ProgressBar__fill--animated{transition:background-color .5s,width .5s}.theme-malfunction .ProgressBar__content{position:relative;line-height:17px;width:100%;text-align:right}.theme-malfunction .ProgressBar--color--default{border:1px solid #7b0101}.theme-malfunction .ProgressBar--color--default .ProgressBar__fill{background-color:#7b0101}.theme-malfunction .Section{position:relative;margin-bottom:6px;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box;scrollbar-base-color:#142732;scrollbar-face-color:#274b61;scrollbar-3dlight-color:#1b3443;scrollbar-highlight-color:#1b3443;scrollbar-track-color:#142732;scrollbar-arrow-color:#6ba2c3;scrollbar-shadow-color:#274b61}.theme-malfunction .Section:last-child{margin-bottom:0}.theme-malfunction .Section--flex{display:flex;flex-flow:column}.theme-malfunction .Section--flex .Section__content{overflow:auto;flex:1}.theme-malfunction .Section__title{padding:6px;border-bottom:2px solid #910101}.theme-malfunction .Section__titleText{font-size:14px;font-weight:700}.theme-malfunction .Section__buttons{position:absolute;display:inline-block;right:6px;margin-top:-1px}.theme-malfunction .Section__content{padding:8px 6px}.theme-malfunction .Section__content--noTopPadding{padding-top:0}.theme-malfunction .Section__content--stretchContents{height:100%}.theme-malfunction .Section--level--1 .Section__titleText{font-size:14px}.theme-malfunction .Section--level--2 .Section__titleText{font-size:13px}.theme-malfunction .Section--level--3 .Section__titleText{font-size:12px}.theme-malfunction .Section--level--2,.theme-malfunction .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-6px;margin-right:-6px}.theme-malfunction .Tooltip{position:absolute;top:0;left:0;right:0;bottom:0;font-style:normal;font-weight:400}.theme-malfunction .Tooltip:after{position:absolute;display:block;white-space:nowrap;z-index:2;padding:6px 10px;transform:translateX(-50%);pointer-events:none;visibility:hidden;opacity:0;text-align:left;content:attr(data-tooltip);transition:all .15s;background-color:#235577;box-shadow:1px 1px 15px -1px rgba(0,0,0,.5);border-radius:2px}.theme-malfunction .Tooltip:hover:after{transition:all 70ms;pointer-events:none;visibility:visible;opacity:1}.theme-malfunction .Tooltip--long:after{width:250px;white-space:normal}.theme-malfunction .Tooltip--top:after{bottom:100%;left:50%;transform:translateX(-50%) translateY(8px)}.theme-malfunction .Tooltip--top:hover:after{transform:translateX(-50%) translateY(-8px)}.theme-malfunction .Tooltip--top-left:after{bottom:100%;right:50%;transform:translateX(12px) translateY(-8px)}.theme-malfunction .Tooltip--top-left:hover:after{transform:translateX(12px) translateY(8px)}.theme-malfunction .Tooltip--top-right:after{bottom:100%;left:50%;transform:translateX(-12px) translateY(-8px)}.theme-malfunction .Tooltip--top-right:hover:after{transform:translateX(-12px) translateY(8px)}.theme-malfunction .Tooltip--bottom:after{top:100%;left:50%;transform:translateX(-50%) translateY(-8px)}.theme-malfunction .Tooltip--bottom:hover:after{transform:translateX(-50%) translateY(8px)}.theme-malfunction .Tooltip--bottom-left:after{top:100%;right:50%;transform:translateX(12px) translateY(-8px)}.theme-malfunction .Tooltip--bottom-left:hover:after{transform:translateX(12px) translateY(8px)}.theme-malfunction .Tooltip--bottom-right:after{top:100%;left:50%;transform:translateX(-12px) translateY(-8px)}.theme-malfunction .Tooltip--bottom-right:hover:after{transform:translateX(-12px) translateY(8px)}.theme-malfunction .Tooltip--left:after{top:50%;right:100%;transform:translateX(8px) translateY(-50%)}.theme-malfunction .Tooltip--left:hover:after,.theme-malfunction .Tooltip--right:after{transform:translateX(-8px) translateY(-50%)}.theme-malfunction .Tooltip--right:after{top:50%;left:100%}.theme-malfunction .Tooltip--right:hover:after{transform:translateX(8px) translateY(-50%)}.theme-malfunction .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;margin:6px;scrollbar-base-color:#142732;scrollbar-face-color:#274b61;scrollbar-3dlight-color:#1b3443;scrollbar-highlight-color:#1b3443;scrollbar-track-color:#142732;scrollbar-arrow-color:#6ba2c3;scrollbar-shadow-color:#274b61}.theme-malfunction .Layout__content--flexRow{display:flex;flex-flow:row}.theme-malfunction .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-malfunction .Layout__content--scrollable{overflow-y:auto}.theme-malfunction .Layout__content--noMargin{margin:0}.theme-malfunction .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#1b3443;background-image:linear-gradient(180deg,#244559 0,#12232d)}.theme-malfunction .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px}.theme-malfunction .Window__rest{position:fixed;top:32px;bottom:0;left:0;right:0}.theme-malfunction .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(50,79,96,.25);pointer-events:none}.theme-malfunction .Window__toast{position:fixed;bottom:0;left:0;right:0;font-size:12px;height:40px;line-height:39px;padding:0 12px;background-color:#0e1a22;color:hsla(0,0%,100%,.8)}.theme-malfunction .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;height:20px;cursor:se-resize}.theme-malfunction .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;cursor:s-resize}.theme-malfunction .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;cursor:e-resize}.theme-malfunction .TitleBar{background-color:#1a3f57;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-malfunction .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#1a3f57;transition:color .25s,background-color .25s}.theme-malfunction .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-malfunction .TitleBar__title{position:absolute;top:0;left:46px;color:hsla(0,0%,100%,.75);font-size:14px;line-height:31px;white-space:nowrap}.theme-malfunction .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px}.theme-malfunction .TitleBar__statusIcon{position:absolute;top:0;left:12px;transition:color .5s;font-size:20px;line-height:32px!important}.theme-malfunction .TitleBar__minimize{position:absolute;top:6px;right:46px}.theme-malfunction .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;height:32px;font-size:20px;line-height:31px;text-align:center}.theme-malfunction .Layout__content{background-image:none}.theme-ntos .Button{position:relative;display:inline-block;line-height:20px;padding:0 6px;margin-right:2px;white-space:nowrap;outline:0;border-radius:2px;margin-bottom:2px;user-select:none;-ms-user-select:none}.theme-ntos .Button:last-child{margin-right:0}.theme-ntos .Button .fa,.theme-ntos .Button .far,.theme-ntos .Button .fas{margin-left:-3px;margin-right:-3px;min-width:16px;text-align:center}.theme-ntos .Button--hasContent .fa,.theme-ntos .Button--hasContent .far,.theme-ntos .Button--hasContent .fas{margin-right:3px}.theme-ntos .Button--hasContent.Button--iconRight .fa,.theme-ntos .Button--hasContent.Button--iconRight .far,.theme-ntos .Button--hasContent.Button--iconRight .fas{margin-right:0;margin-left:3px}.theme-ntos .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-ntos .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-ntos .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#384e68;color:#fff}.theme-ntos .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--default:focus,.theme-ntos .Button--color--default:hover{background-color:#465e7a;color:#fff}.theme-ntos .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-ntos .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--caution:focus,.theme-ntos .Button--color--caution:hover{background-color:#f3d00e;color:#000}.theme-ntos .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-ntos .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--danger:focus,.theme-ntos .Button--color--danger:hover{background-color:#d52b2b;color:#fff}.theme-ntos .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#1f2b39;color:#fff;background-color:rgba(31,43,57,0);color:rgba(227,240,255,.75)}.theme-ntos .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--transparent:focus,.theme-ntos .Button--color--transparent:hover{background-color:#2b3847;color:#fff}.theme-ntos .Button--disabled{background-color:#999!important}.theme-ntos .Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.theme-ntos .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--selected:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--selected:focus,.theme-ntos .Button--selected:hover{background-color:#27ab46;color:#fff}.theme-ntos .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 6px;border-radius:2px;background-color:rgba(0,0,0,.5);transition:border-color .5s}.theme-ntos .ProgressBar__fill{position:absolute;top:0;left:0;bottom:0}.theme-ntos .ProgressBar__fill--animated{transition:background-color .5s,width .5s}.theme-ntos .ProgressBar__content{position:relative;line-height:17px;width:100%;text-align:right}.theme-ntos .ProgressBar--color--default{border:1px solid #384e68}.theme-ntos .ProgressBar--color--default .ProgressBar__fill{background-color:#384e68}.theme-ntos .Section{position:relative;margin-bottom:6px;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box;scrollbar-base-color:#17202b;scrollbar-face-color:#2e3f55;scrollbar-3dlight-color:#1f2b39;scrollbar-highlight-color:#1f2b39;scrollbar-track-color:#17202b;scrollbar-arrow-color:#7693b5;scrollbar-shadow-color:#2e3f55}.theme-ntos .Section:last-child{margin-bottom:0}.theme-ntos .Section--flex{display:flex;flex-flow:column}.theme-ntos .Section--flex .Section__content{overflow:auto;flex:1}.theme-ntos .Section__title{padding:6px;border-bottom:2px solid #4972a1}.theme-ntos .Section__titleText{font-size:14px;font-weight:700}.theme-ntos .Section__buttons{position:absolute;display:inline-block;right:6px;margin-top:-1px}.theme-ntos .Section__content{padding:8px 6px}.theme-ntos .Section__content--noTopPadding{padding-top:0}.theme-ntos .Section__content--stretchContents{height:100%}.theme-ntos .Section--level--1 .Section__titleText{font-size:14px}.theme-ntos .Section--level--2 .Section__titleText{font-size:13px}.theme-ntos .Section--level--3 .Section__titleText{font-size:12px}.theme-ntos .Section--level--2,.theme-ntos .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-6px;margin-right:-6px}.theme-ntos .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;margin:6px;scrollbar-base-color:#17202b;scrollbar-face-color:#2e3f55;scrollbar-3dlight-color:#1f2b39;scrollbar-highlight-color:#1f2b39;scrollbar-track-color:#17202b;scrollbar-arrow-color:#7693b5;scrollbar-shadow-color:#2e3f55}.theme-ntos .Layout__content--flexRow{display:flex;flex-flow:row}.theme-ntos .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-ntos .Layout__content--scrollable{overflow-y:auto}.theme-ntos .Layout__content--noMargin{margin:0}.theme-ntos .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#1f2b39;background-image:linear-gradient(180deg,#223040 0,#1b2633)}.theme-ntos .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px}.theme-ntos .Window__rest{position:fixed;top:32px;bottom:0;left:0;right:0}.theme-ntos .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(55,69,85,.25);pointer-events:none}.theme-ntos .Window__toast{position:fixed;bottom:0;left:0;right:0;font-size:12px;height:40px;line-height:39px;padding:0 12px;background-color:#0f151d;color:hsla(0,0%,100%,.8)}.theme-ntos .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;height:20px;cursor:se-resize}.theme-ntos .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;cursor:s-resize}.theme-ntos .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;cursor:e-resize}.theme-ntos .TitleBar{background-color:#2a3b4e;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-ntos .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#2a3b4e;transition:color .25s,background-color .25s}.theme-ntos .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-ntos .TitleBar__title{position:absolute;top:0;left:46px;color:hsla(0,0%,100%,.75);font-size:14px;line-height:31px;white-space:nowrap}.theme-ntos .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px}.theme-ntos .TitleBar__statusIcon{position:absolute;top:0;left:12px;transition:color .5s;font-size:20px;line-height:32px!important}.theme-ntos .TitleBar__minimize{position:absolute;top:6px;right:46px}.theme-ntos .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;height:32px;font-size:20px;line-height:31px;text-align:center}.theme-retro .Button{position:relative;display:inline-block;line-height:20px;padding:0 6px;margin-right:2px;white-space:nowrap;outline:0;border-radius:0;margin-bottom:2px;user-select:none;-ms-user-select:none}.theme-retro .Button:last-child{margin-right:0}.theme-retro .Button .fa,.theme-retro .Button .far,.theme-retro .Button .fas{margin-left:-3px;margin-right:-3px;min-width:16px;text-align:center}.theme-retro .Button--hasContent .fa,.theme-retro .Button--hasContent .far,.theme-retro .Button--hasContent .fas{margin-right:3px}.theme-retro .Button--hasContent.Button--iconRight .fa,.theme-retro .Button--hasContent.Button--iconRight .far,.theme-retro .Button--hasContent.Button--iconRight .fas{margin-right:0;margin-left:3px}.theme-retro .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-retro .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-retro .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#e8e4c9;color:#000}.theme-retro .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--default:focus,.theme-retro .Button--color--default:hover{background-color:#f7f6ee;color:#000}.theme-retro .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-retro .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--caution:focus,.theme-retro .Button--color--caution:hover{background-color:#d67313;color:#fff}.theme-retro .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-retro .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--danger:focus,.theme-retro .Button--color--danger:hover{background-color:#afb30a;color:#fff}.theme-retro .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#e8e4c9;color:#000;background-color:rgba(232,228,201,0);color:hsla(0,0%,100%,.5)}.theme-retro .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--transparent:focus,.theme-retro .Button--color--transparent:hover{background-color:#f7f6ee;color:#000}.theme-retro .Button--disabled{background-color:#363636!important}.theme-retro .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-retro .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--selected:focus{transition:color .1s,background-color .1s}.theme-retro .Button--selected:focus,.theme-retro .Button--selected:hover{background-color:#b31212;color:#fff}.theme-retro .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 6px;border-radius:0;background-color:rgba(0,0,0,.5);transition:border-color .5s}.theme-retro .ProgressBar__fill{position:absolute;top:0;left:0;bottom:0}.theme-retro .ProgressBar__fill--animated{transition:background-color .5s,width .5s}.theme-retro .ProgressBar__content{position:relative;line-height:17px;width:100%;text-align:right}.theme-retro .ProgressBar--color--default{border:1px solid #000}.theme-retro .ProgressBar--color--default .ProgressBar__fill{background-color:#000}.theme-retro .Section{position:relative;margin-bottom:6px;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box;scrollbar-base-color:#c8be7d;scrollbar-face-color:#eae7ce;scrollbar-3dlight-color:#e8e4c9;scrollbar-highlight-color:#e8e4c9;scrollbar-track-color:#c8be7d;scrollbar-arrow-color:#f4f2e4;scrollbar-shadow-color:#eae7ce}.theme-retro .Section:last-child{margin-bottom:0}.theme-retro .Section--flex{display:flex;flex-flow:column}.theme-retro .Section--flex .Section__content{overflow:auto;flex:1}.theme-retro .Section__title{padding:6px;border-bottom:2px solid #000}.theme-retro .Section__titleText{font-size:14px;font-weight:700}.theme-retro .Section__buttons{position:absolute;display:inline-block;right:6px;margin-top:-1px}.theme-retro .Section__content{padding:8px 6px}.theme-retro .Section__content--noTopPadding{padding-top:0}.theme-retro .Section__content--stretchContents{height:100%}.theme-retro .Section--level--1 .Section__titleText{font-size:14px}.theme-retro .Section--level--2 .Section__titleText{font-size:13px}.theme-retro .Section--level--3 .Section__titleText{font-size:12px}.theme-retro .Section--level--2,.theme-retro .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-6px;margin-right:-6px}.theme-retro .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;margin:6px;scrollbar-base-color:#c8be7d;scrollbar-face-color:#eae7ce;scrollbar-3dlight-color:#e8e4c9;scrollbar-highlight-color:#e8e4c9;scrollbar-track-color:#c8be7d;scrollbar-arrow-color:#f4f2e4;scrollbar-shadow-color:#eae7ce}.theme-retro .Layout__content--flexRow{display:flex;flex-flow:row}.theme-retro .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-retro .Layout__content--scrollable{overflow-y:auto}.theme-retro .Layout__content--noMargin{margin:0}.theme-retro .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#e8e4c9;background-image:linear-gradient(180deg,#e8e4c9 0,#e8e4c9)}.theme-retro .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px}.theme-retro .Window__rest{position:fixed;top:32px;bottom:0;left:0;right:0}.theme-retro .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(251,250,246,.25);pointer-events:none}.theme-retro .Window__toast{position:fixed;bottom:0;left:0;right:0;font-size:12px;height:40px;line-height:39px;padding:0 12px;background-color:#988d41;color:hsla(0,0%,100%,.8)}.theme-retro .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;height:20px;cursor:se-resize}.theme-retro .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;cursor:s-resize}.theme-retro .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;cursor:e-resize}.theme-retro .TitleBar{background-color:#585337;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-retro .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#585337;transition:color .25s,background-color .25s}.theme-retro .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-retro .TitleBar__title{position:absolute;top:0;left:46px;color:hsla(0,0%,100%,.75);font-size:14px;line-height:31px;white-space:nowrap}.theme-retro .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px}.theme-retro .TitleBar__statusIcon{position:absolute;top:0;left:12px;transition:color .5s;font-size:20px;line-height:32px!important}.theme-retro .TitleBar__minimize{position:absolute;top:6px;right:46px}.theme-retro .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;height:32px;font-size:20px;line-height:31px;text-align:center}.theme-retro .Button{font-family:monospace;color:#161613;border:8px outset #e8e4c9;outline:3px solid #161613}.theme-retro .Layout__content{background-image:none}.theme-safe .Section{position:relative;margin-bottom:6px;background-color:#c4c195;background-color:#b2ae74;box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box;scrollbar-base-color:#1a202c;scrollbar-face-color:#313f54;scrollbar-3dlight-color:#222b3a;scrollbar-highlight-color:#222b3a;scrollbar-track-color:#1a202c;scrollbar-arrow-color:#7b90b2;scrollbar-shadow-color:#313f54}.theme-safe .Section:last-child{margin-bottom:0}.theme-safe .Section--flex{display:flex;flex-flow:column}.theme-safe .Section--flex .Section__content{overflow:auto;flex:1}.theme-safe .Section__title{padding:6px;border-bottom:2px solid #3d566b}.theme-safe .Section__titleText{font-size:14px;font-weight:700}.theme-safe .Section__buttons{position:absolute;display:inline-block;right:6px;margin-top:-1px}.theme-safe .Section__content{padding:8px 6px}.theme-safe .Section__content--noTopPadding{padding-top:0}.theme-safe .Section__content--stretchContents{height:100%}.theme-safe .Section--level--1 .Section__titleText{font-size:14px}.theme-safe .Section--level--2 .Section__titleText{font-size:13px}.theme-safe .Section--level--3 .Section__titleText{font-size:12px}.theme-safe .Section--level--2,.theme-safe .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-6px;margin-right:-6px}.theme-safe .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#222b3a;background-image:linear-gradient(180deg,#242d3d 0,#202937)}.theme-safe .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px}.theme-safe .Window__rest{position:fixed;top:32px;bottom:0;left:0;right:0}.theme-safe .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(58,69,86,.25);pointer-events:none}.theme-safe .Window__toast{position:fixed;bottom:0;left:0;right:0;font-size:12px;height:40px;line-height:39px;padding:0 12px;background-color:#11161d;color:hsla(0,0%,100%,.8)}.theme-safe .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;height:20px;cursor:se-resize}.theme-safe .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;cursor:s-resize}.theme-safe .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;cursor:e-resize}.theme-safe .TitleBar{background-color:#35435a;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-safe .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#35435a;transition:color .25s,background-color .25s}.theme-safe .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-safe .TitleBar__title{position:absolute;top:0;left:46px;color:hsla(0,0%,100%,.75);font-size:14px;line-height:31px;white-space:nowrap}.theme-safe .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px}.theme-safe .TitleBar__statusIcon{position:absolute;top:0;left:12px;transition:color .5s;font-size:20px;line-height:32px!important}.theme-safe .TitleBar__minimize{position:absolute;top:6px;right:46px}.theme-safe .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;height:32px;font-size:20px;line-height:31px;text-align:center}.theme-safe .Safe--engraving{position:absolute;width:95%;height:96%;left:2.5%;top:2%;border:5px outset #3e4f6a;padding:5px;text-align:center}.theme-safe .Safe--engraving--arrow{color:#35435a}.theme-safe .Safe--engraving--hinge{content:" ";background-color:#191f2a;width:25px;height:40px;position:absolute;right:-15px;margin-top:-20px}.theme-safe .Safe--dialer{margin-bottom:.5rem}.theme-safe .Safe--dialer--number{color:#bbb;display:inline;background-color:#191f2a;font-size:1.5rem;font-weight:700;padding:0 .5rem}.theme-safe .Safe--dialer--right .Button i{z-index:-100}.theme-safe .Safe--dialer .Button{width:80px}.theme-safe .Safe--contents{border:10px solid #191f2a;background-color:#0f131a;height:calc(85% + 7.5px);text-align:left;padding:5px}.theme-safe .Safe--help{position:absolute;bottom:10px;left:5px;width:50%}.theme-safe .Layout__content{background-image:none}.theme-safe .Section{font-family:Comic Sans MS,cursive,sans-serif;font-style:italic;color:#000;box-shadow:5px 5px #111;background-image:linear-gradient(180deg,#b2ae74 0,#8e8b5d);transform:rotate(-1deg)}.theme-safe .Section__title{padding-bottom:0;border:0}.theme-safe .Section:before{content:" ";display:block;width:24px;height:40px;background-image:linear-gradient(180deg,transparent 0,#fff);box-shadow:1px 1px #111;opacity:.2;position:absolute;top:-30px;left:calc(50% - 12px);transform:rotate(-5deg)}.theme-security .color-label{color:#ab8784!important}.theme-security .color-bg-good{background-color:#4d9121!important}.theme-security .Button{position:relative;display:inline-block;line-height:20px;padding:0 6px;margin-right:2px;white-space:nowrap;outline:0;border-radius:2px;margin-bottom:2px;user-select:none;-ms-user-select:none}.theme-security .Button:last-child{margin-right:0}.theme-security .Button .fa,.theme-security .Button .far,.theme-security .Button .fas{margin-left:-3px;margin-right:-3px;min-width:16px;text-align:center}.theme-security .Button--hasContent .fa,.theme-security .Button--hasContent .far,.theme-security .Button--hasContent .fas{margin-right:3px}.theme-security .Button--hasContent.Button--iconRight .fa,.theme-security .Button--hasContent.Button--iconRight .far,.theme-security .Button--hasContent.Button--iconRight .fas{margin-right:0;margin-left:3px}.theme-security .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-security .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-security .Button--color--good{transition:color 50ms,background-color 50ms;background-color:#4d9121;color:#fff}.theme-security .Button--color--good:hover{transition:color 0ms,background-color 0ms}.theme-security .Button--color--good:focus{transition:color .1s,background-color .1s}.theme-security .Button--color--good:focus,.theme-security .Button--color--good:hover{background-color:#5da52d;color:#fff}.theme-security .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#a14c49;color:#fff}.theme-security .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-security .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-security .Button--color--default:focus,.theme-security .Button--color--default:hover{background-color:#b35f5c;color:#fff}.theme-security .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-security .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-security .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-security .Button--color--caution:focus,.theme-security .Button--color--caution:hover{background-color:#f3d00e;color:#000}.theme-security .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-security .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-security .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-security .Button--color--danger:focus,.theme-security .Button--color--danger:hover{background-color:#d52b2b;color:#fff}.theme-security .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#252525;color:#fff;background-color:rgba(37,37,37,0);color:hsla(0,0%,100%,.5)}.theme-security .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-security .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-security .Button--color--transparent:focus,.theme-security .Button--color--transparent:hover{background-color:#323232;color:#fff}.theme-security .Button--disabled{background-color:#999!important}.theme-security .Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.theme-security .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-security .Button--selected:focus{transition:color .1s,background-color .1s}.theme-security .Button--selected:focus,.theme-security .Button--selected:hover{background-color:#27ab46;color:#fff}.theme-security .Input{position:relative;display:inline-block;width:120px;border:1px solid #ff8d88;border:1px solid rgba(255,141,136,.75);border-radius:2px;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible;white-space:nowrap}.theme-security .Input--disabled{color:#777;border-color:#848484;border-color:hsla(0,0%,51.8%,.75);background-color:#333;background-color:rgba(0,0,0,.25)}.theme-security .Input--fluid{display:block;width:auto}.theme-security .Input__baseline{display:inline-block;color:transparent}.theme-security .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:12px;line-height:17px;height:17px;margin:0;padding:0 6px;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.theme-security .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-security .Input__textarea{border:0;width:calc(100% + 4px);font-size:12px;line-height:17px;margin-left:-4px;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit;resize:both;overflow:auto;white-space:pre-wrap}.theme-security .Input__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-security .NoticeBox{padding:4px 6px;margin-bottom:6px;box-shadow:none;font-weight:700;font-style:italic;color:#000;background-color:#bb9b68;background-image:repeating-linear-gradient(-45deg,transparent,transparent 10px,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 20px)}.theme-security .NoticeBox--color--good{color:#fff;background-color:#2e4b1a}.theme-security .NoticeBox--type--info{color:#fff;background-color:#822329}.theme-security .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-security .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-security .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-security .Section{position:relative;margin-bottom:6px;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box;scrollbar-base-color:#1c1c1c;scrollbar-face-color:#3b3b3b;scrollbar-3dlight-color:#252525;scrollbar-highlight-color:#252525;scrollbar-track-color:#1c1c1c;scrollbar-arrow-color:#929292;scrollbar-shadow-color:#3b3b3b}.theme-security .Section:last-child{margin-bottom:0}.theme-security .Section--flex{display:flex;flex-flow:column}.theme-security .Section--flex .Section__content{overflow:auto;flex:1}.theme-security .Section__title{padding:6px;border-bottom:2px solid #a14c49}.theme-security .Section__titleText{font-size:14px;font-weight:700}.theme-security .Section__buttons{position:absolute;display:inline-block;right:6px;margin-top:-1px}.theme-security .Section__content{padding:8px 6px}.theme-security .Section__content--noTopPadding{padding-top:0}.theme-security .Section__content--stretchContents{height:100%}.theme-security .Section--level--1 .Section__titleText{font-size:14px}.theme-security .Section--level--2 .Section__titleText{font-size:13px}.theme-security .Section--level--3 .Section__titleText{font-size:12px}.theme-security .Section--level--2,.theme-security .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-6px;margin-right:-6px}.theme-security .Newscaster__menu{width:40px;height:100%;margin-right:.5rem;flex-basis:content}.theme-security .Newscaster__menu .Section__content{padding-left:0}.theme-security .Newscaster__menuButton{color:#767676;cursor:pointer;position:relative;margin-left:6px;margin-right:1rem;white-space:nowrap;transition:color .1s}.theme-security .Newscaster__menuButton--title{width:80%;display:none;overflow:hidden;text-overflow:ellipsis}.theme-security .Newscaster__menuButton--unread{background-color:#e45e5e;color:#fff;font-size:10px;text-align:center;border-radius:32px;display:inline-block;width:12px;position:absolute;left:16px;margin-top:14px}.theme-security .Newscaster__menuButton--selected{color:#fff}.theme-security .Newscaster__menuButton--selected:after{content:"";background-color:#a14c49;width:2px;height:24px;position:absolute;left:-6px}.theme-security .Newscaster__menuButton--security{color:#a14c49}.theme-security .Newscaster__menuButton i{width:30px;text-align:center;vertical-align:middle;margin-left:-1px;margin-right:.5rem;margin-top:1px}.theme-security .Newscaster__menuButton:hover{color:#fff}.theme-security .Newscaster__menuButton:hover:before{background-color:#fff}.theme-security .Newscaster__menuButton:not(:last-of-type){margin-bottom:.5rem}.theme-security .Newscaster__menu--open{width:175px}.theme-security .Newscaster__menu--open .Newscaster__menuButton--title{display:inline-block}.theme-security .Newscaster__jobCategory--security .Section__title{color:#a14c49;border-bottom:2px solid #a14c49!important}.theme-security .Newscaster__jobCategory--engineering .Section__title{color:#a17849;border-bottom:2px solid #a17849!important}.theme-security .Newscaster__jobCategory--medical .Section__title{color:#499ea1;border-bottom:2px solid #499ea1!important}.theme-security .Newscaster__jobCategory--science .Section__title{color:#a14972;border-bottom:2px solid #a14972!important}.theme-security .Newscaster__jobCategory--service .Section__title{color:#a1499e;border-bottom:2px solid #a1499e!important}.theme-security .Newscaster__jobCategory--supply .Section__title{color:#9ea149;border-bottom:2px solid #9ea149!important}.theme-security .Newscaster__jobCategory:last-child{margin-bottom:.5rem}.theme-security .Newscaster__jobOpening--command{font-weight:700}.theme-security .Newscaster__jobOpening:not(:last-child){margin-bottom:.5rem}.theme-security .Newscaster__emptyNotice{color:#a7817e;text-align:center;position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%)}.theme-security .Newscaster__emptyNotice i{margin-bottom:.25rem}.theme-security .Newscaster__photo{cursor:pointer;width:96px;border:1px solid #000;transition:border-color .1s;-ms-interpolation-mode:nearest-neighbor}.theme-security .Newscaster__photo:hover{border-color:grey}.theme-security .Newscaster__photoZoom{text-align:center}.theme-security .Newscaster__photoZoom>img{transform:scale(2);-ms-interpolation-mode:nearest-neighbor}.theme-security .Newscaster__photoZoom>.Button{position:absolute;width:64px;left:50%;margin-left:-32px;bottom:1rem}.theme-security .Newscaster__story--wanted{background-color:rgba(219,40,40,.1)}.theme-security .Newscaster__story--wanted .Section__title{color:#db2828;border-bottom:2px solid #a14c49!important}.theme-security .Newscaster__story:last-child{margin-bottom:.5rem}.theme-syndicate .Button{position:relative;display:inline-block;line-height:20px;padding:0 6px;margin-right:2px;white-space:nowrap;outline:0;border-radius:2px;margin-bottom:2px;user-select:none;-ms-user-select:none}.theme-syndicate .Button:last-child{margin-right:0}.theme-syndicate .Button .fa,.theme-syndicate .Button .far,.theme-syndicate .Button .fas{margin-left:-3px;margin-right:-3px;min-width:16px;text-align:center}.theme-syndicate .Button--hasContent .fa,.theme-syndicate .Button--hasContent .far,.theme-syndicate .Button--hasContent .fas{margin-right:3px}.theme-syndicate .Button--hasContent.Button--iconRight .fa,.theme-syndicate .Button--hasContent.Button--iconRight .far,.theme-syndicate .Button--hasContent.Button--iconRight .fas{margin-right:0;margin-left:3px}.theme-syndicate .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-syndicate .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-syndicate .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#397439;color:#fff}.theme-syndicate .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--default:focus,.theme-syndicate .Button--color--default:hover{background-color:#478647;color:#fff}.theme-syndicate .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-syndicate .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--caution:focus,.theme-syndicate .Button--color--caution:hover{background-color:#d67313;color:#fff}.theme-syndicate .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-syndicate .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--danger:focus,.theme-syndicate .Button--color--danger:hover{background-color:#afb30a;color:#fff}.theme-syndicate .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#550202;color:#fff;background-color:rgba(85,2,2,0);color:hsla(0,0%,100%,.5)}.theme-syndicate .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--transparent:focus,.theme-syndicate .Button--color--transparent:hover{background-color:#650c0c;color:#fff}.theme-syndicate .Button--disabled{background-color:#363636!important}.theme-syndicate .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-syndicate .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--selected:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--selected:focus,.theme-syndicate .Button--selected:hover{background-color:#b31212;color:#fff}.theme-syndicate .NoticeBox{padding:4px 6px;margin-bottom:6px;box-shadow:none;font-weight:700;font-style:italic;color:#fff;background-color:#910101;background-image:repeating-linear-gradient(-45deg,transparent,transparent 10px,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 20px)}.theme-syndicate .NoticeBox--type--info{color:#fff;background-color:#235982}.theme-syndicate .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-syndicate .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-syndicate .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-syndicate .Input{position:relative;display:inline-block;width:120px;border:1px solid #87ce87;border:1px solid rgba(135,206,135,.75);border-radius:2px;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible;white-space:nowrap}.theme-syndicate .Input--disabled{color:#777;border-color:#6b6b6b;border-color:hsla(0,0%,42%,.75);background-color:#333;background-color:rgba(0,0,0,.25)}.theme-syndicate .Input--fluid{display:block;width:auto}.theme-syndicate .Input__baseline{display:inline-block;color:transparent}.theme-syndicate .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:12px;line-height:17px;height:17px;margin:0;padding:0 6px;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.theme-syndicate .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-syndicate .Input__textarea{border:0;width:calc(100% + 4px);font-size:12px;line-height:17px;margin-left:-4px;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit;resize:both;overflow:auto;white-space:pre-wrap}.theme-syndicate .Input__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-syndicate .NumberInput{position:relative;display:inline-block;border:1px solid #87ce87;border:1px solid rgba(135,206,135,.75);border-radius:2px;color:#87ce87;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 4px;margin-right:2px;line-height:17px;text-align:right;overflow:visible;cursor:n-resize}.theme-syndicate .NumberInput--fluid{display:block}.theme-syndicate .NumberInput__content{margin-left:6px}.theme-syndicate .NumberInput__barContainer{position:absolute;top:2px;bottom:2px;left:2px}.theme-syndicate .NumberInput__bar{position:absolute;bottom:0;left:0;width:3px;box-sizing:border-box;border-bottom:1px solid #87ce87;background-color:#87ce87}.theme-syndicate .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:12px;line-height:17px;height:17px;margin:0;padding:0 6px;font-family:Verdana,sans-serif;background-color:#000;color:#fff;text-align:right}.theme-syndicate .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 6px;border-radius:2px;background-color:rgba(0,0,0,.5);transition:border-color .5s}.theme-syndicate .ProgressBar__fill{position:absolute;top:0;left:0;bottom:0}.theme-syndicate .ProgressBar__fill--animated{transition:background-color .5s,width .5s}.theme-syndicate .ProgressBar__content{position:relative;line-height:17px;width:100%;text-align:right}.theme-syndicate .ProgressBar--color--default{border:1px solid #306330}.theme-syndicate .ProgressBar--color--default .ProgressBar__fill{background-color:#306330}.theme-syndicate .Section{position:relative;margin-bottom:6px;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box;scrollbar-base-color:#400202;scrollbar-face-color:#7e0303;scrollbar-3dlight-color:#550202;scrollbar-highlight-color:#550202;scrollbar-track-color:#400202;scrollbar-arrow-color:#fa3030;scrollbar-shadow-color:#7e0303}.theme-syndicate .Section:last-child{margin-bottom:0}.theme-syndicate .Section--flex{display:flex;flex-flow:column}.theme-syndicate .Section--flex .Section__content{overflow:auto;flex:1}.theme-syndicate .Section__title{padding:6px;border-bottom:2px solid #397439}.theme-syndicate .Section__titleText{font-size:14px;font-weight:700}.theme-syndicate .Section__buttons{position:absolute;display:inline-block;right:6px;margin-top:-1px}.theme-syndicate .Section__content{padding:8px 6px}.theme-syndicate .Section__content--noTopPadding{padding-top:0}.theme-syndicate .Section__content--stretchContents{height:100%}.theme-syndicate .Section--level--1 .Section__titleText{font-size:14px}.theme-syndicate .Section--level--2 .Section__titleText{font-size:13px}.theme-syndicate .Section--level--3 .Section__titleText{font-size:12px}.theme-syndicate .Section--level--2,.theme-syndicate .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-6px;margin-right:-6px}.theme-syndicate .Tooltip{position:absolute;top:0;left:0;right:0;bottom:0;font-style:normal;font-weight:400}.theme-syndicate .Tooltip:after{position:absolute;display:block;white-space:nowrap;z-index:2;padding:6px 10px;transform:translateX(-50%);pointer-events:none;visibility:hidden;opacity:0;text-align:left;content:attr(data-tooltip);transition:all .15s;background-color:#4a0202;box-shadow:1px 1px 15px -1px rgba(0,0,0,.5);border-radius:2px}.theme-syndicate .Tooltip:hover:after{transition:all 70ms;pointer-events:none;visibility:visible;opacity:1}.theme-syndicate .Tooltip--long:after{width:250px;white-space:normal}.theme-syndicate .Tooltip--top:after{bottom:100%;left:50%;transform:translateX(-50%) translateY(8px)}.theme-syndicate .Tooltip--top:hover:after{transform:translateX(-50%) translateY(-8px)}.theme-syndicate .Tooltip--top-left:after{bottom:100%;right:50%;transform:translateX(12px) translateY(-8px)}.theme-syndicate .Tooltip--top-left:hover:after{transform:translateX(12px) translateY(8px)}.theme-syndicate .Tooltip--top-right:after{bottom:100%;left:50%;transform:translateX(-12px) translateY(-8px)}.theme-syndicate .Tooltip--top-right:hover:after{transform:translateX(-12px) translateY(8px)}.theme-syndicate .Tooltip--bottom:after{top:100%;left:50%;transform:translateX(-50%) translateY(-8px)}.theme-syndicate .Tooltip--bottom:hover:after{transform:translateX(-50%) translateY(8px)}.theme-syndicate .Tooltip--bottom-left:after{top:100%;right:50%;transform:translateX(12px) translateY(-8px)}.theme-syndicate .Tooltip--bottom-left:hover:after{transform:translateX(12px) translateY(8px)}.theme-syndicate .Tooltip--bottom-right:after{top:100%;left:50%;transform:translateX(-12px) translateY(-8px)}.theme-syndicate .Tooltip--bottom-right:hover:after{transform:translateX(-12px) translateY(8px)}.theme-syndicate .Tooltip--left:after{top:50%;right:100%;transform:translateX(8px) translateY(-50%)}.theme-syndicate .Tooltip--left:hover:after,.theme-syndicate .Tooltip--right:after{transform:translateX(-8px) translateY(-50%)}.theme-syndicate .Tooltip--right:after{top:50%;left:100%}.theme-syndicate .Tooltip--right:hover:after{transform:translateX(8px) translateY(-50%)}.theme-syndicate .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;margin:6px;scrollbar-base-color:#400202;scrollbar-face-color:#7e0303;scrollbar-3dlight-color:#550202;scrollbar-highlight-color:#550202;scrollbar-track-color:#400202;scrollbar-arrow-color:#fa3030;scrollbar-shadow-color:#7e0303}.theme-syndicate .Layout__content--flexRow{display:flex;flex-flow:row}.theme-syndicate .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-syndicate .Layout__content--scrollable{overflow-y:auto}.theme-syndicate .Layout__content--noMargin{margin:0}.theme-syndicate .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#550202;background-image:linear-gradient(180deg,#730303 0,#370101)}.theme-syndicate .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px}.theme-syndicate .Window__rest{position:fixed;top:32px;bottom:0;left:0;right:0}.theme-syndicate .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(117,22,22,.25);pointer-events:none}.theme-syndicate .Window__toast{position:fixed;bottom:0;left:0;right:0;font-size:12px;height:40px;line-height:39px;padding:0 12px;background-color:#2b0101;color:hsla(0,0%,100%,.8)}.theme-syndicate .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;height:20px;cursor:se-resize}.theme-syndicate .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;cursor:s-resize}.theme-syndicate .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;cursor:e-resize}.theme-syndicate .TitleBar{background-color:#910101;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-syndicate .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#910101;transition:color .25s,background-color .25s}.theme-syndicate .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-syndicate .TitleBar__title{position:absolute;top:0;left:46px;color:hsla(0,0%,100%,.75);font-size:14px;line-height:31px;white-space:nowrap}.theme-syndicate .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px}.theme-syndicate .TitleBar__statusIcon{position:absolute;top:0;left:12px;transition:color .5s;font-size:20px;line-height:32px!important}.theme-syndicate .TitleBar__minimize{position:absolute;top:6px;right:46px}.theme-syndicate .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;height:32px;font-size:20px;line-height:31px;text-align:center}.theme-syndicate .Layout__content{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMCIgdmlld0JveD0iMCAwIDIwMCAyODkuNzQyIiBvcGFjaXR5PSIuMzMiPjxwYXRoIGQ9Ik05My41MzggMGMtMTguMTEzIDAtMzQuMjIgMy4xMTItNDguMzI0IDkuMzM0LTEzLjk2NSA2LjIyMi0yNC42MTIgMTUuMDcyLTMxLjk0IDI2LjU0N0M2LjA4NCA0Ny4yMiAyLjk3MiA2MC42MzEgMi45NzIgNzYuMTE2YzAgMTAuNjQ3IDIuNzI1IDIwLjQ2NSA4LjE3NSAyOS40NTMgNS42MTYgOC45ODcgMTQuMDM5IDE3LjM1MiAyNS4yNyAyNS4wOTQgMTEuMjMgNy42MDYgMjYuNTA3IDE1LjQxOSA0NS44MyAyMy40MzggMTkuOTg0IDguMjk2IDM0Ljg0OSAxNS41NTUgNDQuNTkzIDIxLjc3NiA5Ljc0NCA2LjIyMyAxNi43NjEgMTIuODU5IDIxLjA1NSAxOS45MSA0LjI5NSA3LjA1MiA2LjQ0MiAxNS43NjQgNi40NDIgMjYuMTM0IDAgMTYuMTc4LTUuMjAyIDI4LjQ4My0xNS42MDYgMzYuOTE3LTEwLjI0IDguNDM1LTI1LjAyMiAxMi42NTMtNDQuMzQ1IDEyLjY1My0xNC4wMzkgMC0yNS41MTYtMS42Ni0zNC40MzQtNC45NzgtOC45MTgtMy40NTctMTYuMTg2LTguNzExLTIxLjgtMTUuNzYzLTUuNjE2LTcuMDUyLTEwLjA3Ni0xNi42NjEtMTMuMzc5LTI4LjgyOUgwdjU2LjgyN2MzMy44NTcgNy4zMjggNjMuNzQ5IDEwLjk5NCA4OS42NzggMTAuOTk0IDE2LjAyIDAgMzAuNzItMS4zODMgNDQuMDk4LTQuMTQ4IDEzLjU0Mi0yLjkwNCAyNS4xMDQtNy40NjcgMzQuNjgzLTEzLjY5IDkuNzQ0LTYuMzU5IDE3LjM0LTE0LjUxOSAyMi43OS0yNC40NzQgNS40NS0xMC4wOTMgOC4xNzUtMjIuNCA4LjE3NS0zNi45MTcgMC0xMi45OTctMy4zMDItMjQuMzM1LTkuOTA4LTM0LjAxNC02LjQ0LTkuODE4LTE1LjUyNS0xOC41MjctMjcuMjUxLTI2LjEzMi0xMS41NjEtNy42MDQtMjcuOTExLTE1LjgzMS00OS4wNTEtMjQuNjgtMTcuNTA2LTcuMTktMzAuNzItMTMuNjktMzkuNjM4LTE5LjQ5N1M1NC45NjkgOTMuNzU2IDQ5LjQ3OSA4Ny4zMTZjLTUuNDI2LTYuMzY2LTkuNjU4LTE1LjA3LTkuNjU4LTI0Ljg4NyAwLTkuMjY0IDIuMDc1LTE3LjIxNCA2LjIyMy0yMy44NUM1Ny4xNDIgMjQuMTggODcuMzMxIDM2Ljc4MiA5MS4xMiA2Mi45MjVjNC44NCA2Ljc3NSA4Ljg1IDE2LjI0NyAxMi4wMyAyOC40MTVoMjAuNTMydi01NmMtNC40NzktNS45MjQtOS45NTUtMTAuNjMxLTE1LjkwOS0xNC4zNzMgMS42NC40NzkgMy4xOSAxLjAyMyA0LjYzOSAxLjY0IDYuNDk4IDIuNjI2IDEyLjE2OCA3LjMyNyAxNy4wMDcgMTQuMTAzIDQuODQgNi43NzUgOC44NSAxNi4yNDYgMTIuMDMgMjguNDE0IDAgMCA4LjQ4LS4xMjkgOC40OS0uMDAyLjQxNyA2LjQxNS0xLjc1NCA5LjQ1My00LjEyNCAxMi41NjEtMi40MTcgMy4xNy01LjE0NSA2Ljc5LTQuMDAzIDEzLjAwMyAxLjUwOCA4LjIwMyAxMC4xODQgMTAuNTk3IDE0LjYyMiA5LjMxMi0zLjMxOC0uNS01LjMxOC0xLjc1LTUuMzE4LTEuNzVzMS44NzYuOTk5IDUuNjUtMS4zNmMtMy4yNzYuOTU2LTEwLjcwNC0uNzk3LTExLjgtNi43NjMtLjk1OC01LjIwOC45NDYtNy4yOTUgMy40LTEwLjUxNCAyLjQ1NS0zLjIyIDUuMjg1LTYuOTU5IDQuNjg1LTE0LjQ4OWwuMDAzLjAwMmg4LjkyN3YtNTZjLTE1LjA3Mi0zLjg3MS0yNy42NTMtNi4zNi0zNy43NDctNy40NjVDMTE0LjI3OS41NTIgMTA0LjA0NiAwIDkzLjUzNyAwem03MC4zMjEgMTcuMzA5bC4yMzggNDAuMzA1YzEuMzE4IDEuMjI2IDIuNDQgMi4yNzggMy4zNDEgMy4xMDYgNC44NCA2Ljc3NSA4Ljg1IDE2LjI0NiAxMi4wMyAyOC40MTRIMjAwdi01NmMtNi42NzctNC41OTQtMTkuODM2LTEwLjQ3My0zNi4xNC0xNS44MjV6bS0yOC4xMiA1LjYwNWw4LjU2NSAxNy43MTdjLTExLjk3LTYuNDY3LTEzLjg0Ny05LjcxNy04LjU2NS0xNy43MTd6bTIyLjc5NyAwYzIuNzcxIDggMS43ODcgMTEuMjUtNC40OTQgMTcuNzE3bDQuNDk0LTE3LjcxN3ptMTUuMjIyIDI0LjAwOWw4LjU2NSAxNy43MTZjLTExLjk3LTYuNDY2LTEzLjg0Ny05LjcxNy04LjU2NS0xNy43MTZ6bTIyLjc5NyAwYzIuNzcxIDggMS43ODcgMTEuMjUtNC40OTQgMTcuNzE2bDQuNDk0LTE3LjcxNnpNOTcuNDQgNDkuMTNsOC41NjUgMTcuNzE2Yy0xMS45Ny02LjQ2Ny0xMy44NDctOS43MTctOC41NjUtMTcuNzE2em0yMi43OTUgMGMyLjc3MiA3Ljk5OSAxLjc4OCAxMS4yNS00LjQ5MyAxNy43MTZsNC40OTMtMTcuNzE2eiIvPjwvc3ZnPg==)}.theme-nologo .Layout__content{background-image:none} \ No newline at end of file diff --git a/tgui/packages/tgui/public/tgui.bundle.js b/tgui/packages/tgui/public/tgui.bundle.js index 58c6dfa2954..d7aceae0d93 100644 --- a/tgui/packages/tgui/public/tgui.bundle.js +++ b/tgui/packages/tgui/public/tgui.bundle.js @@ -1,5 +1,5 @@ -!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=230)}([function(e,t,n){"use strict";t.__esModule=!0;var o=n(232);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===o[e]||(t[e]=o[e]))}))},function(e,t,n){"use strict";t.__esModule=!0,t.useSharedState=t.useLocalState=t.useBackend=t.deleteLocalState=t.backendUpdate=t.backendSetSharedState=t.backendReducer=t.backendDeleteSharedState=void 0;var o=n(31),r=n(46);t.backendUpdate=function(e){return{type:"backend/update",payload:e}};var a=function(e,t){return{type:"backend/setSharedState",payload:{key:e,nextState:t}}};t.backendSetSharedState=a;var c=function(e){return{type:"backend/deleteSharedState",payload:e}};t.backendDeleteSharedState=c;t.backendReducer=function(e,t){var n=t.type,o=t.payload;if("backend/update"===n){var a=Object.assign({},e.config,o.config),c=Object.assign({},e.data,o.static_data,o.data),i=Object.assign({},e.shared);if(o.shared)for(var l=0,d=Object.keys(o.shared);l1?n-1:0),r=1;rn?n:e};t.clamp01=function(e){return e<0?0:e>1?1:e};t.scale=function(e,t,n){return(e-t)/(n-t)};t.round=function(e,t){return!e||isNaN(e)?e:(t|=0,a=(e*=n=Math.pow(10,t))>0|-(e<0),r=Math.abs(e%1)>=.4999999999854481,o=Math.floor(e),r&&(e=o+(a>0)),(r?e:Math.round(e))/n);var n,o,r,a};t.toFixed=function(e,t){return void 0===t&&(t=0),Number(e).toFixed(Math.max(t,0))};var o=function(e,t){return t&&e>=t[0]&&e<=t[1]};t.inRange=o;t.keyOfMatchingRange=function(e,t){for(var n=0,r=Object.keys(t);n0&&(t.style=l),t};t.computeBoxProps=N;var b=function(e){var t=e.textColor||e.color,n=e.backgroundColor;return(0,o.classes)([u(t)&&"color-"+t,u(n)&&"color-bg-"+n])};t.computeBoxClassName=b;var V=function(e){var t=e.as,n=void 0===t?"div":t,o=e.className,c=e.children,l=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,i);if("function"==typeof c)return c(N(e));var d="string"==typeof o?o+" "+b(l):b(l),u=N(l);return(0,r.createVNode)(a.VNodeFlags.HtmlElement,n,d,c,a.ChildFlags.UnknownChildren,u)};t.Box=V,V.defaultHooks=o.pureComponentHooks},function(e,t,n){"use strict";var o=n(39);e.exports=function(e){return o(e.length)}},function(e,t,n){"use strict";function o(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n",apos:"'"};return e.replace(/
/gi,"\n").replace(/<\/?[a-z0-9-_]+[^>]*>/gi,"").replace(/&(nbsp|amp|quot|lt|gt|apos);/g,(function(e,n){return t[n]})).replace(/&#?([0-9]+);/gi,(function(e,t){var n=parseInt(t,10);return String.fromCharCode(n)})).replace(/&#x?([0-9a-f]+);/gi,(function(e,t){var n=parseInt(t,16);return String.fromCharCode(n)}))};t.buildQueryString=function(e){return Object.keys(e).map((function(t){return encodeURIComponent(t)+"="+encodeURIComponent(e[t])})).join("&")}},function(e,t,n){"use strict";var o=n(5),r=n(12),a=n(48),c=n(129),i=n(127);e.exports=function(e,t,n,l){var d=!!l&&!!l.unsafe,u=!!l&&!!l.enumerable,s=!!l&&!!l.noTargetGet,m=l&&l.name!==undefined?l.name:t;return r(n)&&c(n,m,l),e===o?(u?e[t]=n:i(t,n),e):(d?!s&&e[t]&&(u=!0):delete e[t],u?e[t]=n:a(e,t,n),e)}},function(e,t,n){"use strict";var o=n(59),r=n(7),a=n(85),c=n(19),i=n(22),l=n(91),d=r([].push),u=function(e){var t=1==e,n=2==e,r=3==e,u=4==e,s=6==e,m=7==e,p=5==e||s;return function(h,f,C,N){for(var b,V,g=c(h),v=a(g),y=o(f,C),_=i(v),x=0,k=N||l,L=t?k(h,_):n||m?k(h,0):undefined;_>x;x++)if((p||x in v)&&(V=y(b=v[x],x,g),e))if(t)L[x]=V;else if(V)switch(e){case 3:return!0;case 5:return b;case 6:return x;case 2:d(L,b)}else switch(e){case 4:return!1;case 7:d(L,b)}return s?-1:r||u?u:L}};e.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6),filterReject:u(7)}},function(e,t,n){"use strict";var o=n(8),r=n(14),a=n(100),c=n(64),i=n(29),l=n(55),d=n(18),u=n(172),s=Object.getOwnPropertyDescriptor;t.f=o?s:function(e,t){if(e=i(e),t=l(t),u)try{return s(e,t)}catch(n){}if(d(e,t))return c(!r(a.f,e,t),e[t])}},function(e,t,n){"use strict";var o=n(5),r=n(12),a=n(70),c=o.TypeError;e.exports=function(e){if(r(e))return e;throw c(a(e)+" is not a function")}},function(e,t,n){"use strict";var o=n(5),r=n(12),a=function(e){return r(e)?e:undefined};e.exports=function(e,t){return arguments.length<2?a(o[e]):o[e]&&o[e][t]}},function(e,t,n){"use strict";var o=n(85),r=n(30);e.exports=function(e){return o(r(e))}},function(e,t,n){"use strict";var o=n(5).TypeError;e.exports=function(e){if(e==undefined)throw o("Can't call method on "+e);return e}},function(e,t,n){"use strict";function o(e,t,n,o,r,a,c){try{var i=e[a](c),l=i.value}catch(d){return void n(d)}i.done?t(l):Promise.resolve(l).then(o,r)}t.__esModule=!0,t.winset=t.winget=t.runCommand=t.callByondAsync=t.callByond=t.IS_IE8=void 0;var r=window.Byond,a=function(){var e=navigator.userAgent.match(/Trident\/(\d+).+?;/i);if(!e)return null;var t=e[1];return t?parseInt(t,10):null}(),c=null!==a&&a<=6;t.IS_IE8=c;var i=function(e,t){void 0===t&&(t={}),r.call(e,t)};t.callByond=i;var l=function(e,t){void 0===t&&(t={}),window.__callbacks__=window.__callbacks__||[];var n=window.__callbacks__.length,o=new Promise((function(e){window.__callbacks__.push(e)}));return r.call(e,Object.assign({},t,{callback:"__callbacks__["+n+"]"})),o};t.callByondAsync=l;t.runCommand=function(e){return i("winset",{command:e})};var d=function(){var e,t=(e=regeneratorRuntime.mark((function n(e,t){var o;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,l("winget",{id:e,property:t});case 2:return o=n.sent,n.abrupt("return",o[t]);case 4:case"end":return n.stop()}}),n)})),function(){var t=this,n=arguments;return new Promise((function(r,a){var c=e.apply(t,n);function i(e){o(c,r,a,i,l,"next",e)}function l(e){o(c,r,a,i,l,"throw",e)}i(undefined)}))});return function(e,n){return t.apply(this,arguments)}}();t.winget=d;t.winset=function(e,t,n){var o;return i("winset",((o={})[e+"."+t]=n,o))}},function(e,t,n){"use strict";t.__esModule=!0,t.zipWith=t.zip=t.uniqBy=t.toKeyedArray=t.toArray=t.sortBy=t.reduce=t.map=t.filter=void 0;t.toArray=function(e){if(Array.isArray(e))return e;if("object"==typeof e){var t=Object.prototype.hasOwnProperty,n=[];for(var o in e)t.call(e,o)&&n.push(e[o]);return n}return[]};t.toKeyedArray=function(e,t){return void 0===t&&(t="key"),o((function(e,n){var o;return Object.assign(((o={})[t]=n,o),e)}))(e)};t.filter=function(e){return function(t){if(null===t&&t===undefined)return t;if(Array.isArray(t)){for(var n=[],o=0;oi)return 1}return 0};t.sortBy=function(){for(var e=arguments.length,t=new Array(e),n=0;n"+l+""}},function(e,t,n){"use strict";var o=n(6);e.exports=function(e){return o((function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}))}},function(e,t,n){"use strict";var o,r,a,c=n(174),i=n(5),l=n(7),d=n(11),u=n(48),s=n(18),m=n(126),p=n(102),h=n(87),f=i.TypeError,C=i.WeakMap;if(c||m.state){var N=m.state||(m.state=new C),b=l(N.get),V=l(N.has),g=l(N.set);o=function(e,t){if(V(N,e))throw new f("Object already initialized");return t.facade=e,g(N,e,t),t},r=function(e){return b(N,e)||{}},a=function(e){return V(N,e)}}else{var v=p("state");h[v]=!0,o=function(e,t){if(s(e,v))throw new f("Object already initialized");return t.facade=e,u(e,v,t),t},r=function(e){return s(e,v)?e[v]:{}},a=function(e){return s(e,v)}}e.exports={set:o,get:r,has:a,enforce:function(e){return a(e)?r(e):o(e,{})},getterFor:function(e){return function(t){var n;if(!d(t)||(n=r(t)).type!==e)throw f("Incompatible receiver, "+e+" required");return n}}}},function(e,t,n){"use strict";var o=Math.ceil,r=Math.floor;e.exports=function(e){var t=+e;return t!=t||0===t?0:(t>0?r:o)(t)}},function(e,t,n){"use strict";var o=n(38),r=Math.min;e.exports=function(e){return e>0?r(o(e),9007199254740991):0}},function(e,t,n){"use strict";t.__esModule=!0,t.computeFlexProps=t.computeFlexItemProps=t.FlexItem=t.Flex=void 0;var o=n(0),r=n(10),a=n(31),c=n(21),i=["className","direction","wrap","align","alignContent","justify","inline","spacing","spacingPrecise"],l=["className","grow","order","shrink","basis","align"];function d(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var u=function(e){var t=e.className,n=e.direction,o=e.wrap,c=e.align,l=e.alignContent,u=e.justify,s=e.inline,m=e.spacing,p=void 0===m?0:m,h=e.spacingPrecise,f=void 0===h?0:h,C=d(e,i);return Object.assign({className:(0,r.classes)(["Flex",a.IS_IE8&&("column"===n?"Flex--ie8--column":"Flex--ie8"),s&&"Flex--inline",p>0&&"Flex--spacing--"+p,f>0&&"Flex--spacingPrecise--"+f,t]),style:Object.assign({},C.style,{"flex-direction":n,"flex-wrap":o,"align-items":c,"align-content":l,"justify-content":u})},C)};t.computeFlexProps=u;var s=function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,c.Box,Object.assign({},u(e))))};t.Flex=s,s.defaultHooks=r.pureComponentHooks;var m=function(e){var t=e.className,n=e.grow,o=e.order,i=e.shrink,u=e.basis,s=void 0===u?e.width:u,m=e.align,p=d(e,l);return Object.assign({className:(0,r.classes)(["Flex__item",a.IS_IE8&&"Flex__item--ie8",t]),style:Object.assign({},p.style,{"flex-grow":n,"flex-shrink":i,"flex-basis":(0,c.unit)(s),order:o,"align-self":m})},p)};t.computeFlexItemProps=m;var p=function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,c.Box,Object.assign({},m(e))))};t.FlexItem=p,p.defaultHooks=r.pureComponentHooks,s.Item=p},function(e,t,n){"use strict";t.__esModule=!0,t.modalRegisterBodyOverride=t.modalOpen=t.modalClose=t.modalAnswer=t.ComplexModal=void 0;var o=n(0),r=n(1),a=n(2),c={};t.modalOpen=function(e,t,n){var o=(0,r.useBackend)(e),a=o.act,c=o.data,i=Object.assign(c.modal?c.modal.args:{},n||{});a("modal_open",{id:t,arguments:JSON.stringify(i)})};t.modalRegisterBodyOverride=function(e,t){c[e]=t};var i=function(e,t,n,o){var a=(0,r.useBackend)(e),c=a.act,i=a.data;if(i.modal){var l=Object.assign(i.modal.args||{},o||{});c("modal_answer",{id:t,answer:n,arguments:JSON.stringify(l)})}};t.modalAnswer=i;var l=function(e,t){(0,(0,r.useBackend)(e).act)("modal_close",{id:t})};t.modalClose=l;t.ComplexModal=function(e,t){var n=(0,r.useBackend)(t).data;if(n.modal){var d,u,s=n.modal,m=s.id,p=s.text,h=s.type,f=(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"Cancel",color:"grey",onClick:function(){return l(t)}}),C="auto";if(c[m])u=c[m](n.modal,t);else if("input"===h){var N=n.modal.value;d=function(e){return i(t,m,N)},u=(0,o.createComponentVNode)(2,a.Input,{value:n.modal.value,placeholder:"ENTER to submit",width:"100%",my:"0.5rem",autofocus:!0,onChange:function(e,t){N=t}}),f=(0,o.createComponentVNode)(2,a.Box,{mt:"0.5rem",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"Cancel",color:"grey",onClick:function(){return l(t)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"check",content:"Confirm",color:"good",float:"right",m:"0",onClick:function(){return i(t,m,N)}}),(0,o.createComponentVNode)(2,a.Box,{clear:"both"})]})}else if("choice"===h){var b="object"==typeof n.modal.choices?Object.values(n.modal.choices):n.modal.choices;u=(0,o.createComponentVNode)(2,a.Dropdown,{options:b,selected:n.modal.value,width:"100%",my:"0.5rem",onSelected:function(e){return i(t,m,e)}}),C="initial"}else"bento"===h?u=(0,o.createComponentVNode)(2,a.Flex,{spacingPrecise:"1",wrap:"wrap",my:"0.5rem",maxHeight:"1%",children:n.modal.choices.map((function(e,r){return(0,o.createComponentVNode)(2,a.Flex.Item,{flex:"1 1 auto",children:(0,o.createComponentVNode)(2,a.Button,{selected:r+1===parseInt(n.modal.value,10),onClick:function(){return i(t,m,r+1)},children:(0,o.createVNode)(1,"img",null,null,1,{src:e})})},r)}))}):"boolean"===h&&(f=(0,o.createComponentVNode)(2,a.Box,{mt:"0.5rem",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:n.modal.no_text,color:"bad",float:"left",mb:"0",onClick:function(){return i(t,m,0)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"check",content:n.modal.yes_text,color:"good",float:"right",m:"0",onClick:function(){return i(t,m,1)}}),(0,o.createComponentVNode)(2,a.Box,{clear:"both"})]}));return(0,o.createComponentVNode)(2,a.Modal,{maxWidth:e.maxWidth||window.innerWidth/2+"px",maxHeight:e.maxHeight||window.innerHeight/2+"px",onEnter:d,mx:"auto",overflowY:C,children:[(0,o.createComponentVNode)(2,a.Box,{display:"inline",children:p}),u,f]})}}},function(e,t,n){"use strict";var o=n(5),r=n(18),a=n(12),c=n(19),i=n(102),l=n(139),d=i("IE_PROTO"),u=o.Object,s=u.prototype;e.exports=l?u.getPrototypeOf:function(e){var t=c(e);if(r(t,d))return t[d];var n=t.constructor;return a(n)&&t instanceof n?n.prototype:t instanceof u?s:null}},function(e,t,n){"use strict";var o=n(7),r=o({}.toString),a=o("".slice);e.exports=function(e){return a(r(e),8,-1)}},function(e,t,n){"use strict";var o=n(7);e.exports=o({}.isPrototypeOf)},function(e,t,n){"use strict";var o=n(84),r=Function.prototype,a=r.apply,c=r.call;e.exports="object"==typeof Reflect&&Reflect.apply||(o?c.bind(a):function(){return c.apply(a,arguments)})},function(e,t,n){"use strict";t.__esModule=!0,t.timeAgo=t.getGasLabel=t.getGasColor=t.UI_UPDATE=t.UI_INTERACTIVE=t.UI_DISABLED=t.UI_CLOSE=t.RADIO_CHANNELS=t.CSS_COLORS=t.COLORS=void 0;t.UI_INTERACTIVE=2;t.UI_UPDATE=1;t.UI_DISABLED=0;t.UI_CLOSE=-1;t.COLORS={department:{command:"#526aff",security:"#CF0000",medical:"#009190",science:"#993399",engineering:"#A66300",supply:"#9F8545",service:"#80A000",centcom:"#78789B",other:"#C38312"},damageType:{oxy:"#3498db",toxin:"#2ecc71",burn:"#e67e22",brute:"#e74c3c"}};t.CSS_COLORS=["black","white","red","orange","yellow","olive","green","teal","blue","violet","purple","pink","brown","grey","good","average","bad","label"];t.RADIO_CHANNELS=[{name:"Syndicate",freq:1213,color:"#a52a2a"},{name:"SyndTeam",freq:1244,color:"#a52a2a"},{name:"Red Team",freq:1215,color:"#ff4444"},{name:"Blue Team",freq:1217,color:"#3434fd"},{name:"Response Team",freq:1345,color:"#2681a5"},{name:"Special Ops",freq:1341,color:"#2681a5"},{name:"Supply",freq:1347,color:"#b88646"},{name:"Service",freq:1349,color:"#6ca729"},{name:"Science",freq:1351,color:"#c68cfa"},{name:"Command",freq:1353,color:"#5177ff"},{name:"Procedure",freq:1339,color:"#F70285"},{name:"Medical",freq:1355,color:"#57b8f0"},{name:"Medical(I)",freq:1485,color:"#57b8f0"},{name:"Engineering",freq:1357,color:"#f37746"},{name:"Security",freq:1359,color:"#dd3535"},{name:"Security(I)",freq:1475,color:"#dd3535"},{name:"AI Private",freq:1343,color:"#d65d95"},{name:"Common",freq:1459,color:"#1ecc43"}];var o=[{id:"o2",name:"Oxygen",label:"O\u2082",color:"blue"},{id:"n2",name:"Nitrogen",label:"N\u2082",color:"red"},{id:"co2",name:"Carbon Dioxide",label:"CO\u2082",color:"grey"},{id:"plasma",name:"Plasma",label:"Plasma",color:"pink"},{id:"water_vapor",name:"Water Vapor",label:"H\u2082O",color:"grey"},{id:"nob",name:"Hyper-noblium",label:"Hyper-nob",color:"teal"},{id:"n2o",name:"Nitrous Oxide",label:"N\u2082O",color:"red"},{id:"no2",name:"Nitryl",label:"NO\u2082",color:"brown"},{id:"tritium",name:"Tritium",label:"Tritium",color:"green"},{id:"bz",name:"BZ",label:"BZ",color:"purple"},{id:"stim",name:"Stimulum",label:"Stimulum",color:"purple"},{id:"pluox",name:"Pluoxium",label:"Pluoxium",color:"blue"},{id:"miasma",name:"Miasma",label:"Miasma",color:"olive"},{id:"hydrogen",name:"Hydrogen",label:"H\u2082",color:"white"},{id:"ab",name:"Agent B",label:"Agent B",color:"purple"}];t.getGasLabel=function(e,t){var n=String(e).toLowerCase(),r=o.find((function(e){return e.id===n||e.name.toLowerCase()===n}));return r&&r.label||t||e};t.getGasColor=function(e){var t=String(e).toLowerCase(),n=o.find((function(e){return e.id===t||e.name.toLowerCase()===t}));return n&&n.color};t.timeAgo=function(e,t){if(e>t)return"in the future";var n=(t/=10)-(e/=10);if(n>3600){var o=Math.round(n/3600);return o+" hour"+(1===o?"":"s")+" ago"}if(n>60){var r=Math.round(n/60);return r+" minute"+(1===r?"":"s")+" ago"}var a=Math.round(n);return a+" second"+(1===a?"":"s")+" ago"}},function(e,t,n){"use strict";var o=n(28);e.exports=o("navigator","userAgent")||""},function(e,t,n){"use strict";var o=n(8),r=n(17),a=n(64);e.exports=o?function(e,t,n){return r.f(e,t,a(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){"use strict";var o=n(38),r=Math.max,a=Math.min;e.exports=function(e,t){var n=o(e);return n<0?r(n+t,0):a(n,t)}},function(e,t,n){"use strict";var o,r=n(9),a=n(133),c=n(131),i=n(87),l=n(177),d=n(128),u=n(102),s=u("IE_PROTO"),m=function(){},p=function(e){return"