diff --git a/.travis.yml b/.travis.yml
index edbcca8025f..27190c2f2a7 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -7,7 +7,6 @@ env:
- BYOND_MINOR="1247"
matrix:
- DM_MAPFILE="tgstation2"
- - DM_MAPFILE="AsteroidStation"
- DM_MAPFILE="ministation"
before_install:
diff --git a/_maps/RandomZLevels/Academy.dmm b/_maps/RandomZLevels/Academy.dmm
index 4484b6835e8..68405d16622 100644
--- a/_maps/RandomZLevels/Academy.dmm
+++ b/_maps/RandomZLevels/Academy.dmm
@@ -224,7 +224,7 @@
"ep" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaymission/academy/classrooms)
"eq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 5},/turf/simulated/floor/plating,/area/awaymission/academy/classrooms)
"er" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{dir = 6; icon_state = "yellow"},/area/awaymission/academy/classrooms)
-"es" = (/obj/machinery/singularity/academy,/turf/space,/area/space)
+"es" = (/obj/singularity/academy,/turf/space,/area/space)
"et" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{icon_state = "yellow"; dir = 10},/area/awaymission/academy/classrooms)
"eu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/academy/classrooms)
"ev" = (/obj/structure/mineral_door/wood,/turf/simulated/floor/plasteel,/area/awaymission/academy/classrooms)
@@ -456,35 +456,35 @@
"iN" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/window/reinforced{dir = 5},/turf/simulated/floor/plating,/area/awaymission/academy/academyaft)
"iO" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/fancy/carpet,/area/awaymission/academy/academyaft)
"iP" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable,/obj/structure/window/reinforced{dir = 5},/turf/simulated/floor/plating,/area/awaymission/academy/academyaft)
-"iQ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/airless{tag = "icon-white (EAST)"; icon_state = "white"; dir = 4},/area/awaymission/academy/academyaft)
-"iR" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/device/soulstone,/turf/simulated/floor/airless{tag = "icon-whitered (EAST)"; icon_state = "whitered"; dir = 4},/area/awaymission/academy/academyaft)
+"iQ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plasteel/airless{tag = "icon-white (EAST)"; icon_state = "white"; dir = 4},/area/awaymission/academy/academyaft)
+"iR" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/device/soulstone,/turf/simulated/floor/plasteel/airless{tag = "icon-whitered (EAST)"; icon_state = "whitered"; dir = 4},/area/awaymission/academy/academyaft)
"iS" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_l"; icon_state = "propulsion_l"},/turf/space,/area/awaymission/academy/academyaft)
"iT" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/awaymission/academy/academyaft)
"iU" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_r"; icon_state = "propulsion_r"},/turf/space,/area/awaymission/academy/academyaft)
"iV" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced{dir = 5},/turf/simulated/floor/plating,/area/awaymission/academy/academyaft)
"iW" = (/obj/effect/landmark{name = "awaystart"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/awaymission/academy/academyaft)
"iX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/awaymission/academy/academyaft)
-"iY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/airless{tag = "icon-white (EAST)"; icon_state = "white"; dir = 4},/area/awaymission/academy/academyaft)
-"iZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/airless{tag = "icon-whitered (EAST)"; icon_state = "whitered"; dir = 4},/area/awaymission/academy/academyaft)
+"iY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plasteel/airless{tag = "icon-white (EAST)"; icon_state = "white"; dir = 4},/area/awaymission/academy/academyaft)
+"iZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel/airless{tag = "icon-whitered (EAST)"; icon_state = "whitered"; dir = 4},/area/awaymission/academy/academyaft)
"ja" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced{dir = 5},/turf/simulated/floor/plating,/area/awaymission/academy/academyaft)
"jb" = (/obj/structure/table,/obj/item/clothing/glasses/meson/truesight,/turf/simulated/floor/plasteel,/area/awaymission/academy/academyaft)
"jc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/fancy/carpet,/area/awaymission/academy/academyaft)
"jd" = (/obj/structure/noticeboard,/turf/simulated/wall,/area/awaymission/academy/academyaft)
"je" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/fancy/carpet,/area/awaymission/academy/academyaft)
-"jf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/airless{tag = "icon-white (EAST)"; icon_state = "white"; dir = 4},/area/awaymission/academy/academyaft)
-"jg" = (/obj/structure/table,/obj/item/organ/brain{name = "The preserved brain of Harry Houdini"},/turf/simulated/floor/airless{tag = "icon-whitered (EAST)"; icon_state = "whitered"; dir = 4},/area/awaymission/academy/academyaft)
+"jf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel/airless{tag = "icon-white (EAST)"; icon_state = "white"; dir = 4},/area/awaymission/academy/academyaft)
+"jg" = (/obj/structure/table,/obj/item/organ/brain{name = "The preserved brain of Harry Houdini"},/turf/simulated/floor/plasteel/airless{tag = "icon-whitered (EAST)"; icon_state = "whitered"; dir = 4},/area/awaymission/academy/academyaft)
"jh" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/awaymission/academy/academyaft)
"ji" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "yellow"},/area/awaymission/academy/academyaft)
"jj" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellow"},/area/awaymission/academy/academyaft)
-"jk" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/airless{tag = "icon-white (EAST)"; icon_state = "white"; dir = 4},/area/awaymission/academy/academyaft)
+"jk" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plasteel/airless{tag = "icon-white (EAST)"; icon_state = "white"; dir = 4},/area/awaymission/academy/academyaft)
"jl" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/item/weapon/shard,/turf/simulated/floor/plating/airless,/area/awaymission/academy/academyaft)
"jm" = (/obj/structure/window/reinforced,/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/golden_cup,/turf/simulated/floor/plasteel{icon_state = "red"},/area/awaymission/academy/academyaft)
"jn" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 6},/area/awaymission/academy/academyaft)
"jo" = (/obj/structure/cult/pylon,/turf/simulated/floor/plasteel{icon_state = "yellow"; dir = 10},/area/awaymission/academy/academyaft)
"jp" = (/turf/simulated/floor/plasteel{icon_state = "yellow"},/area/awaymission/academy/academyaft)
"jq" = (/obj/structure/cult/pylon,/turf/simulated/floor/plasteel{dir = 6; icon_state = "yellow"},/area/awaymission/academy/academyaft)
-"jr" = (/obj/structure/window/reinforced,/turf/simulated/floor/airless{tag = "icon-white (EAST)"; icon_state = "white"; dir = 4},/area/awaymission/academy/academyaft)
-"js" = (/obj/structure/table,/obj/structure/window/reinforced,/obj/item/device/batterer,/turf/simulated/floor/airless{tag = "icon-whitered (EAST)"; icon_state = "whitered"; dir = 4},/area/awaymission/academy/academyaft)
+"jr" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless{tag = "icon-white (EAST)"; icon_state = "white"; dir = 4},/area/awaymission/academy/academyaft)
+"js" = (/obj/structure/table,/obj/structure/window/reinforced,/obj/item/device/batterer,/turf/simulated/floor/plasteel/airless{tag = "icon-whitered (EAST)"; icon_state = "whitered"; dir = 4},/area/awaymission/academy/academyaft)
"jt" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/space,/area/space)
"ju" = (/obj/machinery/igniter,/turf/simulated/floor/plating,/area/awaymission/academy/academyaft)
"jv" = (/obj/structure/window/reinforced,/turf/simulated/floor/fancy/carpet,/area/awaymission/academy/academyaft)
diff --git a/_maps/RandomZLevels/blackmarketpackers.dmm b/_maps/RandomZLevels/blackmarketpackers.dmm
index 5d5efb215b0..73c99cd92b1 100644
--- a/_maps/RandomZLevels/blackmarketpackers.dmm
+++ b/_maps/RandomZLevels/blackmarketpackers.dmm
@@ -212,7 +212,7 @@
"ed" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/awaymission/BMPship/Aft)
"ee" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/awaymission/BMPship/Aft)
"ef" = (/obj/item/device/multitool,/turf/simulated/floor/engine,/area/awaymission/BMPship/Aft)
-"eg" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (EAST)"; icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{tag = "icon-engine"; icon_state = "engine"},/area/awaymission/BMPship/Aft)
+"eg" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (EAST)"; icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{tag = "icon-engine"; icon_state = "engine"},/area/awaymission/BMPship/Aft)
"eh" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (WEST)"; icon_state = "propulsion"; dir = 8},/turf/space,/area/awaymission/BMPship/Aft)
"ei" = (/turf/simulated/floor/plasteel{tag = "icon-carpet15-15 (EAST)"; icon_state = "carpet15-15"; dir = 4},/area/awaymission/BMPship/Fore)
"ej" = (/obj/structure/table,/obj/machinery/recharger,/turf/simulated/floor/plasteel{tag = "icon-carpet5-0 (EAST)"; icon_state = "carpet5-0"; dir = 4},/area/awaymission/BMPship/Fore)
diff --git a/_maps/RandomZLevels/centcomAway.dmm b/_maps/RandomZLevels/centcomAway.dmm
index e4680171208..d0abc744725 100644
--- a/_maps/RandomZLevels/centcomAway.dmm
+++ b/_maps/RandomZLevels/centcomAway.dmm
@@ -345,7 +345,7 @@
"gG" = (/obj/structure/stool/bed/chair/comfy/beige{dir = 1; icon_state = "comfychair_beige"},/turf/simulated/floor/plasteel{icon_state = "floor"},/area/awaymission/centcomAway/general)
"gH" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/fancy/carpet,/area/awaymission/centcomAway/courtroom)
"gI" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/simulated/floor/plating,/area/awaymission/centcomAway/maint)
-"gJ" = (/obj/structure/morgue,/turf/simulated/floor/plasteel{icon_state = "engine"},/area/awaymission/centcomAway/general)
+"gJ" = (/obj/structure/bodycontainer/morgue,/turf/simulated/floor/plasteel{icon_state = "engine"},/area/awaymission/centcomAway/general)
"gK" = (/turf/simulated/floor/plasteel{icon_state = "engine"},/area/awaymission/centcomAway/general)
"gL" = (/obj/machinery/door/airlock/centcom{name = "Special Operations"; opacity = 1; req_access_txt = "103"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/centcomAway/general)
"gM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/awaymission/centcomAway/general)
@@ -404,12 +404,12 @@
"hN" = (/obj/structure/rack,/obj/item/clothing/ears/earmuffs{pixel_x = -3; pixel_y = -2},/turf/simulated/floor/plating,/area/awaymission/centcomAway/hangar)
"hO" = (/obj/structure/closet,/turf/simulated/floor/plating,/area/awaymission/centcomAway/hangar)
"hP" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/turf/simulated/floor/plating,/area/awaymission/centcomAway/hangar)
-"hQ" = (/obj/machinery/power/solar/fake,/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/awaymission/centcomAway/maint)
+"hQ" = (/obj/machinery/power/solar/fake,/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/awaymission/centcomAway/maint)
"hR" = (/obj/structure/closet/secure_closet/medical2,/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaymission/centcomAway/courtroom)
"hS" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin,/turf/simulated/floor/wood,/area/awaymission/centcomAway/courtroom)
"hT" = (/obj/structure/table/wood,/turf/simulated/floor/wood,/area/awaymission/centcomAway/courtroom)
"hU" = (/obj/structure/sign/vacuum,/turf/simulated/wall/r_wall,/area/awaymission/centcomAway/hangar)
-"hV" = (/obj/structure/crematorium,/turf/simulated/floor/plasteel{icon_state = "engine"},/area/awaymission/centcomAway/general)
+"hV" = (/obj/structure/bodycontainer/crematorium,/turf/simulated/floor/plasteel{icon_state = "engine"},/area/awaymission/centcomAway/general)
"hW" = (/obj/structure/flora/kirbyplants,/turf/simulated/floor/plasteel{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/awaymission/centcomAway/general)
"hX" = (/obj/machinery/crema_switch{pixel_x = 0; pixel_y = 25},/turf/simulated/floor/plasteel{icon_state = "engine"},/area/awaymission/centcomAway/general)
"hY" = (/obj/structure/closet/secure_closet/injection,/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaymission/centcomAway/courtroom)
diff --git a/_maps/RandomZLevels/challenge.dmm b/_maps/RandomZLevels/challenge.dmm
index 5d3f985ac7d..c6e4879db09 100644
--- a/_maps/RandomZLevels/challenge.dmm
+++ b/_maps/RandomZLevels/challenge.dmm
@@ -2,41 +2,41 @@
"ab" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/awaymission/challenge/start)
"ac" = (/obj/structure/girder,/turf/simulated/floor/plating/airless,/area/awaymission/challenge/start)
"ad" = (/turf/simulated/floor/plating,/area/awaymission/challenge/start)
-"ae" = (/turf/simulated/floor/airless{icon_state = "damaged5"},/area/awaymission/challenge/start)
-"af" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/challenge/start)
-"ag" = (/obj/item/clothing/suit/space/syndicate/blue,/obj/item/clothing/head/helmet/space/syndicate/blue,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/challenge/start)
-"ah" = (/turf/simulated/floor/airless,/area/awaymission/challenge/start)
-"ai" = (/obj/item/device/flashlight{icon_state = "flashlight-on"; item_state = "flashlight"; on = 1},/turf/simulated/floor/airless,/area/awaymission/challenge/start)
-"aj" = (/obj/effect/landmark{name = "awaystart"},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/awaymission/challenge/start)
-"ak" = (/obj/effect/decal/remains/human,/turf/simulated/floor/airless{icon_state = "damaged4"},/area/awaymission/challenge/start)
-"al" = (/obj/effect/landmark{name = "awaystart"},/turf/simulated/floor/airless,/area/awaymission/challenge/start)
-"am" = (/obj/item/clothing/suit/space/syndicate/green,/obj/item/clothing/head/helmet/space/syndicate/green,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/challenge/start)
-"an" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/awaymission/challenge/start)
-"ao" = (/obj/item/clothing/suit/space/syndicate/orange,/obj/item/clothing/head/helmet/space/syndicate/orange,/turf/simulated/floor/airless,/area/awaymission/challenge/start)
-"ap" = (/obj/item/weapon/gun/energy/laser/retro,/turf/simulated/floor/airless,/area/awaymission/challenge/start)
+"ae" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/awaymission/challenge/start)
+"af" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/challenge/start)
+"ag" = (/obj/item/clothing/suit/space/syndicate/blue,/obj/item/clothing/head/helmet/space/syndicate/blue,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/challenge/start)
+"ah" = (/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/start)
+"ai" = (/obj/item/device/flashlight{icon_state = "flashlight-on"; item_state = "flashlight"; on = 1},/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/start)
+"aj" = (/obj/effect/landmark{name = "awaystart"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/awaymission/challenge/start)
+"ak" = (/obj/effect/decal/remains/human,/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/awaymission/challenge/start)
+"al" = (/obj/effect/landmark{name = "awaystart"},/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/start)
+"am" = (/obj/item/clothing/suit/space/syndicate/green,/obj/item/clothing/head/helmet/space/syndicate/green,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/challenge/start)
+"an" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/awaymission/challenge/start)
+"ao" = (/obj/item/clothing/suit/space/syndicate/orange,/obj/item/clothing/head/helmet/space/syndicate/orange,/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/start)
+"ap" = (/obj/item/weapon/gun/energy/laser/retro,/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/start)
"aq" = (/obj/item/stack/rods,/turf/simulated/floor/plasteel,/area/awaymission/challenge/start)
-"ar" = (/obj/effect/decal/cleanable/oil,/turf/simulated/floor/airless,/area/awaymission/challenge/start)
-"as" = (/obj/effect/decal/remains/robot,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/challenge/start)
+"ar" = (/obj/effect/decal/cleanable/oil,/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/start)
+"as" = (/obj/effect/decal/remains/robot,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/challenge/start)
"at" = (/obj/structure/girder,/turf/simulated/floor/plating,/area/awaymission/challenge/start)
"au" = (/turf/simulated/wall,/area/awaymission/challenge/start)
-"av" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/awaymission/challenge/start)
-"aw" = (/obj/item/stack/rods,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/challenge/start)
+"av" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/awaymission/challenge/start)
+"aw" = (/obj/item/stack/rods,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/challenge/start)
"ax" = (/obj/effect/decal/cleanable/oil,/mob/living/simple_animal/hostile/syndicate,/turf/simulated/floor/plating,/area/awaymission/challenge/start)
-"ay" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/airless,/area/awaymission/challenge/start)
-"az" = (/obj/item/clothing/suit/space/syndicate/black,/obj/item/clothing/head/helmet/space/syndicate/black,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/challenge/start)
+"ay" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/start)
+"az" = (/obj/item/clothing/suit/space/syndicate/black,/obj/item/clothing/head/helmet/space/syndicate/black,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/challenge/start)
"aA" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/awaymission/challenge/main)
"aB" = (/obj/structure/girder,/turf/simulated/floor/plating,/area/awaymission/challenge/main)
"aC" = (/turf/simulated/floor/plating,/area/awaymission/challenge/main)
-"aD" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/awaymission/challenge/main)
+"aD" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/awaymission/challenge/main)
"aE" = (/turf/simulated/wall,/area/awaymission/challenge/main)
"aF" = (/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main)
-"aG" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/challenge/main)
-"aH" = (/turf/simulated/floor/airless,/area/awaymission/challenge/main)
+"aG" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/challenge/main)
+"aH" = (/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/main)
"aI" = (/obj/machinery/power/emitter{active = 1; active_power_usage = 0; anchored = 1; dir = 2; idle_power_usage = 0; locked = 1; name = "Energy Cannon"; req_access_txt = "100"; state = 2; use_power = 0},/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main)
-"aJ" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/airless,/area/awaymission/challenge/main)
-"aK" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/airless,/area/awaymission/challenge/main)
-"aL" = (/obj/effect/decal/cleanable/oil,/turf/simulated/floor/airless,/area/awaymission/challenge/main)
-"aM" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/airless,/area/awaymission/challenge/main)
+"aJ" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/main)
+"aK" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/main)
+"aL" = (/obj/effect/decal/cleanable/oil,/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/main)
+"aM" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/main)
"aN" = (/obj/effect/decal/cleanable/oil,/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main)
"aO" = (/obj/structure/window/reinforced,/obj/machinery/power/emitter{active = 1; active_power_usage = 0; anchored = 1; dir = 2; idle_power_usage = 0; locked = 1; name = "Energy Cannon"; req_access_txt = "100"; state = 2; use_power = 0},/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main)
"aP" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main)
@@ -44,15 +44,15 @@
"aR" = (/turf/simulated/floor/plasteel{icon_state = "warning"},/area/awaymission/challenge/main)
"aS" = (/obj/machinery/power/emitter{active = 1; active_power_usage = 0; anchored = 1; dir = 4; idle_power_usage = 0; locked = 1; name = "Energy Cannon"; req_access_txt = "100"; state = 2; use_power = 0},/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main)
"aT" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main)
-"aU" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/airless,/area/awaymission/challenge/main)
+"aU" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/main)
"aV" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main)
"aW" = (/obj/machinery/power/emitter{active = 1; active_power_usage = 0; anchored = 1; dir = 8; idle_power_usage = 0; locked = 1; name = "Energy Cannon"; req_access_txt = "100"; state = 2; use_power = 0},/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main)
"aX" = (/obj/machinery/porta_turret{dir = 8; emagged = 1; installation = /obj/item/weapon/gun/energy/lasercannon},/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main)
"aY" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main)
"aZ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main)
"ba" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/awaymission/challenge/main)
-"bb" = (/obj/item/device/multitool,/turf/simulated/floor/airless,/area/awaymission/challenge/main)
-"bc" = (/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/airless,/area/awaymission/challenge/main)
+"bb" = (/obj/item/device/multitool,/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/main)
+"bc" = (/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/main)
"bd" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHWEST)"; icon_state = "warnplate"; dir = 9},/area/awaymission/challenge/main)
"be" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/challenge/main)
"bf" = (/obj/machinery/power/emitter{active = 1; active_power_usage = 0; anchored = 1; dir = 1; idle_power_usage = 0; locked = 1; name = "Energy Cannon"; req_access_txt = "100"; state = 2; use_power = 0},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/challenge/main)
@@ -62,13 +62,13 @@
"bj" = (/obj/machinery/light,/turf/simulated/floor/plating,/area/awaymission/challenge/main)
"bk" = (/obj/machinery/power/emitter{active = 1; active_power_usage = 0; anchored = 1; dir = 1; idle_power_usage = 0; locked = 1; name = "Energy Cannon"; req_access_txt = "100"; state = 2; use_power = 0},/obj/machinery/light,/turf/simulated/floor/plating,/area/awaymission/challenge/main)
"bl" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/power/emitter{active = 1; active_power_usage = 0; anchored = 1; dir = 1; idle_power_usage = 0; locked = 1; name = "Energy Cannon"; req_access_txt = "100"; state = 2; use_power = 0},/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/awaymission/challenge/main)
-"bm" = (/obj/machinery/door/window,/turf/simulated/floor/airless,/area/awaymission/challenge/main)
+"bm" = (/obj/machinery/door/window,/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/main)
"bn" = (/obj/machinery/power/emitter{active = 1; active_power_usage = 0; anchored = 1; dir = 2; idle_power_usage = 0; locked = 1; name = "Energy Cannon"; req_access_txt = "100"; state = 2; use_power = 0},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/awaymission/challenge/main)
"bo" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plating,/area/awaymission/challenge/main)
"bp" = (/obj/machinery/porta_turret{dir = 8; emagged = 1; installation = /obj/item/weapon/gun/energy/lasercannon},/turf/simulated/floor/plating,/area/awaymission/challenge/main)
"bq" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/awaymission/challenge/main)
"br" = (/obj/structure/window/reinforced{dir = 4},/obj/effect/decal/cleanable/oil,/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main)
-"bs" = (/obj/item/weapon/storage/toolbox/electrical,/turf/simulated/floor/airless,/area/awaymission/challenge/main)
+"bs" = (/obj/item/weapon/storage/toolbox/electrical,/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/main)
"bt" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHWEST)"; icon_state = "warnplate"; dir = 10},/area/awaymission/challenge/main)
"bu" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/challenge/main)
"bv" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHEAST)"; icon_state = "warnplate"; dir = 6},/area/awaymission/challenge/main)
@@ -79,7 +79,7 @@
"bA" = (/obj/item/clothing/gloves/yellow,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/awaymission/challenge/main)
"bB" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/power/emitter{active = 1; active_power_usage = 0; anchored = 1; dir = 8; idle_power_usage = 0; locked = 1; name = "Energy Cannon"; req_access_txt = "100"; state = 2; use_power = 0},/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main)
"bC" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/power/emitter{active = 1; active_power_usage = 0; anchored = 1; dir = 4; idle_power_usage = 0; locked = 1; name = "Energy Cannon"; req_access_txt = "100"; state = 2; use_power = 0},/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main)
-"bD" = (/obj/item/weapon/storage/firstaid/fire,/turf/simulated/floor/airless,/area/awaymission/challenge/main)
+"bD" = (/obj/item/weapon/storage/firstaid/fire,/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/main)
"bE" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitecorner"},/area/awaymission/challenge/main)
"bF" = (/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/awaymission/challenge/main)
"bG" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitecorner"},/area/awaymission/challenge/main)
diff --git a/_maps/RandomZLevels/listeningpost.dmm b/_maps/RandomZLevels/listeningpost.dmm
index 21aa2dc6865..e4bed560e50 100644
--- a/_maps/RandomZLevels/listeningpost.dmm
+++ b/_maps/RandomZLevels/listeningpost.dmm
@@ -36,16 +36,16 @@
"J" = (/obj/structure/toilet{tag = "icon-toilet00 (WEST)"; icon_state = "toilet00"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/awaymission/listeningpost)
"K" = (/turf/simulated/mineral/clown,/area/mine/unexplored)
"L" = (/turf/simulated/shuttle/wall{tag = "icon-wall3"; icon_state = "wall3"},/area/mine/explored)
-"M" = (/turf/simulated/floor/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored)
-"N" = (/obj/machinery/gateway{tag = "icon-off (NORTHWEST)"; icon_state = "off"; dir = 9},/turf/simulated/floor/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored)
-"O" = (/obj/machinery/gateway{tag = "icon-off (NORTH)"; icon_state = "off"; dir = 1},/turf/simulated/floor/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored)
-"P" = (/obj/machinery/gateway{tag = "icon-off (NORTHEAST)"; icon_state = "off"; dir = 5},/turf/simulated/floor/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored)
-"Q" = (/obj/machinery/gateway{tag = "icon-off (WEST)"; icon_state = "off"; dir = 8},/turf/simulated/floor/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored)
-"R" = (/obj/machinery/gateway/centeraway,/turf/simulated/floor/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored)
-"S" = (/obj/machinery/gateway{tag = "icon-off (EAST)"; icon_state = "off"; dir = 4},/turf/simulated/floor/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored)
-"T" = (/obj/machinery/gateway{tag = "icon-off (SOUTHWEST)"; icon_state = "off"; dir = 10},/turf/simulated/floor/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored)
-"U" = (/obj/machinery/gateway,/turf/simulated/floor/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored)
-"V" = (/obj/machinery/gateway{tag = "icon-off (SOUTHEAST)"; icon_state = "off"; dir = 6},/turf/simulated/floor/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored)
+"M" = (/turf/simulated/floor/plasteel/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored)
+"N" = (/obj/machinery/gateway{tag = "icon-off (NORTHWEST)"; icon_state = "off"; dir = 9},/turf/simulated/floor/plasteel/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored)
+"O" = (/obj/machinery/gateway{tag = "icon-off (NORTH)"; icon_state = "off"; dir = 1},/turf/simulated/floor/plasteel/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored)
+"P" = (/obj/machinery/gateway{tag = "icon-off (NORTHEAST)"; icon_state = "off"; dir = 5},/turf/simulated/floor/plasteel/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored)
+"Q" = (/obj/machinery/gateway{tag = "icon-off (WEST)"; icon_state = "off"; dir = 8},/turf/simulated/floor/plasteel/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored)
+"R" = (/obj/machinery/gateway/centeraway,/turf/simulated/floor/plasteel/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored)
+"S" = (/obj/machinery/gateway{tag = "icon-off (EAST)"; icon_state = "off"; dir = 4},/turf/simulated/floor/plasteel/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored)
+"T" = (/obj/machinery/gateway{tag = "icon-off (SOUTHWEST)"; icon_state = "off"; dir = 10},/turf/simulated/floor/plasteel/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored)
+"U" = (/obj/machinery/gateway,/turf/simulated/floor/plasteel/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored)
+"V" = (/obj/machinery/gateway{tag = "icon-off (SOUTHEAST)"; icon_state = "off"; dir = 6},/turf/simulated/floor/plasteel/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/_maps/RandomZLevels/spacebattle.dmm b/_maps/RandomZLevels/spacebattle.dmm
index a486d174004..89e204615bb 100644
--- a/_maps/RandomZLevels/spacebattle.dmm
+++ b/_maps/RandomZLevels/spacebattle.dmm
@@ -445,16 +445,16 @@
"iC" = (/obj/effect/landmark/corpse/syndicatesoldier,/turf/space,/area/space)
"iD" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/space)
"iE" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/space)
-"iF" = (/obj/machinery/sleeper,/turf/simulated/floor/airless{tag = "icon-floor4 (SOUTHWEST)"; icon_state = "floor4"; dir = 10},/area/space)
-"iG" = (/turf/simulated/floor/airless{tag = "icon-floor4 (SOUTHWEST)"; icon_state = "floor4"; dir = 10},/area/space)
-"iH" = (/obj/effect/landmark/corpse/syndicatesoldier,/turf/simulated/floor/airless{tag = "icon-floor4 (SOUTHWEST)"; icon_state = "floor4"; dir = 10},/area/space)
+"iF" = (/obj/machinery/sleeper,/turf/simulated/floor/plasteel/airless{tag = "icon-floor4 (SOUTHWEST)"; icon_state = "floor4"; dir = 10},/area/space)
+"iG" = (/turf/simulated/floor/plasteel/airless{tag = "icon-floor4 (SOUTHWEST)"; icon_state = "floor4"; dir = 10},/area/space)
+"iH" = (/obj/effect/landmark/corpse/syndicatesoldier,/turf/simulated/floor/plasteel/airless{tag = "icon-floor4 (SOUTHWEST)"; icon_state = "floor4"; dir = 10},/area/space)
"iI" = (/turf/simulated/mineral/clown,/area/space)
-"iJ" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/airless{tag = "icon-floor4 (SOUTHWEST)"; icon_state = "floor4"; dir = 10},/area/space)
-"iK" = (/obj/item/stack/rods,/turf/simulated/floor/airless{tag = "icon-floor4 (SOUTHWEST)"; icon_state = "floor4"; dir = 10},/area/space)
+"iJ" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plasteel/airless{tag = "icon-floor4 (SOUTHWEST)"; icon_state = "floor4"; dir = 10},/area/space)
+"iK" = (/obj/item/stack/rods,/turf/simulated/floor/plasteel/airless{tag = "icon-floor4 (SOUTHWEST)"; icon_state = "floor4"; dir = 10},/area/space)
"iL" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/awaymission/spacebattle/syndicate5)
"iM" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/awaymission/spacebattle/syndicate5)
"iN" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/awaymission/spacebattle/syndicate5)
-"iO" = (/obj/machinery/sleeper,/turf/simulated/floor/airless,/area/space)
+"iO" = (/obj/machinery/sleeper,/turf/simulated/floor/plasteel/airless,/area/space)
"iP" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate5)
"iQ" = (/obj/machinery/computer/shuttle,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate5)
"iR" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/space)
diff --git a/_maps/RandomZLevels/stationCollision.dmm b/_maps/RandomZLevels/stationCollision.dmm
index 34ec4b78463..a7826a47eeb 100644
--- a/_maps/RandomZLevels/stationCollision.dmm
+++ b/_maps/RandomZLevels/stationCollision.dmm
@@ -1,37 +1,37 @@
"aa" = (/turf/space,/area/space)
"ab" = (/obj/machinery/power/tracker,/turf/simulated/floor/plating/airless,/area/awaymission/northblock)
"ac" = (/obj/machinery/power/tracker,/turf/simulated/floor/plating,/area/awaymission/northblock)
-"ad" = (/obj/machinery/power/solar/fake,/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/awaymission/northblock)
+"ad" = (/obj/machinery/power/solar/fake,/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/awaymission/northblock)
"ae" = (/obj/structure/lattice,/turf/space,/area/awaymission/northblock)
"af" = (/turf/space,/area/awaymission/northblock)
"ag" = (/turf/simulated/floor/plating/airless,/area/awaymission/northblock)
-"ah" = (/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/awaymission/northblock)
+"ah" = (/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/awaymission/northblock)
"ai" = (/obj/machinery/power/solar/fake,/turf/space,/area/awaymission/northblock)
"aj" = (/turf/simulated/wall,/area/awaymission/northblock)
"ak" = (/obj/structure/lattice,/turf/space,/area/space)
-"al" = (/obj/machinery/door/window/westright,/turf/simulated/floor/airless,/area/awaymission/northblock)
-"am" = (/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/northblock)
-"an" = (/turf/simulated/floor/airless{icon_state = "damaged5"},/area/awaymission/northblock)
-"ao" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless{icon_state = "damaged4"},/area/awaymission/northblock)
-"ap" = (/turf/simulated/floor/airless,/area/awaymission/northblock)
-"aq" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/awaymission/northblock)
-"ar" = (/obj/machinery/door/window/eastleft{name = "Windoor"},/turf/simulated/floor/airless,/area/awaymission/northblock)
+"al" = (/obj/machinery/door/window/westright,/turf/simulated/floor/plasteel/airless,/area/awaymission/northblock)
+"am" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/awaymission/northblock)
+"an" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/awaymission/northblock)
+"ao" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/awaymission/northblock)
+"ap" = (/turf/simulated/floor/plasteel/airless,/area/awaymission/northblock)
+"aq" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/awaymission/northblock)
+"ar" = (/obj/machinery/door/window/eastleft{name = "Windoor"},/turf/simulated/floor/plasteel/airless,/area/awaymission/northblock)
"as" = (/obj/machinery/power/solar_control{stat = 1},/turf/simulated/floor/plasteel,/area/awaymission/northblock)
"at" = (/obj/machinery/power/solar_control,/turf/simulated/floor/plasteel,/area/awaymission/northblock)
"au" = (/obj/structure/computerframe{anchored = 1},/turf/simulated/floor/plasteel,/area/awaymission/northblock)
-"av" = (/obj/structure/window/reinforced/tinted,/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"; tag = ""},/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass,/obj/item/stack/sheet/plasteel,/turf/simulated/floor/airless,/area/awaymission/northblock)
-"aw" = (/obj/structure/window/reinforced/tinted,/turf/simulated/floor/airless,/area/awaymission/northblock)
-"ax" = (/obj/structure/window/reinforced/tinted,/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/airless,/area/awaymission/northblock)
-"ay" = (/obj/structure/window/reinforced/tinted,/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor/airless,/area/awaymission/northblock)
-"az" = (/obj/structure/window/reinforced/tinted,/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor/airless,/area/awaymission/northblock)
-"aA" = (/obj/structure/window/reinforced/tinted,/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"; tag = ""},/obj/structure/closet/secure_closet/engineering_electrical,/turf/simulated/floor/airless,/area/awaymission/northblock)
-"aB" = (/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/awaymission/northblock)
+"av" = (/obj/structure/window/reinforced/tinted,/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"; tag = ""},/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass,/obj/item/stack/sheet/plasteel,/turf/simulated/floor/plasteel/airless,/area/awaymission/northblock)
+"aw" = (/obj/structure/window/reinforced/tinted,/turf/simulated/floor/plasteel/airless,/area/awaymission/northblock)
+"ax" = (/obj/structure/window/reinforced/tinted,/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plasteel/airless,/area/awaymission/northblock)
+"ay" = (/obj/structure/window/reinforced/tinted,/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor/plasteel/airless,/area/awaymission/northblock)
+"az" = (/obj/structure/window/reinforced/tinted,/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor/plasteel/airless,/area/awaymission/northblock)
+"aA" = (/obj/structure/window/reinforced/tinted,/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"; tag = ""},/obj/structure/closet/secure_closet/engineering_electrical,/turf/simulated/floor/plasteel/airless,/area/awaymission/northblock)
+"aB" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/awaymission/northblock)
"aC" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/awaymission/syndishuttle)
"aD" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/awaymission/syndishuttle)
"aE" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor/plating/airless,/area/awaymission/northblock)
-"aF" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/awaymission/northblock)
-"aG" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/northblock)
-"aH" = (/obj/effect/decal/remains/robot,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/awaymission/northblock)
+"aF" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/awaymission/northblock)
+"aG" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/northblock)
+"aH" = (/obj/effect/decal/remains/robot,/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/awaymission/northblock)
"aI" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-burst_l (EAST)"; icon_state = "burst_l"; dir = 4},/turf/space,/area/awaymission/syndishuttle)
"aJ" = (/turf/simulated/floor/plating/airless,/area/awaymission/syndishuttle)
"aK" = (/turf/space,/area/awaymission/syndishuttle)
@@ -41,8 +41,8 @@
"aO" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_r (EAST)"; icon_state = "propulsion_r"; dir = 4},/turf/space,/area/awaymission/syndishuttle)
"aP" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/turf/simulated/floor/plating/airless,/area/awaymission/syndishuttle)
"aQ" = (/turf/simulated/floor/plating/airless,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/awaymission/syndishuttle)
-"aR" = (/obj/structure/closet/secure_closet/engineering_personal,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/northblock)
-"aS" = (/obj/structure/closet/secure_closet/engineering_personal,/turf/simulated/floor/airless,/area/awaymission/northblock)
+"aR" = (/obj/structure/closet/secure_closet/engineering_personal,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/northblock)
+"aS" = (/obj/structure/closet/secure_closet/engineering_personal,/turf/simulated/floor/plasteel/airless,/area/awaymission/northblock)
"aT" = (/obj/structure/closet/secure_closet/engineering_welding,/obj/machinery/light,/turf/simulated/floor/plasteel,/area/awaymission/northblock)
"aU" = (/obj/machinery/mech_bay_recharge_port,/turf/simulated/floor/plasteel,/area/awaymission/northblock)
"aV" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/simulated/floor/plasteel,/area/awaymission/northblock)
@@ -51,8 +51,8 @@
"aY" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/awaymission/syndishuttle)
"aZ" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/space)
"ba" = (/turf/simulated/wall,/area/space)
-"bb" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor/airless,/area/awaymission/northblock)
-"bc" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/awaymission/northblock)
+"bb" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor/plasteel/airless,/area/awaymission/northblock)
+"bc" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/awaymission/northblock)
"bd" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-burst_l (EAST)"; icon_state = "burst_l"; dir = 4},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/awaymission/syndishuttle)
"be" = (/obj/structure/shuttle/engine/heater,/turf/simulated/shuttle/plating,/area/awaymission/syndishuttle)
"bf" = (/turf/simulated/shuttle/plating,/area/awaymission/syndishuttle)
@@ -71,8 +71,8 @@
"bs" = (/obj/structure/lattice,/turf/space,/area/awaymission/syndishuttle)
"bt" = (/obj/machinery/door/airlock/centcom,/turf/simulated/shuttle/plating,/area/awaymission/syndishuttle)
"bu" = (/obj/machinery/door/airlock/centcom,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/syndishuttle)
-"bv" = (/turf/simulated/floor/airless{icon_state = "damaged5"},/area/awaymission/research)
-"bw" = (/obj/structure/girder/reinforced,/turf/simulated/floor/airless{icon_state = "damaged4"},/area/awaymission/research)
+"bv" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/awaymission/research)
+"bw" = (/obj/structure/girder/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/awaymission/research)
"bx" = (/turf/simulated/wall/r_wall,/area/awaymission/research)
"by" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/shuttle/plating,/area/awaymission/syndishuttle)
"bz" = (/obj/machinery/bot/medbot/mysterious{desc = "A dark little medical robot. She looks somewhat underwhelmed."; name = "Nightingale"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/syndishuttle)
@@ -81,7 +81,7 @@
"bC" = (/obj/structure/table,/obj/item/weapon/paper/sc_safehint_paper_shuttle,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/syndishuttle)
"bD" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/syndishuttle)
"bE" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/awaymission/syndishuttle)
-"bF" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/awaymission/research)
+"bF" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/awaymission/research)
"bG" = (/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/awaymission/research)
"bH" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/awaymission/research)
"bI" = (/obj/item/weapon/shard,/mob/living/carbon/alien/larva{bruteloss = 25; fireloss = 175; stat = 2},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/awaymission/research)
@@ -100,7 +100,7 @@
"bV" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (NORTH)"; icon_state = "heater"; dir = 1},/turf/simulated/shuttle/plating,/area/awaymission/syndishuttle)
"bW" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/awaymission/syndishuttle)
"bX" = (/obj/machinery/sleeper{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/syndishuttle)
-"bY" = (/obj/structure/girder/reinforced,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/awaymission/research)
+"bY" = (/obj/structure/girder/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/awaymission/research)
"bZ" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/awaymission/research)
"ca" = (/turf/simulated/floor/plasteel,/area/awaymission/research)
"cb" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/awaymission/research)
@@ -110,7 +110,7 @@
"cf" = (/obj/machinery/dna_scannernew,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
"cg" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/fancy/grass,/area/awaymission/research)
"ch" = (/obj/machinery/power/emitter{anchored = 1; state = 2},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research)
-"ci" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/awaymission/northblock)
+"ci" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/awaymission/northblock)
"cj" = (/obj/machinery/door/window/southleft,/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/awaymission/research)
"ck" = (/obj/item/weapon/shard{icon_state = "small"},/mob/living/carbon/alien/larva{bruteloss = 50; fireloss = 150; stat = 2},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/awaymission/research)
"cl" = (/obj/item/weapon/shard{icon_state = "medium"},/obj/item/weapon/shard{icon_state = "small"},/obj/structure/alien/weeds/node,/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/awaymission/research)
@@ -132,7 +132,7 @@
"cB" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research)
"cC" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_l (EAST)"; icon_state = "propulsion_l"; dir = 4},/turf/space,/area/awaymission/syndishuttle)
"cD" = (/turf/simulated/floor/plating/airless,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/awaymission/syndishuttle)
-"cE" = (/obj/machinery/portable_atmospherics/canister/toxins{destroyed = 1},/turf/simulated/floor/airless{icon_state = "damaged4"},/area/awaymission/northblock)
+"cE" = (/obj/machinery/portable_atmospherics/canister/toxins{destroyed = 1},/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/awaymission/northblock)
"cF" = (/obj/machinery/door/window/eastleft,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
"cG" = (/obj/machinery/power/emitter{anchored = 1; dir = 1; icon_state = "emitter"; state = 2},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
"cH" = (/obj/item/clothing/mask/facehugger,/mob/living/carbon/alien/humanoid/queen{fireloss = 300; stat = 2},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
@@ -145,7 +145,7 @@
"cO" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research)
"cP" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research)
"cQ" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple,/turf/space,/area/awaymission/northblock)
-"cR" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/northblock)
+"cR" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/northblock)
"cS" = (/obj/structure/closet/firecloset,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
"cT" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
"cU" = (/mob/living/carbon/alien/humanoid/hunter{fireloss = 200; stat = 2},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
@@ -167,21 +167,21 @@
"dk" = (/obj/machinery/door_control{id = "Narsiedoor"; name = "Blast Door Control"; pixel_x = -28},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research)
"dl" = (/obj/machinery/door/poddoor{id = "Narsiedoor"; name = "Blast Doors"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research)
"dm" = (/obj/machinery/power/emitter{anchored = 1; dir = 8; state = 2},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research)
-"dn" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/northblock)
+"dn" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/northblock)
"do" = (/obj/structure/closet/firecloset,/turf/simulated/floor/plasteel,/area/awaymission/northblock)
-"dp" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/northblock)
+"dp" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/awaymission/northblock)
"dq" = (/obj/machinery/door/airlock/highsecurity{name = "Security Airlock"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/awaymission/research)
"dr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/awaymission/research)
"ds" = (/obj/machinery/door/window/westright{name = "Windoor"},/obj/machinery/door/window/eastright{name = "Windoor"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
"dt" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
"du" = (/obj/effect/decal/remains/human,/obj/item/clothing/suit/labcoat,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
"dv" = (/obj/machinery/door/airlock/hatch{name = "High-Security Airlock"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research)
-"dw" = (/obj/machinery/singularity/narsie/sc_Narsie{pixel_x = -48; pixel_y = -51},/turf/space,/area/awaymission/research)
+"dw" = (/obj/singularity/narsie/sc_Narsie{pixel_x = -48; pixel_y = -51},/turf/space,/area/awaymission/research)
"dx" = (/turf/simulated/floor/plasteel{dir = 0; icon_state = "blue"},/area/awaymission/northblock)
"dy" = (/obj/machinery/message_server{stat = 1},/turf/simulated/floor/plasteel{dir = 0; icon_state = "blue"},/area/awaymission/northblock)
"dz" = (/obj/machinery/computer/message_monitor{stat = 1},/turf/simulated/floor/plasteel{dir = 0; icon_state = "blue"},/area/awaymission/northblock)
"dA" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "bluecorner"},/area/awaymission/northblock)
-"dB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/awaymission/northblock)
+"dB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/awaymission/northblock)
"dC" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_y = -10; tag = "icon-shower (EAST)"},/obj/structure/window/reinforced/tinted{dir = 1},/turf/simulated/floor/plasteel,/area/awaymission/research)
"dD" = (/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/awaymission/research)
"dE" = (/obj/structure/window/reinforced,/obj/structure/cable,/obj/machinery/power/apc{cell_type = 7500; dir = 8; name = "Research APC"; pixel_x = -28},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
@@ -194,14 +194,14 @@
"dL" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research)
"dM" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research)
"dN" = (/turf/simulated/floor/plasteel{icon_state = "bluecorner"},/area/awaymission/northblock)
-"dO" = (/obj/structure/stool/bed/chair/office/light{dir = 1},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/awaymission/northblock)
+"dO" = (/obj/structure/stool/bed/chair/office/light{dir = 1},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/awaymission/northblock)
"dP" = (/obj/structure/stool/bed/chair/office/light{dir = 1},/turf/simulated/floor/plasteel,/area/awaymission/northblock)
"dQ" = (/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 8},/area/awaymission/northblock)
"dR" = (/obj/structure/showcase{icon_state = "showcase_2"},/turf/simulated/floor/plasteel,/area/awaymission/northblock)
-"dS" = (/obj/structure/sign/goldenplaque{pixel_y = 31},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/northblock)
-"dT" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/northblock)
-"dU" = (/obj/structure/sign/atmosplaque{pixel_y = 31},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/northblock)
-"dV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/northblock)
+"dS" = (/obj/structure/sign/goldenplaque{pixel_y = 31},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/northblock)
+"dT" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/awaymission/northblock)
+"dU" = (/obj/structure/sign/atmosplaque{pixel_y = 31},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/northblock)
+"dV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/awaymission/northblock)
"dW" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
"dX" = (/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
"dY" = (/obj/structure/table,/obj/item/stack/cable_coil{amount = 5},/obj/item/weapon/screwdriver,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
@@ -217,7 +217,7 @@
"ei" = (/turf/simulated/floor/plasteel{dir = 9; icon_state = "blue"},/area/awaymission/northblock)
"ej" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/awaymission/northblock)
"ek" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "blue"},/area/awaymission/northblock)
-"el" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/awaymission/northblock)
+"el" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/awaymission/northblock)
"em" = (/obj/structure/window/reinforced,/obj/machinery/computer/upload/ai,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
"en" = (/obj/structure/window/reinforced,/obj/machinery/door/window/brigdoor/eastleft,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
"eo" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{current_temperature = 80},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
@@ -225,16 +225,16 @@
"eq" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research)
"er" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/northblock)
"es" = (/obj/structure/computerframe{anchored = 1},/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 4},/area/awaymission/northblock)
-"et" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/northblock)
+"et" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/awaymission/northblock)
"eu" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plasteel,/area/awaymission/northblock)
"ev" = (/obj/machinery/door/airlock/command,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/awaymission/northblock)
-"ew" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/awaymission/northblock)
+"ew" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/awaymission/northblock)
"ex" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/awaymission/northblock)
-"ey" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/northblock)
-"ez" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/northblock)
+"ey" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/awaymission/northblock)
+"ez" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/northblock)
"eA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 4},/area/awaymission/northblock)
-"eB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/awaymission/northblock)
-"eC" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/northblock)
+"eB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/awaymission/northblock)
+"eC" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/awaymission/northblock)
"eD" = (/obj/structure/AIcore,/turf/simulated/floor/greengrid,/area/awaymission/research)
"eE" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/greengrid,/area/awaymission/research)
"eF" = (/turf/simulated/floor/greengrid,/area/awaymission/research)
@@ -247,7 +247,7 @@
"eM" = (/obj/structure/table,/turf/simulated/floor/plasteel{dir = 4; icon_state = "bluecorner"},/area/awaymission/northblock)
"eN" = (/obj/machinery/power/apc{cell_type = 5000; dir = 4; name = "North Block APC"; pixel_x = 28},/obj/structure/cable,/turf/simulated/floor/plasteel{dir = 9; icon_state = "blue"},/area/awaymission/northblock)
"eO" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/awaymission/northblock)
-"eP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/northblock)
+"eP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/northblock)
"eQ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/grown/potato,/obj/item/stack/cable_coil{amount = 1},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
"eR" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
"eS" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/computerframe{anchored = 1},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
@@ -259,10 +259,10 @@
"eY" = (/obj/machinery/power/emitter{anchored = 1; dir = 1; icon_state = "emitter"; state = 2},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research)
"eZ" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "bluecorner"},/area/awaymission/northblock)
"fa" = (/obj/structure/stool/bed/chair/office/light,/turf/simulated/floor/plasteel,/area/awaymission/northblock)
-"fb" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/northblock)
+"fb" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/awaymission/northblock)
"fc" = (/turf/simulated/floor/plasteel,/area/awaymission/northblock)
-"fd" = (/obj/machinery/light/small,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/northblock)
-"fe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/awaymission/northblock)
+"fd" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/awaymission/northblock)
+"fe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/awaymission/northblock)
"ff" = (/obj/structure/table,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/capacitor{pixel_x = -3},/obj/item/weapon/stock_parts/scanning_module{pixel_x = 3; pixel_y = 3},/obj/item/weapon/stock_parts/scanning_module{pixel_y = -3; step_y = 0},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
"fg" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
"fh" = (/obj/structure/table,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stock_parts/micro_laser{pixel_x = -3; pixel_y = -3},/obj/item/weapon/stock_parts/micro_laser{pixel_x = 3; pixel_y = 3},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
@@ -277,10 +277,10 @@
"fq" = (/obj/structure/target_stake,/obj/item/target/syndicate,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
"fr" = (/obj/structure/closet/secure_closet/captains,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/northblock)
"fs" = (/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/northblock)
-"ft" = (/turf/simulated/floor/airless,/area/awaymission/midblock)
-"fu" = (/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/midblock)
-"fv" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/midblock)
-"fw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/midblock)
+"ft" = (/turf/simulated/floor/plasteel/airless,/area/awaymission/midblock)
+"fu" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/awaymission/midblock)
+"fv" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/midblock)
+"fw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/awaymission/midblock)
"fx" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/weapon/storage/toolbox/mechanical{pixel_y = 5},/obj/item/weapon/stock_parts/console_screen,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
"fy" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 20; pixel_x = -3; pixel_y = -3},/obj/item/stack/sheet/glass{amount = 10; pixel_x = 3; pixel_y = 3},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
"fz" = (/obj/machinery/r_n_d/circuit_imprinter,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
@@ -291,10 +291,10 @@
"fE" = (/obj/structure/target_stake,/obj/item/weapon/grown/sunflower,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
"fF" = (/obj/item/ammo_casing/c45,/obj/item/ammo_casing/c45{pixel_x = 7},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/northblock)
"fG" = (/obj/item/clothing/suit/space/syndicate,/obj/item/clothing/under/syndicate,/obj/item/clothing/head/helmet/space/syndicate,/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/obj/item/clothing/shoes/syndigaloshes,/obj/effect/decal/cleanable/blood/splatter,/obj/item/weapon/gun/projectile/automatic/pistol,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/northblock)
-"fH" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/airless,/area/awaymission/midblock)
-"fI" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/midblock)
-"fJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/awaymission/midblock)
-"fK" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/midblock)
+"fH" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel/airless,/area/awaymission/midblock)
+"fI" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/awaymission/midblock)
+"fJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/awaymission/midblock)
+"fK" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/midblock)
"fL" = (/turf/simulated/wall/cult,/area/awaymission/midblock)
"fM" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/midblock)
"fN" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/midblock)
@@ -306,7 +306,7 @@
"fT" = (/turf/space,/turf/simulated/shuttle/wall{dir = 3; icon_state = "swall_f10"; layer = 2; tag = "icon-swall_f10"},/area/awaymission/arrivalblock)
"fU" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_x = -3; pixel_y = 5},/obj/item/weapon/paper{pixel_x = 3},/obj/item/weapon/pen{pixel_x = 10; pixel_y = 10},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/northblock)
"fV" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/northblock)
-"fW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless,/area/awaymission/midblock)
+"fW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel/airless,/area/awaymission/midblock)
"fX" = (/turf/simulated/wall,/area/awaymission/midblock)
"fY" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/midblock)
"fZ" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/midblock)
@@ -319,7 +319,7 @@
"gg" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 1},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/northblock)
"gh" = (/obj/item/weapon/storage/secure/safe/sc_ssafe{pixel_x = 4; pixel_y = -26},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/northblock)
"gi" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/captain,/obj/item/clothing/under/rank/captain,/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/splatter,/obj/item/weapon/gun/energy/laser/retro/sc_retro,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/northblock)
-"gj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/awaymission/midblock)
+"gj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/awaymission/midblock)
"gk" = (/obj/structure/closet/wardrobe,/turf/simulated/floor/plasteel,/area/awaymission/midblock)
"gl" = (/turf/simulated/floor/plasteel,/area/awaymission/midblock)
"gm" = (/obj/structure/closet/wardrobe/pjs,/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"; tag = ""},/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"; tag = ""},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel,/area/awaymission/midblock)
@@ -366,7 +366,7 @@
"hb" = (/obj/structure/closet/wardrobe/red,/obj/machinery/light{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/awaymission/arrivalblock)
"hc" = (/obj/structure/closet/secure_closet/security,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/awaymission/arrivalblock)
"hd" = (/obj/structure/closet/secure_closet/security,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 5},/area/awaymission/arrivalblock)
-"he" = (/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/awaymission/midblock)
+"he" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/awaymission/midblock)
"hf" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/blue,/obj/structure/window/reinforced/tinted{dir = 1},/turf/simulated/floor/plasteel,/area/awaymission/midblock)
"hg" = (/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"; tag = ""},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"; tag = ""},/turf/simulated/floor/plasteel,/area/awaymission/midblock)
"hh" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/purple,/obj/structure/window/reinforced/tinted{dir = 1},/obj/effect/decal/remains/human,/turf/simulated/floor/plasteel,/area/awaymission/midblock)
@@ -390,8 +390,8 @@
"hz" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/item/clothing/suit/space/syndicate,/obj/item/weapon/paper/sc_safehint_paper_prison,/obj/item/weapon/gun/projectile/shotgun/sc_pump,/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock)
"hA" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock)
"hB" = (/obj/machinery/door/window/southleft{name = "Windoor"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/awaymission/arrivalblock)
-"hC" = (/obj/item/ammo_casing/c10mm{pixel_x = 2; pixel_y = 5},/obj/item/ammo_casing/c10mm{pixel_x = -4; pixel_y = -5},/obj/item/ammo_casing/c10mm,/turf/simulated/floor/airless,/area/awaymission/midblock)
-"hD" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless,/area/awaymission/midblock)
+"hC" = (/obj/item/ammo_casing/c10mm{pixel_x = 2; pixel_y = 5},/obj/item/ammo_casing/c10mm{pixel_x = -4; pixel_y = -5},/obj/item/ammo_casing/c10mm,/turf/simulated/floor/plasteel/airless,/area/awaymission/midblock)
+"hD" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel/airless,/area/awaymission/midblock)
"hE" = (/obj/structure/sink/kitchen{pixel_y = 32},/turf/simulated/floor/plasteel,/area/awaymission/midblock)
"hF" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/enzyme,/obj/item/weapon/reagent_containers/food/condiment/peppermill,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = 4; pixel_y = 4},/turf/simulated/floor/plasteel,/area/awaymission/midblock)
"hG" = (/obj/structure/table,/obj/machinery/reagentgrinder,/turf/simulated/floor/plasteel,/area/awaymission/midblock)
@@ -420,8 +420,8 @@
"id" = (/obj/structure/stool/bed/chair{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock)
"ie" = (/obj/effect/decal/remains/human,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/awaymission/arrivalblock)
"if" = (/obj/machinery/door/airlock/glass_security{name = "Glass Airlock"; req_access_txt = "0"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock)
-"ig" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/airless,/area/awaymission/midblock)
-"ih" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/midblock)
+"ig" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel/airless,/area/awaymission/midblock)
+"ih" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/awaymission/midblock)
"ii" = (/obj/machinery/microwave{pixel_x = -2; pixel_y = 7},/obj/structure/table,/turf/simulated/floor/plasteel,/area/awaymission/midblock)
"ij" = (/obj/structure/stool,/obj/item/ammo_casing/c10mm,/turf/simulated/floor/plasteel,/area/awaymission/midblock)
"ik" = (/obj/item/ammo_casing/c10mm,/obj/item/ammo_casing/c10mm,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plasteel,/area/awaymission/midblock)
@@ -459,32 +459,32 @@
"iQ" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock)
"iR" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 9},/area/awaymission/arrivalblock)
"iS" = (/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/awaymission/arrivalblock)
-"iT" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/awaymission/arrivalblock)
-"iU" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/arrivalblock)
-"iV" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/airless,/area/awaymission/southblock)
-"iW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless,/area/awaymission/southblock)
-"iX" = (/turf/simulated/floor/airless,/area/awaymission/southblock)
-"iY" = (/obj/item/ammo_casing/c10mm,/turf/simulated/floor/airless,/area/awaymission/southblock)
-"iZ" = (/obj/item/ammo_casing/c10mm{pixel_x = -4; pixel_y = 3},/turf/simulated/floor/airless,/area/awaymission/southblock)
-"ja" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/airless,/area/awaymission/southblock)
-"jb" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/airless,/area/awaymission/southblock)
+"iT" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/awaymission/arrivalblock)
+"iU" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/arrivalblock)
+"iV" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock)
+"iW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock)
+"iX" = (/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock)
+"iY" = (/obj/item/ammo_casing/c10mm,/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock)
+"iZ" = (/obj/item/ammo_casing/c10mm{pixel_x = -4; pixel_y = 3},/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock)
+"ja" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock)
+"jb" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock)
"jc" = (/turf/simulated/wall,/area/awaymission/southblock)
"jd" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/arrivalblock)
"je" = (/obj/structure/closet/wardrobe/orange,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 10},/area/awaymission/arrivalblock)
"jf" = (/obj/structure/stool/bed,/turf/simulated/floor/plasteel{icon_state = "red"},/area/awaymission/arrivalblock)
"jg" = (/obj/structure/stool,/obj/machinery/light/small,/turf/simulated/floor/plasteel{icon_state = "red"},/area/awaymission/arrivalblock)
-"jh" = (/obj/structure/table/reinforced,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/awaymission/arrivalblock)
+"jh" = (/obj/structure/table/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/awaymission/arrivalblock)
"ji" = (/turf/space,/area/awaymission/arrivalblock)
-"jj" = (/obj/structure/girder,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/awaymission/arrivalblock)
-"jk" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/awaymission/southblock)
-"jl" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/airless,/area/awaymission/southblock)
-"jm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/airless,/area/awaymission/southblock)
-"jn" = (/obj/item/ammo_casing/c10mm{pixel_y = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/airless,/area/awaymission/southblock)
-"jo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/airless,/area/awaymission/southblock)
-"jp" = (/obj/structure/sign/bluecross{pixel_y = -32},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/airless,/area/awaymission/southblock)
-"jq" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/airless,/area/awaymission/southblock)
-"jr" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/airless,/area/awaymission/southblock)
-"js" = (/obj/item/clothing/head/helmet/space/syndicate,/turf/simulated/floor/airless,/area/awaymission/southblock)
+"jj" = (/obj/structure/girder,/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/awaymission/arrivalblock)
+"jk" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/awaymission/southblock)
+"jl" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock)
+"jm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock)
+"jn" = (/obj/item/ammo_casing/c10mm{pixel_y = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock)
+"jo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock)
+"jp" = (/obj/structure/sign/bluecross{pixel_y = -32},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock)
+"jq" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock)
+"jr" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock)
+"js" = (/obj/item/clothing/head/helmet/space/syndicate,/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock)
"jt" = (/obj/structure/girder,/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock)
"ju" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock)
"jv" = (/obj/machinery/door/airlock/maintenance{name = "Airlock"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel,/area/awaymission/southblock)
@@ -559,7 +559,7 @@
"kM" = (/obj/structure/sink/kitchen{pixel_y = 32},/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock)
"kN" = (/obj/item/weapon/melee/energy/sword/saber/red,/obj/item/clothing/shoes/syndigaloshes,/obj/item/clothing/under/syndicate,/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/obj/item/weapon/paper/sc_safehint_paper_hydro,/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock)
"kO" = (/obj/machinery/hydroponics,/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock)
-"kP" = (/obj/structure/morgue,/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaymission/southblock)
+"kP" = (/obj/structure/bodycontainer/morgue,/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaymission/southblock)
"kQ" = (/obj/machinery/vending/medical,/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaymission/southblock)
"kR" = (/obj/structure/stool/bed/roller,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 1},/area/awaymission/southblock)
"kS" = (/obj/structure/table,/obj/item/weapon/paper/pamphlet{pixel_x = 2; pixel_y = 2},/obj/item/weapon/paper/pamphlet{pixel_x = -2; pixel_y = -2},/turf/simulated/floor/plasteel{tag = "icon-warningcorner (WEST)"; icon_state = "warningcorner"; dir = 8},/area/awaymission/gateroom)
@@ -570,7 +570,7 @@
"kX" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/awaymission/arrivalblock)
"kY" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/awaymission/arrivalblock)
"kZ" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/awaymission/arrivalblock)
-"la" = (/obj/structure/morgue,/turf/simulated/floor/plasteel{tag = "icon-whitehall (WEST)"; icon_state = "whitehall"; dir = 8},/area/awaymission/southblock)
+"la" = (/obj/structure/bodycontainer/morgue,/turf/simulated/floor/plasteel{tag = "icon-whitehall (WEST)"; icon_state = "whitehall"; dir = 8},/area/awaymission/southblock)
"lb" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 4},/area/awaymission/southblock)
"lc" = (/turf/simulated/floor/plasteel{tag = "icon-whitehall (WEST)"; icon_state = "whitehall"; dir = 8},/area/awaymission/southblock)
"ld" = (/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 4},/area/awaymission/southblock)
diff --git a/_maps/map_files/Asteroidstation/Asteroidstation.dmm b/_maps/map_files/Asteroidstation/Asteroidstation.dmm
index 40ff181066b..96338fdbc7d 100644
--- a/_maps/map_files/Asteroidstation/Asteroidstation.dmm
+++ b/_maps/map_files/Asteroidstation/Asteroidstation.dmm
@@ -4251,7 +4251,7 @@
"bDM" = (/obj/machinery/door_control{dir = 2; id = "Mechbay"; name = "Mech Bay Door Control"; pixel_x = -24; pixel_y = 0; req_access_txt = "29"},/turf/simulated/floor/plasteel,/area/assembly/chargebay)
"bDN" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/assembly/chargebay)
"bDO" = (/turf/simulated/floor/plasteel,/area/assembly/chargebay)
-"bDP" = (/obj/structure/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/assembly/assembly_line)
+"bDP" = (/obj/structure/bodycontainer/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/assembly/assembly_line)
"bDQ" = (/obj/machinery/camera{c_tag = "Robotics Morgue"; dir = 2; network = list("SS13","RD")},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/assembly/assembly_line)
"bDR" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/assembly/assembly_line)
"bDS" = (/obj/machinery/door/window/southleft{name = "Robotics Deliveries"; req_access_txt = "29"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/assembly/assembly_line)
@@ -5438,7 +5438,7 @@
"caD" = (/obj/structure/cable/cyan{tag = "icon-1-2"; icon_state = "1-2"},/obj/structure/cable/cyan{tag = "icon-1-4"; icon_state = "1-4"},/turf/simulated/floor/plating,/area/maintenance/asteroidstation/medbay)
"caE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/cyan{tag = "icon-2-8"; icon_state = "2-8"},/turf/simulated/floor/plating,/area/maintenance/asteroidstation/medbay)
"caF" = (/obj/machinery/power/apc{dir = 1; name = "Genetics Research APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable/cyan{tag = "icon-0-2"; icon_state = "0-2"},/turf/simulated/floor/plating,/area/medical/genetics)
-"caG" = (/obj/structure/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
+"caG" = (/obj/structure/bodycontainer/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
"caH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
"caI" = (/obj/machinery/camera{c_tag = "Medbay Morgue"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
"caJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
@@ -5586,7 +5586,7 @@
"cdv" = (/obj/item/clothing/head/ushanka,/obj/item/clothing/under/soviet,/turf/simulated/floor/plating,/area/hallway/primary/aft{name = "Aft Hallway"})
"cdw" = (/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka,/obj/item/toy/snappop,/turf/simulated/floor/plating,/area/hallway/primary/aft{name = "Aft Hallway"})
"cdx" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/bodybags{pixel_x = 3; pixel_y = 3},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
-"cdy" = (/obj/structure/crematorium,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
+"cdy" = (/obj/structure/bodycontainer/crematorium,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
"cdz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
"cdA" = (/obj/structure/closet/wardrobe/chaplain_black,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
"cdB" = (/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
@@ -5683,7 +5683,7 @@
"cfo" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 4},/area/hallway/primary/aft{name = "Aft Hallway"})
"cfp" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/hallway/primary/aft{name = "Aft Hallway"})
"cfq" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor/plating,/area/hallway/primary/aft{name = "Aft Hallway"})
-"cfr" = (/obj/structure/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
+"cfr" = (/obj/structure/bodycontainer/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
"cfs" = (/obj/machinery/camera{c_tag = "Chapel Crematorium"; dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
"cft" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
"cfu" = (/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/obj/item/weapon/storage/fancy/crayons,/obj/structure/table/wood,/turf/simulated/floor/fancy/carpet,/area/chapel/main)
diff --git a/_maps/map_files/Asteroidstation/z6.dmm b/_maps/map_files/Asteroidstation/z6.dmm
index 8ca97b0aa8c..f8b85b35692 100644
--- a/_maps/map_files/Asteroidstation/z6.dmm
+++ b/_maps/map_files/Asteroidstation/z6.dmm
@@ -249,7 +249,7 @@
"eO" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/space)
"eP" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel,/area/derelict/arrival)
"eQ" = (/obj/machinery/door/morgue{name = "coffin storage"; req_access_txt = "22"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel)
-"eR" = (/obj/structure/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel)
+"eR" = (/obj/structure/bodycontainer/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel)
"eS" = (/obj/structure/table,/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical)
"eT" = (/turf/simulated/floor/airless{icon_state = "white"},/area/space)
"eU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/hallway/primary)
diff --git a/_maps/map_files/MiniStation/z4.dmm b/_maps/map_files/MiniStation/z4.dmm
index ce7d5957d29..7f05e46bbe5 100644
--- a/_maps/map_files/MiniStation/z4.dmm
+++ b/_maps/map_files/MiniStation/z4.dmm
@@ -16,7 +16,7 @@
"ap" = (/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/turf/simulated/floor/plating/airless,/area/AIsattele)
"aq" = (/obj/structure/closet/crate,/obj/item/device/aicard,/obj/item/device/multitool,/turf/simulated/floor/plating/airless,/area/AIsattele)
"ar" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/space)
-"as" = (/obj/machinery/power/solar/fake,/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/djstation/solars)
+"as" = (/obj/machinery/power/solar/fake,/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/djstation/solars)
"at" = (/turf/simulated/floor/plating/airless,/area/djstation/solars)
"au" = (/turf/simulated/wall,/area/djstation)
"av" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/djstation)
@@ -86,43 +86,43 @@
"bH" = (/turf/simulated/floor/plating/airless,/area/space)
"bI" = (/turf/simulated/wall/r_wall,/area/derelict/teleporter)
"bJ" = (/turf/simulated/floor/plating/airless,/area/derelict/teleporter)
-"bK" = (/turf/simulated/floor/airless,/area/derelict/teleporter)
-"bL" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/teleporter)
-"bM" = (/obj/machinery/light_construct/small{dir = 1},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/teleporter)
-"bN" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/airless,/area/derelict/teleporter)
-"bO" = (/obj/machinery/teleport/station,/turf/simulated/floor/airless,/area/derelict/teleporter)
-"bP" = (/obj/machinery/teleport/hub,/turf/simulated/floor/airless,/area/derelict/teleporter)
+"bK" = (/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter)
+"bL" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/teleporter)
+"bM" = (/obj/machinery/light_construct/small{dir = 1},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/teleporter)
+"bN" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter)
+"bO" = (/obj/machinery/teleport/station,/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter)
+"bP" = (/obj/machinery/teleport/hub,/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter)
"bQ" = (/obj/machinery/light_construct/small{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/teleporter)
-"bR" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell{charge = 100; maxcharge = 15000},/turf/simulated/floor/airless,/area/derelict/teleporter)
-"bS" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/derelict/teleporter)
-"bT" = (/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/airless,/area/derelict/teleporter)
+"bR" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell{charge = 100; maxcharge = 15000},/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter)
+"bS" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/teleporter)
+"bT" = (/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter)
"bU" = (/turf/simulated/mineral,/area/space)
"bV" = (/turf/simulated/floor/plating/asteroid/airless,/area/space)
"bW" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/space)
"bX" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/space)
-"bY" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/floor/airless,/area/space)
+"bY" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/floor/plasteel/airless,/area/space)
"bZ" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/space)
"ca" = (/turf/simulated/floor/plating/asteroid/airless,/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/space)
-"cb" = (/obj/effect/landmark/corpse/clown,/turf/simulated/floor/airless,/area/space)
-"cc" = (/turf/simulated/floor/airless,/area/space)
-"cd" = (/obj/structure/closet/crate,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/turf/simulated/floor/airless,/area/space)
-"ce" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/weapon/ore/bananium,/turf/simulated/floor/airless,/area/space)
+"cb" = (/obj/effect/landmark/corpse/clown,/turf/simulated/floor/plasteel/airless,/area/space)
+"cc" = (/turf/simulated/floor/plasteel/airless,/area/space)
+"cd" = (/obj/structure/closet/crate,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/turf/simulated/floor/plasteel/airless,/area/space)
+"ce" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/weapon/ore/bananium,/turf/simulated/floor/plasteel/airless,/area/space)
"cf" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/space)
"cg" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 8},/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 8},/turf/space,/area/space)
"ch" = (/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/plating/asteroid/airless,/area/space)
-"ci" = (/obj/item/weapon/ore/bananium,/turf/simulated/floor/airless,/area/space)
+"ci" = (/obj/item/weapon/ore/bananium,/turf/simulated/floor/plasteel/airless,/area/space)
"cj" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 8},/turf/space,/area/space)
"ck" = (/obj/item/weapon/shard{icon_state = "medium"},/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plating/asteroid/airless,/area/space)
-"cl" = (/obj/effect/landmark/corpse/clown{name = "Clown Pilot"},/turf/simulated/floor/airless,/area/space)
-"cm" = (/obj/item/weapon/paper{info = "The call has gone out! Our ancestral home has been rediscovered! Not a small patch of land, but a true clown nation, a true Clown Planet! We're on our way home at last!"},/turf/simulated/floor/airless,/area/space)
+"cl" = (/obj/effect/landmark/corpse/clown{name = "Clown Pilot"},/turf/simulated/floor/plasteel/airless,/area/space)
+"cm" = (/obj/item/weapon/paper{info = "The call has gone out! Our ancestral home has been rediscovered! Not a small patch of land, but a true clown nation, a true Clown Planet! We're on our way home at last!"},/turf/simulated/floor/plasteel/airless,/area/space)
"cn" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/space)
-"co" = (/obj/item/weapon/shard,/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/airless,/area/space)
-"cp" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/airless,/area/space)
+"co" = (/obj/item/weapon/shard,/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel/airless,/area/space)
+"cp" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plasteel/airless,/area/space)
"cq" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/space)
-"cr" = (/turf/simulated/floor/airless,/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/space)
-"cs" = (/obj/item/weapon/pickaxe,/turf/simulated/floor/airless,/area/space)
-"ct" = (/obj/structure/closet/crate,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/turf/simulated/floor/airless,/area/space)
-"cu" = (/obj/structure/closet/crate,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/clothing/shoes/clown_shoes{desc = "These shoes appear var-edited!."; name = "uhangi's shoes"; slowdown = -1},/turf/simulated/floor/airless,/area/space)
+"cr" = (/turf/simulated/floor/plasteel/airless,/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/space)
+"cs" = (/obj/item/weapon/pickaxe,/turf/simulated/floor/plasteel/airless,/area/space)
+"ct" = (/obj/structure/closet/crate,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/turf/simulated/floor/plasteel/airless,/area/space)
+"cu" = (/obj/structure/closet/crate,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/clothing/shoes/clown_shoes{desc = "These shoes appear var-edited!."; name = "uhangi's shoes"; slowdown = -1},/turf/simulated/floor/plasteel/airless,/area/space)
"cv" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 8},/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 8},/turf/space,/area/space)
"cw" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/space)
"cx" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/space)
diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm
index 89c6906c39c..5d3d42cb1a0 100644
--- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm
+++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm
@@ -140,9 +140,9 @@
"acJ" = (/obj/machinery/deployable/barrier,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
"acK" = (/obj/machinery/deployable/barrier,/obj/machinery/alarm{pixel_y = 23},/obj/machinery/camera/motion{c_tag = "Armory Motion Sensor"; dir = 2; name = "motion-sensitive security camera"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
"acL" = (/obj/machinery/suit_storage_unit/security,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
-"acM" = (/obj/structure/rack,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/gun/energy/ionrifle,/obj/item/clothing/suit/armor/laserproof,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
+"acM" = (/obj/structure/rack,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/gun/energy/gun/advtaser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/gun/advtaser,/obj/item/weapon/gun/energy/gun/advtaser{pixel_x = 3; pixel_y = -3},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
"acN" = (/obj/structure/rack,/obj/item/clothing/suit/armor/riot,/obj/item/clothing/suit/armor/riot,/obj/item/clothing/suit/armor/riot,/obj/item/clothing/head/helmet/riot,/obj/item/clothing/head/helmet/riot,/obj/item/clothing/head/helmet/riot,/obj/structure/window/reinforced{dir = 1},/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
-"acO" = (/obj/structure/rack,/obj/item/weapon/shield/riot{pixel_x = -3; pixel_y = 3},/obj/item/weapon/shield/riot,/obj/item/weapon/shield/riot{pixel_x = 3; pixel_y = -3},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
+"acO" = (/obj/structure/rack,/obj/item/weapon/gun/energy/ionrifle,/obj/item/clothing/suit/armor/laserproof,/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/ai_monitored/security/armory)
"acP" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/closet/ammunitionlocker,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
"acQ" = (/obj/structure/closet/l3closet/security,/obj/machinery/camera{c_tag = "Brig Equipment Room"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/main)
"acR" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/fancy/carpet,/area/security/hos)
@@ -150,7 +150,7 @@
"acT" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/fancy/carpet,/area/security/hos)
"acU" = (/obj/item/weapon/storage/secure/safe/HoS{pixel_x = 35},/obj/structure/table/wood,/obj/item/device/taperecorder{pixel_y = 0},/obj/item/device/radio/off,/turf/simulated/floor/fancy/carpet,/area/security/hos)
"acV" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/fsmaint)
-"acW" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/auxstarboard)
+"acW" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/auxstarboard)
"acX" = (/obj/structure/cable,/turf/simulated/floor/plating/airless,/area/solar/auxstarboard)
"acY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating/airless,/area/solar/auxport)
"acZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/security/transfer)
@@ -196,8 +196,8 @@
"adN" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/power/apc{dir = 4; name = "Prison Wing APC"; pixel_x = 24; pixel_y = 0; step_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 5},/area/security/prison)
"adO" = (/obj/structure/closet/secure_closet{name = "contraband locker"; req_access_txt = "3"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
"adP" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/ai_monitored/security/armory)
-"adQ" = (/obj/structure/rack,/obj/item/weapon/storage/lockbox/loyalty,/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/ai_monitored/security/armory)
-"adR" = (/obj/structure/rack,/obj/item/weapon/storage/box/chemimp{pixel_x = 4; pixel_y = 3},/obj/item/weapon/storage/box/trackimp,/obj/item/weapon/storage/box/teargas,/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/ai_monitored/security/armory)
+"adQ" = (/obj/structure/rack,/obj/item/weapon/storage/box/chemimp{pixel_x = 4; pixel_y = 3},/obj/item/weapon/storage/box/trackimp,/obj/item/weapon/storage/lockbox/loyalty,/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/ai_monitored/security/armory)
+"adR" = (/obj/structure/rack,/obj/item/weapon/shield/riot{pixel_x = -3; pixel_y = 3},/obj/item/weapon/shield/riot,/obj/item/weapon/shield/riot{pixel_x = 3; pixel_y = -3},/obj/structure/window/reinforced{dir = 1},/obj/item/weapon/storage/box/teargas,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
"adS" = (/obj/structure/rack,/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/box/flashbangs{pixel_x = -2; pixel_y = -2},/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/ai_monitored/security/armory)
"adT" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/riot{pixel_x = 3; pixel_y = 3},/obj/item/weapon/gun/projectile/shotgun/riot,/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/ai_monitored/security/armory)
"adU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor/plasteel,/area/ai_monitored/security/armory)
@@ -214,8 +214,8 @@
"aef" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/shuttle/escape_pod3/station)
"aeg" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/escape_pod3/station)
"aeh" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/escape_pod3/station)
-"aei" = (/obj/structure/cable,/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/auxstarboard)
-"aej" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/auxport)
+"aei" = (/obj/structure/cable,/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/auxstarboard)
+"aej" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/auxport)
"aek" = (/obj/structure/cable,/turf/simulated/floor/plating/airless,/area/solar/auxport)
"ael" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/security/prison)
"aem" = (/obj/machinery/light,/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 10},/area/security/prison)
@@ -273,7 +273,7 @@
"afm" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 5},/area/security/prison)
"afn" = (/obj/machinery/status_display{density = 0; layer = 3; pixel_x = -32; pixel_y = 0},/obj/structure/window/reinforced,/obj/machinery/flasher/portable,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
"afo" = (/obj/machinery/flasher/portable,/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
-"afp" = (/obj/structure/rack,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/item/clothing/suit/armor/bulletproof,/obj/item/clothing/head/helmet/bulletproof,/obj/item/clothing/suit/armor/bulletproof,/obj/item/clothing/head/helmet/bulletproof,/obj/item/clothing/suit/armor/bulletproof,/obj/item/clothing/head/helmet/bulletproof,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
+"afp" = (/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_x = -30; pixel_y = 0},/obj/machinery/camera{c_tag = "Brig Control Room"; dir = 4},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/rack,/obj/item/clothing/mask/gas/sechailer{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/gas/sechailer,/obj/item/clothing/mask/gas/sechailer{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/gas/sechailer{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/gas/sechailer{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/gas/sechailer{pixel_x = -3; pixel_y = -3},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/warden)
"afq" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/laser,/obj/item/weapon/gun/energy/laser{pixel_x = 3; pixel_y = -3},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
"afr" = (/obj/structure/rack,/obj/item/weapon/gun/energy/gun{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun{pixel_x = 3; pixel_y = -3},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
"afs" = (/obj/machinery/door/window/southleft{name = "Armory"; req_access_txt = "3"},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/ai_monitored/security/armory)
@@ -294,13 +294,13 @@
"afH" = (/obj/structure/closet/emcloset,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"afI" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/shuttle/escape_pod3/station)
"afJ" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/shuttle/escape_pod3/station)
-"afK" = (/obj/structure/cable,/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/auxport)
+"afK" = (/obj/structure/cable,/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/auxport)
"afL" = (/obj/machinery/door/airlock/glass_security{name = "Insanity Ward"; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/prison)
"afM" = (/turf/simulated/wall,/area/security/brig)
"afN" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/machinery/door/poddoor/preopen{id = "Prison Gate"; name = "prison blast door"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/security/brig)
"afO" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/preopen{id = "Prison Gate"; name = "prison blast door"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/security/brig)
"afP" = (/turf/simulated/wall/r_wall,/area/security/warden)
-"afQ" = (/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_x = -30; pixel_y = 0},/obj/machinery/camera{c_tag = "Brig Control Room"; dir = 4},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/rack,/obj/item/clothing/mask/gas/sechailer{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/gas/sechailer,/obj/item/clothing/mask/gas/sechailer{pixel_x = -3; pixel_y = -3},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/warden)
+"afQ" = (/obj/structure/rack,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/item/clothing/suit/armor/bulletproof,/obj/item/clothing/head/helmet,/obj/item/clothing/suit/armor/bulletproof,/obj/item/clothing/head/helmet,/obj/item/clothing/suit/armor/bulletproof,/obj/item/clothing/head/helmet,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
"afR" = (/obj/machinery/computer/prisoner,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/warden)
"afS" = (/obj/machinery/computer/security,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/warden)
"afT" = (/obj/machinery/computer/secure_data,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/warden)
@@ -746,7 +746,7 @@
"aor" = (/obj/structure/closet/wardrobe/mixed,/obj/item/clothing/shoes/jackboots,/turf/simulated/floor/plating,/area/maintenance/fsmaint2)
"aos" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/simulated/floor/plating,/area/maintenance/fsmaint2)
"aot" = (/turf/simulated/floor/plating/airless{dir = 4; icon_state = "warnplate"},/area/space)
-"aou" = (/turf/simulated/floor/plating/airless{dir = 8; icon_state = "warnplate"},/area/space)
+"aou" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 32},/turf/space,/area/space)
"aov" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/fpmaint2)
"aow" = (/obj/machinery/atmospherics/unary/portables_connector/visible,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/fpmaint2)
"aox" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/fpmaint2)
@@ -974,8 +974,8 @@
"asL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/maintenance/fpmaint2)
"asM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
"asN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/wall,/area/maintenance/fpmaint2)
-"asO" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/space)
-"asP" = (/obj/item/weapon/paper/crumpled,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/space)
+"asO" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/space)
+"asP" = (/obj/item/weapon/paper/crumpled,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/space)
"asQ" = (/obj/machinery/atmospherics/binary/valve,/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
"asR" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
"asS" = (/obj/structure/grille,/obj/structure/window/fulltile{health = 35},/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
@@ -1085,7 +1085,7 @@
"auS" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
"auT" = (/obj/item/weapon/wrench,/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
"auU" = (/obj/structure/optable{name = "Robotics Operating Table"},/obj/item/weapon/surgical_drapes,/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
-"auV" = (/turf/simulated/floor/airless{icon_state = "damaged5"},/area/space)
+"auV" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/space)
"auW" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
"auX" = (/obj/machinery/light/small{dir = 4},/obj/structure/stool,/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
"auY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
@@ -1382,8 +1382,8 @@
"aAD" = (/obj/item/clothing/under/rank/mailman,/obj/item/clothing/head/mailman,/obj/structure/closet,/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/plating,/area/maintenance/fsmaint2)
"aAE" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/fsmaint2)
"aAF" = (/obj/structure/stool{pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/fsmaint2)
-"aAG" = (/turf/simulated/floor/plating/airless{dir = 2; icon_state = "warnplate"},/area/hallway/secondary/entry)
-"aAH" = (/turf/space,/area/hallway/secondary/entry)
+"aAG" = (/obj/machinery/camera/emp_proof{c_tag = "Singularity North-West"; dir = 2; network = list("Singularity")},/turf/simulated/floor/plating/airless,/area/engine/engineering)
+"aAH" = (/obj/machinery/camera/emp_proof{c_tag = "Singularity North East"; dir = 2; network = list("Singularity")},/turf/simulated/floor/plating/airless,/area/engine/engineering)
"aAI" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry)
"aAJ" = (/turf/simulated/wall,/area/security/checkpoint2)
"aAK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/security/checkpoint2)
@@ -1443,8 +1443,8 @@
"aBM" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint2)
"aBN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/chapel/main)
"aBO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
-"aBP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
-"aBQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
+"aBP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
+"aBQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
"aBR" = (/turf/simulated/wall,/area/chapel/main)
"aBS" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/shuttle/arrival/station)
"aBT" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/arrival/station)
@@ -1678,7 +1678,7 @@
"aGn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
"aGo" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (EAST)"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
"aGp" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "chapel"},/area/chapel/main)
-"aGq" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/turf/simulated/floor/plasteel{dir = 4; icon_state = "chapel"},/area/chapel/main)
+"aGq" = (/obj/structure/table/glass,/turf/simulated/floor/plasteel{dir = 4; icon_state = "chapel"},/area/chapel/main)
"aGr" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/chapel/main)
"aGs" = (/turf/space,/area/shuttle/escape/station)
"aGt" = (/obj/effect/landmark{name = "Marauder Entry"},/turf/space,/area/space)
@@ -1738,7 +1738,7 @@
"aHv" = (/obj/structure/stool/bed/chair/office/dark,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/wood,/area/library)
"aHw" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/wood,/area/library)
"aHx" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/wood,/area/library)
-"aHy" = (/obj/structure/crematorium,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office)
+"aHy" = (/obj/structure/bodycontainer/crematorium,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office)
"aHz" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office)
"aHA" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office)
"aHB" = (/obj/effect/landmark/start{name = "Chaplain"},/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office)
@@ -1746,7 +1746,6 @@
"aHD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office)
"aHE" = (/obj/structure/closet/coffin,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
"aHF" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "chapel"},/area/chapel/main)
-"aHG" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/food/snacks/grown/poppy,/turf/simulated/floor/plasteel{icon_state = "chapel"},/area/chapel/main)
"aHH" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
"aHI" = (/turf/simulated/shuttle/wall{icon_state = "swall2"; dir = 2},/area/shuttle/arrival/station)
"aHJ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry)
@@ -1968,13 +1967,12 @@
"aLR" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/wood,/area/library)
"aLS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/wood,/area/library)
"aLT" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/wood,/area/library)
-"aLU" = (/obj/structure/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office)
+"aLU" = (/obj/structure/bodycontainer/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office)
"aLV" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office)
"aLW" = (/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office)
"aLX" = (/obj/machinery/camera{c_tag = "Chapel North"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
"aLY" = (/turf/simulated/wall,/area/hallway/secondary/exit)
"aLZ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/hallway/secondary/exit)
-"aMa" = (/turf/simulated/floor/plating/airless{dir = 1; icon_state = "warnplate"},/area/hallway/secondary/entry)
"aMb" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel,/area/hallway/secondary/entry)
"aMc" = (/obj/structure/table/wood,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/hallway/secondary/entry)
"aMd" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/chips,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/simulated/floor/fancy/carpet,/area/hallway/secondary/entry)
@@ -2170,7 +2168,7 @@
"aPL" = (/obj/machinery/vending/cola,/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
"aPM" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
"aPN" = (/obj/machinery/vending/coffee,/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
-"aPO" = (/obj/machinery/vending/snack,/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
+"aPO" = (/obj/machinery/vending/clothing,/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
"aPP" = (/obj/machinery/vending/cigarette,/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
"aPQ" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
"aPR" = (/obj/structure/closet/secure_closet/personal,/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
@@ -2261,9 +2259,9 @@
"aRy" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "greencorner"},/area/bridge)
"aRz" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/turf/simulated/floor/plasteel,/area/bridge)
"aRA" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/simulated/floor/plating,/area/crew_quarters/bar)
-"aRB" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
-"aRC" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 3},/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -3; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
-"aRD" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
+"aRB" = (/obj/structure/flora/tree/pine/xmas,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
+"aRC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
+"aRD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/flora/tree/pine/xmas,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aRE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aRF" = (/obj/structure/stool/bed/chair{dir = 4},/obj/effect/landmark/start{name = "Assistant"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aRG" = (/obj/structure/table,/obj/item/weapon/kitchen/utensil/fork,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
@@ -3102,8 +3100,8 @@
"bhH" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/checkpoint/medical)
"bhI" = (/turf/simulated/floor/plasteel,/area/security/checkpoint/medical)
"bhJ" = (/obj/machinery/computer/secure_data,/obj/item/device/radio/intercom{pixel_x = 25},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/checkpoint/medical)
-"bhK" = (/obj/structure/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
-"bhL" = (/obj/structure/morgue,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
+"bhK" = (/obj/structure/bodycontainer/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
+"bhL" = (/obj/structure/bodycontainer/morgue,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
"bhM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
"bhN" = (/turf/simulated/floor/plating,/area/storage/emergency)
"bhO" = (/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/plating,/area/storage/emergency)
@@ -3251,7 +3249,7 @@
"bkA" = (/obj/machinery/power/apc{dir = 8; name = "Medbay Security APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/checkpoint/medical)
"bkB" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel,/area/security/checkpoint/medical)
"bkC" = (/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/checkpoint/medical)
-"bkD" = (/obj/structure/morgue,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
+"bkD" = (/obj/structure/bodycontainer/morgue,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
"bkE" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (EAST)"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
"bkF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
"bkG" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/cable,/turf/simulated/floor/plating,/area/assembly/chargebay)
@@ -3864,7 +3862,7 @@
"bwp" = (/obj/machinery/computer/aifixer,/obj/machinery/requests_console{announcementConsole = 1; department = "Research Director's Desk"; departmentType = 5; name = "Research Director RC"; pixel_x = -2; pixel_y = 30},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/hor)
"bwq" = (/obj/structure/rack,/obj/item/weapon/circuitboard/aicore{pixel_x = -2; pixel_y = 4},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warnwhite"},/area/crew_quarters/hor)
"bwr" = (/obj/machinery/ai_status_display{pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "warnwhite"; dir = 1},/area/crew_quarters/hor)
-"bws" = (/turf/simulated/floor/plasteel{icon_state = "warnwhite"; dir = 5},/area/crew_quarters/hor)
+"bws" = (/obj/structure/flora/tree/festivus,/turf/simulated/floor/plasteel{icon_state = "warnwhite"; dir = 5},/area/crew_quarters/hor)
"bwt" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/toxins/telesci)
"bwu" = (/turf/simulated/wall,/area/toxins/telesci)
"bwv" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/book/manual/wiki/telescience{pixel_y = 8},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitecorner"},/area/toxins/telesci)
@@ -4172,7 +4170,6 @@
"bCl" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
"bCm" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating/airless,/area/space)
"bCn" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/space)
-"bCo" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 32},/turf/simulated/floor/plating/airless{dir = 2; icon_state = "warnplate"},/area/space)
"bCp" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen,/obj/machinery/requests_console{department = "Mining"; departmentType = 0; pixel_x = -30; pixel_y = 0},/obj/machinery/light{dir = 8},/turf/simulated/floor/plasteel,/area/quartermaster/miningdock)
"bCq" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/obj/effect/landmark/start{name = "Shaft Miner"},/turf/simulated/floor/plasteel,/area/quartermaster/miningdock)
"bCr" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/quartermaster/miningdock)
@@ -5426,9 +5423,9 @@
"car" = (/obj/structure/closet/crate,/obj/item/target,/obj/item/target,/obj/item/target,/turf/simulated/floor/plasteel,/area/toxins/misc_lab)
"cas" = (/obj/structure/closet/crate,/obj/item/target/alien,/obj/item/target/alien,/obj/item/target/alien,/turf/simulated/floor/plasteel,/area/toxins/misc_lab)
"cat" = (/obj/structure/closet/crate,/obj/item/target/syndicate,/obj/item/target/syndicate,/obj/item/target/syndicate,/turf/simulated/floor/plasteel,/area/toxins/misc_lab)
-"cau" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/solar{id = "portsolar"; name = "Port Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/port)
+"cau" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/solar{id = "portsolar"; name = "Port Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/port)
"cav" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating/airless,/area/solar/port)
-"caw" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar{id = "portsolar"; name = "Port Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/port)
+"caw" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar{id = "portsolar"; name = "Port Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/port)
"cax" = (/obj/structure/table,/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/floor/plating,/area/maintenance/aft)
"cay" = (/obj/structure/stool,/turf/simulated/floor/plating,/area/maintenance/aft)
"caz" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/plating,/area/maintenance/aft)
@@ -6180,7 +6177,7 @@
"coR" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel,/area/engine/engineering)
"coS" = (/obj/machinery/camera{c_tag = "Engineering MiniSat Access"; dir = 4; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel,/area/engine/engineering)
"coT" = (/obj/structure/transit_tube{tag = "icon-Block"; icon_state = "Block"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/engine/engineering)
-"coU" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "starboardsolar"; name = "Starboard Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/starboard)
+"coU" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "starboardsolar"; name = "Starboard Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/starboard)
"coV" = (/turf/simulated/floor/plating/airless,/area/solar/starboard)
"coW" = (/obj/structure/table,/obj/item/device/taperecorder{pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/aft)
"coX" = (/obj/structure/table,/obj/item/weapon/storage/box/matches,/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/floor/plating,/area/maintenance/aft)
@@ -6206,8 +6203,6 @@
"cpr" = (/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/plating/airless,/area/solar/starboard)
"cps" = (/obj/structure/grille,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating/airless,/area/engine/engineering)
"cpt" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating/airless,/area/engine/engineering)
-"cpu" = (/obj/machinery/camera/emp_proof{c_tag = "Singularity North-West"; dir = 2; network = list("Singularity")},/turf/simulated/floor/plating/airless,/area/space)
-"cpv" = (/obj/machinery/camera/emp_proof{c_tag = "Singularity North East"; dir = 2; network = list("Singularity")},/turf/simulated/floor/plating/airless,/area/space)
"cpw" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless,/area/engine/engineering)
"cpx" = (/obj/structure/grille,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating/airless,/area/engine/engineering)
"cpy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/wall/r_wall,/area/engine/engineering)
@@ -6215,7 +6210,7 @@
"cpA" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel,/area/engine/engineering)
"cpB" = (/obj/machinery/light,/turf/simulated/floor/plasteel,/area/engine/engineering)
"cpC" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/engine/engineering)
-"cpD" = (/obj/structure/cable,/obj/machinery/power/solar{id = "starboardsolar"; name = "Starboard Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/starboard)
+"cpD" = (/obj/structure/cable,/obj/machinery/power/solar{id = "starboardsolar"; name = "Starboard Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/starboard)
"cpE" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/engine/engineering)
"cpF" = (/turf/simulated/floor/plating/airless,/area/engine/engineering)
"cpG" = (/obj/item/weapon/wrench,/turf/simulated/floor/plating/airless,/area/engine/engineering)
@@ -6303,7 +6298,6 @@
"crk" = (/obj/machinery/power/apc{dir = 1; name = "MiniSat External Power APC"; pixel_y = 29},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat)
"crl" = (/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/obj/machinery/camera{c_tag = "MiniSat Entrance"; dir = 2; network = list("MiniSat"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat)
"crm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat)
-"crn" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/turf/simulated/wall/r_wall,/area/space)
"cro" = (/obj/machinery/door/airlock/external{name = "MiniSat External Access"; req_access = null; req_access_txt = "65;13"},/turf/simulated/floor/plating,/area/aisat)
"crp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (WEST)"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat)
"crq" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat)
@@ -6471,7 +6465,7 @@
"cuw" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/fulltile,/turf/simulated/floor/plating,/area/engine/engineering)
"cux" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/simulated/floor/plating/airless,/area/shuttle/laborcamp/station)
"cuy" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/simulated/shuttle/plating,/area/shuttle/mining/station)
-
+
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -6547,17 +6541,17 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHabqabrabqaaHabsaaiabtaasaasabuabvabwaasabxabyabzaasabAabBaaiaafaaaaaaaaaaaaaaaaaaaaaabmabCabDabEabFabnabGabHabIabJabKabnaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafabLaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaabeabeabdabeabeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHabMabNabOabPabQaaiabRabSabRabRabRabTabRabRabRabUabRabRabVaaiaafaaaaafaafaafaafaaaaafablabWabDabXabCabnabYabZacaacaacbabnaaaaafaahaafaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdabdabdabdabdaaaaaaaaaaccaaaaaaaaaabdabdabeabeabeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaafaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacdaceabgacfaaHacgaaiachaasaciabRacjackaclabRacmacnacoabRacpaaiacqacqacqacqacqacqacqacqacqacrabDacsabCaboactacuacvacaacwabnaaaaafacxacyacxaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaafaafaafaaaaaaaccaafaafaaaaafaafaaaaaaabeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaczaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaafaaHacAacBacCaaHacDaaiacEaasacFabRacGackacFabRacHacnacFabRacIaaiacJacKacLacLafpacNacOacPacqacQabDacsabCaboacRacSacTacaacUabnaafaafacxacVacxaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafacWacWacWacWacWaafacXaafacWacWacWacWacWaafabdaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaczaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaafaaHacAacBacCaaHacDaaiacEaasacFabRacGackacFabRacHacnacFabRacIaaiacJacKacLacLafQacNadRacPacqacQabDacsabCaboacRacSacTacaacUabnaafaafacxacVacxaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafacWacWacWacWacWaafacXaafacWacWacWacWacWaafabdaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeabeabeabdabdaaaaaaaaaacYaaaaaaaaaabdabdabeabeabeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHaaHacdacZaaHadaaaiadbadcaddabRadbadeaddabRadbadfaddabRabRaaiacJadgadhadhadhadhadiadjacqadkabDacsabCabnadladmadnadoadpabnabmabladqacyacxacxadraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafadsadtadtadtadtaduadvadwadxadxadxadxadyaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaaaaafaafaaaaaaaaaacYaafaafaaaaafaafaaaaaaabeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadzadAadBadCadDadEadFadGadDadHadIadJadDadKadLadMadNaaiadOadPadQadRadSadTadUadVadWabDadXadYablabnadZabnaeaabnaebabnaecaedablaeeaefaegaegaehaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaeiaeiaeiaeiaeiaafadvaafaeiaeiaeiaeiaeiaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaaaaafaafaaaaaaaaaacYaafaafaaaaafaafaaaaaaabeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadzadAadBadCadDadEadFadGadDadHadIadJadDadKadLadMadNaaiadOadPacOadQadSadTadUadVadWabDadXadYablabnadZabnaeaabnaebabnaecaedablaeeaefaegaegaehaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaeiaeiaeiaeiaeiaafadvaafaeiaeiaeiaeiaeiaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaejaejaejaejaejaafaekaafaejaejaejaejaejaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaelaemaenaeoaepaeqaeoaeraepaeoaeoaeoaepaesaetaeuaevaaiaewaexaeyaezaeAaeBaeCaeDacqaeEaeFaeGablaeHaeIaeJaeKaeLaeMaeJaeNaeOaePaeQaeRaeSaeTaeUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaaaaaaaafaaaaaaaafadvaaaaaaaaaaafaaaaaaaaaabeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaeVaeWaeWaeWaeWaeXaeYaeZafaafaafaafaafbaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcaaiaaiaaiaaiafdafeaffafgafhafiafjafkafkafkabRaflafmaaiafnafoacMafqafrafsaftafuacqafvafwafxablafyafzafAafBafCafDafEafFafGablafHafIaegaegafJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafacWacWacWacWacWaafadvaafacWacWacWacWacWaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafafKafKafKafKafKaafaeYaafafKafKafKafKafKaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaiaaiaddafLadbafMafMafMafMafMafMafMafNafOafPafQafRafSafTafUafVafWafXafPafYafZagaagbagcagdafAageafCagfaggaghabladqacxacxacxadraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafadsadtadtadtadtaduadvadwadxadxadxadxadyaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafafKafKafKafKafKaafaeYaafafKafKafKafKafKaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaiaaiaddafLadbafMafMafMafMafMafMafMafNafOafPafpafRafSafTafUafVafWafXafPafYafZagaagbagcagdafAageafCagfaggaghabladqacxacxacxadraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafadsadtadtadtadtaduadvadwadxadxadxadxadyaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaaaaaaaafaaaaaaaafaeYaaaaaaaaaaafaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaafaaaaaaaaiagiagjagkafMaglagmagnagoagpafMagqagragsagtaguagvagwafVagxafWagyagzagAagBagCagDagEagFagGagHagIagJagKagLagMagNagOagPacxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaeiaeiaeiaeiaeiaafadvaafaeiaeiaeiaeiaeiaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaejaejaejaejaejaafaeYaafaejaejaejaejaejaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaafaafaafaafaafaafaafaaiagQagRagSafMagTagUagVagWagXafMagqagYagZahaahbahcahdaheaheahfahgahhahiahjahkahlahmahnahmahoahpahpahqahrablablaeQahsacxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaaaaaaaafaaaaaaaaaadvaaaaaaaaaaafaaaaaaaaaabeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaeVaeWaeWaeWaeWaeXaeYaeZafaafaafaafaafbaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaiahtagRahtafMagTagUahuagWahvafMahwahxahyahzahAahBahCahDahEahFahGahHahIahJahKahLahMahNahOahPahQahRahSahTahUahVahWahXahYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafacWacWacWacWacWaafadvaafacWacWacWacWacWaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafafKafKafKafKafKaafaeYaafafKafKafKafKafKaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaaaaafaaaaaaaaiahZaiaaibafMaicaidaidaieagXafMaifaigafPaihaiiaijaikaikailaimafPafPainaioadqadqadqablablablablablablablablaipaiqairahYaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaafadsadtadtadtadtaduadvadwadxadxadxadxadyaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaaaaaaaafaaaaaaaaaaeYaaaaaaaaaaafaaaaaaaaaabeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaisaisaisaisaisaagaagaitaitaiuaitaivaiwafMafMafMafMafMafMaixaiyafMaizaiAaiBaiBaiBaiBaiBaiBaiBaiBaiCaiDaiEaiFaiBaigaiwaiGaiHaiIaiJaiKaiLaiMaiNaipaiqairahYaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaeiaeiaeiaeiaeiaafadvaafaeiaeiaeiaeiaeiaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaaaaaaaafaaaaaaaaaaeYaaaaaaaaaaafaaaaaaaaaabeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaitaitaiuaitaivaiwafMafMafMafMafMafMaixaiyafMaizaiAaiBaiBaiBaiBaiBaiBaiBaiBaiCaiDaiEaiFaiBaigaiwaiGaiHaiIaiJaiKaiLaiMaiNaipaiqairahYaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaeiaeiaeiaeiaeiaafadvaafaeiaeiaeiaeiaeiaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaejaejaejaejaejaafaeYaafaejaejaejaejaejaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaafaitaiRaiSaiTaiUaiVaiWaiXaiYaiZajaajbajcajdajeajfajgajhajiajhajhajhajhajhajhajjajhajgajkajiajlajmajnajoajpajqajrajsajtajuaipaiqairacxaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaafaaaaafaafaaaaaaadvaaaaaaaafaaaaaaaafaaaabdaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaeVaeWaeWaeWaeWaeXaeYaeZafaafaafaafaafbaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaiOaiPaiPaiPaiQaaaaafaivajyajzajAajBajCajDajEajFajGajHajIajJajKajLajIajJajMajLajIajJajNajOajOajOajPahxajQajRajSajTajUajVajWajVajVajVajXajYaiLaipaiqairahYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeabeabdaaaaaaaafaaaaaaadvaaaaafaafaafaafabdabdabdaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaafKafKafKafKafKaafaeYaafafKafKafKafKafKaaaabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaajvajwajZajxajvaiuaiuakaakbakcakdakeaiwafMakfafMafMakgakhakiakjakkaklakiakjakkakmaknakjakoakpakjakqakrakjaksaktakuaiwakvakwaiLakxaiLakyakzaiLaipaiqairahYaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaafaaaaaaakAaaaaaaaafaaaaaaaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -6567,9 +6561,9 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafalialiamialialiaaaaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaakCamEamkanOajvaiuaiuaiuamlammamnamoaivaiwaiwaiwaiwampampampamqampampampamrampampampamqampampampamsamsamtamuamuamuamvalZamaalZaiNalZalZambaiNacxaiqamwaeQamxamyamxaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafalFalFalGalFalFaafaaaaaaaafaaaaafaaaaaaaaaaaaaafaafaaaaaaalgamhalgaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaafamzamAamBamCamzamDamDaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaajvanfamkamkbDRamFakGamFakbakHakIakHamGamsamsamsamHamsamsamIamsamsamsamsamsamsamsamJamsamKamsamLamsamsamsamsamsamsamMaiNamNamOamPamQaiNamRaiNamSamTamUamVamVamWacxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafamXamYamZanaamXaafaaaaaaaafaaaaafaaaaafaaaaaaaaaaafalgalgalgamhalgalgalgalgalgalgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamDamDamDamDamDaafaafamzanbancandamzaneamDaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaajvcuxcuxcuxajvaiuaiuanganhanianjankaitanlanlanlanlanlanmannanlanlanlanlanlanlanlanoanpanpanpanqanranpansantanuanvamvanwanxaipaipaipaipaipaipacxanyanzacxanAanBacxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafamXanCanDanEamXaafaaaaaaaafaaaaafaaaaafalgalhalgalhalganFamhamhamhamhamhamhanGalgaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaagaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaamDamDamDamDanHanIanJamDaaaaaaamzanKanLanMamzanNamDaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaoCaoDaoDaoDaoEaaaaafaivaiuanPaitanQanRanRanSanTanSanRanRanUanVanVanVanWanVanVanXanYanZaoaamVaobamVamVamVamVaocamVamVamVamVamVaodaoeaofaogaohaohaoiaojaokaolaomacxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaamXaonaooaopamXaoqaoqaoqaoqaoqalhalhalhalgaoramhanGalgalgamhalgalgalgalgaosalgalgaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaafaaaaaaaaaaouaafaaaaaaaaaaaaaaaaafamDaovaowaoxanNaoyanNamDaozaozamzamzaoAaoBamzanNamDamDaozaozaozamDamDaaaaafaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaafaitaoFakGaitaoGanRaoHaoIaoIaoIaoJanRaoKaoLaoMaoNaoOaoPanVampamsaoQaoRaoSagOagOagOagOagOaoTaoUagOagOagOagOagOaoVaoWaoXaoYaoZapaapbacxapcapdacxaafapeapfapfapgapfapfaphaaaaaaaaaaaaaaaaafalhapialhaaaaoqamXamXapjapkamXaplamhamhamhalgapmamhapnalgamhamhamhapoalgamhalgappapqalgamhapralgaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotapsaptapuaafapvapwapxaouaafaozapyaozaaaaaaaafamDapzapAapBapCapDapEamDapFanNapGapHapIanNanNanNanNanNanNanNanNanNamDaaaapJaaaaaaaaaaaaaaaaaaaafaagaagapKapKapKapKapKaagaagaitaoFapLaitapManRapNapOapPapQapRanRapSanVapTapUapVapWapXampamsamuaoRahsapYapYapYapYapYapZaqaapYapYapYapYapYapYapYapYaqbaqcaqdaqeaqeaqeaqeaqeaqfaqgaqhaqhaqhaqhaqhaqgaqbaaaaaaaaaaaaaafaqiamhalhaaaaoqaqjaqkaqlaqmamhamhamhalgamhalgaqnamhamhalgamhaqoaqpaqqaosamhalgaqraqsalgamhaqtalgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaamDamDamDamDanHanIanJamDaaaaaaamzanKanLanMamzanNamDaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaoCaoDaoDaoDaoEaaaaafaivaiuanPaitanQanRanRanSanTanSanRanRanUanVanVanVanWanVanVanXanYanZaoaamVaobamVamVamVamVaocamVamVamVamVamVaodaoeaofaogaohaohaoiaojaokaolaomacxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaamXaonaooaopamXaoqaoqaoqaoqaoqalhalhalhalgaoramhanGalgalgamhalgalgalgalgaosalgalgaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafamDaovaowaoxanNaoyanNamDaozaozamzamzaoAaoBamzanNamDamDaozaozaozamDamDaaaaafaaaaaaaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaafaitaoFakGaitaoGanRaoHaoIaoIaoIaoJanRaoKaoLaoMaoNaoOaoPanVampamsaoQaoRaoSagOagOagOagOagOaoTaoUagOagOagOagOagOaoVaoWaoXaoYaoZapaapbacxapcapdacxaafapeapfapfapgapfapfaphaaaaaaaaaaaaaaaaafalhapialhaaaaoqamXamXapjapkamXaplamhamhamhalgapmamhapnalgamhamhamhapoalgamhalgappapqalgamhapralgaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapsaptapuaaaapvapwapxaafaafaozapyaozaaaaaaaafamDapzapAapBapCapDapEamDapFanNapGapHapIanNanNanNanNanNanNanNanNanNamDaaaapJaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaafaitaoFapLaitapManRapNapOapPapQapRanRapSanVapTapUapVapWapXampamsamuaoRahsapYapYapYapYapYapZaqaapYapYapYapYapYapYapYapYaqbaqcaqdaqeaqeaqeaqeaqeaqfaqgaqhaqhaqhaqhaqhaqgaqbaaaaaaaaaaaaaafaqiamhalhaaaaoqaqjaqkaqlaqmamhamhamhalgamhalgaqnamhamhalgamhaqoaqpaqqaosamhalgaqraqsalgamhaqtalgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaquaqvaqwaqvaquaqxaqyaqxaquaafaqzanNaozaaaaaaamDamDamDamDamDaqAaqBaqCaqCaqDaqEaqFaqEaqGaqHaqIaqJamDanNamDamDamDanNamDaaaaafaaaaaaaaaaaaaaaaaaaafaaaaafaafaafaafaqKaqKaqKaqKaqKaqKaqKaqKaqLanRaqMapOaqNaqOaqPanRapSaqQaqRaqSaqTaqUapXampamsaqVaoRahsapYaqWaqXaqYaqZaraarbapYarcardareapYarfargarhaqbariarjarkarlarmarnaroarpaqgaqhaqhaqhaqhaqhaqgaqbaafaafaafaafalhalhapialhalhaoqarqamharramhanFamhalgalgarsalgalgartalgalgaqqaruarvamhalgamharwarwarwarwarwarwarwarwarwabsabsabsabsaagabsabsaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarxaqvaryaqvarxaqxarzaqxarxamDaozapyaozaozaozamDarAarBarBarBarBarBarBarCarDamDamDamDamDamDarEamDamDanNarFamDarGanNamDamDamDaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaqKarHarIaqKarJarKarLaqKaqLanRarMarNarOarOarParQarRarSarTarTarUarTapXampamsarVaoRahsapYarWarXarYarZasaasbapYascasdaseapYasdasfasgaqbashasiasjaskaskaskaslasmaqgaqhaqhaqhaqhaqhaqgaqbaqbaqbaaaaaaalhamhamhamhaplaoqasnaqqarramhasoaspasqaosamhamhamhamhasramhamharuassamhastamharwasuasvaswarwasxasyaszarwaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarxasAasBasCarxasDasEasFarxasGanNanNasHasHarFasIasJasKasLasLasLasLasLasLasMasNasOaagasPamDasQasRasSanNasIamDasTanNanNanNaozaaaaaaaaaaaaaaaaafaaaaaaaafaaaaqKaqKaqKasUasUaqKasUasUasUaqKasVanRasWasXasYasZataatbatcatdanVateatfatganVathamsamuaoRahsapYapYapYapYapYatiatjapYatkatlatmapYapYatnatmaqbatoatpatqatratratsattatuatvaqhaqhaqhaqhaqhatwatxatyatzaaaaaaalhamhamhatAamhaoqatBamhatCatDatDatDatDatEatDatFamhamhamhamhamhamhamhamhalgasparwatGatHatHarwatIatJatKarwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -6578,39 +6572,39 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavYavZavZavZawaavZavZavZawbawcawdawbawbawbaweamDawfatUanNawgawhanNawiamDasJawjasLasLasLasLasLasLasNanNawhawkanNanNawlawmawnawoawpawpawpawqawpawrawpawpawsawtawuawvawvawvawvawvawvawwawxawyawzawzawzawzawzawzawzawAawzawBawBawBawBawBawCawDawEawFawGapYapYapYapYapYawHawIawJawKawLawMawNawOawPawQawRawSawTawUawVawVawWawXawYawZaqhaqhaqhaqhaqhaxaaxbaxcatzaaaaaaalgamhamhamhamhamhamhavPatDatDatDatDatDatDatDaxdamhamhamhamhastamhamharraxeaxfaxgaxhaxiaxjatHatHatHaxkarwaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafavYaxlaxmaxlaxnaxmaxmaxoaxlaxmaxpaxqaxraxraxsamDawfatUaxtanNanNaxuaxvamDaxwarBarBarBarBarBarBaxxatUaxyanNamDasGasGaxzapSaqKaxAaxBaxCaxCaxDaxCaxEaxCaxCaxFaxAaxGaxHaxHaxHaxHaxHaxHaxHawlaxIaxJaxKaxLaxMaxNaxOaxPaxQaxRaxSaxTaxUaxVaxWaxXamsaxYacxaeQapYaqWaqXaxZaqZayaaybaycaycaycaydayeayfaygayhauwayiayjaykaylaymaynattayoaypaqhaqhaqhaqhaqhaypaqbaqbaqbalgalgalganFalgalgaosalgalgarralgalgayqalgalgaosalgarravGalgalgaosalgamhavGarraxeayrarwaysavSaytayuayvavSaywarwaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarxavYayxavYayyayzayAayBavYayxavYayCayDaxnayEamDawfawjayFasLasLasNayGayGalgastalgayGayGayGayGayHayIavcauZauZauZauZayJapSarHaxAaaaaafaaaayKaaaayLaaaaafaaaaxAaxGaxHayMayNayOayPayQaxHawlayRaySayTayUayVayWayXayYayYayZazaazaazaazbaxWazcamsazdacxaeQapYarWarYarYazeasaazfazgazhaziazjazkazlazlazmazlaqbaznazoazpazqazrazsaqbaypaqhaqhaqhaqhaqhaypaqbaqtamhaxfaztalgalgalgaqtamhalgaqtarralgazuamhalgazvamhalgazwazxalgazyamhalgaosaosarrazzazAarwazBavSazCazDazCavSazEarwaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafazFaquazGatMavYavYavYavYavYavYatMazGavYaquazHazIamDazJazKazLazMatRazNayGazOazPazQazRazSazTazOayGazUazVazWawpawpawpawpawpazXazYaxAaafazZazZaAaazZaAbazZazZaafaxAaxGaxHaAcaAdaAeaAfaAcaxHaAgaAhaAiaAjaAkaAlaAmaAnaAoaApaAqaArazaazaazaaAsazcamsaAtacxaeQapYapYapYapYapYaAuaAvaAwazlazlazlazlazlaAxaAyaAzazlaqbaqbaqbaqbaAAaABaqbaypaqhaqhaqhaqhaqhaypaqbalgamhaACaztalgaADalgamhamhalgamharralgamhamhalgamhamhalgarraspalgamhamhalgaAEamharraxeaAFarwarwarwarwarwarwarwarwarwabsabsabsabsabsaafaafaaaaaaaaaaaaaafaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaisaisaisaisavYayxavYaAGaAGaAGaAGavYayxavYaAHaquaAIayEaAJaAJaAKaALaAJaAJaAMayGazOazQaANaAOazQazQazOayGaqKaAPaAQaARaARaARaARaARaARaARaASaaaazZaATaAUaAVaAWaAXazZaaaaxAaxGaxHaAcaAYaAZaBaaAcaxHawmazXaxJaBbaBcaBdaBeaBfaAnaBgaBhazaazaaBiazaaAsazcamsazdacxaeQapYaqWaqXaBjaqZayaaBkazlaBlaAyaBmaBmazlaAxaBnaAzazlaBoaBpaBqaBraBsaABaafaBtaBuaBuaBuaBuaBuaBvaaaalgamhaBwaBxalgalgalgalgalgalgaByaBzalgalgalgalgalgalgaBAaBBaBCaBDaBDaBDaBEaBFaBGaBHaBIaBJaBKaBLaBMaBNaBOaBPaBQaBRaBRaBRaisaisaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazFaquazGatMavYavYavYavYavYavYatMazGavYaquazHazIamDazJazKazLazMatRazNayGazOazPazQazRazSazTazOayGazUazVazWawpawpawpawpawpazXazYaxAaafazZazZaAaazZaAbazZazZaafaxAaxGaxHaAcaAdaAeaAfaAcaxHaAgaAhaAiaAjaAkaAlaAmaAnaAoaApaAqaArazaazaazaaAsazcamsaAtacxaeQapYapYapYapYapYaAuaAvaAwazlazlazlazlazlaAxaAyaAzazlaqbaqbaqbaqbaAAaABaqbaypaqhaqhaqhaqhaqhaypaqbalgamhaACaztalgaADalgamhamhalgamharralgamhamhalgamhamhalgarraspalgamhamhalgaAEamharraxeaAFarwarwarwarwarwarwarwarwarwabsabsabsabsabsaafaafaaaaaaaaaaaaaafaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafavYayxavYaaaaaaaafaaaavYayxavYaaaaquaAIayEaAJaAJaAKaALaAJaAJaAMayGazOazQaANaAOazQazQazOayGaqKaAPaAQaARaARaARaARaARaARaARaASaaaazZaATaAUaAVaAWaAXazZaaaaxAaxGaxHaAcaAYaAZaBaaAcaxHawmazXaxJaBbaBcaBdaBeaBfaAnaBgaBhazaazaaBiazaaAsazcamsazdacxaeQapYaqWaqXaBjaqZayaaBkazlaBlaAyaBmaBmazlaAxaBnaAzazlaBoaBpaBqaBraBsaABaafaBtaBuaBuaBuaBuaBuaBvaaaalgamhaBwaBxalgalgalgalgalgalgaByaBzalgalgalgalgalgalgaBAaBBaBCaBDaBDaBDaBEaBFaBGaBHaBIaBJaBKaBLaBMaBNaBOaBQaBPaBRaBRaBRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaBSaBTaBUaBTaBVaBVaBVaBVaBTaBUaBWaBXaquaBYaBZaCaaCbaCcaCdaCeaCfaCgayGazOazQazQaChazQazQazOayGaCiaCjaCkaClaCmaCnaCoaCpaCqaCraASaafazZaCsaCtaCuaCvaCwazZaafaxAaxGaxHaCxaCyaCzaCAaCBaxHapSaCCaxJaCDaCEaCFazaaCFaCGaCHaCIaCJaAsaxWaCKaxWazcamsazdacxaeQapYarWarXarYaCLasaaCMazlaCNaAyaAyaAyazmaCOaCPaCQazlaCRaCSaCTaCUaCVaABaaaaafaaaaafaaaaafaaaaafaaaalgavGaCWaBGaCXaCYalgasoamhavGarramhalgaaaalgaxfaBGaBGaCZaDaaDbaDbaDbaDbaDbaDcaDdaDeaDfaDgaDgaDgaDhaDiaDjaDkaDlaDmaDnaDoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBSaBTaBTaDpaDqaDraDsaDtaDuaDvaDwaDxaDraDyaDzavYaBYaDAaAJaDBaDCaDDaDEaDFaDGayGaDHazQazQazQazQaDIaDJaDKaDLaDMaDNaCqaCqaCqaCqaCqaCqaCqaASaaaazZaDOaDPaDQaDRaDSazZaaaaxAaxGaxHaDTaDUaDVaDWaDXaxHapSaDYaxJaxJaDZaBhaEaaBhaEbaxJaxJaEcaEdaxWaEeaxWazcamsazdacxaeQapYapYapYapYapYaEfaEgaEhaEiaEjaEkaEkaEkaElazlaEmazlaEnaEoaEpaBraBsaABalgalgalgalgalgalgalgalgalgalgalgalgalgaEqalgalgalgalgaxfaBHaEraEsaEtaEsaEuaEvaEwaEwaExaEyaEyaEyaEyaEyaEzaEAaEBaEBaEBaEBaEBaEBaBRaECaEDaEEaBRaBRaBRapKapKaagaafaafaafaafaafaafaagaisaisaisaisaisaisaisaisaisaisaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBVaEFaEFaEGaDraEHaDraEHaDraEHaDraEHaDraDyaEIavYaBYaEJaAJaEKaELaEMaENaEOaEPayGaEQazQaERaESaESaETaEUaEVaEWaEXaEYaEZaEZaEZaEZaEZaFaaFbaASaafazZaFcaDPaFdaFeaFfazZaafaxAaFgaFhaFiaFjaDVaFkaFlaFmaFnaFoaxWaFpaFqaEcaEcaEcaFraFsaxWaFtaFtaxWaEcaxWaFuanYaFvacxaeQaeQaeQaeQaeQamSawHaFwaFxaFyaFzaFxaFAaFxaFBaFxaFCazlaFDaFEaFFaBraFGaFHaFIaFJaFKaFLaFMaFNaFNaFNaFNaFOaFPaFNaFNaFQaFRaFSaFTaBDaFUaFVaFWaFXaFYaFXaFZaGaaEyaEyaGbaEyaGcaGdaGeaEyaEBaGfaEBaGgaGhaGiaGjaGkaGlaGmaGnaGoaGpaGqaGraaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBVaDraDraGuaDraEHaDraEHaGvaEHaDraEHaDraDyaEIavYaBYaGwaAJaAJaGxaGyaGzaGAaAJayGayGayGayGaGBazQazQaGCayGaGDaGEaCqaCqaCqaGFaCqaCqaCqaGGaASaaaazZazZaGHaGIaGHazZazZaaaaxAaxGaxHaGJaGKaGLaGMaGNaxHapSaGOaxWaGPaFqaEcaEcaEcaFraGQaxWaAsaAsaxWaCKaxWaGRaGSaGTacxamSacxacxacxacxacxaGUaGVazlaGWaAyazlaGXazlaGYazlaGZazlaHaaHbaFFaBraHcaHdaHeaHfaHgaHgaHhaHgaHgaHiaHgaHjaHkauHauHauHauHaHlaHmaHnaHoaHpamhaHqaHqaHqaHqaHraEyaHsaHtaHuaHvaHwaHxaEyaHyaHzaEBaHAaHBaHCaHDaGkaHEaECaEDaDlaHFaHGaGraaaaaaaaaaaaaaaaaaaaaaafaaaaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBVaHHaHHaHIaDraEHaDraEHaDraEHaDraEHaDraDyaEIavYaHJaHKaHLaHMaHMaHNaHOaxmaHPaHQaHRaHSayGaHTazQazQaHUayGaHVaHWaCqaHXaHYaHZaIaaIbaIcaIdaASaaaaafaaaaIeaIfaIeaaaaafaaaaxAaxGaxHaDVaIgaIhaIiaIjaxHapSasUaxWaIkaIlaEcaEcaEcaImaInaxWaaaaaaaIoaIpaIqaIraIsaItaIuaIvaIoaaaaaaaIwaIxaIyaIzazlaIAaAyaAyaAyaCPaAyaAyaAyazlaBraIBaICaBraBraABaIDaIEaIEaIFaIGaIHaIEaIIaIEaIJaIKaIJaILaIJaIMaHqaHqaINaHqaHqaHqaHqaIOaIPaHqaHraEyaHtaIQaIRaISaITaIUaEyaIVaIWaIXaIYaIZaJaaJbaJcaJdaBOaJeaGoaGpaJfaGraaaaaaaaaaaaaaaaaaaaaaafaaaaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBSaBTaBTaDpaDqaDraDsaDtaDuaDvaDwaDxaDraDyaDzavYaBYaDAaAJaDBaDCaDDaDEaDFaDGayGaDHazQazQazQazQaDIaDJaDKaDLaDMaDNaCqaCqaCqaCqaCqaCqaCqaASaaaazZaDOaDPaDQaDRaDSazZaaaaxAaxGaxHaDTaDUaDVaDWaDXaxHapSaDYaxJaxJaDZaBhaEaaBhaEbaxJaxJaEcaEdaxWaEeaxWazcamsazdacxaeQapYapYapYapYapYaEfaEgaEhaEiaEjaEkaEkaEkaElazlaEmazlaEnaEoaEpaBraBsaABalgalgalgalgalgalgalgalgalgalgalgalgalgaEqalgalgalgalgaxfaBHaEraEsaEtaEsaEuaEvaEwaEwaExaEyaEyaEyaEyaEyaEzaEAaEBaEBaEBaEBaEBaEBaBRaECaEDaEEaBRaBRaBRaafaafaafaafaafaaaaafaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBVaEFaEFaEGaDraEHaDraEHaDraEHaDraEHaDraDyaEIavYaBYaEJaAJaEKaELaEMaENaEOaEPayGaEQazQaERaESaESaETaEUaEVaEWaEXaEYaEZaEZaEZaEZaEZaFaaFbaASaafazZaFcaDPaFdaFeaFfazZaafaxAaFgaFhaFiaFjaDVaFkaFlaFmaFnaFoaxWaFpaFqaEcaEcaEcaFraFsaxWaFtaFtaxWaEcaxWaFuanYaFvacxaeQaeQaeQaeQaeQamSawHaFwaFxaFyaFzaFxaFAaFxaFBaFxaFCazlaFDaFEaFFaBraFGaFHaFIaFJaFKaFLaFMaFNaFNaFNaFNaFOaFPaFNaFNaFQaFRaFSaFTaBDaFUaFVaFWaFXaFYaFXaFZaGaaEyaEyaGbaEyaGcaGdaGeaEyaEBaGfaEBaGgaGhaGiaGjaGkaGlaGmaGnaGoaGpaJfaGraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBVaDraDraGuaDraEHaDraEHaGvaEHaDraEHaDraDyaEIavYaBYaGwaAJaAJaGxaGyaGzaGAaAJayGayGayGayGaGBazQazQaGCayGaGDaGEaCqaCqaCqaGFaCqaCqaCqaGGaASaaaazZazZaGHaGIaGHazZazZaaaaxAaxGaxHaGJaGKaGLaGMaGNaxHapSaGOaxWaGPaFqaEcaEcaEcaFraGQaxWaAsaAsaxWaCKaxWaGRaGSaGTacxamSacxacxacxacxacxaGUaGVazlaGWaAyazlaGXazlaGYazlaGZazlaHaaHbaFFaBraHcaHdaHeaHfaHgaHgaHhaHgaHgaHiaHgaHjaHkauHauHauHauHaHlaHmaHnaHoaHpamhaHqaHqaHqaHqaHraEyaHsaHtaHuaHvaHwaHxaEyaHyaHzaEBaHAaHBaHCaHDaGkaHEaECaEDaDlaHFaKsaGraafaafaafaaaaafaaaaaaaaaaaaaafaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBVaHHaHHaHIaDraEHaDraEHaDraEHaDraEHaDraDyaEIavYaHJaHKaHLaHMaHMaHNaHOaxmaHPaHQaHRaHSayGaHTazQazQaHUayGaHVaHWaCqaHXaHYaHZaIaaIbaIcaIdaASaaaaafaaaaIeaIfaIeaaaaafaaaaxAaxGaxHaDVaIgaIhaIiaIjaxHapSasUaxWaIkaIlaEcaEcaEcaImaInaxWaaaaaaaIoaIpaIqaIraIsaItaIuaIvaIoaaaaaaaIwaIxaIyaIzazlaIAaAyaAyaAyaCPaAyaAyaAyazlaBraIBaICaBraBraABaIDaIEaIEaIFaIGaIHaIEaIIaIEaIJaIKaIJaILaIJaIMaHqaHqaINaHqaHqaHqaHqaIOaIPaHqaHraEyaHtaIQaIRaISaITaIUaEyaIVaIWaIXaIYaIZaJaaJbaJcaJdaBOaJeaGoaGpaGqaGraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJgaBTaBTaDpaDqaDraDraDraDraDraDraJhaDraDyaJiavYaBYaxmaJjaJkaJkaJkaJkaJkaJkaJkaJlaxmayGaJmaJnaJmayGayGaJoaJpaJqaARaARaARaARaJqaJraJsaASaJtaJuaJuaJvaJwaJvaJuaJuaJxaxAaJyaxHaJzaxHaJAaJAaJBaxHaJCaJDaxWaxWaxWaAsaEaaAsaxWaxWaxWaIoaIoaIoaJEaIsaIsaIsaIsaIsaJFaIoaIoaIoaIwaJGaIyaJHazlazlazlazlazlazlazlazlazlazlaJIaJJaJKaJLaJMaJNaJOaJPaIEaJQaIGaJRaJSaJRaIJaJTaJUaIJaJVaIJaJWaJXaJYaJZaKaaKaaKaaKbaKcaKdaHqaHraEyaKeaIQaKfaISaITaKgaEyaKhaKiaKjaKkaKlaKmaKnaKoaKpaKqaKraDlaHFaKsaGraaaaafaafaafaafaafaafaafaaaaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJgaBTaBUaBTaBVaBVaBVaBVaBTaBUaKtaKuaquaKvaxmaKwaKxaKxaKyaKxaKzarxaKAaKBaxmaKCaKDaKEaKEaKFaKEaKGaKHaKEaKEaKEaKEaKEaKEaKEaKIaKJaKKaKLaKMaKMaKNaKOaKMaKMaKMaKPaKQaKRaKNaKMaKMaKMaKSaGSaKTaIsaKUaKVaItaIuaIuaIuaIraIsaIsaKWaIsaKXaKYaKZaLaaLbaLcaLdaLeaIsaIsaKWaLfaLgaLhaLiaLjaLkaLlaLmaIsaLnaIsaBraLoaLpaLqaJJaLraLsaLtaLuaLvaLwaIEaLxaLyaLzaLAaLBaIJaLCaJUaLDaLEaIJaHqaLFaLGaLHaLIaLJaLKaLLaLMaLNaHqaHraEyaLOaLPaLQaLRaLSaLTaEyaLUaLVaEBaLWaLWaLWaLWaEBaLXaDjaKraDlaBRaBRaBRaLYaLYaLYaLZaLZaLZaafaafaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagapKapKapKapKavYayxavYaMaaMaaMaaMaavYayxavYaAHaquaAIaMbaKwaMcaMdaMeaMeaMfarxaMgaKBaMhaMiaKDaMjaMkaMlaMmaMnaMoaKEaKEaKEaKEaKEaKEaKEaKIaKEaKDaKEaKEaKEaMpaMqaMraMraMraMraMsaMraMtaMraMraMuaKDaGSaIsaIsaIsaIsaIsaIsaIsaIsaIsaIsaIsaKWaIsaMvaMwaMxaMyaMzaMAaMBaMCaIsaIsaKWaIsaIsaIsaIsaIsaIsaIsaIsaIsaMDaIsaBraLqaLqaLqaMEaMFaMGaMHaMIaMJaMKaIEaMLaIGaMMaIEaIEaIJaMNaJUaMOaLEaMPaIJaHqaHqaHqaHqaHqaHqaMQaMRaVmaHqaHraEyaMTaHtaMUaMVaHtaMWaEyaEBaEBaEBaEBaEBaEBaMXaEBaECaECaEDaDlaMYaMZaBRaNaaNbaNcaNdaNeaLZaafaaaaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafazFaquavYatMavYavYavYavYavYavYatMavYavYaquaBYaxmaKwaNfaNgaMeaMeaMfarxaNhaKBaxmaMiaKDaKEaNiaNjaNjaNjaNkaNlaNmaNjaNnaNjaNjaNjaNoaNjaNpaNjaNjaNjaNqaNraNsaNtaNtaNuaNvaNwaNxaNyaKEaNzaKDaGSaIsaNAaIsaNBaNBaNBaNBaNBaNBaNBaNBaNCaNBaNBaNBaNBaNBaNBaNBaNBaNBaNBaNBaNDaNBaNBaNBaNBaNBaNBaNBaNBaIsaIsaIsaBraNEaNEaNEaNEaNEaNFaNGaJNaLvaNHaIEaNIaNJaNKaIEaNLaIJaNMaNNaNOaLEaNPaIJaHqaNQaNRaNSaNTaNSaNUaNVaNWaHqaHraEyaNXaNXaNYaNZaOaaOaaObaEyaOcaOdaOeaBRaOfaOgaOhaECaECaOiaOjaBRaOkaBRaOlaOmaOnaOnaOoaLZaLZaLZaLZaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafavYayxavYaafaafaaaaaaavYayxavYaafaquaAIaMbaKwaMcaMdaMeaMeaMfarxaMgaKBaMhaMiaKDaMjaMkaMlaMmaMnaMoaKEaKEaKEaKEaKEaKEaKEaKIaKEaKDaKEaKEaKEaMpaMqaMraMraMraMraMsaMraMtaMraMraMuaKDaGSaIsaIsaIsaIsaIsaIsaIsaIsaIsaIsaIsaKWaIsaMvaMwaMxaMyaMzaMAaMBaMCaIsaIsaKWaIsaIsaIsaIsaIsaIsaIsaIsaIsaMDaIsaBraLqaLqaLqaMEaMFaMGaMHaMIaMJaMKaIEaMLaIGaMMaIEaIEaIJaMNaJUaMOaLEaMPaIJaHqaHqaHqaHqaHqaHqaMQaMRaVmaHqaHraEyaMTaHtaMUaMVaHtaMWaEyaEBaEBaEBaEBaEBaEBaMXaEBaECaRBaEDaDlaMYaMZaBRaNaaNbaNcaNdaNeaLZaafaaaaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafazFaquavYatMavYavYavYavYavYavYatMavYavYaquaBYaxmaKwaNfaNgaMeaMeaMfarxaNhaKBaxmaMiaKDaKEaNiaNjaNjaNjaNkaNlaNmaNjaNnaNjaNjaNjaNoaNjaNpaNjaNjaNjaNqaNraNsaNtaNtaNuaNvaNwaNxaNyaKEaNzaKDaGSaIsaNAaIsaNBaNBaNBaNBaNBaNBaNBaNBaNCaNBaNBaNBaNBaNBaNBaNBaNBaNBaNBaNBaNDaNBaNBaNBaNBaNBaNBaNBaNBaIsaIsaIsaBraNEaNEaNEaNEaNEaNFaNGaJNaLvaNHaIEaNIaNJaNKaIEaNLaIJaNMaNNaNOaLEaNPaIJaHqaNQaNRaNSaNTaNSaNUaNVaNWaHqaHraEyaNXaNXaNYaNZaOaaOaaObaEyaOcaOdaOeaBRaOfaOgaOhaECaECaOiaOjaBRaOkaBRaOlaOmaOnaOnaOoaLZaLZaLZaLZaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarxavYayxavYaOpaOqaOraOsavYayxavYaOtaOuaOvaxmaKwaOwaOwaKyaOwaKzarxaOxaKBaxmaOyaOyaOyaOzaOyaOAaOAaOAaOAaOAaOBaOCaOAaODaOAaOAaOAaOEaOFaOGaOFaOHaOIaOJaKEaKEaOKaOLaOMaONaKHaKEaNzaOOaOOaIsaIsaItaIoaIoaIoaIoaIoaIoaIoaIoaOPaOQaORaOSaORaORaORaOTaORaOUaORaOVaOPaIoaIoaIoaIoaIoaIoaIoaIoaIraIsaIsaIEaOWaOXaOYaOYaOYaOYaOYaJNaOZaOYaIEaPaaPbaPcaIJaIJaIJaPdaPeaIJaIJaIJaIJaHqaNSaPfaPgaPgaPgaPhaPiaNSaHqaHraEyaPjaHtaNYaNZaHtaHtaPkaEyaPlaPmaPnaBRaECaPoaPpaPqaPqaPraPsaPtaPuaBRaPvaPwaOnaPxaOnaPyaPzaPzaPyaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafavYaPAaxmavZaOvaxmaxmaPBavZaxmaPAaOvaxmaxmaxmaPCaPDaPDaPDaPDaPDaPDaPDaPEaxmaOyaPFaOyaPGaOAaPHaPIaPJaPKaPLaPIaPMaPNaPOaPPaPQaPRaOEaPSaPTaPUaOHaPVaOJaOJaPWaOJaOJaOOaPXaPYaPZaQaaOOaOOaQbaIsaItaIoaaaaaaaaaaaaaaaaaaaaaaOPaQcaQdaQeaQfaQgaQhaQiaQjaQkaQlaQmaOPaaaaaaaaaaaaaaaaaaaaaaIoaIraIsaQnaIEaQoaOYaQpaOYaOYaOYaQqaJNaOZaQraQsaJNaQtaQuaIJaQvaQwaQxaQyaQzaQAaQBaQCaIJaNSaQDaQEaQEaQEaQFaQGaNSaHqaQHaEyaQIaQIaNYaNZaQJaQJaQKaEyaEyaQLaEyaBRaQMaOgaOhaQNaQNaOiaOjaBRaBRaBRaLZaQOaQPaQQaLZaLZaLZaLZaQRaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaavYaQSaQTaQTaQTaQTaQTaQTaQTaQTaQSaQTaQUaxmaxmaMiaxmaQVaQWaxmaQXaQYaxmaQZaRaaOyaRbaOyaPGaOAaRcaPIaRdaPIaPIaPIaPMaReaPIaPIaPIaPRaOEaRfaPTaPTaOHaPVaOJaRgaRhaRhaRiaOOaRjaRkaRlaRmaRnaRoaIsaIsaItaIoaaaaaaaaaaaaaOPaOPaOPaOPaRpaRqaRraRsaRtaRuaRvaRwaRxaRyaRzaOPaOPaOPaOPaaaaaaaaaaaaaIoaIraIsaIsaRAaOYaRBaRCaRDaREaRFaRGaRHaRIaRJaRKaRLaRMaRNaROaRPaRPaRQaRRaRSaRSaRTaRPaRUaRVaRWaRXaRYaRZaSaaQGaNSaHqaHraEyaHtaHtaNYaNZaHtaHtaHtaSbaScaHtaSdaBRaSeaSfaSgaQNaQNaShaSiaSjaBRaSkaSlaPwaOnaSmaOnaSnaPzaPzaSoaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaisaisaquaquavYavYavYavYavYavYavYavYaquaquarxaMiaSpaSqaSqaSraSqaSqaSqaSsaSqaSqaSqaOyaRbaStaSuaOAaSvaPIaSwaSxaSyaSzaSAaSxaPIaPIaPIaSBaOEaSCaSDaSEaOHaPVaOJaSFaSGaSHaSIaOOaSJaSKaSLaSMaSNaRoaIsaIsaItaIoaIoaIwaSOaOPaOPaSPaSQaSRaSSaSTaSUaSVaSWaSUaSXaSUaSUaSYaSZaTaaTbaTcaOPaOPaSOaIwaIoaIoaIraIsaIsaIEaTdaJNaTeaOYaOYaOYaTfaOYaTgaThaTiaTjaTkaTlaTmaTnaToaTpaTqaTraTsaTtaTnaTuaTvaTwaTxaTyaTzaTxaTAaTBaHqaHraEyaTCaTCaNYaNZaTDaHtaHtaTEaHtaTFaTGaBRaTHaTIaTJaQNaQNaTKaTLaECaBRaTMaOnaPwaOnaSmaTNaLZaLZaLZaLZaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafavYaPAaxmavZaOvaxmaxmaPBavZaxmaPAaOvaxmaxmaxmaPCaPDaPDaPDaPDaPDaPDaPDaPEaxmaOyaPFaOyaPGaOAaPHaPIaPJaPKaPLaPIaPMaPNaPOaPPaPQaPRaOEaPSaPTaPUaOHaPVaOJaOJaPWaOJaOJaOOaPXaPYaPZaQaaOOaOOaQbaIsaItaIoaaaaaaaaaaaaaaaaaaaaaaOPaQcaQdaQeaQfaQgaQhaQiaQjaQkaQlaQmaOPaaaaaaaaaaaaaaaaaaaaaaIoaIraIsaQnaIEaQoaOYaOYaOYaOYaOYaQqaJNaOZaQraQsaJNaQtaQuaIJaQvaQwaQxaQyaQzaQAaQBaQCaIJaNSaQDaQEaQEaQEaQFaQGaNSaHqaQHaEyaQIaQIaNYaNZaQJaQJaQKaEyaEyaQLaEyaBRaQMaOgaOhaQNaQNaOiaOjaBRaBRaBRaLZaQOaQPaQQaLZaLZaLZaLZaQRaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaavYaQSaQTaQTaQTaQTaQTaQTaQTaQTaQSaQTaQUaxmaxmaMiaxmaQVaQWaxmaQXaQYaxmaQZaRaaOyaRbaOyaPGaOAaRcaPIaRdaPIaPIaPIaPMaReaPIaPIaPIaPRaOEaRfaPTaPTaOHaPVaOJaRgaRhaRhaRiaOOaRjaRkaRlaRmaRnaRoaIsaIsaItaIoaaaaaaaaaaaaaOPaOPaOPaOPaRpaRqaRraRsaRtaRuaRvaRwaRxaRyaRzaOPaOPaOPaOPaaaaaaaaaaaaaIoaIraIsaIsaRAaOYaRCaRDaREaREaRFaRGaRHaRIaRJaRKaRLaRMaRNaROaRPaRPaRQaRRaRSaRSaRTaRPaRUaRVaRWaRXaRYaRZaSaaQGaNSaHqaHraEyaHtaHtaNYaNZaHtaHtaHtaSbaScaHtaSdaBRaSeaSfaSgaQNaQNaShaSiaSjaBRaSkaSlaPwaOnaSmaOnaSnaPzaPzaSoaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaquaquavYavYavYavYavYavYavYavYaquaquarxaMiaSpaSqaSqaSraSqaSqaSqaSsaSqaSqaSqaOyaRbaStaSuaOAaSvaPIaSwaSxaSyaSzaSAaSxaPIaPIaPIaSBaOEaSCaSDaSEaOHaPVaOJaSFaSGaSHaSIaOOaSJaSKaSLaSMaSNaRoaIsaIsaItaIoaIoaIwaSOaOPaOPaSPaSQaSRaSSaSTaSUaSVaSWaSUaSXaSUaSUaSYaSZaTaaTbaTcaOPaOPaSOaIwaIoaIoaIraIsaIsaIEaTdaJNaOYaOYaOYaOYaTfaOYaTgaThaTiaTjaTkaTlaTmaTnaToaTpaTqaTraTsaTtaTnaTuaTvaTwaTxaTyaTzaTxaTAaTBaHqaHraEyaTCaTCaNYaNZaTDaHtaHtaTEaHtaTFaTGaBRaTHaTIaTJaQNaQNaTKaTLaECaBRaTMaOnaPwaOnaSmaTNaLZaLZaLZaLZaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOavYayyaxnaTPaSqaTQaTRaTSaTTaTSaTUaTQaTSaSqaRbaRbaTVaTWaOAaTXaPIaTYaTZaUaaUbaUcaSxaPIaPIaPIaPRaOEaOEaOEaOEaOHaPVaOJaOJaOJaOJaOJaOOaUdaRlaRlaRlaRlaRoaIsaIsaItaIuaIuaUeaUfaUgaOPaUhaUiaUjaUkaUlaUkaUmaUnaUoaUpaUqaUraUsaUqaUtaUuaUvaOPaUwaUfaUxaUyaIuaIraIsaIsaRAaOYaJNaQpaOYaUzaOYaQpaOYaOZaQraUAaOYaOYaOYaUBaUCaUDaUEaUFaUGaUHaUIaUJaIJaUKaULaUMaQEaUNaQEaUOaUPaHqaUQaEyaEyaEyaNYaNZaURaUSaHtaUTaUUaKfaUVaBRaECaUWaSgaQNaQNaShaUXaUYaBRaUZaOnaPwaVaaVbaVcaLZaaaaafaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaVdavYavYaBYaVeaVfaVgaVhaViaVjaVkaVlaTQaTSaSqaVnaYDaVoaOyaOAaVpaVqaVraVsaVraVtaVuaVtaVtaVtaVvaVwaOAaVxaVyaVzaVAaVBaVCaVDaVEaOyaVFaOOaVGaVHaVIaVJaVJaRoaIsaIsaIsaIsaIsaVKaVLaVMaVNaVOaVPaVQaVRaVSaVTaVUaVVaVWaVXaVYaVZaWaaWbaVQaWcaWdaWeaWfaWgaWhaWiaWjaWkaIsaIsaIEaWlaWmaWnaWoaOYaWpaWqaWoaOZaQraWraWraWsaWtaIJaUCaUCaUCaWuaUCaUCaUIaWvaIJaNSaULaQEaQEaUNaQEaWwaNSaHqaWxaWyaWzaWAaWBaWCaWDaWDaWDaWDaWDaWDaWEaWFaWGaWGaWGaWGaWGaWHaWIaWJaWFaWKaWLaWMaWNaOnaWOaLZaafaafaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaWPatMaWPaxmaxmaSqaWQaWRaWSaWSaWSaWTaWUaWVaSqaWWaRbaVoaWXaWXaWXaWYaWZaWXaXaaXbaXcaXdaXeaXeaXfaXgaOAaXhaXiaXjaXkaXlaXmaXmaXnaXoaXoaXpaXpaXpaXpaXpaXqaOOaIsaIsaXraXsaXtaXuaXvaXwaOPaXxaXyaXzaXAaXBaXCaXCaXDaXEaXFaXGaXHaXIaXJaXzaXKaXxaOPaXwaXvaXLaXMaXsaXNaIsaIsaRAaOYaXOaTeaOYaOYaOYaTeaOYaOZaOYaQraQraOYaOYaXPaXQaXRaUCaUCaUCaUCaXSaXTaIJaXUaXVaQEaXWaXXaXYaXVaXZaHqaYaaYbaYbaYcaYdaYeaYfaYgaYhaYfaYfaYfaYiaYjaYkaYlaYlaYlaYlaYlaYmaYnaYjaYoaYpaYqaYraOnaYsaLZaaaaafaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOavYavYavYaBYaxmaYtaTQaYuaWSaWSaWSaYvaYwaTQaSqaYxaYyaVoaWXaYzaYAaYBaYCaWXaYFaYEbeSaOAaYGaYHaYIaSwaOAaYJaYKaYLaYLaYLaYLaYMaYLaYLaYNaYOaYOaYOaYPaYOaYQaYRaKWaKWaYSaYTaYTaYTaYTaYTaYTaYUaYVaYWaYXaXDaYYaYZaYZaZaaZbaYZaYYaXFaZcaZdaZeaZfaZdaZdaZdaZdaZdaZdaZgaKWaKWaIEaZhaZiaZjaZkaOYaOYaOYaZlaZmaZnaOYaZoaZpaZqaIJaIJaIJaZraZsaZsaZsaIJaIJaIJaZtaQEaQEaMSaZuaZvaZwaMSaHqaZxaYbaZyaEyaZzaZAaZBaZCaZDaZEaTEaUSaZFaBRaZGaECaZHaQNaQNaZHaECaZIaBRaZJaZKaZLaSmaOnaOoaLZaLZaLZaLZaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOavYaZMaOvaZNaSqaTSaZOaTSaTQaZPaZQaZRaTSaSqaZSaZTaZUaWXaWXaWXaZVaZWaWXaZXaZYaZZaOAaYGaYHaYIaSwaOAaYJaYKaYLbaababbabbabbacaYLbadbaebafbagaYRaYRaYRaYRaIsaIsbahbaibajbakbalbambanbaobapbaqbarbasaYZaYZbatbaubataYZaYZbavbawbaxbaybazbaAbaBbaCbaDbaEaZdaXNaIsaIsaIEaIEaIEaIEaIEbaFaRAbaFbaGbaHaIEaIEaIEaIEaIEbaIbaJbaJbaJbaJbaJbaJbaKbaJbaIaMSbaLbaLaMSbaMaYbaYbaYbbaIaZxaYbaZyaEyaEyaEybaNbaObaNaEybaNaEyaEyaBRaBRbaPbaPbaPbaPbaPbaPaBRaBRbaQaOnbaRaSmaOnaOnaSoaPzaPzaSoaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagapKapKaquaquavYavYavYavYavYavYavYavYaquaquarxaQVaxmaSqaSqaSraSqaSqaSqaSsaSqaSqaSqbaSbaTbaUaWXbaVbaWaZVbaXaWXbaYbaZbaYaOAaYGaYHaYIaSwaOAaYJaYKaYLbabbbabbababbbaaYLbadbbbbbcbbcbbdbbebbfaYRbbgaIsaXrbbhbbibbjbbkbblbblbbmbbnbbobarbbpaYZaYZbatbbqbataYZaYZbbrbawbbsbbtbbubbvbbwbbxbaEbbyaZdaXNbbzaIsaGSbbAaYbaYbaYbaYbaYbaYbaYbaYbbbBaYbaYbaYbaYbbbCaYbaYbaYbaYbaYbaYbaYbaYbbbAaYbaYbaYbaYbbaMaYbaYbaYbbbDbbEaYbaYbbbFaYbaYbaYbbbGaYbaYbaYbaYbaYbbbCbbHaYbaYbaYbaYbaYbaYbbbAbbIaSlaOnbbJbbKbbLbbMaLZaLZaLZaQRaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaafaafaquaquavYavYavYavYavYavYavYavYaquaquarxaQVaxmaSqaSqaSraSqaSqaSqaSsaSqaSqaSqbaSbaTbaUaWXbaVbaWaZVbaXaWXbaYbaZbaYaOAaYGaYHaYIaSwaOAaYJaYKaYLbabbbabbababbbaaYLbadbbbbbcbbcbbdbbebbfaYRbbgaIsaXrbbhbbibbjbbkbblbblbbmbbnbbobarbbpaYZaYZbatbbqbataYZaYZbbrbawbbsbbtbbubbvbbwbbxbaEbbyaZdaXNbbzaIsaGSbbAaYbaYbaYbaYbaYbaYbaYbaYbbbBaYbaYbaYbaYbbbCaYbaYbaYbaYbaYbaYbaYbaYbbbAaYbaYbaYbaYbbaMaYbaYbaYbbbDbbEaYbaYbbbFaYbaYbaYbbbGaYbaYbaYbaYbaYbbbCbbHaYbaYbaYbaYbaYbaYbbbAbbIaSlaOnbbJbbKbbLbbMaLZaLZaLZaQRaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavYawcawbawbawbawbawbawbawbawbawcawbbbNbbOaxmbbPaStbbQaXmaXmaXmbbRbbSbbTaOybbUbbVbbWaWXaWXaWXbbXbbYaWXaOAaOAaOAaOAaYGaYHbbZbcaaOAaYJaYKaYLbabbcbbabbbabccaYLbadbcdbbcbbcbbcbcebcfaYRbcgaIsaXrbbhbchbbjbcibcjbckbclbcmbcnbarbcobataYZbcpbcqbcpaYZbatbcrbawbcsbctbcubcvbcwbbxbaEbaEaZdbcxaIsaIsaGSbbAaYbaYbaYbaYbaYbaYbaYbaYbbcyaYbaYbaYbaYbaYbaYbbczbcAbcAbcAbcBaYbaYbbbAaYbaYbaYbaYbbaMaYbaYbbcCaWzbcDaWzaWzaWzaWzaWzaWzbcEaWzaWzaWzaWzaWzaWzaWzaWzaWzaWzaWzaWzbcFbcGbcHbcIbcIbcJaSmaOnaOnbcKaPzaPzbcKaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafavYaxlaxmaxlaxnaxmaxmaxoaxlaxmaxlaxnaxmbcLaHKbcMbcNbcObcMbcMbcMbcPbcQaOyaOyaOybcRaVoaWXaYzbcSbcTbcUaWXbcVbcWbcVaOAaOAaOAbcXbcYaOyaYJaYKaYLbcZbabbbabdabdbaYLbadaYRbdcbbcbbcbddbdebdfbdgaIsaXrbbhbdhbbjbcibdibdjbdkbbnbbjbarbdlbdmaYZbdnbdobdpaYZbdqbdrbawbdsbdtbdubdvbdvbdwbaEbdxaZdbdybdzaIsaGSbbAaYbaYbbdAaYbbdBbdCbdCbdCbdDbdCbdCbdCbdEaYbaYbaYbaYbaYbaYbbdFbdGbdHbbAaYbaYbaYbaYbbaMbdIbdJbdKbdLbdMaYbaYbaYbaYbaYbbdNbdOaYbaYbaYbaYbaYbaYbaYbaYbaYbaYbaYbaYbaYbbbAbdPbdQbdRbdSaSmaOnaOoaLZaLZaLZaLZaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarxavYbdTavYaBYaxmaxmbdUavYbdVavYayCbdWbdXbdXbdYbdZbeabebbecbedbeebefbegbehbehbeibejaWXaWXaWXbekbelaWXaOyaOyaOyaOybemaVzbenbeoaVzbepaYKaYLbeqbabbabberbesaYLbetaYRbeubbcbbcbevbewbexbeyaIsaXraYTbbjbezbbkbbkbeAbbmbbnbeBbeCaXCbeDbeEbeFbeFbeFbeGbeHaXHbeIbeJbeKbeLbeMbaEbeNbaEbeOaZdaXNaIsaIsbePbePbePbePbePbePbePbeQbhcbhcbhdbeTbeTbeQbeUbeUbeUbeUbeUbeVbeVbeWbeXbeVbeVbeVbeVbeYaYbbeZbfabfbbfcbfdaYbaYbaYbbfebfebffbffbffbffbffbfgbfhbfhbfhbfibfhbfjbfkbfhbfhbflbfmbfmbfmbfmbfnbfobfpbfqaLZaafaaaaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafazFaquazGatMavYayyayzbfrbfsavYatMazGavYaquazFarxbdYbftbfubfubfubfvbeebfwbfxbfybfybfzbfAaWXaYzbfBbekbfCaWXbfDbfDaRbaRbbfEbfFbfGbfHbfGbfGbfIaYLbfJbfKbabbabbesbfLbfMaYRbfNbbcbbcbevbfObfPbeyaIsbfQaYTbfRaYWbfSbfTbfUbfVbbnbfWaYTaafbfXbfYbfYbfYbfZbgabgbaafaZdbgcbgdbgebgfbaEbggbaEbghaZdaXNaIsbgibePbgjbgkbglbgmbgnbePbgobgpbgqbgrbgsbgsbgsbgtbgubgvbgwbeUbgxbgybgzbgybgybgAbgBbeVbfbbgCbfbbfbbfbbgDbfdbfdbgEbfdbgFbgFbffbgGbgHbgIbffbgJbgKbgJbffbgLbgMbgLbfmbgNbgObgNbfmbgPbgQbfmbgRbgSaLZaLZaLZaafaafaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafavYbdTavYavYavYavYavYavYbdVavYaafaafaafaaabdYbgTbdYbgUbfubgVbgWbcMaVzbgXbgYbgZbhabhbbhbbhbbhbbhbbhbbimbhebpdbfybhfbhgaYLaYLaYLaYLaYLaYLbhhaYLaYLaYLbhibhjbhkbhlbhmbbcbbcbevbhnbexbeyaIsbhoaYTbhpaYWaYWaYWaYWbfVbbnbhqaYTaafbfXbfYbhrbhsbhtbfYbhuaafaZdbhvbctbhwbhxbaEbeNbaEbaEaZdaXNaIsaIsbePbhybhzbhAbhBbhCbhDbgsbhEbgsbhFbgsbgsbhGbgtbhHbhIbhJbeUbhKbgybhLbgybhKbhMbgybeVbhNbhObhPbhQbfbbhRbfdbhSbhTbhUbhVbhVbffbhWbhXbhYbhZbiabibbicbffbidbiebifbfmbigbihbigbiibijbijbfmbikbgSaaaaafaaaaafaaaaaaaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaafaaabdYbilblfbinbiobiobipbiqaXmbiraOybisbitbiubiubiubivbivbivbivbivbivbivbiwbhibixbiybizbiAbiBbiCbiDbiEaYLbiFbiGbiHbiIbiIbiJbbcbbcbevbbcaYRbeyaIsaXrbiKbiLbiMbiNbiOaYWbiPbbnaYTaYTaafbfXbfYbhsbfYbhsbfYbhuaafaZdaZdbiQbdubiRbaEbiSbiTbiUaZdaXNaIsbiVbiWbiXbiYbiZbjabjbbjcbgsbjdbjebjfbjgbjgbjhbgtbjibhIbjjbeUbhKbgybhLbjkbhKbjlbjmbeVbjnbjobjpbjqbfbbgDbfdbjrbjsbjsbjtbjubjvbjwbjxbjxbjxbjybjzbjAbffbjBbiebjCbfmbjDbjEbjFbjGbjHbjIbfmbikbgSbjJbjJbjJbjJaafaafaagapKapKapKapKapKapKapKapKapKapKaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaafaaabdYbilblfbinbiobiobipbiqaXmbiraOybisbitbiubiubiubivbivbivbivbivbivbivbiwbhibixbiybizbiAbiBbiCbiDbiEaYLbiFbiGbiHbiIbiIbiJbbcbbcbevbbcaYRbeyaIsaXrbiKbiLbiMbiNbiOaYWbiPbbnaYTaYTaafbfXbfYbhsbfYbhsbfYbhuaafaZdaZdbiQbdubiRbaEbiSbiTbiUaZdaXNaIsbiVbiWbiXbiYbiZbjabjbbjcbgsbjdbjebjfbjgbjgbjhbgtbjibhIbjjbeUbhKbgybhLbjkbhKbjlbjmbeVbjnbjobjpbjqbfbbgDbfdbjrbjsbjsbjtbjubjvbjwbjxbjxbjxbjybjzbjAbffbjBbiebjCbfmbjDbjEbjFbjGbjHbjIbfmbikbgSbjJbjJbjJbjJaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaafaaabdYbjKbdYbjLbjMbjMbjNbdYbjObjOaOybjPbjQbjPbjPbjPbjQbjPaOyaOyaYLaYLaYLbjRbhibjSbjSbjTbjSbjSbjSbiDbjSbqEbjVbjWbjXbjYbjZbjZbjZbjZbkabkbbkcbkdbkebkfbkgbkhbkibkjbkkaYWbfVbbnaYTaafaafbfXbfYbhtbklbhrbkmbhuaafaafaZdbknbkoaZdaZdaZdaZdbkpaZdbkqaIsaIsbePbkrbhzbksbhBbhCbktbgsbkubkvbkwbkxbkybkzbeUbkAbkBbkCbeUbhKbgybkDbkEbhKbkFbgybeVbfbbfbbfbbfbbfbbgDbfdbkGbkHbkIbkJbkKbkLbkMbkNbkObkObkPbkQbkRbffbkSbiebkTbfmbkUbkVbkWbkXbkYbkZbfmbikblablbblcbldblcaaaaaaaafaaaaafaaaaafaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaafaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaabdYbleblfblgbjMblhblibdYaaaaaaaaabljbljbljbljbljbljbljaaaaaabjUblkbllblmblnblobloblpbloblobloblqbloblrblsbltblublvbexbexbexblwaYRblxaYRblyblzaKWbiKblAblBblBblBblBblCblDblEaafaaablFblGblHbfYbfYblIbhuaaaaafblJblKblLblMblNblOblJblPblJblQaIsaIsbePblRbhzbksblSblTbePblUbkubkvblVblWbgsblXbeUblYblZbmabeUbmbbmcbmdbmebmfbmgbmhbmibmjbmkbmjbmjbmjbmlbfdbmmbhTbmnbmobmpbkLbmqbmrbmsbmsbmtbmubmvbffbmwbgMbmxbfmbmybmzbmAbkXbijbmBbfmbikbmCbmDbmEbmEbmEbmEbmEbmEbmFaafaaaaafaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaabdYbmGblfblfblfbdYbdYbdYaaaaaaaaabljbljbljbljbljbljbljaaaaaabjUbmHbjSbmIbmJbmKbmJbmJbmJbmJbmJbmLbmJbmMbmNbmObmPbmQbmRbexbmSbbcbmTbmUbmVbeybmWbmXbiKbiKblEbmYbmZbnabnbbncblEaaaaaabfXbndbnebnfbnebngbhuaaaaaablJbnhbnibnjblJbnkblJblPblJblQaIsaIsbePbnlbhzbksbnmbnnbePbnobnpbnqbeRbnrbgsbnsbeUbgtbntbnubeUbeVbnvbeVbeWbnwbnxbnxbnxbnxbnxbnxbnxbnxbgDbfdbnybkHbkIbnzbnAbnBbnCbnDbnDbnDbmtbkQbnEbnFbnGbnHbnIbnJbnKbnLbnKbnMbijbnNbfmbnObnPbnPbnPbnPbnPbnPbnPbnQbgSbjJbjJbjJaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaotaaaaouaaaaaaaaaaaaabsaaaaaaaaabljbljbljbljbljbljbljbnRbjUbjUbnSbjSbjSbjSbnTbnUbnUbnUbjSbjSbjSbjSbqEbnVbevbnWbnXbnYbnZboabobbocbbcbmVbodboebofbogbohboibojbokbolbombonblEaafaaabfXboobopbopbopboqbhuaaaaafblJborbosbotblJboublJblPblJbovaIsaLfbowboxboybozboAboBbePboCbkubhFbeRboDboEbnobnoboFboGboHboIboJboKbgsboLboMboNboOboPboQboRboSboTbnxbgDbfdboUboVboWboXboYbffboZbnDbnDbpabpbbkQbpcbqHbpebpfbpgbnJbphbpibijbpjbpkbplbfmbpmbpnbpnbpnbpnbpnbpnbpnbikbgSbpobppbjJbjJaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaotaaaaouaaaaaaaaaaaaaotaaaaaaaaabljbljbljbljbljbljbljbpqbprbpqbpsbptbjSbjSbiDbjSbjSbjSbjSbjSbpuaYLaYLbpvbpwbjZbpxbpybexbpzbbcbpAbbcbpBblQbmWbpCbpDbpEbpFbpGbpHbpIbpJbpKblEaaaaaabfXbpLbpMbpNbpMbpObhuaaaaaabpPbpQbpRbpPbpPbpPbpPbpSbpPbpTaKWaKWbePbePbpUbpVbpWbpXbePbpYbkubpZbqabqabqabqabqabqbbqcbqdbqebqabqfbqabqgbqhboNbqibqjbqkbqlbqmbqnbnxbqobqpbqqbqrbqrbqsbqtbqubqvbqwbqwbqxbqybkQbqzbqAbqBbqCbqDbnJbnJbsqbqFbqGbtrbnJbfmbpnbpnbqIbqJbqKbqLbqMbpnbqNbqObqPbqQbqRbjJaaaaafaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaagaaaaaaaaaaafaotaaaaaaaaabljbljbljbljbljbljbljbqSbqTbqSbqUbjSbjSbjSbnTbnUbnUbnUbjSbjSbqVbqWaYLbqXbbcbbcbqYbqZbrabrbbbcbbcbbcbpBblQbrcaIsbpDbpEbrdbrebrfbrgbrhbriblEaafaafbrjbrkbrlbrmbrnbrobrpaafaafbrqbrrbrsbrtbrubrvbrwbrxbpPbryaIsaIsbeRbrzbrAbrBbrCbrDbrEbrFbrGbrHbrIbrIbrIbrIbrIbrJbrKbrLbrMbrNbrObrPbrQbrRboNbrSbrTbrUbrVbrWboTbnxbgDbfdbrXbrYbrZbsabsabffbsbbscbsdbnFbsebkQbsfbnFbsgbshbsibsjbskbslbsmbsnbsobspbAFbsrbssbstbsubsubsubsvbswbsxbgSbsybszbjJbjJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaafaaaaaaaaaaaaabsaaaaaaaaabljbljbljbljbljbljbljbnRbjUbjUbnSbjSbjSbjSbnTbnUbnUbnUbjSbjSbjSbjSbqEbnVbevbnWbnXbnYbnZboabobbocbbcbmVbodboebofbogbohboibojbokbolbombonblEaafaaabfXboobopbopbopboqbhuaaaaafblJborbosbotblJboublJblPblJbovaIsaLfbowboxboybozboAboBbePboCbkubhFbeRboDboEbnobnoboFboGboHboIboJboKbgsboLboMboNboOboPboQboRboSboTbnxbgDbfdboUboVboWboXboYbffboZbnDbnDbpabpbbkQbpcbqHbpebpfbpgbnJbphbpibijbpjbpkbplbfmbpmbpnbpnbpnbpnbpnbpnbpnbikbgSbpobppbjJbjJaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaafaaaaaaaaaaaaaagaaaaaaaaabljbljbljbljbljbljbljbpqbprbpqbpsbptbjSbjSbiDbjSbjSbjSbjSbjSbpuaYLaYLbpvbpwbjZbpxbpybexbpzbbcbpAbbcbpBblQbmWbpCbpDbpEbpFbpGbpHbpIbpJbpKblEaaaaaabfXbpLbpMbpNbpMbpObhuaaaaaabpPbpQbpRbpPbpPbpPbpPbpSbpPbpTaKWaKWbePbePbpUbpVbpWbpXbePbpYbkubpZbqabqabqabqabqabqbbqcbqdbqebqabqfbqabqgbqhboNbqibqjbqkbqlbqmbqnbnxbqobqpbqqbqrbqrbqsbqtbqubqvbqwbqwbqxbqybkQbqzbqAbqBbqCbqDbnJbnJbsqbqFbqGbtrbnJbfmbpnbpnbqIbqJbqKbqLbqMbpnbqNbqObqPbqQbqRbjJaaaaafaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaaaafaagaaaaaaaaabljbljbljbljbljbljbljbqSbqTbqSbqUbjSbjSbjSbnTbnUbnUbnUbjSbjSbqVbqWaYLbqXbbcbbcbqYbqZbrabrbbbcbbcbbcbpBblQbrcaIsbpDbpEbrdbrebrfbrgbrhbriblEaafaafbrjbrkbrlbrmbrnbrobrpaafaafbrqbrrbrsbrtbrubrvbrwbrxbpPbryaIsaIsbeRbrzbrAbrBbrCbrDbrEbrFbrGbrHbrIbrIbrIbrIbrIbrJbrKbrLbrMbrNbrObrPbrQbrRboNbrSbrTbrUbrVbrWboTbnxbgDbfdbrXbrYbrZbsabsabffbsbbscbsdbnFbsebkQbsfbnFbsgbshbsibsjbskbslbsmbsnbsobspbAFbsrbssbstbsubsubsubsvbswbsxbgSbsybszbjJbjJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaaaafabsaaaaaaaaabljbljbljbljbljbljbljbnRbjUbjUbsAbjSbjSbjSbiDbjSbjSbjSbjSbjSbqVbsBaYLbsCbsDbjZbsEbsFbsGbevbbcbbcbsHbmVbsIbrcaIsbpDbpEblEbsJbsKbsLbsMbsNblEaaaaaaaafbfXbsObsPbsObhuaafaaaaaabrqbsQbsRbsSbsTbsUbsUbsVbsWbsXaIsaIsbeRbsYbgsbsZbtabtbbtcbtbbtdbtebtfbtgbtfbtfbtfbthbtibgsbhFbtjbtkbtkbtlbtmboNboNbtnbtobtpbqmboTbnxbfcbfdbtqbtqbtqbtqbtqbffbnFbnFbnFbnFbAGbtsbAHbnFbttbtubtvbtwbtwbtwbtwbtxbtybtzbtAbtBbtCbtDbtEbtEbtFbtGbpnbtHbgSbsybszbjJaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaaaafabsaaaaaaaaabljbljbljbljbljbljbljbqSbqTbqSbmHbtIbjSbjSbtJbjSbtIbjSbjSbjSbqVbtKaYLbtLbtMbobbtNbtObexbpwbjZbtPbtQbmVbsIbrcaXrbpDbtRblEbtSbtTbtUbtVbncblEaaaaaaaafbtWbtXbopbtYbtZaafaaaaaabrqbuabubbucbudbuebufbugbpPbuhaIsaIsbnobnobuibujbqbbukbulbumbunbuobupbuqbupbuqbupbuqbupbuqburbusbtkbutbuubuvbuwbuxbuybuzbuAbuBbuCbnxbuDbuEbuFbnHbuGbiebiebuHbiebiebuIbuJbuKbuLbuMbtwbuNbuObuPbuQbuQbuQbuRbuRbuRbuRbuRbuSbuTbuUbuVbuUbuWbuUbpnbtHbgSbsybuXbjJbjJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaaaafaafaaaaaaaaabljbljbljbljbljbljbljbuYbuZbuYbvabvbbvabvabvabvabvabvcbvdbjSbqVbveaYLbvfbbcbvgbvhbvibvjbvkbvkbvkbvjbvjbvlbrcaJFbvmbpEblEbvnbvobvpbvqbvrblEaaaaaaaafbvsbvtbrmbvubvvaafaaaaaabrqbvwbvxbvybvzbuebufbugbpPbvAaIsaIsbvBbvCbvDbvEbvFbvGbuqbvHbvIbvJbvKbvLbvMbvNbvObvNbvPbuqbhFbkubtkbvQbvRbvSbvTbvUbvVbvWbvXbvXbvYbvZbwabwbbwcbwdbwebwfbwgbwfbwfbwhbwfbwfbwibwjbwkbwkbwlbwmbqDbuQbwnbwobwpbwqbwrbwsbuRbwtbwubwvbwwbwxbwubwybpnbtHbgSbwzbqQbwAbjJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -6618,23 +6612,23 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaafaaaaaaaaabljbljbljbljbljbljbljaaaaafaaaaaaaafaaaaaaaafaaabwBbxDbxEbxFbxGbxHbxIbwDbxJbxKbxLbxMbxNbxObxPbxQbxRbvjbsIbrcaIsaIsaIsbxSaLmbxTaKWbxUbxVbxWaWjaWjaWjbxXbxYbxZbyabybaIsaIsaIsaIsaLmaIsaKWaIsaIsaIsbxSaIsbvAaIsbycbuqbydbyebyfbygbyhbuqbyibyjbykbylbwWbwXbwXbymbynbyobwWbhFbypbtkbrVbyqbyrbysbxjbytbyubyvbywbnxbnxbfcbyxbxmbyybyzbyAbyBbyCbyDbxmbyEbyFbyGbyHbyIbxrbyJbyKbyLbyMbyNbyObyPbyQbyRbySbxAbyTbyTbyTbyTbyTbyTbyTbpnbtHbgSbsybszbjJaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaafaaaaafaaaaaaaaaaaaaafaaaaaaaaabljbljbljbljbljbljbljaaaaafaaaaaaaafaaaaaaaafaaabwDbyUbyVbyWbyXbyYbyZbzabzbbzcbzdbzebzfbzgbzhbxQbzibvjbsIbzjaIsaIsaIsaIsaIsaIsaKWaIsbrcaIsaIsaIsaIsaIsbzkbzlbzmaIsaIsaIsaIsaIsaIsaIsaKWbznaIsaIsaIsaIsbvAbzobzpbulbzqbzrbzsbzrbztbuqbzubvIbvJbzvbuqbzwbzxbzybzzbzAbuqbhFbkubtkbtkbtkbtkbtkbnxbnxbnxbnxbnxbnxbzBbgDbzCbxmbzDbzEbzFbzGbzHbzIbxmbzJbzKbzLbzMbzNbxrbyJbzObzPbzQbzRbzSbzSbzSbzTbzUbxAbyTbzVbyTbzWbyTbyTbyTbpnbtHbgSbsybszbjJbjJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaabljbljbljbljbljaaaaaaaafaaaaaaaafaaaaaaaafaaabwBbzXbzYbzZbAabAbbAcbwDbxKbxKbAdbAebvkbAfbAgbAhbAibvjbAjbAkbAlbAlbAlbAmbAlbAlbAnbAlbAoaIsbApbAqbArbArbAsbAtbAubAvbAwbAxaWjaWjbAyaWjbAzbAAaWjbABbACbADbAEaIsaIsbuqbALbAJbEwbupbExbuqbupbAKbHjbuqbuqbuqbuqbuqbuqbuqbuqbhFbkubgsbAMbANbAObAPbAQbARbASbATbAUbAQbzBbgDbAVbxmbAWbAXbAYbAZbBabBbbxmbBcbBdbBebBfbBgbxrbyJbBhbBibuRbBjbBkbBlbBmbBnbBobxAbyTbyTbyTbBpbyTbyTbyTbpnbtHbqObBqbqQbqRbjJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaafaagapKapKapKapKapKapKapKaagaafaafaafaafaaaaaaaafaaabwBbwBbwDbwDbwDbwDbwBbwBbBrbBsbBtbBubvjbvjbvjbvjbvjbvjbBvbBwaIwaIwaIwaIwbBxbBxbBxbBxbBxbBxbBxbBxbBxbBxbBybBzbBAbBBbBBbBBbBBbBBbBCbBBbBBbBDbBBbyxbBEbyxaIxaJGbBFbuqbBGbBHbBIbBJbBKbuqbBLbyjbBMbBNbBObBPbBQbBRbBSbBTbAIbBUbBVbBWbBWbBXbBYbBZbCabCbbCcbCdbCebAQbzBbgDbCfbCfbCfbCfbCfbCfbCfbCfbCfbCgbCgbCgbCgbCgbCgbChbCibCjbuRbuRbuRbuRbuRbuRbuRbxAbpnbpnbpnbpnbpnbpnbpnbpnbtHbgSbCkbClbjJbjJaafaafaafaagaagaagaagaagaagaagaagaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafbCmbCnaafaafaagaafaaaaafaaaaaaaagaisaisbCoaisaisaagaafaaaaaabwEbCpbCqbCrbCsbCtbCubCvbCwbCxbCybCzbCAaaaaaaaafaaabBxbCBbCCbCDbCEbCFbCGbCHbCIbCJbCKbCLbCMbBBbCNbCObCPbCQbCRbCQbCQbCSbCTbCUbCVbyxbyxbyxbyxbuqbCWbCXbCYbCXbCZbuqbDabvIbDbbDcbDdbDebDdbDdbDfbDgbDhbDibDjbDjbDjbDkbDlbvEbDmbDnbDobDpbDqbAQbzBbgDbCfbDrbDrbDrbDsbDrbDrbDrbCfbDtbDtbDubDtbDtbCgbDvbDwbqDbDxbDybDzbDAbDBbDCbDDbDEbDFbDGbDHbDIbDJbDKbDLbDLbDMbDNbDybDybjJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaafaaabwBbwBbwDbwDbwDbwDbwBbwBbBrbBsbBtbBubvjbvjbvjbvjbvjbvjbBvbBwaIwaIwaIwaIwbBxbBxbBxbBxbBxbBxbBxbBxbBxbBxbBybBzbBAbBBbBBbBBbBBbBBbBCbBBbBBbBDbBBbyxbBEbyxaIxaJGbBFbuqbBGbBHbBIbBJbBKbuqbBLbyjbBMbBNbBObBPbBQbBRbBSbBTbAIbBUbBVbBWbBWbBXbBYbBZbCabCbbCcbCdbCebAQbzBbgDbCfbCfbCfbCfbCfbCfbCfbCfbCfbCgbCgbCgbCgbCgbCgbChbCibCjbuRbuRbuRbuRbuRbuRbuRbxAbpnbpnbpnbpnbpnbpnbpnbpnbtHbgSbCkbClbjJbjJaafaafaafaagaagaagaagaagaagaagaagaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafbCmbCnaafaafaagaafaaaaafaaaaaaaaaaafaaaaouaaaaaaaaaaafaaaaaabwEbCpbCqbCrbCsbCtbCubCvbCwbCxbCybCzbCAaaaaaaaafaaabBxbCBbCCbCDbCEbCFbCGbCHbCIbCJbCKbCLbCMbBBbCNbCObCPbCQbCRbCQbCQbCSbCTbCUbCVbyxbyxbyxbyxbuqbCWbCXbCYbCXbCZbuqbDabvIbDbbDcbDdbDebDdbDdbDfbDgbDhbDibDjbDjbDjbDkbDlbvEbDmbDnbDobDpbDqbAQbzBbgDbCfbDrbDrbDrbDsbDrbDrbDrbCfbDtbDtbDubDtbDtbCgbDvbDwbqDbDxbDybDzbDAbDBbDCbDDbDEbDFbDGbDHbDIbDJbDKbDLbDLbDMbDNbDybDybjJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaagaagaagaagaagbDOaagaafaafaaaaaaaaabDPbDQcuybDQbDSaaaaafaaabwEbwEbDTbxKbDUbDVbDWbDXbDYbDYbDZbEabEbbEcaafbEdbEebEfbEgbEhbEibEjbEibEkbEibEibEibBxbElbEmbEnbBBbEobEpbEqbErbEsbCQbEtbBDbBBbEubEvbHkbHlbEybEzbEAbEBbCXbECbCXbyjbEDbEEbEFbEGbuqbEHbEIbCXbCXbEJbEKbnobnobnobnobnobELbEMbqbbENbEObEPbCdbEQbAQbzBbgDbCfbDrbDrbDrbDrbDrbDrbDrbCfbERbESbETbEUbEVbCgbEWbEXbEYbEZbFabFbbFcbFdbFdbFdbFdbFebFfbFgbDIbjJbFhbFibFjbFjbFkbFlbFmaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbFnbFobFnaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaagaafbFpaafaagaagaagaagaagaagaaaaaaaaabFqbFrbFsbFrbFqbFtbFtbFtbwEbFubxKbFvbFwbFxbFybwEbBwbFzbBwbBwbFAbFBaaabFCbFDbFEbFFbEibEibFGbEibFHbFIbFJbEibBxbElbFKbFLbBBbFMbFNbFObFPbFQbCQbFRbBDbzBbFSbFTbFUbFTbFVbFWbuqbFXbDdbFYbDdbFZbulbGabDebGbbuqbGcbCXbCXbCXbGdbGebnobGfbGgbGhbGibBXbGjbvEbGkbCdbCdbGlbGmbGnbGobGpbCfbDrbDrbDrbDrbDrbDrbDrbCfbGqbGrbGsbGtbGubGvbGwbGxbtvbGybGzbFdbGAbFdbFdbFdbFdbFdbFdbFdbDIbGBbGCbGDbGEbGFbGGbGHbFmaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbFobFnbGIbFnbFoaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbCmaagaagaagaagaagaagaagaafaagaagaagaafaaaaaaaaacuybGJbGKbGJcuybFtbGLbGMbwEbGNbxKbGObxKbxKbFybwEbGPbGQbGRbBwbFAbFBaafbFCbGSbGTbGUbGVbGWbGVbGVbGXbGYbGVbGVbGZbHabHbbHcbBBbHdbBBbBBbBBbBBbHebHfbHgbHhbHibHKbHmbKkbKibKibuqbHnbHobHpbHqbHrbuqbHsbHtbHubuqbHvbHwbHxbHybHzbHAbnobHBbHCbqabHDbHEbHFbHGbDmbHHbCdbCdbHIbAQbzBbgDbCfbCfbHJbDrbDrbKDbHJbCfbCfbHLbHMbHNbHObHPbCgbHQbHRbtvbHSbHTbHUbHUbHVbHWbHXbHUbHYbHZbIabIbbIcbIdbIebIfbIgbIhbIibFmaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbIjbFobIkbIlbImbFobIjaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaafaaaaagaagaagbCnaagbInaagaagbIoaagaafaafaaaaaaaaabFqbGJbGJbGJbIpbIqbxKbxKbIrbGNbxKbxKbxKbxKbFybwEbIsbGRbItbBwbFAbFBaaabFCbIubIvbIwbEibEibIxbEibIybIzbIAbIBbBxbICbIDbIEbIFbIGbIHbIHbIHbIHbIHbIIbIHbIJbIKbILbIMbINbIObIPbulbulbulbulbulbulbulbulbulbulbulbulbulbulbulbulbIQbnobnobnobnobnobIRbISbhEbAQbAQbAQbAQbAQbAQbzBbgDbCfbITbIUbIVbIWbIXbIYbITbIZbHLbHMbHNbJabJbbJcbJdbJebuPbJfbDybJgbJgbJhbJibJjbJkbFdbFdbJlbDIbJmbJnbJobDybJpbLQbLQbDyaafaafaisaafaafaafaisaafaafaafaisaafaafaafaisaafaafaafaisaafaafaafbFobFobJqbJrbJrbJrbJsbFobFoaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaagaagaafaafaagaagbJtaagaagaagaagaafaaaaaaaaacuybGKbGKbGKcuybFtbJubJvbJwbJxbxKbxKbJybJzbJAbwEbBwbBwbBwbBwbFAbEcaafbJBbEebJCbEgbJDbEibJEbEibEibEibEibEibBxbElbJFbJGbJHbJIbJIbJIbJIbJIbJIbJJbJKbJLbJMbJNbJObJPbJQbJRbJSbJTbJSbJSbJSbJSbJSbJSbJSbJSbJSbJSbJSbJSbJSbJUbJVbnobHBbJWbBWbJXbBXbJYbJZbKabKbbKbbKcbKdbJMbKebKfbCfbKgbKhbNMbKjbOXbKlbKmbIZbIZbIZbIZbIZbIZbKnbKobKpbKqbKrbDybDIbDIbDIbDIbDIbDIbKsbFdbFdbDIbjJbFhbgSbDybKtbKubKvbKwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbKxbKybKxbJrbKzbJrbKAbKBbFnaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabCmaagaagaagaagaagaagaafaagaafaafaagaagaafaaaaaaaaabFqbKCbVtbKEbFqbFtbFtbFtbwEbwEbFtbFtbFtbwEbwEbwEaaaaaaaaabKFbKGbFBaaaaaaaafaaabBxbKHbKIbKJbEibKKbKLbKMbKNbKObKPbKQbKRbKSbKTbKUbKVbKWbKXbKTbKTbKTbKTbKTbKYbKZbKTbKTbLabKTbLbbKTbKTbKTbKTbKTbyxbyxbyxbyxbyxbyxbyxbyxbLcbLdbnobLebLfbLgbLhbLibLjbLkbLlbLmbLmbLnbLmbLmbLobLpbCfbLqbLrbLsbLrbLtbLrbLubLvbLwbLxbLybLzbLAbXNbyJbHRbqDbLCaafbLDbLEbLFbLGbLHbLGbLIbLJbLKbDIbLLbtHbLMbDybDybDybDybDyaafaafapKaafaafaafapKaafaafaafapKaafaafaafapKaafaafaafapKaafaafaafbFobFobLNbJrbJrbJrbLObFobFoaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaafaagaagaagaagaagabpaaaaafaafaafaaaaaaaaabLPbDQbXQbDQbLRaaaaafaaaaafaagaafaaaaafaagaafaaaaaaaaaaafbKFbFAbFBaafaafaafaafbBxbBxbBxbBxbBxbBxbBxbBxbBxbBxbLSbLTbLUbLVbKTbKUbKVbKWbKXbLWbLWbLXbLYbLZbMabMbbMcbMdbMebMfbMgbMhbMibMjbMkbMlbMmbMmbMmbMmbMmbMmbMnbyxbLcbMobMpbMpbMpbMpbMpbMqbMrbMsbMpbMpbMpbMpbMpbMpbMobMtbMubMvbMwbMxbMwbMybMzbMAbMBbMBbMBbMBbMBbMBbMCbMDbMEbqDbLCaafbLDbMFbMFbMGbMHbMIbMJbMKbMLbDIbMMbtHblabjJbMNbMObjJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaafaafbIjbFobMPbMQbMRbMSbIjaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaagapKapKapKapKapKaagaafaaaaafaagaafaaaaafaagaafaaaaaaaaaaaabKFbFAbFBaaaaaaaaaaafbMTbMUbMUbMVbMWbMXbMXbMYbMYbMTbElbMZbKRbNabKTbNbbNcbNcbNdbNebLWbNfbNgbNhbNibNjbNkbNlbNmbNnbNobNpbNobNqbNrbNsaafbNtbNtbNtbNtbNtbNubyxbLcbNvbNwbNxbNybNzbMpbNAbNBbNCbMpbNDbNEbNFbNEbNDbMobNGbCfbLrbLrbLrbNHbLrbLrbNIbNJbNKbNKbNLbNKbNKbYEbNNbNObNPbLCaafbLDbMFbNQbLGbNRbLGbNSbNTbNUbDIbszbtHblabjJbszbszbjJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbFobFnbNVbFnbMSaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaafaaaaagaagaagbCnaagbInaagaagbIoaagaafaafaaaaaaaaabFqbGJbGJbGJbIpbIqbxKbxKbIrbGNbxKbxKbxKbxKbFybwEbIsbGRbItbBwbFAbFBaaabFCbIubIvbIwbEibEibIxbEibIybIzbIAbIBbBxbICbIDbIEbIFbIGbIHbIHbIHbIHbIHbIIbIHbIJbIKbILbIMbINbIObIPbulbulbulbulbulbulbulbulbulbulbulbulbulbulbulbulbIQbnobnobnobnobnobIRbISbhEbAQbAQbAQbAQbAQbAQbzBbgDbCfbITbIUbIVbIWbIXbIYbITbIZbHLbHMbHNbJabJbbJcbJdbJebuPbJfbDybJgbJgbJhbJibJjbJkbFdbFdbJlbDIbJmbJnbJobDybJpbLQbLQbDyaafaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaafbFobFobJqbJrbJrbJrbJsbFobFoaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaagaagaafaafaagaagbJtaagaagaagaagaafaaaaaaaaacuybGKbGKbGKcuybFtbJubJvbJwbJxbxKbxKbJybJzbJAbwEbBwbBwbBwbBwbFAbEcaafbJBbEebJCbEgbJDbEibJEbEibEibEibEibEibBxbElbJFbJGbJHbJIbJIbJIbJIbJIbJIbJJbJKbJLbJMbJNbJObJPbJQbJRbJSbJTbJSbJSbJSbJSbJSbJSbJSbJSbJSbJSbJSbJSbJSbJUbJVbnobHBbJWbBWbJXbBXbJYbJZbKabKbbKbbKcbKdbJMbKebKfbCfbKgbKhbNMbKjbOXbKlbKmbIZbIZbIZbIZbIZbIZbKnbKobKpbKqbKrbDybDIbDIbDIbDIbDIbDIbKsbFdbFdbDIbjJbFhbgSbDybKtbKubKvbKwaagaagaaaaafaafaafaafaaaaafaafaaaaafaafaafaaaaafaafaafaafaaaaafaafbKxbKybKxbJrbKzbJrbKAbKBbFnaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabCmaagaagaagaagaagaagaafaagaafaafaagaagaafaaaaaaaaabFqbKCbVtbKEbFqbFtbFtbFtbwEbwEbFtbFtbFtbwEbwEbwEaaaaaaaaabKFbKGbFBaaaaaaaafaaabBxbKHbKIbKJbEibKKbKLbKMbKNbKObKPbKQbKRbKSbKTbKUbKVbKWbKXbKTbKTbKTbKTbKTbKYbKZbKTbKTbLabKTbLbbKTbKTbKTbKTbKTbyxbyxbyxbyxbyxbyxbyxbyxbLcbLdbnobLebLfbLgbLhbLibLjbLkbLlbLmbLmbLnbLmbLmbLobLpbCfbLqbLrbLsbLrbLtbLrbLubLvbLwbLxbLybLzbLAbXNbyJbHRbqDbLCaafbLDbLEbLFbLGbLHbLGbLIbLJbLKbDIbLLbtHbLMbDybDybDybDybDyaafaaaaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaafbFobFobLNbJrbJrbJrbLObFobFoaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaafaagaagaagaagaagabpaaaaafaafaafaaaaaaaaabLPbDQbXQbDQbLRaaaaafaaaaafaagaafaaaaafaagaafaaaaaaaaaaafbKFbFAbFBaafaafaafaafbBxbBxbBxbBxbBxbBxbBxbBxbBxbBxbLSbLTbLUbLVbKTbKUbKVbKWbKXbLWbLWbLXbLYbLZbMabMbbMcbMdbMebMfbMgbMhbMibMjbMkbMlbMmbMmbMmbMmbMmbMmbMnbyxbLcbMobMpbMpbMpbMpbMpbMqbMrbMsbMpbMpbMpbMpbMpbMpbMobMtbMubMvbMwbMxbMwbMybMzbMAbMBbMBbMBbMBbMBbMBbMCbMDbMEbqDbLCaafbLDbMFbMFbMGbMHbMIbMJbMKbMLbDIbMMbtHblabjJbMNbMObjJaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaafaafbIjbFobMPbMQbMRbMSbIjaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaafaafaafaafaafaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaaaaafaagaafaaaaafaagaafaaaaaaaaaaaabKFbFAbFBaaaaaaaaaaafbMTbMUbMUbMVbMWbMXbMXbMYbMYbMTbElbMZbKRbNabKTbNbbNcbNcbNdbNebLWbNfbNgbNhbNibNjbNkbNlbNmbNnbNobNpbNobNqbNrbNsaafbNtbNtbNtbNtbNtbNubyxbLcbNvbNwbNxbNybNzbMpbNAbNBbNCbMpbNDbNEbNFbNEbNDbMobNGbCfbLrbLrbLrbNHbLrbLrbNIbNJbNKbNKbNLbNKbNKbYEbNNbNObNPbLCaafbLDbMFbNQbLGbNRbLGbNSbNTbNUbDIbszbtHblabjJbszbszbjJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbFobFnbNVbFnbMSaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaagaagaagaafaafaafaafaafaafaafaafaaaaafaaaaafaaaaafaaaaafaaaaafbBwbBwbKFbKFbKFbBwbBwaaaaaaaaaaaabKFbFAbFBaaaaaaaaaaafbMTbNWbMVbMVbMVbMVbMXbNXbNYbNZbOabKQbObbOcbOdbOebOfbOgbOhbOibOjbOfbOfbOfbOhbOkbOlbOmbOnbOobMkbOpbOqbOrbOsbOtbMmbOubOvbOwbOxbNtbNubOybLcbMobOzbNDbNDbNDbMpbOAbOBbOCbMpbNEbODbNEbOEbOFbOGbOHbCfbOIbOJbOKbOLbOMbONbOObOPbOQbORbOSbOTbOUbIZbZCbOWchdbOYbOYbDIbDIbDIbDIbDIbDIbDybDybDybDIbszbtHbOZbszbszbPabjJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbFnbFobFnaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaagaagaagaagaagaagaagaaaaaaaagaagaagaagaagaagaagaagaafaaaaaabBwbPbbGRbPcbGRbPdbBwaaaaaaaaaaaabKFbKGbFBaaaaafbKFbKFbMTbMVbPebPfbMVbMVbPgbPhbMXbPibElbMZbPjbPkbPlbPmbPnbPobPpbPqcjYbPobPrbPobPsbPtbPubMdbPvbPwbPxbPybPzbPAbPBbPCaafbPDbPEbOxbPFbNtbNubOybLcbMobPGbPHbNDbPIbMpbPJbPKbPLbMpbNDbPMbPNbNDbNDbMobLcbCfbIZbIZbIZbIZbKnbPObPPbPQbKnbIZbIZbIZbIZbIZbPRbPSbPTbPUbPVbPWbPXbPYbPXbPZbOYbQabQbbQcbQdbQebtHblabjJbjJbjJbjJabsaafaafaafaagaagaagaagaagaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaafaafaaaaaaaafaagaafaafaafaafaafaafaafaafaafaafaafaafaafbBwbQfbGRbGRbGRbQgbBwaaaaaaaaaaaabKFbFAbFBaaaaafbKFbQhbQibQjbQkbQlbQlbQlbQlbQlbQmbQnbQobMZbPjbQpbQqbQrbQsbNobQtbQuckabQvbQwbQxbQybQzbQzbQAbQBbMkbQCbQDbQEbQFbQGbQHbQIbOubQJbOxbOxbNtbNubOybLcbMobQKbNDbQLbMqbMpbMpbQMbMpbMpbQNbQObQPbQNbQNbMobLcbCfbQQbQRbQRbQSbQTbLrbQUbQVbQWbQXbDrbDrbDrbIZbQYbQZbRabRbbRcbPWbRdbRebRfbRgbZCbQbbRhbQbbQdbCkbRibRjbjJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBwbQfbGRbGRbRkbRlbBwaaaaafaaaaaabKFbFAbEcbBwbBwbBwbRmbMTbRnbMVbMVbMVbRobRpbRqbRrbMTbElbMZbPjbQpbPlbRsbRtbNobNobRubLWbRvbRwbRxbRybNobNobMdbRzbRAbRBbRCbRDbREbRDbRFaafbNtbNtbNtbNtbNtbNubyxbLcbMobRGbRHbRHbRIbRJbRKbRLbRMbRNbNDbPMbNDbNDbNDbMobLcbCfbDrbDrbDrbRObRPbLrbRQbLrbRRbRSbDrbDrbDrbIZbRTbRUbRVbRWbRXbRYbRZbSabRYbSbbOYbScbQbbSdbQdbjJbSebSfbjJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaisaafaafbSgaafaafaafbBwbBwbBwbBwbBwbBwbBwbBwbBwbBwbShbBwbBwbBwbKFbKFbKFbSibSjbSkbSlbSmbSnbSjbSobQnbQnbQnbQnbQnbQnbQnbQnbQnbSpbSqbSrbPjbSsbKTbStbSuckabSvckabLWbNobNobNobRybSwbSxbSxbSybSzbSAbOpbSBbSCbSDbOtbMmbOubSEbSFbSFbNtbNubyxbLcbSGbSHbSHbSHbSIbSJbNDbSKbNDbNDbNDbPMbNDbNDbNDbMobLcbCfbDrbDrbDrbSLbSMbQVbSNbLrbSObSPbQRbQRbSQbIZbSRbSSbPTbSTbSUbPWbRfbSVbRYbSWbOYbSXbSXbSXbQdbSYbSZbSfbjJaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaagaafaafbSgaafaafaafbBwbBwbBwbBwbBwbBwbBwbBwbBwbBwbShbBwbBwbBwbKFbKFbKFbSibSjbSkbSlbSmbSnbSjbSobQnbQnbQnbQnbQnbQnbQnbQnbQnbSpbSqbSrbPjbSsbKTbStbSuckabSvckabLWbNobNobNobRybSwbSxbSxbSybSzbSAbOpbSBbSCbSDbOtbMmbOubSEbSFbSFbNtbNubyxbLcbSGbSHbSHbSHbSIbSJbNDbSKbNDbNDbNDbPMbNDbNDbNDbMobLcbCfbDrbDrbDrbSLbSMbQVbSNbLrbSObSPbQRbQRbSQbIZbSRbSSbPTbSTbSUbPWbRfbSVbRYbSWbOYbSXbSXbSXbQdbSYbSZbSfbjJaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabTabTbbTbbTbbTbbTcbTdbTdbTebTfbTgbThbTibTjbTkbTlbBwbGRbGRbGRbGRbGRbGRbGRbTmbTnbTobTpbTqbTrbTrbTrbTrbTsbTtbTtbTtbTubTtbTvbDYbDYbTwbEcbElbMZbPjbTxbTybTzbTAbSxbSxbTBbTCbSxbSxbTDbTEbTFbNobTGbTHbTIbTJbNobTKbTLbTMbPCaafbPDbTNbTObTPbNtbNubOybTQbTRbTRbTRbTSbMobTTbRGbTUbTVbTWbTXbTYbTZbTZbUabMobLcbCfbIZbIZbIZbIZbUbbUcbRQbUdbUbbIZbIZbIZbIZbIZbUebUfbUgbUhbUibUjbUjbUjbUjbUkbZCbSXbSXbUlbQdbUmbSZbSfbjJbjJbjJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapKaaaaafaaaaaabUnbUnbKFbGRbUobUpbUqbUrbUsbBwbUtbKFbKFbKFbKFbKFbKFbKFbKFbEcbUubUvbUvbUvbUvbUvbUvbUvbUvbUwbUwbUwbUwbUwbUxbUybEcbElbMZbPjbTxbUzbUAbUBbUCbQzbUDbUEbQzbQzbUFbUGbUHbUIbUJbUKbULbUMbNobTKbUNbUObQHbQIbOubUPbSFbSFbNtbNubOybUQbyxbyxbyxbOHbMobURbNDbNDbUSbUTbUUbUVbUWbUVbUUbMobLcbCfbQQbQRbQRbUXbQTbLrbQUbQVbUYbUZbDrbDrbDrbIZbVabVbbVcbVdbRUbRWbVebVfbVgbVhbOYbSXbSXbSXbQdbUmbSZbSfbszbszbjJaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaaaaafaaaaaabUnbUnbKFbGRbUobUpbUqbUrbUsbBwbUtbKFbKFbKFbKFbKFbKFbKFbKFbEcbUubUvbUvbUvbUvbUvbUvbUvbUvbUwbUwbUwbUwbUwbUxbUybEcbElbMZbPjbTxbUzbUAbUBbUCbQzbUDbUEbQzbQzbUFbUGbUHbUIbUJbUKbULbUMbNobTKbUNbUObQHbQIbOubUPbSFbSFbNtbNubOybUQbyxbyxbyxbOHbMobURbNDbNDbUSbUTbUUbUVbUWbUVbUUbMobLcbCfbQQbQRbQRbUXbQTbLrbQUbQVbUYbUZbDrbDrbDrbIZbVabVbbVcbVdbRUbRWbVebVfbVgbVhbOYbSXbSXbSXbQdbUmbSZbSfbszbszbjJaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaagaagaagaagbVibVjbVkbGRbVlbUpbUpbVmbGRbBwbGRbKFaaaaaaaafaaaaaaaafaaabEcbUubUvbVnbVobVpbVqbVrbVsbVncuebVubVvbVwbUwbUwbUybEcbVxbMZbPjbVybVzbVAbVAbVBbKTbKTbKTbKTbKTbVCbVDbLWbLWbLWbVEbNobTIbNobTKbTLbVFbPCaafbNtbNtbNtbNtbNtbNubOybUQbyxbVGbzBbOHbNvbVHbVIbVJbVKbVLbVMbVNbUWbVNbVObMobLcbCfbDrbVPbDrbVQbRPbLrbRQbLrbRRbVRbDrbVPbDrbIZbVSbVTbVUbVVbVWbVXbVYbVZbWabWbbZCbWcbWdbWebQdbSXbSZbWfbjJbszbjJbjJbjJaagaagaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbUnbUnbKFbWgbWhbWibWjbWkbGRbWlbGRbKFaaaaaaaafaaaaaaaafaaabEcbUubUvbVnbWmbWnbWobWpbWqbVncufbWrbWsbWtbWubUwbUybEcbElbMZbPjbWvbWwbKTbWxbWybKTbWzbWAbWBbKTbWCbRybWDbLWbWEbUMbNobUKbWFbWGbSCbWHbOtbMmbOubWIbWJbWKbNtbNubyxbUQbyxbAVbzBbOHbMobWLbWMbWNbWObUTbWMbWPbUWbWPbOEbOGbLcbCfbDrbDrbDrbWQbWRbQVbSNbLrbSObWSbQRbQRbSQbCfbQdbWTbWUbWUbQdbQdbWVbWWbWXbWYbWZbXabUjbXbbSXbSXbSZbSfbjJbXcbjJbXdbjJaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbKFbXebXfbXfbXgbUsbXhbBwbKFbKFaaaaaaaaaaaaaaaaaaaaabEcbUubUvbXibXjbXkbWobXlbXibXicufbXmbXnbWtbXobUwbUybEcbElbMZbXpbXqbXqbXrbXsbXtbXubXvbXwbXxbKTbNobRybXybXzbWEbXAbNobUKbWFbTKbTLbXBbPCaafbPDbXCbXDbXEbNtbNubyxbUQbyxbKkbKkbOHbMobMpbXFbXGbMpbXHbMpbMpbMpbMpbMpbMobLcbCfbIZbIZbIZbIZbUbbXIbRQbXJbUbbIZbIZbIZbIZbCfbRYbXKbRYbRYbRYbQdbWVbWWbXLbXMcugbXObVdbXPbQdbSXbSZbSfbjJbszbszbszcdKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -6650,19 +6644,19 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafcfZcgacgacgbcgccgccgccgccgccgccgccgccgccgccgccgdcgecgfcgecggcghcgicgjcfacgkcglbPdbBwbKFbKFbKFbKFbKFbKFbKFbKFbKFbBwbBwcgmbTrcgncgocfgcgpcgpcgqcfgcgrcgscgtcgucgvcgwcgxcgycgzcgAcdpcgBcgCcgDcgEcgFcgGcgHcgIcgJcfgaafcgKaafbNuaafcgKaafbNuaafcgLaafcgLaaaaaaaaaaaaaaaaaaaaacdEcgMcgNcgOcgPcgQcgRcgScdEbzBcgTcgUcgVcgWcgXbEzcgYcgZbyxbjJcdKcdKcdKcdKbjJcdKcdKcdKcdKbjJcdKcdKcdKcdKbjJchabszbjJchbchcbjJbjJcdKcdKbjJbjJcusbZycutbjJchfchgbpmbjJbjJbjJbjJbjJaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaafaaaaafaafchhaafaaaaafchhaafaaaaafchhaafaaaaaacdQcdQcdQchichjchkcdRbGRbGRbGRbGRbBwaaaaaaaafaaaaaaaafaaaaaaaafaaabBwchlbBwchmchncfgchochpchqchrchschtcfncfncfnchuchvchwchxchtcdpchychzchAcgEchBcdpchCchDchEcfgbNtchFbPDchFbNtchFbPDchFbNtchGbPDchHbNtaaaaaaaaaaaaaaaaaacdEchIchJchKchLchMchNchOchPchQchQbGochRchSbGochTbyxbyxbyxaaaaaaaafaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaabjJchUbLLbjJchebZybjJaaaaaaaaaaaabjJbszbZychVchWchWchXchYchWaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeabeabdaafaafcauchZcawaaacauchZcawaaacauchZcawaafaafaafaafcdQcdRcdRcdRcdRciabXhbGRbGRbBwaafaafcibcibcibcibcibcibcibaafbBwbBwbBwciccidcfgciechqchqchrcifcigcigcihciicijcikcikcilcfncdpcimcinciocipciqcdpcircefciscfgbNtcitciucivbNtciwcixciybNtcizciAciBbNtaaaaaaaaaaaaaaaaaaciCciDchJciEciFciGciHciIcdEaafbyxccUciJbOybOybyxbyxaaaabsaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjJciKbjJbjJciLbZybjJbjJcdKcdKbjJbjJbszciMciNchWciOciPciQchWaaaaaaaafaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacauchZcawaafcauchZcawaaacauchZcawaaaaaaaaaaaaaaaaaaaaaaaabBwbBwbBwciRbGRbBwaaaaaacibciSciTciUciTciVcibaaabBwbRkbGRciWcidcfgciXciXciYcfgciZcjacjbcjccfocjdcjecjfcjgcjgcdpcjhcjicjjcjkcjlcjmcjncjocjpcfgbNtcjqcjrcjqbNtcjscjtcjsbNtcjucjvcjwbNtaaaaaaaaaaaaaaaaaacdEcjxcjycjzcjAcjBcjCcjDcdEaafaaaaafcjEaaaaaaaafaaaaaaabsaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaacdKcdKcdKbjJcjFbCkbjJcjGcjHcjIceKcjIcjIcjIcjIcjJcjKcjLchWcjMcjNcjOchWaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacauchZcawaafcauchZcawaaacauchZcawaaaaaaaaaaaaaaaaaaaaaaaabBwbBwbBwciRbGRbBwaaaaaacibciSciTciUciTciVcibaaabBwbRkbGRciWcidcfgciXciXciYcfgciZcjacjbcjccfocjdcjecjfcjgcjgcdpcjhcjicjjcjkcjlcjmcjncjocjpcfgbNtcjqcjrcjqbNtcjscjtcjsbNtcjucjvcjwbNtaaaaaaaaaaaaaaaaaacdEcjxcjycjzcjAcjBcjCcjDcdEaafaafaafcjEaaaaaaaafaaaaaaabsaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaacdKcdKcdKbjJcjFbCkbjJcjGcjHcjIceKcjIcjIcjIcjIcjJcjKcjLchWcjMcjNcjOchWaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafcauchZcawaaacauchZcawaaacauchZcawaafaaaaaaaaaaaaaaaaaaaaacjPcjQcjPbGRbGRbBwaaaaaacibcjRcjScjTcjUcjVcibaaabBwcbtbGRciWcidcfgciXciXciYcfgcjWcgycuvcuucjZcuwcuvcgycuvcuvcgyckbckcckdcjdckeckfckgcfockhcfgbNtcjqckicjqbNtcjsckjcjsbNtcjwckkcjwbNtaaaaaaaaaaaaaaaaaacdEcdEcdEcklckmcknckockpckmaafaaaaafckqaaaaaaaaaaaaaaaabsaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafcdKbszckrbjJcksbszbjJcktbmDbmDckubmDbmEbmEbmEckvckvckwchWckxckyckzchWaaaaaaaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafcauchZcawaaacauchZcawaafcauchZcawaafaafaafaafaafaafaafaafbBwbBwbBwbBwbGRbBwaafaafcibckAckBckCckDckAcibaafbBwcfgckEckFckGcfgciXciYciYcfgckHckIckJckKcfockLckMckNckMckMckOckPckQckRckSckTckTckTckUckVcfgbNtbNtbNtbNtbNtbNtbNtbNtbNtbNtbNtbNtbNtaaaaaaaaaaaaaaaaaaaaaaaaaaackWckmckXckYckZckmaafaaaaaaaaaaaaaaaaaaaaaaaaabsaaaaaaaaaaaaaafaafaaaaaaaaaaaaaafaagcdKclabszbXcchabszbjJbjJbjJbjJbjJbszbjJaaaaafaaaaafaaaclbclbclcclbclbaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaafcaucldcawaaacaucldcawaaacaucldcawaafabdaafaaaaaaaaaaaaaaaaaaaaaaaabKFbGRbKFaaaaaacibcleclfclgclhclicibcibcibcfgcljckFclkcfgcfgcfgcfgcfgcllcfnclmcjccfocfncfncfnclncloclpcfocfocjccfnclqcfncfnclrclscfgaafaaaaaaaaaaafaafaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaacltckmckncluckpckmaisaaaaaaaaaaaaaaaaaaaaaaaaabsaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaagcdKbszbuXbjJclvbszbszbszbszbszbszbszbjJaaaaafaaaaafaaaaafclbclwclbaafaaaaaaaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaaaaafaaaaaaaaaaafaafaafaaaaaaaafaafaaaabdaafaafaaaaaaaaaaaaaaaaaaaaabKFbGRbKFaaaaaacibclxclyclzclAclBclCclDclEclCclFclGclHclIclJclKclLclMclNcigclOclPclQclRclSclTclUclTclUclVclWclXcigcigclYcigclZcmacfgcfgcfgcfgcfgcgycgycgycgycfgaisaisaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacltckmcmbcmccmdcmeaaaaaaaaaaaaaaaaaeaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacdKcdKcdKbjJciKbjJbjJcmfcmgbLLbMMbjJbjJaaaaafaaaaaaaaaaafclbclcclbaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeabeabdabeabeabpabdabdabdabdabeabdabdabecmhaaaaafaafaaaaaaaaaaaaaaaaafbKFbGRbKFaafaafcibcmicmjcmkcmlcmmcmncmocmpcmncmqcmrcmscmtcmucmvcmwcmvcmxcmycmzcmAcmBcmCcmDcmEcmFcmGcmFcmHcmIcmJcikcmAcmKcikcmLcmMcikcmNcfncmOcfgcmPcmQcmRcmScmScmTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacltckmckmcmUckmckmapKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcmVaafbjJbjJcdKcdKbjJbjJaafaafaaaaaaaaaaaaaafaaacmWaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaafcaucldcawaaacaucldcawaaacaucldcawaafabdaafaaaaaaaaaaaaaaaaaaaaaaaabKFbGRbKFaaaaaacibcleclfclgclhclicibcibcibcfgcljckFclkcfgcfgcfgcfgcfgcllcfnclmcjccfocfncfncfnclncloclpcfocfocjccfnclqcfncfnclrclscfgaafaaaaaaaaaaafaafaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaacltckmckncluckpckmaaaaafaaaaaaaaaaaaaaaaaaaaaabsaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaagcdKbszbuXbjJclvbszbszbszbszbszbszbszbjJaaaaafaaaaafaaaaafclbclwclbaafaaaaaaaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaaaaafaaaaaaaaaaafaafaafaaaaaaaafaafaaaabdaafaafaaaaaaaaaaaaaaaaaaaaabKFbGRbKFaaaaaacibclxclyclzclAclBclCclDclEclCclFclGclHclIclJclKclLclMclNcigclOclPclQclRclSclTclUclTclUclVclWclXcigcigclYcigclZcmacfgcfgcfgcfgcfgcgycgycgycgycfgaisaisaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacltckmcmbcmccmdcmeaafaafaafaafaafaaeaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacdKcdKcdKbjJciKbjJbjJcmfcmgbLLbMMbjJbjJaaaaafaaaaaaaaaaafclbclcclbaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeabeabdabeabeabpabdabdabdabdabeabdabdabecmhaaaaafaafaaaaaaaaaaaaaaaaafbKFbGRbKFaafaafcibcmicmjcmkcmlcmmcmncmocmpcmncmqcmrcmscmtcmucmvcmwcmvcmxcmycmzcmAcmBcmCcmDcmEcmFcmGcmFcmHcmIcmJcikcmAcmKcikcmLcmMcikcmNcfncmOcfgcmPcmQcmRcmScmScmTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacltckmckmcmUckmckmaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcmVaafbjJbjJcdKcdKbjJbjJaafaafaaaaaaaaaaaaaafaaacmWaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaabKFbGRbKFaaaaaacibcmXcmYcmZcnacnbcibcnccndcibcnecfncnfcjccfocngcuvcnhcjdcnicnjcnkcnkcnkcnlcnmcnncnocnpcnqcnlcnrcnrclpcfnclqcjdcnscntcnucigcnvcnwchqchqcnxcnycnzcnAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacltaagckmcnBckmcnCaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaafcnDaafaaaaafaaaaafaaaaaaaafaafaafaaaaaaaaaaafaaacmWaaaaafaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaabBwbBwbShbBwbBwaaacibcnEcnFcnGcibcibcibcibcibcfgcnHcfncnfcnIcnJcnKcuvcnLcjdcnMcnNcnOcnPcnQcfgcnRcnScnTcnUcnVcfgcnWcnXcnXcnNcnMcjdcnYcnZcfocfncoacfgcobchqcoccmScmScodaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaackqaagcoecofcoeaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaouaaaaafaaaaafaaaaaacogcogcogcohaafaafaafaafcmWaafaafaafaafaafabpcogcogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaabBwchlbGRcoibBwaafcibcibcibcibcibaafaaaaaaaafcfgcojcfncokcolcolcomcgycgyconcfgcoocopcopcopcfgcoqcorcoscotcoucfgcopcopcopcoocfgconcgycovcfocfncfgcfgcgycgycgycgycfgapKapKaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaotaaaaouaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaacogaaaaafaaaaafaaaaaaaaacowaaaaafaafaaaaaaaaaaaacogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaabBwbBwbShbBwbBwaaacibcnEcnFcnGcibcibcibcibcibcfgcnHcfncnfcnIcnJcnKcuvcnLcjdcnMcnNcnOcnPcnQcfgcnRcnScnTcnUcnVcfgcnWcnXcnXcnNcnMcjdcnYcnZcfocfncoacfgcobchqcoccmScmScodaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaackqaagcoecofcoeaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcqiaafaaaaafaaaaafaaaaaacogcogcogcohaafaafaafaafcmWaafaafaafaafaafabpcogcogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaabBwchlbGRcoibBwaafcibcibcibcibcibaafaaaaaaaafcfgcojcfncokcolcolcomcgycgyconcfgcoocopcopcopcfgcoqcorcoscotcoucfgcopcopcopcoocfgconcgycovcfocfncfgcfgcgycgycgycgycfgapKapKaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaagaaaaagaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaafaaaaaacogaaaaafaaaaafaaaaaaaaacowaaaaafaafaaaaaaaaaaaacogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaabKFcoxcoycozbBwaafaaaaaaaafaaaaaaaafaaaaaaaafcfgcoAcoBcjdcoCcoDcoEcgycoFcoGcfgcoHcoIcoJcoIcjXcoKcoLcoMcoNcoucjXcoIcoIcoIcoOcfgcoPcoQckFcfocoRcircoScfncoTcjXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaacogaaacoUcoUcoUcoUcoUaafcoVaafcoUcoUcoUcoUcoUaaacogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbKFcoWcoXbIsbBwbBwcoYcoYcoYcoYcoYcoYcoYcoYcgycfgcoZcpacpbcpccoZcfgcfgcfgconcfgcfgcjXcjXcjXcjXcpdcpecpfcpecpgcjXcjXcjXcjXcfgcfgconcfgckFcphcpicpjcpkcfncplcjXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaacogaafcpmcpncpncpncpncpocoVcppcpqcpqcpqcpqcpraafcogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbKFbKFbKFbKFbBwaafaaaaaaaafaaaaaaaafaaaaaaaafaagaagaagaafaaaaafaagcfgcpscptcpuaaaaaaaaacjXcjXcjXcjXcjXcjXcjXcjXcjXaaaaaaaaacpvcpwcpxcpycpzclTclTcpAcpBcpCcjXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaacogaafcpDcpDcpDcpDcpDaaacoVaaacpDcpDcpDcpDcpDaafcogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaagaagaagaagaaaaafaaaaafaafaaaaaaaaaaafcfgcpEcpFaagaaaaaaaafaafaafaafaafaafaafaafaafaafaafaaaaaaaagcpGcpEcfgcpHcpIcfgcgycgycpJcgyaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaacogaaaaafaaaaafaafaafaaacoVaaaaafaaaaafaaaaafaaacogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbKFbKFbKFbKFbBwaafaaaaaaaafaaaaaaaafaaaaaaaafaagaagaagaafaaaaafaagcfgcpscptaAGaaaaaaaaacjXcjXcjXcjXcjXcjXcjXcjXcjXaaaaaaaaaaAHcpwcpxcpycpzclTclTcpAcpBcpCcjXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaacogaafcpDcpDcpDcpDcpDaaacoVaaacpDcpDcpDcpDcpDaafcogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaagaagaagaagaaaaafaaaaafaafaaaaaaaaaaafcfgcpEcpFcpFaaaaaaaafaafaafaafaafaafaafaafaafaafaafaaaaaacpFcpGcpEcfgcpHcpIcfgcgycgycpJcgyaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaacogaaaaafaaaaafaafaafaaacoVaaaaafaaaaafaaaaafaaacogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaacfgcpKcpLcpMaafaafaafcpNaaaaaaaaaaaacpNaaaaaacpNaafaafaafcpOcpPcpQcfgcpRceecgyaafaaacpScpTaafaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacogaaacoUcoUcoUcoUcoUaafcoVaafcoUcoUcoUcoUcoUaafcogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfgcpEcpFcpUaaaaaaaafaaaaaaaaaaaaaaacpVaaaaaaaaaaafaaaaaacpFcpFcpEcfgaagaagaaaaafaaacpWcpXcpYcpZcqacpZcpYcpZcqacpZcpZcpZcqacpZcpYcpZcqacqbcqcaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacogaafcpmcpncpncpncpncpocoVcppcpqcpqcpqcpqcpraafcogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfgcqdcqecpFaaaaaaaafaaaaaaaafaafaafaafaafaaaaaaaafaaaaaacpFcqfcqgcfgaafaafaafaafaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaafaaaaaacpWcqhcpTcqiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacogaafcpDcpDcpDcpDcpDaaacoVaafcpDcpDcpDcpDcpDaaacogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -6675,8 +6669,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqJcqJcqJcqJcqJcqJcqJcqJcqJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfgcqUcpFcpFaaaaaaaafaafaafaafaafaafaafaafaafaafaafaaaaaacpFcpFcqUcfgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaafcqFcqVcqWcqXcqXcqYcqZcracqIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacogaafcrbaafcogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqJcqJcqJcqJcqJcqJcqJcqJcqJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfgcqUcpFcrcaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaacrdcpFcqUcfgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaafcqFcrecqWcqXcqXcrfcrgcrhcqIaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacogaaaaafaaacogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqJcqJcqJcqJcqJcqJcqJcqJcqJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacircfgcfgcfgcpFaafaafaafaafaaaaaaaaaaaaaaaaafaafaafaafcpFcfgcfgcfgciraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafcqFcqFcricqXcqXcqIcrjcqIcqIaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacogcogcogcogcogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqJcqJcqJcqJcqJcqJcqJcqJcqJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaabCncfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgbCnaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaagaagaaaaafaaacqHcrkcqXcqXcrlcrmcqHaafaafaafaagaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqJcqJcqJcqJcqJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabCnbCnbCnbCncrnbCnbCnbCnbCnbCnbCnbCncrnbCnbCnbCnbCnaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdabdcrocroabdabdaaacqHcrpcrqcrrcrscrtcqHaaaabdabdcrocroabdabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqJcqJcqJcqJcqJcqJcqJcqJcqJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaacqUcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcqUaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaagaagaaaaafaaacqHcrkcqXcqXcrlcrmcqHaafaafaafaagaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqJcqJcqJcqJcqJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaacqUcqUcqUcqUcqpcqUcqUcqUcqUcqUcqUcqUcqpcqUcqUcqUcqUaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdabdcrocroabdabdaaacqHcrpcrqcrrcrscrtcqHaaaabdabdcrocroabdabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqJcqJcqJcqJcqJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaafaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdcrucrvcrwcrxabdabdcqHcrycrzcrAcrBcrCcqHabdabdcrDcrEcrFcrGabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqJcqJcqJcqJcqJcqJcqJcqJcqJcqJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdcrucrvcrFcrHcrIcrJcrJcrKcrLcrJcrMcrNcrJcrJcrIcrOcrvcrFcrGabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqJcqJcqJcqJcqJcqJcqJcqJcqJcqJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdcrucrPcrQcrRcrRcrScrTcrUcrVcrWcrWcrXcrYcrZcsacsacsbcsccrGabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/_maps/map_files/generic/z2.dmm b/_maps/map_files/generic/z2.dmm
index 433b8358415..c8a151f3d79 100644
--- a/_maps/map_files/generic/z2.dmm
+++ b/_maps/map_files/generic/z2.dmm
@@ -214,684 +214,684 @@
"ef" = (/turf/simulated/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/source_boxingcourt)
"eg" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns1,/area/space)
"eh" = (/turf/simulated/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/source_basketball)
-"ej" = (/turf/simulated/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/source_boxingcourt)
-"ek" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns15,/area/space)
-"el" = (/turf/simulated/floor/beach/coastline,/area/holodeck/source_beach)
-"em" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area/space)
-"en" = (/turf/simulated/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/source_basketball)
-"eo" = (/obj/structure/holohoop{dir = 1},/turf/simulated/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/source_basketball)
-"ep" = (/turf/simulated/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/source_basketball)
-"eq" = (/turf/simulated/floor/beach/water,/area/holodeck/source_beach)
-"er" = (/obj/structure/table/holotable,/turf/simulated/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/source_thunderdomecourt)
-"es" = (/obj/structure/table/holotable,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/under/color/green,/obj/item/weapon/holo/esword/green,/turf/simulated/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/source_thunderdomecourt)
-"et" = (/obj/structure/table/holotable,/obj/machinery/readybutton,/turf/simulated/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/source_thunderdomecourt)
-"eu" = (/turf/simulated/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/source_boxingcourt)
-"ev" = (/turf/simulated/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/source_boxingcourt)
-"ew" = (/obj/machinery/readybutton,/turf/simulated/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/source_boxingcourt)
-"ex" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns13,/area/space)
-"ey" = (/turf/unsimulated/wall{icon_state = "iron5"},/area/space)
-"ez" = (/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/wall{icon_state = "iron12"},/area/space)
-"eA" = (/turf/unsimulated/wall{icon_state = "iron13"},/area/space)
-"eB" = (/turf/unsimulated/wall{icon_state = "iron9"},/area/space)
-"eC" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area/space)
-"eD" = (/turf/unsimulated/wall,/area/tdome/arena_source)
-"eE" = (/obj/machinery/igniter,/turf/simulated/floor/plasteel,/area/tdome/arena_source)
-"eF" = (/turf/simulated/floor/plasteel,/area/tdome/arena_source)
-"eG" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area/space)
-"eH" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/red,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source)
-"eI" = (/obj/machinery/door/poddoor{id = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source)
-"eJ" = (/obj/machinery/door/poddoor{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/unsimulated/floor{name = "plating"},/area/tdome/arena_source)
-"eK" = (/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/tdome/arena_source)
-"eL" = (/turf/simulated/floor/plasteel{icon_state = "green"; dir = 4},/area/tdome/arena_source)
-"eM" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/green,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source)
-"eN" = (/turf/simulated/floor/bluegrid,/area/tdome/arena_source)
-"eO" = (/obj/machinery/flasher{id = "tdomeflash"; name = "Thunderdome Flash"},/turf/simulated/floor/bluegrid,/area/tdome/arena_source)
-"eP" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source)
-"eQ" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source)
-"eR" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source)
-"eS" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns7,/area/space)
-"eT" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area/space)
-"eU" = (/turf/space/transit/north/shuttlespace_ns5,/area/syndicate_station/transit)
-"eV" = (/turf/space/transit/north/shuttlespace_ns11,/area/syndicate_station/transit)
-"eW" = (/turf/space/transit/north/shuttlespace_ns3,/area/syndicate_station/transit)
-"eX" = (/turf/space/transit/north/shuttlespace_ns13,/area/syndicate_station/transit)
-"eY" = (/turf/space/transit/north/shuttlespace_ns7,/area/syndicate_station/transit)
-"eZ" = (/turf/space/transit/north/shuttlespace_ns14,/area/syndicate_station/transit)
-"fa" = (/turf/space/transit/north/shuttlespace_ns4,/area/syndicate_station/transit)
-"fb" = (/turf/space/transit/north/shuttlespace_ns10,/area/syndicate_station/transit)
-"fc" = (/turf/space/transit/north/shuttlespace_ns1,/area/syndicate_station/transit)
-"fd" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns5,/area/space)
-"fe" = (/turf/space/transit/north/shuttlespace_ns2,/area/syndicate_station/transit)
-"ff" = (/turf/space/transit/north/shuttlespace_ns12,/area/syndicate_station/transit)
-"fg" = (/turf/space/transit/north/shuttlespace_ns6,/area/syndicate_station/transit)
-"fh" = (/turf/space/transit/north/shuttlespace_ns9,/area/syndicate_station/transit)
-"fi" = (/turf/space/transit/north/shuttlespace_ns15,/area/syndicate_station/transit)
-"fj" = (/turf/space/transit/north/shuttlespace_ns8,/area/syndicate_station/transit)
-"fk" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns3,/area/space)
-"fl" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns2,/area/space)
-"fm" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns1,/area/space)
-"fn" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns15,/area/space)
-"fo" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns7,/area/space)
-"fp" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns15,/area/space)
-"fq" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area/space)
-"fr" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area/space)
-"fs" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area/space)
-"ft" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns15,/area/space)
-"fu" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area/space)
-"fv" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns1,/area/space)
-"fw" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area/space)
-"fx" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns2,/area/space)
-"fy" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area/space)
-"fz" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns3,/area/space)
-"fA" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area/space)
-"fB" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns8,/area/space)
-"fC" = (/turf/space/transit/north/shuttlespace_ns12,/area/shuttle/escape_pod1/transit)
-"fD" = (/turf/space/transit/north/shuttlespace_ns7,/area/shuttle/escape_pod1/transit)
-"fE" = (/turf/space/transit/north/shuttlespace_ns9,/area/shuttle/escape_pod1/transit)
-"fF" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area/space)
-"fG" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area/space)
-"fH" = (/turf/space/transit/north/shuttlespace_ns3,/area/shuttle/escape_pod2/transit)
-"fI" = (/turf/space/transit/north/shuttlespace_ns14,/area/shuttle/escape_pod2/transit)
-"fJ" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/escape_pod2/transit)
-"fK" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns7,/area/space)
-"fL" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns8,/area/space)
-"fM" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/escape_pod1/transit)
-"fN" = (/turf/space/transit/north/shuttlespace_ns6,/area/shuttle/escape_pod1/transit)
-"fO" = (/turf/space/transit/north/shuttlespace_ns8,/area/shuttle/escape_pod1/transit)
-"fP" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns3,/area/space)
-"fQ" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns9,/area/space)
-"fR" = (/turf/space/transit/north/shuttlespace_ns2,/area/shuttle/escape_pod2/transit)
-"fS" = (/turf/space/transit/north/shuttlespace_ns13,/area/shuttle/escape_pod2/transit)
-"fT" = (/turf/space/transit/north/shuttlespace_ns10,/area/shuttle/escape_pod2/transit)
-"fU" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area/space)
-"fV" = (/turf/space/transit/north/shuttlespace_ns10,/area/shuttle/escape_pod1/transit)
-"fW" = (/turf/space/transit/north/shuttlespace_ns5,/area/shuttle/escape_pod1/transit)
-"fX" = (/turf/space/transit/north/shuttlespace_ns1,/area/shuttle/escape_pod2/transit)
-"fY" = (/turf/space/transit/north/shuttlespace_ns12,/area/shuttle/escape_pod2/transit)
-"fZ" = (/turf/space/transit/north/shuttlespace_ns9,/area/shuttle/escape_pod2/transit)
-"ga" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns5,/area/space)
-"gb" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area/space)
-"gc" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area/space)
-"gd" = (/turf/space/transit/north/shuttlespace_ns4,/area/shuttle/escape_pod1/transit)
-"ge" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns1,/area/space)
-"gf" = (/turf/space/transit/north/shuttlespace_ns15,/area/shuttle/escape_pod2/transit)
-"gg" = (/turf/space/transit/north/shuttlespace_ns8,/area/shuttle/escape_pod2/transit)
-"gh" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area/space)
-"gi" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area/space)
-"gj" = (/turf/unsimulated/wall,/area/start)
-"gk" = (/obj/effect/landmark/start,/turf/unsimulated/floor,/area/start)
-"gl" = (/turf/unsimulated/wall/splashscreen,/area/start)
-"gm" = (/turf/space,/area/shuttle/escape_pod1/centcom)
-"gn" = (/turf/space,/area/shuttle/escape_pod2/centcom)
-"go" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/centcom/evac)
-"gp" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 1},/turf/space,/area/centcom/evac)
-"gq" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 1},/turf/space,/area/centcom/evac)
-"gr" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 1},/turf/space,/area/centcom/evac)
-"gs" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/centcom/evac)
-"gt" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/centcom/evac)
-"gu" = (/obj/structure/window/reinforced,/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 1},/turf/simulated/floor/plating/airless,/area/centcom/evac)
-"gv" = (/turf/simulated/shuttle/wall{icon_state = "swall7"; dir = 2},/area/centcom/evac)
-"gw" = (/turf/simulated/shuttle/wall{icon_state = "swall8"; dir = 2},/area/centcom/evac)
-"gx" = (/obj/machinery/door/airlock/shuttle,/turf/simulated/shuttle/plating,/area/centcom/evac)
-"gy" = (/turf/simulated/shuttle/wall{icon_state = "swall0"; dir = 2},/area/centcom/evac)
-"gz" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac)
-"gA" = (/turf/simulated/shuttle/wall{icon_state = "swall4"; dir = 2},/area/centcom/evac)
-"gB" = (/turf/simulated/shuttle/wall{icon_state = "swall11"; dir = 2},/area/centcom/evac)
-"gC" = (/turf/simulated/shuttle/plating,/area/centcom/evac)
-"gD" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/centcom/evac)
-"gE" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/centcom/evac)
-"gF" = (/obj/structure/closet/emcloset,/turf/simulated/shuttle/floor,/area/centcom/evac)
-"gG" = (/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/centcom/evac)
-"gH" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/turf/simulated/shuttle/floor,/area/centcom/evac)
-"gI" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/fire{pixel_x = -2; pixel_y = 4},/turf/simulated/shuttle/floor,/area/centcom/evac)
-"gJ" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 0},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/simulated/shuttle/floor,/area/centcom/evac)
-"gK" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/centcom/evac)
-"gL" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_f10"; layer = 2},/area/centcom/evac)
-"gM" = (/turf/simulated/shuttle/wall{icon_state = "swall1"; dir = 2},/area/centcom/evac)
-"gN" = (/turf/simulated/shuttle/floor,/area/centcom/evac)
-"gO" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/centcom/evac)
-"gP" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/centcom/evac)
-"gQ" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/centcom/evac)
-"gR" = (/turf/simulated/shuttle/wall{icon_state = "swallc1"; dir = 2},/area/centcom/evac)
-"gS" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
-"gT" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
-"gU" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
-"gV" = (/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
-"gW" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/simulated/shuttle/floor,/area/centcom/evac)
-"gX" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor,/area/centcom/evac)
-"gY" = (/turf/simulated/shuttle/wall{icon_state = "swallc2"; dir = 2},/area/centcom/evac)
-"gZ" = (/obj/machinery/computer/secure_data,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
-"ha" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
-"hb" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
-"hc" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/stamp,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
-"hd" = (/obj/structure/table,/obj/item/device/flash/handheld,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
-"he" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
-"hf" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor,/area/centcom/evac)
-"hg" = (/turf/space,/area/shuttle/escape_pod3/centcom)
-"hh" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
-"hi" = (/obj/machinery/door/window/northright{base_state = "right"; dir = 4; icon_state = "right"; name = "Security Desk"; req_access_txt = "103"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
-"hj" = (/obj/structure/stool/bed,/turf/simulated/shuttle/floor,/area/centcom/evac)
-"hk" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/simulated/shuttle/plating,/area/centcom/evac)
-"hl" = (/turf/space,/area/shuttle/escape_pod4/centcom)
-"hm" = (/obj/machinery/door/airlock/shuttle,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/centcom/evac)
-"hn" = (/turf/simulated/shuttle/wall{icon_state = "swall2"; dir = 2},/area/centcom/evac)
-"ho" = (/turf/unsimulated/wall,/area/centcom/suppy)
-"hp" = (/obj/structure/table,/obj/structure/bedsheetbin,/turf/simulated/shuttle/floor,/area/centcom/evac)
-"hq" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/turf/simulated/shuttle/floor,/area/centcom/evac)
-"hr" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/shuttle/floor,/area/centcom/evac)
-"hs" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/supply/dock)
-"ht" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/supply/dock)
-"hu" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/supply/dock)
-"hv" = (/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/centcom/evac)
-"hw" = (/turf/simulated/shuttle/wall{icon_state = "swallc4"; dir = 2},/area/centcom/evac)
-"hx" = (/obj/machinery/door/airlock/shuttle{name = "Cockpit"; req_access_txt = "109"},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/centcom/evac)
-"hy" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/supply/dock)
-"hz" = (/turf/simulated/shuttle/floor,/area/supply/dock)
-"hA" = (/obj/structure/table,/obj/item/device/radio/off,/turf/simulated/shuttle/floor,/area/centcom/evac)
-"hB" = (/obj/structure/stool/bed/chair{dir = 4; name = "Prosecution"},/turf/simulated/shuttle/floor,/area/centcom/evac)
-"hC" = (/obj/structure/filingcabinet,/turf/simulated/shuttle/floor,/area/centcom/evac)
-"hD" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor,/area/centcom/evac)
-"hE" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/obj/machinery/door/poddoor{id = "QMLoaddoor2"; name = "supply dock loading door"},/turf/simulated/shuttle/plating,/area/supply/dock)
-"hF" = (/turf/unsimulated/wall/fakedoor,/area/centcom/suppy)
-"hG" = (/obj/structure/table,/obj/item/weapon/storage/lockbox,/turf/simulated/shuttle/floor,/area/centcom/evac)
-"hH" = (/obj/structure/table,/turf/simulated/shuttle/floor,/area/centcom/evac)
-"hI" = (/obj/machinery/computer/shuttle,/turf/simulated/shuttle/floor,/area/centcom/evac)
-"hJ" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/simulated/shuttle/floor,/area/centcom/evac)
-"hK" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/simulated/shuttle/floor,/area/centcom/evac)
-"hL" = (/obj/machinery/door/airlock/shuttle{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/turf/simulated/shuttle/plating,/area/supply/dock)
-"hM" = (/obj/machinery/door_control{dir = 2; id = "QMLoaddoor2"; name = "Loading Doors"; pixel_x = 24; pixel_y = 8},/obj/machinery/door_control{id = "QMLoaddoor"; name = "Loading Doors"; pixel_x = 24; pixel_y = -8},/turf/simulated/shuttle/floor,/area/supply/dock)
-"hN" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/door/poddoor{id = "QMLoaddoor"; name = "supply dock loading door"},/turf/simulated/shuttle/plating,/area/supply/dock)
-"hO" = (/turf/simulated/shuttle/wall{icon_state = "swall7"; dir = 2},/area/supply/dock)
-"hP" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/supply/dock)
-"hQ" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/supply/dock)
-"hR" = (/turf/simulated/shuttle/wall{icon_state = "swall11"; dir = 2},/area/supply/dock)
-"hS" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/supply/dock)
-"hT" = (/turf/simulated/shuttle/wall{icon_state = "swall15"; dir = 2},/area/supply/dock)
-"hU" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/simulated/floor/plating/airless,/area/supply/dock)
-"hV" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/supply/dock)
-"hW" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"},/turf/space,/area/supply/dock)
-"hX" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/supply/dock)
-"hY" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"},/turf/space,/area/supply/dock)
-"hZ" = (/turf/unsimulated/wall,/area/centcom/control)
-"ia" = (/turf/unsimulated/wall/fakedoor,/area/centcom/control)
-"ib" = (/turf/unsimulated/wall,/area/centcom/evac)
-"ic" = (/turf/unsimulated/floor{icon_state = "green"; dir = 9},/area/centcom/control)
-"id" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control)
-"ie" = (/turf/unsimulated/floor{icon_state = "green"; dir = 5},/area/centcom/control)
-"if" = (/turf/space,/area/centcom/evac)
-"ig" = (/turf/unsimulated/wall,/area/centcom/prison)
-"ih" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "green"; dir = 9},/area/centcom/control)
-"ii" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 1},/area/centcom/control)
-"ij" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 4},/area/centcom/control)
-"ik" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "green"; dir = 5},/area/centcom/control)
-"il" = (/obj/effect/landmark{name = "prisonwarp"},/turf/unsimulated/floor{name = "plating"},/area/centcom/prison)
-"im" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/control)
-"in" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/control)
-"io" = (/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/control)
-"ip" = (/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/control)
-"iq" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/shuttle/escape/centcom)
-"ir" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
-"is" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/escape/centcom)
-"it" = (/turf/unsimulated/wall/fakedoor{name = "Centcom Security"},/area/centcom/evac)
-"iu" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/obj{anchored = 1; icon_state = "floor3"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/shuttle/escape/centcom)
-"iv" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"iw" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"ix" = (/obj/machinery/computer/emergency_shuttle,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"iy" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"iz" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/obj{anchored = 1; icon_state = "floor3"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/shuttle/escape/centcom)
-"iA" = (/obj/machinery/door/poddoor{id = "CentComPort"; name = "security door"},/turf/unsimulated/floor{dir = 1; icon_state = "loadingarea"},/area/centcom/control)
-"iB" = (/obj/machinery/door/airlock/centcom{name = "Centcom Security"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
-"iC" = (/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
-"iD" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
-"iE" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/shuttle/escape/centcom)
-"iF" = (/obj/machinery/computer/atmos_alert,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"iG" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"iH" = (/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"iI" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"iJ" = (/obj/machinery/computer/security,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"iK" = (/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
-"iL" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/control)
-"iM" = (/obj/machinery/door_control{desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "CentComPort"; name = "Security Doors"; pixel_y = 28; req_access_txt = "101"},/obj/structure/showcase/fakeid,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
-"iN" = (/obj/machinery/computer/crew,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"iO" = (/obj/structure/stool/bed/chair{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"iP" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"iQ" = (/obj/machinery/flasher_button{id = "cockpit_flasher"; pixel_x = 6; pixel_y = -24},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"iR" = (/obj/machinery/computer/communications,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"iS" = (/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/control)
-"iT" = (/obj/structure/table/reinforced,/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 4; icon_state = "rightsecure"; name = "Centcom Customs"; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
-"iU" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
-"iV" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
-"iW" = (/obj/structure/stool/bed/chair/office/dark,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
-"iX" = (/obj/structure/showcase/fakesec,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
-"iY" = (/turf/simulated/shuttle/wall{icon_state = "swall13"; dir = 2},/area/shuttle/escape/centcom)
-"iZ" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/escape/centcom)
-"ja" = (/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/shuttle/escape/centcom)
-"jb" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Cockpit"; req_access_txt = "19"},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"jc" = (/obj/machinery/status_display,/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/escape/centcom)
-"jd" = (/turf/unsimulated/wall,/area/centcom/ferry)
-"je" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
-"jf" = (/obj/structure/table,/obj/item/weapon/stamp{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stamp/denied{pixel_x = 4; pixel_y = -2},/obj/item/weapon/paper/centcom,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
-"jg" = (/obj/machinery/door/window/northleft{dir = 2; name = "Centcom Security"; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
-"jh" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
-"ji" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
-"jj" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
-"jk" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom)
-"jl" = (/obj/machinery/flasher{id = "cockpit_flasher"; pixel_x = 6; pixel_y = 24},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"jm" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"jn" = (/obj/structure/closet/emcloset,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"jo" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"jp" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_y = 4},/obj/item/weapon/pen,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
-"jq" = (/obj/structure/mirror{pixel_y = 32},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
-"jr" = (/obj/structure/dresser,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
-"js" = (/obj/machinery/door/poddoor/preopen{id = "CentComPort"; name = "security door"},/turf/unsimulated/floor{dir = 1; icon_state = "loadingarea"},/area/centcom/control)
-"jt" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/evac)
-"ju" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/centcom/evac)
-"jv" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/centcom/evac)
-"jw" = (/obj/machinery/flasher{id = "shuttle_flasher"; pixel_x = -24; pixel_y = 6},/obj/machinery/flasher_button{id = "shuttle_flasher"; pixel_x = -24; pixel_y = -6},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom)
-"jx" = (/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom)
-"jy" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Brig"; req_access_txt = "2"},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"jz" = (/obj/structure/stool,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
-"jA" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
-"jB" = (/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/space)
-"jC" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/control)
-"jD" = (/turf/unsimulated/floor{icon_state = "bot"},/area/centcom/control)
-"jE" = (/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/control)
-"jF" = (/obj/machinery/door/airlock/external{name = "Arrivals Docking Bay 1"},/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/evac)
-"jG" = (/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/evac)
-"jH" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"; req_access_txt = "2"},/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
-"jI" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom)
-"jJ" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"jK" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"jL" = (/obj/structure/table,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"jM" = (/obj/machinery/door/airlock/centcom{name = "Dressing Room"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
-"jN" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/control)
-"jO" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/control)
-"jP" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/centcom/control)
-"jQ" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/centcom/control)
-"jR" = (/obj/machinery/door/airlock/centcom{name = "Centcom Security"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
-"jS" = (/turf/simulated/shuttle/wall{icon_state = "swall7"; dir = 2},/area/shuttle/escape/centcom)
-"jT" = (/turf/simulated/shuttle/wall{icon_state = "swallc4"; dir = 2},/area/shuttle/escape/centcom)
-"jU" = (/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry)
-"jV" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/ferry)
-"jW" = (/turf/unsimulated/floor{dir = 8; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry)
-"jX" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry)
-"jY" = (/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/ferry)
-"jZ" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 8},/area/centcom/control)
-"ka" = (/turf/unsimulated/floor{icon_state = "greencorner"},/area/centcom/control)
-"kb" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/evac)
-"kc" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac)
-"kd" = (/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/evac)
-"ke" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
-"kf" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"kg" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"kh" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/shuttle/transport1/centcom)
-"ki" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/transport1/centcom)
-"kj" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/shuttle/transport1/centcom)
-"kk" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom)
-"kl" = (/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/shuttle/transport1/centcom)
-"km" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 8},/turf/space,/area/shuttle/transport1/centcom)
-"kn" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/ferry)
-"ko" = (/obj/effect/landmark{name = "Deathsquad"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry)
-"kp" = (/turf/unsimulated/wall/fakeglass,/area/centcom/control)
-"kq" = (/obj/structure/stool/bed/chair{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"kr" = (/obj/structure/stool/bed/chair{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"ks" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"kt" = (/turf/unsimulated/wall,/area/syndicate_mothership)
-"ku" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/shuttle/transport1/centcom)
-"kv" = (/obj/machinery/computer/shuttle/ferry/request,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
-"kw" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/shuttle/transport1/centcom)
-"kx" = (/turf/simulated/shuttle/wall{icon_state = "swall11"; dir = 2},/area/shuttle/transport1/centcom)
-"ky" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
-"kz" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/shuttle/transport1/centcom)
-"kA" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/ferry)
-"kB" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (SOUTHEAST)"; icon_state = "fakewindows"; dir = 6},/area/centcom/ferry)
-"kC" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "greencorner"; dir = 1},/area/centcom/evac)
-"kD" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
-"kE" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
-"kF" = (/obj/structure/flora/tree/pine,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
-"kG" = (/obj/structure/flora/grass/both,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
-"kH" = (/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
-"kI" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
-"kJ" = (/obj/machinery/door/airlock/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
-"kK" = (/obj/machinery/door/airlock/external{name = "Ferry Airlock"; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/ferry)
-"kL" = (/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/ferry)
-"kM" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 4},/area/centcom/ferry)
-"kN" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/ferry)
-"kO" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/unsimulated/wall,/area/centcom/evac)
-"kP" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/shuttle/transport1/centcom)
-"kQ" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/shuttle/transport1/centcom)
-"kR" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/shuttle/transport1/centcom)
-"kS" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
-"kT" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 5},/area/centcom/ferry)
-"kU" = (/obj/machinery/door/airlock/centcom{name = "Transport Shuttle"; opacity = 1; req_access_txt = "109"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry)
-"kV" = (/obj/structure/flora/bush,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
-"kW" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/shuttle/transport1/centcom)
-"kX" = (/turf/simulated/shuttle/wall{icon_state = "swall13"; dir = 2},/area/shuttle/transport1/centcom)
-"kY" = (/turf/unsimulated/floor{icon_state = "greencorner"},/area/centcom/ferry)
-"kZ" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "greencorner"; dir = 8},/area/centcom/evac)
-"la" = (/turf/unsimulated/wall/fakeglass,/area/centcom/ferry)
-"lb" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"lc" = (/turf/unsimulated/wall,/area/centcom/holding)
-"ld" = (/turf/unsimulated/wall/fakedoor{name = "Shuttle Bay B"},/area/centcom/holding)
-"le" = (/obj/machinery/door/airlock/centcom{name = "Centcom"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
-"lf" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Cargo"},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"lg" = (/obj/machinery/status_display,/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/shuttle/escape/centcom)
-"lh" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Infirmary"},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"li" = (/turf/simulated/shuttle/wall{icon_state = "swall11"; dir = 2},/area/shuttle/escape/centcom)
-"lj" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership)
-"lk" = (/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/escape/centcom)
-"ll" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/escape/centcom)
-"lm" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"ln" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/syndicate_station/start)
-"lo" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_station/start)
-"lp" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters{id = "syndieshutters"; name = "blast shutters"},/obj/structure/window/reinforced/fulltile,/turf/simulated/shuttle/plating,/area/syndicate_station/start)
-"lq" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/syndicate_station/start)
-"lr" = (/turf/unsimulated/wall,/area/tdome/tdomeobserve)
-"ls" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 9},/area/tdome/tdomeobserve)
-"lt" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/tdome/tdomeobserve)
-"lu" = (/obj/machinery/door/airlock/centcom{name = "Thunderdome"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdomeobserve)
-"lv" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/tdome/tdomeobserve)
-"lw" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 5},/area/tdome/tdomeobserve)
-"lx" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = -28; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"ly" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"lz" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"lA" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"lB" = (/obj/structure/table,/obj/item/device/flashlight/lamp{pixel_x = 4; pixel_y = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"lC" = (/obj/machinery/computer/syndicate_station{req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"lD" = (/obj/structure/table,/obj/machinery/door_control{id = "syndieshutters"; name = "remote shutter control"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"lE" = (/obj/structure/computerframe,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"lF" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership)
-"lG" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership)
-"lH" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/syndicate_mothership)
-"lI" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/grass/both,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership)
-"lJ" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/tree/pine,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership)
-"lK" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve)
-"lL" = (/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve)
-"lM" = (/turf/unsimulated/wall/fakeglass,/area/tdome/tdomeobserve)
-"lN" = (/turf/unsimulated/floor{icon_state = "neutral"; dir = 8},/area/tdome/tdomeobserve)
-"lO" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdomeobserve)
-"lP" = (/turf/unsimulated/floor{icon_state = "neutral"; dir = 4},/area/tdome/tdomeobserve)
-"lQ" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "green"; dir = 9},/area/centcom/evac)
-"lR" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac)
-"lS" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac)
-"lT" = (/obj/structure/closet,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/escape/centcom)
-"lU" = (/obj/structure/closet/crate,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/escape/centcom)
-"lV" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"lW" = (/obj/structure/stool/bed/chair/comfy/black{dir = 1; icon_state = "comfychair"; name = "pilot's chair"; tag = "icon-comfychair (NORTH)"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"lX" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership)
-"lY" = (/obj/item/weapon/storage/fancy/crayons,/obj/structure/table,/obj/item/weapon/storage/fancy/crayons,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"lZ" = (/obj/machinery/washing_machine,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"ma" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve)
-"mb" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve)
-"mc" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve)
-"md" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/evac)
-"me" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac)
-"mf" = (/obj/structure/filingcabinet/filingcabinet,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac)
-"mg" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/shuttle/escape/centcom)
-"mh" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/simulated/floor/plating/airless,/area/shuttle/escape/centcom)
-"mi" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/shuttle/escape/centcom)
-"mj" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 10},/obj/item/device/multitool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"mk" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_y = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"ml" = (/obj/structure/closet/syndicate/personal,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"mm" = (/obj/machinery/computer/syndicate_station/recall,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"mn" = (/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"mo" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"mp" = (/obj/machinery/vending/cola,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"mq" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/random = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"mr" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/syndicate_mothership)
-"ms" = (/obj/item/device/paicard,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
-"mt" = (/obj/structure/stool/bed/chair/comfy/teal,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
-"mu" = (/obj/structure/bookcase,/obj/item/weapon/book/manual/wiki/engineering_hacking,/obj/item/weapon/book/manual/robotics_cyborgs,/obj/item/weapon/book/manual/engineering_singularity_safety,/obj/item/weapon/book/manual/detective,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
-"mv" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/tdome/tdomeobserve)
-"mw" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/shuttle/escape/centcom)
-"mx" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/syndicate_station/start)
-"my" = (/obj/machinery/door/window{name = "Cockpit"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"mz" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/syndicate_station/start)
-"mA" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/grass/brown,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership)
-"mB" = (/obj/item/weapon/paper{info = "GET DAT FUKKEN DISK"; name = "memo"},/obj/structure/noticeboard{pixel_x = -32; pixel_y = 0},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"mC" = (/obj/structure/stool,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"mD" = (/mob/living/simple_animal/hostile/retaliate/bat{desc = "A Syndicate experiment in weaponized space carp technology. Its fangs seem to have been intentionally dulled down to prevent accidents."; faction = list("syndicate"); harm_intent_damage = 5; health = 50; icon_dead = "carp_dead"; icon_gib = "carp_gib"; icon_living = "carp"; icon_state = "carp"; name = "Cayenne"; real_name = "Cayenne"; response_disarm = "lightly brushes aside"; response_help = "pets"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"mE" = (/obj/machinery/door/airlock/centcom{name = "Study"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"mF" = (/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
-"mG" = (/turf/unsimulated/floor{dir = 8; icon_state = "red"},/area/tdome/tdomeobserve)
-"mH" = (/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/tdome/tdomeobserve)
-"mI" = (/turf/unsimulated/floor{dir = 10; icon_state = "green"},/area/centcom/evac)
-"mJ" = (/turf/unsimulated/floor{icon_state = "green"},/area/centcom/evac)
-"mK" = (/turf/unsimulated/floor{icon_state = "green"; dir = 6},/area/centcom/evac)
-"mL" = (/obj/structure/table,/obj/item/stack/cable_coil,/obj/item/weapon/crowbar/red,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"mM" = (/obj/structure/table,/obj/item/weapon/storage/box/zipties{pixel_x = 1; pixel_y = 2},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"mN" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_surround"; dir = 8},/area/syndicate_mothership)
-"mO" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 6},/area/syndicate_mothership)
-"mP" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = -2; pixel_y = 5},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"mQ" = (/obj/structure/table/wood,/obj/item/pizzabox{ismessy = 1},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"mR" = (/obj/structure/stool,/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"mS" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (NORTHWEST)"; icon_state = "podhatch"; dir = 9},/area/syndicate_mothership)
-"mT" = (/obj/structure/dresser,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
-"mU" = (/obj/structure/table/wood,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
-"mV" = (/turf/unsimulated/floor{icon_state = "red"; dir = 10},/area/tdome/tdomeobserve)
-"mW" = (/turf/unsimulated/floor{icon_state = "red"; dir = 2},/area/tdome/tdomeobserve)
-"mX" = (/turf/unsimulated/floor{icon_state = "green"},/area/tdome/tdomeobserve)
-"mY" = (/turf/unsimulated/floor{icon_state = "green"; dir = 6},/area/tdome/tdomeobserve)
-"mZ" = (/turf/unsimulated/wall/fakedoor{name = "Centcom"},/area/centcom/evac)
-"na" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"nb" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"nc" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 9},/area/syndicate_mothership)
-"nd" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/syndicate_mothership)
-"ne" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"nf" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = 5; pixel_y = -2; step_x = 0},/obj/item/toy/cards/deck/syndicate{icon_state = "deck_syndicate_full"; pixel_x = -6; pixel_y = 6},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"ng" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (WEST)"; icon_state = "podhatch"; dir = 8},/area/syndicate_mothership)
-"nh" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/syndicate_mothership)
-"ni" = (/turf/unsimulated/floor,/area/syndicate_mothership)
-"nj" = (/obj/machinery/door/poddoor/shutters{id = "nukeop_ready"; name = "shuttle dock"},/turf/unsimulated/floor,/area/syndicate_mothership)
-"nk" = (/turf/space,/area/tdome/tdomeobserve)
-"nl" = (/obj/machinery/suit_storage_unit/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"nm" = (/obj/effect/landmark{name = "Syndicate-Uplink"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"nn" = (/turf/unsimulated/wall/fakeglass,/area/syndicate_mothership)
-"no" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/unsimulated/floor,/area/syndicate_mothership)
-"np" = (/obj/machinery/door_control{id = "nukeop_ready"; name = "mission launch control"; pixel_x = -26; pixel_y = 0; req_access_txt = "151"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"nq" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (SOUTHWEST)"; icon_state = "podhatch"; dir = 10},/area/syndicate_mothership)
-"nr" = (/obj/structure/urinal{pixel_y = 28},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"ns" = (/obj/structure/toilet{pixel_y = 8},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/obj/machinery/door/window{name = "Tactical Toilet"; opacity = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"nt" = (/obj/structure/stool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"nu" = (/obj/structure/table,/obj/item/device/aicard,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"nv" = (/obj/machinery/door/poddoor{auto_close = 300; id = "smindicate"; name = "outer blast door"},/obj/machinery/door_control{id = "smindicate"; name = "external door control"; pixel_x = -26; pixel_y = 0; req_access_txt = "150"},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
-"nw" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_station/start)
-"nx" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 5},/area/syndicate_mothership)
-"ny" = (/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
-"nz" = (/obj/structure/table/wood,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
-"nA" = (/obj/structure/table/wood,/obj/item/device/syndicatedetonator{desc = "This gaudy button can be used to instantly detonate syndicate bombs that have been activated on the station. It is also fun to press."},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
-"nB" = (/obj/machinery/door/airlock/centcom{name = "Restroom"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"nC" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"nD" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 28},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"nE" = (/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve)
-"nF" = (/obj/structure/stool/bed/chair,/obj/effect/landmark{name = "tdomeobserve"},/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve)
-"nG" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'FOURTH WALL'."; name = "\improper FOURTH WALL"; pixel_x = -32},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
-"nH" = (/obj/structure/table,/obj/item/weapon/c4{pixel_x = 2; pixel_y = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"nI" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
-"nJ" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
-"nK" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Uplink Management Control"; req_access_txt = "151"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
-"nL" = (/obj/item/weapon/soap/syndie,/obj/structure/mopbucket,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"nM" = (/obj/item/weapon/mop,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"nN" = (/turf/unsimulated/wall/fakedoor{name = "Thunderdome"},/area/tdome/tdomeobserve)
-"nO" = (/obj/machinery/computer/security/telescreen,/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve)
-"nP" = (/obj/machinery/door/window{dir = 4; name = "EVA Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"nQ" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"nR" = (/obj/machinery/computer/telecrystals/boss,/turf/unsimulated/floor{tag = "icon-podhatch (NORTHEAST)"; icon_state = "podhatch"; dir = 5},/area/syndicate_mothership)
-"nS" = (/obj/structure/sign/map/left{pixel_y = -32},/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_left"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
-"nT" = (/obj/structure/sign/map/right{pixel_y = -32},/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_right"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/gin,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
-"nU" = (/obj/machinery/door/airlock/glass_large{name = "Equipment Room"; opacity = 1; req_access_txt = "150"; text = "g"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"nV" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "EVA Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"nW" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/shuttle/plating,/area/syndicate_station/start)
-"nX" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"nY" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 10},/area/syndicate_mothership)
-"nZ" = (/turf/unsimulated/floor{tag = "icon-stage_stairs"; icon_state = "stage_stairs"},/area/syndicate_mothership)
-"oa" = (/obj/machinery/mech_bay_recharge_port,/turf/unsimulated/floor/plating,/area/syndicate_mothership)
-"ob" = (/turf/unsimulated/floor{icon_state = "recharge_floor"; name = "mech bay recharge floor"; tag = "icon-recharge_floor"},/area/syndicate_mothership)
-"oc" = (/obj/machinery/computer/mech_bay_power_console,/turf/unsimulated/floor/plating,/area/syndicate_mothership)
-"od" = (/obj/machinery/vending/tool,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"oe" = (/turf/unsimulated/wall,/area/wizard_station)
-"of" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeobserve)
-"og" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"oh" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{tag = "icon-gravsnow_corner (NORTH)"; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 1},/area/syndicate_mothership)
-"oi" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/bush,/turf/unsimulated/floor{tag = "icon-gravsnow_corner (NORTH)"; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 1},/area/syndicate_mothership)
-"oj" = (/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"ok" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/obj/effect/decal/cleanable/cobweb,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"ol" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"om" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"on" = (/obj/machinery/librarycomp,/obj/structure/table/wood,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"oo" = (/obj/machinery/vending/magivend,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"op" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"oq" = (/obj/structure/dresser,/obj/item/weapon/storage/backpack/satchel,/turf/unsimulated/floor{dir = 9; icon_state = "carpetside"},/area/wizard_station)
-"or" = (/obj/structure/mirror{pixel_y = 28},/turf/unsimulated/floor{dir = 1; icon_state = "carpetside"},/area/wizard_station)
-"os" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/wiz,/turf/unsimulated/floor{dir = 5; icon_state = "carpetside"},/area/wizard_station)
-"ot" = (/turf/unsimulated/wall,/area/tdome/arena)
-"ou" = (/obj/machinery/igniter,/turf/simulated/floor/plasteel,/area/tdome/arena)
-"ov" = (/turf/simulated/floor/plasteel,/area/tdome/arena)
-"ow" = (/obj/machinery/recharge_station,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"ox" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"oy" = (/obj/structure/table,/obj/machinery/cell_charger,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"oz" = (/obj/structure/table,/obj/item/stack/medical/ointment,/obj/item/stack/medical/bruise_pack,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"oA" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = -28; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"oB" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell/high{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stock_parts/cell/high,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"oC" = (/obj/structure/table,/obj/item/weapon/screwdriver{pixel_y = 9},/obj/item/device/assembly/voice{pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"oD" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/device/assembly/infra,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"oE" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"oF" = (/obj/structure/table,/obj/item/weapon/weldingtool/largetank{pixel_y = 3},/obj/item/device/multitool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"oG" = (/obj/structure/stool,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"oH" = (/turf/unsimulated/floor{dir = 8; icon_state = "carpetside"},/area/wizard_station)
-"oI" = (/obj/effect/landmark/start{name = "wizard"},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/wizard_station)
-"oJ" = (/turf/unsimulated/floor{dir = 4; icon_state = "carpetside"},/area/wizard_station)
-"oK" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/red,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
-"oL" = (/obj/machinery/door/poddoor{id = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
-"oM" = (/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2)
-"oN" = (/obj/machinery/door/poddoor{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/unsimulated/floor{name = "plating"},/area/tdome/arena)
-"oO" = (/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/tdome/arena)
-"oP" = (/turf/simulated/floor/plasteel{icon_state = "green"; dir = 4},/area/tdome/arena)
-"oQ" = (/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1)
-"oR" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/green,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
-"oS" = (/obj/machinery/door/window{dir = 4; name = "Infirmary"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"oT" = (/obj/machinery/door/window/westright{name = "Tool Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"oU" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/syndicate,/obj/item/weapon/crowbar/red,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"oV" = (/obj/structure/closet/syndicate/personal,/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/syndicate_mothership)
-"oW" = (/obj/structure/table,/obj/item/weapon/gun/energy/ionrifle,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"oX" = (/obj/structure/bookcase{name = "bookcase (Tactics)"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"oY" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"oZ" = (/obj/structure/table/wood,/obj/item/weapon/storage/bag/tray,/obj/item/weapon/reagent_containers/food/snacks/burger/spell,/turf/unsimulated/floor{dir = 10; icon_state = "carpetside"},/area/wizard_station)
-"pa" = (/turf/unsimulated/floor{dir = 2; icon_state = "carpetside"},/area/wizard_station)
-"pb" = (/obj/structure/table/wood,/obj/effect/landmark{name = "Teleport-Scroll"},/turf/unsimulated/floor{dir = 6; icon_state = "carpetside"},/area/wizard_station)
-"pc" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2)
-"pd" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1)
-"pe" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"pf" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Infirmary"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"pg" = (/obj/machinery/door/window{dir = 8; name = "Tool Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"ph" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"pi" = (/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
-"pj" = (/obj/machinery/camera{pixel_x = 11; pixel_y = -9; network = list("thunder"); c_tag = "Red Team"},/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2)
-"pk" = (/turf/simulated/floor/bluegrid,/area/tdome/arena)
-"pl" = (/obj/machinery/flasher{id = "tdomeflash"; name = "Thunderdome Flash"},/turf/simulated/floor/bluegrid,/area/tdome/arena)
-"pm" = (/obj/machinery/camera{pixel_x = 12; pixel_y = -10; network = list("thunder"); c_tag = "Green Team"},/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1)
-"pn" = (/obj/structure/table,/obj/item/weapon/gun/syringe{pixel_x = 1; pixel_y = 2},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"po" = (/obj/structure/table,/obj/item/weapon/reagent_containers/syringe/antitoxin,/obj/item/weapon/reagent_containers/syringe/antitoxin{pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/antitoxin{pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"pp" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"pq" = (/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"pr" = (/obj/structure/table,/obj/item/device/sbeacondrop/bomb{pixel_y = 5},/obj/item/device/sbeacondrop/bomb,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"ps" = (/obj/structure/table,/obj/item/weapon/grenade/syndieminibomb{pixel_x = 4; pixel_y = 2},/obj/item/weapon/grenade/syndieminibomb{pixel_x = -1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"pt" = (/obj/structure/bookcase,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"pu" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"pv" = (/obj/structure/table/wood,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"pw" = (/obj/structure/table/wood,/obj/item/weapon/dice/d20,/obj/item/weapon/dice,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"px" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/head/wizard/marisa,/obj/item/weapon/staff/broom,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
-"py" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
-"pz" = (/obj/machinery/camera{pixel_x = 10; network = list("thunder"); c_tag = "Arena"},/turf/simulated/floor/bluegrid,/area/tdome/arena)
-"pA" = (/obj/machinery/telecomms/allinone{intercept = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"pB" = (/obj/effect/landmark{name = "Nuclear-Bomb"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"pC" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/chips,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"pD" = (/obj/structure/table/wood,/obj/item/weapon/spacecash,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"pE" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/shoes/sandal,/obj/item/clothing/head/wizard/red,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
-"pF" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
-"pG" = (/obj/structure/table,/obj/item/robot_parts/r_arm,/obj/item/weapon/storage/firstaid/regular{pixel_x = 0; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"pH" = (/obj/structure/closet/crate/internals,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"pI" = (/obj/structure/closet/crate/medical,/obj/item/weapon/surgicaldrill,/obj/item/weapon/scalpel,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"pJ" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
-"pK" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"pL" = (/obj/machinery/teleport/hub/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"pM" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/syndicate_station/start)
-"pN" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/syndicate_station/start)
-"pO" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/space,/area/syndicate_station/start)
-"pP" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/wizard_station)
-"pQ" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/wizard_station)
-"pR" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 5},/area/wizard_station)
-"pS" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"pT" = (/obj/structure/showcase{desc = "A historical figure of great importance to the wizard federation. He spent his long life learning magic, stealing artifacts, and harassing idiots with swords. May he rest forever, Rodney."; icon = 'icons/mob/mob.dmi'; icon_state = "nim"; name = "wizard of yendor showcase"},/turf/unsimulated/floor{dir = 1; icon_state = "chapel"},/area/wizard_station)
-"pU" = (/obj/structure/table/reinforced,/obj/structure/kitchenspike,/turf/unsimulated/floor{dir = 4; icon_state = "chapel"},/area/wizard_station)
-"pV" = (/obj/structure/table/reinforced,/obj/structure/kitchenspike,/turf/unsimulated/floor{dir = 1; icon_state = "chapel"},/area/wizard_station)
-"pW" = (/obj/effect/decal/cleanable/cobweb2,/obj/structure/showcase{desc = "A strange machine supposedly from another world. The Wizard Federation has been meddling with it for years."; icon_state = "processor"; name = "byond random number generator"},/turf/unsimulated/floor{dir = 4; icon_state = "chapel"},/area/wizard_station)
-"pX" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
-"pY" = (/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station)
-"pZ" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station)
-"qa" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/wizard_station)
-"qb" = (/turf/unsimulated/floor{dir = 8; icon_state = "chapel"},/area/wizard_station)
-"qc" = (/obj/effect/decal/cleanable/blood,/mob/living/carbon/monkey,/turf/unsimulated/floor{icon_state = "chapel"},/area/wizard_station)
-"qd" = (/turf/unsimulated/floor{icon_state = "chapel"},/area/wizard_station)
-"qe" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
-"qf" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/tdome/tdomeadmin)
-"qg" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeadmin)
-"qh" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/tdome/tdomeadmin)
-"qi" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
-"qj" = (/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station)
-"qk" = (/turf/unsimulated/floor{dir = 1; icon_state = "chapel"},/area/wizard_station)
-"ql" = (/turf/unsimulated/floor{dir = 4; icon_state = "chapel"},/area/wizard_station)
-"qm" = (/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin)
-"qn" = (/obj/structure/stool/bed/chair{dir = 1},/obj/effect/landmark{name = "tdomeadmin"},/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin)
-"qo" = (/obj/structure/table,/obj/machinery/computer/security/telescreen{pixel_y = 0},/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin)
-"qp" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 1},/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin)
-"qq" = (/obj/machinery/flasher_button{id = "tdomeflash"; pixel_x = 0; pixel_y = 0},/obj/structure/table,/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin)
-"qr" = (/obj/effect/decal/cleanable/molten_item,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station)
-"qs" = (/turf/unsimulated/wall/fakeglass,/area/wizard_station)
-"qt" = (/obj/structure/rack,/obj/item/weapon/kitchenknife/ritual,/turf/unsimulated/floor{dir = 8; icon_state = "chapel"},/area/wizard_station)
-"qu" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{dir = 8; icon_state = "chapel"},/area/wizard_station)
-"qv" = (/obj/structure/rack,/obj/item/weapon/kitchenknife/ritual,/turf/unsimulated/floor{icon_state = "chapel"},/area/wizard_station)
-"qw" = (/turf/unsimulated/wall,/area/tdome/tdomeadmin)
-"qx" = (/obj/machinery/computer/security/telescreen{pixel_y = -32},/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin)
-"qy" = (/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeadmin)
-"qz" = (/turf/unsimulated/wall/fakedoor{name = "Thunderdome Admin"},/area/tdome/tdomeadmin)
-"qA" = (/obj/structure/table,/obj/machinery/door_control{id = "thunderdomehea"; name = "Heavy Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeadmin)
-"qB" = (/obj/structure/table,/obj/machinery/door_control{id = "thunderdome"; name = "Main Blast Doors Control"; pixel_y = 0; req_access_txt = "102"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeadmin)
-"qC" = (/obj/structure/table,/obj/machinery/door_control{id = "thunderdomegen"; name = "General Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeadmin)
-"qD" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"qE" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"qF" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"qG" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"qH" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"qI" = (/obj/structure/rack,/obj/item/device/camera,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
-"qJ" = (/obj/structure/rack,/obj/item/toy/sword,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
-"qK" = (/obj/structure/rack,/obj/item/toy/gun,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
-"qL" = (/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
-"qM" = (/turf/unsimulated/beach/sand,/area/centcom/holding)
-"qN" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/centcom/holding)
-"qO" = (/obj/effect/overlay/palmtree_l,/turf/unsimulated/beach/sand,/area/centcom/holding)
-"qP" = (/obj/structure/table,/obj/item/clothing/head/that,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"qQ" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
-"qR" = (/obj/item/device/camera,/turf/unsimulated/beach/sand,/area/centcom/holding)
-"qS" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"qT" = (/obj/structure/table,/obj/item/weapon/lighter/zippo,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"qU" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"qV" = (/obj/structure/table,/obj/item/weapon/dice/d20,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"qW" = (/obj/structure/stool{pixel_y = 8},/obj/item/clothing/head/bandana{pixel_y = -10},/obj/item/clothing/glasses/sunglasses,/turf/unsimulated/beach/sand,/area/centcom/holding)
-"qX" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/beach/sand,/area/centcom/holding)
-"qY" = (/obj/structure/rack,/obj/item/clothing/head/that,/obj/item/clothing/under/suit_jacket,/obj/item/clothing/tie/waistcoat,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
-"qZ" = (/obj/item/weapon/beach_ball,/turf/unsimulated/beach/sand,/area/centcom/holding)
-"ra" = (/obj/structure/rack,/obj/item/weapon/storage/fancy/crayons,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
-"rb" = (/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
-"rc" = (/turf/unsimulated/beach/coastline,/area/centcom/holding)
-"rd" = (/obj/item/clothing/head/collectable/paper,/turf/unsimulated/beach/coastline,/area/centcom/holding)
-"re" = (/obj/structure/rack,/obj/item/clothing/shoes/laceup,/obj/item/clothing/under/suit_jacket/female{desc = "A black trouser suit for women. Very formal."; name = "black suit"; pixel_x = 3; pixel_y = 1},/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
-"rf" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
-"rg" = (/turf/unsimulated/beach/water,/area/centcom/holding)
-"rh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{name = "plating"},/area/centcom/holding)
-"ri" = (/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/holding)
-"rj" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{name = "plating"},/area/centcom/holding)
-"rk" = (/obj/effect/landmark{name = "Holding Facility"},/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/holding)
+"ei" = (/turf/simulated/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/source_boxingcourt)
+"ej" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns15,/area/space)
+"ek" = (/turf/simulated/floor/beach/coastline,/area/holodeck/source_beach)
+"el" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area/space)
+"em" = (/turf/simulated/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/source_basketball)
+"en" = (/obj/structure/holohoop{dir = 1},/turf/simulated/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/source_basketball)
+"eo" = (/turf/simulated/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/source_basketball)
+"ep" = (/turf/simulated/floor/beach/water,/area/holodeck/source_beach)
+"eq" = (/obj/structure/table/holotable,/turf/simulated/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/source_thunderdomecourt)
+"er" = (/obj/structure/table/holotable,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/under/color/green,/obj/item/weapon/holo/esword/green,/turf/simulated/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/source_thunderdomecourt)
+"es" = (/obj/structure/table/holotable,/obj/machinery/readybutton,/turf/simulated/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/source_thunderdomecourt)
+"et" = (/turf/simulated/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/source_boxingcourt)
+"eu" = (/turf/simulated/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/source_boxingcourt)
+"ev" = (/obj/machinery/readybutton,/turf/simulated/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/source_boxingcourt)
+"ew" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns13,/area/space)
+"ex" = (/turf/unsimulated/wall{icon_state = "iron5"},/area/space)
+"ey" = (/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/wall{icon_state = "iron12"},/area/space)
+"ez" = (/turf/unsimulated/wall{icon_state = "iron13"},/area/space)
+"eA" = (/turf/unsimulated/wall{icon_state = "iron9"},/area/space)
+"eB" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area/space)
+"eC" = (/turf/unsimulated/wall,/area/tdome/arena_source)
+"eD" = (/obj/machinery/igniter,/turf/simulated/floor/plasteel,/area/tdome/arena_source)
+"eE" = (/turf/simulated/floor/plasteel,/area/tdome/arena_source)
+"eF" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area/space)
+"eG" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/red,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source)
+"eH" = (/obj/machinery/door/poddoor{id = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source)
+"eI" = (/obj/machinery/door/poddoor{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/unsimulated/floor{name = "plating"},/area/tdome/arena_source)
+"eJ" = (/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/tdome/arena_source)
+"eK" = (/turf/simulated/floor/plasteel{icon_state = "green"; dir = 4},/area/tdome/arena_source)
+"eL" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/green,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source)
+"eM" = (/turf/simulated/floor/bluegrid,/area/tdome/arena_source)
+"eN" = (/obj/machinery/flasher{id = "tdomeflash"; name = "Thunderdome Flash"},/turf/simulated/floor/bluegrid,/area/tdome/arena_source)
+"eO" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source)
+"eP" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source)
+"eQ" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source)
+"eR" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns7,/area/space)
+"eS" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area/space)
+"eT" = (/turf/space/transit/north/shuttlespace_ns5,/area/syndicate_station/transit)
+"eU" = (/turf/space/transit/north/shuttlespace_ns11,/area/syndicate_station/transit)
+"eV" = (/turf/space/transit/north/shuttlespace_ns3,/area/syndicate_station/transit)
+"eW" = (/turf/space/transit/north/shuttlespace_ns13,/area/syndicate_station/transit)
+"eX" = (/turf/space/transit/north/shuttlespace_ns7,/area/syndicate_station/transit)
+"eY" = (/turf/space/transit/north/shuttlespace_ns14,/area/syndicate_station/transit)
+"eZ" = (/turf/space/transit/north/shuttlespace_ns4,/area/syndicate_station/transit)
+"fa" = (/turf/space/transit/north/shuttlespace_ns10,/area/syndicate_station/transit)
+"fb" = (/turf/space/transit/north/shuttlespace_ns1,/area/syndicate_station/transit)
+"fc" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns5,/area/space)
+"fd" = (/turf/space/transit/north/shuttlespace_ns2,/area/syndicate_station/transit)
+"fe" = (/turf/space/transit/north/shuttlespace_ns12,/area/syndicate_station/transit)
+"ff" = (/turf/space/transit/north/shuttlespace_ns6,/area/syndicate_station/transit)
+"fg" = (/turf/space/transit/north/shuttlespace_ns9,/area/syndicate_station/transit)
+"fh" = (/turf/space/transit/north/shuttlespace_ns15,/area/syndicate_station/transit)
+"fi" = (/turf/space/transit/north/shuttlespace_ns8,/area/syndicate_station/transit)
+"fj" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns3,/area/space)
+"fk" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns2,/area/space)
+"fl" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns1,/area/space)
+"fm" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns15,/area/space)
+"fn" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns7,/area/space)
+"fo" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns15,/area/space)
+"fp" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area/space)
+"fq" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area/space)
+"fr" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area/space)
+"fs" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns15,/area/space)
+"ft" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area/space)
+"fu" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns1,/area/space)
+"fv" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area/space)
+"fw" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns2,/area/space)
+"fx" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area/space)
+"fy" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns3,/area/space)
+"fz" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area/space)
+"fA" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns8,/area/space)
+"fB" = (/turf/space/transit/north/shuttlespace_ns12,/area/shuttle/escape_pod1/transit)
+"fC" = (/turf/space/transit/north/shuttlespace_ns7,/area/shuttle/escape_pod1/transit)
+"fD" = (/turf/space/transit/north/shuttlespace_ns9,/area/shuttle/escape_pod1/transit)
+"fE" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area/space)
+"fF" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area/space)
+"fG" = (/turf/space/transit/north/shuttlespace_ns3,/area/shuttle/escape_pod2/transit)
+"fH" = (/turf/space/transit/north/shuttlespace_ns14,/area/shuttle/escape_pod2/transit)
+"fI" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/escape_pod2/transit)
+"fJ" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns7,/area/space)
+"fK" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns8,/area/space)
+"fL" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/escape_pod1/transit)
+"fM" = (/turf/space/transit/north/shuttlespace_ns6,/area/shuttle/escape_pod1/transit)
+"fN" = (/turf/space/transit/north/shuttlespace_ns8,/area/shuttle/escape_pod1/transit)
+"fO" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns3,/area/space)
+"fP" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns9,/area/space)
+"fQ" = (/turf/space/transit/north/shuttlespace_ns2,/area/shuttle/escape_pod2/transit)
+"fR" = (/turf/space/transit/north/shuttlespace_ns13,/area/shuttle/escape_pod2/transit)
+"fS" = (/turf/space/transit/north/shuttlespace_ns10,/area/shuttle/escape_pod2/transit)
+"fT" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area/space)
+"fU" = (/turf/space/transit/north/shuttlespace_ns10,/area/shuttle/escape_pod1/transit)
+"fV" = (/turf/space/transit/north/shuttlespace_ns5,/area/shuttle/escape_pod1/transit)
+"fW" = (/turf/space/transit/north/shuttlespace_ns1,/area/shuttle/escape_pod2/transit)
+"fX" = (/turf/space/transit/north/shuttlespace_ns12,/area/shuttle/escape_pod2/transit)
+"fY" = (/turf/space/transit/north/shuttlespace_ns9,/area/shuttle/escape_pod2/transit)
+"fZ" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns5,/area/space)
+"ga" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area/space)
+"gb" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area/space)
+"gc" = (/turf/space/transit/north/shuttlespace_ns4,/area/shuttle/escape_pod1/transit)
+"gd" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns1,/area/space)
+"ge" = (/turf/space/transit/north/shuttlespace_ns15,/area/shuttle/escape_pod2/transit)
+"gf" = (/turf/space/transit/north/shuttlespace_ns8,/area/shuttle/escape_pod2/transit)
+"gg" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area/space)
+"gh" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area/space)
+"gi" = (/turf/unsimulated/wall,/area/start)
+"gj" = (/obj/effect/landmark/start,/turf/unsimulated/floor,/area/start)
+"gk" = (/turf/unsimulated/wall/splashscreen,/area/start)
+"gl" = (/turf/space,/area/shuttle/escape_pod1/centcom)
+"gm" = (/turf/space,/area/shuttle/escape_pod2/centcom)
+"gn" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/centcom/evac)
+"go" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 1},/turf/space,/area/centcom/evac)
+"gp" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 1},/turf/space,/area/centcom/evac)
+"gq" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 1},/turf/space,/area/centcom/evac)
+"gr" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/centcom/evac)
+"gs" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/centcom/evac)
+"gt" = (/obj/structure/window/reinforced,/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 1},/turf/simulated/floor/plating/airless,/area/centcom/evac)
+"gu" = (/turf/simulated/shuttle/wall{icon_state = "swall7"; dir = 2},/area/centcom/evac)
+"gv" = (/turf/simulated/shuttle/wall{icon_state = "swall8"; dir = 2},/area/centcom/evac)
+"gw" = (/obj/machinery/door/airlock/shuttle,/turf/simulated/shuttle/plating,/area/centcom/evac)
+"gx" = (/turf/simulated/shuttle/wall{icon_state = "swall0"; dir = 2},/area/centcom/evac)
+"gy" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac)
+"gz" = (/turf/simulated/shuttle/wall{icon_state = "swall4"; dir = 2},/area/centcom/evac)
+"gA" = (/turf/simulated/shuttle/wall{icon_state = "swall11"; dir = 2},/area/centcom/evac)
+"gB" = (/turf/simulated/shuttle/plating,/area/centcom/evac)
+"gC" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/centcom/evac)
+"gD" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/centcom/evac)
+"gE" = (/obj/structure/closet/emcloset,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"gF" = (/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/centcom/evac)
+"gG" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"gH" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/fire{pixel_x = -2; pixel_y = 4},/turf/simulated/shuttle/floor,/area/centcom/evac)
+"gI" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 0},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/simulated/shuttle/floor,/area/centcom/evac)
+"gJ" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/centcom/evac)
+"gK" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_f10"; layer = 2},/area/centcom/evac)
+"gL" = (/turf/simulated/shuttle/wall{icon_state = "swall1"; dir = 2},/area/centcom/evac)
+"gM" = (/turf/simulated/shuttle/floor,/area/centcom/evac)
+"gN" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/centcom/evac)
+"gO" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/centcom/evac)
+"gP" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/centcom/evac)
+"gQ" = (/turf/simulated/shuttle/wall{icon_state = "swallc1"; dir = 2},/area/centcom/evac)
+"gR" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
+"gS" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
+"gT" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
+"gU" = (/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
+"gV" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/simulated/shuttle/floor,/area/centcom/evac)
+"gW" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor,/area/centcom/evac)
+"gX" = (/turf/simulated/shuttle/wall{icon_state = "swallc2"; dir = 2},/area/centcom/evac)
+"gY" = (/obj/machinery/computer/secure_data,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
+"gZ" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
+"ha" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
+"hb" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/stamp,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
+"hc" = (/obj/structure/table,/obj/item/device/flash/handheld,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
+"hd" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
+"he" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor,/area/centcom/evac)
+"hf" = (/turf/space,/area/shuttle/escape_pod3/centcom)
+"hg" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
+"hh" = (/obj/machinery/door/window/northright{base_state = "right"; dir = 4; icon_state = "right"; name = "Security Desk"; req_access_txt = "103"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
+"hi" = (/obj/structure/stool/bed,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"hj" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/simulated/shuttle/plating,/area/centcom/evac)
+"hk" = (/turf/space,/area/shuttle/escape_pod4/centcom)
+"hl" = (/obj/machinery/door/airlock/shuttle,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/centcom/evac)
+"hm" = (/turf/simulated/shuttle/wall{icon_state = "swall2"; dir = 2},/area/centcom/evac)
+"hn" = (/turf/unsimulated/wall,/area/centcom/suppy)
+"ho" = (/obj/structure/table,/obj/structure/bedsheetbin,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"hp" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"hq" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"hr" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/supply/dock)
+"hs" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/supply/dock)
+"ht" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/supply/dock)
+"hu" = (/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/centcom/evac)
+"hv" = (/turf/simulated/shuttle/wall{icon_state = "swallc4"; dir = 2},/area/centcom/evac)
+"hw" = (/obj/machinery/door/airlock/shuttle{name = "Cockpit"; req_access_txt = "109"},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/centcom/evac)
+"hx" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/supply/dock)
+"hy" = (/turf/simulated/shuttle/floor,/area/supply/dock)
+"hz" = (/obj/structure/table,/obj/item/device/radio/off,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"hA" = (/obj/structure/stool/bed/chair{dir = 4; name = "Prosecution"},/turf/simulated/shuttle/floor,/area/centcom/evac)
+"hB" = (/obj/structure/filingcabinet,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"hC" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"hD" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/obj/machinery/door/poddoor{id = "QMLoaddoor2"; name = "supply dock loading door"},/turf/simulated/shuttle/plating,/area/supply/dock)
+"hE" = (/turf/unsimulated/wall/fakedoor,/area/centcom/suppy)
+"hF" = (/obj/structure/table,/obj/item/weapon/storage/lockbox,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"hG" = (/obj/structure/table,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"hH" = (/obj/machinery/computer/shuttle,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"hI" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"hJ" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"hK" = (/obj/machinery/door/airlock/shuttle{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/turf/simulated/shuttle/plating,/area/supply/dock)
+"hL" = (/obj/machinery/door_control{dir = 2; id = "QMLoaddoor2"; name = "Loading Doors"; pixel_x = 24; pixel_y = 8},/obj/machinery/door_control{id = "QMLoaddoor"; name = "Loading Doors"; pixel_x = 24; pixel_y = -8},/turf/simulated/shuttle/floor,/area/supply/dock)
+"hM" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/door/poddoor{id = "QMLoaddoor"; name = "supply dock loading door"},/turf/simulated/shuttle/plating,/area/supply/dock)
+"hN" = (/turf/simulated/shuttle/wall{icon_state = "swall7"; dir = 2},/area/supply/dock)
+"hO" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/supply/dock)
+"hP" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/supply/dock)
+"hQ" = (/turf/simulated/shuttle/wall{icon_state = "swall11"; dir = 2},/area/supply/dock)
+"hR" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/supply/dock)
+"hS" = (/turf/simulated/shuttle/wall{icon_state = "swall15"; dir = 2},/area/supply/dock)
+"hT" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/simulated/floor/plating/airless,/area/supply/dock)
+"hU" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/supply/dock)
+"hV" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"},/turf/space,/area/supply/dock)
+"hW" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/supply/dock)
+"hX" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"},/turf/space,/area/supply/dock)
+"hY" = (/turf/unsimulated/wall,/area/centcom/control)
+"hZ" = (/turf/unsimulated/wall/fakedoor,/area/centcom/control)
+"ia" = (/turf/unsimulated/wall,/area/centcom/evac)
+"ib" = (/turf/unsimulated/floor{icon_state = "green"; dir = 9},/area/centcom/control)
+"ic" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control)
+"id" = (/turf/unsimulated/floor{icon_state = "green"; dir = 5},/area/centcom/control)
+"ie" = (/turf/space,/area/centcom/evac)
+"if" = (/turf/unsimulated/wall,/area/centcom/prison)
+"ig" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "green"; dir = 9},/area/centcom/control)
+"ih" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 1},/area/centcom/control)
+"ii" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 4},/area/centcom/control)
+"ij" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "green"; dir = 5},/area/centcom/control)
+"ik" = (/obj/effect/landmark{name = "prisonwarp"},/turf/unsimulated/floor{name = "plating"},/area/centcom/prison)
+"il" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/control)
+"im" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/control)
+"in" = (/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/control)
+"io" = (/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/control)
+"ip" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/shuttle/escape/centcom)
+"iq" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
+"ir" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/escape/centcom)
+"is" = (/turf/unsimulated/wall/fakedoor{name = "Centcom Security"},/area/centcom/evac)
+"it" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/obj{anchored = 1; icon_state = "floor3"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/shuttle/escape/centcom)
+"iu" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"iv" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"iw" = (/obj/machinery/computer/emergency_shuttle,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"ix" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"iy" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/obj{anchored = 1; icon_state = "floor3"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/shuttle/escape/centcom)
+"iz" = (/obj/machinery/door/poddoor{id = "CentComPort"; name = "security door"},/turf/unsimulated/floor{dir = 1; icon_state = "loadingarea"},/area/centcom/control)
+"iA" = (/obj/machinery/door/airlock/centcom{name = "Centcom Security"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
+"iB" = (/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
+"iC" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
+"iD" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/shuttle/escape/centcom)
+"iE" = (/obj/machinery/computer/atmos_alert,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"iF" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"iG" = (/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"iH" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"iI" = (/obj/machinery/computer/security,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"iJ" = (/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
+"iK" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/control)
+"iL" = (/obj/machinery/door_control{desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "CentComPort"; name = "Security Doors"; pixel_y = 28; req_access_txt = "101"},/obj/structure/showcase/fakeid,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
+"iM" = (/obj/machinery/computer/crew,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"iN" = (/obj/structure/stool/bed/chair{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"iO" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"iP" = (/obj/machinery/flasher_button{id = "cockpit_flasher"; pixel_x = 6; pixel_y = -24},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"iQ" = (/obj/machinery/computer/communications,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"iR" = (/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/control)
+"iS" = (/obj/structure/table/reinforced,/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 4; icon_state = "rightsecure"; name = "Centcom Customs"; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
+"iT" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
+"iU" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
+"iV" = (/obj/structure/stool/bed/chair/office/dark,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
+"iW" = (/obj/structure/showcase/fakesec,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
+"iX" = (/turf/simulated/shuttle/wall{icon_state = "swall13"; dir = 2},/area/shuttle/escape/centcom)
+"iY" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/escape/centcom)
+"iZ" = (/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/shuttle/escape/centcom)
+"ja" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Cockpit"; req_access_txt = "19"},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"jb" = (/obj/machinery/status_display,/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/escape/centcom)
+"jc" = (/turf/unsimulated/wall,/area/centcom/ferry)
+"jd" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
+"je" = (/obj/structure/table,/obj/item/weapon/stamp{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stamp/denied{pixel_x = 4; pixel_y = -2},/obj/item/weapon/paper/centcom,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
+"jf" = (/obj/machinery/door/window/northleft{dir = 2; name = "Centcom Security"; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
+"jg" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
+"jh" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
+"ji" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
+"jj" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom)
+"jk" = (/obj/machinery/flasher{id = "cockpit_flasher"; pixel_x = 6; pixel_y = 24},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"jl" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"jm" = (/obj/structure/closet/emcloset,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"jn" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"jo" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_y = 4},/obj/item/weapon/pen,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
+"jp" = (/obj/structure/mirror{pixel_y = 32},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
+"jq" = (/obj/structure/dresser,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
+"jr" = (/obj/machinery/door/poddoor/preopen{id = "CentComPort"; name = "security door"},/turf/unsimulated/floor{dir = 1; icon_state = "loadingarea"},/area/centcom/control)
+"js" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/evac)
+"jt" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/centcom/evac)
+"ju" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/centcom/evac)
+"jv" = (/obj/machinery/flasher{id = "shuttle_flasher"; pixel_x = -24; pixel_y = 6},/obj/machinery/flasher_button{id = "shuttle_flasher"; pixel_x = -24; pixel_y = -6},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom)
+"jw" = (/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom)
+"jx" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Brig"; req_access_txt = "2"},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"jy" = (/obj/structure/stool,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
+"jz" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
+"jA" = (/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/space)
+"jB" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/control)
+"jC" = (/turf/unsimulated/floor{icon_state = "bot"},/area/centcom/control)
+"jD" = (/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/control)
+"jE" = (/obj/machinery/door/airlock/external{name = "Arrivals Docking Bay 1"},/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/evac)
+"jF" = (/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/evac)
+"jG" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"; req_access_txt = "2"},/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
+"jH" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom)
+"jI" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"jJ" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"jK" = (/obj/structure/table,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"jL" = (/obj/machinery/door/airlock/centcom{name = "Dressing Room"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
+"jM" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/control)
+"jN" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/control)
+"jO" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/centcom/control)
+"jP" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/centcom/control)
+"jQ" = (/obj/machinery/door/airlock/centcom{name = "Centcom Security"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
+"jR" = (/turf/simulated/shuttle/wall{icon_state = "swall7"; dir = 2},/area/shuttle/escape/centcom)
+"jS" = (/turf/simulated/shuttle/wall{icon_state = "swallc4"; dir = 2},/area/shuttle/escape/centcom)
+"jT" = (/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry)
+"jU" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/ferry)
+"jV" = (/turf/unsimulated/floor{dir = 8; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry)
+"jW" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry)
+"jX" = (/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/ferry)
+"jY" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 8},/area/centcom/control)
+"jZ" = (/turf/unsimulated/floor{icon_state = "greencorner"},/area/centcom/control)
+"ka" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/evac)
+"kb" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac)
+"kc" = (/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/evac)
+"kd" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
+"ke" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"kf" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"kg" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/shuttle/transport1/centcom)
+"kh" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/transport1/centcom)
+"ki" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/shuttle/transport1/centcom)
+"kj" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom)
+"kk" = (/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/shuttle/transport1/centcom)
+"kl" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 8},/turf/space,/area/shuttle/transport1/centcom)
+"km" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/ferry)
+"kn" = (/obj/effect/landmark{name = "Deathsquad"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry)
+"ko" = (/turf/unsimulated/wall/fakeglass,/area/centcom/control)
+"kp" = (/obj/structure/stool/bed/chair{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"kq" = (/obj/structure/stool/bed/chair{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"kr" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"ks" = (/turf/unsimulated/wall,/area/syndicate_mothership)
+"kt" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/shuttle/transport1/centcom)
+"ku" = (/obj/machinery/computer/shuttle/ferry/request,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
+"kv" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/shuttle/transport1/centcom)
+"kw" = (/turf/simulated/shuttle/wall{icon_state = "swall11"; dir = 2},/area/shuttle/transport1/centcom)
+"kx" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
+"ky" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/shuttle/transport1/centcom)
+"kz" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/ferry)
+"kA" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (SOUTHEAST)"; icon_state = "fakewindows"; dir = 6},/area/centcom/ferry)
+"kB" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "greencorner"; dir = 1},/area/centcom/evac)
+"kC" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
+"kD" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
+"kE" = (/obj/structure/flora/tree/pine,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
+"kF" = (/obj/structure/flora/grass/both,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
+"kG" = (/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
+"kH" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
+"kI" = (/obj/machinery/door/airlock/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
+"kJ" = (/obj/machinery/door/airlock/external{name = "Ferry Airlock"; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/ferry)
+"kK" = (/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/ferry)
+"kL" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 4},/area/centcom/ferry)
+"kM" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/ferry)
+"kN" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/unsimulated/wall,/area/centcom/evac)
+"kO" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/shuttle/transport1/centcom)
+"kP" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/shuttle/transport1/centcom)
+"kQ" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/shuttle/transport1/centcom)
+"kR" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
+"kS" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 5},/area/centcom/ferry)
+"kT" = (/obj/machinery/door/airlock/centcom{name = "Transport Shuttle"; opacity = 1; req_access_txt = "109"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry)
+"kU" = (/obj/structure/flora/bush,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
+"kV" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/shuttle/transport1/centcom)
+"kW" = (/turf/simulated/shuttle/wall{icon_state = "swall13"; dir = 2},/area/shuttle/transport1/centcom)
+"kX" = (/turf/unsimulated/floor{icon_state = "greencorner"},/area/centcom/ferry)
+"kY" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "greencorner"; dir = 8},/area/centcom/evac)
+"kZ" = (/turf/unsimulated/wall/fakeglass,/area/centcom/ferry)
+"la" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"lb" = (/turf/unsimulated/wall,/area/centcom/holding)
+"lc" = (/turf/unsimulated/wall/fakedoor{name = "Shuttle Bay B"},/area/centcom/holding)
+"ld" = (/obj/machinery/door/airlock/centcom{name = "Centcom"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
+"le" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Cargo"},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"lf" = (/obj/machinery/status_display,/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/shuttle/escape/centcom)
+"lg" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Infirmary"},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"lh" = (/turf/simulated/shuttle/wall{icon_state = "swall11"; dir = 2},/area/shuttle/escape/centcom)
+"li" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership)
+"lj" = (/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/escape/centcom)
+"lk" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/escape/centcom)
+"ll" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"lm" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/syndicate_station/start)
+"ln" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_station/start)
+"lo" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters{id = "syndieshutters"; name = "blast shutters"},/obj/structure/window/reinforced/fulltile,/turf/simulated/shuttle/plating,/area/syndicate_station/start)
+"lp" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/syndicate_station/start)
+"lq" = (/turf/unsimulated/wall,/area/tdome/tdomeobserve)
+"lr" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 9},/area/tdome/tdomeobserve)
+"ls" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/tdome/tdomeobserve)
+"lt" = (/obj/machinery/door/airlock/centcom{name = "Thunderdome"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdomeobserve)
+"lu" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/tdome/tdomeobserve)
+"lv" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 5},/area/tdome/tdomeobserve)
+"lw" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = -28; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"lx" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"ly" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"lz" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"lA" = (/obj/structure/table,/obj/item/device/flashlight/lamp{pixel_x = 4; pixel_y = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"lB" = (/obj/machinery/computer/syndicate_station{req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"lC" = (/obj/structure/table,/obj/machinery/door_control{id = "syndieshutters"; name = "remote shutter control"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"lD" = (/obj/structure/computerframe,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"lE" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership)
+"lF" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership)
+"lG" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/syndicate_mothership)
+"lH" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/grass/both,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership)
+"lI" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/tree/pine,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership)
+"lJ" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve)
+"lK" = (/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve)
+"lL" = (/turf/unsimulated/wall/fakeglass,/area/tdome/tdomeobserve)
+"lM" = (/turf/unsimulated/floor{icon_state = "neutral"; dir = 8},/area/tdome/tdomeobserve)
+"lN" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdomeobserve)
+"lO" = (/turf/unsimulated/floor{icon_state = "neutral"; dir = 4},/area/tdome/tdomeobserve)
+"lP" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "green"; dir = 9},/area/centcom/evac)
+"lQ" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac)
+"lR" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac)
+"lS" = (/obj/structure/closet,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/escape/centcom)
+"lT" = (/obj/structure/closet/crate,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/escape/centcom)
+"lU" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"lV" = (/obj/structure/stool/bed/chair/comfy/black{dir = 1; icon_state = "comfychair"; name = "pilot's chair"; tag = "icon-comfychair (NORTH)"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"lW" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership)
+"lX" = (/obj/item/weapon/storage/fancy/crayons,/obj/structure/table,/obj/item/weapon/storage/fancy/crayons,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"lY" = (/obj/machinery/washing_machine,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"lZ" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve)
+"ma" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve)
+"mb" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve)
+"mc" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/evac)
+"md" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac)
+"me" = (/obj/structure/filingcabinet/filingcabinet,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac)
+"mf" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/shuttle/escape/centcom)
+"mg" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/simulated/floor/plating/airless,/area/shuttle/escape/centcom)
+"mh" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/shuttle/escape/centcom)
+"mi" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 10},/obj/item/device/multitool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"mj" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_y = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"mk" = (/obj/structure/closet/syndicate/personal,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"ml" = (/obj/machinery/computer/syndicate_station/recall,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"mm" = (/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"mn" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"mo" = (/obj/machinery/vending/cola,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"mp" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/random = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"mq" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/syndicate_mothership)
+"mr" = (/obj/item/device/paicard,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
+"ms" = (/obj/structure/stool/bed/chair/comfy/teal,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
+"mt" = (/obj/structure/bookcase,/obj/item/weapon/book/manual/wiki/engineering_hacking,/obj/item/weapon/book/manual/robotics_cyborgs,/obj/item/weapon/book/manual/engineering_singularity_safety,/obj/item/weapon/book/manual/detective,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
+"mu" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/tdome/tdomeobserve)
+"mv" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/shuttle/escape/centcom)
+"mw" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/syndicate_station/start)
+"mx" = (/obj/machinery/door/window{name = "Cockpit"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"my" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/syndicate_station/start)
+"mz" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/grass/brown,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership)
+"mA" = (/obj/item/weapon/paper{info = "GET DAT FUKKEN DISK"; name = "memo"},/obj/structure/noticeboard{pixel_x = -32; pixel_y = 0},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"mB" = (/obj/structure/stool,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"mC" = (/mob/living/simple_animal/hostile/retaliate/bat{desc = "A Syndicate experiment in weaponized space carp technology. Its fangs seem to have been intentionally dulled down to prevent accidents."; faction = list("syndicate"); harm_intent_damage = 5; health = 50; icon_dead = "carp_dead"; icon_gib = "carp_gib"; icon_living = "carp"; icon_state = "carp"; name = "Cayenne"; real_name = "Cayenne"; response_disarm = "lightly brushes aside"; response_help = "pets"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"mD" = (/obj/machinery/door/airlock/centcom{name = "Study"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"mE" = (/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
+"mF" = (/turf/unsimulated/floor{dir = 8; icon_state = "red"},/area/tdome/tdomeobserve)
+"mG" = (/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/tdome/tdomeobserve)
+"mH" = (/turf/unsimulated/floor{dir = 10; icon_state = "green"},/area/centcom/evac)
+"mI" = (/turf/unsimulated/floor{icon_state = "green"},/area/centcom/evac)
+"mJ" = (/turf/unsimulated/floor{icon_state = "green"; dir = 6},/area/centcom/evac)
+"mK" = (/obj/structure/table,/obj/item/stack/cable_coil,/obj/item/weapon/crowbar/red,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"mL" = (/obj/structure/table,/obj/item/weapon/storage/box/zipties{pixel_x = 1; pixel_y = 2},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"mM" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_surround"; dir = 8},/area/syndicate_mothership)
+"mN" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 6},/area/syndicate_mothership)
+"mO" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = -2; pixel_y = 5},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"mP" = (/obj/structure/table/wood,/obj/item/pizzabox{ismessy = 1},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"mQ" = (/obj/structure/stool,/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"mR" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (NORTHWEST)"; icon_state = "podhatch"; dir = 9},/area/syndicate_mothership)
+"mS" = (/obj/structure/dresser,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
+"mT" = (/obj/structure/table/wood,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
+"mU" = (/turf/unsimulated/floor{icon_state = "red"; dir = 10},/area/tdome/tdomeobserve)
+"mV" = (/turf/unsimulated/floor{icon_state = "red"; dir = 2},/area/tdome/tdomeobserve)
+"mW" = (/turf/unsimulated/floor{icon_state = "green"},/area/tdome/tdomeobserve)
+"mX" = (/turf/unsimulated/floor{icon_state = "green"; dir = 6},/area/tdome/tdomeobserve)
+"mY" = (/turf/unsimulated/wall/fakedoor{name = "Centcom"},/area/centcom/evac)
+"mZ" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"na" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"nb" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 9},/area/syndicate_mothership)
+"nc" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/syndicate_mothership)
+"nd" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"ne" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = 5; pixel_y = -2; step_x = 0},/obj/item/toy/cards/deck/syndicate{icon_state = "deck_syndicate_full"; pixel_x = -6; pixel_y = 6},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"nf" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (WEST)"; icon_state = "podhatch"; dir = 8},/area/syndicate_mothership)
+"ng" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/syndicate_mothership)
+"nh" = (/turf/unsimulated/floor,/area/syndicate_mothership)
+"ni" = (/obj/machinery/door/poddoor/shutters{id = "nukeop_ready"; name = "shuttle dock"},/turf/unsimulated/floor,/area/syndicate_mothership)
+"nj" = (/turf/space,/area/tdome/tdomeobserve)
+"nk" = (/obj/machinery/suit_storage_unit/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"nl" = (/obj/effect/landmark{name = "Syndicate-Uplink"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"nm" = (/turf/unsimulated/wall/fakeglass,/area/syndicate_mothership)
+"nn" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/unsimulated/floor,/area/syndicate_mothership)
+"no" = (/obj/machinery/door_control{id = "nukeop_ready"; name = "mission launch control"; pixel_x = -26; pixel_y = 0; req_access_txt = "151"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"np" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (SOUTHWEST)"; icon_state = "podhatch"; dir = 10},/area/syndicate_mothership)
+"nq" = (/obj/structure/urinal{pixel_y = 28},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"nr" = (/obj/structure/toilet{pixel_y = 8},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/obj/machinery/door/window{name = "Tactical Toilet"; opacity = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"ns" = (/obj/structure/stool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"nt" = (/obj/structure/table,/obj/item/device/aicard,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"nu" = (/obj/machinery/door/poddoor{auto_close = 300; id = "smindicate"; name = "outer blast door"},/obj/machinery/door_control{id = "smindicate"; name = "external door control"; pixel_x = -26; pixel_y = 0; req_access_txt = "150"},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
+"nv" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_station/start)
+"nw" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 5},/area/syndicate_mothership)
+"nx" = (/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
+"ny" = (/obj/structure/table/wood,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
+"nz" = (/obj/structure/table/wood,/obj/item/device/syndicatedetonator{desc = "This gaudy button can be used to instantly detonate syndicate bombs that have been activated on the station. It is also fun to press."},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
+"nA" = (/obj/machinery/door/airlock/centcom{name = "Restroom"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"nB" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"nC" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 28},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"nD" = (/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve)
+"nE" = (/obj/structure/stool/bed/chair,/obj/effect/landmark{name = "tdomeobserve"},/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve)
+"nF" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'FOURTH WALL'."; name = "\improper FOURTH WALL"; pixel_x = -32},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
+"nG" = (/obj/structure/table,/obj/item/weapon/c4{pixel_x = 2; pixel_y = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"nH" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
+"nI" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
+"nJ" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Uplink Management Control"; req_access_txt = "151"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
+"nK" = (/obj/item/weapon/soap/syndie,/obj/structure/mopbucket,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"nL" = (/obj/item/weapon/mop,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"nM" = (/turf/unsimulated/wall/fakedoor{name = "Thunderdome"},/area/tdome/tdomeobserve)
+"nN" = (/obj/machinery/computer/security/telescreen,/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve)
+"nO" = (/obj/machinery/door/window{dir = 4; name = "EVA Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"nP" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"nQ" = (/obj/machinery/computer/telecrystals/boss,/turf/unsimulated/floor{tag = "icon-podhatch (NORTHEAST)"; icon_state = "podhatch"; dir = 5},/area/syndicate_mothership)
+"nR" = (/obj/structure/sign/map/left{pixel_y = -32},/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_left"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
+"nS" = (/obj/structure/sign/map/right{pixel_y = -32},/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_right"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/gin,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
+"nT" = (/obj/machinery/door/airlock/glass_large{name = "Equipment Room"; opacity = 1; req_access_txt = "150"; text = "g"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"nU" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "EVA Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"nV" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/shuttle/plating,/area/syndicate_station/start)
+"nW" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"nX" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 10},/area/syndicate_mothership)
+"nY" = (/turf/unsimulated/floor{tag = "icon-stage_stairs"; icon_state = "stage_stairs"},/area/syndicate_mothership)
+"nZ" = (/obj/machinery/mech_bay_recharge_port,/turf/unsimulated/floor/plating,/area/syndicate_mothership)
+"oa" = (/turf/unsimulated/floor{icon_state = "recharge_floor"; name = "mech bay recharge floor"; tag = "icon-recharge_floor"},/area/syndicate_mothership)
+"ob" = (/obj/machinery/computer/mech_bay_power_console,/turf/unsimulated/floor/plating,/area/syndicate_mothership)
+"oc" = (/obj/machinery/vending/tool,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"od" = (/turf/unsimulated/wall,/area/wizard_station)
+"oe" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeobserve)
+"of" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"og" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{tag = "icon-gravsnow_corner (NORTH)"; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 1},/area/syndicate_mothership)
+"oh" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/bush,/turf/unsimulated/floor{tag = "icon-gravsnow_corner (NORTH)"; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 1},/area/syndicate_mothership)
+"oi" = (/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"oj" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/obj/effect/decal/cleanable/cobweb,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"ok" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"ol" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"om" = (/obj/machinery/librarycomp,/obj/structure/table/wood,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"on" = (/obj/machinery/vending/magivend,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"oo" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"op" = (/obj/structure/dresser,/obj/item/weapon/storage/backpack/satchel,/turf/unsimulated/floor{dir = 9; icon_state = "carpetside"},/area/wizard_station)
+"oq" = (/obj/structure/mirror{pixel_y = 28},/turf/unsimulated/floor{dir = 1; icon_state = "carpetside"},/area/wizard_station)
+"or" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/wiz,/turf/unsimulated/floor{dir = 5; icon_state = "carpetside"},/area/wizard_station)
+"os" = (/turf/unsimulated/wall,/area/tdome/arena)
+"ot" = (/obj/machinery/igniter,/turf/simulated/floor/plasteel,/area/tdome/arena)
+"ou" = (/turf/simulated/floor/plasteel,/area/tdome/arena)
+"ov" = (/obj/machinery/recharge_station,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"ow" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"ox" = (/obj/structure/table,/obj/machinery/cell_charger,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"oy" = (/obj/structure/table,/obj/item/stack/medical/ointment,/obj/item/stack/medical/bruise_pack,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"oz" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = -28; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"oA" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell/high{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stock_parts/cell/high,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"oB" = (/obj/structure/table,/obj/item/weapon/screwdriver{pixel_y = 9},/obj/item/device/assembly/voice{pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"oC" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/device/assembly/infra,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"oD" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"oE" = (/obj/structure/table,/obj/item/weapon/weldingtool/largetank{pixel_y = 3},/obj/item/device/multitool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"oF" = (/obj/structure/stool,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"oG" = (/turf/unsimulated/floor{dir = 8; icon_state = "carpetside"},/area/wizard_station)
+"oH" = (/obj/effect/landmark/start{name = "wizard"},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/wizard_station)
+"oI" = (/turf/unsimulated/floor{dir = 4; icon_state = "carpetside"},/area/wizard_station)
+"oJ" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/red,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
+"oK" = (/obj/machinery/door/poddoor{id = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
+"oL" = (/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2)
+"oM" = (/obj/machinery/door/poddoor{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/unsimulated/floor{name = "plating"},/area/tdome/arena)
+"oN" = (/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/tdome/arena)
+"oO" = (/turf/simulated/floor/plasteel{icon_state = "green"; dir = 4},/area/tdome/arena)
+"oP" = (/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1)
+"oQ" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/green,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
+"oR" = (/obj/machinery/door/window{dir = 4; name = "Infirmary"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"oS" = (/obj/machinery/door/window/westright{name = "Tool Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"oT" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/syndicate,/obj/item/weapon/crowbar/red,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"oU" = (/obj/structure/closet/syndicate/personal,/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/syndicate_mothership)
+"oV" = (/obj/structure/table,/obj/item/weapon/gun/energy/ionrifle,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"oW" = (/obj/structure/bookcase{name = "bookcase (Tactics)"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"oX" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"oY" = (/obj/structure/table/wood,/obj/item/weapon/storage/bag/tray,/obj/item/weapon/reagent_containers/food/snacks/burger/spell,/turf/unsimulated/floor{dir = 10; icon_state = "carpetside"},/area/wizard_station)
+"oZ" = (/turf/unsimulated/floor{dir = 2; icon_state = "carpetside"},/area/wizard_station)
+"pa" = (/obj/structure/table/wood,/obj/effect/landmark{name = "Teleport-Scroll"},/turf/unsimulated/floor{dir = 6; icon_state = "carpetside"},/area/wizard_station)
+"pb" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2)
+"pc" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1)
+"pd" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"pe" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Infirmary"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"pf" = (/obj/machinery/door/window{dir = 8; name = "Tool Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"pg" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"ph" = (/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
+"pi" = (/obj/machinery/camera{pixel_x = 11; pixel_y = -9; network = list("thunder"); c_tag = "Red Team"},/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2)
+"pj" = (/turf/simulated/floor/bluegrid,/area/tdome/arena)
+"pk" = (/obj/machinery/flasher{id = "tdomeflash"; name = "Thunderdome Flash"},/turf/simulated/floor/bluegrid,/area/tdome/arena)
+"pl" = (/obj/machinery/camera{pixel_x = 12; pixel_y = -10; network = list("thunder"); c_tag = "Green Team"},/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1)
+"pm" = (/obj/structure/table,/obj/item/weapon/gun/syringe{pixel_x = 1; pixel_y = 2},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"pn" = (/obj/structure/table,/obj/item/weapon/reagent_containers/syringe/antitoxin,/obj/item/weapon/reagent_containers/syringe/antitoxin{pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/antitoxin{pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"po" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"pp" = (/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"pq" = (/obj/structure/table,/obj/item/device/sbeacondrop/bomb{pixel_y = 5},/obj/item/device/sbeacondrop/bomb,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"pr" = (/obj/structure/table,/obj/item/weapon/grenade/syndieminibomb{pixel_x = 4; pixel_y = 2},/obj/item/weapon/grenade/syndieminibomb{pixel_x = -1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"ps" = (/obj/structure/bookcase,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"pt" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"pu" = (/obj/structure/table/wood,/obj/item/clothing/gloves/white,/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/suit/wizrobe/santa,/obj/item/clothing/head/wizard/santa,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"pv" = (/obj/structure/table/wood,/obj/item/weapon/dice/d20,/obj/item/weapon/dice,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"pw" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/head/wizard/marisa,/obj/item/weapon/staff/broom,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
+"px" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
+"py" = (/obj/machinery/camera{pixel_x = 10; network = list("thunder"); c_tag = "Arena"},/turf/simulated/floor/bluegrid,/area/tdome/arena)
+"pz" = (/obj/machinery/telecomms/allinone{intercept = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"pA" = (/obj/effect/landmark{name = "Nuclear-Bomb"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"pB" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/chips,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"pC" = (/obj/structure/table/wood,/obj/item/weapon/spacecash,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"pD" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/shoes/sandal,/obj/item/clothing/head/wizard/red,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
+"pE" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
+"pF" = (/obj/structure/table,/obj/item/robot_parts/r_arm,/obj/item/weapon/storage/firstaid/regular{pixel_x = 0; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"pG" = (/obj/structure/closet/crate/internals,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"pH" = (/obj/structure/closet/crate/medical,/obj/item/weapon/surgicaldrill,/obj/item/weapon/scalpel,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"pI" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
+"pJ" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"pK" = (/obj/machinery/teleport/hub/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"pL" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/syndicate_station/start)
+"pM" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/syndicate_station/start)
+"pN" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/space,/area/syndicate_station/start)
+"pO" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/wizard_station)
+"pP" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/wizard_station)
+"pQ" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 5},/area/wizard_station)
+"pR" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"pS" = (/obj/structure/showcase{desc = "A historical figure of great importance to the wizard federation. He spent his long life learning magic, stealing artifacts, and harassing idiots with swords. May he rest forever, Rodney."; icon = 'icons/mob/mob.dmi'; icon_state = "nim"; name = "wizard of yendor showcase"},/turf/unsimulated/floor{dir = 1; icon_state = "chapel"},/area/wizard_station)
+"pT" = (/obj/structure/table/reinforced,/obj/structure/kitchenspike,/turf/unsimulated/floor{dir = 4; icon_state = "chapel"},/area/wizard_station)
+"pU" = (/obj/structure/table/reinforced,/obj/structure/kitchenspike,/turf/unsimulated/floor{dir = 1; icon_state = "chapel"},/area/wizard_station)
+"pV" = (/obj/effect/decal/cleanable/cobweb2,/obj/structure/showcase{desc = "A strange machine supposedly from another world. The Wizard Federation has been meddling with it for years."; icon_state = "processor"; name = "byond random number generator"},/turf/unsimulated/floor{dir = 4; icon_state = "chapel"},/area/wizard_station)
+"pW" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
+"pX" = (/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station)
+"pY" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station)
+"pZ" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/wizard_station)
+"qa" = (/turf/unsimulated/floor{dir = 8; icon_state = "chapel"},/area/wizard_station)
+"qb" = (/obj/effect/decal/cleanable/blood,/mob/living/carbon/monkey,/turf/unsimulated/floor{icon_state = "chapel"},/area/wizard_station)
+"qc" = (/turf/unsimulated/floor{icon_state = "chapel"},/area/wizard_station)
+"qd" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
+"qe" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/tdome/tdomeadmin)
+"qf" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeadmin)
+"qg" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/tdome/tdomeadmin)
+"qh" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
+"qi" = (/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station)
+"qj" = (/turf/unsimulated/floor{dir = 1; icon_state = "chapel"},/area/wizard_station)
+"qk" = (/turf/unsimulated/floor{dir = 4; icon_state = "chapel"},/area/wizard_station)
+"ql" = (/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin)
+"qm" = (/obj/structure/stool/bed/chair{dir = 1},/obj/effect/landmark{name = "tdomeadmin"},/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin)
+"qn" = (/obj/structure/table,/obj/machinery/computer/security/telescreen{pixel_y = 0},/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin)
+"qo" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 1},/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin)
+"qp" = (/obj/machinery/flasher_button{id = "tdomeflash"; pixel_x = 0; pixel_y = 0},/obj/structure/table,/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin)
+"qq" = (/obj/effect/decal/cleanable/molten_item,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station)
+"qr" = (/turf/unsimulated/wall/fakeglass,/area/wizard_station)
+"qs" = (/obj/structure/rack,/obj/item/weapon/kitchenknife/ritual,/turf/unsimulated/floor{dir = 8; icon_state = "chapel"},/area/wizard_station)
+"qt" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{dir = 8; icon_state = "chapel"},/area/wizard_station)
+"qu" = (/obj/structure/rack,/obj/item/weapon/kitchenknife/ritual,/turf/unsimulated/floor{icon_state = "chapel"},/area/wizard_station)
+"qv" = (/turf/unsimulated/wall,/area/tdome/tdomeadmin)
+"qw" = (/obj/machinery/computer/security/telescreen{pixel_y = -32},/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin)
+"qx" = (/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeadmin)
+"qy" = (/turf/unsimulated/wall/fakedoor{name = "Thunderdome Admin"},/area/tdome/tdomeadmin)
+"qz" = (/obj/structure/table,/obj/machinery/door_control{id = "thunderdomehea"; name = "Heavy Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeadmin)
+"qA" = (/obj/structure/table,/obj/machinery/door_control{id = "thunderdome"; name = "Main Blast Doors Control"; pixel_y = 0; req_access_txt = "102"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeadmin)
+"qB" = (/obj/structure/table,/obj/machinery/door_control{id = "thunderdomegen"; name = "General Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeadmin)
+"qC" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
+"qD" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
+"qE" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
+"qF" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
+"qG" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
+"qH" = (/obj/structure/rack,/obj/item/device/camera,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
+"qI" = (/obj/structure/rack,/obj/item/toy/sword,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
+"qJ" = (/obj/structure/rack,/obj/item/toy/gun,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
+"qK" = (/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
+"qL" = (/turf/unsimulated/beach/sand,/area/centcom/holding)
+"qM" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/centcom/holding)
+"qN" = (/obj/effect/overlay/palmtree_l,/turf/unsimulated/beach/sand,/area/centcom/holding)
+"qO" = (/obj/structure/table,/obj/item/clothing/head/that,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
+"qP" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
+"qQ" = (/obj/item/device/camera,/turf/unsimulated/beach/sand,/area/centcom/holding)
+"qR" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
+"qS" = (/obj/structure/table,/obj/item/weapon/lighter/zippo,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
+"qT" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
+"qU" = (/obj/structure/table,/obj/item/weapon/dice/d20,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
+"qV" = (/obj/structure/stool{pixel_y = 8},/obj/item/clothing/head/bandana{pixel_y = -10},/obj/item/clothing/glasses/sunglasses,/turf/unsimulated/beach/sand,/area/centcom/holding)
+"qW" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/beach/sand,/area/centcom/holding)
+"qX" = (/obj/structure/rack,/obj/item/clothing/head/that,/obj/item/clothing/under/suit_jacket,/obj/item/clothing/tie/waistcoat,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
+"qY" = (/obj/item/weapon/beach_ball,/turf/unsimulated/beach/sand,/area/centcom/holding)
+"qZ" = (/obj/structure/rack,/obj/item/weapon/storage/fancy/crayons,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
+"ra" = (/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
+"rb" = (/turf/unsimulated/beach/coastline,/area/centcom/holding)
+"rc" = (/obj/item/clothing/head/collectable/paper,/turf/unsimulated/beach/coastline,/area/centcom/holding)
+"rd" = (/obj/structure/rack,/obj/item/clothing/shoes/laceup,/obj/item/clothing/under/suit_jacket/female{desc = "A black trouser suit for women. Very formal."; name = "black suit"; pixel_x = 3; pixel_y = 1},/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
+"re" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
+"rf" = (/turf/unsimulated/beach/water,/area/centcom/holding)
+"rg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{name = "plating"},/area/centcom/holding)
+"rh" = (/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/holding)
+"ri" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{name = "plating"},/area/centcom/holding)
+"rj" = (/obj/effect/landmark{name = "Holding Facility"},/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/holding)
(1,1,1) = {"
aaabacadaeafagahaaaiajakalamanaoagafajacadahakaeamaiaoapaqarasatauavawaxayazaAaBaCaDaEaFaGaHaIaJaKawaxayazaAaBaCaDaEaFaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaNaOaOaOaOaOaPaOaOaOaOaOaPaOaOaOaOaOaPaOaOaOaOaOaQ
@@ -913,46 +913,46 @@ aabfaWbdaRaZaXcWcIcncbcKclcxdicxdicwcdcybdaUbeaRbaaSaobkblbmapaqarasaIauavbgbhbi
ajaRaSaTaUaVaWcpdicwcmcccvcKcbcKcbcJcocLaTaXbbaUbdaZabavbgbhbibjbnbkaCbmapaqarasatauavdsdtdudvdwdxblbmapaqarasatauavawaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbodydzdzdzdAbqcPdBcPcPcPbqdCdDdDdDdEbqdFdGdGdGdHbw
amaUaZbcaXbeaScycbcJcdcncIcccmcccmcecxdIbcaWaYaXaTaVaebnbkblbmapaqaraHatauavbgbhbibjbncBdJdKdLdtdMasatauavbgbhbibjbnaBaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbodNdOdOdOdPbqcPcPcPdQcPbqdRdSdSdSdTbqdUdVdVdVdWbw
adaXaVbfaWbbaZcLcmcecocwdicncdcncdclcKdXbfaSbaaWbcbeaharasatauavbgbhaybjbnbkblbmapaqarbIdsdYbEdjczbibjbnbkblbmapaqaraHaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbodZcYeacYebbqcPcPcPcPcPbqecddddddedbqeedgdgdgefbw
-alaWbeaRaSaYaVdIcdclcxcJcbcwcocwcocvccegaRaZbdaSbfbbagbibjbnbkblbmapaFarasatauavbgbhbibjbnbkblbmapaqarasatauavbgbhbiazaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbodZehehehebbqcPcPcPcPcPbqecddddddedbqeeejejejefbw
-aoaSbbaUaZbabedXcocvcKcecmcJcxcJcxcIcnekaUaVaTaZaRaYacatauavbgbhbibjaAbkblbmapaqarasatauavbgbhbibjbnbkblbmapaqarasataJaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbodZdZcYebebbqelelelelelbqecddddddedbqeedgdgdgefbw
-abaZaYaXaVbdbbegcxcIccclcdcecKcecKdicwemaXbebcaVaUbaaibmapaqarasatauaKbgbhbibjbnbkblbmapaqarasatauavbgbhbibjbnbkblbmaEaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMboeneneoepepbqeqeqeqeqeqbqeresesesetbqeuevevevewbw
-aeaVbaaWbeaTaYekcKdicncvcoclccclcccbcJexaWbbbfbeaXbdafbkblbmapaqarasaIauavbgbhbibjbnbkblbmapaqarasatauavbgbhbibjbnbkaCaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeyezezezezezeAezezezezezeAezezezezezeAezezezezezeB
-ahbebdaSbbbcbaemcccbcwcIcxcvcncvcncmceeCaSaYaRbbaWaTanauavbgbhbibjbnaBblbmapaqarasatauavbgbhbibjbnbkblbmapaqarasatauaKaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeDeDeDeDeDeDeDeDeDeEeFeFeFeFeFeFeFeFeFeFeFeFeFeEeDeDeDeDeDeDeDeDeD
-agbbaTaZaYbfbdexcncmcJdicKcIcwcIcwcdcleGaZbaaUaYaSbcakbhbibjbnbkblbmaEaqarasatauavbgbhbibjbnbkblbmapaqarasatauavbgbhayaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeDeHeIcFcFcFcFcFeJeKeFeFeFeFeFeFeFeFeFeFeFeFeFeLeJcFcFcFcFcFeIeMeD
-acaYbcaVbaaRaTeCcwcdcecbccdicJdicJcocvckaVbdaXbaaZbfaaasatauavbgbhbiazaAaBaCaDaEaFaGaHaIaJaKawaxayazaAaBaCaDaEaFaGaHaIaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeDeHeIcFcFcFcFcFeJeKeFeFeFeFeFeFeFeFeFeFeFeFeFeLeJcFcFcFcFcFeIeMeD
-aibabfbebdaUbceGcJcoclcmcncbcecbcecxcIcubeaTaWbdaVaRajaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeDeHeIcFcFcFcFcFeJeKeFeFeFeFeFeNeOeNeFeFeFeFeFeLeJcFcFcFcFcFeIeMeD
-afbdaRbbaTaXbfckcecxcvcdcwcmclcmclcKdicHbbbcaSaTbeaUamaLaaabacadaeafagahaaaiajakalamanaoagafajacadahakaeamaiaoaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeDeHeIcFcFcFcFcFeJeKeFeFeFeFeFeNeNeNeFeFeFeFeFeLeJcFcFcFcFcFeIeMeD
-anaTaUaYbcaWaRcuclcKcIcocJcdcvcdcvcccbcWaYbfaZbcbbaXadaLajaRaSaTaUaVaWaXaYaZbabbbcbdbebfaWaVbaaSaTaXbbaUbdaZabaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeDeHeIcFcFcFcFcFeJeKeFeFeFeFeFeFeFeFeFeFeFeFeFeLeJcFcFcFcFcFeIeMeD
-akbcaXbabfaSaUcHcvccdicxcecocIcocIcncmcpbaaRaVbfaYaWalaLamaUaZbcaXbeaSaWbaaVbdaYbfaTbbaRaSbebdaZbcaWaYaXaTaVaeaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeDeHeIcFcFcFcFcFeJeKeFeFeFeFeFeFeFeFeFeFeFeFeFeLeJcFcFcFcFcFeIeMeD
-aabfaWbdaRaZaXaUcycIclcmdicecdcecdcccLaWbdaUbeaRbaaSaoaLadaXaVbfaWbbaZaSbdbeaTbaaRbcaYaUaZbbaTaVbfaSbaaWbcbeahaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeDeDeDePePePePePeDeEeFeFeFeFeFeFeFeFeFeFeFeFeFeEeDePePePePePeDeDeD
-ajaRaSaTaUaVaWaXaYdIexekckeCegcucydXbaaSaTaXbbaUbdaZabaLalaWbeaRaSaYaVaZaTbbbcbdaUbfbaaXaVaYbcbeaRaZbdaSbfbbagaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeDeQeQeQeQeQeDcFcFcFcFcFcFcFcFcFcFcFcFcFcFcFeDeReReReReReDaMaM
-amaUaZbcaXbeaSaWbaaVbdaYbfaTbbaRaSbebdaZbcaWaYaXaTaVaeaLaoaSbbaUaZbabeaVbcaYbfaTaXaRbdaWbebabfbbaUaVaTaZaRaYacaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeDeDeDeDeDeDeDaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeDeDeDeDeDeDeDaMaM
+alaWbeaRaSaYaVdIcdclcxcJcbcwcocwcocvccegaRaZbdaSbfbbagbibjbnbkblbmapaFarasatauavbgbhbibjbnbkblbmapaqarasatauavbgbhbiazaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbodZehehehebbqcPcPcPcPcPbqecddddddedbqeeeieieiefbw
+aoaSbbaUaZbabedXcocvcKcecmcJcxcJcxcIcnejaUaVaTaZaRaYacatauavbgbhbibjaAbkblbmapaqarasatauavbgbhbibjbnbkblbmapaqarasataJaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbodZdZcYebebbqekekekekekbqecddddddedbqeedgdgdgefbw
+abaZaYaXaVbdbbegcxcIccclcdcecKcecKdicwelaXbebcaVaUbaaibmapaqarasatauaKbgbhbibjbnbkblbmapaqarasatauavbgbhbibjbnbkblbmaEaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMboememeneoeobqepepepepepbqeqerereresbqeteueueuevbw
+aeaVbaaWbeaTaYejcKdicncvcoclccclcccbcJewaWbbbfbeaXbdafbkblbmapaqarasaIauavbgbhbibjbnbkblbmapaqarasatauavbgbhbibjbnbkaCaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMexeyeyeyeyeyezeyeyeyeyeyezeyeyeyeyeyezeyeyeyeyeyeA
+ahbebdaSbbbcbaelcccbcwcIcxcvcncvcncmceeBaSaYaRbbaWaTanauavbgbhbibjbnaBblbmapaqarasatauavbgbhbibjbnbkblbmapaqarasatauaKaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeCeCeCeCeCeCeCeCeCeDeEeEeEeEeEeEeEeEeEeEeEeEeEeDeCeCeCeCeCeCeCeCeC
+agbbaTaZaYbfbdewcncmcJdicKcIcwcIcwcdcleFaZbaaUaYaSbcakbhbibjbnbkblbmaEaqarasatauavbgbhbibjbnbkblbmapaqarasatauavbgbhayaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeCeGeHcFcFcFcFcFeIeJeEeEeEeEeEeEeEeEeEeEeEeEeEeKeIcFcFcFcFcFeHeLeC
+acaYbcaVbaaRaTeBcwcdcecbccdicJdicJcocvckaVbdaXbaaZbfaaasatauavbgbhbiazaAaBaCaDaEaFaGaHaIaJaKawaxayazaAaBaCaDaEaFaGaHaIaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeCeGeHcFcFcFcFcFeIeJeEeEeEeEeEeEeEeEeEeEeEeEeEeKeIcFcFcFcFcFeHeLeC
+aibabfbebdaUbceFcJcoclcmcncbcecbcecxcIcubeaTaWbdaVaRajaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeCeGeHcFcFcFcFcFeIeJeEeEeEeEeEeMeNeMeEeEeEeEeEeKeIcFcFcFcFcFeHeLeC
+afbdaRbbaTaXbfckcecxcvcdcwcmclcmclcKdicHbbbcaSaTbeaUamaLaaabacadaeafagahaaaiajakalamanaoagafajacadahakaeamaiaoaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeCeGeHcFcFcFcFcFeIeJeEeEeEeEeEeMeMeMeEeEeEeEeEeKeIcFcFcFcFcFeHeLeC
+anaTaUaYbcaWaRcuclcKcIcocJcdcvcdcvcccbcWaYbfaZbcbbaXadaLajaRaSaTaUaVaWaXaYaZbabbbcbdbebfaWaVbaaSaTaXbbaUbdaZabaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeCeGeHcFcFcFcFcFeIeJeEeEeEeEeEeEeEeEeEeEeEeEeEeKeIcFcFcFcFcFeHeLeC
+akbcaXbabfaSaUcHcvccdicxcecocIcocIcncmcpbaaRaVbfaYaWalaLamaUaZbcaXbeaSaWbaaVbdaYbfaTbbaRaSbebdaZbcaWaYaXaTaVaeaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeCeGeHcFcFcFcFcFeIeJeEeEeEeEeEeEeEeEeEeEeEeEeEeKeIcFcFcFcFcFeHeLeC
+aabfaWbdaRaZaXaUcycIclcmdicecdcecdcccLaWbdaUbeaRbaaSaoaLadaXaVbfaWbbaZaSbdbeaTbaaRbcaYaUaZbbaTaVbfaSbaaWbcbeahaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeCeCeCeOeOeOeOeOeCeDeEeEeEeEeEeEeEeEeEeEeEeEeEeDeCeOeOeOeOeOeCeCeC
+ajaRaSaTaUaVaWaXaYdIewejckeBegcucydXbaaSaTaXbbaUbdaZabaLalaWbeaRaSaYaVaZaTbbbcbdaUbfbaaXaVaYbcbeaRaZbdaSbfbbagaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeCePePePePePeCcFcFcFcFcFcFcFcFcFcFcFcFcFcFcFeCeQeQeQeQeQeCaMaM
+amaUaZbcaXbeaSaWbaaVbdaYbfaTbbaRaSbebdaZbcaWaYaXaTaVaeaLaoaSbbaUaZbabeaVbcaYbfaTaXaRbdaWbebabfbbaUaVaTaZaRaYacaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeCeCeCeCeCeCeCaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeCeCeCeCeCeCeCaMaM
adaXaVbfaWbbaZaSbdbeaTbaaRbcaYaUaZbbaTaVbfaSbaaWbcbeahaLabaZaYaXaVbdbbbebfbaaRbcaWaUaTaSbbbdaRaYaXbebcaVaUbaaiaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
alaWbeaRaSaYaVaZaTbbbcbdaUbfbaaXaVaYbcbeaRaZbdaSbfbbagaLaeaVbaaWbeaTaYbbaRbdaUbfaSaXbcaZaYaTaUbaaWbbbfbeaXbdafaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aoaSbbaUaZbabeaVbcaYbfaTaXaRbdaWbebabfbbaUaVaTaZaRaYacaLahbebdaSbbbcbaaYeSbLbMbNbObPbQbRbSbTeTbdaSaYaRbbaWaTanaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-abaZaYaXaVbdbbbebfbaaRbcaWaUaTaSbbbdaRaYaXbebcaVaUbaaiaLagbbaTaZaYbfbdbaeTeUeVeWeXeYeZfafbfcfdaTaZbaaUaYaSbcakaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aeanamacakalajaaaeadahabaiagaoafajalahamacaaabakagadafaLacaYbcaVbaaRaTbdfdfafbfefffgeXeWfhfibUbcaVbdaXbaaZbfaaaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-ahbebdaSbbbcbaaYaUaTaXaRaZaWbfaVbabcaXbdaSaYaRbbaWaTanaLaibabfbebdaUbcaTbUeWfhfceVeUfffefjeZfkbfbeaTaWbdaVaRajaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-agbbaTaZaYbfbdbaaXbcaWaUaVaSaRbebdbfaWaTaZbaaUaYaSbcakaLafbdaRbbaTaXbfbcfkfefjfifbfaeVfceYeXflaRbbbcaSaTbeaUamaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-acaYbcaVbaaRaTbdaWbfaSaXbeaZaUbbaTaRaSbcaVbdaXbaaZbfaaaLanaTaUaYbcaWaRbfflfceYeZfheWfbfifgfffmaUaYbfaZbcbbaXadaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aibabfbebdaUbcaTaSaRaZaWbbaVaXaYbcaUaZbfbeaTaWbdaVaRajaLakbcaXbabfaSaUaRfmbbaXeXfjfefheZaWaTfnaXbaaRaVbfaYaWalaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-afbdaRbbaTaXbfbcaZaUaVaSaYbeaWbabfaXaVaRbbbcaSaTbeaUamaLaabfaWbdaRbObMfofpfqbPffeYfcfjeXaSbcfraWbdaUbeaRbaaSaoaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-anaTaUaYbcaWaRbfaVaXbeaZbabbaSbdaRaWbeaUaYbfaZbcbbaXadaLajaRaSaTaUfleUfgeZeXfaeVfgfieYffaZbfbKaSaTaXbbaUbdaZabaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-akbcaXbabfaSaUaRbeaWbbaVbdaYaZaTaUaSbbaXbaaRaVbfaYaWalaLamaUaZbcaXfmfaeUeXffeWfbeUeZfgeVbTbTbTbTfsaWaYaXaTaVaeaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aabfaWbdaRaZaXaUftfufqfvfwbafxfybMfzfAaWbdaUbeaRbaaSaoaLadaXaVbfaWfneWfaffeVfefhfaeXeUfbfceYeVfecaaSbaaWbcbeahaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-ajaRaSaTaUaVaWaXfBfCfDfEfFaXfGfHfIfJfKbaaTaXbbaUbdaZabaLalaWbeaRaSfrfeeWeVfbfcfjeWfffafhfifgfbfcfLaZbdaSbfbbagaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-amaUaZbcaXbeaSaWfKfMfNfOfPaWfQfRfSfTfUbdbcaWaYaXaTaVaeaLaoaSbbaUaZbKfcfefbfhfieYfeeVeWfjeZeUfhfieSaVaTaZaRaYacaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-adaXaVbfaWbbaZaSfUfVfWfDfxaSfBfXfYfZgaaTbfaSbaaWbcbeahaLabaZaYaXflgbfifcfhfjeZfgfcfbfeeYeXfafjeZgcfvfsaVaUbaaiaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-alaWbeaRaSaYaVaZgafEgdfNgeaZfKgffJggfFbcaRaZbdaSbfbbagaLaeaVbaaWfmeVeZfifjeYeXeUfifhfcfgffeWeYeXeUficabeaXbdafaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aoaSbbaUaZbabeaVfFfBfPgaftaVfUfAfGfKfPbfaUaVaTaZaRaYacaLahbebdaSfnfbeXeZeYfgfffaeZfjfieUeVfefgfffaeZfLbbaWaTanaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-abaZaYaXaVbdbbbeaZaUaVaSaYbeaWbabfaXaVaRaXbebcaVaUbaaiaLagbbaTaZfrfhffeXfgeUeVeWeXeYeZfafbfceUeVeWeXeSaYaSbcakaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aeaVbaaWbeaTaYbbaRbdaUbfaSaXbcaZaYaTaUbaaWbbbfbeaXbdafaLacaYbcaVbKfjeVffeUfafbfefffgeXeWfhfifafbfeffeTbaaZbfaaaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-ahbebdaSbbbcbaaYaUaTaXaRaZaWbfaVbabcaXbdaSaYaRbbaWaTanaLaibabfbegheYfbeVfaeWfhfceVeUfffefjeZeWfhfceVfdbdaVaRajaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-agbbaTaZaYbfbdbaaXbcaWaUaVaSaRbebdbfaWaTaZbaaUaYaSbcakaLafbdaRbbgifgfhfbeWfefjfifbfaeVfceYeXfefjfifbbUaTbeaUamaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-acaYbcaVbaaRaTbdaWbfaSaXbeaZaUbbaTaRaSbcaVbdaXbaaZbfaaaLanaTaUaYfseUfjfhfefcaUeZfheWfbfiaXfffceYeZfhfkbcbbaXadaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aibabfbebdaUbcaTaSaRaZaWbbaVaXaYbcaUaZbfbeaTaWbdaVaRajaLakbcaXbacafaeYfjfceUbbfeffeZeWeVaUfafifgeXfjflbfaYaWalaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-afbdaRbbaTaXbfbcaZaUaVaSaYbeaWbabfaXaVaRbbbcaSaTbeaUamaLaabfaWbdfLeWfgeYfifaaYbeaTbaaVbcaXeWeZeUffeYfmaRbaaSaoaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-analahajaoacaeabanagakafamaaaiadaeacakahajabafaoaaagadaLajaRaSaTcWdXcycpemdIexekckeCegcucydXexcLeGcpekaUbdaZabaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aoaSbbaUaZbabeaVbcaYbfaTaXaRbdaWbebabfbbaUaVaTaZaRaYacaLahbebdaSbbbcbaaYeRbLbMbNbObPbQbRbSbTeSbdaSaYaRbbaWaTanaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+abaZaYaXaVbdbbbebfbaaRbcaWaUaTaSbbbdaRaYaXbebcaVaUbaaiaLagbbaTaZaYbfbdbaeSeTeUeVeWeXeYeZfafbfcaTaZbaaUaYaSbcakaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aeanamacakalajaaaeadahabaiagaoafajalahamacaaabakagadafaLacaYbcaVbaaRaTbdfceZfafdfeffeWeVfgfhbUbcaVbdaXbaaZbfaaaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+ahbebdaSbbbcbaaYaUaTaXaRaZaWbfaVbabcaXbdaSaYaRbbaWaTanaLaibabfbebdaUbcaTbUeVfgfbeUeTfefdfieYfjbfbeaTaWbdaVaRajaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+agbbaTaZaYbfbdbaaXbcaWaUaVaSaRbebdbfaWaTaZbaaUaYaSbcakaLafbdaRbbaTaXbfbcfjfdfifhfaeZeUfbeXeWfkaRbbbcaSaTbeaUamaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+acaYbcaVbaaRaTbdaWbfaSaXbeaZaUbbaTaRaSbcaVbdaXbaaZbfaaaLanaTaUaYbcaWaRbffkfbeXeYfgeVfafhfffeflaUaYbfaZbcbbaXadaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aibabfbebdaUbcaTaSaRaZaWbbaVaXaYbcaUaZbfbeaTaWbdaVaRajaLakbcaXbabfaSaUaRflbbaXeWfifdfgeYaWaTfmaXbaaRaVbfaYaWalaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+afbdaRbbaTaXbfbcaZaUaVaSaYbeaWbabfaXaVaRbbbcaSaTbeaUamaLaabfaWbdaRbObMfnfofpbPfeeXfbfieWaSbcfqaWbdaUbeaRbaaSaoaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+anaTaUaYbcaWaRbfaVaXbeaZbabbaSbdaRaWbeaUaYbfaZbcbbaXadaLajaRaSaTaUfkeTffeYeWeZeUfffheXfeaZbfbKaSaTaXbbaUbdaZabaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+akbcaXbabfaSaUaRbeaWbbaVbdaYaZaTaUaSbbaXbaaRaVbfaYaWalaLamaUaZbcaXfleZeTeWfeeVfaeTeYffeUbTbTbTbTfraWaYaXaTaVaeaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aabfaWbdaRaZaXaUfsftfpfufvbafwfxbMfyfzaWbdaUbeaRbaaSaoaLadaXaVbfaWfmeVeZfeeUfdfgeZeWeTfafbeXeUfdcaaSbaaWbcbeahaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+ajaRaSaTaUaVaWaXfAfBfCfDfEaXfFfGfHfIfJbaaTaXbbaUbdaZabaLalaWbeaRaSfqfdeVeUfafbfieVfeeZfgfhfffafbfKaZbdaSbfbbagaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+amaUaZbcaXbeaSaWfJfLfMfNfOaWfPfQfRfSfTbdbcaWaYaXaTaVaeaLaoaSbbaUaZbKfbfdfafgfheXfdeUeVfieYeTfgfheRaVaTaZaRaYacaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+adaXaVbfaWbbaZaSfTfUfVfCfwaSfAfWfXfYfZaTbfaSbaaWbcbeahaLabaZaYaXfkgafhfbfgfieYfffbfafdeXeWeZfieYgbfufraVaUbaaiaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+alaWbeaRaSaYaVaZfZfDgcfMgdaZfJgefIgffEbcaRaZbdaSbfbbagaLaeaVbaaWfleUeYfhfieXeWeTfhfgfbfffeeVeXeWeTfhcabeaXbdafaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aoaSbbaUaZbabeaVfEfAfOfZfsaVfTfzfFfJfObfaUaVaTaZaRaYacaLahbebdaSfmfaeWeYeXfffeeZeYfifheTeUfdfffeeZeYfKbbaWaTanaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+abaZaYaXaVbdbbbeaZaUaVaSaYbeaWbabfaXaVaRaXbebcaVaUbaaiaLagbbaTaZfqfgfeeWffeTeUeVeWeXeYeZfafbeTeUeVeWeRaYaSbcakaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aeaVbaaWbeaTaYbbaRbdaUbfaSaXbcaZaYaTaUbaaWbbbfbeaXbdafaLacaYbcaVbKfieUfeeTeZfafdfeffeWeVfgfheZfafdfeeSbaaZbfaaaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+ahbebdaSbbbcbaaYaUaTaXaRaZaWbfaVbabcaXbdaSaYaRbbaWaTanaLaibabfbeggeXfaeUeZeVfgfbeUeTfefdfieYeVfgfbeUfcbdaVaRajaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+agbbaTaZaYbfbdbaaXbcaWaUaVaSaRbebdbfaWaTaZbaaUaYaSbcakaLafbdaRbbghfffgfaeVfdfifhfaeZeUfbeXeWfdfifhfabUaTbeaUamaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+acaYbcaVbaaRaTbdaWbfaSaXbeaZaUbbaTaRaSbcaVbdaXbaaZbfaaaLanaTaUaYfreTfifgfdfbaUeYfgeVfafhaXfefbeXeYfgfjbcbbaXadaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aibabfbebdaUbcaTaSaRaZaWbbaVaXaYbcaUaZbfbeaTaWbdaVaRajaLakbcaXbacaeZeXfifbeTbbfdfeeYeVeUaUeZfhffeWfifkbfaYaWalaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+afbdaRbbaTaXbfbcaZaUaVaSaYbeaWbabfaXaVaRbbbcaSaTbeaUamaLaabfaWbdfKeVffeXfheZaYbeaTbaaVbcaXeVeYeTfeeXflaRbaaSaoaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+analahajaoacaeabanagakafamaaaiadaeacakahajabafaoaaagadaLajaRaSaTcWdXcycpeldIewejckeBegcucydXewcLeFcpejaUbdaZabaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
bebcaXbabfaSaUaRbeaWbbaVbdaYaZaTaUaSbbaXbaaRaVbfaYaWaTaLamaUaZbcaXbeaSaWbaaVbdaYbfaTbbaRaSbebdaZbcaWaYaXaTaVaeaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
bbbfaWbdaRaZaXaUbbaSaYbeaTbaaVbcaXaZaYaWbdaUbeaRbaaSbcaLadaXaVbfaWbbaZaSbdbeaTbaaRbcaYaUaZbbaTaVbfaSbaaWbcbeahaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
aYaRaSaTaUaVaWaXaYaZbabbbcbdbebfaWaVbaaSaTaXbbaUbdaZbfaLalaWbeaRaSaYaVaZaTbbbcbdaUbfbaaXaVaYbcbeaRaZbdaSbfbbagaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
@@ -968,21 +968,21 @@ aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-gjgjgjgjgjgjgjgjgjgjgjgjgjgjgjaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-gjgjgjgjgjgjgjgjgjgjgjgjgjgjgjaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-gjgjgjgjgjgjgjgjgjgjgjgjgjgjgjaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-gjgjgjgjgjgjgjgjgjgjgjgjgjgjgjaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-gjgjgjgjgjgjgjgjgjgjgjgjgjgjgjaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-gjgjgjgjgjgjgjgjgjgjgjgjgjgjgjaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-gjgjgjgjgjgjgjgjgjgjgjgjgjgjgjaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-gjgjgjgjgjgjgjgkgjgjgjgjgjgjgjaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-gjgjgjgjgjgjgjgjgjgjgjgjgjgjgjaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-gjgjgjgjgjgjgjgjgjgjgjgjgjgjgjaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-gjgjgjgjgjgjgjgjgjgjgjgjgjgjgjaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-gjgjgjgjgjgjgjgjgjgjgjgjgjgjgjaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-gjgjgjgjgjgjgjgjgjgjgjgjgjgjgjaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-gjgjgjgjgjgjgjgjgjgjgjgjgjgjgjaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-glgjgjgjgjgjgjgjgjgjgjgjgjgjgjaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+gigigigigigigigigigigigigigigiaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+gigigigigigigigigigigigigigigiaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+gigigigigigigigigigigigigigigiaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+gigigigigigigigigigigigigigigiaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+gigigigigigigigigigigigigigigiaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+gigigigigigigigigigigigigigigiaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+gigigigigigigigigigigigigigigiaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+gigigigigigigigjgigigigigigigiaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+gigigigigigigigigigigigigigigiaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+gigigigigigigigigigigigigigigiaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+gigigigigigigigigigigigigigigiaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+gigigigigigigigigigigigigigigiaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+gigigigigigigigigigigigigigigiaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+gigigigigigigigigigigigigigigiaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+gkgigigigigigigigigigigigigigiaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
@@ -1002,99 +1002,99 @@ aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgmgmgmaMgngngnaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgmgmgmaMgngngnaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgmgmgmaMgngngnaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgogpgqgrgsgmgmgmaMgngngngogpgqgrgsaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgtgugugugvgwgxgygzgygxgAgBgugugugtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgtgCgCgDgEgFgGgHgIgJgGgFgKgLgCgCgtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgtgCgCgMgNgNgGgNgNgNgGgNgNgMgCgCgtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgOgLgCgxgNgGgGgGgGgGgGgGgNgxgCgDgPaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgOgQgRgSgTgUgVgGgWgNgGgXgYgQgPaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgtgZhahbhcgGgNgNgGgXgtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgthdhehegVgGgXhfgGgXgMhghghghgaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgthhhehehigGgXhfgGgGgxhghghghgaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgvgQgQgQgRgGgNgNgGgXgyhghghghgaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgthjgGhjgtgGgXhfgGgXhkaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgthjgGhjgMgGgXhfgGgXgyhlhlhlhlaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgthjgGgGhmgGgGgGgGgGgxhlhlhlhlaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgthjgGhjhngGgNgNgNgNhnhlhlhlhlaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhohohohohohohohohoaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgthjgGhjgtgGhphqhrgFgtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhohshthththththuhoaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgOhvhvgQhwhxgAgQhvhvgPaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhohyhzhzhzhzhzhyhoaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgOgBhAgXgGhBhCgvgPaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhohyhzhzhzhzhzhyhoaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgthrgNhDgNhAgtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhohyhzhzhzhzhzhEhFaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgthGhHhIhJhKgtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhohyhzhzhzhzhzhLhoaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgOhkhkhkhkhkgPaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhohyhzhzhzhzhMhyhoaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhohyhzhzhzhzhzhLhoaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhohyhzhzhzhzhzhNhFaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhohyhzhzhzhzhzhyhoaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhohOhPhzhzhzhQhRhoaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhohShThUhUhUhThVhoaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhohohWhXhXhXhYhohoaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhohohohohohohoaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMglglglaMgmgmgmaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMglglglaMgmgmgmaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMglglglaMgmgmgmaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgngogpgqgrglglglaMgmgmgmgngogpgqgraMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgsgtgtgtgugvgwgxgygxgwgzgAgtgtgtgsaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgsgBgBgCgDgEgFgGgHgIgFgEgJgKgBgBgsaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgsgBgBgLgMgMgFgMgMgMgFgMgMgLgBgBgsaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgNgKgBgwgMgFgFgFgFgFgFgFgMgwgBgCgOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgNgPgQgRgSgTgUgFgVgMgFgWgXgPgOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgsgYgZhahbgFgMgMgFgWgsaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgshchdhdgUgFgWhegFgWgLhfhfhfhfaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgshghdhdhhgFgWhegFgFgwhfhfhfhfaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgugPgPgPgQgFgMgMgFgWgxhfhfhfhfaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgshigFhigsgFgWhegFgWhjaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgshigFhigLgFgWhegFgWgxhkhkhkhkaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgshigFgFhlgFgFgFgFgFgwhkhkhkhkaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgshigFhihmgFgMgMgMgMhmhkhkhkhkaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhnhnhnhnhnhnhnhnhnaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgshigFhigsgFhohphqgEgsaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhnhrhshshshshshthnaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgNhuhugPhvhwgzgPhuhugOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhnhxhyhyhyhyhyhxhnaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgNgAhzgWgFhAhBgugOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhnhxhyhyhyhyhyhxhnaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgshqgMhCgMhzgsaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhnhxhyhyhyhyhyhDhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgshFhGhHhIhJgsaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhnhxhyhyhyhyhyhKhnaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgNhjhjhjhjhjgOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhnhxhyhyhyhyhLhxhnaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhnhxhyhyhyhyhyhKhnaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhnhxhyhyhyhyhyhMhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhnhxhyhyhyhyhyhxhnaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhnhNhOhyhyhyhPhQhnaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhnhRhShThThThShUhnaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhnhnhVhWhWhWhXhnhnaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhnhnhnhnhnhnhnaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhZhZiahZhZibibibibibibibibaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhZhZicidiehZibififififififibaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMigigigigigigigigigigigigigigigigigaMaMaMhZihiiidijikhZififififififibaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMigiligiligiligiligiligiligiligiligaMaMaMhZimidididinhZififififififibaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMigigigigigigigigigigigigigigigigigaMaMaMhZioidididiphZififififififibaMaMaMaMiqiriririririsaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMigiligiligiligiligiligiligiligiligaMaMaMhZioidididiphZifibibitibibibaMaMaMiqiuiviwixiwiyizisaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMigigigigigigigigigigigigigigigigigaMaMaMhZhZiAhZhZiBhZifibiCiCiCiDibaMaMaMiEiFiGiHiHiHiIiJiEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhZiKiLiMiKhZifibiCiCiCiCibaMaMaMiEiNiOiPiQiHiIiRiEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhZiSiTiUiKhZifibiCiViWiXibaMaMiqiYiZiZjaiZjbjciZiYisaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjdjdjdjdjdaMaMhZiKiLjejfhZifibjgjhjijjibaMaMiEjkjkjkirjliHjmjnjoiraMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjdjpjqjrjdcFhZhZjshZhZhZhZhZibiCiCiCiCjtjujviEjwjxjxjyiHiHiHiHjmiEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjdjzjAjAjdjBjCidjDjDjDjDjCjEibiCiCiCiCjFjGjFjHjxjIjIirjJjKjLiHjmiraMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjMjdjdjEjNidjOjPjQjDjNjEibjtjvjRjtjujujvjSiZiZiZjTjLjLjLiHjmiEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjdjUjUjUjUjUjUjUjUjUjUjUjUjUjVjWjXjYjdjEjNjZidididkajNjEibkbkckckdjFjGjFkeiHkfiHiHiHiHiHiHkgiEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjdjUkhkikjkhkikikikkkikiklkmknjWkojYjdjEjNioidididipkpjEibkbkckckdjtjujviEjKiHkqkriHkqkriHksiEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktktktktktktktktktktktktktktktktktktktktktktktktktktktktktktaMaMaMaMaMaMaMaMaMaMaMjdkhkukvkwkxkykykykykykykzkAkBjWkojYjdjEkpioidididijhZiLibkCkckckdibaMaMirjKiHkqkriHkqkriHksiraMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDkDkDkDkDkDkDkDkDkEkDkDkDkFkGkDkDkDkFkDkDkDkDkDkDkFkDkDktaMaMaMaMaMaMaMaMaMaMaMjdkkkHkIkHkJkHkHkHkHkHkHkJkKkLjWkokMjdkNjdiiididididididkckckckckdkOaMaMirjKiHkqkriHkqkriHksiraMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDkDkDkDkEkDkDkDkDkDkDkDkDkDkDkDkFkDkDkDkDkDkFkDkDkDkDkDktaMaMaMaMaMaMaMaMaMaMaMjdkPkQkHkRkxkSkSkSkSkSkSkzkAkTjWkojXkUjXjXidididididididkckckckckdibaMaMirjKiHkqkriHkqkriHksiraMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDkDkDkDkDkDkDkVkDkDkDkDkDkEkDkDkGkFkDkDkFkDkDkFkGkDkFkDktaMaMaMaMaMaMaMaMaMaMaMjdjUkPkikWkPkikikikkkikikXkmknjWkokYjdkNjdjZidididkahZiLibkZkckckdjtjujviEjKiHkqkriHkqkriHksiEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkEkDkDkFkGkDkDkFkDkGktaMaMaMaMaMaMaMaMaMaMaMjdjUjUjUjUjUjUjUjUjUjUjUjUjUlajWjXjYjdjEjCimidididinjCjEibkbkckckdjFjGjFkeiHlbiHiHiHiHiHiHkgiEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkEkDkDkDkDkDkGkDkFkGkDkFkDktaMaMaMaMaMaMaMaMaMaMaMlclclclclclclclclclclclclclclclcldlclcjEjNimidididinjNjEibjtjvlejtjujujvjSiZiZlfiZlgirlhirirliaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDkDkDkDkDkDljljljljljljljkDkDkDkDkDkDkDkFkDkDkVkGkDkDkDktaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlcjEkpimidididinkpjEibkckckckdjFjGjFkelklklklliEjnjmjmlmiraMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDkDkDkDkDlnlolplplplplplolqkDkDkDkDkVkDljkEljkEkDkFkDkFktaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlclrlrlsltlulvlwlrlribkckckckdjtjujviElklklklkiElxjmjmlyiEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDkDkDkDkDlolzlAlBlClDlElElolFkDkDljktktlGlHktktljlIlJljktaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlclKlLlMlNlOlPlMlLlKibkclQlRlSibaMaMiElTlTlUlUiEjnjmjmlmiraMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDkDkDkDkDlolVlAlAlWlAlAlAlolFkDlXktktlYlZlZlYktktktktktktktktaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlclLmamblNlOlPmbmclLibkcmdmemfibaMaMmgjamhmhmhmhmhmhmhjamiaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDkDkDkDkDlomjlAlAlAmklAmllolFkVlXktmmmnmnmnmnmompmqmrmsmtmuktaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlcmvlLmvlNlOlPmvlLmvibkckckckcibaMaMaMmgmwmwmwmwmwmwmwmiaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDkDkDkDkDmxlololomylololomzkDkDmAktmBmnmCmCmDmnmnmnmEmFmFmFktaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlcmGlLlLlNlOlPlLlLmHibmImJmJmKibaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDkDkDkDkDkDkDlomLlAmMlomNljljljmOktmnmCmPmQmCmnmRmSmrmTmUktktaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlcmVmWmWlNlOlPmXmXmYibibmZibibibaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDkDkDkDkDkDkDlonalAnbloncndndndlHktmnmCnenfmCmnmRngktktktktaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlclrlrlrlrlOlrlrlrlribififififibaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDkDlnlololololonalAnblonhnininininjmnmnmnmnmnmnmRngktktktktaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlrlOlrnknknkifififififibaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDkDlonllAlAnmlonalAnblonnnolGndlHktnpmCmCmCmnmnmRnqktnrnsktktaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlrlrlrlrlrlrlrlrlulrlrlrlrlrlrlrlribibaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDkDlonllAntnulonalAnblolonvnwlqnxktnynznAnznzmnmnmnnBnCnCnDktaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlrnEnFnFnFnFnFnEnEnEnFnFnFnFnFnElraMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktnGkDlonllAlAnHlolAlAlAlolAlAlAlomAktnInJnInInKmnmnmnktnLnMnDktaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnNnEnEnEnOnEnEnEnEnEnEnEnOnEnEnEnNaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDkDlonllAlAlAnPlAlAlAnQlAlAlAlolXktktmSnRnSnTktnUmnktktktktktaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlrnEnFnFnFnFnFnEnEnEnFnFnFnFnFnElraMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDkDlonllAlAlAnVlAlAlAnWlAlAnXlonYnxktktktktktktnZnZoaobocodktaMaMoeoeoeoeoeoeoeoeoeoeoeoeaMaMaMaMaMaMaMaMaMaMlrlvofofofofofofofofofofofofofltlraMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDlnlolololololooglAlAlololololololqohohohoinxktojojojojojojktaMaMoeokolomonooopoeoqorosoeaMaMotototototototototouovovovovovovovovovovovovovouotototototototototaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDloowowoxoyozlooAlAlAlooBoCoDoEoFlokDkEkDkDlXmrojojojojojoGktaMaMoeomomomomomomomoHoIoJoeaMaMotoKoLoMoMoMoMoMoNoOovovovovovovovovovovovovovoPoNoQoQoQoQoQoLoRotaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDlolAlAlAntlAoSlAlAlAoTlAntlAntoUlokDkVlJkEmOktoVoVoVoVoVoWktaMaMoeoXoXomomomoYoeoZpapboeaMaMotoKoLoMpcoMpcoMoNoOovovovovovovovovovovovovovoPoNoQpdoQpdoQoLoRotaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDlopelAlAlAlApflAlAlApglAlAlAlAlAlokDktktktktktktktktktktktktaMaMoeomomomomphphoeoepioeoeaMaMotoKoLoMoMpjoMoMoNoOovovovovovpkplpkovovovovovoPoNoQoQpmoQoQoLoRotaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDlopelAlApnpolopppqpploprpslAlAlAlokDktaMaMaMaMaMaMaMaMaMaMaMaMaMoeptptompupvpwoepxpipyoeaMaMotoKoLoMoMoMoMoMoNoOovovovovovpkpzpkovovovovovoPoNoQoQoQoQoQoLoRotaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDlolAlAlAlololopApBlAlolololAlAlAlokDktaMaMaMaMaMaMaMaMaMaMaMaMaMoeomomompupCpDoepEpipFoeaMaMotoKoLoMpcoMpcoMoNoOovovovovovovovovovovovovovoPoNoQpdoQpdoQoLoRotaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDlopGpHpIlokDlopJpJpJlokDlolEpKpLlokDktaMaMaMaMaMaMaMaMaMaMaMaMaMoeomomomomomoeoeoeoeoeoeaMaMotoKoLoMoMoMoMoMoNoOovovovovovovovovovovovovovoPoNoQoQoQoQoQoLoRotaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDlopJpJpJlokDmxpMpNpOmzkDlopJpJpJlokDktaMaMaMaMaMaMaMaMaMaMaMaMaMoepPpQpRomompSpTpUpVpWoeaMaMotototpXpXpXpXpXotouovovovovovovovovovovovovovouotpXpXpXpXpXotototaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDmxpMpNpOmzkDkDkDkDkDkDkDmxpMpNpOmzkDktaMaMaMaMaMaMaMaMaMaMaMaMaMoepYpZqaomomomqbqcqbqdoeaMaMaMaMotqeqeqeqeqeotqfqgqgqgqgqgqgqgqgqgqgqgqgqgqhotqiqiqiqiqiotaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDktaMaMaMaMaMaMaMaMaMaMaMaMaMoepZqjqaomomomqkqlqkqloeaMaMaMaMotototototototqmqnqnqnqnqnqoqpqqqnqnqnqnqnqmotototototototaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMktktktktktktktktktktktktktktktktktktktktktaMaMaMaMaMaMaMaMaMaMaMaMaMoepYqrqsomompSqtqdquqvoeaMaMaMaMaMaMaMaMaMaMqwqmqmqmqxqmqyqyqyqyqyqmqxqmqmqmqwaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMoeoeoeoeoeoeoeoeoeoeoeoeaMaMaMaMaMaMaMaMaMaMqwqwqzqwqwqwqwqAqBqCqwqwqwqwqzqwqwaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMqwqwqwqwqwaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhYhYhZhYhYiaiaiaiaiaiaiaiaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhYhYibicidhYiaieieieieieieiaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMifififififififififififififififififaMaMaMhYigihiciiijhYieieieieieieiaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMifikifikifikifikifikifikifikifikifaMaMaMhYilicicicimhYieieieieieieiaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMifififififififififififififififififaMaMaMhYiniciciciohYieieieieieieiaaMaMaMaMipiqiqiqiqiqiraMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMifikifikifikifikifikifikifikifikifaMaMaMhYiniciciciohYieiaiaisiaiaiaaMaMaMipitiuiviwivixiyiraMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMifififififififififififififififififaMaMaMhYhYizhYhYiAhYieiaiBiBiBiCiaaMaMaMiDiEiFiGiGiGiHiIiDaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhYiJiKiLiJhYieiaiBiBiBiBiaaMaMaMiDiMiNiOiPiGiHiQiDaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhYiRiSiTiJhYieiaiBiUiViWiaaMaMipiXiYiYiZiYjajbiYiXiraMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjcjcjcjcjcaMaMhYiJiKjdjehYieiajfjgjhjiiaaMaMiDjjjjjjiqjkiGjljmjniqaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjcjojpjqjccFhYhYjrhYhYhYhYhYiaiBiBiBiBjsjtjuiDjvjwjwjxiGiGiGiGjliDaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjcjyjzjzjcjAjBicjCjCjCjCjBjDiaiBiBiBiBjEjFjEjGjwjHjHiqjIjJjKiGjliqaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjLjcjcjDjMicjNjOjPjCjMjDiajsjujQjsjtjtjujRiYiYiYjSjKjKjKiGjliDaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjcjTjTjTjTjTjTjTjTjTjTjTjTjTjUjVjWjXjcjDjMjYicicicjZjMjDiakakbkbkcjEjFjEkdiGkeiGiGiGiGiGiGkfiDaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjcjTkgkhkikgkhkhkhkjkhkhkkklkmjVknjXjcjDjMiniciciciokojDiakakbkbkcjsjtjuiDjJiGkpkqiGkpkqiGkriDaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMksksksksksksksksksksksksksksksksksksksksksksksksksksksksksksaMaMaMaMaMaMaMaMaMaMaMjckgktkukvkwkxkxkxkxkxkxkykzkAjVknjXjcjDkoiniciciciihYiKiakBkbkbkciaaMaMiqjJiGkpkqiGkpkqiGkriqaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskCkCkCkCkCkCkCkCkCkDkCkCkCkEkFkCkCkCkEkCkCkCkCkCkCkEkCkCksaMaMaMaMaMaMaMaMaMaMaMjckjkGkHkGkIkGkGkGkGkGkGkIkJkKjVknkLjckMjcihicicicicicickbkbkbkbkckNaMaMiqjJiGkpkqiGkpkqiGkriqaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskCkCkCkCkDkCkCkCkCkCkCkCkCkCkCkCkEkCkCkCkCkCkEkCkCkCkCkCksaMaMaMaMaMaMaMaMaMaMaMjckOkPkGkQkwkRkRkRkRkRkRkykzkSjVknjWkTjWjWicicicicicicickbkbkbkbkciaaMaMiqjJiGkpkqiGkpkqiGkriqaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskCkCkCkCkCkCkCkUkCkCkCkCkCkDkCkCkFkEkCkCkEkCkCkEkFkCkEkCksaMaMaMaMaMaMaMaMaMaMaMjcjTkOkhkVkOkhkhkhkjkhkhkWklkmjVknkXjckMjcjYicicicjZhYiKiakYkbkbkcjsjtjuiDjJiGkpkqiGkpkqiGkriDaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskCkCkCkCkCkCkCkCkCkCkCkCkCkCkCkCkCkCkDkCkCkEkFkCkCkEkCkFksaMaMaMaMaMaMaMaMaMaMaMjcjTjTjTjTjTjTjTjTjTjTjTjTjTkZjVjWjXjcjDjBilicicicimjBjDiakakbkbkcjEjFjEkdiGlaiGiGiGiGiGiGkfiDaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskCkCkCkCkCkCkCkCkCkCkCkCkCkCkCkDkCkCkCkCkCkFkCkEkFkCkEkCksaMaMaMaMaMaMaMaMaMaMaMlblblblblblblblblblblblblblblblblclblbjDjMilicicicimjMjDiajsjuldjsjtjtjujRiYiYleiYlfiqlgiqiqlhaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskCkCkCkCkCkClililililililikCkCkCkCkCkCkCkEkCkCkUkFkCkCkCksaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlbjDkoilicicicimkojDiakbkbkbkcjEjFjEkdljljljlkiDjmjljllliqaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskCkCkCkCkClmlnlolololololnlpkCkCkCkCkUkClikDlikDkCkEkCkEksaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlblqlqlrlsltlulvlqlqiakbkbkbkcjsjtjuiDljljljljiDlwjljllxiDaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskCkCkCkCkClnlylzlAlBlClDlDlnlEkCkClikskslFlGkskslilHlIliksaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlblJlKlLlMlNlOlLlKlJiakblPlQlRiaaMaMiDlSlSlTlTiDjmjljllliqaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskCkCkCkCkClnlUlzlzlVlzlzlzlnlEkClWkskslXlYlYlXksksksksksksksksaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlblKlZmalMlNlOmamblKiakbmcmdmeiaaMaMmfiZmgmgmgmgmgmgmgiZmhaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskCkCkCkCkClnmilzlzlzmjlzmklnlEkUlWksmlmmmmmmmmmnmompmqmrmsmtksaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlbmulKmulMlNlOmulKmuiakbkbkbkbiaaMaMaMmfmvmvmvmvmvmvmvmhaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskCkCkCkCkCmwlnlnlnmxlnlnlnmykCkCmzksmAmmmBmBmCmmmmmmmDmEmEmEksaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlbmFlKlKlMlNlOlKlKmGiamHmImImJiaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskCkCkCkCkCkCkClnmKlzmLlnmMlililimNksmmmBmOmPmBmmmQmRmqmSmTksksaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlbmUmVmVlMlNlOmWmWmXiaiamYiaiaiaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskCkCkCkCkCkCkClnmZlznalnnbncncnclGksmmmBndnemBmmmQnfksksksksaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlblqlqlqlqlNlqlqlqlqiaieieieieiaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskCkClmlnlnlnlnlnmZlznalnngnhnhnhnhnimmmmmmmmmmmmmQnfksksksksaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlqlNlqnjnjnjieieieieieiaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskCkClnnklzlznllnmZlznalnnmnnlFnclGksnomBmBmBmmmmmQnpksnqnrksksaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlqlqlqlqlqlqlqlqltlqlqlqlqlqlqlqlqiaiaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskCkClnnklznsntlnmZlznalnlnnunvlpnwksnxnynznynymmmmmmnAnBnBnCksaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlqnDnEnEnEnEnEnDnDnDnEnEnEnEnEnDlqaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMksnFkClnnklzlznGlnlzlzlzlnlzlzlzlnmzksnHnInHnHnJmmmmmmksnKnLnCksaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnMnDnDnDnNnDnDnDnDnDnDnDnNnDnDnDnMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskCkClnnklzlzlznOlzlzlznPlzlzlzlnlWksksmRnQnRnSksnTmmksksksksksaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlqnDnEnEnEnEnEnDnDnDnEnEnEnEnEnDlqaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskCkClnnklzlzlznUlzlzlznVlzlznWlnnXnwksksksksksksnYnYnZoaobocksaMaMododododododododododododaMaMaMaMaMaMaMaMaMaMlqluoeoeoeoeoeoeoeoeoeoeoeoeoelslqaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskClmlnlnlnlnlnlnoflzlzlnlnlnlnlnlnlpogogogohnwksoioioioioioiksaMaModojokolomonooodopoqorodaMaMosososososososososotouououououououououououououotosososososososososaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskClnovovowoxoylnozlzlzlnoAoBoCoDoElnkCkDkCkClWmqoioioioioioFksaMaModolololololololoGoHoIodaMaMosoJoKoLoLoLoLoLoMoNouououououououououououououoOoMoPoPoPoPoPoKoQosaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskClnlzlzlznslzoRlzlzlzoSlznslznsoTlnkCkUlIkDmNksoUoUoUoUoUoVksaMaModoWoWolololoXodoYoZpaodaMaMosoJoKoLpboLpboLoMoNouououououououououououououoOoMoPpcoPpcoPoKoQosaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskClnpdlzlzlzlzpelzlzlzpflzlzlzlzlzlnkCksksksksksksksksksksksksaMaModololololpgpgododphododaMaMosoJoKoLoLpioLoLoMoNouououououpjpkpjouououououoOoMoPoPploPoPoKoQosaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskClnpdlzlzpmpnlnpopppolnpqprlzlzlzlnkCksaMaMaMaMaMaMaMaMaMaMaMaMaModpspsolptpupvodpwphpxodaMaMosoJoKoLoLoLoLoLoMoNouououououpjpypjouououououoOoMoPoPoPoPoPoKoQosaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskClnlzlzlzlnlnlnpzpAlzlnlnlnlzlzlzlnkCksaMaMaMaMaMaMaMaMaMaMaMaMaModolololptpBpCodpDphpEodaMaMosoJoKoLpboLpboLoMoNouououououououououououououoOoMoPpcoPpcoPoKoQosaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskClnpFpGpHlnkClnpIpIpIlnkClnlDpJpKlnkCksaMaMaMaMaMaMaMaMaMaMaMaMaModolololololododododododaMaMosoJoKoLoLoLoLoLoMoNouououououououououououououoOoMoPoPoPoPoPoKoQosaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskClnpIpIpIlnkCmwpLpMpNmykClnpIpIpIlnkCksaMaMaMaMaMaMaMaMaMaMaMaMaModpOpPpQololpRpSpTpUpVodaMaMososospWpWpWpWpWosotouououououououououououououotospWpWpWpWpWosososaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskCmwpLpMpNmykCkCkCkCkCkCkCmwpLpMpNmykCksaMaMaMaMaMaMaMaMaMaMaMaMaModpXpYpZolololqaqbqaqcodaMaMaMaMosqdqdqdqdqdosqeqfqfqfqfqfqfqfqfqfqfqfqfqfqgosqhqhqhqhqhosaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkskCkCkCkCkCkCkCkCkCkCkCkCkCkCkCkCkCkCkCksaMaMaMaMaMaMaMaMaMaMaMaMaModpYqipZolololqjqkqjqkodaMaMaMaMosososososososqlqmqmqmqmqmqnqoqpqmqmqmqmqmqlosososososososaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMksksksksksksksksksksksksksksksksksksksksksaMaMaMaMaMaMaMaMaMaMaMaMaModpXqqqrololpRqsqcqtquodaMaMaMaMaMaMaMaMaMaMqvqlqlqlqwqlqxqxqxqxqxqlqwqlqlqlqvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMododododododododododododaMaMaMaMaMaMaMaMaMaMqvqvqyqvqvqvqvqzqAqBqvqvqvqvqyqvqvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMqvqvqvqvqvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlclclclclclclclclclclclclclclclclclclcaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlcqDqEqFqGqGqEqHqIqJqKqLqMqNqMqMqMqOlcaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlcqDqEqEqEqEqEqPqLqLqLqQqMqMqMqRqMqMlcaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlcqDqEqSqDqTqUqVqLqLqLqLqMqMqWqMqXqNlcaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlcqYqLqQqQqQqQqQqLqLqLqLqMqMqMqZqMqMlcaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlcraqLqLqLqLqLqLqLqLqLqLrbqMqMqMqMqMlcaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlcraqLqLqLqLqLqLqLqLqQqLrbrcrcrcrdrclcaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlcreqLqLqLqLqLqLqLqQrfqQrbrgrgrgrgrglcaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlclcrhririrjlclclclclclclclclclclclclcaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlcrkrkrkrklcaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlcrkrkrkrklcaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
-aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlclclclclclcaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlblblblblblblblblblblblblblblblblblblbaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlbqCqDqEqFqFqDqGqHqIqJqKqLqMqLqLqLqNlbaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlbqCqDqDqDqDqDqOqKqKqKqPqLqLqLqQqLqLlbaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlbqCqDqRqCqSqTqUqKqKqKqKqLqLqVqLqWqMlbaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlbqXqKqPqPqPqPqPqKqKqKqKqLqLqLqYqLqLlbaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlbqZqKqKqKqKqKqKqKqKqKqKraqLqLqLqLqLlbaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlbqZqKqKqKqKqKqKqKqKqPqKrarbrbrbrcrblbaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlbrdqKqKqKqKqKqKqKqPreqPrarfrfrfrfrflbaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlblbrgrhrhrilblblblblblblblblblblblblbaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlbrjrjrjrjlbaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlbrjrjrjrjlbaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
+aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlblblblblblbaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM
diff --git a/_maps/map_files/generic/z3.dmm b/_maps/map_files/generic/z3.dmm
index da3942d1fc4..406ca275b05 100644
--- a/_maps/map_files/generic/z3.dmm
+++ b/_maps/map_files/generic/z3.dmm
@@ -102,30 +102,30 @@
"bX" = (/obj/item/weapon/stock_parts/cell,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
"bY" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
"bZ" = (/obj/item/weapon/coin/clown,/turf/simulated/floor/engine,/area/tcommsat/chamber)
-"ca" = (/obj/structure/stool/bed,/turf/simulated/floor/airless,/area/tcommsat/chamber)
-"cb" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless,/area/tcommsat/chamber)
-"cc" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/tcommsat/chamber)
-"cd" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/tcommsat/chamber)
+"ca" = (/obj/structure/stool/bed,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"cb" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"cc" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/tcommsat/chamber)
+"cd" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/tcommsat/chamber)
"ce" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/space)
"cf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
"cg" = (/obj/item/weapon/wrench,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
"ch" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
"ci" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/space)
-"cj" = (/turf/simulated/floor/airless,/area/tcommsat/chamber)
-"ck" = (/obj/structure/table,/obj/item/weapon/paper,/turf/simulated/floor/airless,/area/tcommsat/chamber)
-"cl" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen/blue,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless,/area/tcommsat/chamber)
-"cm" = (/obj/structure/computerframe,/turf/simulated/floor/airless,/area/tcommsat/chamber)
-"cn" = (/obj/structure/table,/turf/simulated/floor/airless,/area/tcommsat/chamber)
+"cj" = (/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"ck" = (/obj/structure/table,/obj/item/weapon/paper,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"cl" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen/blue,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"cm" = (/obj/structure/computerframe,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"cn" = (/obj/structure/table,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
"co" = (/obj/item/weapon/syntiflesh{name = "Cuban Pete-Meat"},/turf/simulated/floor/engine,/area/tcommsat/chamber)
-"cp" = (/obj/structure/grille,/turf/simulated/floor/airless,/area/tcommsat/chamber)
-"cq" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/airless,/area/tcommsat/chamber)
+"cp" = (/obj/structure/grille,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"cq" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
"cr" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
"cs" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
"ct" = (/obj/item/stack/cable_coil/cut{amount = 1},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
"cu" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/closet,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
"cv" = (/obj/structure/window/reinforced{dir = 8},/turf/space,/area/space)
-"cw" = (/obj/item/weapon/folder/yellow,/turf/simulated/floor/airless,/area/tcommsat/chamber)
-"cx" = (/obj/structure/stool/bed,/obj/effect/decal/remains/human,/turf/simulated/floor/airless,/area/tcommsat/chamber)
+"cw" = (/obj/item/weapon/folder/yellow,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"cx" = (/obj/structure/stool/bed,/obj/effect/decal/remains/human,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
"cy" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/space)
"cz" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/space)
"cA" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
@@ -133,89 +133,89 @@
"cC" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/space,/area/space)
"cD" = (/obj/structure/window/reinforced,/turf/space,/area/space)
"cE" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/tcommsat/chamber)
-"cF" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/airless,/area/tcommsat/chamber)
-"cG" = (/obj/item/weapon/paper/crumpled,/turf/simulated/floor/airless,/area/tcommsat/chamber)
+"cF" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"cG" = (/obj/item/weapon/paper/crumpled,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
"cH" = (/obj/item/weapon/syntiflesh{name = "Cuban Pete-Meat"},/obj/item/weapon/spacecash,/turf/simulated/floor/engine,/area/tcommsat/chamber)
-"cI" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/airless,/area/tcommsat/chamber)
-"cJ" = (/obj/structure/table,/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/floor/airless,/area/tcommsat/chamber)
-"cK" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/airless,/area/tcommsat/chamber)
-"cL" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"cM" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"cN" = (/obj/structure/window/reinforced,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"cO" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/item/weapon/airlock_electronics,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"cP" = (/obj/structure/door_assembly/door_assembly_hatch,/turf/simulated/floor/airless,/area/tcommsat/chamber)
-"cQ" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/airless,/area/tcommsat/chamber)
-"cR" = (/obj/machinery/vending/snack,/turf/simulated/floor/airless,/area/tcommsat/chamber)
-"cS" = (/obj/machinery/vending/cola,/turf/simulated/floor/airless,/area/tcommsat/chamber)
-"cT" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/airless,/area/tcommsat/chamber)
-"cU" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/airless,/area/tcommsat/chamber)
+"cI" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"cJ" = (/obj/structure/table,/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"cK" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"cL" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"cM" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"cN" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"cO" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/item/weapon/airlock_electronics,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"cP" = (/obj/structure/door_assembly/door_assembly_hatch,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"cQ" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"cR" = (/obj/machinery/vending/snack,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"cS" = (/obj/machinery/vending/cola,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"cT" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"cU" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
"cV" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/tcommsat/chamber)
"cW" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/space)
"cX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating/airless,/area/space)
"cY" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless,/area/space)
"cZ" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/plating/airless,/area/space)
-"da" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"da" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
"db" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/space)
"dc" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/space)
"dd" = (/obj/structure/window/reinforced{dir = 1},/turf/space,/area/space)
-"de" = (/obj/structure/table,/obj/item/device/radio/off,/turf/simulated/floor/airless,/area/tcommsat/chamber)
-"df" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/airless,/area/tcommsat/chamber)
-"dg" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"dh" = (/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"di" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"de" = (/obj/structure/table,/obj/item/device/radio/off,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"df" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"dg" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"dh" = (/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"di" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
"dj" = (/turf/simulated/floor/plasteel{icon_state = "solarpanel"},/area/space)
"dk" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/turf/space,/area/space)
-"dl" = (/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"dl" = (/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
"dm" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
"dn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
"do" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
"dp" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
-"dq" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"dq" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
"dr" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area/space)
-"ds" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/item/stack/rods,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"ds" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/item/stack/rods,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
"dt" = (/obj/item/stack/rods,/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
-"du" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"dv" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"du" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"dv" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
"dw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/tcommsat/chamber)
"dx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcommsat/chamber)
"dy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcommsat/chamber)
-"dz" = (/obj/effect/decal/cleanable/blood,/obj/item/weapon/scalpel{pixel_y = 12},/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"dA" = (/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"dz" = (/obj/effect/decal/cleanable/blood,/obj/item/weapon/scalpel{pixel_y = 12},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"dA" = (/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
"dB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/tcommsat/chamber)
-"dC" = (/obj/structure/rack,/obj/item/weapon/circuitboard/teleporter,/turf/simulated/floor/airless,/area/tcommsat/chamber)
-"dD" = (/obj/item/device/radio/off,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"dC" = (/obj/structure/rack,/obj/item/weapon/circuitboard/teleporter,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"dD" = (/obj/item/device/radio/off,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
"dE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcommsat/chamber)
"dF" = (/obj/effect/decal/cleanable/oil,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
"dG" = (/obj/effect/decal/cleanable/blood,/obj/structure/stool/bed/chair,/obj/item/clothing/under/rank/centcom_officer,/obj/item/weapon/restraints/handcuffs,/obj/effect/decal/remains/human,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
"dH" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
-"dI" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"dJ" = (/obj/structure/door_assembly/door_assembly_mhatch,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"dK" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/airless,/area/tcommsat/chamber)
+"dI" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"dJ" = (/obj/structure/door_assembly/door_assembly_mhatch,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"dK" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
"dL" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
-"dM" = (/obj/effect/decal/cleanable/blood,/obj/item/device/assembly/signaler,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"dN" = (/obj/structure/table,/obj/item/weapon/reagent_containers/syringe/lethal/choral,/obj/item/weapon/reagent_containers/syringe/lethal{pixel_y = 4},/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"dM" = (/obj/effect/decal/cleanable/blood,/obj/item/device/assembly/signaler,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"dN" = (/obj/structure/table,/obj/item/weapon/reagent_containers/syringe/lethal/choral,/obj/item/weapon/reagent_containers/syringe/lethal{pixel_y = 4},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
"dO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/tcommsat/chamber)
-"dP" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/floor/airless,/area/tcommsat/chamber)
+"dP" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
"dQ" = (/obj/structure/table,/obj/item/device/electropack,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
-"dR" = (/obj/structure/table,/obj/item/weapon/hemostat,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"dS" = (/obj/structure/table,/obj/item/weapon/circular_saw,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"dR" = (/obj/structure/table,/obj/item/weapon/hemostat,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"dS" = (/obj/structure/table,/obj/item/weapon/circular_saw,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
"dT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcommsat/chamber)
-"dU" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/item/stack/rods,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"dU" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/item/stack/rods,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
"dV" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/space,/area/space)
"dW" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/space)
-"dX" = (/turf/simulated/floor/airless{dir = 9; icon_state = "warning"},/area/tcommsat/chamber)
-"dY" = (/turf/simulated/floor/airless{icon_state = "warningcorner"; dir = 4},/area/tcommsat/chamber)
-"dZ" = (/turf/simulated/floor/airless{icon_state = "warning"; dir = 1},/area/tcommsat/chamber)
-"ea" = (/turf/simulated/floor/airless{dir = 5; icon_state = "warning"},/area/tcommsat/chamber)
+"dX" = (/turf/simulated/floor/plasteel/airless{dir = 9; icon_state = "warning"},/area/tcommsat/chamber)
+"dY" = (/turf/simulated/floor/plasteel/airless{icon_state = "warningcorner"; dir = 4},/area/tcommsat/chamber)
+"dZ" = (/turf/simulated/floor/plasteel/airless{icon_state = "warning"; dir = 1},/area/tcommsat/chamber)
+"ea" = (/turf/simulated/floor/plasteel/airless{dir = 5; icon_state = "warning"},/area/tcommsat/chamber)
"eb" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/space,/area/space)
-"ec" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"ed" = (/obj/item/weapon/paper/crumpled,/turf/simulated/floor/airless{dir = 8; icon_state = "warning"},/area/tcommsat/chamber)
-"ee" = (/obj/item/stack/rods,/turf/simulated/floor/airless,/area/tcommsat/chamber)
-"ef" = (/turf/simulated/floor/airless{dir = 4; icon_state = "warning"},/area/tcommsat/chamber)
-"eg" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"eh" = (/turf/simulated/floor/airless{dir = 10; icon_state = "warning"},/area/tcommsat/chamber)
-"ei" = (/obj/machinery/light/small,/obj/item/weapon/paper,/turf/simulated/floor/airless{icon_state = "warningcorner"; dir = 1},/area/tcommsat/chamber)
-"ej" = (/turf/simulated/floor/airless{dir = 6; icon_state = "warning"},/area/tcommsat/chamber)
+"ec" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"ed" = (/obj/item/weapon/paper/crumpled,/turf/simulated/floor/plasteel/airless{dir = 8; icon_state = "warning"},/area/tcommsat/chamber)
+"ee" = (/obj/item/stack/rods,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"ef" = (/turf/simulated/floor/plasteel/airless{dir = 4; icon_state = "warning"},/area/tcommsat/chamber)
+"eg" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"eh" = (/turf/simulated/floor/plasteel/airless{dir = 10; icon_state = "warning"},/area/tcommsat/chamber)
+"ei" = (/obj/machinery/light/small,/obj/item/weapon/paper,/turf/simulated/floor/plasteel/airless{icon_state = "warningcorner"; dir = 1},/area/tcommsat/chamber)
+"ej" = (/turf/simulated/floor/plasteel/airless{dir = 6; icon_state = "warning"},/area/tcommsat/chamber)
"ek" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/space,/area/space)
"el" = (/obj/structure/lattice,/obj/item/stack/rods,/obj/item/weapon/shard{icon_state = "medium"},/turf/space,/area/space)
"em" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
diff --git a/_maps/map_files/generic/z4.dmm b/_maps/map_files/generic/z4.dmm
index 0b6b03799ea..156f76d5e93 100644
--- a/_maps/map_files/generic/z4.dmm
+++ b/_maps/map_files/generic/z4.dmm
@@ -1,6 +1,6 @@
"aa" = (/turf/space,/area/space)
"ab" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/space)
-"ac" = (/obj/machinery/power/solar/fake,/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/djstation/solars)
+"ac" = (/obj/machinery/power/solar/fake,/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/djstation/solars)
"ad" = (/turf/simulated/floor/plating/airless,/area/djstation/solars)
"ae" = (/obj/structure/lattice,/turf/space,/area/space)
"af" = (/turf/simulated/wall,/area/djstation)
@@ -60,7 +60,7 @@
"bh" = (/obj/machinery/door/airlock/external{name = "Ruskie DJ Station"; req_access = null; req_access_txt = "0"},/turf/simulated/floor/plating,/area/djstation)
"bi" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/disposaloutlet,/turf/simulated/floor/plating/airless,/area/space)
"bj" = (/turf/simulated/floor/plating/airless,/area/space)
-"bk" = (/turf/simulated/floor/airless,/area/space)
+"bk" = (/turf/simulated/floor/plasteel/airless,/area/space)
"bl" = (/turf/simulated/wall/r_wall,/area/space)
"bm" = (/obj/structure/girder/reinforced,/turf/simulated/floor/plating/airless,/area/space)
"bn" = (/turf/simulated/wall/r_wall,/area/derelict/solar_control)
@@ -74,9 +74,9 @@
"bv" = (/obj/machinery/door/airlock/external{name = "External Engineering"},/turf/simulated/floor/plating,/area/derelict/solar_control)
"bw" = (/turf/simulated/wall,/area/space)
"bx" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/solar_control)
-"by" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/simulated/floor/airless,/area/solar/derelict_starboard)
+"by" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/simulated/floor/plasteel/airless,/area/solar/derelict_starboard)
"bz" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating/airless,/area/solar/derelict_starboard)
-"bA" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/simulated/floor/airless,/area/solar/derelict_starboard)
+"bA" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/simulated/floor/plasteel/airless,/area/solar/derelict_starboard)
"bB" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; environ = 0; equipment = 0; lighting = 0; locked = 0; name = "Starboard Solar APC"; pixel_y = 24},/turf/simulated/floor/plasteel,/area/derelict/solar_control)
"bC" = (/obj/machinery/power/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plasteel,/area/derelict/solar_control)
"bD" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar_control{id = "derelictsolar"; name = "Primary Solar Control"; track = 0},/turf/simulated/floor/plasteel,/area/derelict/solar_control)
@@ -130,7 +130,7 @@
"cz" = (/obj/machinery/door/airlock/command{name = "E.V.A."; req_access = null; req_access_txt = "18"},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
"cA" = (/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
"cB" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plating/airless,/area/space)
-"cC" = (/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/space)
+"cC" = (/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/space)
"cD" = (/obj/item/stack/cable_coil/cut,/turf/space,/area/space)
"cE" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
"cF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/derelict/bridge/access)
@@ -144,7 +144,7 @@
"cN" = (/obj/structure/sign/electricshock,/turf/simulated/wall/r_wall,/area/derelict/singularity_engine)
"cO" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/derelict/singularity_engine)
"cP" = (/obj/machinery/door/airlock/engineering{name = "Engineering Access"; req_access_txt = "10"},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
-"cQ" = (/obj/machinery/door/airlock/engineering{name = "Engineering Access"; req_access_txt = "10"},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/derelict/singularity_engine)
+"cQ" = (/obj/machinery/door/airlock/engineering{name = "Engineering Access"; req_access_txt = "10"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine)
"cR" = (/obj/structure/sign/securearea{name = "ENGINEERING ACCESS"},/turf/simulated/wall/r_wall,/area/derelict/singularity_engine)
"cS" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
"cT" = (/obj/structure/computerframe,/turf/simulated/floor/plasteel,/area/derelict/bridge)
@@ -155,10 +155,10 @@
"cY" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel,/area/derelict/bridge)
"cZ" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/simulated/floor/plasteel,/area/derelict/bridge)
"da" = (/obj/item/weapon/grenade/empgrenade,/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/bridge)
-"db" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
-"dc" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/derelict/singularity_engine)
-"dd" = (/turf/simulated/floor/airless{icon_state = "damaged5"},/area/derelict/singularity_engine)
-"de" = (/obj/item/stack/cable_coil/cut,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
+"db" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
+"dc" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/singularity_engine)
+"dd" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine)
+"de" = (/obj/item/stack/cable_coil/cut,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
"df" = (/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"dg" = (/turf/simulated/wall,/area/derelict/singularity_engine)
"dh" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor/plasteel,/area/derelict/bridge)
@@ -166,11 +166,11 @@
"dj" = (/turf/simulated/floor/plating,/area/derelict/bridge)
"dk" = (/obj/structure/table,/obj/item/weapon/paper/crumpled,/turf/simulated/floor/plasteel,/area/derelict/bridge)
"dl" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/bridge)
-"dm" = (/obj/structure/window/reinforced,/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
-"dn" = (/obj/structure/window/reinforced,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/derelict/singularity_engine)
-"do" = (/obj/structure/window/reinforced,/turf/simulated/floor/airless{icon_state = "damaged4"},/area/derelict/singularity_engine)
-"dp" = (/obj/structure/window/reinforced,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
-"dq" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"dm" = (/obj/structure/window/reinforced,/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
+"dn" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine)
+"do" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/singularity_engine)
+"dp" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
+"dq" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
"dr" = (/obj/machinery/power/emitter{dir = 1; icon_state = "emitter"},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"ds" = (/obj/machinery/field/generator,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"dt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
@@ -181,14 +181,14 @@
"dy" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"dz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"dA" = (/obj/structure/noticeboard,/turf/simulated/wall,/area/derelict/singularity_engine)
-"dB" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"dB" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
"dC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
"dD" = (/obj/machinery/door/window/eastleft{name = "Heads of Staff"; req_access_txt = "19"},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
"dE" = (/obj/structure/table,/obj/item/device/paicard,/turf/simulated/floor/plasteel,/area/derelict/bridge)
"dF" = (/obj/structure/stool,/turf/simulated/floor/plasteel,/area/derelict/bridge)
"dG" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/bridge)
-"dH" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
-"dI" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/airless{icon_state = "damaged4"},/area/derelict/singularity_engine)
+"dH" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"dI" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/singularity_engine)
"dJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
"dK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
"dL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/derelict/bridge/access)
@@ -196,7 +196,7 @@
"dN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/derelict/bridge)
"dO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/derelict/bridge)
"dP" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/derelict/bridge)
-"dQ" = (/obj/item/weapon/paper{info = "Objective #1: Destroy the station with a nuclear device."; name = "Objectives of a Nuclear Operative"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"dQ" = (/obj/item/weapon/paper{info = "Objective #1: Destroy the station with a nuclear device."; name = "Objectives of a Nuclear Operative"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
"dR" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/derelict/bridge/access)
"dS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/derelict/bridge)
"dT" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel,/area/derelict/bridge)
@@ -204,10 +204,10 @@
"dV" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/bridge)
"dW" = (/obj/item/stack/rods,/turf/space,/area/space)
"dX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
-"dY" = (/obj/item/weapon/shard,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"dY" = (/obj/item/weapon/shard,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
"dZ" = (/obj/item/clothing/suit/space/syndicate/black/engie,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"ea" = (/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
-"eb" = (/obj/item/weapon/shard,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/derelict/singularity_engine)
+"eb" = (/obj/item/weapon/shard,/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine)
"ec" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"ed" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"ee" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
@@ -216,7 +216,7 @@
"eh" = (/obj/structure/window/fulltile,/turf/simulated/floor/plasteel,/area/derelict/bridge)
"ei" = (/obj/structure/table,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor/plasteel,/area/derelict/bridge)
"ej" = (/obj/structure/table,/obj/machinery/light/small,/turf/simulated/floor/plasteel,/area/derelict/bridge)
-"ek" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"ek" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
"el" = (/obj/item/clothing/head/helmet/space/syndicate/black/engie,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"em" = (/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"en" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
@@ -225,74 +225,74 @@
"eq" = (/turf/simulated/wall/r_wall,/area/derelict/bridge)
"er" = (/obj/machinery/door/window{dir = 2; name = "Captain's Quarters"; req_access_txt = "20"},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/derelict/bridge)
"es" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
-"et" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"et" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
"eu" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"ev" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
-"ew" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/derelict/singularity_engine)
-"ex" = (/turf/simulated/floor/airless,/area/derelict/bridge/access)
-"ey" = (/obj/structure/table,/obj/item/device/aicard,/turf/simulated/floor/airless,/area/derelict/bridge/access)
-"ez" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless,/area/derelict/bridge/access)
-"eA" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/turf/simulated/floor/airless,/area/derelict/bridge/access)
-"eB" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell{charge = 100; maxcharge = 15000},/turf/simulated/floor/airless,/area/derelict/bridge/access)
-"eC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/derelict/bridge/access)
+"ew" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine)
+"ex" = (/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access)
+"ey" = (/obj/structure/table,/obj/item/device/aicard,/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access)
+"ez" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access)
+"eA" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access)
+"eB" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell{charge = 100; maxcharge = 15000},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access)
+"eC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access)
"eD" = (/obj/structure/girder,/turf/simulated/floor/plating/airless,/area/space)
"eE" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
-"eF" = (/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/airless,/area/derelict/bridge/access)
-"eG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/airless,/area/derelict/bridge/access)
+"eF" = (/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access)
+"eG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access)
"eH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating/airless,/area/derelict/bridge/access)
-"eI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/airless,/area/derelict/bridge/access)
-"eJ" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/airless,/area/derelict/bridge/access)
-"eK" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
-"eL" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
-"eM" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
-"eN" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
-"eO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/airless,/area/derelict/bridge/access)
+"eI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access)
+"eJ" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access)
+"eK" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
+"eL" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"eM" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"eN" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
+"eO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access)
"eP" = (/turf/simulated/floor/plating/airless,/area/derelict/bridge/access)
-"eQ" = (/obj/structure/table,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"eQ" = (/obj/structure/table,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
"eR" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
-"eS" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/derelict/singularity_engine)
-"eT" = (/obj/structure/grille,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
-"eU" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "damaged4"},/area/derelict/singularity_engine)
-"eV" = (/obj/machinery/door/airlock/maintenance{name = "Tech Storage"; req_access_txt = "23"},/turf/simulated/floor/airless,/area/derelict/bridge/access)
+"eS" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine)
+"eT" = (/obj/structure/grille,/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
+"eU" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/singularity_engine)
+"eV" = (/obj/machinery/door/airlock/maintenance{name = "Tech Storage"; req_access_txt = "23"},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access)
"eW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/derelict/bridge/access)
-"eX" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/airless,/area/derelict/bridge/access)
-"eY" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
+"eX" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access)
+"eY" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
"eZ" = (/obj/item/weapon/screwdriver,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
-"fa" = (/obj/item/stack/rods,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"fa" = (/obj/item/stack/rods,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
"fb" = (/obj/item/weapon/shard{icon_state = "medium"},/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
-"fc" = (/obj/structure/table,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"fc" = (/obj/structure/table,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
"fd" = (/turf/simulated/wall,/area/derelict/hallway/primary)
-"fe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/hallway/primary)
-"ff" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/hallway/primary)
-"fg" = (/turf/simulated/floor/airless,/area/derelict/hallway/primary)
+"fe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/hallway/primary)
+"ff" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/hallway/primary)
+"fg" = (/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
"fh" = (/obj/item/weapon/ore/slag,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"fi" = (/obj/item/weapon/shard,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"fj" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"fk" = (/turf/simulated/wall/r_wall,/area/derelict/hallway/primary)
"fl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
-"fm" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/hallway/primary)
-"fn" = (/obj/structure/window/fulltile{dir = 4},/turf/simulated/floor/airless,/area/derelict/hallway/primary)
-"fo" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"fm" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/hallway/primary)
+"fn" = (/obj/structure/window/fulltile{dir = 4},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"fo" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
"fp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"fq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"fr" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
"fs" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
-"ft" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/hallway/primary)
-"fu" = (/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/derelict/hallway/primary)
-"fv" = (/obj/machinery/light/small,/turf/simulated/floor/airless,/area/derelict/hallway/primary)
+"ft" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/hallway/primary)
+"fu" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/derelict/hallway/primary)
+"fv" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
"fw" = (/obj/structure/grille,/obj/structure/window/fulltile{dir = 8},/turf/simulated/floor/plating/airless,/area/space)
-"fx" = (/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/space)
-"fy" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/space)
+"fx" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/space)
+"fy" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/space)
"fz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"fA" = (/obj/machinery/door/window,/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
-"fB" = (/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/space)
-"fC" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"fB" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/space)
+"fC" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
"fD" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
-"fE" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
+"fE" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
"fF" = (/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
-"fG" = (/obj/item/weapon/crowbar,/turf/simulated/floor/airless,/area/derelict/hallway/primary)
-"fH" = (/obj/structure/grille,/turf/simulated/floor/airless,/area/derelict/hallway/primary)
-"fI" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/space)
+"fG" = (/obj/item/weapon/crowbar,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"fH" = (/obj/structure/grille,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"fI" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/space)
"fJ" = (/obj/item/weapon/shard{icon_state = "small"},/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"fK" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"fL" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
@@ -300,7 +300,7 @@
"fN" = (/turf/simulated/wall/r_wall,/area/derelict/arrival)
"fO" = (/turf/simulated/wall,/area/derelict/arrival)
"fP" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
-"fQ" = (/obj/machinery/light/small,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/hallway/primary)
+"fQ" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/hallway/primary)
"fR" = (/obj/structure/window/fulltile{dir = 5},/turf/space,/area/space)
"fS" = (/obj/structure/table,/turf/simulated/floor/plasteel,/area/derelict/arrival)
"fT" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel,/area/derelict/arrival)
@@ -311,11 +311,11 @@
"fY" = (/turf/simulated/wall,/area/derelict/medical/chapel)
"fZ" = (/obj/item/weapon/shard,/turf/space,/area/space)
"ga" = (/obj/structure/grille,/turf/space,/area/derelict/singularity_engine)
-"gb" = (/obj/item/weapon/shard,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"gb" = (/obj/item/weapon/shard,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
"gc" = (/obj/structure/lattice,/obj/structure/window/fulltile,/turf/space,/area/space)
-"gd" = (/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/derelict/arrival)
+"gd" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/derelict/arrival)
"ge" = (/turf/simulated/floor/plating/airless,/area/derelict/arrival)
-"gf" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/arrival)
+"gf" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/arrival)
"gg" = (/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel)
"gh" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel)
"gi" = (/obj/structure/closet/coffin,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel)
@@ -327,54 +327,54 @@
"go" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/derelict/medical)
"gp" = (/obj/machinery/door/airlock/external{name = "External Engineering"},/turf/simulated/floor/plating/airless,/area/space)
"gq" = (/obj/structure/grille,/turf/space,/area/space)
-"gr" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/derelict/hallway/primary)
+"gr" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/hallway/primary)
"gs" = (/obj/machinery/door/window{dir = 8},/turf/simulated/floor/plasteel,/area/derelict/arrival)
-"gt" = (/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical)
-"gu" = (/obj/item/weapon/firstaid_arm_assembly,/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical)
-"gv" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/medical)
-"gw" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/medical)
+"gt" = (/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"gu" = (/obj/item/weapon/firstaid_arm_assembly,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"gv" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/medical)
+"gw" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/medical)
"gx" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/medical)
-"gy" = (/obj/machinery/light/small,/turf/simulated/floor/airless{icon_state = "damaged4"},/area/derelict/singularity_engine)
+"gy" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/singularity_engine)
"gz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
"gA" = (/obj/structure/window/fulltile{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
"gB" = (/obj/structure/lattice,/obj/structure/window/fulltile{dir = 1},/turf/space,/area/space)
"gC" = (/obj/structure/lattice,/obj/structure/lattice,/obj/structure/window/fulltile{dir = 1},/turf/space,/area/space)
"gD" = (/turf/simulated/floor/plating,/area/derelict/arrival)
"gE" = (/obj/machinery/door/airlock/medical{name = "Morgue"; req_access_txt = "6"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel)
-"gF" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical)
-"gG" = (/obj/item/stack/medical/bruise_pack,/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical)
-"gH" = (/turf/simulated/floor/airless{icon_state = "damaged5"},/area/space)
+"gF" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"gG" = (/obj/item/stack/medical/bruise_pack,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"gH" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/space)
"gI" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/arrival)
"gJ" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/arrival)
"gK" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel)
"gL" = (/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
-"gM" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/space)
+"gM" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/space)
"gN" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel,/area/derelict/arrival)
"gO" = (/obj/structure/stool/bed/chair{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/arrival)
"gP" = (/obj/machinery/door/morgue{name = "coffin storage"; req_access_txt = "22"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel)
-"gQ" = (/obj/structure/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel)
-"gR" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical)
+"gQ" = (/obj/structure/bodycontainer/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel)
+"gR" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
"gS" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/space)
-"gT" = (/obj/structure/window/reinforced,/turf/simulated/floor/airless{icon_state = "white"},/area/space)
-"gU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/hallway/primary)
+"gT" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/space)
+"gU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/hallway/primary)
"gV" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/arrival)
"gW" = (/obj/structure/window/reinforced{dir = 4},/turf/space,/area/space)
"gX" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{dir = 1; icon_state = "chapel"},/area/derelict/medical/chapel)
"gY" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "chapel"},/area/derelict/medical/chapel)
"gZ" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "chapel"},/area/derelict/medical/chapel)
-"ha" = (/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical)
-"hb" = (/obj/item/stack/medical/bruise_pack,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/medical)
-"hc" = (/obj/item/stack/medical/ointment,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/medical)
+"ha" = (/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"hb" = (/obj/item/stack/medical/bruise_pack,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/medical)
+"hc" = (/obj/item/stack/medical/ointment,/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/medical)
"hd" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/medical)
"he" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/space)
"hf" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/space,/area/space)
"hg" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "chapel"},/area/derelict/medical/chapel)
"hh" = (/turf/simulated/floor/plasteel{icon_state = "chapel"},/area/derelict/medical/chapel)
"hi" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "chapel"},/area/derelict/medical/chapel)
-"hj" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical)
-"hk" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical)
+"hj" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"hk" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
"hl" = (/obj/machinery/door/airlock/glass{name = "Med-Sci"; req_access_txt = "9"},/turf/simulated/floor/plating/airless,/area/derelict/medical)
-"hm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/airless,/area/derelict/hallway/primary)
+"hm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
"hn" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel,/area/derelict/arrival)
"ho" = (/obj/structure/window/reinforced,/turf/space,/area/space)
"hp" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/space,/area/space)
@@ -383,32 +383,32 @@
"hs" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{dir = 1; icon_state = "chapel"},/area/derelict/medical/chapel)
"ht" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/wall,/area/derelict/medical/chapel)
"hu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/wall,/area/derelict/medical/chapel)
-"hv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical)
-"hw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical)
-"hx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical)
-"hy" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical)
-"hz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical)
-"hA" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/medical)
-"hB" = (/obj/structure/closet/wardrobe/genetics_white,/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical)
+"hv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"hw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"hx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"hy" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"hz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"hA" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/medical)
+"hB" = (/obj/structure/closet/wardrobe/genetics_white,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
"hC" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/space)
"hD" = (/obj/item/weapon/shard,/turf/simulated/floor/plating/airless,/area/space)
"hE" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/space)
-"hF" = (/turf/simulated/floor/airless{icon_state = "white"},/area/space)
-"hG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/derelict/hallway/primary)
-"hH" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/airless,/area/derelict/hallway/primary)
+"hF" = (/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/space)
+"hG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"hH" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
"hI" = (/obj/item/weapon/pen,/turf/simulated/floor/plasteel,/area/derelict/arrival)
"hJ" = (/obj/machinery/door/poddoor{id = "derelict_gun"; name = "Derelict Mass Driver"},/turf/simulated/floor/plating,/area/derelict/medical/chapel)
"hK" = (/turf/simulated/floor/plating,/area/derelict/medical/chapel)
"hL" = (/obj/machinery/mass_driver{dir = 8; icon_state = "mass_driver"; id = "derelict_gun"},/obj/machinery/door/window{dir = 4; req_access_txt = "25"},/obj/structure/closet/coffin,/turf/simulated/floor/plating,/area/derelict/medical/chapel)
-"hM" = (/obj/machinery/door/window{dir = 8},/turf/simulated/floor/airless,/area/derelict/medical/chapel)
-"hN" = (/turf/simulated/floor/airless,/area/derelict/medical/chapel)
-"hO" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless,/area/derelict/medical/chapel)
-"hP" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 4; name = "Worn-out APC"; pixel_x = 24; pixel_y = 0},/turf/simulated/floor/airless,/area/derelict/medical/chapel)
-"hQ" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical)
-"hR" = (/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical)
-"hS" = (/obj/item/stack/medical/ointment,/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical)
-"hT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical)
-"hU" = (/obj/structure/closet/l3closet/general,/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical)
+"hM" = (/obj/machinery/door/window{dir = 8},/turf/simulated/floor/plasteel/airless,/area/derelict/medical/chapel)
+"hN" = (/turf/simulated/floor/plasteel/airless,/area/derelict/medical/chapel)
+"hO" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless,/area/derelict/medical/chapel)
+"hP" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 4; name = "Worn-out APC"; pixel_x = 24; pixel_y = 0},/turf/simulated/floor/plasteel/airless,/area/derelict/medical/chapel)
+"hQ" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"hR" = (/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"hS" = (/obj/item/stack/medical/ointment,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"hT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"hU" = (/obj/structure/closet/l3closet/general,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
"hV" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/space)
"hW" = (/obj/structure/window/fulltile,/turf/space,/area/space)
"hX" = (/obj/structure/window/fulltile{dir = 8},/turf/space,/area/space)
@@ -421,34 +421,34 @@
"ie" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "chapel"},/area/derelict/medical/chapel)
"if" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{dir = 4; icon_state = "chapel"},/area/derelict/medical/chapel)
"ig" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "chapel"},/area/derelict/medical/chapel)
-"ih" = (/obj/machinery/door/window,/turf/simulated/floor/airless,/area/derelict/medical/chapel)
-"ii" = (/obj/machinery/door/window/southleft,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical)
-"ij" = (/obj/machinery/door/window/southright,/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical)
-"ik" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/airless,/area/derelict/hallway/primary)
-"il" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/derelict/hallway/primary)
-"im" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/hallway/primary)
-"in" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/research{name = "Toxins Research"; req_access_txt = "7"},/turf/simulated/floor/airless,/area/derelict/hallway/primary)
+"ih" = (/obj/machinery/door/window,/turf/simulated/floor/plasteel/airless,/area/derelict/medical/chapel)
+"ii" = (/obj/machinery/door/window/southleft,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"ij" = (/obj/machinery/door/window/southright,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"ik" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"il" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"im" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/hallway/primary)
+"in" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/research{name = "Toxins Research"; req_access_txt = "7"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
"io" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area/space)
"ip" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating/airless,/area/space)
"iq" = (/obj/structure/window/fulltile{dir = 8},/obj/structure/window/fulltile,/turf/space,/area/space)
"ir" = (/obj/structure/lattice,/obj/structure/grille,/turf/space,/area/space)
"is" = (/obj/machinery/door/airlock/external{name = "Arrivals Docking Bay 1"},/turf/simulated/floor/plating,/area/derelict/arrival)
-"it" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless,/area/derelict/hallway/primary)
-"iu" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/airless,/area/space)
-"iv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/space)
-"iw" = (/obj/structure/window/fulltile{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/space)
+"it" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"iu" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel/airless,/area/space)
+"iv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless,/area/space)
+"iw" = (/obj/structure/window/fulltile{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless,/area/space)
"ix" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area/space)
-"iy" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/space)
+"iy" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless,/area/space)
"iz" = (/obj/structure/window/fulltile,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area/space)
-"iA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/research{name = "Toxins Research"; req_access_txt = "7"},/turf/simulated/floor/airless,/area/derelict/arrival)
+"iA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/research{name = "Toxins Research"; req_access_txt = "7"},/turf/simulated/floor/plasteel/airless,/area/derelict/arrival)
"iB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/derelict/arrival)
"iC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/derelict/arrival)
"iD" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/derelict/arrival)
"iE" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel{dir = 4; icon_state = "chapel"},/area/derelict/medical/chapel)
-"iF" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/airless,/area/derelict/hallway/primary)
-"iG" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/derelict/hallway/primary)
-"iH" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless,/area/derelict/hallway/primary)
-"iI" = (/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/turf/simulated/floor/airless,/area/derelict/hallway/primary)
+"iF" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"iG" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"iH" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"iI" = (/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
"iJ" = (/obj/structure/window/fulltile{dir = 1},/turf/space,/area/space)
"iK" = (/obj/structure/window/fulltile{dir = 5},/turf/simulated/floor/plating/airless,/area/space)
"iL" = (/obj/structure/grille,/obj/structure/window/fulltile{dir = 1},/turf/space,/area/space)
@@ -456,51 +456,51 @@
"iN" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/plasteel,/area/derelict/arrival)
"iO" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor/plasteel,/area/derelict/arrival)
"iP" = (/obj/structure/table,/obj/machinery/computer/pod/old{name = "ProComp IIe"; pixel_y = 7; id = "derelict_gun"},/turf/simulated/floor/plasteel{icon_state = "chapel"},/area/derelict/medical/chapel)
-"iQ" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/simulated/floor/airless,/area/derelict/hallway/primary)
-"iR" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/airless,/area/derelict/hallway/primary)
-"iS" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/airless,/area/derelict/hallway/primary)
-"iT" = (/obj/structure/girder,/turf/simulated/floor/airless,/area/derelict/hallway/primary)
+"iQ" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"iR" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"iS" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"iT" = (/obj/structure/girder,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
"iU" = (/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor/plasteel,/area/derelict/arrival)
-"iV" = (/obj/machinery/door/window,/turf/simulated/floor/airless,/area/derelict/hallway/primary)
-"iW" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/airless,/area/derelict/hallway/primary)
-"iX" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/derelict/hallway/primary)
-"iY" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/airless,/area/derelict/hallway/primary)
+"iV" = (/obj/machinery/door/window,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"iW" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"iX" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"iY" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
"iZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/derelict/hallway/primary)
"ja" = (/obj/machinery/door/airlock/security{name = "Gas Storage"; req_access = null; req_access_txt = "3"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
"jb" = (/obj/structure/lattice,/obj/structure/window/fulltile{dir = 4},/turf/space,/area/space)
"jc" = (/obj/structure/girder,/obj/structure/window/fulltile,/turf/simulated/floor/plating/airless,/area/derelict/arrival)
-"jd" = (/obj/structure/stool/bed,/turf/simulated/floor/airless,/area/derelict/hallway/primary)
+"jd" = (/obj/structure/stool/bed,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
"je" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
"jf" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
"jg" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
-"jh" = (/obj/machinery/door/airlock/security{name = "Security"; req_access = null; req_access_txt = "1"},/turf/simulated/floor/airless,/area/derelict/hallway/primary)
+"jh" = (/obj/machinery/door/airlock/security{name = "Security"; req_access = null; req_access_txt = "1"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
"ji" = (/obj/item/weapon/cigbutt,/turf/space,/area/space)
"jj" = (/obj/structure/window/fulltile{dir = 1},/turf/simulated/floor/plating,/area/derelict/arrival)
"jk" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel,/area/derelict/arrival)
-"jl" = (/obj/structure/table,/turf/simulated/floor/airless,/area/derelict/hallway/primary)
-"jm" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell,/turf/simulated/floor/airless,/area/derelict/hallway/primary)
-"jn" = (/obj/machinery/vending/sovietsoda,/turf/simulated/floor/airless,/area/derelict/hallway/primary)
-"jo" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/airless,/area/derelict/hallway/primary)
-"jp" = (/obj/structure/table,/turf/simulated/floor/airless,/area/space)
-"jq" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless,/area/space)
-"jr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/space)
+"jl" = (/obj/structure/table,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"jm" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"jn" = (/obj/machinery/vending/sovietsoda,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"jo" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"jp" = (/obj/structure/table,/turf/simulated/floor/plasteel/airless,/area/space)
+"jq" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless,/area/space)
+"jr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless,/area/space)
"js" = (/obj/structure/lattice,/obj/item/stack/cable_coil/cut,/turf/space,/area/space)
"jt" = (/obj/structure/girder,/turf/simulated/floor/plating,/area/derelict/arrival)
-"ju" = (/obj/structure/stool,/turf/simulated/floor/airless,/area/derelict/hallway/primary)
+"ju" = (/obj/structure/stool,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
"jv" = (/obj/machinery/door/airlock/maintenance{name = "Atmospherics Access"; req_access_txt = "24"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
-"jw" = (/obj/structure/closet/wardrobe/orange,/turf/simulated/floor/airless,/area/space)
+"jw" = (/obj/structure/closet/wardrobe/orange,/turf/simulated/floor/plasteel/airless,/area/space)
"jx" = (/obj/structure/window/fulltile{dir = 4},/turf/space,/area/space)
"jy" = (/obj/structure/grille,/turf/simulated/floor/plating,/area/derelict/arrival)
"jz" = (/obj/structure/closet/wardrobe,/turf/simulated/floor/plasteel,/area/derelict/arrival)
-"jA" = (/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/derelict/hallway/primary)
-"jB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced,/turf/simulated/floor/airless,/area/space)
-"jC" = (/obj/structure/window/reinforced,/turf/simulated/floor/airless,/area/space)
+"jA" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/derelict/hallway/primary)
+"jB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless,/area/space)
+"jC" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless,/area/space)
"jD" = (/obj/structure/grille,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/space)
-"jE" = (/obj/structure/stool/bed,/turf/simulated/floor/airless,/area/space)
+"jE" = (/obj/structure/stool/bed,/turf/simulated/floor/plasteel/airless,/area/space)
"jF" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel,/area/derelict/arrival)
-"jG" = (/turf/simulated/floor/airless{icon_state = "floorgrime"},/area/derelict/hallway/primary)
-"jH" = (/turf/simulated/floor/airless{icon_state = "damaged5"},/area/derelict/hallway/primary)
-"jI" = (/obj/structure/table,/obj/item/device/healthanalyzer,/turf/simulated/floor/airless,/area/derelict/hallway/primary)
+"jG" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorgrime"},/area/derelict/hallway/primary)
+"jH" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/hallway/primary)
+"jI" = (/obj/structure/table,/obj/item/device/healthanalyzer,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
"jJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/space)
"jK" = (/obj/structure/closet/wardrobe/mixed,/turf/simulated/floor/plasteel,/area/derelict/arrival)
"jL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/space)
@@ -518,77 +518,77 @@
"jX" = (/obj/structure/grille,/obj/item/weapon/shard,/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/space)
"jY" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating/airless,/area/space)
"jZ" = (/obj/structure/girder,/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
-"ka" = (/obj/item/stack/rods,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/derelict/hallway/secondary)
+"ka" = (/obj/item/stack/rods,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary)
"kb" = (/obj/item/weapon/shard{icon_state = "small"},/turf/space,/area/space)
-"kc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/wirecutters,/turf/simulated/floor/airless,/area/derelict/hallway/secondary)
+"kc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/wirecutters,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary)
"kd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
-"ke" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/derelict/hallway/secondary)
+"ke" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary)
"kf" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
-"kg" = (/turf/simulated/floor/airless,/area/derelict/hallway/secondary)
-"kh" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/airless,/area/derelict/hallway/secondary)
+"kg" = (/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary)
+"kh" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary)
"ki" = (/obj/machinery/door/airlock/maintenance{name = "Aux Storage"; req_access_txt = "23"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
-"kj" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/machinery/power/apc{dir = 8; name = "Worn-out APC"; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/airless,/area/derelict/hallway/secondary)
+"kj" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/machinery/power/apc{dir = 8; name = "Worn-out APC"; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary)
"kk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
"kl" = (/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
-"km" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless,/area/derelict/hallway/secondary)
-"kn" = (/turf/simulated/floor/airless{icon_state = "derelict9"},/area/derelict/hallway/secondary)
-"ko" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless{icon_state = "derelict10"},/area/derelict/hallway/secondary)
-"kp" = (/turf/simulated/floor/airless{icon_state = "derelict11"},/area/derelict/hallway/secondary)
-"kq" = (/turf/simulated/floor/airless{icon_state = "derelict12"},/area/derelict/hallway/secondary)
-"kr" = (/turf/simulated/floor/airless{icon_state = "derelict13"},/area/derelict/hallway/secondary)
-"ks" = (/turf/simulated/floor/airless{icon_state = "derelict14"},/area/derelict/hallway/secondary)
-"kt" = (/turf/simulated/floor/airless{icon_state = "derelict15"},/area/derelict/hallway/secondary)
-"ku" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless{icon_state = "derelict16"},/area/derelict/hallway/secondary)
-"kv" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/airless,/area/derelict/hallway/secondary)
-"kw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/derelict/hallway/secondary)
-"kx" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/airless,/area/derelict/hallway/secondary)
-"ky" = (/turf/simulated/floor/airless{icon_state = "derelict1"},/area/derelict/hallway/secondary)
-"kz" = (/turf/simulated/floor/airless{icon_state = "derelict2"},/area/derelict/hallway/secondary)
-"kA" = (/turf/simulated/floor/airless{icon_state = "derelict3"},/area/derelict/hallway/secondary)
-"kB" = (/turf/simulated/floor/airless{icon_state = "derelict4"},/area/derelict/hallway/secondary)
-"kC" = (/turf/simulated/floor/airless{icon_state = "derelict5"},/area/derelict/hallway/secondary)
-"kD" = (/turf/simulated/floor/airless{icon_state = "derelict6"},/area/derelict/hallway/secondary)
-"kE" = (/turf/simulated/floor/airless{icon_state = "derelict7"},/area/derelict/hallway/secondary)
-"kF" = (/turf/simulated/floor/airless{icon_state = "derelict8"},/area/derelict/hallway/secondary)
+"km" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary)
+"kn" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict9"},/area/derelict/hallway/secondary)
+"ko" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless{icon_state = "derelict10"},/area/derelict/hallway/secondary)
+"kp" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict11"},/area/derelict/hallway/secondary)
+"kq" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict12"},/area/derelict/hallway/secondary)
+"kr" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict13"},/area/derelict/hallway/secondary)
+"ks" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict14"},/area/derelict/hallway/secondary)
+"kt" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict15"},/area/derelict/hallway/secondary)
+"ku" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless{icon_state = "derelict16"},/area/derelict/hallway/secondary)
+"kv" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary)
+"kw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary)
+"kx" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary)
+"ky" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict1"},/area/derelict/hallway/secondary)
+"kz" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict2"},/area/derelict/hallway/secondary)
+"kA" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict3"},/area/derelict/hallway/secondary)
+"kB" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict4"},/area/derelict/hallway/secondary)
+"kC" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict5"},/area/derelict/hallway/secondary)
+"kD" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict6"},/area/derelict/hallway/secondary)
+"kE" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict7"},/area/derelict/hallway/secondary)
+"kF" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict8"},/area/derelict/hallway/secondary)
"kG" = (/obj/structure/lattice,/turf/space,/area/derelict/hallway/secondary)
"kH" = (/obj/structure/grille,/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
"kI" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
"kJ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
"kK" = (/turf/simulated/wall/r_wall,/area/derelict/bridge/ai_upload)
-"kL" = (/obj/machinery/door/airlock/command{name = "AI Upload"; req_access_txt = "16"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload)
+"kL" = (/obj/machinery/door/airlock/command{name = "AI Upload"; req_access_txt = "16"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload)
"kM" = (/obj/machinery/door/airlock/external{name = "Escape Airlock"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
"kN" = (/obj/machinery/door/firedoor,/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
"kO" = (/obj/structure/window/fulltile{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
"kP" = (/obj/structure/window/fulltile{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
-"kQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload)
-"kR" = (/obj/structure/closet/emcloset,/turf/simulated/floor/airless,/area/derelict/hallway/secondary)
+"kQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload)
+"kR" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary)
"kS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
"kT" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/wall/r_wall,/area/derelict/bridge/ai_upload)
"kU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/wall/r_wall,/area/derelict/bridge/ai_upload)
-"kV" = (/obj/machinery/door/airlock/command{name = "AI Upload"; req_access_txt = "16"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload)
+"kV" = (/obj/machinery/door/airlock/command{name = "AI Upload"; req_access_txt = "16"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload)
"kW" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/bridge/ai_upload)
"kX" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
-"kY" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload)
-"kZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload)
-"la" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/derelict/bridge/ai_upload)
-"lb" = (/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload)
-"lc" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload)
+"kY" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload)
+"kZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload)
+"la" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/bridge/ai_upload)
+"lb" = (/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload)
+"lc" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload)
"ld" = (/turf/simulated/floor/plating/airless,/area/derelict/bridge/ai_upload)
-"le" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload)
-"lf" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/machinery/power/solar_control{id = "derelictsolar"; name = "Primary Solar Control"; track = 0},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload)
+"le" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload)
+"lf" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/machinery/power/solar_control{id = "derelictsolar"; name = "Primary Solar Control"; track = 0},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload)
"lg" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 8; environ = 0; equipment = 0; lighting = 0; locked = 0; name = "Worn-out APC"; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/plating/airless,/area/derelict/bridge/ai_upload)
-"lh" = (/obj/item/weapon/paper{desc = ""; info = "The Syndicate have cunningly disguised a Syndicate Uplink as your PDA. Simply enter the code \"678 Bravo\" into the ringtone select to unlock its hidden features.
Objective #1. Kill the God damn AI in a fire blast that it rocks the station. Success!
Objective #2. Escape alive. Failed."; name = "Mission Objectives"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/bridge/ai_upload)
-"li" = (/obj/machinery/light/small{dir = 4},/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload)
+"lh" = (/obj/item/weapon/paper{desc = ""; info = "The Syndicate have cunningly disguised a Syndicate Uplink as your PDA. Simply enter the code \"678 Bravo\" into the ringtone select to unlock its hidden features.
Objective #1. Kill the God damn AI in a fire blast that it rocks the station. Success!
Objective #2. Escape alive. Failed."; name = "Mission Objectives"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/bridge/ai_upload)
+"li" = (/obj/machinery/light/small{dir = 4},/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload)
"lj" = (/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
-"lk" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/simulated/floor/airless,/area/space)
-"ll" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small,/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload)
-"lm" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload)
-"ln" = (/obj/item/clothing/suit/space/syndicate/black/red,/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload)
-"lo" = (/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload)
+"lk" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/simulated/floor/plasteel/airless,/area/space)
+"ll" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small,/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload)
+"lm" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload)
+"ln" = (/obj/item/clothing/suit/space/syndicate/black/red,/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload)
+"lo" = (/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload)
"lp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/derelict/bridge/ai_upload)
"lq" = (/obj/structure/cable,/turf/simulated/floor/plating/airless,/area/solar/derelict_aft)
"lr" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating/airless,/area/solar/derelict_aft)
-"ls" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/simulated/floor/airless,/area/solar/derelict_aft)
+"ls" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/simulated/floor/plasteel/airless,/area/solar/derelict_aft)
"lt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/solar/derelict_aft)
"lu" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/simulated/floor/plating/airless,/area/solar/derelict_aft)
"lv" = (/turf/simulated/floor/plating/airless,/area/solar/derelict_aft)
@@ -596,21 +596,21 @@
"lx" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/solar/derelict_aft)
"ly" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/solar/derelict_aft)
"lz" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/simulated/floor/plating/airless,/area/solar/derelict_aft)
-"lA" = (/obj/structure/cable,/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/simulated/floor/airless,/area/solar/derelict_aft)
+"lA" = (/obj/structure/cable,/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/simulated/floor/plasteel/airless,/area/solar/derelict_aft)
"lB" = (/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/solar/derelict_aft)
"lC" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/solar/derelict_aft)
"lD" = (/turf/simulated/wall/r_wall,/area/derelict/teleporter)
"lE" = (/turf/simulated/floor/plating/airless,/area/derelict/teleporter)
-"lF" = (/turf/simulated/floor/airless,/area/derelict/teleporter)
-"lG" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/teleporter)
-"lH" = (/obj/machinery/light_construct/small{dir = 1},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/teleporter)
-"lI" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/airless,/area/derelict/teleporter)
-"lJ" = (/obj/machinery/teleport/station,/turf/simulated/floor/airless,/area/derelict/teleporter)
-"lK" = (/obj/machinery/teleport/hub,/turf/simulated/floor/airless,/area/derelict/teleporter)
+"lF" = (/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter)
+"lG" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/teleporter)
+"lH" = (/obj/machinery/light_construct/small{dir = 1},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/teleporter)
+"lI" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter)
+"lJ" = (/obj/machinery/teleport/station,/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter)
+"lK" = (/obj/machinery/teleport/hub,/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter)
"lL" = (/obj/machinery/light_construct/small{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/teleporter)
-"lM" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell{charge = 100; maxcharge = 15000},/turf/simulated/floor/airless,/area/derelict/teleporter)
-"lN" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/derelict/teleporter)
-"lO" = (/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/airless,/area/derelict/teleporter)
+"lM" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell{charge = 100; maxcharge = 15000},/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter)
+"lN" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/teleporter)
+"lO" = (/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter)
"lP" = (/turf/simulated/mineral/random,/area/space)
"lQ" = (/turf/simulated/floor/plating/asteroid/airless,/area/space)
"lR" = (/turf/simulated/wall/mineral/clown,/area/space)
diff --git a/_maps/map_files/generic/z5.dmm b/_maps/map_files/generic/z5.dmm
index 6b9cce0b5cf..b613f4f8a90 100644
--- a/_maps/map_files/generic/z5.dmm
+++ b/_maps/map_files/generic/z5.dmm
@@ -2,87 +2,87 @@
"ab" = (/turf/simulated/mineral,/area/mine/unexplored)
"ac" = (/turf/space,/area/syndicate_station/mining)
"ad" = (/turf/simulated/mineral/random,/area/mine/unexplored)
-"ae" = (/turf/simulated/mineral/random/high_chance,/area/mine/unexplored)
-"af" = (/turf/simulated/mineral,/area/mine/explored)
-"ag" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
-"ah" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/airless,/area/mine/abandoned)
-"ai" = (/obj/structure/stool/bed/chair/comfy/black,/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/wood,/area/library)
+"ae" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/mineral/random,/area/mine/unexplored)
+"af" = (/turf/simulated/mineral/random/high_chance,/area/mine/unexplored)
+"ag" = (/turf/simulated/mineral,/area/mine/explored)
+"ah" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"ai" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
"aj" = (/turf/simulated/mineral/random/low_chance,/area/mine/explored)
"ak" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
-"al" = (/turf/simulated/floor/airless,/area/mine/abandoned)
+"al" = (/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
"am" = (/obj/structure/lattice,/turf/space,/area/space)
"an" = (/turf/simulated/floor/plating/asteroid/airless/cave,/area/mine/unexplored)
"ao" = (/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
-"ap" = (/obj/item/stack/rods,/obj/structure/door_assembly/door_assembly_ext{name = "Broken External Airlock"},/turf/simulated/floor/airless,/area/mine/abandoned)
+"ap" = (/obj/item/stack/rods,/obj/structure/door_assembly/door_assembly_ext{name = "Broken External Airlock"},/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
"aq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"ar" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"as" = (/turf/simulated/floor/plating/airless,/area/mine/abandoned)
-"at" = (/obj/item/stack/rods,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned)
-"au" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/airless,/area/mine/abandoned)
-"av" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned)
+"at" = (/obj/item/stack/rods,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/mine/abandoned)
+"au" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
+"av" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/mine/abandoned)
"aw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
-"ax" = (/obj/item/weapon/shard,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned)
+"ax" = (/obj/item/weapon/shard,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/mine/abandoned)
"ay" = (/turf/simulated/wall,/area/mine/abandoned)
"az" = (/turf/simulated/floor/plating/airless,/area/space)
"aA" = (/obj/item/stack/rods,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
-"aB" = (/obj/item/stack/rods,/turf/simulated/floor/airless,/area/mine/abandoned)
+"aB" = (/obj/item/stack/rods,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
"aC" = (/obj/structure/lattice,/obj/structure/lattice,/turf/space,/area/space)
"aD" = (/obj/structure/lattice,/obj/item/weapon/shard{icon_state = "medium"},/turf/space,/area/space)
"aE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
-"aF" = (/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/turf/simulated/floor/airless,/area/mine/abandoned)
-"aG" = (/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned)
+"aF" = (/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
+"aG" = (/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/mine/abandoned)
"aH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"aI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"aJ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
-"aK" = (/obj/structure/alien/weeds,/turf/simulated/floor/airless,/area/mine/abandoned)
-"aL" = (/obj/effect/decal/remains/xeno,/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
+"aK" = (/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
+"aL" = (/obj/effect/decal/remains/xeno,/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
"aM" = (/obj/item/stack/rods,/obj/structure/lattice,/turf/space,/area/space)
"aN" = (/obj/item/weapon/shard,/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"aO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
-"aP" = (/obj/structure/table,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned)
-"aQ" = (/obj/structure/table,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
-"aR" = (/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned)
+"aP" = (/obj/structure/table,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/mine/abandoned)
+"aQ" = (/obj/structure/table,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
+"aR" = (/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/mine/abandoned)
"aS" = (/obj/structure/alien/weeds,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"aT" = (/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"aU" = (/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
-"aV" = (/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
-"aW" = (/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned)
+"aV" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
+"aW" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/mine/abandoned)
"aX" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"aY" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"aZ" = (/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/obj/structure/alien/weeds,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"ba" = (/obj/item/weapon/shard,/obj/structure/lattice,/turf/space,/area/space)
-"bb" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned)
-"bc" = (/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned)
+"bb" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/mine/abandoned)
+"bc" = (/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/mine/abandoned)
"bd" = (/obj/effect/decal/remains/xeno,/obj/structure/alien/weeds,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"be" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"bf" = (/obj/item/weapon/shard,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"bg" = (/obj/structure/lattice,/obj/item/weapon/shard{icon_state = "small"},/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/turf/space,/area/mine/abandoned)
"bh" = (/obj/structure/lattice,/turf/space,/area/mine/abandoned)
-"bi" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/airless,/area/mine/abandoned)
+"bi" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
"bj" = (/turf/simulated/wall,/area/mine/north_outpost)
"bk" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/north_outpost)
"bl" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"bm" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
-"bn" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/mine/abandoned)
-"bo" = (/obj/effect/decal/remains/xeno,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned)
-"bp" = (/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
-"bq" = (/obj/effect/decal/remains/xeno,/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "damaged4"},/area/mine/abandoned)
-"br" = (/obj/structure/table,/turf/simulated/floor/airless,/area/mine/abandoned)
-"bs" = (/obj/structure/rack,/turf/simulated/floor/airless,/area/mine/abandoned)
+"bn" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/mine/abandoned)
+"bo" = (/obj/effect/decal/remains/xeno,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/mine/abandoned)
+"bp" = (/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
+"bq" = (/obj/effect/decal/remains/xeno,/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/mine/abandoned)
+"br" = (/obj/structure/table,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
+"bs" = (/obj/structure/rack,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
"bt" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/port_gen/pacman{anchored = 1},/turf/simulated/floor/plating,/area/mine/north_outpost)
"bu" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/mine/north_outpost)
"bv" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/mine/north_outpost)
"bw" = (/obj/machinery/atmospherics/unary/tank/air,/turf/simulated/floor/plating,/area/mine/north_outpost)
-"bx" = (/obj/effect/decal/remains/human,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned)
-"by" = (/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
-"bz" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned)
-"bA" = (/obj/structure/table,/obj/structure/alien/weeds,/turf/simulated/floor/airless,/area/mine/abandoned)
+"bx" = (/obj/effect/decal/remains/human,/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/mine/abandoned)
+"by" = (/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
+"bz" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/mine/abandoned)
+"bA" = (/obj/structure/table,/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
"bB" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/mine/north_outpost)
"bC" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/mine/north_outpost)
"bD" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/item/weapon/storage/box/lights/bulbs,/obj/machinery/atmospherics/pipe/simple{dir = 6},/turf/simulated/floor/plating,/area/mine/north_outpost)
"bE" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/obj/machinery/meter,/turf/simulated/floor/plating,/area/mine/north_outpost)
-"bF" = (/obj/item/weapon/shard,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned)
-"bG" = (/obj/item/weapon/shard{icon_state = "small"},/obj/structure/alien/weeds,/turf/simulated/floor/airless,/area/mine/abandoned)
+"bF" = (/obj/item/weapon/shard,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/mine/abandoned)
+"bG" = (/obj/item/weapon/shard{icon_state = "small"},/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
"bH" = (/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored)
"bI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "54"},/turf/simulated/floor/plating,/area/mine/north_outpost)
"bJ" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/north_outpost)
@@ -92,7 +92,7 @@
"bN" = (/obj/structure/table,/obj/item/weapon/paper/crumpled,/obj/item/seeds/cherryseed,/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez,/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/abandoned)
"bO" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"bP" = (/obj/structure/alien/resin/membrane,/obj/structure/alien/weeds,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
-"bQ" = (/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/obj/structure/alien/weeds,/turf/simulated/floor/airless,/area/mine/abandoned)
+"bQ" = (/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
"bR" = (/obj/structure/table,/obj/item/weapon/pickaxe,/turf/simulated/floor/plasteel,/area/mine/north_outpost)
"bS" = (/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
"bT" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/floor/plasteel,/area/mine/north_outpost)
@@ -108,606 +108,609 @@
"cd" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/abandoned)
"ce" = (/turf/simulated/floor/plasteel{icon_state = "damaged2"},/area/mine/abandoned)
"cf" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/abandoned)
-"cg" = (/obj/structure/alien/weeds,/obj/structure/alien/weeds,/turf/simulated/floor/airless,/area/mine/abandoned)
-"ch" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/airless,/area/mine/abandoned)
-"ci" = (/obj/effect/decal/remains/xeno,/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned)
+"cg" = (/obj/structure/alien/weeds,/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
+"ch" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
+"ci" = (/obj/effect/decal/remains/xeno,/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/mine/abandoned)
"cj" = (/obj/structure/table,/obj/item/weapon/shovel,/turf/simulated/floor/plasteel,/area/mine/north_outpost)
"ck" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor/plasteel,/area/mine/north_outpost)
-"cl" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/explored)
-"cm" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
-"cn" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
-"co" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "Mining North Outpost APC"; pixel_x = 26; pixel_y = 0},/obj/machinery/conveyor_switch{id = "mining_north"},/obj/machinery/camera{c_tag = "North Outpost"; dir = 8; network = list("MINE")},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/north_outpost)
-"cp" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/north_outpost)
-"cq" = (/obj/machinery/conveyor{backwards = 2; dir = 2; forwards = 1; id = "mining_north"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plasteel,/area/mine/north_outpost)
-"cr" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/mine/north_outpost)
-"cs" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/north_outpost)
-"ct" = (/turf/simulated/floor/plasteel{icon_state = "damaged3"},/area/mine/abandoned)
-"cu" = (/obj/structure/ore_box,/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored)
-"cv" = (/obj/structure/table,/obj/item/weapon/storage/backpack/satchel,/obj/item/clothing/glasses/meson,/obj/machinery/light/small{dir = 8},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
-"cw" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
-"cx" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
-"cy" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/door/airlock/glass_mining{name = "Break Room"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
-"cz" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
-"cA" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/north_outpost)
-"cB" = (/obj/machinery/door/window/northleft{dir = 8; name = "Pneumatic Tube Access"},/obj/machinery/disposal/deliveryChute{dir = 8; pixel_x = 8; pixel_y = 0},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/north_outpost)
-"cC" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/north_outpost)
-"cD" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/mine/explored)
-"cE" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/north_outpost)
-"cF" = (/obj/machinery/conveyor_switch{id = "mining_north"},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/north_outpost)
-"cG" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/north_outpost)
-"cH" = (/obj/effect/decal/remains/human,/obj/item/clothing/suit/xenos,/obj/item/clothing/head/xenos,/turf/simulated/floor/plasteel{icon_state = "damaged2"},/area/mine/abandoned)
-"cI" = (/obj/structure/table,/obj/item/stack/sheet/mineral/sandstone{amount = 30},/turf/simulated/floor/plasteel{icon_state = "damaged3"},/area/mine/abandoned)
-"cJ" = (/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "floorgrime"},/area/mine/abandoned)
-"cK" = (/obj/structure/alien/resin/wall,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
-"cL" = (/obj/effect/decal/remains/xeno,/turf/simulated/floor/airless,/area/mine/abandoned)
-"cM" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/plasteel,/area/mine/north_outpost)
-"cN" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
-"cO" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
-"cP" = (/obj/structure/rack,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/north_outpost)
-"cQ" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/mine/north_outpost)
-"cR" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/airless{icon_state = "floorgrime"},/area/mine/abandoned)
-"cS" = (/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "damaged4"},/area/mine/abandoned)
-"cT" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
-"cU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
-"cV" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/abandoned)
-"cW" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
-"cX" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plasteel,/area/mine/north_outpost)
-"cY" = (/obj/machinery/recharge_station,/turf/simulated/floor/plasteel,/area/mine/north_outpost)
-"cZ" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor/plasteel,/area/mine/north_outpost)
-"da" = (/obj/effect/decal/remains/human,/obj/structure/alien/weeds,/turf/simulated/floor/airless,/area/mine/abandoned)
-"db" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned)
-"dc" = (/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/abandoned)
-"dd" = (/obj/structure/rack,/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/abandoned)
-"de" = (/turf/simulated/floor/plating/asteroid/airless,/area/mine/unexplored)
-"df" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp)
-"dg" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp)
-"dh" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp/security)
-"di" = (/obj/machinery/door/airlock/external{name = "Mining North Outpost Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
-"dj" = (/turf/simulated/mineral/random/labormineral,/area/mine/unexplored)
-"dk" = (/obj/item/weapon/rack_parts,/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/abandoned)
-"dl" = (/obj/structure/girder/displaced,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/abandoned)
-"dm" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp/security)
-"dn" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp/security)
-"do" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/mine/explored)
-"dp" = (/obj/structure/lattice,/obj/structure/window/reinforced,/turf/space,/area/mine/explored)
-"dq" = (/obj/structure/lattice,/obj/structure/window/reinforced,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/space,/area/mine/north_outpost)
-"dr" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/north_outpost)
-"ds" = (/turf/simulated/floor/mech_bay_recharge_floor/airless,/area/mine/north_outpost)
-"dt" = (/obj/machinery/computer/mech_bay_power_console,/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/north_outpost)
-"du" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
-"dv" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel,/area/mine/north_outpost)
-"dw" = (/turf/simulated/wall/r_wall,/area/mine/laborcamp)
-"dx" = (/obj/structure/alien/resin/wall,/turf/simulated/floor/airless{icon_state = "floorgrime"},/area/mine/abandoned)
-"dy" = (/turf/simulated/floor/airless{icon_state = "floorgrime"},/area/mine/abandoned)
-"dz" = (/obj/structure/girder,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/abandoned)
-"dA" = (/obj/machinery/door/airlock/external{name = "Mining Bridge"; req_access_txt = "54"},/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/north_outpost)
-"dB" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/mine/explored)
-"dC" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/north_outpost)
-"dD" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/north_outpost)
-"dE" = (/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/north_outpost)
-"dF" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/north_outpost)
-"dG" = (/obj/structure/rack{dir = 1},/obj/item/clothing/glasses/meson,/obj/item/device/flashlight,/obj/item/weapon/storage/bag/ore,/obj/machinery/atmospherics/pipe/simple{dir = 9},/obj/item/weapon/shovel{attack_verb = list("ineffectively hit"); desc = "A large tool for digging and moving dirt. Was modified with extra safety, making it ineffective as a weapon."; force = 1; name = "safety shovel"; pixel_x = -5; throwforce = 1},/obj/item/weapon/pickaxe{attack_verb = list("ineffectively hit"); desc = "A pickaxe designed to be only effective at digging rock and ore, very ineffective as a weapon."; force = 1; name = "safety pickaxe"; pixel_x = 5; throwforce = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"dH" = (/obj/structure/rack{dir = 1},/obj/item/clothing/glasses/meson,/obj/item/device/flashlight,/obj/item/weapon/storage/bag/ore,/obj/machinery/atmospherics/pipe/simple{dir = 9},/obj/item/weapon/shovel{attack_verb = list("ineffectively hit"); desc = "A large tool for digging and moving dirt. Was modified with extra safety, making it ineffective as a weapon."; force = 1; name = "safety shovel"; pixel_x = -5; throwforce = 1},/obj/item/weapon/pickaxe{attack_verb = list("ineffectively hit"); desc = "A pickaxe designed to be only effective at digging rock and ore, very ineffective as a weapon."; force = 1; name = "safety pickaxe"; pixel_x = 5; throwforce = 1},/obj/machinery/camera{c_tag = "Labor Camp Storage"; dir = 8; network = list("Labor")},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"dI" = (/turf/simulated/mineral/random/labormineral,/area/mine/explored)
-"dJ" = (/obj/item/weapon/storage/toolbox/syndicate,/obj/structure/alien/weeds/node,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
-"dK" = (/obj/effect/decal/remains/xeno,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/head/helmet/space/syndicate/black/red,/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "damaged4"},/area/mine/abandoned)
-"dL" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/space,/area/mine/north_outpost)
-"dM" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/turf/space,/area/mine/explored)
-"dN" = (/obj/machinery/door/airlock/external{name = "Mining North Outpost Airlock"; req_access_txt = "54"},/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/north_outpost)
-"dO" = (/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/explored)
-"dP" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/o2{pixel_x = 2; pixel_y = 2},/turf/simulated/floor/plasteel{icon_state = "white"; temperature = 273.15},/area/mine/laborcamp)
-"dQ" = (/obj/structure/table,/obj/item/device/healthanalyzer,/obj/item/stack/medical/bruise_pack,/turf/simulated/floor/plasteel{icon_state = "white"; temperature = 273.15},/area/mine/laborcamp)
-"dR" = (/obj/structure/sign/bluecross_2{pixel_y = 32},/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{icon_state = "white"; temperature = 273.15},/area/mine/laborcamp)
-"dS" = (/obj/machinery/camera{c_tag = "Labor Camp Medical"; dir = 8; network = list("Labor")},/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/turf/simulated/floor/plasteel{icon_state = "white"; temperature = 273.15},/area/mine/laborcamp)
-"dT" = (/turf/simulated/wall,/area/mine/laborcamp)
-"dU" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"dV" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"dW" = (/turf/simulated/wall,/area/mine/explored)
-"dX" = (/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored)
-"dY" = (/obj/machinery/door/airlock/external{name = "External Airlock"; req_access_txt = "0"},/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/abandoned)
-"dZ" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/item/weapon/shard{icon_state = "small"},/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
-"ea" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 10},/area/mine/explored)
-"eb" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/explored)
-"ec" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 6},/area/mine/explored)
-"ed" = (/obj/machinery/light{dir = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/north_outpost)
-"ee" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/explored)
-"ef" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 5},/area/mine/explored)
-"eg" = (/turf/space,/area)
-"eh" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/mine/laborcamp)
-"ei" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/mine/laborcamp)
-"ej" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=1-Storage"; location = "Sleeper"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/mine/laborcamp)
-"ek" = (/obj/machinery/light/small{dir = 4},/obj/structure/stool/bed/roller,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/mine/laborcamp)
-"el" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/closet/crate/internals,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"em" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"en" = (/obj/machinery/bot/secbot/beepsky{desc = "Powered by tears and swet of laborer."; name = "Prison Ofitser"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=2-NMine"; location = "1-Storage"},/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/laborcamp)
-"eo" = (/obj/structure/plasticflaps/mining,/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/laborcamp)
-"ep" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=3-SMine"; location = "2-NMine"},/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/laborcamp)
-"eq" = (/turf/simulated/floor/plating{icon_plating = "asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/explored)
-"er" = (/obj/effect/decal/remains/human,/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored)
-"es" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/explored)
-"et" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp/security)
-"eu" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Infirmary"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "whitebluefull"},/area/mine/laborcamp)
-"ev" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/living_quarters)
-"ew" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/laborcamp)
-"ex" = (/obj/machinery/door/airlock{name = "Labor Camp Storage"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"ey" = (/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating{icon_plating = "asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/explored)
-"ez" = (/turf/simulated/wall/r_wall,/area/mine/explored)
-"eA" = (/obj/structure/girder/reinforced,/turf/simulated/floor/plating{icon_plating = "asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/explored)
-"eB" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/abandoned)
-"eC" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/abandoned)
-"eD" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
-"eE" = (/obj/structure/table,/obj/item/trash/plate,/obj/item/weapon/kitchen/utensil/fork,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"eF" = (/obj/effect/decal/cleanable/cobweb2,/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"eG" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"eH" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"eI" = (/obj/machinery/atmospherics/pipe/simple,/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = 0; pixel_y = 24; prison_radio = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"eJ" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"eK" = (/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/explored)
-"eL" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/item/stack/rods,/obj/item/weapon/shard,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/abandoned)
-"eM" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/abandoned)
-"eN" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"eO" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=7-Sleeper"; location = "6-Vending"},/mob/living/simple_animal/mouse,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"eP" = (/obj/machinery/door/airlock{name = "Vending"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"eQ" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 5},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"eR" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"eS" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"eT" = (/obj/machinery/door/poddoor/preopen{id = "Labor"; name = "labor camp blast door"},/obj/machinery/door/airlock{name = "Labor Camp External Access"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/laborcamp)
-"eU" = (/obj/structure/ore_box,/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored)
-"eV" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 10},/area/mine/unexplored)
-"eW" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/unexplored)
-"eX" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 6},/area/mine/unexplored)
-"eY" = (/turf/space,/area/shuttle/laborcamp/outpost)
-"eZ" = (/obj/machinery/vending/sustenance,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"fa" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"fb" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/wall,/area/mine/laborcamp)
-"fc" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"fd" = (/obj/machinery/flasher{id = "Labor"; pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold{dir = 4},/turf/simulated/wall,/area/mine/laborcamp)
-"fe" = (/obj/machinery/conveyor_switch/oneway{id = "gulag"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"ff" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning"; icon_state = "asteroidwarning"; temperature = 273.15},/area/mine/laborcamp)
-"fg" = (/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning"; icon_state = "asteroidwarning"; temperature = 273.15},/area/mine/explored)
-"fh" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/unexplored)
-"fi" = (/obj/machinery/light_switch{pixel_x = -27; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"fj" = (/obj/machinery/camera{c_tag = "Labor Camp Central"; network = list("Labor")},/obj/machinery/atmospherics/pipe/manifold{dir = 8},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"fk" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"fl" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/west_outpost)
-"fm" = (/obj/machinery/conveyor{dir = 2; id = "gulag"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"fn" = (/obj/machinery/conveyor{dir = 8; id = "gulag"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/laborcamp)
-"fo" = (/obj/machinery/conveyor{dir = 8; id = "gulag"},/turf/simulated/floor/plasteel{tag = "icon-asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/laborcamp)
-"fp" = (/obj/machinery/mineral/unloading_machine{dir = 1; input_dir = 4; output_dir = 8},/turf/simulated/floor/plasteel{tag = "icon-asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/laborcamp)
-"fq" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning (WEST)"; icon_state = "asteroidwarning"; dir = 8; temperature = 273.15},/area/mine/explored)
-"fr" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored)
-"fs" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
-"ft" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
-"fu" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Security Airlock"; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"fv" = (/obj/machinery/light/small{dir = 1},/obj/machinery/door_control{id = "Labor"; name = "Labor Camp Lockdown"; pixel_x = 0; pixel_y = 28; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"fw" = (/obj/machinery/door/poddoor/preopen{id = "Labor"; name = "labor camp blast door"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"fx" = (/turf/simulated/floor/plasteel,/area/mine/laborcamp)
-"fy" = (/obj/machinery/mineral/processing_unit_console{machinedir = 6},/turf/simulated/wall,/area/mine/laborcamp)
-"fz" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 2; id = "gulag"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"fA" = (/obj/machinery/camera{c_tag = "Labor Camp External"; dir = 4; network = list("Labor")},/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored)
-"fB" = (/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored)
-"fC" = (/obj/machinery/conveyor_switch/oneway{id = "gulag"},/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored)
-"fD" = (/obj/effect/decal/cleanable/blood/old,/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored)
-"fE" = (/obj/machinery/mineral/stacking_unit_console{machinedir = 2},/turf/simulated/wall,/area/mine/laborcamp)
-"fF" = (/obj/machinery/mineral/processing_unit{dir = 1; output_dir = 2},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"fG" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/laborcamp)
-"fH" = (/obj/machinery/computer/shuttle/labor/one_way,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"fI" = (/obj/machinery/conveyor{dir = 8; id = "gulag"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=6-Vending"; location = "5-Central"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"fJ" = (/obj/machinery/mineral/stacking_machine{dir = 1; input_dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"fK" = (/obj/machinery/conveyor{dir = 8; id = "gulag"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"fL" = (/obj/machinery/conveyor{dir = 10; icon_state = "conveyor0"; id = "gulag"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
-"fM" = (/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/explored)
-"fN" = (/obj/item/stack/sheet/metal{amount = 5},/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/explored)
-"fO" = (/turf/simulated/wall/r_wall,/area/mine/laborcamp/security)
-"fP" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp/security)
-"fQ" = (/obj/machinery/camera{c_tag = "Labor Camp Security Hallway"; dir = 8; network = list("Labor"); pixel_x = 0; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/laborcamp/security)
-"fR" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/laborcamp/security)
-"fS" = (/obj/structure/plasticflaps/mining,/turf/simulated/wall,/area/mine/laborcamp/security)
-"fT" = (/turf/simulated/wall,/area/mine/laborcamp/security)
-"fU" = (/obj/structure/girder,/turf/simulated/floor/plating{icon_plating = "asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/laborcamp/security)
-"fV" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Prisoner Airlock"; req_access_txt = "0"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
-"fW" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Prisoner Airlock"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp/security)
-"fX" = (/obj/machinery/atmospherics/pipe/simple{dir = 6},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp/security)
-"fY" = (/obj/machinery/atmospherics/pipe/manifold,/obj/machinery/door/airlock/glass_security{name = "Labor Camp Backroom"; req_access_txt = "2"},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
-"fZ" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/mine/laborcamp/security)
-"ga" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
-"gb" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/mine/laborcamp/security)
-"gc" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Labor Camp APC"; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple{dir = 10},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=5-Central"; location = "4-Maint"},/turf/simulated/floor/plating,/area/mine/laborcamp)
-"gd" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/mine/laborcamp/security)
-"ge" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp External Access"; req_access_txt = "2"},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
-"gf" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Monitoring"; req_access_txt = "2"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
-"gg" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/laborcamp/security)
-"gh" = (/obj/machinery/door/airlock/maintenance{name = "Labor Camp Maintenance"; req_access_txt = "2"},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
-"gi" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/explored)
-"gj" = (/obj/machinery/vending/coffee,/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
-"gk" = (/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
-"gl" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
-"gm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
-"gn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 4; name = "Labor Camp Security APC"; pixel_x = 24; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple,/obj/machinery/camera{c_tag = "Labor Camp Monitoring"; network = list("Labor")},/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
-"go" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/wall,/area/mine/laborcamp/security)
-"gp" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
-"gq" = (/obj/machinery/light/small{dir = 1},/obj/item/weapon/storage/box/lights/mixed,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
-"gr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/mine/laborcamp/security)
-"gs" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
-"gt" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
-"gu" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=4-Maint"; location = "3-SMine"},/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/laborcamp)
-"gv" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/explored)
-"gw" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/closet/crate,/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored)
-"gx" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
-"gy" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/mine/laborcamp/security)
-"gz" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
-"gA" = (/obj/structure/stool/bed/chair/office/dark,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
-"gB" = (/obj/machinery/door_control{id = "Labor"; name = "Labor Camp Lockdown"; pixel_x = 28; pixel_y = 7; req_access_txt = "2"},/obj/machinery/flasher_button{id = "Labor"; pixel_x = 26; pixel_y = -3},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
-"gC" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
-"gD" = (/turf/simulated/floor/plating,/area/mine/laborcamp/security)
-"gE" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/obj/machinery/meter,/turf/simulated/floor/plating,/area/mine/laborcamp/security)
-"gF" = (/obj/machinery/atmospherics/unary/tank/air{dir = 8},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
-"gG" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/west_outpost)
-"gH" = (/obj/structure/table,/obj/machinery/recharger,/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
-"gI" = (/obj/machinery/computer/secure_data,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
-"gJ" = (/obj/machinery/computer/security{name = "Labor Camp Monitoring"; network = list("Labor")},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
-"gK" = (/obj/machinery/computer/prisoner,/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
-"gL" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
-"gM" = (/obj/machinery/space_heater,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
-"gN" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
-"gO" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/mine/laborcamp/security)
-"gP" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 5},/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/mine/laborcamp/security)
-"gQ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/eva)
-"gR" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/production)
-"gS" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/west_outpost)
-"gT" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 9},/area/mine/explored)
-"gU" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
-"gV" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
-"gW" = (/turf/simulated/floor/plasteel{icon_plating = "asteroid"; icon_state = "asteroid"; name = "Asteroid"},/area/mine/explored)
-"gX" = (/obj/item/clothing/under/soviet,/obj/item/clothing/head/ushanka,/turf/simulated/floor/plasteel{icon_plating = "asteroid"; icon_state = "asteroid"; name = "Asteroid"},/area/mine/explored)
-"gY" = (/obj/effect/decal/remains/human,/turf/simulated/floor/plasteel{icon_plating = "asteroid"; icon_state = "asteroid"; name = "Asteroid"},/area/mine/explored)
-"gZ" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 8},/area/mine/explored)
-"ha" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 4},/area/mine/explored)
-"hb" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/living_quarters)
-"hc" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/eva)
-"hd" = (/obj/machinery/door/airlock/external{name = "Mining Bridge"; req_access_txt = "54"},/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/west_outpost)
-"he" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/mine/explored)
-"hf" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless,/area/mine/explored)
-"hg" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 1},/turf/space,/area/mine/west_outpost)
-"hh" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/mine/explored)
-"hi" = (/obj/structure/lattice,/obj/structure/window/reinforced,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/space,/area/mine/west_outpost)
-"hj" = (/obj/structure/lattice,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/mine/explored)
-"hk" = (/turf/simulated/wall/r_wall,/area/mine/maintenance)
-"hl" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/airless,/area/mine/explored)
-"hm" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/mine/explored)
-"hn" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless,/area/mine/explored)
-"ho" = (/turf/simulated/floor/bluegrid,/area/mine/maintenance)
-"hp" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Mining Communications APC"; pixel_x = 1; pixel_y = 25},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/mine/maintenance)
-"hq" = (/obj/machinery/telecomms/relay/preset/mining,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 1},/area/mine/maintenance)
-"hr" = (/obj/machinery/alarm{pixel_y = 24},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/mine/maintenance)
-"hs" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/west_outpost)
-"ht" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/space,/area/mine/explored)
-"hu" = (/obj/structure/lattice,/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/mine/explored)
-"hv" = (/obj/structure/lattice,/turf/space,/area/mine/explored)
-"hw" = (/turf/space,/area/mine/unexplored)
-"hx" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/bluegrid,/area/mine/maintenance)
-"hy" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple{dir = 6},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/mine/maintenance)
-"hz" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor/bluegrid,/area/mine/maintenance)
-"hA" = (/obj/machinery/camera{c_tag = "Communications Relay"; dir = 8; network = list("MINE")},/turf/simulated/floor/bluegrid,/area/mine/maintenance)
-"hB" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
-"hC" = (/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris,/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
-"hD" = (/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
-"hE" = (/turf/simulated/wall,/area/mine/living_quarters)
-"hF" = (/obj/machinery/door/airlock/maintenance{name = "Mining Station Communications"; req_access_txt = "48"},/obj/machinery/atmospherics/pipe/simple,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "vault"},/area/mine/maintenance)
-"hG" = (/obj/item/clothing/under/rank/miner,/obj/effect/decal/remains/human,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
-"hH" = (/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris,/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/explored)
-"hI" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/brown,/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters)
-"hJ" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm1"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters)
-"hK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"hL" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/obj/machinery/light,/turf/space,/area/mine/west_outpost)
-"hM" = (/obj/structure/table,/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters)
-"hN" = (/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters)
-"hO" = (/obj/machinery/door/airlock{id_tag = "miningdorm1"; name = "Room 1"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/mine/living_quarters)
-"hP" = (/obj/structure/disposalpipe/trunk,/obj/structure/disposaloutlet{dir = 1},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
-"hQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"hR" = (/obj/structure/disposalpipe/segment,/turf/simulated/mineral/random,/area/mine/unexplored)
-"hS" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm2"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters)
-"hT" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/living_quarters)
-"hU" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/west_outpost)
-"hV" = (/obj/machinery/door/airlock{id_tag = "miningdorm2"; name = "Room 2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/mine/living_quarters)
-"hW" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/production)
-"hX" = (/turf/space,/area/mine/explored)
-"hY" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/west_outpost)
-"hZ" = (/turf/simulated/floor/mech_bay_recharge_floor/airless,/area/mine/west_outpost)
-"ia" = (/obj/machinery/computer/mech_bay_power_console,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/west_outpost)
-"ib" = (/obj/structure/disposalpipe/segment,/obj/structure/sign/deathsposal,/turf/simulated/wall,/area/mine/living_quarters)
-"ic" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/production)
-"id" = (/turf/simulated/wall,/area/mine/west_outpost)
-"ie" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/production)
-"ih" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating/asteroid/airless,/area/mine/west_outpost)
-"ii" = (/obj/machinery/computer/arcade,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
-"ij" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
-"ik" = (/obj/machinery/vending/cigarette,/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
-"il" = (/obj/machinery/vending/snack,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
-"im" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm3"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters)
-"iq" = (/obj/structure/table,/obj/item/weapon/pickaxe,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
-"ir" = (/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
-"is" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
-"iu" = (/obj/machinery/recharge_station,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/west_outpost)
-"iv" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/west_outpost)
-"iw" = (/obj/structure/rack,/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/west_outpost)
-"ix" = (/obj/structure/rack,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/west_outpost)
-"iy" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/trunk,/obj/machinery/door/window/northleft{dir = 2; name = "Pneumatic Tube Access"},/obj/machinery/disposal/deliveryChute{pixel_y = 5},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/west_outpost)
-"iA" = (/turf/simulated/floor/plasteel,/area/mine/west_outpost)
-"iB" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/west_outpost)
-"iD" = (/obj/structure/table,/obj/machinery/microwave{pixel_y = 6},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
-"iE" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
-"iF" = (/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
-"iG" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
-"iH" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 31},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
-"iI" = (/obj/machinery/door/airlock{id_tag = "miningdorm3"; name = "Room 3"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/mine/living_quarters)
-"iJ" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"iK" = (/obj/machinery/recharge_station,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"iL" = (/obj/structure/closet/secure_closet/miner,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"iM" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/eva)
-"iN" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/eva)
-"iQ" = (/turf/simulated/wall,/area/mine/eva)
-"iR" = (/obj/structure/table,/obj/item/weapon/shovel,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
-"iS" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
-"iU" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/mine/west_outpost)
-"iV" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/mine/west_outpost)
-"iW" = (/obj/machinery/door/airlock/external{name = "Mining West Outpost Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
-"iX" = (/obj/machinery/door/airlock/external{name = "Mining West Outpost Airlock"; req_access_txt = "54"},/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/west_outpost)
-"iY" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 4},/area/mine/explored)
-"iZ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
-"ja" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
-"jb" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
-"jc" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
-"jd" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
-"je" = (/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"jf" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"jg" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/table,/obj/item/weapon/pickaxe,/turf/simulated/floor/plasteel,/area/mine/eva)
-"jh" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/suit_storage_unit/mining,/turf/simulated/floor/plasteel,/area/mine/eva)
-"ji" = (/obj/machinery/suit_storage_unit/mining,/turf/simulated/floor/plasteel,/area/mine/eva)
-"jj" = (/obj/machinery/light,/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored)
-"jk" = (/obj/structure/table,/obj/item/weapon/storage/backpack/satchel,/obj/item/clothing/glasses/meson,/obj/machinery/light/small{dir = 8},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
-"jl" = (/obj/machinery/door/airlock/glass_mining{name = "Break Room"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
-"jm" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
-"jn" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
-"jo" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/west_outpost)
-"jp" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
-"jq" = (/obj/machinery/camera{c_tag = "Crew Area"; dir = 1; network = list("MINE")},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
-"jr" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
-"js" = (/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"jt" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"ju" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"jv" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"jw" = (/obj/machinery/mineral/equipment_vendor,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"jx" = (/obj/machinery/camera{c_tag = "Storage Room"; dir = 1; network = list("MINE")},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"jy" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"jz" = (/turf/simulated/wall,/area/mine/production)
-"jA" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/mine/production)
-"jD" = (/obj/machinery/atmospherics/pipe/simple{dir = 6},/obj/machinery/camera{c_tag = "EVA"; dir = 4; network = list("MINE")},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/table,/obj/item/device/gps/mining,/obj/item/device/gps/mining,/obj/item/device/gps/mining,/obj/item/device/gps/mining,/turf/simulated/floor/plasteel,/area/mine/eva)
-"jE" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/eva)
-"jF" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/eva)
-"jG" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor/plasteel,/area/mine/eva)
-"jH" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
-"jI" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
-"jK" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
-"jL" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
-"jM" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
-"jN" = (/obj/machinery/conveyor_switch{id = "mining_west"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
-"jQ" = (/obj/machinery/door/airlock/glass{name = "Crew Area"; req_access_txt = "48"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"jR" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/door/airlock/mining{name = "Mining Station Storage"; req_access_txt = "48"},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"jV" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/northleft{dir = 2; name = "Pneumatic Tube Access"},/obj/machinery/disposal/deliveryChute{pixel_y = 5},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production)
-"jW" = (/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production)
-"jX" = (/obj/machinery/atmospherics/pipe/simple{dir = 6},/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production)
-"jZ" = (/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/turf/simulated/floor/plasteel,/area/mine/eva)
-"ka" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/eva)
-"kb" = (/turf/simulated/floor/plasteel,/area/mine/eva)
-"kc" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor/plasteel,/area/mine/eva)
-"ke" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/eva)
-"kf" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/eva)
-"kh" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
-"ki" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
-"kj" = (/obj/machinery/power/apc{dir = 2; name = "Mining West Outpost APC"; pixel_x = 1; pixel_y = -23},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
-"kk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/camera{c_tag = "West Outpost"; dir = 1; network = list("MINE")},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
-"kl" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
-"km" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
-"kn" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "loadingarea"},/area/mine/west_outpost)
-"ko" = (/obj/machinery/mineral/unloading_machine{dir = 2; output_dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/west_outpost)
-"kp" = (/obj/machinery/conveyor{dir = 4; id = "mining_west"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/west_outpost)
-"kq" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal/deliveryChute{dir = 8},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/west_outpost)
-"ks" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/mine/living_quarters)
-"kt" = (/obj/structure/sink{pixel_y = 30},/obj/machinery/light/small,/obj/structure/mirror{pixel_y = -32},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/mine/living_quarters)
-"ku" = (/obj/machinery/door/airlock{name = "Toilet"},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/mine/living_quarters)
-"kv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"kw" = (/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"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"kx" = (/obj/machinery/camera{c_tag = "Crew Area Hallway"; network = list("MINE")},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"ky" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/mine/living_quarters)
-"kA" = (/obj/structure/window/reinforced,/obj/structure/lattice,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/space,/area/mine/living_quarters)
-"kB" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/mine/living_quarters)
-"kC" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/mine/production)
-"kF" = (/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/mine/production)
-"kG" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/mine/production)
-"kH" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/mine/production)
-"kI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/mine/production)
-"kJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/glass_mining{name = "Mining Station EVA"; req_access_txt = "54"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/eva)
-"kK" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/mine/eva)
-"kL" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/eva)
-"kM" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/eva)
-"kN" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/eva)
-"kO" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "54"},/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/eva)
-"kP" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/west_outpost)
-"kQ" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/west_outpost)
-"kR" = (/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "54"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/mine/west_outpost)
-"kS" = (/obj/machinery/conveyor{backwards = 2; dir = 2; forwards = 1; id = "mining_west"},/obj/structure/plasticflaps/mining,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
-"kT" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/mine/west_outpost)
-"kU" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"kV" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"kW" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"kX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"kY" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/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,/area/mine/living_quarters)
-"kZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"la" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"lb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/living_quarters)
-"lc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/glass_mining{name = "Mining Station Bridge"; req_access_txt = "48"},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"ld" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"le" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/production)
-"lf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/glass_mining{name = "Mining Station Bridge"; req_access_txt = "48"},/turf/simulated/floor/plasteel,/area/mine/production)
-"lg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/mine/production)
-"lh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor/plasteel,/area/mine/production)
-"li" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/production)
-"lj" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
-"lk" = (/obj/machinery/power/apc{dir = 2; name = "Mining EVA APC"; pixel_x = 1; pixel_y = -23},/obj/structure/cable,/obj/structure/table,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/weapon/hand_labeler,/turf/simulated/floor/plasteel,/area/mine/eva)
-"ll" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/mine/eva)
-"lm" = (/turf/simulated/floor/mech_bay_recharge_floor,/area/mine/eva)
-"ln" = (/obj/machinery/computer/mech_bay_power_console,/turf/simulated/floor/plasteel,/area/mine/eva)
-"lo" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel,/area/mine/eva)
-"lp" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/eva)
-"lq" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/meter,/turf/simulated/floor/plating,/area/mine/west_outpost)
-"lr" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/mine/west_outpost)
-"ls" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/mine/west_outpost)
-"lt" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/item/weapon/storage/box/lights/bulbs,/turf/simulated/floor/plating,/area/mine/west_outpost)
-"lu" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/west_outpost)
-"lv" = (/obj/machinery/conveyor_switch{id = "mining_west"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/west_outpost)
-"lw" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"lx" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"ly" = (/obj/machinery/atmospherics/pipe/manifold,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"lz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"lA" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"lB" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/light,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"lC" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/mine/living_quarters)
-"lG" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/space,/area/mine/living_quarters)
-"lH" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/space,/area/mine/production)
-"lI" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/light{dir = 4},/turf/space,/area/mine/production)
-"lM" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/mine/production)
-"lN" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 1},/area/mine/production)
-"lO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/production)
-"lP" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
-"lQ" = (/obj/machinery/camera{c_tag = "Production Line External"; dir = 4; network = list("MINE")},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/production)
-"lR" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/production)
-"lS" = (/obj/machinery/conveyor_switch{id = "mining_external"},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/production)
-"lT" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/production)
-"lU" = (/obj/machinery/atmospherics/unary/tank/air{dir = 1; initialize_directions = 0; level = 1},/turf/simulated/floor/plating,/area/mine/west_outpost)
-"lV" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/mine/west_outpost)
-"lW" = (/obj/machinery/power/terminal{dir = 4},/obj/machinery/light/small,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/west_outpost)
-"lX" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/simulated/floor/plating,/area/mine/west_outpost)
-"lZ" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Infirmary"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "whitebluefull"},/area/mine/living_quarters)
-"ma" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/living_quarters)
-"mb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "48"},/turf/simulated/floor/plating,/area/mine/living_quarters)
-"mc" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/living_quarters)
-"md" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"mg" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/mine/production)
-"mh" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/production)
-"mi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
-"mj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock{name = "Closet"; req_access_txt = "0"},/turf/simulated/floor/plating,/area/mine/production)
-"mk" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/mine/production)
-"ml" = (/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j1"; tag = "icon-pipe-j1 (EAST)"},/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/mine/production)
-"mm" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/mine/production)
-"mn" = (/obj/machinery/disposal/deliveryChute{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/mine/production)
-"mo" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/turf/simulated/floor/plating,/area/mine/production)
-"mp" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/mine/production)
-"mq" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/production)
-"mr" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/production)
-"ms" = (/obj/machinery/light/small{dir = 8},/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/mine/living_quarters)
-"mt" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/mine/living_quarters)
-"mu" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/mine/living_quarters)
-"mv" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "whiteblue"},/area/mine/living_quarters)
-"mw" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/mine/living_quarters)
-"mx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/light/small{dir = 1},/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/mine/living_quarters)
-"my" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/mine/living_quarters)
-"mz" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plating,/area/mine/living_quarters)
-"mA" = (/turf/simulated/floor/plating,/area/mine/living_quarters)
-"mB" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/living_quarters)
-"mC" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/living_quarters)
-"mD" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
-"mE" = (/obj/structure/sign/xeno_warning_mining,/turf/simulated/wall,/area/mine/living_quarters)
-"mF" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/mine/production)
-"mG" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/production)
-"mH" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
-"mI" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/production)
-"mJ" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "warnwhite"; dir = 1},/area/mine/living_quarters)
-"mK" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"},/area/mine/living_quarters)
-"mL" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/camera{c_tag = "Sleeper Room"; dir = 1; network = list("MINE")},/turf/simulated/floor/plasteel{icon_state = "white"; temperature = 273.15},/area/mine/living_quarters)
-"mM" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/o2{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/firstaid/regular,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/mine/living_quarters)
-"mN" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/mine/living_quarters)
-"mO" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/obj/machinery/meter,/turf/simulated/floor/plating,/area/mine/living_quarters)
-"mP" = (/obj/machinery/atmospherics/unary/tank/air{dir = 8},/turf/simulated/floor/plating,/area/mine/living_quarters)
-"mQ" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/living_quarters)
-"mR" = (/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/living_quarters)
-"mS" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/living_quarters)
-"mT" = (/turf/space,/area/shuttle/mining/outpost)
-"mU" = (/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"; d2 = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/mine/production)
-"mV" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel,/area/mine/production)
-"mW" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
-"mX" = (/obj/machinery/mineral/equipment_vendor,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
-"mY" = (/obj/machinery/mineral/mint{input_dir = 4},/turf/simulated/floor/plasteel,/area/mine/production)
-"mZ" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "loadingarea"},/area/mine/production)
-"na" = (/obj/structure/closet/crate,/obj/machinery/alarm{pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production)
-"nb" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/structure/table,/obj/item/weapon/paper{anchored = 0; info = "A hastily written note has been scribbled here...
Please use the ore redemption machine in the science wing for smelting. PLEASE!
--The Research Staff"; name = "URGENT!"},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production)
-"nd" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/mine/production)
-"ne" = (/obj/structure/cable,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/power/port_gen/pacman{anchored = 1},/turf/simulated/floor/plating,/area/mine/living_quarters)
-"nf" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/living_quarters)
-"ng" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/mine/living_quarters)
-"nh" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 5},/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/mine/living_quarters)
-"ni" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "54"},/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/living_quarters)
-"nj" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/production)
-"nl" = (/turf/simulated/floor/plasteel{icon_state = "loadingarea"},/area/mine/production)
-"nm" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/mine/production)
-"nn" = (/obj/machinery/door/airlock/glass_mining{name = "Conveyor Access"; req_access_txt = "48"},/obj/structure/barricade/wooden,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
-"no" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/mine/production)
-"np" = (/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/explored)
-"nq" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plating/asteroid/airless,/area/mine/living_quarters)
-"nt" = (/obj/item/device/radio/beacon,/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/mine/production)
-"nu" = (/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 4},/area/mine/production)
-"nv" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/computer/shuttle/mining{req_access = "0"},/obj/machinery/light{dir = 4},/obj/machinery/camera{c_tag = "Shuttle Docking Foyer"; dir = 8; network = list("MINE")},/obj/machinery/newscaster{pixel_x = 30; pixel_y = 1},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
-"nw" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production)
-"nx" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor/plasteel,/area/mine/production)
-"ny" = (/obj/machinery/camera{c_tag = "Processing Area Room"; dir = 8; network = list("MINE")},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = 28},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
-"nz" = (/obj/machinery/mineral/unloading_machine{dir = 1; icon_state = "unloader-corner"; input_dir = 4; output_dir = 8},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/mine/production)
-"nA" = (/obj/machinery/door/airlock/external{name = "Mining Shuttle Airlock"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
-"nB" = (/turf/simulated/floor/plasteel,/area/mine/production)
-"nC" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/mine/production)
-"nD" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 8},/area/mine/production)
-"nE" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/production)
-"nF" = (/obj/machinery/conveyor_switch/oneway{id = "mining_internal"; name = "mining conveyor"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
-"nG" = (/obj/effect/decal/remains/human{desc = "Seems to be all that remains of a poor miner that didn't heed the warning signs."},/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored)
-"nI" = (/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/mine/production)
-"nJ" = (/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 1},/area/mine/production)
-"nK" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/mine/production)
-"nL" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/obj/structure/disposalpipe/junction{dir = 4; icon_state = "pipe-j2"; tag = "icon-pipe-j1 (WEST)"},/turf/simulated/floor/plasteel,/area/mine/production)
-"nM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
-"nN" = (/obj/machinery/door/airlock/glass_mining{name = "Processing Area"; req_access_txt = "48"},/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
-"nO" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/mine/production)
-"nP" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 4},/area/mine/production)
-"nQ" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/turf/simulated/floor/plasteel,/area/mine/production)
-"nR" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
-"nS" = (/obj/machinery/mineral/processing_unit_console,/turf/simulated/wall/r_wall,/area/mine/production)
-"nT" = (/obj/machinery/mineral/processing_unit{dir = 1; output_dir = 2},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/mine/production)
-"nU" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/mine/production)
-"nV" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
-"nW" = (/obj/machinery/door/airlock/glass_mining{name = "Processing Area"; req_access_txt = "48"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
-"nX" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/mine/production)
-"nY" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/mine/production)
-"nZ" = (/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/mine/production)
-"ob" = (/obj/structure/lattice,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/space,/area/space)
-"oc" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/mine/production)
-"od" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/mine/production)
-"oe" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/window/northleft{name = "Output Access"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
-"of" = (/obj/machinery/door/window/northleft{base_state = "right"; icon_state = "right"; name = "Output Access"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
-"og" = (/obj/machinery/mineral/stacking_unit_console,/turf/simulated/wall/r_wall,/area/mine/production)
-"oj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/mine/explored)
-"ok" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/mine/explored)
-"ol" = (/obj/structure/lattice,/obj/structure/disposalpipe/segment{dir = 4},/turf/space,/area/space)
-"om" = (/obj/structure/lattice,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/space,/area/space)
-"on" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/trunk,/obj/machinery/door/window/northleft{name = "Pneumatic Tube Access"},/obj/machinery/disposal/deliveryChute{dir = 1; pixel_y = -1},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production)
-"oo" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/machinery/light,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production)
-"op" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
-"oq" = (/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
-"or" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/obj/structure/plasticflaps,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/mine/production)
-"os" = (/obj/machinery/mineral/stacking_machine{dir = 1; input_dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/mine/production)
-"ot" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/mine/production)
-"ou" = (/obj/machinery/conveyor{icon_state = "conveyor0"; dir = 10; id = "mining_internal"},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating{tag = "icon-warnplatecorner (EAST)"; icon_state = "warnplatecorner"; dir = 4},/area/mine/production)
-"ov" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/mine/explored)
-"ow" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/production)
-"ox" = (/obj/structure/disposaloutlet{dir = 1; eject_range = 1},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/mine/production)
-
+"cl" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"cm" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"cn" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "Mining North Outpost APC"; pixel_x = 26; pixel_y = 0},/obj/machinery/conveyor_switch{id = "mining_north"},/obj/machinery/camera{c_tag = "North Outpost"; dir = 8; network = list("MINE")},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/north_outpost)
+"co" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/north_outpost)
+"cp" = (/obj/machinery/conveyor{backwards = 2; dir = 2; forwards = 1; id = "mining_north"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"cq" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/mine/north_outpost)
+"cr" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/north_outpost)
+"cs" = (/turf/simulated/floor/plasteel{icon_state = "damaged3"},/area/mine/abandoned)
+"ct" = (/obj/structure/ore_box,/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored)
+"cu" = (/obj/structure/table,/obj/item/weapon/storage/backpack/satchel,/obj/item/clothing/glasses/meson,/obj/machinery/light/small{dir = 8},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"cv" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"cw" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"cx" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/door/airlock/glass_mining{name = "Break Room"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"cy" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"cz" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/north_outpost)
+"cA" = (/obj/machinery/door/window/northleft{dir = 8; name = "Pneumatic Tube Access"},/obj/machinery/disposal/deliveryChute{dir = 8; pixel_x = 8; pixel_y = 0},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/north_outpost)
+"cB" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/north_outpost)
+"cC" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/mine/explored)
+"cD" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/north_outpost)
+"cE" = (/obj/machinery/conveyor_switch{id = "mining_north"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/north_outpost)
+"cF" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/north_outpost)
+"cG" = (/obj/effect/decal/remains/human,/obj/item/clothing/suit/xenos,/obj/item/clothing/head/xenos,/turf/simulated/floor/plasteel{icon_state = "damaged2"},/area/mine/abandoned)
+"cH" = (/obj/structure/table,/obj/item/stack/sheet/mineral/sandstone{amount = 30},/turf/simulated/floor/plasteel{icon_state = "damaged3"},/area/mine/abandoned)
+"cI" = (/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "floorgrime"},/area/mine/abandoned)
+"cJ" = (/obj/structure/alien/resin/wall,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"cK" = (/obj/effect/decal/remains/xeno,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
+"cL" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"cM" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"cN" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"cO" = (/obj/structure/rack,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/north_outpost)
+"cP" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/mine/north_outpost)
+"cQ" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/plasteel/airless{icon_state = "floorgrime"},/area/mine/abandoned)
+"cR" = (/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/mine/abandoned)
+"cS" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"cT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"cU" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/abandoned)
+"cV" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"cW" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"cX" = (/obj/machinery/recharge_station,/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"cY" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"cZ" = (/obj/effect/decal/remains/human,/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
+"da" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/mine/abandoned)
+"db" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/abandoned)
+"dc" = (/obj/structure/rack,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/abandoned)
+"dd" = (/turf/simulated/floor/plating/asteroid/airless,/area/mine/unexplored)
+"de" = (/obj/machinery/door/airlock/external{name = "Mining North Outpost Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"df" = (/turf/simulated/mineral/random/labormineral,/area/mine/unexplored)
+"dg" = (/obj/item/weapon/rack_parts,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/abandoned)
+"dh" = (/obj/structure/girder/displaced,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/abandoned)
+"di" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/explored)
+"dj" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/mine/explored)
+"dk" = (/obj/structure/lattice,/obj/structure/window/reinforced,/turf/space,/area/mine/explored)
+"dl" = (/obj/structure/lattice,/obj/structure/window/reinforced,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/space,/area/mine/north_outpost)
+"dm" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/north_outpost)
+"dn" = (/turf/simulated/floor/mech_bay_recharge_floor/airless,/area/mine/north_outpost)
+"do" = (/obj/machinery/computer/mech_bay_power_console,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/north_outpost)
+"dp" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"dq" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"dr" = (/turf/simulated/wall/r_wall,/area/mine/laborcamp)
+"ds" = (/obj/structure/alien/resin/wall,/turf/simulated/floor/plasteel/airless{icon_state = "floorgrime"},/area/mine/abandoned)
+"dt" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorgrime"},/area/mine/abandoned)
+"du" = (/obj/structure/girder,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/abandoned)
+"dv" = (/obj/machinery/door/airlock/external{name = "Mining Bridge"; req_access_txt = "54"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/north_outpost)
+"dw" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel/airless,/area/mine/explored)
+"dx" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/north_outpost)
+"dy" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/north_outpost)
+"dz" = (/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/north_outpost)
+"dA" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/north_outpost)
+"dB" = (/obj/structure/rack{dir = 1},/obj/item/clothing/glasses/meson,/obj/item/device/flashlight,/obj/item/weapon/storage/bag/ore,/obj/machinery/atmospherics/pipe/simple{dir = 9},/obj/item/weapon/shovel{attack_verb = list("ineffectively hit"); desc = "A large tool for digging and moving dirt. Was modified with extra safety, making it ineffective as a weapon."; force = 1; name = "safety shovel"; pixel_x = -5; throwforce = 1},/obj/item/weapon/pickaxe{attack_verb = list("ineffectively hit"); desc = "A pickaxe designed to be only effective at digging rock and ore, very ineffective as a weapon."; force = 1; name = "safety pickaxe"; pixel_x = 5; throwforce = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"dC" = (/obj/structure/rack{dir = 1},/obj/item/clothing/glasses/meson,/obj/item/device/flashlight,/obj/item/weapon/storage/bag/ore,/obj/machinery/atmospherics/pipe/simple{dir = 9},/obj/item/weapon/shovel{attack_verb = list("ineffectively hit"); desc = "A large tool for digging and moving dirt. Was modified with extra safety, making it ineffective as a weapon."; force = 1; name = "safety shovel"; pixel_x = -5; throwforce = 1},/obj/item/weapon/pickaxe{attack_verb = list("ineffectively hit"); desc = "A pickaxe designed to be only effective at digging rock and ore, very ineffective as a weapon."; force = 1; name = "safety pickaxe"; pixel_x = 5; throwforce = 1},/obj/machinery/camera{c_tag = "Labor Camp Storage"; dir = 8; network = list("Labor")},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"dD" = (/turf/simulated/mineral/random/labormineral,/area/mine/explored)
+"dE" = (/obj/item/weapon/storage/toolbox/syndicate,/obj/structure/alien/weeds/node,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
+"dF" = (/obj/effect/decal/remains/xeno,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/head/helmet/space/syndicate/black/red,/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/mine/abandoned)
+"dG" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/space,/area/mine/north_outpost)
+"dH" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/turf/space,/area/mine/explored)
+"dI" = (/obj/machinery/door/airlock/external{name = "Mining North Outpost Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/north_outpost)
+"dJ" = (/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/explored)
+"dK" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/o2{pixel_x = 2; pixel_y = 2},/turf/simulated/floor/plasteel{icon_state = "white"; temperature = 273.15},/area/mine/laborcamp)
+"dL" = (/obj/structure/table,/obj/item/device/healthanalyzer,/obj/item/stack/medical/bruise_pack,/turf/simulated/floor/plasteel{icon_state = "white"; temperature = 273.15},/area/mine/laborcamp)
+"dM" = (/obj/structure/sign/bluecross_2{pixel_y = 32},/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{icon_state = "white"; temperature = 273.15},/area/mine/laborcamp)
+"dN" = (/obj/machinery/camera{c_tag = "Labor Camp Medical"; dir = 8; network = list("Labor")},/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/turf/simulated/floor/plasteel{icon_state = "white"; temperature = 273.15},/area/mine/laborcamp)
+"dO" = (/turf/simulated/wall,/area/mine/laborcamp)
+"dP" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"dQ" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"dR" = (/turf/simulated/wall,/area/mine/explored)
+"dS" = (/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored)
+"dT" = (/obj/machinery/door/airlock/external{name = "External Airlock"; req_access_txt = "0"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/abandoned)
+"dU" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/item/weapon/shard{icon_state = "small"},/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"dV" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 10},/area/mine/explored)
+"dW" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/explored)
+"dX" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 6},/area/mine/explored)
+"dY" = (/obj/machinery/light{dir = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/north_outpost)
+"dZ" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/explored)
+"ea" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 5},/area/mine/explored)
+"eb" = (/turf/space,/area)
+"ec" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/mine/laborcamp)
+"ed" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/mine/laborcamp)
+"ee" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=1-Storage"; location = "Sleeper"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/mine/laborcamp)
+"ef" = (/obj/machinery/light/small{dir = 4},/obj/structure/stool/bed/roller,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/mine/laborcamp)
+"eg" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/closet/crate/internals,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eh" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"ei" = (/obj/machinery/bot/secbot/beepsky{desc = "Powered by tears and swet of laborer."; name = "Prison Ofitser"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=2-NMine"; location = "1-Storage"},/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/laborcamp)
+"ej" = (/obj/structure/plasticflaps/mining,/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/laborcamp)
+"ek" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=3-SMine"; location = "2-NMine"},/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/laborcamp)
+"el" = (/turf/simulated/floor/plating{icon_plating = "asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/explored)
+"em" = (/obj/effect/decal/remains/human,/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored)
+"en" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/explored)
+"eo" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp)
+"ep" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Infirmary"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "whitebluefull"},/area/mine/laborcamp)
+"eq" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp)
+"er" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/laborcamp)
+"es" = (/obj/machinery/door/airlock{name = "Labor Camp Storage"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"et" = (/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating{icon_plating = "asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/explored)
+"eu" = (/turf/simulated/wall/r_wall,/area/mine/explored)
+"ev" = (/obj/structure/girder/reinforced,/turf/simulated/floor/plating{icon_plating = "asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/explored)
+"ew" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/abandoned)
+"ex" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/abandoned)
+"ey" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
+"ez" = (/obj/structure/table,/obj/item/trash/plate,/obj/item/weapon/kitchen/utensil/fork,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eA" = (/obj/effect/decal/cleanable/cobweb2,/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eB" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eC" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eD" = (/obj/machinery/atmospherics/pipe/simple,/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = 0; pixel_y = 24; prison_radio = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eE" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eF" = (/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/explored)
+"eG" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/mineral/random/labormineral,/area/mine/unexplored)
+"eH" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/item/stack/rods,/obj/item/weapon/shard,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/abandoned)
+"eI" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/abandoned)
+"eJ" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eK" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=7-Sleeper"; location = "6-Vending"},/mob/living/simple_animal/mouse,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eL" = (/obj/machinery/door/airlock{name = "Vending"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eM" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 5},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eN" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eO" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eP" = (/obj/machinery/door/poddoor/preopen{id = "Labor"; name = "labor camp blast door"},/obj/machinery/door/airlock{name = "Labor Camp External Access"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/laborcamp)
+"eQ" = (/obj/structure/ore_box,/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored)
+"eR" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 10},/area/mine/unexplored)
+"eS" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/unexplored)
+"eT" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 6},/area/mine/unexplored)
+"eU" = (/turf/space,/area/shuttle/laborcamp/outpost)
+"eV" = (/obj/machinery/vending/sustenance,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eW" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eX" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/wall,/area/mine/laborcamp)
+"eY" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eZ" = (/obj/machinery/flasher{id = "Labor"; pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold{dir = 4},/turf/simulated/wall,/area/mine/laborcamp)
+"fa" = (/obj/machinery/conveyor_switch/oneway{id = "gulag"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fb" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning"; icon_state = "asteroidwarning"; temperature = 273.15},/area/mine/laborcamp)
+"fc" = (/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning"; icon_state = "asteroidwarning"; temperature = 273.15},/area/mine/explored)
+"fd" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/unexplored)
+"fe" = (/obj/machinery/light_switch{pixel_x = -27; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"ff" = (/obj/machinery/camera{c_tag = "Labor Camp Central"; network = list("Labor")},/obj/machinery/atmospherics/pipe/manifold{dir = 8},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fg" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fh" = (/obj/machinery/conveyor{dir = 2; id = "gulag"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fi" = (/obj/machinery/conveyor{dir = 8; id = "gulag"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/laborcamp)
+"fj" = (/obj/machinery/conveyor{dir = 8; id = "gulag"},/turf/simulated/floor/plasteel{tag = "icon-asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/laborcamp)
+"fk" = (/obj/machinery/mineral/unloading_machine{dir = 1; input_dir = 4; output_dir = 8},/turf/simulated/floor/plasteel{tag = "icon-asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/laborcamp)
+"fl" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning (WEST)"; icon_state = "asteroidwarning"; dir = 8; temperature = 273.15},/area/mine/explored)
+"fm" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored)
+"fn" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
+"fo" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
+"fp" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Security Airlock"; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fq" = (/obj/machinery/light/small{dir = 1},/obj/machinery/door_control{id = "Labor"; name = "Labor Camp Lockdown"; pixel_x = 0; pixel_y = 28; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fr" = (/obj/machinery/door/poddoor/preopen{id = "Labor"; name = "labor camp blast door"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fs" = (/turf/simulated/floor/plasteel,/area/mine/laborcamp)
+"ft" = (/obj/machinery/mineral/processing_unit_console{machinedir = 6},/turf/simulated/wall,/area/mine/laborcamp)
+"fu" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 2; id = "gulag"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fv" = (/obj/machinery/camera{c_tag = "Labor Camp External"; dir = 4; network = list("Labor")},/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored)
+"fw" = (/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored)
+"fx" = (/obj/machinery/conveyor_switch/oneway{id = "gulag"},/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored)
+"fy" = (/obj/effect/decal/cleanable/blood/old,/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored)
+"fz" = (/obj/machinery/mineral/stacking_unit_console{machinedir = 2},/turf/simulated/wall,/area/mine/laborcamp)
+"fA" = (/obj/machinery/mineral/processing_unit{dir = 1; output_dir = 2},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fB" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/laborcamp)
+"fC" = (/obj/machinery/computer/shuttle/labor/one_way,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fD" = (/obj/machinery/conveyor{dir = 8; id = "gulag"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=6-Vending"; location = "5-Central"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fE" = (/obj/machinery/mineral/stacking_machine{dir = 1; input_dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fF" = (/obj/machinery/conveyor{dir = 8; id = "gulag"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fG" = (/obj/machinery/conveyor{dir = 10; icon_state = "conveyor0"; id = "gulag"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fH" = (/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/explored)
+"fI" = (/obj/item/stack/sheet/metal{amount = 5},/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/explored)
+"fJ" = (/turf/simulated/wall/r_wall,/area/mine/laborcamp/security)
+"fK" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp/security)
+"fL" = (/obj/machinery/camera{c_tag = "Labor Camp Security Hallway"; dir = 8; network = list("Labor"); pixel_x = 0; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/laborcamp/security)
+"fM" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/laborcamp/security)
+"fN" = (/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"fO" = (/turf/simulated/wall,/area/mine/laborcamp/security)
+"fP" = (/obj/structure/girder,/turf/simulated/floor/plating{icon_plating = "asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/laborcamp/security)
+"fQ" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Prisoner Airlock"; req_access_txt = "0"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"fR" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Prisoner Airlock"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp/security)
+"fS" = (/obj/machinery/atmospherics/pipe/simple{dir = 6},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp/security)
+"fT" = (/obj/machinery/atmospherics/pipe/manifold,/obj/machinery/door/airlock/glass_security{name = "Labor Camp Backroom"; req_access_txt = "2"},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"fU" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/mine/laborcamp/security)
+"fV" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"fW" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/mine/laborcamp/security)
+"fX" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Labor Camp APC"; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple{dir = 10},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=5-Central"; location = "4-Maint"},/turf/simulated/floor/plating,/area/mine/laborcamp)
+"fY" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/mine/laborcamp/security)
+"fZ" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp External Access"; req_access_txt = "2"},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"ga" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Monitoring"; req_access_txt = "2"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"gb" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/laborcamp/security)
+"gc" = (/obj/machinery/door/airlock/maintenance{name = "Labor Camp Maintenance"; req_access_txt = "2"},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gd" = (/obj/structure/plasticflaps/mining,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"ge" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/explored)
+"gf" = (/obj/machinery/vending/coffee,/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"gg" = (/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"gh" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"gi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"gj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 4; name = "Labor Camp Security APC"; pixel_x = 24; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple,/obj/machinery/camera{c_tag = "Labor Camp Monitoring"; network = list("Labor")},/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"gk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/wall,/area/mine/laborcamp/security)
+"gl" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gm" = (/obj/machinery/light/small{dir = 1},/obj/item/weapon/storage/box/lights/mixed,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/mine/laborcamp/security)
+"go" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gp" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gq" = (/obj/structure/plasticflaps/mining,/turf/simulated/wall,/area/mine/laborcamp/security)
+"gr" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=4-Maint"; location = "3-SMine"},/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/laborcamp)
+"gs" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/explored)
+"gt" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/closet/crate,/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored)
+"gu" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
+"gv" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/mine/laborcamp/security)
+"gw" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"gx" = (/obj/structure/stool/bed/chair/office/dark,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"gy" = (/obj/machinery/door_control{id = "Labor"; name = "Labor Camp Lockdown"; pixel_x = 28; pixel_y = 7; req_access_txt = "2"},/obj/machinery/flasher_button{id = "Labor"; pixel_x = 26; pixel_y = -3},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"gz" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gA" = (/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gB" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/obj/machinery/meter,/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gC" = (/obj/machinery/atmospherics/unary/tank/air{dir = 8},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gD" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gE" = (/obj/structure/table,/obj/machinery/recharger,/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"gF" = (/obj/machinery/computer/secure_data,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"gG" = (/obj/machinery/computer/security{name = "Labor Camp Monitoring"; network = list("Labor")},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"gH" = (/obj/machinery/computer/prisoner,/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"gI" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"gJ" = (/obj/machinery/space_heater,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gK" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gL" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gM" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 5},/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gN" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gO" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gP" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gQ" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 9},/area/mine/explored)
+"gR" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
+"gS" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
+"gT" = (/turf/simulated/floor/plasteel{icon_plating = "asteroid"; icon_state = "asteroid"; name = "Asteroid"},/area/mine/explored)
+"gU" = (/obj/item/clothing/under/soviet,/obj/item/clothing/head/ushanka,/turf/simulated/floor/plasteel{icon_plating = "asteroid"; icon_state = "asteroid"; name = "Asteroid"},/area/mine/explored)
+"gV" = (/obj/effect/decal/remains/human,/turf/simulated/floor/plasteel{icon_plating = "asteroid"; icon_state = "asteroid"; name = "Asteroid"},/area/mine/explored)
+"gW" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 8},/area/mine/explored)
+"gX" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 4},/area/mine/explored)
+"gY" = (/obj/machinery/door/airlock/external{name = "Mining Bridge"; req_access_txt = "54"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/west_outpost)
+"gZ" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/mine/explored)
+"ha" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless,/area/mine/explored)
+"hb" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 1},/turf/space,/area/mine/west_outpost)
+"hc" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/mine/explored)
+"hd" = (/obj/structure/lattice,/obj/structure/window/reinforced,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/space,/area/mine/west_outpost)
+"he" = (/obj/structure/lattice,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/mine/explored)
+"hf" = (/turf/simulated/wall/r_wall,/area/mine/maintenance)
+"hg" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless,/area/mine/explored)
+"hh" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel/airless,/area/mine/explored)
+"hi" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel/airless,/area/mine/explored)
+"hj" = (/turf/simulated/floor/bluegrid,/area/mine/maintenance)
+"hk" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Mining Communications APC"; pixel_x = 1; pixel_y = 25},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/mine/maintenance)
+"hl" = (/obj/machinery/telecomms/relay/preset/mining,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 1},/area/mine/maintenance)
+"hm" = (/obj/machinery/alarm{pixel_y = 24},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/mine/maintenance)
+"hn" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/space,/area/mine/explored)
+"ho" = (/obj/structure/lattice,/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/mine/explored)
+"hp" = (/obj/structure/lattice,/turf/space,/area/mine/explored)
+"hq" = (/turf/space,/area/mine/unexplored)
+"hr" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/bluegrid,/area/mine/maintenance)
+"hs" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple{dir = 6},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/mine/maintenance)
+"ht" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor/bluegrid,/area/mine/maintenance)
+"hu" = (/obj/machinery/camera{c_tag = "Communications Relay"; dir = 8; network = list("MINE")},/turf/simulated/floor/bluegrid,/area/mine/maintenance)
+"hv" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
+"hw" = (/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris,/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
+"hx" = (/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
+"hy" = (/turf/simulated/wall,/area/mine/living_quarters)
+"hz" = (/obj/machinery/door/airlock/maintenance{name = "Mining Station Communications"; req_access_txt = "48"},/obj/machinery/atmospherics/pipe/simple,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "vault"},/area/mine/maintenance)
+"hA" = (/obj/item/clothing/under/rank/miner,/obj/effect/decal/remains/human,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
+"hB" = (/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/explored)
+"hC" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/brown,/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters)
+"hD" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm1"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters)
+"hE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"hF" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/obj/machinery/light,/turf/space,/area/mine/west_outpost)
+"hG" = (/obj/structure/table,/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters)
+"hH" = (/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters)
+"hI" = (/obj/machinery/door/airlock{id_tag = "miningdorm1"; name = "Room 1"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/mine/living_quarters)
+"hJ" = (/obj/structure/disposalpipe/trunk,/obj/structure/disposaloutlet{dir = 1},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
+"hK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"hL" = (/obj/structure/disposalpipe/segment,/turf/simulated/mineral/random,/area/mine/unexplored)
+"hM" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm2"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters)
+"hN" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/living_quarters)
+"hO" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/west_outpost)
+"hP" = (/obj/machinery/door/airlock{id_tag = "miningdorm2"; name = "Room 2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/mine/living_quarters)
+"hQ" = (/turf/space,/area/mine/explored)
+"hR" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/west_outpost)
+"hS" = (/turf/simulated/floor/mech_bay_recharge_floor/airless,/area/mine/west_outpost)
+"hT" = (/obj/machinery/computer/mech_bay_power_console,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/west_outpost)
+"hU" = (/obj/structure/disposalpipe/segment,/obj/structure/sign/deathsposal,/turf/simulated/wall,/area/mine/living_quarters)
+"hV" = (/turf/simulated/wall,/area/mine/west_outpost)
+"hW" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/west_outpost)
+"hX" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating/asteroid/airless,/area/mine/west_outpost)
+"hY" = (/obj/machinery/computer/arcade,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"hZ" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"ia" = (/obj/machinery/vending/cigarette,/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"ib" = (/obj/machinery/vending/snack,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"ic" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm3"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters)
+"id" = (/obj/structure/table,/obj/item/weapon/pickaxe,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"ie" = (/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"if" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"ig" = (/obj/machinery/recharge_station,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/west_outpost)
+"ih" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/west_outpost)
+"ii" = (/obj/structure/rack,/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/west_outpost)
+"ij" = (/obj/structure/rack,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/west_outpost)
+"ik" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/trunk,/obj/machinery/door/window/northleft{dir = 2; name = "Pneumatic Tube Access"},/obj/machinery/disposal/deliveryChute{pixel_y = 5},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/west_outpost)
+"il" = (/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"im" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/west_outpost)
+"in" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/west_outpost)
+"io" = (/obj/structure/table,/obj/machinery/microwave{pixel_y = 6},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"ip" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"iq" = (/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"ir" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"is" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 31},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"it" = (/obj/machinery/door/airlock{id_tag = "miningdorm3"; name = "Room 3"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/mine/living_quarters)
+"iu" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"iv" = (/obj/machinery/recharge_station,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"iw" = (/obj/structure/closet/secure_closet/miner,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"ix" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/eva)
+"iy" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/eva)
+"iz" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/eva)
+"iA" = (/turf/simulated/wall,/area/mine/eva)
+"iB" = (/obj/structure/table,/obj/item/weapon/shovel,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"iC" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"iD" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/mine/west_outpost)
+"iE" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/mine/west_outpost)
+"iF" = (/obj/machinery/door/airlock/external{name = "Mining West Outpost Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"iG" = (/obj/machinery/door/airlock/external{name = "Mining West Outpost Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/west_outpost)
+"iH" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 4},/area/mine/explored)
+"iI" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"iJ" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"iK" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"iL" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"iM" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"iN" = (/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"iO" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"iP" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/table,/obj/item/weapon/pickaxe,/turf/simulated/floor/plasteel,/area/mine/eva)
+"iQ" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/suit_storage_unit/mining,/turf/simulated/floor/plasteel,/area/mine/eva)
+"iR" = (/obj/machinery/suit_storage_unit/mining,/turf/simulated/floor/plasteel,/area/mine/eva)
+"iS" = (/obj/machinery/light,/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored)
+"iT" = (/obj/structure/table,/obj/item/weapon/storage/backpack/satchel,/obj/item/clothing/glasses/meson,/obj/machinery/light/small{dir = 8},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"iU" = (/obj/machinery/door/airlock/glass_mining{name = "Break Room"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"iV" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"iW" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"iX" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/west_outpost)
+"iY" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"iZ" = (/obj/machinery/camera{c_tag = "Crew Area"; dir = 1; network = list("MINE")},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"ja" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"jb" = (/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"jc" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"jd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"je" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"jf" = (/obj/machinery/mineral/equipment_vendor,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"jg" = (/obj/machinery/camera{c_tag = "Storage Room"; dir = 1; network = list("MINE")},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"jh" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"ji" = (/turf/simulated/wall,/area/mine/production)
+"jj" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/mine/production)
+"jk" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/production)
+"jl" = (/obj/machinery/atmospherics/pipe/simple{dir = 6},/obj/machinery/camera{c_tag = "EVA"; dir = 4; network = list("MINE")},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/table,/obj/item/device/gps/mining,/obj/item/device/gps/mining,/obj/item/device/gps/mining,/obj/item/device/gps/mining,/turf/simulated/floor/plasteel,/area/mine/eva)
+"jm" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/eva)
+"jn" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/eva)
+"jo" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor/plasteel,/area/mine/eva)
+"jp" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"jq" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"jr" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/west_outpost)
+"js" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"jt" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"ju" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"jv" = (/obj/machinery/conveyor_switch{id = "mining_west"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"jw" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/living_quarters)
+"jx" = (/obj/machinery/door/airlock/glass{name = "Crew Area"; req_access_txt = "48"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"jy" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/door/airlock/mining{name = "Mining Station Storage"; req_access_txt = "48"},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"jz" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/northleft{dir = 2; name = "Pneumatic Tube Access"},/obj/machinery/disposal/deliveryChute{pixel_y = 5},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production)
+"jA" = (/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production)
+"jB" = (/obj/machinery/atmospherics/pipe/simple{dir = 6},/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production)
+"jC" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/eva)
+"jD" = (/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/turf/simulated/floor/plasteel,/area/mine/eva)
+"jE" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/eva)
+"jF" = (/turf/simulated/floor/plasteel,/area/mine/eva)
+"jG" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor/plasteel,/area/mine/eva)
+"jH" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/eva)
+"jI" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/eva)
+"jJ" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"jK" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"jL" = (/obj/machinery/power/apc{dir = 2; name = "Mining West Outpost APC"; pixel_x = 1; pixel_y = -23},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"jM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/camera{c_tag = "West Outpost"; dir = 1; network = list("MINE")},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"jN" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"jO" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"jP" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "loadingarea"},/area/mine/west_outpost)
+"jQ" = (/obj/machinery/mineral/unloading_machine{dir = 2; output_dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/west_outpost)
+"jR" = (/obj/machinery/conveyor{dir = 4; id = "mining_west"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/west_outpost)
+"jS" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal/deliveryChute{dir = 8},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/west_outpost)
+"jT" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/west_outpost)
+"jU" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/mine/living_quarters)
+"jV" = (/obj/structure/sink{pixel_y = 30},/obj/machinery/light/small,/obj/structure/mirror{pixel_y = -32},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/mine/living_quarters)
+"jW" = (/obj/machinery/door/airlock{name = "Toilet"},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/mine/living_quarters)
+"jX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"jY" = (/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"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"jZ" = (/obj/machinery/camera{c_tag = "Crew Area Hallway"; network = list("MINE")},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"ka" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/mine/living_quarters)
+"kb" = (/obj/structure/window/reinforced,/obj/structure/lattice,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/space,/area/mine/living_quarters)
+"kc" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/mine/living_quarters)
+"kd" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/mine/production)
+"ke" = (/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/mine/production)
+"kf" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/mine/production)
+"kg" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/mine/production)
+"kh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/mine/production)
+"ki" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/glass_mining{name = "Mining Station EVA"; req_access_txt = "54"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/eva)
+"kj" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/mine/eva)
+"kk" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/eva)
+"kl" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/eva)
+"km" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/eva)
+"kn" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/eva)
+"ko" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/west_outpost)
+"kp" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/west_outpost)
+"kq" = (/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "54"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/mine/west_outpost)
+"kr" = (/obj/machinery/conveyor{backwards = 2; dir = 2; forwards = 1; id = "mining_west"},/obj/structure/plasticflaps/mining,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"ks" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/mine/west_outpost)
+"kt" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"ku" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"kv" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"kw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"kx" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/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,/area/mine/living_quarters)
+"ky" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"kz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"kA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/living_quarters)
+"kB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/glass_mining{name = "Mining Station Bridge"; req_access_txt = "48"},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"kC" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"kD" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/production)
+"kE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/glass_mining{name = "Mining Station Bridge"; req_access_txt = "48"},/turf/simulated/floor/plasteel,/area/mine/production)
+"kF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/mine/production)
+"kG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor/plasteel,/area/mine/production)
+"kH" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/production)
+"kI" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
+"kJ" = (/obj/machinery/power/apc{dir = 2; name = "Mining EVA APC"; pixel_x = 1; pixel_y = -23},/obj/structure/cable,/obj/structure/table,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/weapon/hand_labeler,/turf/simulated/floor/plasteel,/area/mine/eva)
+"kK" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/mine/eva)
+"kL" = (/turf/simulated/floor/mech_bay_recharge_floor,/area/mine/eva)
+"kM" = (/obj/machinery/computer/mech_bay_power_console,/turf/simulated/floor/plasteel,/area/mine/eva)
+"kN" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel,/area/mine/eva)
+"kO" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/eva)
+"kP" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/meter,/turf/simulated/floor/plating,/area/mine/west_outpost)
+"kQ" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/mine/west_outpost)
+"kR" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/mine/west_outpost)
+"kS" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/item/weapon/storage/box/lights/bulbs,/turf/simulated/floor/plating,/area/mine/west_outpost)
+"kT" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/west_outpost)
+"kU" = (/obj/machinery/conveyor_switch{id = "mining_west"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/west_outpost)
+"kV" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"kW" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"kX" = (/obj/machinery/atmospherics/pipe/manifold,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"kY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"kZ" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"la" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/light,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"lb" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/mine/living_quarters)
+"lc" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/living_quarters)
+"ld" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/space,/area/mine/living_quarters)
+"le" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/space,/area/mine/production)
+"lf" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/light{dir = 4},/turf/space,/area/mine/production)
+"lg" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/production)
+"lh" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/mine/production)
+"li" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 1},/area/mine/production)
+"lj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/production)
+"lk" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
+"ll" = (/obj/machinery/camera{c_tag = "Production Line External"; dir = 4; network = list("MINE")},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/production)
+"lm" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/production)
+"ln" = (/obj/machinery/conveyor_switch{id = "mining_external"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/production)
+"lo" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/production)
+"lp" = (/obj/machinery/atmospherics/unary/tank/air{dir = 1; initialize_directions = 0; level = 1},/turf/simulated/floor/plating,/area/mine/west_outpost)
+"lq" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/mine/west_outpost)
+"lr" = (/obj/machinery/power/terminal{dir = 4},/obj/machinery/light/small,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/west_outpost)
+"ls" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/simulated/floor/plating,/area/mine/west_outpost)
+"lt" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Infirmary"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "whitebluefull"},/area/mine/living_quarters)
+"lu" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/living_quarters)
+"lv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "48"},/turf/simulated/floor/plating,/area/mine/living_quarters)
+"lw" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/living_quarters)
+"lx" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"ly" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/mine/production)
+"lz" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/production)
+"lA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
+"lB" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock{name = "Closet"; req_access_txt = "0"},/turf/simulated/floor/plating,/area/mine/production)
+"lC" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/mine/production)
+"lD" = (/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j1"; tag = "icon-pipe-j1 (EAST)"},/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/mine/production)
+"lE" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/mine/production)
+"lF" = (/obj/machinery/disposal/deliveryChute{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/mine/production)
+"lG" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/turf/simulated/floor/plating,/area/mine/production)
+"lH" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/mine/production)
+"lI" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/production)
+"lJ" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/production)
+"lK" = (/obj/machinery/light/small{dir = 8},/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/mine/living_quarters)
+"lL" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/mine/living_quarters)
+"lM" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/mine/living_quarters)
+"lN" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "whiteblue"},/area/mine/living_quarters)
+"lO" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/mine/living_quarters)
+"lP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/light/small{dir = 1},/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/mine/living_quarters)
+"lQ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/mine/living_quarters)
+"lR" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plating,/area/mine/living_quarters)
+"lS" = (/turf/simulated/floor/plating,/area/mine/living_quarters)
+"lT" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/living_quarters)
+"lU" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/living_quarters)
+"lV" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"lW" = (/obj/structure/sign/xeno_warning_mining,/turf/simulated/wall,/area/mine/living_quarters)
+"lX" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/mine/production)
+"lY" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/production)
+"lZ" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
+"ma" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/production)
+"mb" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "warnwhite"; dir = 1},/area/mine/living_quarters)
+"mc" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"},/area/mine/living_quarters)
+"md" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/camera{c_tag = "Sleeper Room"; dir = 1; network = list("MINE")},/turf/simulated/floor/plasteel{icon_state = "white"; temperature = 273.15},/area/mine/living_quarters)
+"me" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/o2{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/firstaid/regular,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/mine/living_quarters)
+"mf" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/mine/living_quarters)
+"mg" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/obj/machinery/meter,/turf/simulated/floor/plating,/area/mine/living_quarters)
+"mh" = (/obj/machinery/atmospherics/unary/tank/air{dir = 8},/turf/simulated/floor/plating,/area/mine/living_quarters)
+"mi" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/living_quarters)
+"mj" = (/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/living_quarters)
+"mk" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/living_quarters)
+"ml" = (/turf/space,/area/shuttle/mining/outpost)
+"mm" = (/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"; d2 = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/mine/production)
+"mn" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel,/area/mine/production)
+"mo" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
+"mp" = (/obj/machinery/mineral/equipment_vendor,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
+"mq" = (/obj/machinery/mineral/mint{input_dir = 4},/turf/simulated/floor/plasteel,/area/mine/production)
+"mr" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "loadingarea"},/area/mine/production)
+"ms" = (/obj/structure/closet/crate,/obj/machinery/alarm{pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production)
+"mt" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/structure/table,/obj/item/weapon/paper{anchored = 0; info = "A hastily written note has been scribbled here...
Please use the ore redemption machine in the science wing for smelting. PLEASE!
--The Research Staff"; name = "URGENT!"},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production)
+"mu" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/mine/production)
+"mv" = (/obj/structure/cable,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/power/port_gen/pacman{anchored = 1},/turf/simulated/floor/plating,/area/mine/living_quarters)
+"mw" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/living_quarters)
+"mx" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/mine/living_quarters)
+"my" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 5},/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/mine/living_quarters)
+"mz" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/living_quarters)
+"mA" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/production)
+"mB" = (/turf/simulated/floor/plasteel{icon_state = "loadingarea"},/area/mine/production)
+"mC" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/mine/production)
+"mD" = (/obj/machinery/door/airlock/glass_mining{name = "Conveyor Access"; req_access_txt = "48"},/obj/structure/barricade/wooden,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
+"mE" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/mine/production)
+"mF" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/explored)
+"mG" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plating/asteroid/airless,/area/mine/living_quarters)
+"mH" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/production)
+"mI" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/production)
+"mJ" = (/obj/item/device/radio/beacon,/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/mine/production)
+"mK" = (/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 4},/area/mine/production)
+"mL" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/computer/shuttle/mining{req_access = "0"},/obj/machinery/light{dir = 4},/obj/machinery/camera{c_tag = "Shuttle Docking Foyer"; dir = 8; network = list("MINE")},/obj/machinery/newscaster{pixel_x = 30; pixel_y = 1},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
+"mM" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production)
+"mN" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor/plasteel,/area/mine/production)
+"mO" = (/obj/machinery/camera{c_tag = "Processing Area Room"; dir = 8; network = list("MINE")},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = 28},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
+"mP" = (/obj/machinery/mineral/unloading_machine{dir = 1; icon_state = "unloader-corner"; input_dir = 4; output_dir = 8},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/mine/production)
+"mQ" = (/obj/machinery/door/airlock/external{name = "Mining Shuttle Airlock"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
+"mR" = (/turf/simulated/floor/plasteel,/area/mine/production)
+"mS" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/mine/production)
+"mT" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 8},/area/mine/production)
+"mU" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/production)
+"mV" = (/obj/machinery/conveyor_switch/oneway{id = "mining_internal"; name = "mining conveyor"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
+"mW" = (/obj/effect/decal/remains/human{desc = "Seems to be all that remains of a poor miner that didn't heed the warning signs."},/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored)
+"mX" = (/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/mine/production)
+"mY" = (/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 1},/area/mine/production)
+"mZ" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/mine/production)
+"na" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/obj/structure/disposalpipe/junction{dir = 4; icon_state = "pipe-j2"; tag = "icon-pipe-j1 (WEST)"},/turf/simulated/floor/plasteel,/area/mine/production)
+"nb" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
+"nc" = (/obj/machinery/door/airlock/glass_mining{name = "Processing Area"; req_access_txt = "48"},/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
+"nd" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/mine/production)
+"ne" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 4},/area/mine/production)
+"nf" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/turf/simulated/floor/plasteel,/area/mine/production)
+"ng" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
+"nh" = (/obj/machinery/mineral/processing_unit_console,/turf/simulated/wall/r_wall,/area/mine/production)
+"ni" = (/obj/machinery/mineral/processing_unit{dir = 1; output_dir = 2},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/mine/production)
+"nj" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/mine/production)
+"nk" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
+"nl" = (/obj/machinery/door/airlock/glass_mining{name = "Processing Area"; req_access_txt = "48"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
+"nm" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/mine/production)
+"nn" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/mine/production)
+"no" = (/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/mine/production)
+"np" = (/obj/structure/lattice,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/space,/area/space)
+"nq" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/mine/production)
+"nr" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/mine/production)
+"ns" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/window/northleft{name = "Output Access"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
+"nt" = (/obj/machinery/door/window/northleft{base_state = "right"; icon_state = "right"; name = "Output Access"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
+"nu" = (/obj/machinery/mineral/stacking_unit_console,/turf/simulated/wall/r_wall,/area/mine/production)
+"nv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/mine/explored)
+"nw" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/mine/explored)
+"nx" = (/obj/structure/lattice,/obj/structure/disposalpipe/segment{dir = 4},/turf/space,/area/space)
+"ny" = (/obj/structure/lattice,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/space,/area/space)
+"nz" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/trunk,/obj/machinery/door/window/northleft{name = "Pneumatic Tube Access"},/obj/machinery/disposal/deliveryChute{dir = 1; pixel_y = -1},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production)
+"nA" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/machinery/light,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production)
+"nB" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
+"nC" = (/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
+"nD" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/obj/structure/plasticflaps,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/mine/production)
+"nE" = (/obj/machinery/mineral/stacking_machine{dir = 1; input_dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/mine/production)
+"nF" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/mine/production)
+"nG" = (/obj/machinery/conveyor{icon_state = "conveyor0"; dir = 10; id = "mining_internal"},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating{tag = "icon-warnplatecorner (EAST)"; icon_state = "warnplatecorner"; dir = 4},/area/mine/production)
+"nH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/mine/explored)
+"nI" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/production)
+"nJ" = (/obj/structure/disposaloutlet{dir = 1; eject_range = 1},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/mine/production)
+
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -747,175 +750,175 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababadadadadadababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadaeadadadadadadadadadadadadadadadabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadaeadadadadabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadaeadadadadadadababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadafadadadadadadadadadadadadadadadabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaabababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafafafafafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafafafafafafafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagahagaaaaaaaaaiabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafajajajajajajafafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakalakamaaaaaiababababadadadadadadaeadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoapaqaramaaaiabababadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaafafafafafafafajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasatalakamaaaiabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaafafafafafafajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasauavawamamababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababamamamamamamamamamamafafafafafafajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaacacacacacaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxalayabababababadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadaeadadadadadadadadadabababazazazazazazazazazazafafafafafafajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaacacacacacaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamaAaBalayabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababamamamamamaCamamamafafafafafajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamaDaEaFaGayabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaafafafafafajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamaHaIaJayaKaLayayayayadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaMaNasaOaPaQagaRaGayaSaSayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaTaUaNavaVaWaWaXaGaKaYaZaSayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafafajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaTaUaTasasbbaVaVayaKbcayaSbdayadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaamafafafafafafafafajajajajajajajajajajajajajajajajajajajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamambebfasbgbhasbbbcbcbibbaKayayayayayayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababadadadadadababaaaaaaaaaaaaaaaaaaaaaaambjbjbkbjbjbjafafafafafajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamblbmbnasbhasavbobpaKayaWbqaybralaVbsayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababababababadadadababaaaaaaaaaaaaaaaaaaaaamambjbtbubvbwbjafafafafafafafafafafajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamamadadayaQbbbxasbnaVbybzbAagaWaVaybralalbsayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababafafafafafafababadadadababaaaaaaaaaaaaaaaaamamambjbBbCbDbEbjafafafafafafafafafafajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamayayayayayayaPaVbFbbaVbcbGbAbAaXalalaybravaKbsayadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadababafafafbHbHbHbHafafafababadababaaaaaaaaaaaaaaambjbjbjbjbjbIbJbjbjbjbjbjbjbjbjbjbHafafafafajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaybKbLbMbNayblbObmaybiaybPbPbPayaValalalalbQbpayadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadababafafbHbHbHbHbHbHbHbHafafababababaaaaaaaaaaaaaaambjbRbSbTbUbVbWbXbYbYbYbZcacbccbjbHbHafafafafafajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaybKcdcecdcfaKcgbQaKchbpaRciaKbpaRbbayalbcaKaKayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabafafbHbHbHbHbHbHbHbHbHbHafafababababaaaaaaaaaaaaambjcjbYckbUcmcncobjbjcpcqcrcrcsbjbHbHafafafafafajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaybKcdctctcfbcaKaKaRaGaKaKaKbQaKaKaKayaKbpchaKayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabafafbHbHbHbHbHbHbHbHbHbHbHcuafafafafafaaaaaaaaaaaaambjcvcwcxcycxczcAcBcCcDcEcFcGbHbHbHafafafafafajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaybKcHctcIaycJcKbPbPcKbccKbPbPbPaKaKaycLbQaKbcayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabafcubHbHbHbHbHbHbHbHbHbHbHbHafafafafaaaaaaaaaaaaaaambjcMbYcNbUbYcOcAcPcQcDbHbHbHbHbHafafafafafafajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababayayayayayaycRcKaKaKaKaKbQaKcSbPchbpaycTcUcVcWayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabafcubHbHbHbHbHbHbHbHbHbHbHbHafafafaaaaaaaaaaaaaaamambjcXbYcYbUcZbYcAcPcQcDbHbHbHbHbHbHafafafafafajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadaycJcKaKbcdadbaGbpaKbPaKaKayaldcdcddaydeadadadadadadadadadadadadadadadadadadadadadadadadadadadadababafafbHbHbHbHbHbHbHbHbHbHbHbHafafafaaaaaaaaaaaaamamambjbjbUbUbjbjbUdibUcQcDbHbHbHbHbHbHafafafafafajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadaycJcKaKbpaKaKcSaKbccKcJayaybraldcdkdldedeadadadadadadadadadadadadadaeadadadadadadadadadadadadadababafafbHbHbHbHbHbHbHbHbHbHbHbHclcldodpdpdpdpdpdpdqclclbHbHdrdsdtbjdubYdvcQcDbHbHbHbHbHbHbHafafafafajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadwdwdwdwdwdwdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadaydxcKcKcKcKcKcKcKcKcKcJaybraldyaldddzdedeadadadadadadadadadadadadadadadadadadadadadadadadadadabababafbHbHbHbHbHbHbHbHbHbHbHbHbHbHdAdBdBdBdBdBdBdBdBdAbHbHbHdCdCdCbjdDdEdFcQcDbHbHbHbHbHbHbHafafafafajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadwdwdwdwdwdwdGdGdGdHdwdjdjdjdIdIdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadaydxcJcJcJdJdKcJcJcJdxdxaybrdydydybsaydededeadadadadadadadadadadadadadadadadadadadadadadadadadabababafbHbHbHbHbHbHbHbHbHbHbHbHbHclcldLdMdMdMdMdMdMdMclclbHbHbHbHbHbjbUdNbUcQdObHbHbHbHbHbHbHafafafafajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadwdPdQdRdSdTdUdVdVdVdwdWdWdWdWdXdIdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababadadadadadadadadadayayayayayayayayayayayayayaycWdYdZayaydedededeadadadadadadadadadadadadadadadadadadadadadadadadabababafbHbHbHbHbHbHbHbHbHbHbHbHbHafaaaaaaaaaaaaaaaaafafafbHbHbHbHbHbHeaebecedeeefbHbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaegaaaaaaaaaaaaaadweheiejekdTeldVemeneoepeqeqdWdXerdIdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadaddededeaydcdcdyaydededededeadadadadadadadadadadadadadadadadadadadadadadadadabababafbHbHbHbHbHbHbHbHbHbHbHbHafaaaaaaaaaaaaaaafafafafafafafafbHbHbHbHbHeaesesecbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaegaaaaaaaaaadwdwdwdTdfeudgdTewexdTdTdwdwdweyezeAdIdIdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadaddededeayeBeCeBaydededededeadadadadadadadadadadadadadadadadadadadadadadadadadababafbHbHbHbHbHbHbHbHbHbHbHbHafaaaaaaaaaaaaaaafafafafafafafafafafbHbHbHbHeDeDbHbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaegamegegegegegdweEeFdTeGdVdUeHeIdVeJdTeKeKeKdXeqeqdIdIdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadaddedeayeLdYeMaydedededeadadadadadadadadadadadadadadadadadadadadadadadadadadababafafbHbHbHbHbHbHbHbHafafafafaaaaaaaaaaaaaaaaafafafafafafafafafafafbHbHeDeDbHbHafafafafafafajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaCaCamamamamamdweNeOePeQeReSdVeGdVdVeTeKeKeqeqeqeqeUdIdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaabababababadadadadadadadaeadadadadadadadadadadadadadadadadaddededeeVeWeXdedededeadadadadadadadadadadadadadadadadadadadadadaeadadadadadabababafafafafafbHbHcucuafababaaaaaaaaaaaaaaaaaaafafafafafafafafafafafafbHeDeDbHbHafafafafafafajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaegegegegegegegameYeYeYeYeYdweZfafbfceRfddVeGfedVdTfffgfgeqeqdXdXdIdIdjdjdjdjdjdjdjdjaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadaddededededefhdedededeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababafafafafafafababaaaaaaaaaaaaaaaaaaafafafajajajafafafafafafbHeDeDbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaegegegegegegegameYeYeYeYeYdwdTdTdTfidVfjeRfkdgfmfnfofofpfqeqdXdXfrdIdjdjdjdjdjdjdjdjaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadaddededededededefhdedeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababababababababaaaaaaaaaaaaaaaaaaaaafafafajajajafafafafafbHeDfsftbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaegegegegegegegameYeYeYeYeYfufvfufwfxdVeGdVdVfyfzdTfAfBfCeqeqdXdXfDdIdjdjdjdjdjdjdjdjdjaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadaddedededefhdededededeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababababaaaaaaaaaaaaaaaaaaaaafafafajajajajajafafafbHfsfteDbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaegegegegegegegameYeYeYeYeYdwdwdwdwdVdVeGdgfEdTfFdTeKeKeKdXdXdXdXfGdTdjdjdjdjdjdjdjdjdjdjaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadaddedededededededededeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaafafafafajajajajafafafbHbHeDeDbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaegegegegegegegameYeYeYeYeYaaaadwfHdVdVeGfIfJfKfLdTfMfNdXdXdXdXeUdIdIdjdjdjdjdjdjdjdjdjdjamamabababababadadadadadadadadadadadadadadadadadadadadadadadaddededededededededeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaafafafajajajajafafafbHbHeDeDbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaegegegegegegegameYeYeYeYeYfOfOfOfPfPfQfRfSfTfTdTfTfTfUdXeqdXdXeUdIdjdjdjdjdjdjdjdjdjdjdjaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadaddedededededeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaafafafafajajajafafafbHbHeDeDbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaegegegegegegegameYeYeYeYeYfVfPfWfPfPfXfYfZgagbgcgdgeeKeKdXdXdXdIdIdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadaddededeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaafafafafajajajajafafafbHeDeDbHbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaegegegegegegegameYeYeYeYeYfOfTfTfTgffRfTfTggghfSfTfTgieKdXdXdIdIdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaafafafafajajajajafafafbHeDeDbHbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaegegegegegegegameYeYeYeYeYfOgjgkglgmgngogpgqgrgsgtfSgugvgwdIdIdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaafafafafajajajajafafafbHeDfsgxftbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaegamamamamamamamgygzgkgAgkgBfTgCgDgDgEgFfTdIdIdIdIdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaafafafajajajajafafafbHfsgxfteDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaegegamegegegegegdhgHgIgJgKgLfTgMgNgOgPgFfTdIdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaabababadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaafafafajajajajafafafbHbHbHeDeDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaegaaaaaaaaaadmetdnfOfOfOfTfTfTfTfTfTfTdIdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaafafafajajajajafafafbHgTeeeeefbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadIdIdIdIdIdIdIdIdIdIdIdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjamamababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaafafafafajajajafafafbHeaesesecbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaafafafafajajajafafafbHbHeDeDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaabababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadabababababaaaaaaaaaaaaaaafafafafajajajafafafbHbHeDeDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaababababababadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaafafafafafajafafafbHbHeDeDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaafafafafajajafafafbHeDeDbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaafafajajafafafbHeDeDbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaafajajafafafbHeDeDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaafajajafafafbHeDeDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaafajajafafafbHeDfsftbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaafajajafafafbHfsfteDbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababamamamamamamamamafafajajafafafbHbHeDeDbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababazazazazazazazazafafajajafafafbHbHeDeDbHafafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababamamamamamamamamafafajajafafafbHbHeDeDbHafafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaafafajajafafafbHgTeeeeefbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaafafajajafafafbHeaesesecbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaadjdjdjaaaaaaaaaaaaaaaaaaaaaaaaababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaafafafajajafafafbHbHeDeDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaadjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaafafafajajafafafbHbHeDeDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaadjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaababadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaafafafajajafafafbHgUgVeDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaadjdjdjdjdjdjamamamamamamamamamababababadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafajajafafafbHeDgUgVbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaadjdjdjdjdjazazazazazazazazazababababadadadaeadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafajafafafbHeDeDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjamamamamamamamamamababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafbHbHeDeDbHafafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafbHgUgVeDbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafbHeDgUgVbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjgWdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaadjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafbHeDeDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjgXgYdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbHbHbHeDeDbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHeDeDbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHeDeDbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadaeadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHeDeDbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHeDeDbHbHbHafafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHeDeDbHbHbHafafafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaadjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHeDeDbHbHbHbHafafafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaadjdjaaaaaaaaaaaaaaaaaaaaaaaaaaabababaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHeDeDbHbHbHbHbHbHbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaadjdjdjdjdjamamamamamamamamamamamabababababaaabababadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHeDeDbHgTefbHbHbHbHbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaadjdjdjdjdjazazazazazazazazazazazabababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHeDfsgxgZhagxgxgxftbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjabababababababababababababababababababababababababababamamamamamamamamamamamababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHfsgxgxgZhagxgxfteDbHbHbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjababadadadadadadadadadadadadadadadadadadadabababababababababababababababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaafafbHbHbHbHbHeaecbHbHeDfsgxftbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjababababababababababadadadadadadadadadadadadadadadadadadadadadadadabababababababababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaafafafafafafbHbHbHbHbHfsgxfteDbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadaeadadadadanadadadadadadadadadaeadadadadadadababababababaaaaaaaaaaaaaaaaaaaaaaafafafafafafafafafbHbHbHeDeDbHbHbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababamamamamamamamamamamamafafafafafafafafafafafbHeDfsgxgxftbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjabababadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababazazazazazazazazazazazazazazafafafafafafafafafbHfsgxgxfteDbHbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababamamamamamamamamamamamamamamamamafafafafafafafafbHbHbHbHeDfsgxgxftbHbHafafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafafafafbHfsgxgxfteDbHbHafafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafafafafbHbHbHbHeDeDbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaadeadadadaddedeaaaaaaaaaaaaaaafafafajajajafafafafafafafbHeDfsgxftbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadabababaaaaaaaaaaaadedeadadaddededeaaaaaaaaaaaaaaafafafajajajajafafafafafafbHfsgxfteDbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaadedeadadaddedeaaaaaaaaaaaaaaaaafafafajajajajafafafafafafbHbHbHeDeDbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaadedeadadaddedeaaaaaaaaaaaaaaafafafafafajajajajafafafafafbHbHgTeeeeefbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaadadaddedeaaaaaaaaaaaaafafafafafafafajajajajafafafafafbHbHeaesesecbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafajajajajajajafafafafbHbHbHbHeDeDbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafajajajajajafafafbHbHbHbHbHbHeDeDbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafajajajajajafafafbHgUgxgxgxgxgVeDbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababaaaaaaaaaaaaaaaaaaaaaaafafafafafafafajajajajajafafafbHeDgUgxgxgxgxgVbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaafafafafafafafajajajajajafafafbHeDeDbHbHbHbHbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaafafafafafafafajajajajajafafafbHeDeDbHbHbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaafafafafafafafajajajajafafafbHeDeDbHbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaafafafafafafajajajajafafafbHeDeDbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaafafafafafajajafafafafbHeDeDbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaabababadadadadaeadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaafafafafajajafafafbHbHeDeDbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaababababadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaafafafajajafafafbHgUgVeDbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaafafafajajafafafbHeDgUgVbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaafafafajajafafbHbHeDeDbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaafafafajajafafbHgTeeeeefbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaafafafajajafafbHeaesesecbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabafafafabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaafafafafafajajafafbHbHeDeDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabababadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadababafbHbHafababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababamamamamamamamamamamafafafafafajajafafafbHeDeDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabafbHbHbHbHafabadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababazazazazazazazazazafafafafafafajajafafafbHeDeDbHbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadabafafbHbHbHbHafabadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababamamamamamamamamamamafafafafafafajajafafafbHeDeDbHbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadabafbHbHbHbHafafabadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaafafafafajajajajafafafbHeDeDbHbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabafbHbHbHbHbHafabadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafajajafafafafafbHeDeDbHbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabafbHbHbHbHbHafabadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafajajafafafafafbHeDeDbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabafclbHclbHafababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafajajafafafafbHbHeDeDbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadafclhdclbHafababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafajajafafafafbHbHeDeDbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadababababadadadadadadadafhehfhgafababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafajajafafafbHbHbHeDeDbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababadadadadadadadadadadadadadadadadadabababafafafafafafafafafafafhehfhhafababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafajajafafafbHbHbHeDeDbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaabababadadadadadadadadadadadadadadadadadababafbHbHclclhidpdpdpdpdpdphjhfhhafabababadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhkhkhkhkhkhkhkadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafajajafafafbHbHbHeDeDbHafafafafajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadabafbHbHbHbHhdhlhlhlhlhlhlhlhmhnhhafababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhkhohphqhrhohkadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafajajafafafafbHbHeDeDbHafafafafajajajajajajajajajajajajajajajajajajajajafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadabafbHbHbHclcldMdMdMdMdMdMhthfhuhvhwafafafafabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhkhohxhyhzhAhkadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafajajafafafafbHbHeDeDbHafafafafajajajajajajajajajajajajajajajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadababafbHbHbHafhwhwhwhwhwhwhehfhhhwhwhwbHbHbHafababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhBhChDadhEhkhkhkhFhkhkhkadadabababaaaaaaaaaaaaaaaaaaaaaaaaafafafafafajajafafafafbHbHeDeDbHafafafafafafajajajajajajajajajajajajajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadabafbHbHafhwhwhwhwhwhwhwhehfhhhwbHbHbHbHbHafafabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhGhDhHadhEhIhJhEhKhEafafabadabababaaaaaaaaaaaaaaaaaaaaaaafafafafafafajajafafafafafbHeDeDbHbHafafafafafafafajajajajajajajajajajajajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadaeadadadadadadadadababafbHafhwhwhwhwhwhwhwhLhfhhbHbHbHbHbHbHbHafabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhBdWadhEhMhNhOhKhEbHafafababababaaaaaaaaaaaaaaaaaaaaafafafafafafafajajafafafafafbHeDeDbHbHbHbHafafafafafajajajajajajajajajajajajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababadadadadadadadadadadadadadadadababafafafafafhwhwhwhwclhdclbHbHbHbHbHbHbHafafababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhPadadhEhEhEhEhQhEbHbHafafafafafaaaaaaaaaaaaaaaaaaaaaaafafafafafafajajafafafafafbHeDeDbHbHbHbHbHbHafafafafajajajajajajajajajajajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadabababababababafhwbHbHclbHclbHbHbHbHbHbHbHbHafababadadadadadadadadadadadadadaeadadadadadadadadadadadadadadababababababadadadadadadadadadadadadadadadadadadadadhRadadhEhIhShEhKevbHbHbHbHbHbHafafaaaaaaaaaaaaaaaaaaaaafafafafafafafafafafafafafbHeDeDbHbHbHbHbHbHbHafafafafafajajajajajajajajajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababadadadadadadadadadadadadadadababababababafbHbHbHbHbHbHbHbHhUhUhUbHbHbHafababadadadadadadadadadadadadadadadadadadadadadadadadadadababababababababababababadadadadadadadadadadadadadadadadhRadadhEhMhNhVhKevbHbHbHbHbHbHbHbHbHaaaaaaaaaaaaaaaaaahXafafafafafafafafafafafbHbHeDeDbHbHbHbHbHbHbHbHbHafafafafajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababadadadadadadadadadadadadadababafafafafafafbHbHbHbHbHbHbHbHhYhZiabHbHbHafababababadadadadadadadadadadadadadadadadadadadadadabababababafafafafafafafabababababababadadadadadadadadadadhEhEibhEhEhEhEhEhEhKevbHbHbHbHbHbHbHbHbHbHbHaaaaaaaaaaaaaaaaaaafafafafafafafbHbHbHbHgTeeeeefbHbHbHbHbHbHbHbHbHafafafafafajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababadadadadadadadadadadadadabafafbHbHididididididflflflflididididihbHbHafababababadadadadadadadadadadadadadadadadadadadadadababababafafbHbHbHbHbHafafafafafabababababababadadadadhEhEhEiiijikilhEhIimhEhQhEhEhEevevevhEbHbHbHbHbHbHaaaaaaaaaaaaaaaaaaafafafafafbHbHbHbHbHeaesesecbHbHbHbHbHbHbHbHbHafafafafafajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababadadadadadadadababafbHbHbHidiqirisfliuiviwixiyfliAiBgGefbHbHafafafafababababababadadadadadadadadadadadadadadabababababafafbHbHbHbHbHbHbHbHbHbHafafafafafabababababadadhEiDiEiFiGiFiHhEhMhNiIhKhEiJiKiLiLiLevbHbHbHbHbHbHbHaaaaaaaaaaaaaaaaaaafafafbHbHbHbHbHbHbHeDiMiNgQgQiQiQbHbHbHbHbHbHafafafafafajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababadadadadadadababafbHbHbHidiRiAiSfliUiUiUiUiViWiAiBiXiYbHbHbHbHbHafafafabababababababadadadadadadadadadadadabababafafafbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHafafabababababadhEiZiFjajbjcjdhEhEhEhEhKhEiJjejejejfevbHbHbHbHbHbHbHaaaaaaaaaaaaaaaaaabHbHbHbHbHbHbHbHgUgxgViQjgjhjijiiQbHjjbHbHbHbHafafafafafajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaaababababababababadadadababafbHbHbHidjkiAiAjliAiAiAiAjmfljnjoflecbHbHbHbHbHbHbHafafafafabababababadadadadadadadadababababafafbHbHbHbHbHbHbHbHbHbHgTefbHbHbHbHbHbHafafafafababadhEjpiFjqiFjriFjsjfjtjujvhEjwjejxjejyevbHbHbHbHbHbHaaaaaaaaaaaaaaaaaaaaamaabHbHbHbHbHjzjAgRgRiQjDjEjFjGiQiQiQiQbHbHbHbHafafafafajajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababafafbHbHidjHiAjIgSjKjLjMiAjNidididididgTefbHbHbHbHbHbHbHbHafafafabababadadadadadadadadabababafafbHbHgUgxgxgxgxgxgxgxgxgZhagxgxgxgxftbHbHbHbHafafababhEhEhEhEhEhEhEevhbjQevhbhEhEhEhEhEjRhEhEevevbHbHaaaaaaaaaaaaaaaaaaaaaaamaaaaaabHbHgRgRjVjWjXhcjZkakbkcgQkekfgQefbHbHbHcuafafafafafajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababafbHbHidkhiAkiflkjkkkliAkmknkokpkqhsgZhagxgxgxgxgxftbHbHbHbHafafafababadadadadadadabababafafbHbHgUgVgUgxgxgxgxgxgxgxgZhagxgxgxftfsgxftbHbHbHafabababababhEksktkujejykvjfjyjskwkxjejfjyjejekyevevevkAkBkBkBkBkBkBkBkCkCkCkCkCkCkCgRgRgRkFkGkHkIkJkKkakbkbkLkMkNkOiYbHbHbHcuafafafafafajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababafbHbHidididididkPkQkRididkSkTkTkTkTgZhagxgxgxgxftfsgxgxftbHbHbHafafabababadadababababafafbHbHgUgVgUgVbHbHbHbHbHbHbHeaecbHbHbHfsgxfteDbHbHbHbHafafafafabhEhEhEhEkUjykVkWkXjukYkZkZlalakZkZlblclblcldldldldldldldldlelelelelelelelflglflglhliljgQlklllmlngQlolpgQecbHbHbHbHafafafafafajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababafafbHbHbHbHbHidlqlrlsltidlulvhUbHbHeaecbHbHbHbHfsgxgxfteDbHbHbHbHafafafababababababafafbHbHgUgVgUgVbHbHbHbHafbHbHbHbHbHbHbHbHbHbHeDeDbHbHbHbHbHbHbHafafafafafhEjelwlxlylylxlzlAlBlylylxlxlChThThTlGlGlGlGlGlGlGlGlHlHlHlHlHlHlIhWhWhWlMlNlOlPjzjzjAjzjzjzjzjzjzlQlRlSlRlTcuafafafafafajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababafafbHbHbHbHidlUlVlWlXidbHbHbHbHbHbHbHbHbHbHbHbHbHbHeDfsftbHbHbHbHbHafafafafafafafafbHbHgUgVgUgVbHbHafafafafafafafbHbHbHbHbHbHbHeDeDbHgTefbHbHbHbHbHbHafafhEhEevlZevhEhEmambmchEhEevmdevhEevbHbHbHaaaaaaaaamaaaaaaamaaaaaaaaaaamaagRgRmgmhmimjmkmlmmmnmomompmqmrmrmrmrlTbHafafafafafajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababafafbHbHbHididididididbHbHafafafafafafafafafbHbHbHfsftfsgxgxgxftbHbHbHbHbHbHbHbHbHbHbHeDgUgVbHbHafafabababababafbHbHbHbHbHbHbHeDfsgxgZhagxgxgxgxftbHbHafhEmsmtmumvhEmwmxmymzmAhEmBmCmDmEbHbHbHbHbHbHaaaaamaaaaaaamamamamamamamamamjzmFmGmHjzjzjzjzjzjzjzjzjzmIlTlTlTlTbHafafafafafajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababafbHbHbHbHbHbHbHbHbHbHbHafabababababababafafbHbHbHfsgxgxgxftfsftbHgTefbHbHgUgxgxgxgxgVeDbHbHafafababababababafafbHbHbHbHbHbHfsgxgxgZhagxgxgxfteDbHbHbHhEmJmKmLmMhEmNmAmAmOmPhEmQmRmShEbHbHbHbHbHbHamamamamamamammTmTmTmTmTamaaamjzmUmVmWmXjzmYmZnanbgRndjzbHbHbHbHbHafafafafajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababafbHbHbHbHbHbHbHbHbHafafafabababadadabababafafafbHbHbHbHbHfsftfsgxgZhagxgxgVgUgxgxgxgxgVbHafafababababababababafafafbHbHbHbHbHbHbHeaecbHbHbHeDeDbHbHbHmEhEhEhEhEhEnenfngnhmPhEevnievhEbHbHbHbHbHbHaaaaamaaaaaaammTmTmTmTmTamaagRgRmgnjmWmXhWnlkFkGnmnnnojzbHbHbHbHbHafafafafajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababafafafafbHbHbHbHafafafababadadadadadadadabababafafafbHbHbHbHfsgxgxgZhagxgxgxgVbHbHbHbHbHbHafababababababadadabababafafafafbHbHbHbHbHbHbHbHbHeDfsgxftbHbHbHbHbHbHmEhEhEhEhEhEmEnpnpiYnqbHbHbHbHbHaaaaaaamaaaaaaammTmTmTmTmTicgRientnunjmWnvjznwmgnxnyjznzjzbHbHbHbHafafafafafajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababafafafafafafababababadadadadadadadadababababafafafafbHbHbHbHeaecbHbHbHbHbHbHafafafafafababababababadadadabababababafafafafafafafafbHbHfsgxftfsftbHbHbHbHbHbHbHeaebebebebebebecbHbHbHbHbHbHamamamamamamamammTmTmTmTmTnAmgnAmgnBnCnDnmhWjWmgnEnFgRnojzbHbHbHbHafafafafajajajajajajajafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababadadadadadadadadadadadadabababababafafbHbHbHbHbHbHbHbHbHafafafabababababababadadadadadadadabababababababababababafafbHbHbHfsftfsftnGbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHaaaaaaaaaaaaammTmTmTmTmTgRgRgRnInJnKnLnMnNnOnPnQnRnSnTjzbHbHbHbHafafafafajajajajajajajafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababadadadadadadadadadadadadadadadadadababababafafafbHbHbHafafafafafabababababadadadadadadadadadadadadadababababababababababafbHbHbHbHfsftfsgxgxgxgxgxgxgxgxgxgxgxgxgxgxgxftbHbHbHbHbHbHaaaaaaaaaaammTmTmTmTmTamaagRgRmgnjnUnVnWnXnYnYnZgRnojzbHbHbHbHafafafafajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadabababafafafafafababababababababadadadadadadadadadadadadadadadabababababababababafafafbHbHbHfsgxgxgxgxgxgxgxgxgxgxgxgxgxgxgxfteDbHgTefbHbHbHezezamaaaaammTmTmTmTmTamaaobmmocodnYnZhWoeofoggRgRnojzbHbHbHbHafafafafajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadababababababababababababadadadadadadadadadadadadadadadadadadadadadadadadadababababafafafbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHeDfsgxgZhagxgxgxojokolololololololololololomjzonoojWnwjzopoqorosotoujzbHbHafafafafajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababafafafbHbHbHbHbHbHbHafafbHbHbHbHbHbHfsgxgxgZhagxgxgxovokololololololololololololmmowjzgRgRjzoxjzjzjzjzjzjzbHbHafafafafajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababafafafafafafafafafafafbHbHbHbHbHbHbHbHeaecbHbHbHezezamaaaaaaaaaaaaaaaaaaaaamambHbHbHbHjzjzjzbHbHbHbHbHbHbHafafafafajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababababababababababafbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHbHbHbHbHbHbHbHafafafajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababababababafbHbHbHbHbHbHbHbHbHbHbHbHafafafafaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHbHbHbHbHbHafafafafajajajajajajafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababababafafbHbHbHbHbHbHbHbHbHafababababafaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHbHbHbHbHbHafafafafajajajajajafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababababababafafafafafafafafafafafabababababafaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHbHbHbHbHafafafajajajajajajajafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHbHafafafafafafajajajajajajafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababababababababababadadababababaaaaaaaaaaaaaaaaaaaaaabHbHafafafafafafafafafafajajajajajajajafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaafafafafafafafafajajajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafajajajajajajajajajafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadaeadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaabababababababadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadaeadaeadafadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagagagagagagagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagagagagagagagagagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaiahaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagagajajajajajajagagagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakalakamaaaaabababababadadadadadadafadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoapaqaramaaababababadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaagagagagagagagajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasatalakamaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadaeadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaagagagagagagajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasauavawamamababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadabababamamamamamamamamamamagagagagagagajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaacacacacacaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxalayabababababadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadafadadadadadadadadadabababazazazazazazazazazazagagagagagagajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaacacacacacaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamaAaBalayabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababamamamamamaCamamamagagagagagajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamaDaEaFaGayabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaagagagagagajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamaHaIaJayaKaLayayayayadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaMaNasaOaPaQahaRaGayaSaSayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaTaUaNavaVaWaWaXaGaKaYaZaSayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagagagajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaTaUaTasasbbaVaVayaKbcayaSbdayadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaamagagagagagagagagajajajajajajajajajajajajajajajajajajajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamambebfasbgbhasbbbcbcbibbaKayayayayayayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababadadadadadababaaaaaaaaaaaaaaaaaaaaaaambjbjbkbjbjbjagagagagagajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamblbmbnasbhasavbobpaKayaWbqaybralaVbsayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababababababadadadababaaaaaaaaaaaaaaaaaaaaamambjbtbubvbwbjagagagagagagagagagagajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamamadadayaQbbbxasbnaVbybzbAahaWaVaybralalbsayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababagagagagagagababadadadababaaaaaaaaaaaaaaaaamamambjbBbCbDbEbjagagagagagagagagagagajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamayayayayayayaPaVbFbbaVbcbGbAbAaXalalaybravaKbsayadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadababagagagbHbHbHbHagagagababadababaaaaaaaaaaaaaaambjbjbjbjbjbIbJbjbjbjbjbjbjbjbjbjbHagagagagajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaybKbLbMbNayblbObmaybiaybPbPbPayaValalalalbQbpayadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadababagagbHbHbHbHbHbHbHbHagagababababaaaaaaaaaaaaaaambjbRbSbTbUbVbWbXbYbYbYbZcacbccbjbHbHagagagagagajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaybKcdcecdcfaKcgbQaKchbpaRciaKbpaRbbayalbcaKaKayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabagagbHbHbHbHbHbHbHbHbHbHagagababababaaaaaaaaaaaaambjcjbYckbUclcmcnbjbjcocpcqcqcrbjbHbHagagagagagajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaybKcdcscscfbcaKaKaRaGaKaKaKbQaKaKaKayaKbpchaKayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabagagbHbHbHbHbHbHbHbHbHbHbHctagagagagagaaaaaaaaaaaaambjcucvcwcxcwcyczcAcBcCcDcEcFbHbHbHagagagagagajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaybKcGcscHaycIcJbPbPcJbccJbPbPbPaKaKaycKbQaKbcayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabagctbHbHbHbHbHbHbHbHbHbHbHbHagagagagaaaaaaaaaaaaaaambjcLbYcMbUbYcNczcOcPcCbHbHbHbHbHagagagagagagajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababayayayayayaycQcJaKaKaKaKbQaKcRbPchbpaycScTcUcVayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabagctbHbHbHbHbHbHbHbHbHbHbHbHagagagaaaaaaaaaaaaaaamambjcWbYcXbUcYbYczcOcPcCbHbHbHbHbHbHagagagagagajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadaycIcJaKbccZdaaGbpaKbPaKaKayaldbdbdcayddadadadadadadadadadadadadadadadadadadadadadadadadadadadadababagagbHbHbHbHbHbHbHbHbHbHbHbHagagagaaaaaaaaaaaaamamambjbjbUbUbjbjbUdebUcPcCbHbHbHbHbHbHagagagagagajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadaycIcJaKbpaKaKcRaKbccJcIayaybraldbdgdhddddadadadadadadadadadadadadadafadadadadadadadadadadadadadababagagbHbHbHbHbHbHbHbHbHbHbHbHdididjdkdkdkdkdkdkdldidibHbHdmdndobjdpbYdqcPcCbHbHbHbHbHbHbHagagagagajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrdrdrdrdrdrdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadaydscJcJcJcJcJcJcJcJcJcIaybraldtaldcduddddadadadadadadadadadadadadadadadadadadadadadadadadadadabababagbHbHbHbHbHbHbHbHbHbHbHbHbHbHdvdwdwdwdwdwdwdwdwdvbHbHbHdxdxdxbjdydzdAcPcCbHbHbHbHbHbHbHagagagagajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrdrdrdrdrdrdBdBdBdCdrdfdfdfdDdDdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadaydscIcIcIdEdFcIcIcIdsdsaybrdtdtdtbsayddddddadadadadadadadadadadadadadadadadadadadadadadadadadabababagbHbHbHbHbHbHbHbHbHbHbHbHbHdididGdHdHdHdHdHdHdHdidibHbHbHbHbHbjbUdIbUcPdJbHbHbHbHbHbHbHagagagagajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrdKdLdMdNdOdPdQdQdQdrdRdRdRdRdSdDdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababadadadadadadadadadayayayayayayayayayayayayayaycVdTdUayayddddddddadadadadadadadadadadadadadadadadadadadadadadadadabababagbHbHbHbHbHbHbHbHbHbHbHbHbHagaaaaaaaaaaaaaaaaagagagbHbHbHbHbHbHdVdWdXdYdZeabHbHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaebaaaaaaaaaaaaaadrecedeeefdOegdQeheiejekeleldRdSemdDdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadddddddaydbdbdtayddddddddddadadadadadadadadadadadadadadadadadadadadadadadadabababagbHbHbHbHbHbHbHbHbHbHbHbHagaaaaaaaaaaaaaaagagagagagagagagbHbHbHbHbHdVenendXbHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaebaaaaaaaaaadrdrdrdOeoepeqdOeresdOdOdrdrdreteuevdDdDdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadddddddayewexewayddddddddddadadadadadadadadadadadadadadadadadadadadadadadadadababagbHbHbHbHbHbHbHbHbHbHbHbHagaaaaaaaaaaaaaaagagagagagagagagagagbHbHbHbHeyeybHbHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaebamebebebebebdrezeAdOeBdQdPeCeDdQeEdOeFeFeFdSeleldDdDdfdfdfeGdfdfdfaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadddddayeHdTeIayddddddddadadadadadadadadadadadadadadadadadadadadadadadadadadababagagbHbHbHbHbHbHbHbHagagagagaaaaaaaaaaaaaaaaagagagagagagagagagagagbHbHeyeybHbHagagagagagagajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaCaCamamamamamdreJeKeLeMeNeOdQeBdQdQePeFeFeleleleleQdDdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaabababababadadadadadadadafadadadadadadadadadadadadadadadadadddddddeReSeTddddddddadadadadadadadadadadadadadadadadadadadadadafadadadadadabababagagagagagbHbHctctagababaaaaaaaaaaaaaaaaaaagagagagagagagagagagagagbHeyeybHbHagagagagagagajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaebebebebebebebameUeUeUeUeUdreVeWeXeYeNeZdQeBfadQdOfbfcfceleldSdSdDdDdfdfdfdfdfdfdfdfaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadddddddddddfdddddddddadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababagagagagagagababaaaaaaaaaaaaaaaaaaagagagajajajagagagagagagbHeyeybHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaebebebebebebebameUeUeUeUeUdrdOdOdOfedQffeNfgeqfhfifjfjfkfleldSdSfmdDdfdfdfdfdfdfdfdfaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadddddddddddddddfdddddadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababababababababaaaaaaaaaaaaaaaaaaaaagagagajajajagagagagagbHeyfnfobHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaebebebebebebebameUeUeUeUeUfpfqfpfrfsdQeBdQdQftfudOfvfwfxeleldSdSfydDdfdfdfdfdfdfdfdfdfaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadddddddddfdddddddddddadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababababaaaaaaaaaaaaaaaaaaaaagagagajajajajajagagagbHfnfoeybHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaebebebebebebebameUeUeUeUeUdrdrdrdrdQdQeBeqfzdOfAdOeFeFeFdSdSdSdSfBdOdfdfdfdfdfdfdfdfdfdfaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadddddddddddddddddddddadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaagagagagajajajajagagagbHbHeyeybHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaebebebebebebebameUeUeUeUeUaaaadrfCdQdQeBfDfEfFfGdOfHfIdSdSdSdSeQdDdDdfdfdfdfdfdfdfdfdfdfamamabababababadadadadadadadadadadadadadadadadadadadadadadadadddddddddddddddddddadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaagagagajajajajagagagbHbHeyeybHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaebebebebebebebameUeUeUeUeUfJfJfJfKfKfLfMfNfOfOdOfOfOfPdSeldSdSeQdDdfdfdfdfdfdfdfdfdfdfdfaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadddddddddddddadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaagagagagajajajagagagbHbHeyeybHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaebebebebebebebameUeUeUeUeUfQfKfRfKfKfSfTfUfVfWfXfYfZeFeFdSdSdSdDdDdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadddddddadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaagagagagajajajajagagagbHeyeybHbHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaebebebebebebebameUeUeUeUeUfJfOfOfOgafMfOfOgbgcgdfOfOgeeFdSdSdDdDdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaagagagagajajajajagagagbHeyeybHbHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaebebebebebebebameUeUeUeUeUfJgfggghgigjgkglgmgngogpgqgrgsgtdDdDdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaagagagagajajajajagagagbHeyfngufobHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaebamamamamamamamgvgwgggxgggyfOgzgAgAgBgCfOdDdDdDdDdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaagagagajajajajagagagbHfngufoeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaebebamebebebebebgDgEgFgGgHgIfOgJgKgLgMgCfOdDdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaabababadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaagagagajajajajagagagbHbHbHeyeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaebaaaaaaaaaagNgOgPfJfJfJfOfOfOfOfOfOfOdDdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaagagagajajajajagagagbHgQdZdZeabHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadDdDdDdDdDdDdDdDdDdDdDdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfamamababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaagagagagajajajagagagbHdVenendXbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaagagagagajajajagagagbHbHeyeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaabababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadabababababaaaaaaaaaaaaaaagagagagajajajagagagbHbHeyeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaababababababadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaagagagagagajagagagbHbHeyeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaagagagagajajagagagbHeyeybHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaagagajajagagagbHeyeybHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaagajajagagagbHeyeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaagajajagagagbHeyeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaagajajagagagbHeyfnfobHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaagajajagagagbHfnfoeybHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababamamamamamamamamagagajajagagagbHbHeyeybHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababazazazazazazazazagagajajagagagbHbHeyeybHagagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababamamamamamamamamagagajajagagagbHbHeyeybHagagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaagagajajagagagbHgQdZdZeabHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaagagajajagagagbHdVenendXbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaadfdfdfaaaaaaaaaaaaaaaaaaaaaaaaababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaagagagajajagagagbHbHeyeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaadfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaagagagajajagagagbHbHeyeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaadfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaababadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaagagagajajagagagbHgRgSeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaadfdfdfdfdfdfamamamamamamamamamababababadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagajajagagagbHeygRgSbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaadfdfdfdfdfazazazazazazazazazababababadadadafadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagajagagagbHeyeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfamamamamamamamamamababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagbHbHeyeybHagagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagbHgRgSeybHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagbHeygRgSbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfgTdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaadfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagbHeyeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfgUgVdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagbHbHbHeyeybHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHeyeybHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHeyeybHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadafadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHeyeybHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHeyeybHbHbHagagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHeyeybHbHbHagagagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaadfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHeyeybHbHbHbHagagagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaadfdfaaaaaaaaaaaaaaaaaaaaaaaaaaabababaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHeyeybHbHbHbHbHbHbHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaadfdfdfdfdfamamamamamamamamamamamabababababaaabababadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHeyeybHgQeabHbHbHbHbHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaadfdfdfdfdfazazazazazazazazazazazabababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHeyfngugWgXgugugufobHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfabababababababababababababababababababababababababababamamamamamamamamamamamababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHfngugugWgXgugufoeybHbHbHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfababadadadadadadadadadadadadadadadadadadadabababababababababababababababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaagagbHbHbHbHbHdVdXbHbHeyfngufobHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfababababababababababadadadadadadadadadadadadadadadadadadadadadadadabababababababababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaagagagagagagbHbHbHbHbHfngufoeybHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadafadadadadanadadadadadadadadadafadadadadadadababababababaaaaaaaaaaaaaaaaaaaaaaagagagagagagagagagbHbHbHeyeybHbHbHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababamamamamamamamamamamamagagagagagagagagagagagbHeyfngugufobHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfabababadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababazazazazazazazazazazazazazazagagagagagagagagagbHfngugufoeybHbHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababamamamamamamamamamamamamamamamamagagagagagagagagbHbHbHbHeyfngugufobHbHagagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagagagagagbHfngugufoeybHbHagagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagagagagagbHbHbHbHeyeybHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaddadadadadddddaaaaaaaaaaaaaaagagagajajajagagagagagagagbHeyfngufobHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadabababaaaaaaaaaaaaddddadadadddddddaaaaaaaaaaaaaaagagagajajajajagagagagagagbHfngufoeybHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaddddadadadddddaaaaaaaaaaaaaaaaagagagajajajajagagagagagagbHbHbHeyeybHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaddddadadadddddaaaaaaaaaaaaaaagagagagagajajajajagagagagagbHbHgQdZdZeabHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaadadadddddaaaaaaaaaaaaagagagagagagagajajajajagagagagagbHbHdVenendXbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagajajajajajajagagagagbHbHbHbHeyeybHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagagajajajajajagagagbHbHbHbHbHbHeyeybHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagagajajajajajagagagbHgRgugugugugSeybHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababaaaaaaaaaaaaaaaaaaaaaaagagagagagagagajajajajajagagagbHeygRgugugugugSbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaagagagagagagagajajajajajagagagbHeyeybHbHbHbHbHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaagagagagagagagajajajajajagagagbHeyeybHbHbHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaagagagagagagagajajajajagagagbHeyeybHbHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaagagagagagagajajajajagagagbHeyeybHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaagagagagagajajagagagagbHeyeybHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaabababadadadadafadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaagagagagajajagagagbHbHeyeybHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaababababadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaagagagajajagagagbHgRgSeybHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaagagagajajagagagbHeygRgSbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaagagagajajagagbHbHeyeybHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaagagagajajagagbHgQdZdZeabHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaagagagajajagagbHdVenendXbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabagagagabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaagagagagagajajagagbHbHeyeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabababadadadadadadadadafadadadadadadadadadadadadadadadadadadadadababagbHbHagababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababamamamamamamamamamamagagagagagajajagagagbHeyeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabagbHbHbHbHagabadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababazazazazazazazazazagagagagagagajajagagagbHeyeybHbHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadabagagbHbHbHbHagabadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababamamamamamamamamamamagagagagagagajajagagagbHeyeybHbHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadabagbHbHbHbHagagabadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaagagagagajajajajagagagbHeyeybHbHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabagbHbHbHbHbHagabadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagajajagagagagagbHeyeybHbHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabagbHbHbHbHbHagabadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagajajagagagagagbHeyeybHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabagdibHdibHagababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagajajagagagagbHbHeyeybHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadagdigYdibHagababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagajajagagagagbHbHeyeybHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadababababadadadadadadadaggZhahbagababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagajajagagagbHbHbHeyeybHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababadadadadadadadadadadadadadadadadadabababagagagagagagagagagagaggZhahcagababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagajajagagagbHbHbHeyeybHagagagagajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaabababadadadadadadadadadadadadadadadadadababagbHbHdidihddkdkdkdkdkdkhehahcagabababadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhfhfhfhfhfhfhfadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagajajagagagbHbHbHeyeybHagagagagajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadabagbHbHbHbHgYhghghghghghghghhhihcagababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhfhjhkhlhmhjhfadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagajajagagagagbHbHeyeybHagagagagajajajajajajajajajajajajajajajajajajajajagagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadabagbHbHbHdididHdHdHdHdHdHhnhahohphqagagagagabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhfhjhrhshthuhfadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagajajagagagagbHbHeyeybHagagagagajajajajajajajajajajajajajajajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadababagbHbHbHaghqhqhqhqhqhqgZhahchqhqhqbHbHbHagababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhvhwhxadhyhfhfhfhzhfhfhfadadabababaaaaaaaaaaaaaaaaaaaaaaaaagagagagagajajagagagagbHbHeyeybHagagagagagagajajajajajajajajajajajajajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadabagbHbHaghqhqhqhqhqhqhqgZhahchqbHbHbHbHbHagagabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhAhxhBadhyhChDhyhEhyagagabadabababaaaaaaaaaaaaaaaaaaaaaaagagagagagagajajagagagagagbHeyeybHbHagagagagagagagajajajajajajajajajajajajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadafadadadadadadadadababagbHaghqhqhqhqhqhqhqhFhahcbHbHbHbHbHbHbHagabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhvdRadhyhGhHhIhEhybHagagababababaaaaaaaaaaaaaaaaaaaaagagagagagagagajajagagagagagbHeyeybHbHbHbHagagagagagajajajajajajajajajajajajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababadadadadadadadadadadadadadadadababagagagagaghqhqhqhqdigYdibHbHbHbHbHbHbHagagababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhJadadhyhyhyhyhKhybHbHagagagagagaaaaaaaaaaaaaaaaaaaaaaagagagagagagajajagagagagagbHeyeybHbHbHbHbHbHagagagagajajajajajajajajajajajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadabababababababaghqbHbHdibHdibHbHbHbHbHbHbHbHagababadadadadadadadadadadadadadafadadadadadadadadadadadadadadababababababadadadadadadadadadadadadadadadadadadadadhLadadhyhChMhyhEhNbHbHbHbHbHbHagagaaaaaaaaaaaaaaaaaaaaagagagagagagagagagagagagagbHeyeybHbHbHbHbHbHbHagagagagagajajajajajajajajajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababadadadadadadadadadadadadadadababababababagbHbHbHbHbHbHbHbHhOhOhObHbHbHagababadadadadadadadadadadadadadadadadadadadadadadadadadadababababababababababababadadadadadadadadadadadadadadadadhLadadhyhGhHhPhEhNbHbHbHbHbHbHbHbHbHaaaaaaaaaaaaaaaaaahQagagagagagagagagagagagbHbHeyeybHbHbHbHbHbHbHbHbHagagagagajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababadadadadadadadadadadadadadababagagagagagagbHbHbHbHbHbHbHbHhRhShTbHbHbHagababababadadadadadadadadadadadadadadadadadadadadadabababababagagagagagagagabababababababadadadadadadadadadadhyhyhUhyhyhyhyhyhyhEhNbHbHbHbHbHbHbHbHbHbHbHaaaaaaaaaaaaaaaaaaagagagagagagagbHbHbHbHgQdZdZeabHbHbHbHbHbHbHbHbHagagagagagajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababadadadadadadadadadadadadabagagbHbHhVhVhVhVhVhVhWhWhWhWhVhVhVhVhXbHbHagababababadadadadadadadadadadadadadadadadadadadadadababababagagbHbHbHbHbHagagagagagabababababababadadadadhyhyhyhYhZiaibhyhCichyhKhyhyhyhNhNhNhybHbHbHbHbHbHaaaaaaaaaaaaaaaaaaagagagagagbHbHbHbHbHdVenendXbHbHbHbHbHbHbHbHbHagagagagagajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababadadadadadadadababagbHbHbHhVidieifhWigihiiijikhWilimineabHbHagagagagababababababadadadadadadadadadadadadadadabababababagagbHbHbHbHbHbHbHbHbHbHagagagagagabababababadadhyioipiqiriqishyhGhHithEhyiuiviwiwiwhNbHbHbHbHbHbHbHaaaaaaaaaaaaaaaaaaagagagbHbHbHbHbHbHbHeyixiyiziziAiAbHbHbHbHbHbHagagagagagajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababadadadadadadababagbHbHbHhViBiliChWiDiDiDiDiEiFilimiGiHbHbHbHbHbHagagagabababababababadadadadadadadadadadadabababagagagbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHagagabababababadhyiIiqiJiKiLiMhyhyhyhyhEhyiuiNiNiNiOhNbHbHbHbHbHbHbHaaaaaaaaaaaaaaaaaabHbHbHbHbHbHbHbHgRgugSiAiPiQiRiRiAbHiSbHbHbHbHagagagagagajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaaababababababababadadadababagbHbHbHhViTililiUililililiVhWiWiXhWdXbHbHbHbHbHbHbHagagagagabababababadadadadadadadadababababagagbHbHbHbHbHbHbHbHbHbHgQeabHbHbHbHbHbHagagagagababadhyiYiqiZiqjaiqjbiOjcjdjehyjfiNjgiNjhhNbHbHbHbHbHbHaaaaaaaaaaaaaaaaaaaaamaabHbHbHbHbHjijjjkjkiAjljmjnjoiAiAiAiAbHbHbHbHagagagagajajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababagagbHbHhVjpiljqjrjsjtjuiljvhVhVhVhVhVgQeabHbHbHbHbHbHbHbHagagagabababadadadadadadadadabababagagbHbHgRgugugugugugugugugWgXgugugugufobHbHbHbHagagababhyhyhyhyhyhyhyhNjwjxhNjwhyhyhyhyhyjyhyhyhNhNbHbHaaaaaaaaaaaaaaaaaaaaaaamaaaaaabHbHjkjkjzjAjBjCjDjEjFjGizjHjIizeabHbHbHctagagagagagajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababagbHbHhVjJiljKhWjLjMjNiljOjPjQjRjSjTgWgXgugugugugufobHbHbHbHagagagababadadadadadadabababagagbHbHgRgSgRgugugugugugugugWgXgugugufofngufobHbHbHagabababababhyjUjVjWiNjhjXiOjhjbjYjZiNiOjhiNiNkahNhNhNkbkckckckckckckckdkdkdkdkdkdkdjkjkjkkekfkgkhkikjjEjFjFkkklkmkniHbHbHbHctagagagagagajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababagbHbHhVhVhVhVhVkokpkqhVhVkrksksksksgWgXgugugugufofngugufobHbHbHagagabababadadababababagagbHbHgRgSgRgSbHbHbHbHbHbHbHdVdXbHbHbHfngufoeybHbHbHbHagagagagabhyhyhyhyktjhkukvkwjdkxkykykzkzkykykAkBkAkBkCkCkCkCkCkCkCkCkDkDkDkDkDkDkDkEkFkEkFkGkHkIizkJkKkLkMizkNkOizdXbHbHbHbHagagagagagajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababagagbHbHbHbHbHhVkPkQkRkShVkTkUhObHbHdVdXbHbHbHbHfngugufoeybHbHbHbHagagagababababababagagbHbHgRgSgRgSbHbHbHbHagbHbHbHbHbHbHbHbHbHbHeyeybHbHbHbHbHbHbHagagagagaghyiNkVkWkXkXkWkYkZlakXkXkWkWlblclclcldldldldldldldldlelelelelelelflglglglhliljlkjijijjjijijijijijilllmlnlmloctagagagagagajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababagagbHbHbHbHhVlplqlrlshVbHbHbHbHbHbHbHbHbHbHbHbHbHbHeyfnfobHbHbHbHbHagagagagagagagagbHbHgRgSgRgSbHbHagagagagagagagbHbHbHbHbHbHbHeyeybHgQeabHbHbHbHbHbHagaghyhyhNlthNhyhylulvlwhyhyhNlxhNhyhNbHbHbHaaaaaaaaamaaaaaaamaaaaaaaaaaamaajkjklylzlAlBlClDlElFlGlGlHlIlJlJlJlJlobHagagagagagajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababagagbHbHbHhVhVhVhVhVhVbHbHagagagagagagagagagbHbHbHfnfofngugugufobHbHbHbHbHbHbHbHbHbHbHeygRgSbHbHagagabababababagbHbHbHbHbHbHbHeyfngugWgXgugugugufobHbHaghylKlLlMlNhylOlPlQlRlShylTlUlVlWbHbHbHbHbHbHaaaaamaaaaaaamamamamamamamamamjilXlYlZjijijijijijijijijimalolololobHagagagagagajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababagbHbHbHbHbHbHbHbHbHbHbHagabababababababagagbHbHbHfngugugufofnfobHgQeabHbHgRgugugugugSeybHbHagagababababababagagbHbHbHbHbHbHfngugugWgXgugugufoeybHbHbHhymbmcmdmehymflSlSmgmhhymimjmkhybHbHbHbHbHbHamamamamamamammlmlmlmlmlamaaamjimmmnmompjimqmrmsmtjkmujibHbHbHbHbHagagagagajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababagbHbHbHbHbHbHbHbHbHagagagabababadadabababagagagbHbHbHbHbHfnfofngugWgXgugugSgRgugugugugSbHagagababababababababagagagbHbHbHbHbHbHbHdVdXbHbHbHeyeybHbHbHlWhyhyhyhyhymvmwmxmymhhyhNmzhNhybHbHbHbHbHbHaaaaamaaaaaaammlmlmlmlmlamaajkjklymAmomplgmBkekfmCmDmEjibHbHbHbHbHagagagagajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababagagagagbHbHbHbHagagagababadadadadadadadabababagagagbHbHbHbHfngugugWgXgugugugSbHbHbHbHbHbHagababababababadadabababagagagagbHbHbHbHbHbHbHbHbHeyfngufobHbHbHbHbHbHlWhyhyhyhyhylWmFmFiHmGbHbHbHbHbHaaaaaaamaaaaaaammlmlmlmlmlmHjkmImJmKmAmomLjimMlymNmOjimPjibHbHbHbHagagagagagajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababagagagagagagababababadadadadadadadadababababagagagagbHbHbHbHdVdXbHbHbHbHbHbHagagagagagababababababadadadabababababagagagagagagagagbHbHfngufofnfobHbHbHbHbHbHbHdVdWdWdWdWdWdWdXbHbHbHbHbHbHamamamamamamamammlmlmlmlmlmQlymQlymRmSmTmClgjAlymUmVjkmEjibHbHbHbHagagagagajajajajajajajagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababadadadadadadadadadadadadabababababagagbHbHbHbHbHbHbHbHbHagagagabababababababadadadadadadadabababababababababababagagbHbHbHfnfofnfomWbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHaaaaaaaaaaaaammlmlmlmlmljkjkjkmXmYmZnanbncndnenfngnhnijibHbHbHbHagagagagajajajajajajajagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababadadadadadadadadadadadadadadadadadababababagagagbHbHbHagagagagagabababababadadadadadadadadadadadadadababababababababababagbHbHbHbHfnfofngugugugugugugugugugugugugugugufobHbHbHbHbHbHaaaaaaaaaaammlmlmlmlmlamaajkjklymAnjnknlnmnnnnnojkmEjibHbHbHbHagagagagajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadabababagagagagagababababababababadadadadadadadadadadadadadadadabababababababababagagagbHbHbHfngugugugugugugugugugugugugugugufoeybHgQeabHbHbHeueuamaaaaammlmlmlmlmlamaanplEnqnrnnnolgnsntnujkjkmEjibHbHbHbHagagagagajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadababababababababababababadadadadadadadadadadadadadadadadadadadadadadadadadababababagagagbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHeyfngugWgXgugugunvnwnxnxnxnxnxnxnxnxnxnxnxnyjinznAjAmMjinBnCnDnEnFnGjibHbHagagagagajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababagagagbHbHbHbHbHbHbHagagbHbHbHbHbHbHfngugugWgXgugugunHnwnxnxnxnxnxnxnxnxnxnxnxnxlEnIjijkjkjinJjijijijijijibHbHagagagagajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababagagagagagagagagagagagbHbHbHbHbHbHbHbHdVdXbHbHbHeueuamaaaaaaaaaaaaaaaaaaaaamambHbHbHbHjijijibHbHbHbHbHbHbHagagagagajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababababababababababagbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHbHbHbHbHbHbHbHagagagajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababababababagbHbHbHbHbHbHbHbHbHbHbHbHagagagagaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHbHbHbHbHbHagagagagajajajajajajagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababababagagbHbHbHbHbHbHbHbHbHagababababagaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHbHbHbHbHbHagagagagajajajajajagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababababababagagagagagagagagagagagabababababagaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHbHbHbHbHagagagajajajajajajajagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHbHagagagagagagajajajajajajagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababababababababababadadababababaaaaaaaaaaaaaaaaaaaaaabHbHagagagagagagagagagagajajajajajajajagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaagagagagagagagagajajajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagajajajajajajajajajagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaaaaaababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -965,4 +968,3 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"}
-
diff --git a/code/ATMOSPHERICS/atmospherics.dm b/code/ATMOSPHERICS/atmospherics.dm
index f7098594a93..abf71c4ea0d 100644
--- a/code/ATMOSPHERICS/atmospherics.dm
+++ b/code/ATMOSPHERICS/atmospherics.dm
@@ -93,14 +93,11 @@ Pipelines + Other Objects -> Pipe network
return ..()
/obj/machinery/atmospherics/Deconstruct()
- var/turf/T = loc
- stored.loc = T
- transfer_fingerprints_to(stored)
- if(istype(src, /obj/machinery/atmospherics/pipe))
- for(var/obj/machinery/meter/meter in T)
- if(meter.target == src)
- new /obj/item/pipe_meter(T)
- qdel(meter)
+ if(can_unwrench)
+ var/turf/T = loc
+ stored.loc = T
+ transfer_fingerprints_to(stored)
+
qdel(src)
/obj/machinery/atmospherics/proc/nullifyPipenet(datum/pipeline/P)
@@ -127,7 +124,7 @@ Pipelines + Other Objects -> Pipe network
return img
-/obj/machinery/atmospherics/proc/construction(D, P)
+/obj/machinery/atmospherics/construction(D, P)
dir = D
initialize_directions = P
var/turf/T = loc
diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm
index d1f7f9c1e23..a03cc9b3656 100644
--- a/code/ATMOSPHERICS/components/unary/vent_pump.dm
+++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm
@@ -345,9 +345,10 @@
return
var/obj/selection = input(L,"Select a destination.", "Duct System") as null|anything in sortList(vents)
- if(!selection) return
+ if(!selection)
+ return
- if(!Adjacent(L))
+ if(!Adjacent(L) || L.stat || L.lying || !L.ventcrawler || welded)
return
if(iscarbon(L) && L.ventcrawler < 2) // lesser ventcrawlers can't bring items
for(var/obj/item/carried_item in L.contents)
@@ -359,11 +360,10 @@
if(!target_vent)
return
- for(var/mob/O in viewers(L, null))
- O.show_message(text("[L] scrambles into the ventilation ducts!"), 1)
+ L.visible_message("[L] scrambles into the ventilation ducts!", \
+ "You scramble into the ventilation ducts.")
- for(var/mob/O in hearers(target_vent,null))
- O.show_message("You hear something squeezing through the ventilation ducts.",2)
+ target_vent.audible_message("You hear something squeezing through the ventilation ducts.")
if(target_vent.welded) //the vent can be welded while they scrolled through the list.
target_vent = src
diff --git a/code/ATMOSPHERICS/pipes.dm b/code/ATMOSPHERICS/pipes.dm
index 7884a5ad12c..a3bb5355947 100644
--- a/code/ATMOSPHERICS/pipes.dm
+++ b/code/ATMOSPHERICS/pipes.dm
@@ -40,4 +40,13 @@
return ..()
/obj/machinery/atmospherics/pipe/setPipenet(datum/pipeline/P)
- parent = P
\ No newline at end of file
+ parent = P
+
+/obj/machinery/atmospherics/pipe/Destroy()
+ var/turf/T = loc
+ for(var/obj/machinery/meter/meter in T)
+ if(meter.target == src)
+ var/obj/item/pipe_meter/PM = new (T)
+ meter.transfer_fingerprints_to(PM)
+ qdel(meter)
+ ..()
\ No newline at end of file
diff --git a/code/ATMOSPHERICS/pipes/manifold.dm b/code/ATMOSPHERICS/pipes/manifold.dm
index 29f16311b63..434a4b3c9e7 100644
--- a/code/ATMOSPHERICS/pipes/manifold.dm
+++ b/code/ATMOSPHERICS/pipes/manifold.dm
@@ -25,6 +25,8 @@
/obj/machinery/atmospherics/pipe/manifold/New()
color = pipe_color
+ ..()
+
switch(dir)
if(NORTH)
initialize_directions = EAST|SOUTH|WEST
@@ -34,7 +36,6 @@
initialize_directions = SOUTH|WEST|NORTH
if(WEST)
initialize_directions = NORTH|EAST|SOUTH
- ..()
/obj/machinery/atmospherics/pipe/manifold/initialize()
for(var/D in cardinal)
diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm
index e650f0ef17a..4598cd77308 100644
--- a/code/__DEFINES/flags.dm
+++ b/code/__DEFINES/flags.dm
@@ -25,7 +25,7 @@
#define MASKCOVERSMOUTH 2048 // on other items, these are just for mask/head
#define HEADCOVERSMOUTH 2048
-#define HEADBANGPROTECT 1024
+#define HEADBANGPROTECT 4096
#define EARBANGPROTECT 1024
#define NOSLIP 1024 //prevents from slipping on wet floors, in space etc (NOTE: flag shared with THICKMATERIAL for external suits and helmet)
diff --git a/code/__DEFINES/genetics.dm b/code/__DEFINES/genetics.dm
index 64458a74709..b8a2b95657d 100644
--- a/code/__DEFINES/genetics.dm
+++ b/code/__DEFINES/genetics.dm
@@ -80,4 +80,12 @@
//Organ stuff, It's here because "Genetics" is the most relevant file for organs
#define ORGAN_ORGANIC 1
-#define ORGAN_ROBOTIC 2
\ No newline at end of file
+#define ORGAN_ROBOTIC 2
+
+//Nutrition levels for humans. No idea where else to put it
+#define NUTRITION_LEVEL_FAT 600
+#define NUTRITION_LEVEL_FULL 550
+#define NUTRITION_LEVEL_WELL_FED 450
+#define NUTRITION_LEVEL_FED 350
+#define NUTRITION_LEVEL_HUNGRY 250
+#define NUTRITION_LEVEL_STARVING 150
\ No newline at end of file
diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm
index a6ecae8b300..928561abe94 100644
--- a/code/__HELPERS/unsorted.dm
+++ b/code/__HELPERS/unsorted.dm
@@ -1260,6 +1260,18 @@ var/global/list/common_tools = list(
return 1000
else
return 0
+ if(istype(W, /obj/item/candle))
+ var/obj/item/candle/O = W
+ if(O.lit)
+ return 1000
+ else
+ return 0
+ if(istype(W, /obj/item/device/flashlight/flare))
+ var/obj/item/device/flashlight/flare/O = W
+ if(O.on)
+ return 1000
+ else
+ return 0
if(istype(W, /obj/item/weapon/pickaxe/plasmacutter))
return 3800
if(istype(W, /obj/item/weapon/melee/energy))
@@ -1302,44 +1314,32 @@ var/global/list/common_tools = list(
Checks if that loc and dir has a item on the wall
*/
var/list/WALLITEMS = list(
- "/obj/machinery/power/apc", "/obj/machinery/alarm", "/obj/item/device/radio/intercom",
- "/obj/structure/extinguisher_cabinet", "/obj/structure/reagent_dispensers/peppertank",
- "/obj/machinery/status_display", "/obj/machinery/requests_console", "/obj/machinery/light_switch", "/obj/effect/sign",
- "/obj/machinery/newscaster", "/obj/machinery/firealarm", "/obj/structure/noticeboard", "/obj/machinery/door_control",
- "/obj/machinery/computer/security/telescreen", "/obj/machinery/embedded_controller/radio/simple_vent_controller",
- "/obj/item/weapon/storage/secure/safe", "/obj/machinery/door_timer", "/obj/machinery/flasher", "/obj/machinery/keycard_auth",
- "/obj/structure/mirror", "/obj/structure/closet/fireaxecabinet", "/obj/machinery/computer/security/telescreen/entertainment"
+ /obj/machinery/power/apc, /obj/machinery/alarm, /obj/item/device/radio/intercom,
+ /obj/structure/extinguisher_cabinet, /obj/structure/reagent_dispensers/peppertank,
+ /obj/machinery/status_display, /obj/machinery/requests_console, /obj/machinery/light_switch, /obj/structure/sign,
+ /obj/machinery/newscaster, /obj/machinery/firealarm, /obj/structure/noticeboard, /obj/machinery/door_control,
+ /obj/machinery/computer/security/telescreen, /obj/machinery/embedded_controller/radio/simple_vent_controller,
+ /obj/item/weapon/storage/secure/safe, /obj/machinery/door_timer, /obj/machinery/flasher, /obj/machinery/keycard_auth,
+ /obj/structure/mirror, /obj/structure/closet/fireaxecabinet, /obj/machinery/computer/security/telescreen/entertainment
)
/proc/gotwallitem(loc, dir)
+ var/locdir = get_step(loc, dir)
for(var/obj/O in loc)
- for(var/item in WALLITEMS)
- if(istype(O, text2path(item)))
- //Direction works sometimes
- if(O.dir == dir)
- return 1
-
- //Some stuff doesn't use dir properly, so we need to check pixel instead
- switch(dir)
- if(SOUTH)
- if(O.pixel_y > 10)
- return 1
- if(NORTH)
- if(O.pixel_y < -10)
- return 1
- if(WEST)
- if(O.pixel_x > 10)
- return 1
- if(EAST)
- if(O.pixel_x < -10)
- return 1
+ if(is_type_in_list(O, WALLITEMS))
+ //Direction works sometimes
+ if(O.dir == dir)
+ return 1
+ //Some stuff doesn't use dir properly, so we need to check pixel instead
+ //That's exactly what get_wall_mounted_turf() does
+ if(get_wall_mounted_turf(O) == locdir)
+ return 1
//Some stuff is placed directly on the wallturf (signs)
- for(var/obj/O in get_step(loc, dir))
- for(var/item in WALLITEMS)
- if(istype(O, text2path(item)))
- if(O.pixel_x == 0 && O.pixel_y == 0)
- return 1
+ for(var/obj/O in locdir)
+ if(is_type_in_list(O, WALLITEMS))
+ if(O.pixel_x == 0 && O.pixel_y == 0)
+ return 1
return 0
/proc/format_text(text)
@@ -1393,3 +1393,21 @@ var/list/WALLITEMS = list(
step(AM, pick(alldirs))
chance = max(chance - (initial_chance / steps), 0)
steps--
+
+/proc/get_wall_mounted_turf(atom/A)
+ /* This proc uses the pixel_x/y vars to guess the fake turf of a wall mounted atom.
+ Needless to say, this is an error prone method and possibly open to exploits.
+ It is however faster than using icon procs to get a more accurate reading.
+ I've only tested this proc on APCs. Use it with care.*/
+ if(is_type_in_list(A, WALLITEMS))
+ var/stepdir = 0
+
+ if(A.pixel_x > 10) stepdir |= EAST
+ if(A.pixel_x < -10) stepdir |= WEST
+ if(A.pixel_y > 10) stepdir |= NORTH
+ if(A.pixel_y < -10) stepdir |= SOUTH
+
+ if(stepdir)
+ return get_step(A, stepdir)
+ return get_turf(A)
+
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index a772d9bffed..7225f85733b 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -304,7 +304,7 @@
if(world.time <= usr.next_move)
return 1
- if(usr.stat || usr.paralysis || usr.stunned || usr.weakened)
+ if(usr.stat || usr.paralysis || usr.stunned || usr.weakened || usr.restrained())
return 1
if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech
return 1
diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm
index d067d49f4b2..b2d8c1a59c9 100644
--- a/code/_onclick/observer.dm
+++ b/code/_onclick/observer.dm
@@ -20,7 +20,7 @@
return // seems legit.
// Things you might plausibly want to follow
- if((ismob(A) && A != src) || istype(A,/obj/machinery/bot) || istype(A,/obj/machinery/singularity))
+ if((ismob(A) && A != src) || istype(A,/obj/machinery/bot) || istype(A,/obj/singularity))
ManualFollow(A)
// Otherwise jump
diff --git a/code/controllers/lighting_controller.dm b/code/controllers/lighting_controller.dm
index d4f46b104fe..0ffa34b54f0 100644
--- a/code/controllers/lighting_controller.dm
+++ b/code/controllers/lighting_controller.dm
@@ -65,7 +65,7 @@ var/datum/controller/lighting/lighting_controller = new ()
//Does not loop. Should be run prior to process() being called for the first time.
//Note: if we get additional z-levels at runtime (e.g. if the gateway thin ever gets finished) we can initialize specific
//z-levels with the z_level argument
-/datum/controller/lighting/proc/Initialize(var/z_level)
+/datum/controller/lighting/proc/initializeLighting(var/z_level)
processing = 0
spawn(-1)
set background = BACKGROUND_ENABLED
diff --git a/code/controllers/voting.dm b/code/controllers/voting.dm
index 1af635b5d18..c9754a87c48 100644
--- a/code/controllers/voting.dm
+++ b/code/controllers/voting.dm
@@ -176,7 +176,7 @@ var/datum/controller/vote/vote = new()
if(mode == "custom")
text += "\n[question]"
log_vote(text)
- world << "\n[text]\nType vote to place your votes.\nYou have [config.vote_period/10] seconds to vote."
+ world << "\n[text]\nType vote or click here to place your votes.\nYou have [config.vote_period/10] seconds to vote."
time_remaining = round(config.vote_period/10)
return 1
return 0
diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm
index e98fec043ed..368a3e69c93 100644
--- a/code/datums/datacore.dm
+++ b/code/datums/datacore.dm
@@ -79,6 +79,105 @@
if(foundrecord)
foundrecord.fields["rank"] = assignment
+/obj/effect/datacore/proc/get_manifest(monochrome, OOC)
+ var/list/heads = list()
+ var/list/sec = list()
+ var/list/eng = list()
+ var/list/med = list()
+ var/list/sci = list()
+ var/list/civ = list()
+ var/list/bot = list()
+ var/list/misc = list()
+ var/dat = {"
+
+
+ | Name | Rank |
+ "}
+ var/even = 0
+ // sort mobs
+ for(var/datum/data/record/t in data_core.general)
+ var/name = t.fields["name"]
+ var/rank = t.fields["rank"]
+ var/department = 0
+ if(rank in command_positions)
+ heads[name] = rank
+ department = 1
+ if(rank in security_positions)
+ sec[name] = rank
+ department = 1
+ if(rank in engineering_positions)
+ eng[name] = rank
+ department = 1
+ if(rank in medical_positions)
+ med[name] = rank
+ department = 1
+ if(rank in science_positions)
+ sci[name] = rank
+ department = 1
+ if(rank in civilian_positions)
+ civ[name] = rank
+ department = 1
+ if(rank in nonhuman_positions)
+ bot[name] = rank
+ department = 1
+ if(!department && !(name in heads))
+ misc[name] = rank
+ if(heads.len > 0)
+ dat += "| Heads |
"
+ for(name in heads)
+ dat += "| [name] | [heads[name]] |
"
+ even = !even
+ if(sec.len > 0)
+ dat += "| Security |
"
+ for(name in sec)
+ dat += "| [name] | [sec[name]] |
"
+ even = !even
+ if(eng.len > 0)
+ dat += "| Engineering |
"
+ for(name in eng)
+ dat += "| [name] | [eng[name]] |
"
+ even = !even
+ if(med.len > 0)
+ dat += "| Medical |
"
+ for(name in med)
+ dat += "| [name] | [med[name]] |
"
+ even = !even
+ if(sci.len > 0)
+ dat += "| Science |
"
+ for(name in sci)
+ dat += "| [name] | [sci[name]] |
"
+ even = !even
+ if(civ.len > 0)
+ dat += "| Civilian |
"
+ for(name in civ)
+ dat += "| [name] | [civ[name]] |
"
+ even = !even
+ // in case somebody is insane and added them to the manifest, why not
+ if(bot.len > 0)
+ dat += "| Silicon |
"
+ for(name in bot)
+ dat += "| [name] | [bot[name]] |
"
+ even = !even
+ // misc guys
+ if(misc.len > 0)
+ dat += "| Miscellaneous |
"
+ for(name in misc)
+ dat += "| [name] | [misc[name]] |
"
+ even = !even
+
+ dat += "
"
+ dat = replacetext(dat, "\n", "")
+ dat = replacetext(dat, "\t", "")
+ return dat
+
+
var/record_id_num = 1001
/obj/effect/datacore/proc/manifest_inject(var/mob/living/carbon/human/H)
if(H.mind && (H.mind.assigned_role != "MODE"))
diff --git a/code/datums/diseases/_MobProcs.dm b/code/datums/diseases/_MobProcs.dm
index 9b172e7c175..49991b32bea 100644
--- a/code/datums/diseases/_MobProcs.dm
+++ b/code/datums/diseases/_MobProcs.dm
@@ -67,6 +67,9 @@
if(prob(15/D.permeability_mod))
return
+ if(satiety>0 && prob(satiety/10)) // positive satiety makes it harder to contract the disease.
+ return
+
var/target_zone = pick(head_ch;1,body_ch;2,hands_ch;3,feet_ch;4)
if(istype(src, /mob/living/carbon/human))
diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm
index cd3a606e44e..a394b2c666a 100644
--- a/code/datums/diseases/_disease.dm
+++ b/code/datums/diseases/_disease.dm
@@ -97,16 +97,19 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease
break //One missing cure is enough to fail
-/datum/disease/proc/spread(var/atom/source)
- if(spread_flags & SPECIAL || spread_flags & NON_CONTAGIOUS || spread_flags & BLOOD)
+/datum/disease/proc/spread(var/atom/source, var/force_spread = 0)
+ if((spread_flags & SPECIAL || spread_flags & NON_CONTAGIOUS || spread_flags & BLOOD) && !force_spread)
return
if(affected_mob)
- if(affected_mob.reagents.has_reagent("spaceacillin"))
+ if( affected_mob.reagents.has_reagent("spaceacillin") || (affected_mob.satiety > 0 && prob(affected_mob.satiety/10)) )
return
var/spread_range = 1
+ if(force_spread)
+ spread_range = force_spread
+
if(spread_flags & AIRBORNE)
spread_range++
diff --git a/code/datums/diseases/advance/symptoms/sneeze.dm b/code/datums/diseases/advance/symptoms/sneeze.dm
index f26a0c78b66..bbf8cafaf52 100644
--- a/code/datums/diseases/advance/symptoms/sneeze.dm
+++ b/code/datums/diseases/advance/symptoms/sneeze.dm
@@ -35,5 +35,5 @@ Bonus
M.emote("sniff")
else
M.emote("sneeze")
- A.spread(A.holder, 5, AIRBORNE)
+ A.spread(A.holder, 5)
return
\ No newline at end of file
diff --git a/code/datums/diseases/advance/symptoms/weight.dm b/code/datums/diseases/advance/symptoms/weight.dm
index 3734176978c..f616545b057 100644
--- a/code/datums/diseases/advance/symptoms/weight.dm
+++ b/code/datums/diseases/advance/symptoms/weight.dm
@@ -34,7 +34,7 @@ Bonus
M << "[pick("You feel blubbery.", "You feel full.")]"
else
M.overeatduration = min(M.overeatduration + 100, 600)
- M.nutrition = min(M.nutrition + 100, 500)
+ M.nutrition = min(M.nutrition + 100, NUTRITION_LEVEL_FULL)
return
@@ -116,6 +116,6 @@ Bonus
switch(A.stage)
if(4, 5)
M.overeatduration = 0
- M.nutrition = 400
+ M.nutrition = NUTRITION_LEVEL_WELL_FED + 50
return
\ No newline at end of file
diff --git a/code/datums/helper_datums/teleport.dm b/code/datums/helper_datums/teleport.dm
index c5bff0660e2..4a041256d06 100644
--- a/code/datums/helper_datums/teleport.dm
+++ b/code/datums/helper_datums/teleport.dm
@@ -17,11 +17,11 @@
/datum/teleport/proc/start(ateleatom, adestination, aprecision=0, afteleport=1, aeffectin=null, aeffectout=null, asoundin=null, asoundout=null)
- if(!Init(arglist(args)))
+ if(!initTeleport(arglist(args)))
return 0
return 1
-/datum/teleport/proc/Init(ateleatom,adestination,aprecision,afteleport,aeffectin,aeffectout,asoundin,asoundout)
+/datum/teleport/proc/initTeleport(ateleatom,adestination,aprecision,afteleport,aeffectin,aeffectout,asoundin,asoundout)
if(!setTeleatom(ateleatom))
return 0
if(!setDestination(adestination))
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index 81c87a7413a..156984be285 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -77,9 +77,9 @@
if(new_character.mind) //disassociate any mind currently in our new body's mind variable
new_character.mind.current = null
- transfer_antag_huds(new_character) //inherit the antag HUDs from this mind (TODO: move this to the antag datum)
current = new_character //associate ourself with our new body
new_character.mind = src //and associate our new body with ourself
+ transfer_antag_huds(new_character) //inherit the antag HUDs from this mind (TODO: move this to a possible antag datum)
if(active)
new_character.key = key //now transfer the key to link the client to our new body
diff --git a/code/datums/spells/santa.dm b/code/datums/spells/santa.dm
new file mode 100644
index 00000000000..d4b11a626a6
--- /dev/null
+++ b/code/datums/spells/santa.dm
@@ -0,0 +1,15 @@
+//Santa spells!
+/obj/effect/proc_holder/spell/aoe_turf/conjure/presents
+ name = "Conjure Presents!"
+ desc = "This spell lets you reach into S-space and retrieve presents! Yay!"
+ school = "santa"
+ charge_max = 600
+ clothes_req = 0
+ invocation = "HO HO HO"
+ invocation_type = "shout"
+ range = 3
+ cooldown_min = 50
+
+ summon_type = list("/obj/item/weapon/a_gift")
+ summon_lifespan = 0
+ summon_amt = 5
diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm
index ea9fb838c27..932d76f958f 100644
--- a/code/datums/supplypacks.dm
+++ b/code/datums/supplypacks.dm
@@ -219,9 +219,9 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
/datum/supply_packs/security/taser
name = "Stun Guns Crate"
- contains = list(/obj/item/weapon/gun/energy/taser,
- /obj/item/weapon/gun/energy/taser,
- /obj/item/weapon/gun/energy/taser)
+ contains = list(/obj/item/weapon/gun/energy/gun/advtaser,
+ /obj/item/weapon/gun/energy/gun/advtaser,
+ /obj/item/weapon/gun/energy/gun/advtaser)
cost = 15
containername = "stun gun crate"
@@ -705,6 +705,15 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
cost = 10
containername = "food crate"
+/datum/supply_packs/organic/pizza
+ name = "Pizza Crate"
+ contains = list(/obj/item/pizzabox/margherita,
+ /obj/item/pizzabox/mushroom,
+ /obj/item/pizzabox/meat,
+ /obj/item/pizzabox/vegetable)
+ cost = 60
+ containername = "Pizza crate"
+
/datum/supply_packs/organic/monkey
name = "Monkey Crate"
contains = list (/obj/item/weapon/storage/box/monkeycubes)
diff --git a/code/datums/wires/autolathe.dm b/code/datums/wires/autolathe.dm
index ccfa7f10221..80f5b4ace97 100644
--- a/code/datums/wires/autolathe.dm
+++ b/code/datums/wires/autolathe.dm
@@ -27,7 +27,7 @@ var/const/AUTOLATHE_DISABLE_WIRE = 4
var/obj/machinery/autolathe/A = holder
switch(index)
if(AUTOLATHE_HACK_WIRE)
- A.hacked = !mended
+ A.adjust_hacked(!mended)
if(AUTOLATHE_SHOCK_WIRE)
A.shocked = !mended
if(AUTOLATHE_DISABLE_WIRE)
@@ -39,10 +39,10 @@ var/const/AUTOLATHE_DISABLE_WIRE = 4
var/obj/machinery/autolathe/A = holder
switch(index)
if(AUTOLATHE_HACK_WIRE)
- A.hacked = !A.hacked
+ A.adjust_hacked(!A.hacked)
spawn(50)
if(A && !IsIndexCut(index))
- A.hacked = 0
+ A.adjust_hacked(0)
Interact(usr)
if(AUTOLATHE_SHOCK_WIRE)
A.shocked = !A.shocked
diff --git a/code/game/asteroid.dm b/code/game/asteroid.dm
index 904399457ea..50f2dcd8336 100644
--- a/code/game/asteroid.dm
+++ b/code/game/asteroid.dm
@@ -88,7 +88,7 @@ proc/make_mining_asteroid_secret()
theme = "cavein"
walltypes = list(/turf/simulated/mineral/random/high_chance=1)
floortypes = list(/turf/simulated/floor/plating/asteroid/airless, /turf/simulated/floor/beach/sand)
- treasureitems = list(/obj/mecha/working/ripley/mining=1, /obj/item/weapon/pickaxe/diamonddrill=2,/obj/item/weapon/gun/energy/kinetic_accelerator=1,
+ treasureitems = list(/obj/mecha/working/ripley/mining=1, /obj/item/weapon/pickaxe/drill/diamonddrill=2,/obj/item/weapon/gun/energy/kinetic_accelerator=1,
/obj/item/weapon/resonator=1, /obj/item/weapon/pickaxe/jackhammer=5)
fluffitems = list(/obj/effect/decal/cleanable/blood=3,/obj/effect/decal/remains/human=1,/obj/item/clothing/under/overalls=1,
/obj/item/weapon/reagent_containers/food/snacks/grown/chili=1,/obj/item/weapon/tank/oxygen/red=2)
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index b1ae4c99fd7..f0443ee1683 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -395,4 +395,7 @@ var/list/blood_splatter_icons = list()
return
/atom/proc/emag_act()
- return
+ return
+
+/atom/proc/narsie_act()
+ return
\ No newline at end of file
diff --git a/code/game/gamemodes/changeling/powers/absorb.dm b/code/game/gamemodes/changeling/powers/absorb.dm
index 2ee15c20d73..081db162a22 100644
--- a/code/game/gamemodes/changeling/powers/absorb.dm
+++ b/code/game/gamemodes/changeling/powers/absorb.dm
@@ -59,7 +59,8 @@
if(!changeling.has_dna(target.dna))
changeling.absorb_dna(target, user)
- if(user.nutrition < 400) user.nutrition = min((user.nutrition + target.nutrition), 400)
+ if(user.nutrition < NUTRITION_LEVEL_WELL_FED)
+ user.nutrition = min((user.nutrition + target.nutrition), NUTRITION_LEVEL_WELL_FED)
if(target.mind)//if the victim has got a mind
diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm
index c4eede9feff..d4bfb508b61 100644
--- a/code/game/gamemodes/cult/runes.dm
+++ b/code/game/gamemodes/cult/runes.dm
@@ -167,7 +167,7 @@ var/list/sacrificed = list()
M.reagents.add_reagent("hell_water", 10)
M << "YOUR SOUL BURNS WITH YOUR ARROGANCE!!!"
return
- var/narsie_type = /obj/machinery/singularity/narsie/large
+ var/narsie_type = /obj/singularity/narsie/large
// Moves narsie if she was already summoned.
var/obj/her = locate(narsie_type, machines)
if(her)
diff --git a/code/game/gamemodes/nuclear/pinpointer.dm b/code/game/gamemodes/nuclear/pinpointer.dm
index 16d32663163..84f5828ea77 100644
--- a/code/game/gamemodes/nuclear/pinpointer.dm
+++ b/code/game/gamemodes/nuclear/pinpointer.dm
@@ -23,7 +23,11 @@
icon_state = "pinoff"
usr << "You deactivate the pinpointer."
-/obj/item/weapon/pinpointer/proc/point_at(atom/target)
+/obj/item/weapon/pinpointer/proc/scandisk()
+ if(!the_disk)
+ the_disk = locate()
+
+/obj/item/weapon/pinpointer/proc/point_at(atom/target, spawnself = 1)
if(!active)
return
if(!target)
@@ -46,13 +50,15 @@
icon_state = "pinonmedium"
if(16 to INFINITY)
icon_state = "pinonfar"
- spawn(5)
- .()
+ if(spawnself)
+ spawn(5)
+ .()
/obj/item/weapon/pinpointer/proc/workdisk()
- if(!the_disk)
- the_disk = locate()
- point_at(the_disk)
+ scandisk()
+ point_at(the_disk, 0)
+ spawn(5)
+ .()
/obj/item/weapon/pinpointer/examine(mob/user)
..()
@@ -183,14 +189,10 @@
playsound(loc, 'sound/machines/twobeep.ogg', 50, 1) //Plays a beep
visible_message("Shuttle Locator active.") //Lets the mob holding it know that the mode has changed
return //Get outta here
+ scandisk()
if(!the_disk)
- the_disk = locate()
- if(!the_disk)
- icon_state = "pinonnull"
- return
-// if(loc.z != the_disk.z) //If you are on a different z-level from the disk
-// icon_state = "pinonnull"
-// else
+ icon_state = "pinonnull"
+ return
dir = get_dir(src, the_disk)
switch(get_dist(src, the_disk))
if(0)
diff --git a/code/game/gamemodes/objective_items.dm b/code/game/gamemodes/objective_items.dm
index 0390064db5c..f854536cfc4 100644
--- a/code/game/gamemodes/objective_items.dm
+++ b/code/game/gamemodes/objective_items.dm
@@ -162,7 +162,7 @@ datum/objective_item/special/aegun
datum/objective_item/special/ddrill
name = "a diamond drill"
- targetitem = /obj/item/weapon/pickaxe/diamonddrill
+ targetitem = /obj/item/weapon/pickaxe/drill/diamonddrill
difficulty = 10
datum/objective_item/special/boh
diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm
index 5742e126301..ce62a41a371 100644
--- a/code/game/gamemodes/wizard/artefact.dm
+++ b/code/game/gamemodes/wizard/artefact.dm
@@ -26,7 +26,7 @@
/obj/effect/rend/New()
spawn(50)
- new /obj/machinery/singularity/narsie/wizard(get_turf(src))
+ new /obj/singularity/narsie/wizard(get_turf(src))
qdel(src)
return
return
diff --git a/code/game/gamemodes/wizard/rightandwrong.dm b/code/game/gamemodes/wizard/rightandwrong.dm
index 75a07818aa2..d081df78794 100644
--- a/code/game/gamemodes/wizard/rightandwrong.dm
+++ b/code/game/gamemodes/wizard/rightandwrong.dm
@@ -31,7 +31,7 @@
if(!summon_type)
switch (randomizeguns)
if("taser")
- new /obj/item/weapon/gun/energy/taser(get_turf(H))
+ new /obj/item/weapon/gun/energy/gun/advtaser(get_turf(H))
if("egun")
new /obj/item/weapon/gun/energy/gun(get_turf(H))
if("laser")
@@ -45,7 +45,7 @@
if("nuclear")
new /obj/item/weapon/gun/energy/gun/nuclear(get_turf(H))
if("deagle")
- new /obj/item/weapon/gun/projectile/automatic/deagle/camo(get_turf(H))
+ new /obj/item/weapon/gun/projectile/automatic/pistol/deagle/camo(get_turf(H))
if("gyrojet")
new /obj/item/weapon/gun/projectile/automatic/gyropistol(get_turf(H))
if("pulse")
@@ -62,7 +62,7 @@
if("combatshotgun")
new /obj/item/weapon/gun/projectile/shotgun/combat(get_turf(H))
if("bulldog")
- new /obj/item/weapon/gun/projectile/automatic/bulldog(get_turf(H))
+ new /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog(get_turf(H))
if("mateba")
new /obj/item/weapon/gun/projectile/revolver/mateba(get_turf(H))
if("sabr")
diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm
index cd7cb743573..fdd010fd10f 100644
--- a/code/game/jobs/access.dm
+++ b/code/game/jobs/access.dm
@@ -402,7 +402,7 @@
return "Code Gold"
/proc/get_all_jobs()
- return list("Assistant", "Captain", "Head of Personnel", "Bartender", "Chef", "Botanist", "Quartermaster", "Cargo Technician",
+ return list("Assistant", "Captain", "Head of Personnel", "Bartender", "Cook", "Botanist", "Quartermaster", "Cargo Technician",
"Shaft Miner", "Clown", "Mime", "Janitor", "Librarian", "Lawyer", "Chaplain", "Chief Engineer", "Station Engineer",
"Atmospheric Technician", "Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Virologist",
"Research Director", "Scientist", "Roboticist", "Head of Security", "Warden", "Detective", "Security Officer")
diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm
index c476753d82b..2c5791a9ff0 100644
--- a/code/game/jobs/job/civilian.dm
+++ b/code/game/jobs/job/civilian.dm
@@ -40,7 +40,7 @@ Bartender
/datum/job/bartender/equip_items(var/mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(H), slot_shoes)
- H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(H), slot_wear_suit)
+ H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/alt(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/bartender(H), slot_w_uniform)
if(H.backbag != 1)
@@ -50,26 +50,26 @@ Bartender
H.equip_to_slot_or_del(new /obj/item/ammo_casing/shotgun/beanbag(H), slot_in_backpack)
/*
-Chef
+Cook
*/
-/datum/job/chef
- title = "Chef"
- flag = CHEF
+/datum/job/cook
+ title = "Cook"
+ flag = COOK
department_head = list("Head of Personnel")
department_flag = CIVILIAN
faction = "Station"
- total_positions = 1
+ total_positions = 2
spawn_positions = 1
supervisors = "the head of personnel"
selection_color = "#dddddd"
- default_pda = /obj/item/device/pda/chef
+ default_pda = /obj/item/device/pda/cook
default_headset = /obj/item/device/radio/headset/headset_srv
access = list(access_hydroponics, access_bar, access_kitchen, access_morgue)
minimal_access = list(access_kitchen, access_morgue)
-/datum/job/chef/equip_items(var/mob/living/carbon/human/H)
+/datum/job/cook/equip_items(var/mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chef(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/chef(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(H), slot_shoes)
@@ -283,7 +283,7 @@ Janitor
department_head = list("Head of Personnel")
department_flag = CIVILIAN
faction = "Station"
- total_positions = 1
+ total_positions = 2
spawn_positions = 1
supervisors = "the head of personnel"
selection_color = "#dddddd"
diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm
index 4610ea3bafe..3a1912542cd 100644
--- a/code/game/jobs/job/security.dm
+++ b/code/game/jobs/job/security.dm
@@ -38,9 +38,9 @@ Head of Security
/datum/job/hos/equip_items(var/mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/head_of_security(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes)
- H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/hos(H), slot_wear_suit)
+ H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/hos/trenchcoat(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
- H.equip_to_slot_or_del(new /obj/item/clothing/head/HoS(H), slot_head)
+ H.equip_to_slot_or_del(new /obj/item/clothing/head/HoS/beret(H), slot_head)
H.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/security/sunglasses(H), slot_glasses)
H.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(H), slot_s_store)
@@ -86,6 +86,7 @@ Warden
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
H.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/security/sunglasses(H), slot_glasses)
H.equip_to_slot_or_del(new /obj/item/device/flash/handheld(H), slot_l_store)
+ H.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun/advtaser(H), slot_s_store)
if(H.backbag == 1)
H.equip_to_slot_or_del(new /obj/item/weapon/restraints/handcuffs(H), slot_l_hand)
@@ -164,7 +165,7 @@ Security Officer
var/list/dep_access = null
default_pda = /obj/item/device/pda/security
- default_headset = /obj/item/device/radio/headset/headset_sec
+ default_headset = /obj/item/device/radio/headset/headset_sec/alt
default_backpack = /obj/item/weapon/storage/backpack/security
default_satchel = /obj/item/weapon/storage/backpack/satchel_sec
@@ -176,9 +177,9 @@ Security Officer
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(H), slot_wear_suit)
- H.equip_to_slot_or_del(new /obj/item/clothing/head/helmet(H), slot_head)
+ H.equip_to_slot_or_del(new /obj/item/clothing/head/beret/sec(H), slot_head)
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
- H.equip_to_slot_or_del(new /obj/item/weapon/restraints/handcuffs(H), slot_s_store)
+ H.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun/advtaser(H), slot_s_store)
H.equip_to_slot_or_del(new /obj/item/device/flash/handheld(H), slot_l_store)
if(H.backbag == 1)
@@ -213,22 +214,22 @@ var/list/sec_departments = list("engineering", "supply", "medical", "science")
var/obj/item/clothing/under/U = new /obj/item/clothing/under/rank/security(H)
switch(department)
if("supply")
- default_headset = /obj/item/device/radio/headset/headset_sec/department/supply
+ default_headset = /obj/item/device/radio/headset/headset_sec/alt/department/supply
dep_access = list(access_mailsorting, access_mining)
destination = /area/security/checkpoint/supply
U.attachTie(new /obj/item/clothing/tie/armband/cargo())
if("engineering")
- default_headset = /obj/item/device/radio/headset/headset_sec/department/engi
+ default_headset = /obj/item/device/radio/headset/headset_sec/alt/department/engi
dep_access = list(access_construction, access_engine)
destination = /area/security/checkpoint/engineering
U.attachTie(new /obj/item/clothing/tie/armband/engine())
if("medical")
- default_headset = /obj/item/device/radio/headset/headset_sec/department/med
+ default_headset = /obj/item/device/radio/headset/headset_sec/alt/department/med
dep_access = list(access_medical)
destination = /area/security/checkpoint/medical
U.attachTie(new /obj/item/clothing/tie/armband/medblue())
if("science")
- default_headset = /obj/item/device/radio/headset/headset_sec/department/sci
+ default_headset = /obj/item/device/radio/headset/headset_sec/alt/department/sci
dep_access = list(access_research)
destination = /area/security/checkpoint/science
U.attachTie(new /obj/item/clothing/tie/armband/science())
@@ -258,18 +259,18 @@ var/list/sec_departments = list("engineering", "supply", "medical", "science")
initialize()
recalculateChannels()
-/obj/item/device/radio/headset/headset_sec/department/engi
+/obj/item/device/radio/headset/headset_sec/alt/department/engi
keyslot = new /obj/item/device/encryptionkey/headset_sec
keyslot2 = new /obj/item/device/encryptionkey/headset_eng
-/obj/item/device/radio/headset/headset_sec/department/supply
+/obj/item/device/radio/headset/headset_sec/alt/department/supply
keyslot = new /obj/item/device/encryptionkey/headset_sec
keyslot2 = new /obj/item/device/encryptionkey/headset_cargo
-/obj/item/device/radio/headset/headset_sec/department/med
+/obj/item/device/radio/headset/headset_sec/alt/department/med
keyslot = new /obj/item/device/encryptionkey/headset_sec
keyslot2 = new /obj/item/device/encryptionkey/headset_med
-/obj/item/device/radio/headset/headset_sec/department/sci
+/obj/item/device/radio/headset/headset_sec/alt/department/sci
keyslot = new /obj/item/device/encryptionkey/headset_sec
keyslot2 = new /obj/item/device/encryptionkey/headset_sci
diff --git a/code/game/jobs/jobs.dm b/code/game/jobs/jobs.dm
index 14bf5181d8f..4b185dfd7fc 100644
--- a/code/game/jobs/jobs.dm
+++ b/code/game/jobs/jobs.dm
@@ -30,7 +30,7 @@ var/const/CIVILIAN =(1<<2)
var/const/HOP =(1<<0)
var/const/BARTENDER =(1<<1)
var/const/BOTANIST =(1<<2)
-var/const/CHEF =(1<<3)
+var/const/COOK =(1<<3)
var/const/JANITOR =(1<<4)
var/const/LIBRARIAN =(1<<5)
var/const/QUARTERMASTER =(1<<6)
@@ -90,7 +90,7 @@ var/list/civilian_positions = list(
"Head of Personnel",
"Bartender",
"Botanist",
- "Chef",
+ "Cook",
"Janitor",
"Librarian",
"Quartermaster",
diff --git a/code/game/machinery/Freezer.dm b/code/game/machinery/Freezer.dm
index f8974fd36c8..78a56a386f0 100644
--- a/code/game/machinery/Freezer.dm
+++ b/code/game/machinery/Freezer.dm
@@ -21,6 +21,9 @@
component_parts += new /obj/item/stack/cable_coil(null, 1)
RefreshParts()
+/obj/machinery/atmospherics/unary/cold_sink/freezer/construction()
+ ..(dir,dir)
+
/obj/machinery/atmospherics/unary/cold_sink/freezer/RefreshParts()
var/H
var/T
@@ -141,6 +144,9 @@
component_parts += new /obj/item/stack/cable_coil(null, 1)
RefreshParts()
+/obj/machinery/atmospherics/unary/heat_reservoir/heater/construction()
+ ..(dir,dir)
+
/obj/machinery/atmospherics/unary/heat_reservoir/heater/RefreshParts()
var/H
var/T
@@ -204,7 +210,7 @@
//user << browse(dat, "window=freezer;size=400x500")
//onclose(user, "freezer")
- var/datum/browser/popup = new(user, "freezer", "Cryo Gas Cooling System", 400, 240) // Set up the popup browser window
+ var/datum/browser/popup = new(user, "freezer", "Cryo Gas Heating System", 400, 240) // Set up the popup browser window
popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
popup.set_content(dat)
popup.open()
diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm
index 7e787e9e0b4..a097f9090ab 100644
--- a/code/game/machinery/atmoalter/canister.dm
+++ b/code/game/machinery/atmoalter/canister.dm
@@ -228,7 +228,7 @@ update_flag
/obj/machinery/portable_atmospherics/canister/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
if(!istype(W, /obj/item/weapon/wrench) && !istype(W, /obj/item/weapon/tank) && !istype(W, /obj/item/device/analyzer) && !istype(W, /obj/item/device/pda))
- visible_message("[user] hits the [src] with a [W]!")
+ visible_message("[user] hits \the [src] with a [W]!")
src.health -= W.force
src.add_fingerprint(user)
healthcheck()
diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm
index ca428f7c6c2..b94220d792b 100644
--- a/code/game/machinery/autolathe.dm
+++ b/code/game/machinery/autolathe.dm
@@ -1,74 +1,3 @@
-//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
-
-var/global/list/autolathe_recipes = list( \
- /* screwdriver removed*/ \
- new /obj/item/weapon/reagent_containers/glass/bucket(), \
- new /obj/item/weapon/crowbar(), \
- new /obj/item/device/flashlight(), \
- new /obj/item/weapon/extinguisher(), \
- new /obj/item/device/multitool(), \
- new /obj/item/device/analyzer(), \
- new /obj/item/device/t_scanner(), \
- new /obj/item/weapon/weldingtool(), \
- new /obj/item/weapon/screwdriver(), \
- new /obj/item/weapon/wirecutters(), \
- new /obj/item/weapon/wrench(), \
- new /obj/item/clothing/head/welding(), \
- new /obj/item/weapon/stock_parts/console_screen(), \
- new /obj/item/weapon/airlock_electronics(), \
- new /obj/item/weapon/airalarm_electronics(), \
- new /obj/item/weapon/firealarm_electronics(), \
- new /obj/item/device/pipe_painter(), \
- new /obj/item/stack/sheet/metal(), \
- new /obj/item/stack/sheet/glass(), \
- new /obj/item/stack/sheet/rglass(), \
- new /obj/item/stack/rods(), \
- new /obj/item/weapon/rcd_ammo(), \
- new /obj/item/weapon/kitchenknife(), \
- new /obj/item/weapon/scalpel(), \
- new /obj/item/weapon/circular_saw(), \
- new /obj/item/weapon/surgicaldrill(),\
- new /obj/item/weapon/retractor(),\
- new /obj/item/weapon/cautery(),\
- new /obj/item/weapon/hemostat(),\
- new /obj/item/weapon/reagent_containers/glass/beaker(), \
- new /obj/item/weapon/reagent_containers/glass/beaker/large(), \
- new /obj/item/ammo_casing/shotgun/beanbag(), \
- new /obj/item/ammo_box/c38(), \
- new /obj/item/device/taperecorder/empty(), \
- new /obj/item/device/tape(), \
- new /obj/item/device/assembly/igniter(), \
- new /obj/item/device/assembly/signaler(), \
- new /obj/item/device/radio/headset(), \
- new /obj/item/device/radio/off(), \
- new /obj/item/device/assembly/infra(), \
- new /obj/item/device/assembly/timer(), \
- new /obj/item/device/assembly/voice(), \
- new /obj/item/weapon/light/tube(), \
- new /obj/item/weapon/light/bulb(), \
- new /obj/item/weapon/camera_assembly(), \
- new /obj/item/newscaster_frame(), \
- new /obj/item/weapon/reagent_containers/syringe(), \
- new /obj/item/device/assembly/prox_sensor(), \
- )
-
-var/global/list/autolathe_recipes_hidden = list( \
- new /obj/item/weapon/flamethrower/full(), \
- new /obj/item/weapon/rcd(), \
- new /obj/item/device/electropack(), \
- new /obj/item/weapon/weldingtool/largetank(), \
- new /obj/item/weapon/restraints/handcuffs(), \
- new /obj/item/ammo_box/a357(), \
- new /obj/item/ammo_box/c10mm(), \
- new /obj/item/ammo_box/c45(), \
- new /obj/item/ammo_box/c9mm(), \
- new /obj/item/ammo_casing/shotgun(), \
- new /obj/item/ammo_casing/shotgun/buckshot(), \
- new /obj/item/ammo_casing/shotgun/dart(), \
- new /obj/item/ammo_casing/shotgun/incendiary(), \
- /* new /obj/item/weapon/shield/riot(), */ \
- )
-
/obj/machinery/autolathe
name = "autolathe"
desc = "It produces items using metal and glass."
@@ -98,6 +27,21 @@ var/global/list/autolathe_recipes_hidden = list( \
var/prod_coeff
var/datum/wires/autolathe/wires = null
+ var/datum/design/being_built
+ var/datum/research/files
+ var/selected_category
+ var/screen = 1
+
+ var/list/categories = list(
+ "Tools",
+ "Electronics",
+ "Construction",
+ "T-Comm",
+ "Security",
+ "Medical",
+ "Misc"
+ )
+
/obj/machinery/autolathe/New()
..()
component_parts = list()
@@ -110,13 +54,30 @@ var/global/list/autolathe_recipes_hidden = list( \
RefreshParts()
wires = new(src)
- src.L = autolathe_recipes
- src.LL = autolathe_recipes_hidden
+ files = new /datum/research/autolathe(src)
/obj/machinery/autolathe/interact(mob/user)
+ if(!is_operational())
+ return
+
if(shocked && !(stat & NOPOWER))
shock(user,50)
- regular_win(user)
+
+ var/dat
+
+ if(panel_open)
+ dat = wires.GetInteractWindow()
+
+ else
+ if(screen == 1)
+ dat = main_win(user)
+ else
+ dat += category_win(user,selected_category)
+
+ var/datum/browser/popup = new(user, "autolathe", name, 400, 500)
+ popup.set_content(dat)
+ popup.open()
+
return
/obj/machinery/autolathe/attackby(obj/item/O, mob/user)
@@ -198,73 +159,68 @@ var/global/list/autolathe_recipes_hidden = list( \
if(..())
return
if (!busy)
+ if(href_list["menu"])
+ screen = text2num(href_list["menu"])
+
+ if(href_list["category"])
+ selected_category = href_list["category"]
+
if(href_list["make"])
- var/coeff = 2 ** prod_coeff
+
var/turf/T = get_step(src.loc, get_dir(src,usr))
- // critical exploit fix start -walter0o
- var/obj/item/template = null
- var/attempting_to_build = locate(href_list["make"])
-
- if(!attempting_to_build)
+ /////////////////
+ //href protection
+ being_built = files.FindDesignByID(href_list["make"]) //check if it's a valid design
+ if(!being_built)
return
- if(locate(attempting_to_build, src.L) || locate(attempting_to_build, src.LL)) // see if the requested object is in one of the construction lists, if so, it is legit -walter0o
- template = attempting_to_build
-
- else // somebody is trying to exploit, alert admins -walter0o
-
- var/turf/LOC = get_turf(usr)
- message_admins("[key_name_admin(usr)] tried to exploit an autolathe to duplicate [attempting_to_build] ! ([LOC ? "JMP" : "null"])", 0)
- log_admin("EXPLOIT : [key_name(usr)] tried to exploit an autolathe to duplicate [attempting_to_build] !")
- return
-
- // now check for legit multiplier, also only stacks should pass with one to prevent raw-materials-manipulation -walter0o
-
+ //multiplier checks : only stacks can have one and its value is 1, 10 ,25 or max_multiplier
var/multiplier = text2num(href_list["multiplier"])
+ var/max_multiplier = min(50, being_built.materials["$metal"] ?round(m_amount/being_built.materials["$metal"]):INFINITY,being_built.materials["$glass"]?round(g_amount/being_built.materials["$glass"]):INFINITY)
+ var/is_stack = ispath(being_built.build_path, /obj/item/stack)
- if (!multiplier) multiplier = 1
- var/max_multiplier = 1
-
- if(istype(template, /obj/item/stack)) // stacks are the only items which can have a multiplier higher than 1 -walter0o
- var/obj/item/stack/S = template
- max_multiplier = min(S.max_amount, S.m_amt?round(m_amount/S.m_amt):INFINITY, S.g_amt?round(g_amount/S.g_amt):INFINITY) // pasta from regular_win() to make sure the numbers match -walter0o
-
- if( (multiplier > max_multiplier) || (multiplier <= 0) ) // somebody is trying to exploit, alert admins-walter0o
-
- var/turf/LOC = get_turf(usr)
- message_admins("[key_name_admin(usr)] tried to exploit an autolathe with multiplier set to [multiplier] on [template] ! ([LOC ? "JMP" : "null"])" , 0)
- log_admin("EXPLOIT : [key_name(usr)] tried to exploit an autolathe with multiplier set to [multiplier] on [template] !")
+ if(!is_stack && (multiplier > 1))
return
+ if (!(multiplier in list(1,10,25,max_multiplier))) //"enough materials ?" is checked further down
+ return
+ /////////////////
- var/power = max(2000, (template.m_amt+template.g_amt)*multiplier/5)
- if(src.m_amount >= template.m_amt*multiplier/coeff && src.g_amount >= template.g_amt*multiplier/coeff)
+ var/coeff = (is_stack ? 1 : 2 ** prod_coeff) //stacks are unaffected by production coefficient
+ var/metal_cost = being_built.materials["$metal"]
+ var/glass_cost = being_built.materials["$glass"]
+
+ var/power = max(2000, (metal_cost+glass_cost)*multiplier/5)
+
+ if((m_amount >= metal_cost*multiplier/coeff) && (g_amount >= glass_cost*multiplier/coeff))
busy = 1
use_power(power)
icon_state = "autolathe"
flick("autolathe_n",src)
spawn(32/coeff)
use_power(power)
- if(istype(template, /obj/item/stack))
- src.m_amount -= template.m_amt*multiplier
- src.g_amount -= template.g_amt*multiplier
- var/obj/item/new_item = new template.type(T)
- var/obj/item/stack/S = new_item
+ if(is_stack)
+ m_amount -= metal_cost*multiplier
+ g_amount -= glass_cost*multiplier
+ var/obj/item/stack/S = new being_built.build_path(T)
S.amount = multiplier
else
- src.m_amount -= template.m_amt/coeff
- src.g_amount -= template.g_amt/coeff
- var/obj/item/new_item = new template.type(T)
+ m_amount -= metal_cost/coeff
+ g_amount -= glass_cost/coeff
+ var/obj/item/new_item = new being_built.build_path(T)
new_item.m_amt /= coeff
new_item.g_amt /= coeff
- if(src.m_amount < 0)
- src.m_amount = 0
- if(src.g_amount < 0)
- src.g_amount = 0
+ if(m_amount < 0)
+ m_amount = 0
+ if(g_amount < 0)
+ g_amount = 0
busy = 0
+ src.updateUsrDialog()
else
usr << "The autolathe is busy. Please wait for completion of previous operation."
+
src.updateUsrDialog()
+
return
/obj/machinery/autolathe/RefreshParts()
@@ -278,45 +234,71 @@ var/global/list/autolathe_recipes_hidden = list( \
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
prod_coeff += M.rating - 1
-/obj/machinery/autolathe/proc/regular_win(mob/user)
+/obj/machinery/autolathe/proc/main_win(mob/user)
+ var/dat = "Autolathe Menu:
"
+ dat += "
Metal amount: [src.m_amount] / [max_m_amount] cm
3"
+ dat += "
Glass amount: [src.g_amount] / [max_g_amount] cm
3
"
+
+ var/line_length = 1
+ dat += "
"
+
+ for(var/C in categories)
+ if(line_length > 2)
+ dat += "
"
+ line_length = 1
+
+ dat += "| [C] | "
+ line_length++
+
+ dat += "
"
+ return dat
+
+/obj/machinery/autolathe/proc/category_win(mob/user,var/selected_category)
+ var/dat = "Return to category screen"
+ dat += "Browsing [selected_category]:
"
+ dat += "
Metal amount: [src.m_amount] / [max_m_amount] cm
3"
+ dat += "
Glass amount: [src.g_amount] / [max_g_amount] cm
3
"
+
+ for(var/datum/design/D in files.known_designs)
+ if(!(selected_category in D.category))
+ continue
+
+ if(disabled || !can_build(D))
+ dat += "
[D.name]"
+ else
+ dat += "
[D.name]"
+
+ if(ispath(D.build_path, /obj/item/stack))
+ var/max_multiplier = min(50, D.materials["$metal"] ?round(m_amount/D.materials["$metal"]):INFINITY,D.materials["$glass"]?round(g_amount/D.materials["$glass"]):INFINITY)
+ if (max_multiplier>10 && !disabled)
+ dat += "
x10"
+ if (max_multiplier>25 && !disabled)
+ dat += "
x25"
+ if(max_multiplier > 0 && !disabled)
+ dat += "
x[max_multiplier]"
+
+ dat += "[get_design_cost(D)]
"
+
+ dat += "
"
+ return dat
+
+/obj/machinery/autolathe/proc/can_build(var/datum/design/D)
+ var/coeff = (ispath(D.build_path,/obj/item/stack) ? 1 : 2 ** prod_coeff)
+
+ if(D.materials["$metal"] && (m_amount < (D.materials["$metal"] / coeff)))
+ return 0
+ if(D.materials["$glass"] && (g_amount < (D.materials["$glass"] / coeff)))
+ return 0
+ return 1
+
+/obj/machinery/autolathe/proc/get_design_cost(var/datum/design/D)
+ var/coeff = (ispath(D.build_path,/obj/item/stack) ? 1 : 2 ** prod_coeff)
var/dat
- if(!panel_open)
- if(stat)
- return
- var/coeff = 2 ** prod_coeff
- dat = "Metal amount: [src.m_amount] / [max_m_amount] cm
3"
- dat += "
Glass amount: [src.g_amount] / [max_g_amount] cm
3
"
- var/list/objs = list()
- objs += src.L
- if(src.hacked)
- objs += src.LL
- for(var/obj/item/t in objs)
- if(disabled || m_amount
[t]", "The ", "")
- else
- dat += replacetext("[t]", "The ", "")
-
- if(istype(t, /obj/item/stack))
- var/obj/item/stack/S = t
- var/max_multiplier = min(S.max_amount, S.m_amt?round(m_amount/S.m_amt):INFINITY, S.g_amt?round(g_amount/S.g_amt):INFINITY)
- if (max_multiplier>10 && !disabled)
- dat += " x[10]"
- if (max_multiplier>25 && !disabled)
- dat += " x[25]"
- if (max_multiplier>1 && !disabled)
- dat += " x[max_multiplier]"
- dat += " [t.m_amt] m / [t.g_amt] g"
- else
- dat += " [t.m_amt/coeff] m / [t.g_amt/coeff] g"
- dat += "
"
- dat += ""
- else
- dat = wires.GetInteractWindow()
-
- var/datum/browser/popup = new(user, "autolathe", name, 400, 500)
- popup.set_content(dat)
- popup.open()
- return
+ if(D.materials["$metal"])
+ dat += "[D.materials["$metal"] / coeff] metal "
+ if(D.materials["$glass"])
+ dat += "[D.materials["$glass"] / coeff] glass"
+ return dat
/obj/machinery/autolathe/proc/shock(mob/user, prb)
if(stat & (BROKEN|NOPOWER)) // unpowered, no shock
@@ -330,3 +312,15 @@ var/global/list/autolathe_recipes_hidden = list( \
return 1
else
return 0
+
+/obj/machinery/autolathe/proc/adjust_hacked(var/hack)
+ hacked = hack
+
+ if(hack)
+ for(var/datum/design/D in files.possible_designs)
+ if((D.build_type & 4) && ("hacked" in D.category))
+ files.known_designs += D
+ else
+ for(var/datum/design/D in files.known_designs)
+ if("hacked" in D.category)
+ files.known_designs -= D
diff --git a/code/game/machinery/bots/cleanbot.dm b/code/game/machinery/bots/cleanbot.dm
index ef1fcd654cf..45c7aad316d 100644
--- a/code/game/machinery/bots/cleanbot.dm
+++ b/code/game/machinery/bots/cleanbot.dm
@@ -117,16 +117,16 @@ text("[on ? "On" : "Off"]"))
/obj/machinery/bot/cleanbot/attackby(obj/item/weapon/W, mob/user as mob)
if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
- if(allowed(usr) && !open && !emagged)
+ if(allowed(user) && !open && !emagged)
locked = !locked
- user << "You [ locked ? "lock" : "unlock"] the [src] behaviour controls."
+ user << "You [ locked ? "lock" : "unlock"] \the [src] behaviour controls."
else
if(emagged)
user << "ERROR"
if(open)
user << "Please close the access panel before locking it."
else
- user << "This [src] doesn't seem to respect your authority."
+ user << "\The [src] doesn't seem to respect your authority."
else
return ..()
diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm
index b5de2fb95a7..3c83caa461d 100644
--- a/code/game/machinery/bots/ed209bot.dm
+++ b/code/game/machinery/bots/ed209bot.dm
@@ -418,7 +418,7 @@ Auto Patrol[]"},
new /obj/item/device/assembly/prox_sensor(Tsec)
if(!lasercolor)
- var/obj/item/weapon/gun/energy/taser/G = new /obj/item/weapon/gun/energy/taser(Tsec)
+ var/obj/item/weapon/gun/energy/gun/advtaser/G = new /obj/item/weapon/gun/energy/gun/advtaser(Tsec)
G.power_supply.charge = 0
G.update_icon()
else if(lasercolor == "b")
@@ -645,7 +645,7 @@ Auto Patrol[]"},
return
name = "redtag ED-209 assembly"
if("")
- if(!istype(W, /obj/item/weapon/gun/energy/taser))
+ if(!istype(W, /obj/item/weapon/gun/energy/gun/advtaser))
return
name = "taser ED-209 assembly"
else
diff --git a/code/game/machinery/bots/floorbot.dm b/code/game/machinery/bots/floorbot.dm
index 01d94d68bab..c740b26f02f 100644
--- a/code/game/machinery/bots/floorbot.dm
+++ b/code/game/machinery/bots/floorbot.dm
@@ -343,7 +343,7 @@ obj/machinery/bot/floorbot/process_scan(var/scan_target)
result = F
if(FIX_TILE) //Selects only damaged floors.
F = scan_target
- if(F.broken || F.burnt)
+ if(istype(F) && (F.broken || F.burnt))
result = F
if(TILE_EMAG) //Emag mode! Rip up the floor and cause breaches to space!
F = scan_target
diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm
index 22d472812f9..ca16ad5dbc3 100644
--- a/code/game/machinery/camera/camera.dm
+++ b/code/game/machinery/camera/camera.dm
@@ -269,7 +269,7 @@
/obj/machinery/camera/proc/cancelCameraAlarm()
alarm_on = 0
for(var/mob/living/silicon/S in mob_list)
- S.cancelAlarm("Camera", get_area(src), list(src), src)
+ S.cancelAlarm("Camera", get_area(src), src)
/obj/machinery/camera/proc/can_use()
if(!status)
diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm
index a6e179c1050..cdd9cda8520 100644
--- a/code/game/machinery/camera/camera_assembly.dm
+++ b/code/game/machinery/camera/camera_assembly.dm
@@ -121,7 +121,7 @@
// Upgrades!
if(is_type_in_list(W, possible_upgrades) && !is_type_in_list(W, upgrades)) // Is a possible upgrade and isn't in the camera already.
- user << "You attach the [W] into the assembly inner circuits."
+ user << "You attach \the [W] into the assembly inner circuits."
upgrades += W
user.drop_item()
W.loc = src
@@ -156,7 +156,7 @@
if(!WT.isOn())
return 0
- user << "You start to weld the [src].."
+ user << "You start to weld \the [src].."
playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
WT.eyecheck(user)
busy = 1
diff --git a/code/game/machinery/camera/motion.dm b/code/game/machinery/camera/motion.dm
index e80f0799943..4454d5a89cb 100644
--- a/code/game/machinery/camera/motion.dm
+++ b/code/game/machinery/camera/motion.dm
@@ -42,7 +42,8 @@
/obj/machinery/camera/proc/cancelAlarm()
if (detectTime == -1)
for (var/mob/living/silicon/aiPlayer in player_list)
- if (status) aiPlayer.cancelAlarm("Motion", src.loc.loc)
+ if (status)
+ aiPlayer.cancelAlarm("Motion", get_area(src), src)
detectTime = 0
return 1
diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm
index 5932d7a2420..5badb4c9f9f 100644
--- a/code/game/machinery/computer/HolodeckControl.dm
+++ b/code/game/machinery/computer/HolodeckControl.dm
@@ -437,12 +437,12 @@
return
G.affecting.loc = src.loc
G.affecting.Weaken(5)
- visible_message("[G.assailant] dunks [G.affecting] into the [src]!", 3)
+ visible_message("[G.assailant] dunks [G.affecting] into \the [src]!", 3)
qdel(W)
return
else if (istype(W, /obj/item) && get_dist(src,user)<2)
user.drop_item(src)
- visible_message(" [user] dunks [W] into the [src]!", 3)
+ visible_message(" [user] dunks [W] into \the [src]!", 3)
return
/obj/structure/holohoop/CanPass(atom/movable/mover, turf/target, height=0)
diff --git a/code/game/machinery/computer/ai_core.dm b/code/game/machinery/computer/ai_core.dm
index dbb47efeab8..8cd861754a4 100644
--- a/code/game/machinery/computer/ai_core.dm
+++ b/code/game/machinery/computer/ai_core.dm
@@ -211,207 +211,104 @@ That prevents a few funky behaviors.
*/
//What operation to perform based on target, what ineraction to perform based on object used, target itself, user. The object used is src and calls this proc.
/obj/item/proc/transfer_ai(var/choice as text, var/interaction as text, var/target, var/mob/U as mob)
- if(!src:flush)
- switch(choice)
- if("AICORE")//AI mob.
- var/mob/living/silicon/ai/T = target
- if(!T.mind)
- U << "No intelligence patterns detected." //No more magical carding of empty cores, AI RETURN TO BODY!!!11
- return
- switch(interaction)
- if("AICARD")
- var/obj/item/device/aicard/C = src
- if(C.contents.len)//If there is an AI on card.
- U << "Transfer failed: \black Existing AI found on this terminal. Remove existing AI to install a new one."
+ if(istype(src, /obj/item/device/aicard))
+ var/obj/item/device/aicard/icard = src
+ if(icard.flush)
+ U << "ERROR: AI flush is in progress, cannot execute transfer protocol."
+ return
+
+ switch(choice)
+ if("AICORE")//AI mob.
+ var/mob/living/silicon/ai/T = target
+ if(!T.mind)
+ U << "No intelligence patterns detected." //No more magical carding of empty cores, AI RETURN TO BODY!!!11
+ return
+ switch(interaction)
+ if("AICARD")
+ var/obj/item/device/aicard/C = src
+ if(C.contents.len)//If there is an AI on card.
+ U << "Transfer failed: Existing AI found on this terminal. Remove existing AI to install a new one."
+ else
+ if (ticker.mode.name == "AI malfunction")
+ var/datum/game_mode/malfunction/malf = ticker.mode
+ for (var/datum/mind/malfai in malf.malf_ai)
+ if (T.mind == malfai)
+ U << "ERROR: Remote transfer interface disabled."//Do ho ho ho~
+ return
+ new /obj/structure/AIcore/deactivated(T.loc)//Spawns a deactivated terminal at AI location.
+ T.aiRestorePowerRoutine = 0//So the AI initially has power.
+ T.control_disabled = 1//Can't control things remotely if you're stuck in a card!
+ T.radio_enabled = 0 //No talking on the built-in radio for you either!
+ T.loc = C//Throw AI into the card.
+ C.name = "intelliCard - [T.name]"
+ if (T.stat == 2)
+ C.icon_state = "aicard-404"
else
- if (ticker.mode.name == "AI malfunction")
- var/datum/game_mode/malfunction/malf = ticker.mode
- for (var/datum/mind/malfai in malf.malf_ai)
- if (T.mind == malfai)
- U << "ERROR: \black Remote transfer interface disabled."//Do ho ho ho~
- return
- new /obj/structure/AIcore/deactivated(T.loc)//Spawns a deactivated terminal at AI location.
- T.aiRestorePowerRoutine = 0//So the AI initially has power.
- T.control_disabled = 1//Can't control things remotely if you're stuck in a card!
- T.radio_enabled = 0 //No talking on the built-in radio for you either!
- T.loc = C//Throw AI into the card.
- C.name = "inteliCard - [T.name]"
- if (T.stat == 2)
+ C.icon_state = "aicard-full"
+ T.cancel_camera()
+ T << "You have been downloaded to a mobile storage device. Remote device connection severed."
+ U << "Transfer successful: [T.name] ([rand(1000,9999)].exe) removed from host terminal and stored within local memory."
+
+ if("INACTIVE")//Inactive AI object.
+ var/obj/structure/AIcore/deactivated/T = target
+ switch(interaction)
+ if("AICARD")
+ var/obj/item/device/aicard/C = src
+ var/mob/living/silicon/ai/A = locate() in C//I love locate(). Best proc ever.
+ if(A)//If AI exists on the card. Else nothing since both are empty.
+ A.control_disabled = 0
+ A.radio_enabled = 1
+ A.loc = T.loc//To replace the terminal.
+ C.icon_state = "aicard"
+ C.name = "intelliCard"
+ C.overlays.Cut()
+ A.cancel_camera()
+ A << "You have been uploaded to a stationary terminal. Remote device connection restored."
+ U << "Transfer successful: [A.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed."
+ qdel(T)
+
+ if("AIFIXER")//AI Fixer terminal.
+ var/obj/machinery/computer/aifixer/T = target
+ switch(interaction)
+ if("AICARD")
+ var/obj/item/device/aicard/C = src
+ if(!T.contents.len)
+ if (!C.contents.len)
+ U << "No AI to copy over!"//Well duh
+ else for(var/mob/living/silicon/ai/A in C)
+ C.icon_state = "aicard"
+ C.name = "intelliCard"
+ C.overlays.Cut()
+ A.loc = T
+ T.occupier = A
+ A.control_disabled = 1
+ A.radio_enabled = 0
+ if (A.stat == 2)
+ T.overlays += image('icons/obj/computer.dmi', "ai-fixer-404")
+ else
+ T.overlays += image('icons/obj/computer.dmi', "ai-fixer-full")
+ T.overlays -= image('icons/obj/computer.dmi', "ai-fixer-empty")
+ A.cancel_camera()
+ A << "You have been uploaded to a stationary terminal. Sadly, there is no remote access from here."
+ U << "Transfer successful: [A.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed."
+ else
+ if(!C.contents.len && T.occupier && !T.active)
+ C.name = "intelliCard - [T.occupier.name]"
+ T.overlays += image('icons/obj/computer.dmi', "ai-fixer-empty")
+ if (T.occupier.stat == 2)
C.icon_state = "aicard-404"
+ T.overlays -= image('icons/obj/computer.dmi', "ai-fixer-404")
else
C.icon_state = "aicard-full"
- T.cancel_camera()
- T << "You have been downloaded to a mobile storage device. Remote device connection severed."
- U << "Transfer successful: \black [T.name] ([rand(1000,9999)].exe) removed from host terminal and stored within local memory."
- if("NINJASUIT")
- var/obj/item/clothing/suit/space/space_ninja/C = src
- if(C.AI)//If there is an AI on card.
- U << "Transfer failed: \black Existing AI found on this terminal. Remove existing AI to install a new one."
- else
- if (ticker.mode.name == "AI malfunction")
- var/datum/game_mode/malfunction/malf = ticker.mode
- for (var/datum/mind/malfai in malf.malf_ai)
- if (T.mind == malfai)
- U << "ERROR: \black Remote transfer interface disabled."
- return
- if(T.stat)//If the ai is dead/dying.
- U << "ERROR: \black [T.name] data core is corrupted. Unable to install."
- else
- new /obj/structure/AIcore/deactivated(T.loc)
- T.aiRestorePowerRoutine = 0
- T.control_disabled = 1
- T.radio_enabled = 0
- T.loc = C
- C.AI = T
- T.cancel_camera()
- T << "You have been downloaded to a mobile storage device. Remote device connection severed."
- U << "Transfer successful: \black [T.name] ([rand(1000,9999)].exe) removed from host terminal and stored within local memory."
-
- if("INACTIVE")//Inactive AI object.
- var/obj/structure/AIcore/deactivated/T = target
- switch(interaction)
- if("AICARD")
- var/obj/item/device/aicard/C = src
- var/mob/living/silicon/ai/A = locate() in C//I love locate(). Best proc ever.
- if(A)//If AI exists on the card. Else nothing since both are empty.
- A.control_disabled = 0
- A.radio_enabled = 1
- A.loc = T.loc//To replace the terminal.
- C.icon_state = "aicard"
- C.name = "inteliCard"
- C.overlays.Cut()
- A.cancel_camera()
- A << "You have been uploaded to a stationary terminal. Remote device connection restored."
- U << "Transfer successful: \black [A.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed."
- qdel(T)
- if("NINJASUIT")
- var/obj/item/clothing/suit/space/space_ninja/C = src
- var/mob/living/silicon/ai/A = C.AI
- if(A)
- A.control_disabled = 0
- A.radio_enabled = 1
- C.AI = null
- A.loc = T.loc
- A.cancel_camera()
- A << "You have been uploaded to a stationary terminal. Remote device connection restored."
- U << "Transfer successful: \black [A.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed."
- qdel(T)
- if("AIFIXER")//AI Fixer terminal.
- var/obj/machinery/computer/aifixer/T = target
- switch(interaction)
- if("AICARD")
- var/obj/item/device/aicard/C = src
- if(!T.contents.len)
- if (!C.contents.len)
- U << "No AI to copy over!"//Well duh
- else for(var/mob/living/silicon/ai/A in C)
- C.icon_state = "aicard"
- C.name = "inteliCard"
- C.overlays.Cut()
- A.loc = T
- T.occupier = A
- A.control_disabled = 1
- A.radio_enabled = 0
- if (A.stat == 2)
- T.overlays += image('icons/obj/computer.dmi', "ai-fixer-404")
- else
- T.overlays += image('icons/obj/computer.dmi', "ai-fixer-full")
- T.overlays -= image('icons/obj/computer.dmi', "ai-fixer-empty")
- A.cancel_camera()
- A << "You have been uploaded to a stationary terminal. Sadly, there is no remote access from here."
- U << "Transfer successful: \black [A.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed."
- else
- if(!C.contents.len && T.occupier && !T.active)
- C.name = "inteliCard - [T.occupier.name]"
- T.overlays += image('icons/obj/computer.dmi', "ai-fixer-empty")
- if (T.occupier.stat == 2)
- C.icon_state = "aicard-404"
- T.overlays -= image('icons/obj/computer.dmi', "ai-fixer-404")
- else
- C.icon_state = "aicard-full"
- T.overlays -= image('icons/obj/computer.dmi', "ai-fixer-full")
- T.occupier << "You have been downloaded to a mobile storage device. Still no remote access."
- U << "Transfer successful: \black [T.occupier.name] ([rand(1000,9999)].exe) removed from host terminal and stored within local memory."
- T.occupier.loc = C
- T.occupier.cancel_camera()
- T.occupier = null
- else if (C.contents.len)
- U << "ERROR: \black Artificial intelligence detected on terminal."
- else if (T.active)
- U << "ERROR: \black Reconstruction in progress."
- else if (!T.occupier)
- U << "ERROR: \black Unable to locate artificial intelligence."
- if("NINJASUIT")
- var/obj/item/clothing/suit/space/space_ninja/C = src
- if(!T.contents.len)
- if (!C.AI)
- U << "No AI to copy over!"
- else
- var/mob/living/silicon/ai/A = C.AI
- A.loc = T
- T.occupier = A
- C.AI = null
- A.control_disabled = 1
- A.radio_enabled = 0
- T.overlays += image('icons/obj/computer.dmi', "ai-fixer-full")
- T.overlays -= image('icons/obj/computer.dmi', "ai-fixer-empty")
- A.cancel_camera()
- A << "You have been uploaded to a stationary terminal. Sadly, there is no remote access from here."
- U << "Transfer successful: \black [A.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed."
- else
- if(!C.AI && T.occupier && !T.active)
- if (T.occupier.stat)
- U << "ERROR: \black [T.occupier.name] data core is corrupted. Unable to install."
- else
- T.overlays += image('icons/obj/computer.dmi', "ai-fixer-empty")
- T.overlays -= image('icons/obj/computer.dmi', "ai-fixer-full")
- T.occupier << "You have been downloaded to a mobile storage device. Still no remote access."
- U << "Transfer successful: \black [T.occupier.name] ([rand(1000,9999)].exe) removed from host terminal and stored within local memory."
- T.occupier.loc = C
- T.occupier.cancel_camera()
- T.occupier = null
- else if (C.AI)
- U << "ERROR: \black Artificial intelligence detected on terminal."
- else if (T.active)
- U << "ERROR: \black Reconstruction in progress."
- else if (!T.occupier)
- U << "ERROR: \black Unable to locate artificial intelligence."
- if("NINJASUIT")//Ninjasuit
- var/obj/item/clothing/suit/space/space_ninja/T = target
- switch(interaction)
- if("AICARD")
- var/obj/item/device/aicard/C = src
- if(T.s_initialized&&U==T.affecting)//If the suit is initialized and the actor is the user.
-
- var/mob/living/silicon/ai/A_T = locate() in C//Determine if there is an AI on target card. Saves time when checking later.
- var/mob/living/silicon/ai/A = T.AI//Deterine if there is an AI in suit.
-
- if(A)//If the host AI card is not empty.
- if(A_T)//If there is an AI on the target card.
- U << "ERROR: \black [A_T.name] already installed. Remove [A_T.name] to install a new one."
- else
- A.loc = C//Throw them into the target card. Since they are already on a card, transfer is easy.
- C.name = "inteliCard - [A.name]"
- C.icon_state = "aicard-full"
- T.AI = null
- A.cancel_camera()
- A << "You have been uploaded to a mobile storage device."
- U << "SUCCESS: \black [A.name] ([rand(1000,9999)].exe) removed from host and stored within local memory."
- else//If host AI is empty.
- if(C.flush)//If the other card is flushing.
- U << "ERROR: \black AI flush is in progress, cannot execute transfer protocol."
- else
- if(A_T&&!A_T.stat)//If there is an AI on the target card and it's not inactive.
- A_T.loc = T//Throw them into suit.
- C.icon_state = "aicard"
- C.name = "inteliCard"
- C.overlays.Cut()
- T.AI = A_T
- A_T.cancel_camera()
- A_T << "You have been uploaded to a mobile storage device."
- U << "SUCCESS: \black [A_T.name] ([rand(1000,9999)].exe) removed from local memory and installed to host."
- else if(A_T)//If the target AI is dead. Else just go to return since nothing would happen if both are empty.
- U << "ERROR: \black [A_T.name] data core is corrupted. Unable to install."
- else
- U << "ERROR: \black AI flush is in progress, cannot execute transfer protocol."
- return
\ No newline at end of file
+ T.overlays -= image('icons/obj/computer.dmi', "ai-fixer-full")
+ T.occupier << "You have been downloaded to a mobile storage device. Still no remote access."
+ U << "Transfer successful: [T.occupier.name] ([rand(1000,9999)].exe) removed from host terminal and stored within local memory."
+ T.occupier.loc = C
+ T.occupier.cancel_camera()
+ T.occupier = null
+ else if (C.contents.len)
+ U << "ERROR: Artificial intelligence detected on terminal."
+ else if (T.active)
+ U << "ERROR: Reconstruction in progress."
+ else if (!T.occupier)
+ U << "ERROR: Unable to locate artificial intelligence."
\ No newline at end of file
diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm
index 2b3f208b9fe..44943554a88 100644
--- a/code/game/machinery/computer/aifixer.dm
+++ b/code/game/machinery/computer/aifixer.dm
@@ -1,6 +1,6 @@
/obj/machinery/computer/aifixer
name = "\improper AI system integrity restorer"
- desc = "Used with inteliCards containing nonfunctioning AIs to restore them to working order."
+ desc = "Used with intelliCards containing nonfunctioning AIs to restore them to working order."
icon = 'icons/obj/computer.dmi'
icon_state = "ai-fixer"
req_access = list(access_captain, access_robotics, access_heads)
diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm
index f68c7bf7c36..8486b010252 100644
--- a/code/game/machinery/computer/crew.dm
+++ b/code/game/machinery/computer/crew.dm
@@ -56,7 +56,7 @@ proc/crewmonitor(mob/user,var/atom/source)
jobs["Shaft Miner"] = 52
jobs["Cargo Technician"] = 53
jobs["Bartender"] = 61
- jobs["Chef"] = 62
+ jobs["Cook"] = 62
jobs["Botanist"] = 63
jobs["Librarian"] = 64
jobs["Chaplain"] = 65
@@ -64,7 +64,7 @@ proc/crewmonitor(mob/user,var/atom/source)
jobs["Mime"] = 67
jobs["Janitor"] = 68
jobs["Assistant"] = 99 //Unknowns/custom jobs should appear after civilians, and before assistants
-
+
var/t = "Name | Vitals | Position |
"
var/list/logs = list()
var/list/tracked = crewscan()
@@ -86,15 +86,15 @@ proc/crewmonitor(mob/user,var/atom/source)
var/ijob = jobs[I.assignment]
if(ijob % 10 == 0)
style += "font-weight: bold; " //head roles always end in 0
- if(ijob >= 10 && ijob < 20)
+ if(ijob >= 10 && ijob < 20)
style += "color: #E74C3C; " //security
- if(ijob >= 20 && ijob < 30)
+ if(ijob >= 20 && ijob < 30)
style += "color: #3498DB; " //medical
- if(ijob >= 30 && ijob < 40)
- style += "color: #9B59B6; " //science
- if(ijob >= 40 && ijob < 50)
+ if(ijob >= 30 && ijob < 40)
+ style += "color: #9B59B6; " //science
+ if(ijob >= 40 && ijob < 50)
style += "color: #F1C40F; " //engineering
- if(ijob >= 50 && ijob < 60)
+ if(ijob >= 50 && ijob < 60)
style += "color: #F39C12; " //cargo
log += "[ijob]]| [I.registered_name] ([I.assignment]) | " //ijob does not get displayed, nor does it take up space, it's just used for the positioning of an entry
else
diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm
index d7bde33688d..8441647f791 100644
--- a/code/game/machinery/constructable_frame.dm
+++ b/code/game/machinery/constructable_frame.dm
@@ -130,6 +130,7 @@
if(component_check)
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
var/obj/machinery/new_machine = new src.circuit.build_path(src.loc)
+ new_machine.construction()
for(var/obj/O in new_machine.component_parts)
qdel(O)
new_machine.component_parts = list()
diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm
index eb5faffcafd..24312770103 100644
--- a/code/game/machinery/cryo.dm
+++ b/code/game/machinery/cryo.dm
@@ -18,7 +18,6 @@
/obj/machinery/atmospherics/unary/cryo_cell/New()
..()
initialize_directions = dir
- initialize()
component_parts = list()
component_parts += new /obj/item/weapon/circuitboard/cryo_tube(null)
component_parts += new /obj/item/weapon/stock_parts/matter_bin(null)
@@ -29,6 +28,9 @@
component_parts += new /obj/item/stack/cable_coil(null, 1)
RefreshParts()
+/obj/machinery/atmospherics/unary/cryo_cell/construction()
+ ..(dir,dir)
+
/obj/machinery/atmospherics/unary/cryo_cell/RefreshParts()
var/C
for(var/obj/item/weapon/stock_parts/matter_bin/M in component_parts)
diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm
index e95d705c247..aa6b6139e21 100644
--- a/code/game/machinery/deployable.dm
+++ b/code/game/machinery/deployable.dm
@@ -67,11 +67,11 @@ for reference:
user.changeNext_move(CLICK_CD_MELEE)
if (istype(W, /obj/item/stack/sheet/mineral/wood))
if (src.health < src.maxhealth)
- visible_message("[user] begins to repair the [src]!")
+ visible_message("[user] begins to repair \the [src]!")
if(do_after(user,20))
src.health = src.maxhealth
W:use(1)
- visible_message("[user] repairs the [src]!")
+ visible_message("[user] repairs \the [src]!")
return
else
return
@@ -173,12 +173,12 @@ for reference:
src.health = src.maxhealth
src.emagged = 0
src.req_access = list(access_security)
- visible_message("[user] repairs the [src]!")
+ visible_message("[user] repairs \the [src]!")
return
else if (src.emagged > 0)
src.emagged = 0
src.req_access = list(access_security)
- visible_message("[user] repairs the [src]!")
+ visible_message("[user] repairs \the [src]!")
return
return
else
@@ -196,7 +196,7 @@ for reference:
if (src.emagged == 0)
src.emagged = 1
src.req_access = null
- user << "You break the ID authentication lock on the [src]."
+ user << "You break the ID authentication lock on \the [src]."
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(2, 1, src)
s.start()
@@ -204,7 +204,7 @@ for reference:
return
else if (src.emagged == 1)
src.emagged = 2
- user << "You short out the anchoring mechanism on the [src]."
+ user << "You short out the anchoring mechanism on \the [src]."
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(2, 1, src)
s.start()
diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm
index da3d9d80101..c775105c5b6 100644
--- a/code/game/machinery/doors/firedoor.dm
+++ b/code/game/machinery/doors/firedoor.dm
@@ -36,7 +36,7 @@
var/obj/item/weapon/weldingtool/W = C
if(W.remove_fuel(0, user))
blocked = !blocked
- user << text("You [blocked?"welded":"unwelded"] the [src]")
+ user << text("You [blocked?"welded":"unwelded"] \the [src]")
update_icon()
return
diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm
index 959767107ae..410f092e2a6 100644
--- a/code/game/machinery/igniter.dm
+++ b/code/game/machinery/igniter.dm
@@ -76,10 +76,10 @@
add_fingerprint(user)
src.disable = !src.disable
if (src.disable)
- user.visible_message("[user] has disabled the [src]!", "You disable the connection to the [src].")
+ user.visible_message("[user] has disabled \the [src]!", "You disable the connection to \the [src].")
icon_state = "[base_state]-d"
if (!src.disable)
- user.visible_message("[user] has reconnected the [src]!", "You fix the connection to the [src].")
+ user.visible_message("[user] has reconnected \the [src]!", "You fix the connection to \the [src].")
if(src.powered())
icon_state = "[base_state]"
else
diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm
index 857008e4edf..3f799cc41a8 100644
--- a/code/game/machinery/machinery.dm
+++ b/code/game/machinery/machinery.dm
@@ -242,7 +242,8 @@ Class Procs:
return
//stop AIs from leaving windows open and using then after they lose vision
//apc_override is needed here because AIs use their own APC when powerless
- if(cameranet && !cameranet.checkTurfVis(get_turf(M)) && !apc_override)
+ //the snowflake get_wall_mounted_turf() is because APCs in maint aren't actually in view of the inner camera
+ if(cameranet && !cameranet.checkTurfVis(get_wall_mounted_turf(M)) && !apc_override)
return
return 1
@@ -334,8 +335,8 @@ Class Procs:
/obj/machinery/proc/default_change_direction_wrench(var/mob/user, var/obj/item/weapon/wrench/W)
if(panel_open && istype(W))
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
- dir = pick(WEST,EAST,SOUTH,NORTH)
- user << "You clumsily rotate [src]."
+ dir = turn(dir,-90)
+ user << "You rotate [src]."
return 1
return 0
@@ -381,3 +382,7 @@ Class Procs:
W.play_rped_sound()
return 1
return 0
+
+//called on machinery construction (i.e from frame to machinery) but not on initialization
+/obj/machinery/proc/construction()
+ return
diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm
index f63ea425196..85fc2a42869 100644
--- a/code/game/machinery/newscaster.dm
+++ b/code/game/machinery/newscaster.dm
@@ -517,6 +517,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
return
if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
usr.set_machine(src)
+ scan_user(usr)
if(href_list["set_channel_name"])
src.channel_name = stripped_input(usr, "Provide a Feed Channel Name", "Network Channel Handler", "", MAX_NAME_LEN)
while (findtext(src.channel_name," ") == 1)
@@ -547,6 +548,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
else
var/choice = alert("Please confirm Feed channel creation","Network Channel Handler","Confirm","Cancel")
if(choice=="Confirm")
+ scan_user(usr)
news_network.CreateFeedChannel(src.channel_name, src.scanned_user, c_locked)
feedback_inc("newscaster_channels",1)
src.screen=5
@@ -632,6 +634,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
else
var/choice = alert("Please confirm Wanted Issue [(input_param==1) ? ("creation.") : ("edit.")]","Network Security Handler","Confirm","Cancel")
if(choice=="Confirm")
+ scan_user(usr)
if(input_param==1) //If input_param == 1 we're submitting a new wanted issue. At 2 we're just editing an existing one. See the else below
var/datum/feed_message/WANTED = new /datum/feed_message
WANTED.author = src.channel_name
@@ -752,6 +755,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
var/datum/feed_message/FM = locate(href_list["new_comment"])
var/cominput = copytext(stripped_input(usr, "Write your message:", "New comment", null),1,141)
if(cominput)
+ scan_user(usr)
var/datum/feed_comment/FC = new/datum/feed_comment
FC.author = scanned_user
FC.body = cominput
@@ -1054,9 +1058,11 @@ obj/item/weapon/newspaper/attackby(obj/item/weapon/W as obj, mob/user as mob)
src.scanned_user ="Unknown"
else
src.scanned_user ="Unknown"
- else
+ else if(istype(user,/mob/living/silicon))
var/mob/living/silicon/ai_user = user
src.scanned_user = "[ai_user.name] ([ai_user.job])"
+ else
+ ERROR("Newscaster used by non-human/silicon mob: [user.type]")
/obj/machinery/newscaster/proc/print_paper()
diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm
index d36763e98e8..bb16ba4c47c 100644
--- a/code/game/machinery/pipe/construction.dm
+++ b/code/game/machinery/pipe/construction.dm
@@ -391,8 +391,8 @@ Buildable meters
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
user.visible_message( \
- "[user] fastens the [src].", \
- "You have fastened the [src].", \
+ "[user] fastens \the [src].", \
+ "You have fastened \the [src].", \
"You hear ratchet.")
qdel(src) // remove the pipe item
diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm
index e409a1bc686..5c3b993beec 100644
--- a/code/game/machinery/portable_turret.dm
+++ b/code/game/machinery/portable_turret.dm
@@ -119,7 +119,7 @@
if(/obj/item/weapon/gun/energy/lasercannon)
iconholder = 1
- if(/obj/item/weapon/gun/energy/taser)
+ if(/obj/item/weapon/gun/energy/gun/advtaser)
eprojectile = /obj/item/projectile/beam
eshot_sound = 'sound/weapons/Laser.ogg'
diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm
index 62c7846c807..743da789536 100644
--- a/code/game/machinery/rechargestation.dm
+++ b/code/game/machinery/rechargestation.dm
@@ -168,7 +168,7 @@
O:icon_state = "flash"
// Engineering
// Security
- if(istype(O,/obj/item/weapon/gun/energy/taser/cyborg))
+ if(istype(O,/obj/item/weapon/gun/energy/gun/advtaser/cyborg))
if(O:power_supply.charge < O:power_supply.maxcharge)
var/obj/item/weapon/gun/energy/G = O
var/obj/item/ammo_casing/energy/S = G.ammo_type[G.select]
diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm
index 3c33b98904f..ec9bd835142 100644
--- a/code/game/machinery/shieldgen.dm
+++ b/code/game/machinery/shieldgen.dm
@@ -253,7 +253,7 @@
coil.use(1)
health = max_health
malfunction = 0
- user << "You repair the [src]!"
+ user << "You repair \the [src]!"
update_icon()
else if(istype(W, /obj/item/weapon/wrench))
@@ -262,13 +262,13 @@
return
if(!anchored && !isinspace())
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
- user << " You secure the [src] to the floor!"
+ user << " You secure \the [src] to the floor!"
anchored = 1
else if(anchored)
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
- user << " You unsecure the [src] from the floor!"
+ user << " You unsecure \the [src] from the floor!"
if(active)
- user << " The [src] shuts off!"
+ user << " \The [src] shuts off!"
src.shields_down()
anchored = 0
diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm
index 08ee0a278b8..58d4ba0cf8f 100644
--- a/code/game/machinery/spaceheater.dm
+++ b/code/game/machinery/spaceheater.dm
@@ -65,7 +65,7 @@
return
else if(istype(I, /obj/item/weapon/screwdriver))
open = !open
- user.visible_message("[user] [open ? "opens" : "closes"] the hatch on the [src].", "You [open ? "open" : "close"] the hatch on the [src].")
+ user.visible_message("[user] [open ? "opens" : "closes"] the hatch on \the [src].", "You [open ? "open" : "close"] the hatch on \the [src].")
update_icon()
if(!open && user.machine == src)
user << browse(null, "window=spaceheater")
@@ -103,7 +103,7 @@
else
on = !on
- user.visible_message("[user] switches [on ? "on" : "off"] the [src].","You switch [on ? "on" : "off"] the [src].")
+ user.visible_message("[user] switches [on ? "on" : "off"] \the [src].","You switch [on ? "on" : "off"] \the [src].")
update_icon()
return
diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm
index 5bf69e5fcad..58d962377aa 100644
--- a/code/game/machinery/suit_storage_unit.dm
+++ b/code/game/machinery/suit_storage_unit.dm
@@ -431,7 +431,7 @@
user.last_special = world.time + CLICK_CD_BREAKOUT
var/breakout_time = 2
user << "You start kicking against the doors to escape! (This will take about [breakout_time] minutes.)"
- visible_message("You see [user] kicking against the doors of the [src]!")
+ visible_message("You see [user] kicking against the doors of \the [src]!")
if(do_after(user,(breakout_time*60*10)))
if(!user || user.stat != CONSCIOUS || user.loc != src || isopen || !islocked)
return
@@ -491,7 +491,7 @@
if(istype(I, /obj/item/weapon/crowbar) && !isopen)
if(toggle_open(user))
dump_everything()
- user << text("You pry the [src] open.")
+ user << text("You pry \the [src] open.")
update_icon()
return
if(istype(I, /obj/item/weapon/screwdriver))
diff --git a/code/game/machinery/syndicatebeacon.dm b/code/game/machinery/syndicatebeacon.dm
index ecf707cc2e8..1b3958fbcb3 100644
--- a/code/game/machinery/syndicatebeacon.dm
+++ b/code/game/machinery/syndicatebeacon.dm
@@ -122,7 +122,7 @@
if(surplus() < 1500)
if(user) user << "The connected wire doesn't have enough current."
return
- for(var/obj/machinery/singularity/singulo in world)
+ for(var/obj/singularity/singulo in world)
if(singulo.z == z)
singulo.target = src
icon_state = "[icontype]1"
@@ -133,7 +133,7 @@
/obj/machinery/power/singularity_beacon/proc/Deactivate(mob/user = null)
- for(var/obj/machinery/singularity/singulo in world)
+ for(var/obj/singularity/singulo in world)
if(singulo.target == src)
singulo.target = null
icon_state = "[icontype]0"
diff --git a/code/game/machinery/turrets.dm b/code/game/machinery/turrets.dm
index eee59dd82b2..30e11d25386 100644
--- a/code/game/machinery/turrets.dm
+++ b/code/game/machinery/turrets.dm
@@ -354,12 +354,16 @@
var/atom/cur_target = null
var/scan_range = 9 //You will never see them coming
var/health = 200 //Because it lacks a cover, and is mostly to keep people from touching the syndie shuttle.
+ var/base_icon_state = "syndieturret"
+ var/projectile_type = /obj/item/projectile/bullet
+ var/fire_sound = 'sound/weapons/Gunshot.ogg'
icon = 'icons/obj/turrets.dmi'
icon_state = "syndieturret0"
/obj/machinery/gun_turret/New()
..()
take_damage(0) //check your health
+ icon_state = "[base_icon_state]" + "0"
/obj/machinery/gun_turret/ex_act(severity, target)
switch(severity)
@@ -377,7 +381,7 @@
/obj/machinery/gun_turret/update_icon()
if(state > 2 || state < 0) //someone fucked up the vars so fix them
take_damage(0)
- icon_state = "syndieturret" + "[state]"
+ icon_state = "[base_icon_state]" + "[state]"
return
@@ -479,8 +483,8 @@
return
if (targloc == curloc)
return
- playsound(src, 'sound/weapons/Gunshot.ogg', 50, 1)
- var/obj/item/projectile/A = new /obj/item/projectile/bullet(curloc)
+ playsound(src, fire_sound, 50, 1)
+ var/obj/item/projectile/A = new projectile_type(curloc)
A.current = curloc
A.yo = targloc.y - curloc.y
A.xo = targloc.x - curloc.x
diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index 1f963142644..c19882fb69a 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -44,6 +44,8 @@
var/obj/item/weapon/coin/coin
var/datum/wires/vending/wires = null
+ var/dish_quants = list() //used by the snack machine's custom compartment to count dishes.
+
var/obj/item/weapon/vending_refill/refill_canister = null //The type of refill canisters used by this machine.
/obj/machinery/vending/New()
@@ -64,6 +66,11 @@
coin = null
..()
+/obj/machinery/vending/snack/Destroy()
+ for(var/obj/item/weapon/reagent_containers/food/snacks/S in contents)
+ S.loc = get_turf(src)
+ ..()
+
/obj/machinery/vending/initialize()
build_inventory(products)
build_inventory(contraband, 1)
@@ -93,7 +100,8 @@
/obj/machinery/vending/proc/build_inventory(list/productlist, hidden=0, req_coin=0, start_empty = null)
for(var/typepath in productlist)
var/amount = productlist[typepath]
- if(isnull(amount)) amount = 0
+ if(isnull(amount))
+ amount = 0
var/atom/temp = new typepath(null)
var/datum/data/vending_product/R = new /datum/data/vending_product()
@@ -139,6 +147,70 @@
total += restock
return total
+/obj/machinery/vending/snack/attackby(obj/item/weapon/W, mob/user)
+ if(istype(W, /obj/item/weapon/reagent_containers/food/snacks))
+ if(!compartment_access_check(user))
+ return
+ if(nosugar_check(W))
+ if(!iscompartmentfull(user))
+ user.drop_item()
+ W.loc = src
+ food_load(W)
+ user << "You insert [W] into [src]'s chef compartment."
+ else
+ user << "[src]'s chef compartment does not accept sugary food."
+ return
+
+ if(istype(W, /obj/item/weapon/storage/bag/tray))
+ if(!compartment_access_check(user))
+ return
+ var/obj/item/weapon/storage/T = W
+ var/loaded = 0
+ var/denied_items = 0
+ for(var/obj/item/weapon/reagent_containers/food/snacks/S in T.contents)
+ if(iscompartmentfull(user))
+ break
+ if(nosugar_check(S))
+ T.remove_from_storage(S, src)
+ food_load(S)
+ loaded++
+ else
+ denied_items++
+ if(denied_items)
+ user << "[src] refuses some items."
+ if(loaded)
+ user << "You insert [loaded] dishes into [src]'s chef compartment."
+ updateUsrDialog()
+ return
+
+ ..()
+
+/obj/machinery/vending/snack/proc/compartment_access_check(user)
+ req_access_txt = chef_compartment_access
+ if(!allowed(user) && !emagged && scan_id)
+ user << "[src]'s chef compartment blinks red: Access denied."
+ req_access_txt = "0"
+ return 0
+ req_access_txt = "0"
+ return 1
+
+/obj/machinery/vending/snack/proc/nosugar_check(obj/item/weapon/W)
+ if(W.reagents.has_reagent("sugar"))
+ return 0
+ return 1
+
+/obj/machinery/vending/snack/proc/iscompartmentfull(mob/user)
+ if(contents.len >= 30) // no more than 30 dishes can fit inside
+ user << "[src]'s chef compartment is full."
+ return 1
+ return 0
+
+/obj/machinery/vending/snack/proc/food_load(obj/item/weapon/reagent_containers/food/snacks/S)
+ if(dish_quants[S.name])
+ dish_quants[S.name]++
+ else
+ dish_quants[S.name] = 1
+ sortList(dish_quants)
/obj/machinery/vending/attackby(obj/item/weapon/W, mob/user)
if(panel_open)
@@ -247,6 +319,15 @@
dat += "[coin] Remove"
else
dat += "No coin Remove"
+ if(istype(src, /obj/machinery/vending/snack))
+ dat += "Chef's Food Selection
"
+ dat += ""
+ for (var/O in dish_quants)
+ if(dish_quants[O] > 0)
+ var/N = dish_quants[O]
+ dat += "
Dispense "
+ dat += "
[capitalize(O)]: [N]"
+ dat += "
"
user.set_machine(src)
if(seconds_electrified && !(stat & NOPOWER))
if(shock(user, 100))
@@ -293,6 +374,24 @@
usr.set_machine(src)
+
+ if((href_list["dispense"]) && (vend_ready))
+ var/N = href_list["dispense"]
+ if(dish_quants[N] <= 0) // Sanity check, there are probably ways to press the button when it shouldn't be possible.
+ return
+ vend_ready = 0
+ use_power(5)
+
+ spawn(vend_delay)
+ dish_quants[N] = max(dish_quants[N] - 1, 0)
+ for(var/obj/O in contents)
+ if(O.name == N)
+ O.loc = src.loc
+ break
+ vend_ready = 1
+ updateUsrDialog()
+ return
+
if((href_list["vend"]) && (vend_ready))
if(panel_open)
usr << "The vending machine cannot dispense products while its service panel is open!"
@@ -563,12 +662,12 @@
product_slogans = "Try our new nougat bar!;Twice the calories for half the price!"
product_ads = "The healthiest!;Award-winning chocolate bars!;Mmm! So good!;Oh my god it's so juicy!;Have a snack.;Snacks are good for you!;Have some more Getmore!;Best quality snacks straight from mars.;We love chocolate!;Try our new jerky!"
icon_state = "snack"
- products = list(/obj/item/weapon/reagent_containers/food/snacks/candy = 6,/obj/item/weapon/reagent_containers/food/drinks/dry_ramen = 6,/obj/item/weapon/reagent_containers/food/snacks/chips =6,
- /obj/item/weapon/reagent_containers/food/snacks/sosjerky = 6,/obj/item/weapon/reagent_containers/food/snacks/no_raisin = 6,/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie = 6,
- /obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers = 6)
+ products = list(/obj/item/weapon/reagent_containers/food/snacks/candy = 5,/obj/item/weapon/reagent_containers/food/drinks/dry_ramen = 5,/obj/item/weapon/reagent_containers/food/snacks/chips =5,
+ /obj/item/weapon/reagent_containers/food/snacks/sosjerky = 5,/obj/item/weapon/reagent_containers/food/snacks/no_raisin = 5,/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie = 5,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers = 5)
contraband = list(/obj/item/weapon/reagent_containers/food/snacks/syndicake = 6)
refill_canister = /obj/item/weapon/vending_refill/snack
-
+ var/chef_compartment_access = "28"
/obj/machinery/vending/snack/New()
..()
@@ -778,7 +877,8 @@
/obj/item/clothing/suit/wizrobe/fake = 1,/obj/item/clothing/head/wizard/fake = 1,/obj/item/weapon/staff = 3,/obj/item/clothing/mask/gas/sexyclown = 1,
/obj/item/clothing/under/sexyclown = 1,/obj/item/clothing/mask/gas/sexymime = 1,/obj/item/clothing/under/sexymime = 1,/obj/item/clothing/suit/apron/overalls = 1,
/obj/item/clothing/head/rabbitears =1, /obj/item/clothing/head/sombrero = 1, /obj/item/clothing/head/sombrero/green = 1, /obj/item/clothing/suit/poncho = 1,
- /obj/item/clothing/suit/poncho/green = 1, /obj/item/clothing/suit/poncho/red = 1, /obj/item/clothing/tie/blue = 1, /obj/item/clothing/tie/red = 1, /obj/item/clothing/tie/black = 1, /obj/item/clothing/tie/horrible = 1)
+ /obj/item/clothing/suit/poncho/green = 1, /obj/item/clothing/suit/poncho/red = 1, /obj/item/clothing/tie/blue = 1, /obj/item/clothing/tie/red = 1, /obj/item/clothing/tie/black = 1, /obj/item/clothing/tie/horrible = 1,
+ /obj/item/clothing/under/maid = 1, /obj/item/clothing/under/janimaid = 1)
contraband = list(/obj/item/clothing/suit/judgerobe = 1,/obj/item/clothing/head/powdered_wig = 1,/obj/item/weapon/gun/magic/wand = 1)
premium = list(/obj/item/clothing/suit/hgpirate = 1, /obj/item/clothing/head/hgpiratecap = 1, /obj/item/clothing/head/helmet/roman = 1, /obj/item/clothing/head/helmet/roman/legionaire = 1, /obj/item/clothing/under/roman = 1, /obj/item/clothing/shoes/roman = 1, /obj/item/weapon/shield/riot/roman = 1)
refill_canister = /obj/item/weapon/vending_refill/autodrobe
@@ -855,3 +955,41 @@
/obj/item/weapon/stock_parts/cell/high = 12, /obj/item/device/assembly/prox_sensor = 3,/obj/item/device/assembly/signaler = 3,/obj/item/device/healthanalyzer = 3,
/obj/item/weapon/scalpel = 2,/obj/item/weapon/circular_saw = 2,/obj/item/weapon/tank/anesthetic = 2,/obj/item/clothing/mask/breath/medical = 5,
/obj/item/weapon/screwdriver = 5,/obj/item/weapon/crowbar = 5)
+
+//This one's from NTstation
+//don't forget to change the refill size if you change the machine's contents!
+/obj/machinery/vending/clothing
+ name = "ClothesMate" //renamed to make the slogan rhyme
+ desc = "A vending machine for clothing."
+ icon_state = "clothes"
+ product_slogans = "Dress for success!;Prepare to look swagalicious!;Look at all this free swag!;Why leave style up to fate? Use the ClothesMate!"
+ vend_delay = 15
+ vend_reply = "Thank you for using the ClothesMate!"
+ products = list(/obj/item/clothing/head/that=2,/obj/item/clothing/head/fedora=1,/obj/item/clothing/glasses/monocle=1,
+ /obj/item/clothing/under/suit_jacket/navy=2,/obj/item/clothing/under/kilt=1,/obj/item/clothing/under/overalls=1,
+ /obj/item/clothing/under/suit_jacket/really_black=2,/obj/item/clothing/under/pants/jeans=3,/obj/item/clothing/under/pants/classicjeans=2,
+ /obj/item/clothing/under/pants/camo = 1,/obj/item/clothing/under/pants/blackjeans=2,/obj/item/clothing/under/pants/khaki=2,
+ /obj/item/clothing/under/pants/white=2,/obj/item/clothing/under/pants/red=1,/obj/item/clothing/under/pants/black=2,
+ /obj/item/clothing/under/pants/tan=2,/obj/item/clothing/under/pants/blue=1,/obj/item/clothing/under/pants/track=1,
+ /obj/item/clothing/tie/scarf/red=1,/obj/item/clothing/tie/scarf/green=1,/obj/item/clothing/tie/scarf/darkblue=1,
+ /obj/item/clothing/tie/scarf/purple=1,/obj/item/clothing/tie/scarf/yellow=1,/obj/item/clothing/tie/scarf/orange=1,
+ /obj/item/clothing/tie/scarf/lightblue=1,/obj/item/clothing/tie/scarf/white=1,/obj/item/clothing/tie/scarf/black=1,
+ /obj/item/clothing/tie/scarf/zebra=1,/obj/item/clothing/tie/scarf/christmas=1,/obj/item/clothing/tie/stripedredscarf=1,
+ /obj/item/clothing/tie/stripedbluescarf=1,/obj/item/clothing/tie/stripedgreenscarf=1,/obj/item/clothing/tie/waistcoat=1,
+ /obj/item/clothing/under/sundress=2,/obj/item/clothing/under/stripeddress = 1, /obj/item/clothing/under/sailordress = 1, /obj/item/clothing/under/redeveninggown = 1, /obj/item/clothing/under/blacktango=1,/obj/item/clothing/suit/jacket=3,
+ /obj/item/clothing/glasses/regular=2,/obj/item/clothing/head/sombrero=1,/obj/item/clothing/suit/poncho=1,
+ /obj/item/clothing/suit/ianshirt=1,/obj/item/clothing/shoes/laceup=2,/obj/item/clothing/shoes/sneakers/black=4,
+ /obj/item/clothing/shoes/sandal=1)
+ contraband = list(/obj/item/clothing/under/syndicate/tacticool=1,/obj/item/clothing/mask/balaclava=1,/obj/item/clothing/head/ushanka=1,/obj/item/clothing/under/soviet=1)
+ premium = list(/obj/item/clothing/under/suit_jacket/checkered=1,/obj/item/clothing/head/mailman=1,/obj/item/clothing/under/rank/mailman=1,/obj/item/clothing/suit/jacket/leather=1,/obj/item/clothing/under/pants/mustangjeans=1)
+ refill_canister = /obj/item/weapon/vending_refill/clothing
+
+/obj/machinery/vending/clothing/New()
+ ..()
+ component_parts = list()
+ var/obj/item/weapon/circuitboard/vendor/V = new(null)
+ V.set_type(type)
+ component_parts += V
+ component_parts += new /obj/item/weapon/vending_refill/clothing(0)
+ component_parts += new /obj/item/weapon/vending_refill/clothing(0)
+ component_parts += new /obj/item/weapon/vending_refill/clothing(0)
diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm
index 3ebb4eb7c52..5208671d792 100644
--- a/code/game/mecha/equipment/tools/medical_tools.dm
+++ b/code/game/mecha/equipment/tools/medical_tools.dm
@@ -52,7 +52,7 @@
occupant_message("[target] will not fit into the sleeper because they have a slime latched onto their head.")
return
occupant_message("You start putting [target] into [src].")
- chassis.visible_message("[chassis] starts putting [target] into the [src].")
+ chassis.visible_message("[chassis] starts putting [target] into \the [src].")
var/C = chassis.loc
var/T = target.loc
if(do_after_cooldown(target))
diff --git a/code/game/objects/effects/aliens.dm b/code/game/objects/effects/aliens.dm
index 5d8a2d61c43..4848b1bfa7a 100644
--- a/code/game/objects/effects/aliens.dm
+++ b/code/game/objects/effects/aliens.dm
@@ -253,16 +253,16 @@
var/turf/W = get_step(src, WEST)
if(!locate(/obj/structure/alien) in N.contents)
if(istype(N, /turf/simulated/floor))
- src.overlays += image('icons/mob/alien.dmi', "weeds_side_s", layer=2, pixel_y = 32)
+ src.overlays += image('icons/mob/alien.dmi', "weeds_side_s", layer=2.11, pixel_y = 32)
if(!locate(/obj/structure/alien) in S.contents)
if(istype(S, /turf/simulated/floor))
- src.overlays += image('icons/mob/alien.dmi', "weeds_side_n", layer=2, pixel_y = -32)
+ src.overlays += image('icons/mob/alien.dmi', "weeds_side_n", layer=2.11, pixel_y = -32)
if(!locate(/obj/structure/alien) in E.contents)
if(istype(E, /turf/simulated/floor))
- src.overlays += image('icons/mob/alien.dmi', "weeds_side_w", layer=2, pixel_x = 32)
+ src.overlays += image('icons/mob/alien.dmi', "weeds_side_w", layer=2.11, pixel_x = 32)
if(!locate(/obj/structure/alien) in W.contents)
if(istype(W, /turf/simulated/floor))
- src.overlays += image('icons/mob/alien.dmi', "weeds_side_e", layer=2, pixel_x = -32)
+ src.overlays += image('icons/mob/alien.dmi', "weeds_side_e", layer=2.11, pixel_x = -32)
/obj/structure/alien/weeds/proc/fullUpdateWeedOverlays()
diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm
index 73b14346a40..5d4b86c77da 100644
--- a/code/game/objects/effects/spawners/lootdrop.dm
+++ b/code/game/objects/effects/spawners/lootdrop.dm
@@ -26,7 +26,7 @@
/obj/item/weapon/gun/projectile/automatic/pistol = 8,
/obj/item/weapon/gun/projectile/shotgun/combat = 5,
/obj/item/weapon/gun/projectile/revolver/mateba,
- /obj/item/weapon/gun/projectile/automatic/deagle
+ /obj/item/weapon/gun/projectile/automatic/pistol/deagle
)
/obj/effect/spawner/lootdrop/maintenance
diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm
index d7102b10cf4..cf8854b4bcd 100644
--- a/code/game/objects/effects/spiders.dm
+++ b/code/game/objects/effects/spiders.dm
@@ -212,7 +212,7 @@
user.changeNext_move(CLICK_CD_BREAKOUT)
user.last_special = world.time + CLICK_CD_BREAKOUT
user << "You struggle against the tight bonds! (This will take about [breakout_time] minutes.)"
- visible_message("You see something struggling and writhing in the [src]!")
+ visible_message("You see something struggling and writhing in \the [src]!")
if(do_after(user,(breakout_time*60*10)))
if(!user || user.stat != CONSCIOUS || user.loc != src)
return
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index df3c30675bd..82cf59a988e 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -119,7 +119,7 @@
if (istype(src.loc, /obj/item/weapon/storage))
//If the item is in a storage item, take it out
var/obj/item/weapon/storage/S = src.loc
- S.remove_from_storage(src)
+ S.remove_from_storage(src, user.loc)
src.throwing = 0
if (loc == user)
diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm
index d10eec6fed3..4ba21eaa553 100644
--- a/code/game/objects/items/blueprints.dm
+++ b/code/game/objects/items/blueprints.dm
@@ -57,7 +57,7 @@
. = ..()
var/area/A = get_area()
if(get_area_type() == AREA_STATION)
- . += "According to the [src], you are now in \"[strip_html_properly(A.name)]\".
"
+ . += "According to \the [src], you are now in \"[strip_html_properly(A.name)]\".
"
var/datum/browser/popup = new(user, "blueprints", "[src]", 700, 500)
popup.set_content(.)
popup.open()
@@ -82,7 +82,7 @@
. = ..()
var/area/A = get_area()
if(get_area_type() == AREA_STATION)
- . += "According to the [src], you are now in \"[strip_html_properly(A.name)]\".
"
+ . += "According to \the [src], you are now in \"[strip_html_properly(A.name)]\".
"
. += "You may move an amendment to the drawing.
"
var/datum/browser/popup = new(user, "blueprints", "[src]", 700, 500)
popup.set_content(.)
diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm
index ab970a7db47..83face5668a 100644
--- a/code/game/objects/items/devices/PDA/PDA.dm
+++ b/code/game/objects/items/devices/PDA/PDA.dm
@@ -170,8 +170,8 @@ var/global/list/obj/item/device/pda/PDAs = list()
desc = "A portable microcomputer by Thinktronic Systems, LTD. This is model is a special edition with a transparent case."
note = "Congratulations, you have chosen the Thinktronic 5230 Personal Data Assistant Deluxe Special Max Turbo Limited Edition!"
-/obj/item/device/pda/chef
- icon_state = "pda-chef"
+/obj/item/device/pda/cook
+ icon_state = "pda-cook"
/obj/item/device/pda/bar
icon_state = "pda-bartender"
diff --git a/code/game/objects/items/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm
index 94c273e62e3..40a78956230 100644
--- a/code/game/objects/items/devices/aicard.dm
+++ b/code/game/objects/items/devices/aicard.dm
@@ -1,5 +1,5 @@
/obj/item/device/aicard
- name = "inteliCard"
+ name = "intelliCard"
desc = "A storage device for AIs. Patent pending."
icon = 'icons/obj/aicards.dmi'
icon_state = "aicard" // aicard-full
@@ -23,7 +23,7 @@
if (!in_range(src, user))
return
user.set_machine(src)
- var/dat = "Intelicard
"
+ var/dat = "Intellicard
"
var/laws
for(var/mob/living/silicon/ai/A in src)
dat += "Stored AI: [A.name]
System integrity: [(A.health+100)/2]%
"
@@ -107,7 +107,7 @@
if ("Wireless")
for(var/mob/living/silicon/ai/A in src)
A.control_disabled = !A.control_disabled
- A << "The intelicard's wireless port has been [A.control_disabled ? "disabled" : "enabled"]!"
+ A << "The intellicard's wireless port has been [A.control_disabled ? "disabled" : "enabled"]!"
if (A.control_disabled)
overlays -= image('icons/obj/aicards.dmi', "aicard-on")
else
diff --git a/code/game/objects/items/devices/camera_bug.dm b/code/game/objects/items/devices/camera_bug.dm
index da1bcf84de8..4da4cbe1e8e 100644
--- a/code/game/objects/items/devices/camera_bug.dm
+++ b/code/game/objects/items/devices/camera_bug.dm
@@ -169,7 +169,7 @@
if(current && current.can_use())
var/list/seen = current.can_see()
var/list/names = list()
- for(var/obj/machinery/singularity/S in seen) // god help you if you see more than one
+ for(var/obj/singularity/S in seen) // god help you if you see more than one
if(S.name in names)
names[S.name]++
dat += "[S.name] ([names[S.name]])"
diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm
index 9b141cacdc3..2ed698dd029 100644
--- a/code/game/objects/items/devices/chameleonproj.dm
+++ b/code/game/objects/items/devices/chameleonproj.dm
@@ -45,7 +45,7 @@
playsound(get_turf(src), 'sound/effects/pop.ogg', 100, 1, -6)
qdel(active_dummy)
active_dummy = null
- usr << "You deactivate the [src]."
+ usr << "You deactivate \the [src]."
var/obj/effect/overlay/T = new/obj/effect/overlay(get_turf(src))
T.icon = 'icons/effects/effects.dmi'
flick("emppulse",T)
@@ -57,7 +57,7 @@
var/obj/effect/dummy/chameleon/C = new/obj/effect/dummy/chameleon(usr.loc)
C.activate(O, usr, saved_icon, saved_icon_state, saved_overlays, saved_underlays, src)
qdel(O)
- usr << "You activate the [src]."
+ usr << "You activate \the [src]."
var/obj/effect/overlay/T = new/obj/effect/overlay(get_turf(src))
T.icon = 'icons/effects/effects.dmi'
flick("emppulse",T)
diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm
index 5735a6af412..71959e986ae 100644
--- a/code/game/objects/items/devices/flash.dm
+++ b/code/game/objects/items/devices/flash.dm
@@ -2,7 +2,7 @@
name = "flash"
desc = "A powerful and versatile flashbulb device, with applications ranging from disorienting attackers to acting as visual receptors in robot production."
icon_state = "flash"
- item_state = "flashbang" //looks exactly like a flash (and nothing like a flashbang)
+ item_state = "flashtool"
throwforce = 0
w_class = 1
throw_speed = 3
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index ae3fe04ec0e..587837fab45 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -136,7 +136,7 @@
desc = "A classic green-shaded desk lamp."
icon_state = "lampgreen"
item_state = "lampgreen"
- brightness_on = 5
+
/obj/item/device/flashlight/lamp/verb/toggle_light()
@@ -147,6 +147,13 @@
if(!usr.stat)
attack_self(usr)
+//Bananalamp
+obj/item/device/flashlight/lamp/bananalamp
+ name = "banana lamp"
+ desc = "Only a clown would think to make a ghetto banana-shaped lamp. Even has a goofy pullstring."
+ icon_state = "bananalamp"
+ item_state = "bananalamp"
+
// FLARES
/obj/item/device/flashlight/flare
@@ -205,7 +212,7 @@
. = ..()
// All good, turn it on.
if(.)
- user.visible_message("[user] lights the [src].", "You light the [src]!")
+ user.visible_message("[user] lights \the [src].", "You light \the [src]!")
force = on_damage
damtype = "fire"
processing_objects += src
diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm
index 4e0804e76cf..27e4dd6631a 100644
--- a/code/game/objects/items/devices/laserpointer.dm
+++ b/code/game/objects/items/devices/laserpointer.dm
@@ -57,7 +57,7 @@
else if(istype(W, /obj/item/weapon/screwdriver))
if(diode)
- user << "You remove the [diode.name] from the [src]."
+ user << "You remove the [diode.name] from \the [src]."
diode.loc = get_turf(src.loc)
diode = null
return
diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm
index 4adb60e3655..dbb1d9a4b29 100644
--- a/code/game/objects/items/devices/lightreplacer.dm
+++ b/code/game/objects/items/devices/lightreplacer.dm
@@ -137,7 +137,7 @@
if(target.status != LIGHT_OK)
if(CanUse(U))
if(!Use(U)) return
- U << "You replace the [target.fitting] with the [src]."
+ U << "You replace the [target.fitting] with \the [src]."
if(target.status != LIGHT_EMPTY)
diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm
index 4c41d33541d..4ff44ecbb84 100644
--- a/code/game/objects/items/devices/radio/encryptionkey.dm
+++ b/code/game/objects/items/devices/radio/encryptionkey.dm
@@ -22,6 +22,8 @@
syndie = 1//Signifies that it de-crypts Syndicate transmissions
/obj/item/device/encryptionkey/binary
+ name = "binary translator key"
+ desc = "An encryption key for a radio headset. To access the binary channel, use :b."
icon_state = "cypherkey"
translate_binary = 1
origin_tech = "syndicate=3"
diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm
index 432e6f4bc3d..6cf2b1b36ac 100644
--- a/code/game/objects/items/devices/radio/headset.dm
+++ b/code/game/objects/items/devices/radio/headset.dm
@@ -14,7 +14,6 @@
/obj/item/device/radio/headset/New()
..()
- keyslot = new /obj/item/device/encryptionkey/
recalculateChannels()
/obj/item/device/radio/headset/Destroy()
@@ -66,7 +65,7 @@
desc = "This is used by your elite security force. \nTo access the security channel, use :s."
icon_state = "sec_headset"
item_state = "headset"
- keyslot2 = new /obj/item/device/encryptionkey/headset_sec
+ keyslot = new /obj/item/device/encryptionkey/headset_sec
/obj/item/device/radio/headset/headset_sec/alt
name = "security bowman headset"
@@ -80,49 +79,49 @@
desc = "When the engineers wish to chat like girls. \nTo access the engineering channel, use :e. "
icon_state = "eng_headset"
item_state = "headset"
- keyslot2 = new /obj/item/device/encryptionkey/headset_eng
+ keyslot = new /obj/item/device/encryptionkey/headset_eng
/obj/item/device/radio/headset/headset_rob
name = "robotics radio headset"
desc = "Made specifically for the roboticists, who cannot decide between departments. \nTo access the engineering channel, use :e. For research, use :n."
icon_state = "rob_headset"
item_state = "headset"
- keyslot2 = new /obj/item/device/encryptionkey/headset_rob
+ keyslot = new /obj/item/device/encryptionkey/headset_rob
/obj/item/device/radio/headset/headset_med
name = "medical radio headset"
desc = "A headset for the trained staff of the medbay. \nTo access the medical channel, use :m."
icon_state = "med_headset"
item_state = "headset"
- keyslot2 = new /obj/item/device/encryptionkey/headset_med
+ keyslot = new /obj/item/device/encryptionkey/headset_med
/obj/item/device/radio/headset/headset_sci
name = "science radio headset"
desc = "A sciency headset. Like usual. \nTo access the science channel, use :n."
icon_state = "sci_headset"
item_state = "headset"
- keyslot2 = new /obj/item/device/encryptionkey/headset_sci
+ keyslot = new /obj/item/device/encryptionkey/headset_sci
/obj/item/device/radio/headset/headset_medsci
name = "medical research radio headset"
desc = "A headset that is a result of the mating between medical and science. \nTo access the medical channel, use :m. For science, use :n."
icon_state = "medsci_headset"
item_state = "headset"
- keyslot2 = new /obj/item/device/encryptionkey/headset_medsci
+ keyslot = new /obj/item/device/encryptionkey/headset_medsci
/obj/item/device/radio/headset/headset_com
name = "command radio headset"
desc = "A headset with a commanding channel. \nTo access the command channel, use :c."
icon_state = "com_headset"
item_state = "headset"
- keyslot2 = new /obj/item/device/encryptionkey/headset_com
+ keyslot = new /obj/item/device/encryptionkey/headset_com
/obj/item/device/radio/headset/heads/captain
name = "\proper the captain's headset"
desc = "The headset of the king. \nChannels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :v - service, :m - medical, :n - science."
icon_state = "com_headset"
item_state = "headset"
- keyslot2 = new /obj/item/device/encryptionkey/heads/captain
+ keyslot = new /obj/item/device/encryptionkey/heads/captain
/obj/item/device/radio/headset/heads/captain/alt
name = "\proper the captain's bowman headset"
@@ -136,14 +135,14 @@
desc = "Headset of the fellow who keeps society marching towards technological singularity. \nTo access the science channel, use :n. For command, use :c."
icon_state = "com_headset"
item_state = "headset"
- keyslot2 = new /obj/item/device/encryptionkey/heads/rd
+ keyslot = new /obj/item/device/encryptionkey/heads/rd
/obj/item/device/radio/headset/heads/hos
name = "\proper the head of security's headset"
desc = "The headset of the man in charge of keeping order and protecting the station. \nTo access the security channel, use :s. For command, use :c."
icon_state = "com_headset"
item_state = "headset"
- keyslot2 = new /obj/item/device/encryptionkey/heads/hos
+ keyslot = new /obj/item/device/encryptionkey/heads/hos
/obj/item/device/radio/headset/heads/hos/alt
name = "\proper the head of security's bowman headset"
@@ -157,46 +156,46 @@
desc = "The headset of the guy in charge of keeping the station powered and undamaged. \nTo access the engineering channel, use :e. For command, use :c."
icon_state = "com_headset"
item_state = "headset"
- keyslot2 = new /obj/item/device/encryptionkey/heads/ce
+ keyslot = new /obj/item/device/encryptionkey/heads/ce
/obj/item/device/radio/headset/heads/cmo
name = "\proper the chief medical officer's headset"
desc = "The headset of the highly trained medical chief. \nTo access the medical channel, use :m. For command, use :c."
icon_state = "com_headset"
item_state = "headset"
- keyslot2 = new /obj/item/device/encryptionkey/heads/cmo
+ keyslot = new /obj/item/device/encryptionkey/heads/cmo
/obj/item/device/radio/headset/heads/hop
name = "\proper the head of personnel's headset"
desc = "The headset of the guy who will one day be captain. \nChannels are as follows: :u - supply, :v - service, :c - command."
icon_state = "com_headset"
item_state = "headset"
- keyslot2 = new /obj/item/device/encryptionkey/heads/hop
+ keyslot = new /obj/item/device/encryptionkey/heads/hop
/obj/item/device/radio/headset/headset_cargo
name = "supply radio headset"
desc = "A headset used by the QM and his slaves. \nTo access the supply channel, use :u."
icon_state = "cargo_headset"
item_state = "headset"
- keyslot2 = new /obj/item/device/encryptionkey/headset_cargo
+ keyslot = new /obj/item/device/encryptionkey/headset_cargo
/obj/item/device/radio/headset/headset_srv
name = "service radio headset"
desc = "Headset used by the service staff, tasked with keeping the station full, happy and clean. \nTo access the service channel, use :v."
icon_state = "srv_headset"
item_state = "headset"
- keyslot2 = new /obj/item/device/encryptionkey/headset_service
+ keyslot = new /obj/item/device/encryptionkey/headset_service
/obj/item/device/radio/headset/headset_cent
name = "\improper Centcom headset"
desc = "A headset used by the upper echelons of Nanotrasen. \nChannels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :v - service, :m - medical, :n - science."
icon_state = "cent_headset"
item_state = "headset"
- keyslot2 = new /obj/item/device/encryptionkey/heads/captain
+ keyslot = new /obj/item/device/encryptionkey/heads/captain
/obj/item/device/radio/headset/ai
name = "\proper Integrated Subspace Transceiver "
- keyslot2 = new /obj/item/device/encryptionkey/ai
+ keyslot = new /obj/item/device/encryptionkey/ai
/obj/item/device/radio/headset/ai/receive_range(freq, level)
return ..(freq, level, 1)
@@ -234,7 +233,7 @@
user << "You pop out the encryption keys in the headset!"
else
- user << "This headset doesn't have any encryption keys! How useless..."
+ user << "This headset doesn't have any unique encryption keys! How useless..."
if(istype(W, /obj/item/device/encryptionkey/))
if(keyslot && keyslot2)
@@ -277,15 +276,6 @@
for(var/ch_name in channels)
- //this is the most hilarious piece of code i have seen this week, so im not going to remove it
- /*
- if(!radio_controller)
- sleep(30) // Waiting for the radio_controller to be created.
- if(!radio_controller)
- src.name = "broken radio headset"
- return
- */
-
secure_radio_connections[ch_name] = add_radio(src, radiochannels[ch_name])
return
diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm
index 64951705275..00ea33f28ef 100644
--- a/code/game/objects/items/devices/transfer_valve.dm
+++ b/code/game/objects/items/devices/transfer_valve.dm
@@ -10,8 +10,6 @@
var/valve_open = 0
var/toggle = 1
-/obj/item/device/transfer_valve/proc/process_activation(var/obj/item/device/D)
-
/obj/item/device/transfer_valve/IsAssemblyHolder()
return 1
@@ -44,7 +42,7 @@
user << "The device is secured."
return
if(attached_device)
- user << "There is already an device attached to the valve, remove it first."
+ user << "There is already a device attached to the valve, remove it first."
return
user.remove_from_mob(item)
attached_device = A
@@ -114,7 +112,7 @@
return
return
-/obj/item/device/transfer_valve/process_activation(var/obj/item/device/D)
+/obj/item/device/transfer_valve/proc/process_activation(var/obj/item/device/D)
if(toggle)
toggle = 0
toggle_valve()
diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm
index a3fb7b85c82..10adc58768c 100644
--- a/code/game/objects/items/robot/robot_upgrades.dm
+++ b/code/game/objects/items/robot/robot_upgrades.dm
@@ -113,7 +113,7 @@
usr << "There's no mounting point for the module!"
return 0
- var/obj/item/weapon/gun/energy/taser/cyborg/T = locate() in R.module
+ var/obj/item/weapon/gun/energy/gun/advtaser/cyborg/T = locate() in R.module
if(!T)
T = locate() in R.module.contents
if(!T)
diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm
index a848cb4dc3f..b58c54799bb 100644
--- a/code/game/objects/items/weapons/cigs_lighters.dm
+++ b/code/game/objects/items/weapons/cigs_lighters.dm
@@ -70,6 +70,26 @@ CIGARETTE PACKETS ARE IN FANCY.DM
matchburnout()
return ..()
+/obj/item/weapon/match/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
+ if(!isliving(M))
+ return
+ M.IgniteMob()
+ var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M,user)
+ if(lit && cig)
+ if(M == user)
+ cig.attackby(src, user)
+ else
+ cig.light("[user] holds the [name] out for [M], and lights the [cig.name].")
+ else
+ ..()
+
+/obj/item/proc/help_light_cig(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
+ if(!iscarbon(M))
+ return
+ if(istype(M.wear_mask, /obj/item/clothing/mask/cigarette) && user.zone_sel.selecting == "mouth")
+ var/obj/item/clothing/mask/cigarette/cig = M.wear_mask
+ return cig
+
//////////////////
//FINE SMOKABLES//
//////////////////
@@ -97,46 +117,21 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/cigarette/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
+ var/lighting_text = "[user] lights their [name] with [W]."
if(istype(W, /obj/item/weapon/weldingtool))
- var/obj/item/weapon/weldingtool/WT = W
- if(WT.isOn())//Badasses dont get blinded while lighting their cig with a welding tool
- light("[user] casually lights the [name] with [W], what a badass.")
-
+ lighting_text = "[user] casually lights the [name] with [W], what a badass."
else if(istype(W, /obj/item/weapon/lighter/zippo))
- var/obj/item/weapon/lighter/zippo/Z = W
- if(Z.lit)
- light("With a single flick of their wrist, [user] smoothly lights their [name] with [W]. Damn they're cool.")
-
+ lighting_text = "With a single flick of their wrist, [user] smoothly lights their [name] with [W]. Damn they're cool."
else if(istype(W, /obj/item/weapon/lighter))
- var/obj/item/weapon/lighter/L = W
- if(L.lit)
- light("After some fiddling, [user] manages to light their [name] with [W].")
-
- else if(istype(W, /obj/item/weapon/match))
- var/obj/item/weapon/match/M = W
- if(M.lit == 1) //checking for lit = 1 instead of just lit prevents cigarettes being lit by used matches
- light("[user] lights their [name] with [W].")
-
- else if(istype(W, /obj/item/weapon/melee/energy/sword))
- var/obj/item/weapon/melee/energy/sword/S = W
- if(S.active)
- light("[user] swings their [W], barely missing their nose. They light their [name] in the process.")
-
+ lighting_text = "After some fiddling, [user] manages to light their [name] with [W]."
+ else if(istype(W, /obj/item/weapon/melee/energy))
+ lighting_text = "[user] swings their [W], barely missing their nose. They light their [name] in the process."
else if(istype(W, /obj/item/device/assembly/igniter))
- light("[user] fiddles with [W], and manages to light their [name].")
-
- else if(istype(W, /obj/item/clothing/mask/cigarette))
- var/obj/item/clothing/mask/cigarette/M = W
- if(M.lit)
- light("[user] lights their [name] with [W].")
- else if(istype(W, /obj/item/candle))
- var/obj/item/candle/C = W
- if(C.lit)
- light("[user] lights their [name] with [W].")
+ lighting_text = "[user] fiddles with [W], and manages to light their [name]."
else if(istype(W, /obj/item/device/flashlight/flare))
- var/obj/item/device/flashlight/flare/F = W
- if(F.on)
- light("[user] lights their [name] with [W] like a real badass.")
+ lighting_text = "[user] lights their [name] with [W] like a real badass."
+ if(is_hot(W))
+ light(lighting_text)
return
/obj/item/clothing/mask/cigarette/afterattack(obj/item/weapon/reagent_containers/glass/glass, mob/user as mob, proximity)
@@ -240,8 +235,8 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/cigarette/attack(mob/living/carbon/M, mob/living/carbon/user)
if(!istype(M))
return ..()
- if(istype(M.wear_mask, /obj/item/clothing/mask/cigarette) && user.zone_sel && user.zone_sel.selecting == "mouth" && lit)
- var/obj/item/clothing/mask/cigarette/cig = M.wear_mask
+ var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M,user)
+ if(lit && cig)
if(M == user)
cig.attackby(src, user)
else
@@ -498,10 +493,8 @@ CIGARETTE PACKETS ARE IN FANCY.DM
if(!isliving(M))
return
M.IgniteMob()
- if(!istype(M,/mob/living/carbon))
- return
- if(istype(M.wear_mask, /obj/item/clothing/mask/cigarette) && user.zone_sel.selecting == "mouth" && lit)
- var/obj/item/clothing/mask/cigarette/cig = M.wear_mask
+ var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M,user)
+ if(lit && cig)
if(M == user)
cig.attackby(src, user)
else
@@ -518,7 +511,6 @@ CIGARETTE PACKETS ARE IN FANCY.DM
location.hotspot_expose(700, 5)
return
-
/obj/item/weapon/lighter/pickup(mob/user)
if(lit)
SetLuminosity(0)
diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm
index 2f86767a248..df21b3dc5dd 100644
--- a/code/game/objects/items/weapons/defib.dm
+++ b/code/game/objects/items/weapons/defib.dm
@@ -75,7 +75,35 @@
usr << "Put the defibrillator on your back first!"
return
+/obj/item/weapon/defibrillator/attack_hand(mob/user as mob)
+ if(src.loc == user)
+ ui_action_click()
+ return
+ ..()
+
+/obj/item/weapon/defibrillator/MouseDrop(obj/over_object)
+ if(ishuman(src.loc))
+ var/mob/living/carbon/human/H = src.loc
+ switch(over_object.name)
+ if("r_hand")
+ if(H.r_hand)
+ return
+ if(!H.unEquip(src))
+ return
+ H.put_in_r_hand(src)
+ if("l_hand")
+ if(H.l_hand)
+ return
+ if(!H.unEquip(src))
+ return
+ H.put_in_l_hand(src)
+ return
+
/obj/item/weapon/defibrillator/attackby(obj/item/weapon/W, mob/user)
+ if(W == paddles)
+ paddles.unwield()
+ toggle_paddles()
+ return
if(istype(W, /obj/item/weapon/stock_parts/cell))
var/obj/item/weapon/stock_parts/cell/C = W
if(bcell)
@@ -94,7 +122,7 @@
bcell.updateicon()
bcell.loc = get_turf(src.loc)
bcell = null
- user << "You remove the cell from the [src]."
+ user << "You remove the cell from [src]."
update_icon()
return
@@ -115,15 +143,15 @@
if(safety)
safety = 0
src.visible_message("[src] beeps: Safety protocols disabled!")
- playsound(get_turf(src), 'sound/machines/twobeep.ogg', 50, 0)
+ playsound(get_turf(src), 'sound/machines/defib_saftyOff.ogg', 50, 0)
else
safety = 1
src.visible_message("[src] beeps: Safety protocols enabled!")
- playsound(get_turf(src), 'sound/machines/twobeep.ogg', 50, 0)
+ playsound(get_turf(src), 'sound/machines/defib_saftyOn.ogg', 50, 0)
update_icon()
..()
-/obj/item/weapon/defibrillator/verb/toggle_paddles()
+/obj/item/weapon/defibrillator/proc/toggle_paddles()
set name = "Toggle Paddles"
set category = "Object"
on = !on
@@ -139,6 +167,7 @@
paddles.loc = user
else
//Remove from their hands and back onto the defib unit
+ paddles.unwield()
remove_paddles(user)
update_icon()
@@ -155,7 +184,7 @@
/obj/item/weapon/defibrillator/proc/remove_paddles(mob/user)
var/mob/living/carbon/human/M = user
if(paddles in get_both_hands(M))
- M.unEquip(paddles)
+ M.unEquip(paddles,1)
update_icon()
return
@@ -184,10 +213,10 @@
if(bcell)
if(bcell.charge >= paddles.revivecost)
user.visible_message("[src] beeps: Unit ready.")
- playsound(get_turf(src), 'sound/machines/twobeep.ogg', 50, 0)
+ playsound(get_turf(src), 'sound/machines/defib_ready.ogg', 50, 0)
else
user.visible_message("[src] beeps: Charge depleted.")
- playsound(get_turf(src), 'sound/machines/twobeep.ogg', 50, 0)
+ playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0)
paddles.cooldown = 0
paddles.update_icon()
update_icon()
@@ -203,6 +232,7 @@
force = 0
throwforce = 6
w_class = 4
+ flags = NODROP
var/revivecost = 1000
var/cooldown = 0
@@ -227,7 +257,7 @@
/obj/item/weapon/twohanded/shockpaddles/suicide_act(mob/user)
user.visible_message("[user] is putting the live paddles on \his chest! It looks like \he's trying to commit suicide.")
defib.deductcharge(revivecost)
- playsound(get_turf(src), 'sound/weapons/Egloves.ogg', 50, 1, -1)
+ playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 50, 1, -1)
return (OXYLOSS)
/obj/item/weapon/twohanded/shockpaddles/dropped(mob/user as mob)
@@ -258,10 +288,10 @@
return
if(!defib.powered)
user.visible_message("[defib] beeps: Unit is unpowered.")
- playsound(get_turf(src), 'sound/machines/twobeep.ogg', 50, 0)
+ playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0)
return
if(!wielded)
- user << "You need to wield the paddles in both hands before you can use them on someone!"
+ user << "You need to wield the paddles in both hands before you can use them on someone!"
return
if(cooldown)
user << "[defib] is recharging."
@@ -277,7 +307,7 @@
H.adjustStaminaLoss(50)
H.Weaken(5)
H.updatehealth() //forces health update before next life tick
- playsound(get_turf(src), 'sound/weapons/Egloves.ogg', 50, 1, -1)
+ playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 50, 1, -1)
H.emote("gasp")
add_logs(user, M, "stunned", object="defibrillator")
defib.deductcharge(revivecost)
@@ -292,7 +322,7 @@
update_icon()
if(do_after(user, 30)) //beginning to place the paddles on patient's chest to allow some time for people to move away to stop the process
user.visible_message("[user] places [src] on [M.name]'s chest.", "You place [src] on [M.name]'s chest.")
- playsound(get_turf(src), 'sound/weapons/flash.ogg', 50, 0)
+ playsound(get_turf(src), 'sound/machines/defib_charge.ogg', 50, 0)
var/mob/dead/observer/ghost = H.get_ghost()
var/tplus = world.time - H.timeofdeath
var/tlimit = 3000 //past this much time the patient is unrecoverable (in deciseconds)
@@ -303,7 +333,7 @@
for(var/obj/item/carried_item in H.contents)
if((istype(carried_item, /obj/item/clothing/suit/armor)) || (istype(carried_item, /obj/item/clothing/suit/space)))
user.visible_message("[defib] buzzes: Patient's chest is obscured. Operation aborted.")
- playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 50, 0)
+ playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0)
busy = 0
update_icon()
return
@@ -311,7 +341,7 @@
var/health = H.health
M.visible_message("[M]'s body convulses a bit.")
playsound(get_turf(src), "bodyfall", 50, 1)
- playsound(get_turf(src), 'sound/weapons/Egloves.ogg', 50, 1, -1)
+ playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 50, 1, -1)
for(var/obj/item/organ/limb/O in H.organs)
total_brute += O.brute_dam
total_burn += O.burn_dam
@@ -322,8 +352,8 @@
H.adjustToxLoss(tobehealed)
H.adjustFireLoss(tobehealed)
H.adjustBruteLoss(tobehealed)
- user.visible_message("[defib] pings: Resuscitation successful.")
- playsound(get_turf(src), 'sound/machines/ping.ogg', 50, 0)
+ user.visible_message("[defib] pings: Resuscitation successful.")
+ playsound(get_turf(src), 'sound/machines/defib_success.ogg', 50, 0)
H.stat = 1
dead_mob_list -= H
living_mob_list |= list(H)
@@ -334,22 +364,22 @@
add_logs(user, M, "revived", object="defibrillator")
else
if(tplus > tlimit)
- user.visible_message("[defib] buzzes: Resuscitation failed - Heart tissue damage beyond point of no return for defibrillation.")
+ user.visible_message("[defib] buzzes: Resuscitation failed - Heart tissue damage beyond point of no return for defibrillation.")
else if(total_burn >= 180 || total_brute >= 180)
- user.visible_message("[defib] buzzes: Resuscitation failed - Severe tissue damage detected.")
+ user.visible_message("[defib] buzzes: Resuscitation failed - Severe tissue damage detected.")
else
- user.visible_message("[defib] buzzes: Resuscitation failed.")
+ user.visible_message("[defib] buzzes: Resuscitation failed.")
if(ghost)
ghost << "Your heart is being defibrillated. Return to your body if you want to be revived! (Verbs -> Ghost -> Re-enter corpse)"
ghost << sound('sound/effects/genetics.ogg')
- playsound(get_turf(src), 'sound/machines/buzz-two.ogg', 50, 0)
+ playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0)
defib.deductcharge(revivecost)
update_icon()
cooldown = 1
defib.cooldowncheck(user)
else
user.visible_message("[defib] buzzes: Patient is not in a valid state. Operation aborted.")
- playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 50, 0)
+ playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0)
busy = 0
update_icon()
else
diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm
index 2ff4fc4e0e4..f1b1ad4dc09 100644
--- a/code/game/objects/items/weapons/explosives.dm
+++ b/code/game/objects/items/weapons/explosives.dm
@@ -83,14 +83,15 @@
spawn(timer*10)
if(target && !target.gc_destroyed)
explode(get_turf(target))
- qdel(src)
-
+ else
+ qdel(src)
/obj/item/weapon/c4/proc/explode(var/turf/location)
location.ex_act(2, target)
explosion(location,0,0,3)
if(target)
target.overlays -= image_overlay
+ qdel(src)
/obj/item/weapon/c4/attack(mob/M as mob, mob/user as mob, def_zone)
return
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/gift_wrappaper.dm b/code/game/objects/items/weapons/gift_wrappaper.dm
index 5396cdd8940..600e20cfc62 100644
--- a/code/game/objects/items/weapons/gift_wrappaper.dm
+++ b/code/game/objects/items/weapons/gift_wrappaper.dm
@@ -22,7 +22,11 @@
icon_state = "giftcrate[rand(1,5)]"
/obj/item/weapon/a_gift/attack_self(mob/M as mob)
- var/gift_type = pick(/obj/item/weapon/sord,
+ if(M && M.mind && M.mind.special_role == "Santa")
+ M << "You're supposed to be spreading gifts, not opening them yourself!"
+ return
+
+ var/gift_type_list = list(/obj/item/weapon/sord,
/obj/item/weapon/storage/wallet,
/obj/item/weapon/storage/photo_album,
/obj/item/weapon/storage/box/snappops,
@@ -36,35 +40,28 @@
/obj/item/weapon/grenade/smokebomb,
/obj/item/weapon/grown/corncob,
/obj/item/weapon/contraband/poster,
+ /obj/item/weapon/contraband/poster/legit,
/obj/item/weapon/book/manual/barman_recipes,
/obj/item/weapon/book/manual/chef_recipes,
/obj/item/weapon/bikehorn,
/obj/item/weapon/beach_ball,
/obj/item/weapon/beach_ball/holoball,
/obj/item/weapon/banhammer,
- /obj/item/toy/balloon,
- /obj/item/toy/crossbow,
- /obj/item/toy/gun,
- /obj/item/toy/katana,
- /obj/item/toy/prize/deathripley,
- /obj/item/toy/prize/durand,
- /obj/item/toy/prize/fireripley,
- /obj/item/toy/prize/gygax,
- /obj/item/toy/prize/honk,
- /obj/item/toy/prize/marauder,
- /obj/item/toy/prize/mauler,
- /obj/item/toy/prize/odysseus,
- /obj/item/toy/prize/phazon,
- /obj/item/toy/prize/ripley,
- /obj/item/toy/prize/seraph,
- /obj/item/toy/spinningtoy,
- /obj/item/toy/sword,
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/deus,
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris,
/obj/item/device/paicard,
/obj/item/device/violin,
/obj/item/weapon/storage/belt/utility/full,
- /obj/item/clothing/tie/horrible)
+ /obj/item/clothing/tie/horrible,
+ /obj/item/clothing/suit/jacket/leather,
+ /obj/item/clothing/suit/poncho,
+ /obj/item/clothing/suit/poncho/green,
+ /obj/item/clothing/suit/poncho/red)
+
+ gift_type_list += typesof(/obj/item/clothing/head/collectable) - /obj/item/clothing/head/collectable
+ gift_type_list += typesof(/obj/item/toy) - (((typesof(/obj/item/toy/cards) - /obj/item/toy/cards/deck) + /obj/item/toy/ammo) + /obj/item/toy) //All toys, except for abstract types and syndicate cards.
+
+ var/gift_type = pick(gift_type_list)
if(!ispath(gift_type,/obj/item)) return
diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm
index 3d5cebfd920..f28044bff28 100644
--- a/code/game/objects/items/weapons/grenades/chem_grenade.dm
+++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm
@@ -76,8 +76,6 @@
else if(stage == EMPTY && istype(I, /obj/item/device/assembly_holder))
var/obj/item/device/assembly_holder/A = I
- if(!A.secured)
- return
if(isigniter(A.a_left) == isigniter(A.a_right)) //Check if either part of the assembly has an igniter, but if both parts are igniters, then fuck it
return
diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm
index 32acca5e4b4..9de94916d1e 100644
--- a/code/game/objects/items/weapons/kitchen.dm
+++ b/code/game/objects/items/weapons/kitchen.dm
@@ -88,7 +88,7 @@
/obj/item/weapon/kitchen/utensil/knife/attack(target as mob, mob/living/user as mob)
if ((CLUMSY in user.mutations) && prob(50))
- user << " You accidentally cut yourself with the [src]."
+ user << " You accidentally cut yourself with \the [src]."
user.take_organ_damage(20)
return
playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1)
diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm
index d6b446dea03..7fe5bad8667 100644
--- a/code/game/objects/items/weapons/melee/energy.dm
+++ b/code/game/objects/items/weapons/melee/energy.dm
@@ -1,5 +1,11 @@
/obj/item/weapon/melee/energy
var/active = 0
+ var/force_on = 30 //force when active
+ var/throwforce_on = 20
+ var/icon_state_on = "axe1"
+ var/attack_verb_on = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
+ w_class = 2
+ var/w_class_on = 4
/obj/item/weapon/melee/energy/suicide_act(mob/user)
user.visible_message(pick("[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.", \
@@ -14,34 +20,22 @@
desc = "An energised battle axe."
icon_state = "axe0"
force = 40.0
- throwforce = 25.0
+ force_on = 150
+ throwforce = 25
+ throwforce_on = 30
hitsound = 'sound/weapons/bladeslice.ogg'
throw_speed = 3
throw_range = 5
- w_class = 3.0
+ w_class = 3
+ w_class_on = 5
flags = CONDUCT | NOSHIELD
origin_tech = "combat=3"
attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut")
+ attack_verb_on = null
/obj/item/weapon/melee/energy/axe/suicide_act(mob/user)
- user.visible_message("[user] swings the [src.name] towards /his head! It looks like \he's trying to commit suicide.")
- return (BRUTELOSS|FIRELOSS)
-
-/obj/item/weapon/melee/energy/axe/attack_self(mob/user)
- active = !active
- if(active)
- user << "[src] is now energised."
- force = 150 //these are the drugs, friend
- hitsound = 'sound/weapons/blade1.ogg'
- icon_state = "axe1"
- w_class = 5
- else
- user << "[src] can now be concealed."
- force = 40
- hitsound = 'sound/weapons/bladeslice.ogg'
- icon_state = "axe0"
- w_class = 3 //it goes back to three you goose
- add_fingerprint(user)
+ user.visible_message("[user] swings the [src.name] towards /his head! It looks like \he's trying to commit suicide.")
+ return (BRUTELOSS|FIRELOSS)
/obj/item/weapon/melee/energy/sword
name = "energy sword"
@@ -52,11 +46,10 @@
hitsound = "swing_hit" //it starts deactivated
throw_speed = 3
throw_range = 5
- w_class = 2.0
flags = NOSHIELD
+ attack_verb = null
origin_tech = "magnets=3;syndicate=4"
var/hacked = 0
- item_color = null
/obj/item/weapon/melee/energy/sword/New()
if(item_color == null)
@@ -67,33 +60,31 @@
return 1
return 0
-/obj/item/weapon/melee/energy/sword/attack_self(mob/living/user)
+/obj/item/weapon/melee/energy/attack_self(mob/living/user)
if ((CLUMSY in user.mutations) && prob(50))
user << "You accidentally cut yourself with [src], like a doofus!"
user.take_organ_damage(5,5)
active = !active
if (active)
- force = 30
- throwforce = 20
+ force = force_on
+ throwforce = throwforce_on
hitsound = 'sound/weapons/blade1.ogg'
- attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
- if(istype(src,/obj/item/weapon/melee/energy/sword/pirate))
- icon_state = "cutlass1"
+ if(attack_verb_on)
+ attack_verb = attack_verb_on
+ if(!item_color)
+ icon_state = icon_state_on
else
icon_state = "sword[item_color]"
- w_class = 4
+ w_class = w_class_on
playsound(user, 'sound/weapons/saberon.ogg', 35, 1) //changed it from 50% volume to 35% because deafness
user << "[src] is now active."
else
- force = 3
- throwforce = 5.0
- hitsound = "swing_hit"
- attack_verb = null
- if(istype(src,/obj/item/weapon/melee/energy/sword/pirate))
- icon_state = "cutlass0"
- else
- icon_state = "sword0"
- w_class = 2
+ force = initial(force)
+ throwforce = initial(throwforce)
+ hitsound = initial(hitsound)
+ attack_verb = initial(attack_verb)
+ icon_state = initial(icon_state)
+ w_class = initial(w_class)
playsound(user, 'sound/weapons/saberoff.ogg', 35, 1) //changed it from 50% volume to 35% because deafness
user << "[src] can now be concealed."
add_fingerprint(user)
@@ -166,6 +157,10 @@
name = "energy cutlass"
desc = "Arrrr matey."
icon_state = "cutlass0"
+ icon_state_on = "cutlass1"
+
+/obj/item/weapon/melee/energy/sword/pirate/New()
+ return
/obj/item/weapon/melee/energy/blade
name = "energy blade"
@@ -173,12 +168,12 @@
icon_state = "blade"
force = 30 //Normal attacks deal esword damage
hitsound = 'sound/weapons/blade1.ogg'
+ active = 1
throwforce = 1//Throwing or dropping the item deletes it.
throw_speed = 3
throw_range = 1
w_class = 4.0//So you can't hide it in your pocket or some such.
flags = NOSHIELD
- attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
var/datum/effect/effect/system/spark_spread/spark_system
//Most of the other special functions are handled in their own files. aka special snowflake code so kewl
@@ -192,3 +187,6 @@
/obj/item/weapon/melee/energy/blade/proc/throw()
qdel(src)
+
+/obj/item/weapon/melee/energy/blade/attack_self(mob/user)
+ return
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/shields.dm b/code/game/objects/items/weapons/shields.dm
index aa2cb519a56..97a8d47e844 100644
--- a/code/game/objects/items/weapons/shields.dm
+++ b/code/game/objects/items/weapons/shields.dm
@@ -108,7 +108,7 @@
throw_speed = 2
w_class = 4
slot_flags = SLOT_BACK
- user << "You extend the [src]."
+ user << "You extend \the [src]."
else
force = 3
throwforce = 3
diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm
index 6b562996b46..f205aa88ef5 100644
--- a/code/game/objects/items/weapons/storage/backpack.dm
+++ b/code/game/objects/items/weapons/storage/backpack.dm
@@ -46,11 +46,12 @@
investigate_log("has become a singularity. Caused by [user.key]","singulo")
user << "The Bluespace interfaces of the two devices catastrophically malfunction!"
qdel(W)
- var/obj/machinery/singularity/singulo = new /obj/machinery/singularity (get_turf(src))
+ var/obj/singularity/singulo = new /obj/singularity (get_turf(src))
singulo.energy = 300 //should make it a bit bigger~
message_admins("[key_name_admin(user)] detonated a bag of holding")
log_game("[key_name(user)] detonated a bag of holding")
qdel(src)
+ singulo.process()
return
..()
diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm
index 8ef7199f100..f7cd722f7d4 100644
--- a/code/game/objects/items/weapons/storage/storage.dm
+++ b/code/game/objects/items/weapons/storage/storage.dm
@@ -304,16 +304,10 @@
if(M.client)
M.client.screen -= W
- if(new_location)
- if(ismob(loc))
- W.dropped(usr)
- if(ismob(new_location))
- W.layer = 20
- else
- W.layer = initial(W.layer)
- W.loc = new_location
- else
- W.loc = get_turf(src)
+ if(ismob(loc))
+ W.dropped(usr)
+ W.layer = initial(W.layer)
+ W.loc = new_location
if(usr)
orient2hud(usr)
diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm
index c21bb64f252..7c7b9857c5c 100644
--- a/code/game/objects/items/weapons/stunbaton.dm
+++ b/code/game/objects/items/weapons/stunbaton.dm
@@ -79,7 +79,7 @@
bcell.updateicon()
bcell.loc = get_turf(src.loc)
bcell = null
- user << "You remove the cell from the [src]."
+ user << "You remove the cell from [src]."
status = 0
update_icon()
return
diff --git a/code/game/objects/items/weapons/tanks/jetpack.dm b/code/game/objects/items/weapons/tanks/jetpack.dm
index f261c0aeb09..6bb7562f847 100644
--- a/code/game/objects/items/weapons/tanks/jetpack.dm
+++ b/code/game/objects/items/weapons/tanks/jetpack.dm
@@ -41,6 +41,7 @@
icon_state = initial(icon_state)
// item_state = initial(item_state)
ion_trail.stop()
+ usr << "You toggle the jetpack [on? "on":"off"]."
return
diff --git a/code/game/objects/items/weapons/tanks/watertank.dm b/code/game/objects/items/weapons/tanks/watertank.dm
index f2e03125e72..a5ca514453b 100644
--- a/code/game/objects/items/weapons/tanks/watertank.dm
+++ b/code/game/objects/items/weapons/tanks/watertank.dm
@@ -70,6 +70,36 @@
..()
return
+/obj/item/weapon/watertank/attack_hand(mob/user as mob)
+ if(src.loc == user)
+ ui_action_click()
+ return
+ ..()
+
+/obj/item/weapon/watertank/MouseDrop(obj/over_object)
+ if(ishuman(src.loc))
+ var/mob/living/carbon/human/H = src.loc
+ switch(over_object.name)
+ if("r_hand")
+ if(H.r_hand)
+ return
+ if(!H.unEquip(src))
+ return
+ H.put_in_r_hand(src)
+ if("l_hand")
+ if(H.l_hand)
+ return
+ if(!H.unEquip(src))
+ return
+ H.put_in_l_hand(src)
+ return
+
+/obj/item/weapon/watertank/attackby(obj/item/W, mob/user)
+ if(W == noz)
+ remove_noz(user)
+ return
+ ..()
+
// This mister item is intended as an extension of the watertank and always attached to it.
// Therefore, it's designed to be "locked" to the player's hands or extended back onto
// the watertank backpack. Allowing it to be placed elsewhere or created without a parent
@@ -84,6 +114,7 @@
amount_per_transfer_from_this = 50
possible_transfer_amounts = list(25,50,100)
volume = 500
+ flags = NODROP | OPENCONTAINER | NOBLUDGEON
var/obj/item/weapon/watertank/tank
@@ -116,6 +147,11 @@
if(loc != tank.loc)
loc = tank.loc
+/obj/item/weapon/reagent_containers/spray/mister/afterattack(obj/target, mob/user, proximity)
+ if(target.loc == loc || target == tank) //Safety check so you don't fill your mister with mutagen or something and then blast yourself in the face with it putting it away
+ return
+ ..()
+
//Janitor tank
/obj/item/weapon/watertank/janitor
name = "backpack water tank"
@@ -127,7 +163,6 @@
..()
reagents.add_reagent("cleaner", 500)
-
/obj/item/weapon/reagent_containers/spray/mister/janitor
name = "janitor spray nozzle"
desc = "A janitorial spray nozzle attached to a watertank, designed to clean up large messes."
@@ -157,39 +192,14 @@
item_state = "waterbackpackatmos"
volume = 200
-/obj/item/weapon/watertank/atmos/attack_hand(mob/user as mob)
- if(src.loc == user)
- ui_action_click()
- return
- ..()
-
-/obj/item/weapon/watertank/atmos/MouseDrop(obj/over_object)
- if(ishuman(src.loc))
- var/mob/living/carbon/human/H = src.loc
- switch(over_object.name)
- if("r_hand")
- if(!H.unEquip(src))
- return
- H.put_in_r_hand(src)
- if("l_hand")
- if(!H.unEquip(src))
- return
- H.put_in_l_hand(src)
- return
-
-/obj/item/weapon/watertank/atmos/attackby(obj/item/W, mob/user)
- if(istype(W, /obj/item/weapon/extinguisher/mini/nozzle))
- remove_noz(user)
- return
- ..()
-
/obj/item/weapon/watertank/atmos/make_noz()
return new /obj/item/weapon/extinguisher/mini/nozzle(src)
/obj/item/weapon/watertank/atmos/dropped(mob/user as mob)
icon_state = "waterbackpackatmos"
- var/obj/item/weapon/extinguisher/mini/nozzle/N = noz
- N.nozzle_mode = 0
+ if(istype(noz, /obj/item/weapon/extinguisher/mini/nozzle))
+ var/obj/item/weapon/extinguisher/mini/nozzle/N = noz
+ N.nozzle_mode = 0
/obj/item/weapon/extinguisher/mini/nozzle
name = "extinguisher nozzle"
diff --git a/code/game/objects/items/weapons/teleportation.dm b/code/game/objects/items/weapons/teleportation.dm
index be5bc7c9402..7dd2aa930d7 100644
--- a/code/game/objects/items/weapons/teleportation.dm
+++ b/code/game/objects/items/weapons/teleportation.dm
@@ -138,7 +138,7 @@ Frequency:
/obj/item/weapon/hand_tele/attack_self(mob/user as mob)
var/turf/current_location = get_turf(user)//What turf is the user on?
- if(!current_location||current_location.z==2||current_location.z>=7)//If turf was not found or they're on z level 2 or >7 which does not currently exist.
+ if(!current_location||current_location.z==2||current_location.z>=7 || !istype(user.loc, /turf))//If turf was not found or they're on z level 2 or >7 which does not currently exist. or if user is not located on a turf
user << "\The [src] is malfunctioning."
return
var/list/L = list( )
diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm
index fc4b26368f2..6c9ba5f5d96 100644
--- a/code/game/objects/items/weapons/tools.dm
+++ b/code/game/objects/items/weapons/tools.dm
@@ -210,9 +210,9 @@
if(1)
force = 15
damtype = "fire"
- update_icon()
if(prob(5))
remove_fuel(1)
+ update_icon()
//This is to start fires. process() is only called if the welder is on.
var/turf/location = loc
@@ -283,14 +283,12 @@
/obj/item/weapon/weldingtool/proc/check_fuel(mob/user)
if(get_fuel() <= 0 && welding)
toggle(user, 1)
-
+ update_icon()
//mob icon update
if(ismob(loc))
var/mob/M = loc
- if(M.r_hand == src)
- M.update_inv_r_hand(0)
- else if(M.l_hand == src)
- M.update_inv_l_hand(0)
+ M.update_inv_r_hand(0)
+ M.update_inv_l_hand(0)
return 0
return 1
@@ -321,7 +319,7 @@
damtype = "brute"
hitsound = "swing_hit"
icon_state = "welder"
- welding = 0
+
//Decides whether or not to damage a player's eyes based on what they're wearing as protection
@@ -416,7 +414,6 @@
m_amt = 70
g_amt = 120
origin_tech = "engineering=4;plasmatech=3"
- icon_state = "ewelder"
var/last_gen = 0
diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm
index 3b0ba69ed11..ec56c0adf0c 100644
--- a/code/game/objects/items/weapons/twohanded.dm
+++ b/code/game/objects/items/weapons/twohanded.dm
@@ -224,7 +224,7 @@ obj/item/weapon/twohanded/
sleep(1)
/obj/item/weapon/twohanded/dualsaber/proc/impale(mob/living/user as mob)
- user << "You twirl around a bit before losing your balance and impaling yourself on the [src]."
+ user << "You twirl around a bit before losing your balance and impaling yourself on \the [src]."
if (force_wielded)
user.take_organ_damage(20,25)
else
@@ -242,7 +242,7 @@ obj/item/weapon/twohanded/
if(istype(loc, /mob/living))
if (HULK in M.mutations)
loc << "You lack the grace to wield this to its full extent."
- hitsound = 'sound/weapons/blade1.ogg'
+ hitsound = 'sound/weapons/blade1.ogg'
/obj/item/weapon/twohanded/dualsaber/unwield() //Specific unwield () to switch hitsounds.
diff --git a/code/game/objects/items/weapons/vending_items.dm b/code/game/objects/items/weapons/vending_items.dm
index 06575cb5b08..c88351ffb13 100644
--- a/code/game/objects/items/weapons/vending_items.dm
+++ b/code/game/objects/items/weapons/vending_items.dm
@@ -56,4 +56,9 @@
/obj/item/weapon/vending_refill/autodrobe
machine_name = "AutoDrobe"
icon_state = "refill_costume"
- charges = 19// of 58
+ charges = 20// of 60
+
+/obj/item/weapon/vending_refill/clothing
+ machine_name = "ClothesMate"
+ icon_state = "refill_clothes"
+ charges = 20// of 62
diff --git a/code/game/objects/structures/crates_lockers/bins.dm b/code/game/objects/structures/crates_lockers/bins.dm
index d18db0702c4..275eccc890f 100644
--- a/code/game/objects/structures/crates_lockers/bins.dm
+++ b/code/game/objects/structures/crates_lockers/bins.dm
@@ -51,15 +51,15 @@
. = ..(O, user, 0, 0, 0)
if(.)
if(O != user)
- user.visible_message("[user] tries to stuff [O] into the [src].", \
- "You try to stuff [O] into the [src].", \
+ user.visible_message("[user] tries to stuff [O] into [src].", \
+ "You try to stuff [O] into [src].", \
"You hear clanging.")
if (!do_after(user, 40))
return
if(!..(O, user, 0, 0))
return
- user.visible_message("[user] stuffs [O] into the [src].", \
- "You stuff [O] into the [src].", \
+ user.visible_message("[user] stuffs [O] into[src].", \
+ "You stuff [O] into [src].", \
"You hear a loud metal bang.")
insert(O, 1, !opened)
if(opened)
diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index b84816abf0a..54ed6539c1b 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -144,7 +144,7 @@
/obj/structure/closet/attack_animal(mob/living/simple_animal/user as mob)
if(user.environment_smash)
user.do_attack_animation(src)
- visible_message("[user] destroys the [src].")
+ visible_message("[user] destroys \the [src].")
dump_contents()
qdel(src)
@@ -170,7 +170,7 @@
if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
if(WT.remove_fuel(0,user))
- user << "You begin cutting the [src] apart..."
+ user << "You begin cutting \the [src] apart..."
playsound(loc, 'sound/items/Welder.ogg', 40, 1)
if(do_after(user,40,5,1))
if( !src.opened || !istype(src, /obj/structure/closet) || !user || !WT || !WT.isOn() || !user.loc )
@@ -192,7 +192,7 @@
else if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
if(WT.remove_fuel(0,user))
- user << "You begin [welded ? "unwelding":"welding"] the [src]..."
+ user << "You begin [welded ? "unwelding":"welding"] \the [src]..."
playsound(loc, 'sound/items/Welder2.ogg', 40, 1)
if(do_after(user,40,5,1))
if(src.opened || !istype(src, /obj/structure/closet) || !user || !WT || !WT.isOn() || !user.loc )
@@ -298,8 +298,8 @@
if(istype(user.loc, /obj/structure/closet/critter) && !welded)
breakout_time = 0.75 //45 seconds if it's an unwelded critter crate
- if(opened || (!welded && !locked))
- return //Door's open, not locked or welded, no point in resisting.
+ if( opened || (!welded && !locked && !istype(src.loc, /obj/mecha)) )
+ return //Door's open, not locked or welded or inside a mech, no point in resisting.
//okay, so the closet is either welded or locked... resist!!!
user.changeNext_move(CLICK_CD_BREAKOUT)
@@ -308,7 +308,7 @@
for(var/mob/O in viewers(src))
O << "[src] begins to shake violently!"
if(do_after(user,(breakout_time*60*10))) //minutes * 60seconds * 10deciseconds
- if(!user || user.stat != CONSCIOUS || user.loc != src || opened || (!locked && !welded))
+ if(!user || user.stat != CONSCIOUS || user.loc != src || opened || (!locked && !welded && !istype(src.loc, /obj/mecha)) )
return
//we check after a while whether there is a point of resisting anymore and whether the user is capable of resisting
@@ -317,6 +317,11 @@
broken = 1 //applies to secure lockers only
visible_message("[user] successfully broke out of [src]!")
user << "You successfully break out of [src]!"
+ if(istype( src.loc, /obj/structure/bigDelivery))
+ var/obj/structure/bigDelivery/D = src.loc
+ qdel(D)
+ else if(istype( src.loc, /obj/mecha))
+ src.loc = get_turf(src.loc)
open()
else
user << "You fail to break out of [src]!"
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
index 0d8cab77ecc..7bb382d60a7 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
@@ -129,12 +129,12 @@
/obj/structure/closet/secure_closet/chemical
name = "chemical closet"
desc = "Store dangerous chemicals in here."
- icon_state = "medical1"
- icon_closed = "medical"
- icon_locked = "medical1"
+ icon_state = "chemical1"
+ icon_closed = "chemical"
+ icon_locked = "chemical1"
icon_opened = "medicalopen"
- icon_broken = "medicalbroken"
- icon_off = "medicaloff"
+ icon_broken = "chemicalbroken"
+ icon_off = "chemicaloff"
req_access = list(access_chemistry)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
index ed8584da142..325757eef6d 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
@@ -47,7 +47,7 @@
new /obj/item/clothing/shoes/sneakers/brown(src)
new /obj/item/weapon/storage/box/ids(src)
new /obj/item/weapon/storage/box/ids(src)
- new /obj/item/clothing/suit/armor/vest(src)
+ new /obj/item/clothing/suit/armor/vest/alt(src)
new /obj/item/weapon/gun/energy/gun(src)
new /obj/item/device/flash/handheld(src)
new /obj/item/clothing/glasses/sunglasses(src)
@@ -74,16 +74,15 @@
new /obj/item/device/radio/headset/heads/hos(src)
new /obj/item/clothing/under/hosparadefem(src)
new /obj/item/clothing/under/hosparademale(src)
- new /obj/item/clothing/suit/armor/hos/trenchcoat(src)
- new /obj/item/clothing/under/rank/head_of_security/formal(src)
- new /obj/item/clothing/head/HoS/beret(src)
+ new /obj/item/clothing/suit/armor/hos(src)
+ new /obj/item/clothing/head/HoS(src)
new /obj/item/clothing/glasses/hud/security/eyepatch(src)
new /obj/item/weapon/storage/lockbox/loyalty(src)
new /obj/item/weapon/storage/box/flashbangs(src)
new /obj/item/clothing/mask/gas/sechailer/swat(src)
new /obj/item/weapon/shield/riot/tele(src)
new /obj/item/weapon/melee/baton/loaded(src)
- new /obj/item/weapon/gun/energy/gun(src)
+ new /obj/item/weapon/gun/energy/gun/advtaser(src)
new /obj/item/weapon/storage/belt/security(src)
new /obj/item/clothing/suit/toggle/wintercoat/security(src)
return
@@ -103,18 +102,17 @@
/obj/structure/closet/secure_closet/warden/New()
..()
new /obj/item/device/radio/headset/headset_sec(src)
- new /obj/item/clothing/suit/armor/vest/warden(src)
+ new /obj/item/clothing/suit/armor/vest/warden/(src)
new /obj/item/clothing/head/warden(src)
- new /obj/item/clothing/suit/armor/vest(src)
- new /obj/item/clothing/under/rank/warden/formal(src)
- new /obj/item/clothing/head/warden/drill(src)
+ new /obj/item/clothing/suit/armor/vest/warden/alt(src)
+ new /obj/item/clothing/head/beret/sec/navywarden(src)
new /obj/item/clothing/glasses/hud/security/sunglasses(src)
new /obj/item/clothing/mask/gas/sechailer(src)
new /obj/item/weapon/storage/box/flashbangs(src)
new /obj/item/weapon/storage/box/zipties(src)
new /obj/item/weapon/reagent_containers/spray/pepper(src)
new /obj/item/weapon/melee/baton/loaded(src)
- new /obj/item/weapon/gun/energy/taser(src)
+ new /obj/item/weapon/gun/energy/gun/advtaser(src)
new /obj/item/weapon/storage/belt/security(src)
new /obj/item/clothing/suit/toggle/wintercoat/security(src)
return
@@ -134,13 +132,11 @@
/obj/structure/closet/secure_closet/security/New()
..()
new /obj/item/clothing/suit/armor/vest(src)
- new /obj/item/clothing/head/helmet(src)
new /obj/item/device/radio/headset/headset_sec/alt(src)
+ new /obj/item/clothing/head/soft/sec(src)
new /obj/item/weapon/reagent_containers/spray/pepper(src)
- new /obj/item/clothing/mask/gas/sechailer(src)
new /obj/item/device/flash/handheld(src)
new /obj/item/weapon/grenade/flashbang(src)
- new /obj/item/weapon/gun/energy/taser(src)
new /obj/item/weapon/storage/belt/security(src)
new /obj/item/clothing/glasses/hud/security/sunglasses(src)
new /obj/item/clothing/suit/toggle/wintercoat/security(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm
index 0145e5f9c33..4522ee5f51e 100644
--- a/code/game/objects/structures/crates_lockers/closets/syndicate.dm
+++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm
@@ -32,11 +32,11 @@
new /obj/item/ammo_box/magazine/m10mm(src)
new /obj/item/weapon/storage/box/flashbangs(src)
new /obj/item/weapon/storage/box/teargas(src)
- new /obj/item/weapon/gun/projectile/automatic/bulldog(src)
- new /obj/item/weapon/gun/projectile/automatic/bulldog(src)
- new /obj/item/weapon/gun/projectile/automatic/bulldog(src)
- new /obj/item/weapon/gun/projectile/automatic/bulldog(src)
- new /obj/item/weapon/gun/projectile/automatic/bulldog(src)
+ new /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog(src)
+ new /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog(src)
+ new /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog(src)
+ new /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog(src)
+ new /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog(src)
new /obj/item/weapon/pinpointer/nukeop(src)
new /obj/item/weapon/pinpointer/nukeop(src)
new /obj/item/weapon/pinpointer/nukeop(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
index e5726239a9c..92128cf4bef 100644
--- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
+++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
@@ -28,12 +28,12 @@
new /obj/item/clothing/shoes/jackboots(src)
new /obj/item/clothing/shoes/jackboots(src)
new /obj/item/clothing/shoes/jackboots(src)
- new /obj/item/clothing/head/soft/sec(src)
- new /obj/item/clothing/head/soft/sec(src)
- new /obj/item/clothing/head/soft/sec(src)
new /obj/item/clothing/head/beret/sec(src)
new /obj/item/clothing/head/beret/sec(src)
new /obj/item/clothing/head/beret/sec(src)
+ new /obj/item/clothing/head/soft/sec(src)
+ new /obj/item/clothing/head/soft/sec(src)
+ new /obj/item/clothing/head/soft/sec(src)
new /obj/item/clothing/head/santa(src)
new /obj/item/clothing/head/santa(src)
new /obj/item/clothing/head/santa(src)
@@ -195,15 +195,18 @@
/obj/structure/closet/wardrobe/white/medical/New()
new /obj/item/clothing/under/rank/nursesuit (src)
new /obj/item/clothing/head/nursehat (src)
- new /obj/item/clothing/suit/toggle/labcoat/emt(src)
- new /obj/item/clothing/suit/toggle/labcoat/emt(src)
- new /obj/item/clothing/suit/toggle/labcoat/emt(src)
new /obj/item/clothing/under/rank/medical/blue(src)
new /obj/item/clothing/under/rank/medical/green(src)
new /obj/item/clothing/under/rank/medical/purple(src)
+ new /obj/item/clothing/suit/toggle/labcoat/emt(src)
+ new /obj/item/clothing/suit/toggle/labcoat/emt(src)
+ new /obj/item/clothing/suit/toggle/labcoat/emt(src)
new /obj/item/clothing/shoes/sneakers/black(src)
new /obj/item/clothing/shoes/sneakers/black(src)
new /obj/item/clothing/shoes/sneakers/black(src)
+ new /obj/item/clothing/head/soft/emt(src)
+ new /obj/item/clothing/head/soft/emt(src)
+ new /obj/item/clothing/head/soft/emt(src)
return
/obj/structure/closet/wardrobe/pjs
diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm
index d5037bb0db4..7e25264fb9c 100644
--- a/code/game/objects/structures/false_walls.dm
+++ b/code/game/objects/structures/false_walls.dm
@@ -118,7 +118,7 @@
else
user << "You can't reach, close it first!"
- if(istype(W, /obj/item/weapon/pickaxe/plasmacutter) || istype(W, /obj/item/weapon/pickaxe/diamonddrill) || istype(W, /obj/item/weapon/melee/energy/blade))
+ if(istype(W, /obj/item/weapon/pickaxe/plasmacutter) || istype(W, /obj/item/weapon/pickaxe/drill/diamonddrill) || istype(W, /obj/item/weapon/melee/energy/blade))
dismantle(user)
/obj/structure/falsewall/proc/dismantle(mob/user)
diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm
index 1db34a848e9..4768a2941a2 100644
--- a/code/game/objects/structures/girders.dm
+++ b/code/game/objects/structures/girders.dm
@@ -39,7 +39,7 @@
new /obj/item/stack/sheet/metal(get_turf(src))
qdel(src)
- else if(istype(W, /obj/item/weapon/pickaxe/diamonddrill))
+ else if(istype(W, /obj/item/weapon/pickaxe/drill/diamonddrill))
user << "You drill through the girder!"
new /obj/item/stack/sheet/metal(get_turf(src))
qdel(src)
@@ -177,7 +177,7 @@
if (P.pipe_type in list(0, 1, 5)) //simple pipes, simple bends, and simple manifolds.
user.drop_item()
P.loc = src.loc
- user << "You fit the pipe into the [src]!"
+ user << "You fit the pipe into \the [src]!"
else
..()
@@ -273,7 +273,7 @@
transfer_fingerprints_to(R)
qdel(src)
- else if(istype(W, /obj/item/weapon/pickaxe/diamonddrill))
+ else if(istype(W, /obj/item/weapon/pickaxe/drill/diamonddrill))
user << "You drill through the girder!"
if(do_after(user, 5))
var/obj/effect/decal/remains/human/R = new (get_turf(src))
diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm
index 25128f564a9..fdb8eea13d1 100644
--- a/code/game/objects/structures/grille.dm
+++ b/code/game/objects/structures/grille.dm
@@ -138,8 +138,8 @@
if(!shock(user, 90))
playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1)
anchored = !anchored
- user.visible_message("[user] [anchored ? "fastens" : "unfastens"] the [src].", \
- "You have [anchored ? "fastened the [src] to" : "unfastened the [src] from"] the floor.")
+ user.visible_message("[user] [anchored ? "fastens" : "unfastens"] [src].", \
+ "You have [anchored ? "fastened [src] to" : "unfastened [src] from"] the floor.")
return
else if(istype(W, /obj/item/stack/rods) && destroyed)
var/obj/item/stack/rods/R = W
diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm
index f07deae0109..fd314a167c3 100644
--- a/code/game/objects/structures/morgue.dm
+++ b/code/game/objects/structures/morgue.dm
@@ -1,40 +1,108 @@
/* Morgue stuff
* Contains:
* Morgue
- * Morgue trays
- * Creamatorium
- * Creamatorium trays
+ * Morgue tray
+ * Crematorium
+ * Crematorium tray
+ * Crematorium button
*/
/*
- * Morgue
+ * Bodycontainer
+ * Parent class for morgue and crematorium
+ * For overriding only
*/
-
-/obj/structure/morgue
- name = "Morgue"
- desc = "Used to keep bodies in until someone fetches them."
+/obj/structure/bodycontainer
icon = 'icons/obj/stationobjs.dmi'
icon_state = "morgue1"
density = 1
- var/obj/structure/m_tray/connected = null
anchored = 1.0
-/obj/structure/morgue/New()
- connected = new(src)
- connected.connected = src
+ var/obj/structure/tray/connected = null
+ var/locked = 0
+ var/opendir = SOUTH
+
+/obj/structure/bodycontainer/New()
..()
-/obj/structure/morgue/Destroy()
+/obj/structure/bodycontainer/Destroy()
open()
if(connected)
qdel(connected)
connected = null
..()
-/obj/structure/morgue/on_log()
+/obj/structure/bodycontainer/on_log()
update_icon()
-/obj/structure/morgue/update_icon()
+/obj/structure/bodycontainer/update_icon()
+ return
+
+/obj/structure/bodycontainer/alter_health()
+ return src.loc
+
+/obj/structure/bodycontainer/attack_paw(mob/user as mob)
+ return src.attack_hand(user)
+
+/obj/structure/bodycontainer/attack_hand(mob/user as mob)
+ if(locked)
+ user << "It's locked."
+ return
+ if(!connected)
+ user << "That doesn't appear to have a tray."
+ return
+ if(connected.loc == src)
+ open()
+ else
+ close()
+ add_fingerprint(user)
+
+/obj/structure/bodycontainer/attackby(P as obj, mob/user as mob)
+ if (istype(P, /obj/item/weapon/pen))
+ var/t = input(user, "What would you like the label to be?", text("[]", name), null) as text
+ if (user.get_active_hand() != P)
+ return
+ if ((!in_range(src, usr) && src.loc != user))
+ return
+ t = copytext(sanitize(t),1,MAX_MESSAGE_LEN)
+ if (t)
+ name = text("[]- '[]'", initial(name), t)
+ else
+ name = initial(name)
+ add_fingerprint(user)
+
+/obj/structure/bodycontainer/container_resist()
+ open()
+
+/obj/structure/bodycontainer/proc/open()
+ playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
+ var/turf/T = get_step(src, opendir)
+ for(var/atom/movable/A in src)
+ A.loc = T
+ update_icon()
+
+/obj/structure/bodycontainer/proc/close()
+ playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
+ for(var/atom/movable/A in connected.loc)
+ if(!A.anchored || A == connected)
+ A.loc = src
+ update_icon()
+
+/*
+ * Morgue
+ */
+/obj/structure/bodycontainer/morgue
+ name = "morgue"
+ desc = "Used to keep bodies in until someone fetches them."
+ icon_state = "morgue1"
+ opendir = EAST
+
+/obj/structure/bodycontainer/morgue/New()
+ connected = new/obj/structure/tray/m_tray(src)
+ connected.connected = src
+ ..()
+
+/obj/structure/bodycontainer/morgue/update_icon()
if (!connected || connected.loc != src) //open or the tray broke off somehow
src.icon_state = "morgue0"
else
@@ -55,128 +123,29 @@
src.icon_state = "morgue4"//clone that mofo
break
-/obj/structure/morgue/alter_health()
- return src.loc
-
-/obj/structure/morgue/attack_paw(mob/user as mob)
- return src.attack_hand(user)
-
-/obj/structure/morgue/attack_hand(mob/user as mob)
- if(!connected)
- user << "That doesn't appear to have a tray."
- return
- if(connected.loc == src)
- open()
- else
- close()
- add_fingerprint(user)
-
-/obj/structure/morgue/attackby(P as obj, mob/user as mob)
- if (istype(P, /obj/item/weapon/pen))
- var/t = input(user, "What would you like the label to be?", text("[]", src.name), null) as text
- if (user.get_active_hand() != P)
- return
- if ((!in_range(src, usr) && src.loc != user))
- return
- t = copytext(sanitize(t),1,MAX_MESSAGE_LEN)
- if (t)
- src.name = text("Morgue- '[]'", t)
- else
- src.name = "Morgue"
- add_fingerprint(user)
-
-/obj/structure/morgue/container_resist()
- open()
-
-/obj/structure/morgue/proc/open()
- playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
- var/turf/T = get_step(src, EAST)
- for(var/atom/movable/A in src)
- A.loc = T
- update_icon()
-
-/obj/structure/morgue/proc/close()
- playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
- for(var/atom/movable/A in connected.loc)
- if(!A.anchored || A == connected)
- A.loc = src
- update_icon()
-
-
-/*
- * Morgue tray
- */
-/obj/structure/m_tray
- name = "morgue tray"
- desc = "Apply corpse before closing."
- icon = 'icons/obj/stationobjs.dmi'
- icon_state = "morguet"
- density = 1
- layer = 2.0
- var/obj/structure/morgue/connected = null
- anchored = 1.0
- throwpass = 1
-
-/obj/structure/m_tray/Destroy()
- if(connected)
- connected.connected = null
- connected.update_icon()
- connected = null
- ..()
-
-/obj/structure/m_tray/attack_paw(mob/user as mob)
- return src.attack_hand(user)
-
-/obj/structure/m_tray/attack_hand(mob/user as mob)
- if (src.connected)
- connected.close()
- add_fingerprint(user)
- else
- user << "That's not connected to anything."
-
-/obj/structure/m_tray/MouseDrop_T(atom/movable/O as mob|obj, mob/user as mob)
- if ((!( istype(O, /atom/movable) ) || O.anchored || get_dist(user, src) > 1 || get_dist(user, O) > 1 || user.contents.Find(src) || user.contents.Find(O)))
- return
- if (!ismob(O) && !istype(O, /obj/structure/closet/body_bag))
- return
- if (!ismob(user) || user.stat || user.lying || user.stunned)
- return
- O.loc = src.loc
- if (user != O)
- for(var/mob/B in viewers(user, 3))
- B.show_message("[user] stuffs [O] into [src]!", 1)
- return
-
-
/*
* Crematorium
*/
-
-/obj/structure/crematorium
+var/global/list/crematoriums = new/list()
+/obj/structure/bodycontainer/crematorium
name = "crematorium"
desc = "A human incinerator. Works well on barbeque nights."
- icon = 'icons/obj/stationobjs.dmi'
icon_state = "crema1"
- density = 1
- var/obj/structure/c_tray/connected = null
- anchored = 1.0
- var/cremating = 0
+ opendir = SOUTH
var/id = 1
- var/locked = 0
-/obj/structure/crematorium/New()
- connected = new(src)
+/obj/structure/bodycontainer/crematorium/Destroy()
+ crematoriums.Remove(src)
+ ..()
+
+/obj/structure/bodycontainer/crematorium/New()
+ connected = new/obj/structure/tray/c_tray(src)
connected.connected = src
+
+ crematoriums.Add(src)
..()
-/obj/structure/crematorium/Destroy()
- open()
- if(connected)
- qdel(connected)
- connected = null
- ..()
-
-/obj/structure/crematorium/update_icon()
+/obj/structure/bodycontainer/crematorium/update_icon()
if(!connected || connected.loc != src)
icon_state = "crema0"
else
@@ -186,51 +155,13 @@
else
src.icon_state = "crema1"
- if(cremating)
+ if(locked)
src.icon_state = "crema_active"
return
-
-/obj/structure/crematorium/alter_health()
- return src.loc
-
-/obj/structure/crematorium/attack_paw(mob/user as mob)
- return src.attack_hand(user)
-
-/obj/structure/crematorium/attack_hand(mob/user as mob)
- if (cremating || locked)
- user << "It's locked."
- return
- if (!connected)
- user << "That doesn't appear to have a tray."
- return
- if(connected.loc == src)
- open()
- else
- close()
- add_fingerprint(user)
-
-/obj/structure/crematorium/attackby(P as obj, mob/user as mob)
- if (istype(P, /obj/item/weapon/pen))
- var/t = input(user, "What would you like the label to be?", text("[]", src.name), null) as text
- if (user.get_active_hand() != P)
- return
- if ((!in_range(src, usr) > 1 && src.loc != user))
- return
- t = copytext(sanitize(t),1,MAX_MESSAGE_LEN)
- if (t)
- src.name = text("Crematorium- '[]'", t)
- else
- src.name = "Crematorium"
- src.add_fingerprint(user)
- return
-
-/obj/structure/crematorium/container_resist()
- open()
-
-/obj/structure/crematorium/proc/cremate(mob/user as mob)
- if(cremating)
+/obj/structure/bodycontainer/crematorium/proc/cremate(mob/user as mob)
+ if(locked)
return //don't let you cremate something twice or w/e
if(contents.len <= 1)
@@ -240,7 +171,6 @@
else
audible_message("You hear a roar as the crematorium activates.")
- cremating = 1
locked = 1
update_icon()
@@ -261,57 +191,62 @@
new /obj/effect/decal/cleanable/ash(src)
sleep(30)
- cremating = 0
locked = 0
update_icon()
- playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
-
-/obj/structure/crematorium/proc/open()
- playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
- var/turf/T = get_step(src, SOUTH)
- for(var/atom/movable/A in src)
- A.loc = T
- update_icon()
-
-/obj/structure/crematorium/proc/close()
- playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
- for(var/atom/movable/A in connected.loc)
- if(!A.anchored || A == connected)
- A.loc = src
- update_icon()
+ playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) //you horrible people
/*
- * Crematorium tray
+Crematorium Switch
+*/
+/obj/machinery/crema_switch/attack_hand(mob/user as mob)
+ if(src.allowed(usr))
+ for (var/obj/structure/bodycontainer/crematorium/C in crematoriums)
+ if (C.id != id)
+ continue
+
+ C.cremate(user)
+ else
+ usr << "Access denied."
+ return
+
+/obj/machinery/crema_switch/attackby(obj/item/W as obj, mob/user as mob)
+ if(W.GetID())
+ attack_hand(user)
+ else
+ return ..()
+
+
+/*
+ * Generic Tray
+ * Parent class for morguetray and crematoriumtray
+ * For overriding only
*/
-/obj/structure/c_tray
- name = "crematorium tray"
- desc = "Apply body before burning."
+/obj/structure/tray
icon = 'icons/obj/stationobjs.dmi'
- icon_state = "cremat"
density = 1
- layer = 2.0
- var/obj/structure/crematorium/connected = null
+ layer = 2.9
+ var/obj/structure/bodycontainer/connected = null
anchored = 1.0
throwpass = 1
-/obj/structure/c_tray/Destroy()
+/obj/structure/tray/Destroy()
if(connected)
connected.connected = null
connected.update_icon()
connected = null
..()
-/obj/structure/c_tray/attack_paw(mob/user as mob)
+/obj/structure/tray/attack_paw(mob/user as mob)
return src.attack_hand(user)
-/obj/structure/c_tray/attack_hand(mob/user as mob)
+/obj/structure/tray/attack_hand(mob/user as mob)
if (src.connected)
connected.close()
add_fingerprint(user)
else
user << "That's not connected to anything."
-/obj/structure/c_tray/MouseDrop_T(atom/movable/O as mob|obj, mob/user as mob)
+/obj/structure/tray/MouseDrop_T(atom/movable/O as mob|obj, mob/user as mob)
if ((!( istype(O, /atom/movable) ) || O.anchored || get_dist(user, src) > 1 || get_dist(user, O) > 1 || user.contents.Find(src) || user.contents.Find(O)))
return
if (!ismob(O) && !istype(O, /obj/structure/closet/body_bag))
@@ -325,13 +260,19 @@
//Foreach goto(99)
return
-/obj/machinery/crema_switch/attack_hand(mob/user as mob)
- if(src.allowed(usr))
- for (var/obj/structure/crematorium/C in world)
- if (C.id == id)
- if (!C.cremating)
- C.cremate(user)
- else
- usr << "Access denied."
- return
+/*
+ * Crematorium tray
+ */
+/obj/structure/tray/c_tray
+ name = "crematorium tray"
+ desc = "Apply body before burning."
+ icon_state = "cremat"
+
+/*
+ * Morgue tray
+ */
+/obj/structure/tray/m_tray
+ name = "morgue tray"
+ desc = "Apply corpse before closing."
+ icon_state = "morguet"
diff --git a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm b/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm
index 29126839d37..24614a6849e 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm
@@ -39,7 +39,7 @@
else
M.visible_message(\
"[user.name] secretes a thick vile goo, securing [M.name] into [src]!",\
- "[user.name] drenches you in a foul-smelling resin, trapping you in the [src]!",\
+ "[user.name] drenches you in a foul-smelling resin, trapping you in [src]!",\
"You hear squelching...")
M.buckled = src
M.loc = src.loc
diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
index ad4f2705f56..bbe3dd51bd3 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
@@ -64,7 +64,7 @@
else
if(!usr || !isturf(usr.loc))
return
- if(usr.stat || usr.restrained() || !usr.canmove)
+ if(usr.stat || usr.restrained())
return
spin()
diff --git a/code/game/objects/structures/table_frames.dm b/code/game/objects/structures/table_frames.dm
index d26f0183ac0..5e4e26cbabd 100644
--- a/code/game/objects/structures/table_frames.dm
+++ b/code/game/objects/structures/table_frames.dm
@@ -29,7 +29,7 @@
return
if(istype(I, /obj/item/stack/sheet/plasteel))
var/obj/item/stack/sheet/plasteel/P = I
- user << "Now adding the [P] to the [src]."
+ user << "Now adding [P] to [src]."
if(do_after(user, 50))
new /obj/structure/table/reinforced(src.loc)
qdel(src)
@@ -37,7 +37,7 @@
return
if(istype(I, /obj/item/stack/sheet/metal))
var/obj/item/stack/sheet/metal/M = I
- user << "Now adding the [M] to the [src]."
+ user << "Now adding [M] to [src]."
if(do_after(user, 20))
new /obj/structure/table(src.loc)
qdel(src)
@@ -45,7 +45,7 @@
return
if(istype(I, /obj/item/stack/sheet/glass))
var/obj/item/stack/sheet/glass/G = I
- user << "Now adding the [G] to the [src]."
+ user << "Now adding [G] to [src]."
if(do_after(user, 20))
new /obj/structure/table/glass(src.loc)
qdel(src)
@@ -72,7 +72,7 @@
return
if(istype(I, /obj/item/stack/sheet/mineral/wood))
var/obj/item/stack/sheet/mineral/wood/W = I
- user << "Now adding the [W] to the [src]."
+ user << "Now adding [W] to [src]."
if(do_after(user, 20))
new /obj/structure/table/wood(src.loc)
qdel(src)
@@ -80,7 +80,7 @@
return
if(istype(I, /obj/item/stack/tile/carpet))
var/obj/item/stack/tile/carpet/C = I
- user << "Now adding the [C] to the [src]."
+ user << "Now adding [C] to [src]."
if(do_after(user, 20))
new /obj/structure/table/wood/poker(src.loc)
qdel(src)
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index 3b7ab8924b7..7111ef392aa 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -184,12 +184,11 @@
..()
if(severity == 3)
if(prob(25))
- density = 0
+ table_destroy(1)
/obj/structure/table/blob_act()
if(prob(75))
table_destroy(1)
- qdel(src)
return
/obj/structure/table/attack_alien(mob/living/user)
@@ -231,8 +230,11 @@
else
return 0
-
-/obj/structure/table/MouseDrop_T(obj/O, mob/user)
+/obj/structure/table/MouseDrop_T(atom/movable/O, mob/user)
+ if(ismob(O) && user == O && ishuman(user))
+ if(user.canmove)
+ climb_table(user)
+ return
if ((!( istype(O, /obj/item/weapon) ) || user.get_active_hand() != O))
return
if(isrobot(user))
@@ -358,10 +360,6 @@
* TABLE CLIMBING
*/
-/obj/structure/table/MouseDrop_T(mob/target, mob/living/carbon/human/user)
- if(istype(target) && user == target && istype(user))
- if(user.canmove)
- climb_table(user)
/obj/structure/table/proc/climb_table(mob/user)
src.add_fingerprint(user)
@@ -494,21 +492,20 @@
if(1.0)
qdel(src)
if(2.0)
- qdel(src)
if(prob(50))
- new /obj/item/weapon/rack_parts(src.loc)
+ rack_destroy()
+ else
+ qdel(src)
if(3.0)
if(prob(25))
- qdel(src)
- new /obj/item/weapon/rack_parts(src.loc)
+ rack_destroy()
/obj/structure/rack/blob_act()
if(prob(75))
qdel(src)
return
else if(prob(50))
- new /obj/item/weapon/rack_parts(src.loc)
- qdel(src)
+ rack_destroy()
return
/obj/structure/rack/CanPass(atom/movable/mover, turf/target, height=0)
@@ -534,9 +531,8 @@
/obj/structure/rack/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/wrench))
- new /obj/item/weapon/rack_parts( src.loc )
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
- qdel(src)
+ rack_destroy()
return
if(isrobot(user))
@@ -559,38 +555,42 @@
"You kick [src].")
if(HULK in user.mutations)
- health -= 5
+ rack_destroy()
else
health -= rand(1,2)
- healthcheck()
+ healthcheck()
/obj/structure/rack/attack_alien(mob/living/user)
user.do_attack_animation(src)
visible_message("[user] slices [src] apart!")
- new /obj/item/weapon/rack_parts(loc)
- density = 0
- qdel(src)
+ rack_destroy()
/obj/structure/rack/attack_animal(mob/living/simple_animal/user)
if(user.environment_smash)
user.do_attack_animation(src)
visible_message("[user] smashes [src] apart!")
- new /obj/item/weapon/rack_parts(loc)
- density = 0
- qdel(src)
+ rack_destroy()
/obj/structure/rack/attack_tk() // no telehulk sorry
return
/obj/structure/rack/proc/healthcheck()
if(health <= 0)
- density = 0
- var/obj/item/weapon/rack_parts/newparts = new(loc)
- transfer_fingerprints_to(newparts)
- qdel(src)
+ rack_destroy()
return
+/*
+ * Rack destruction
+ */
+
+/obj/structure/rack/proc/rack_destroy()
+ density = 0
+ var/obj/item/weapon/rack_parts/newparts = new(loc)
+ transfer_fingerprints_to(newparts)
+ qdel(src)
+
+
/*
* Rack Parts
*/
diff --git a/code/game/objects/structures/transit_tubes/transit_tube.dm b/code/game/objects/structures/transit_tubes/transit_tube.dm
index 12bfc62e84d..871ffe59b0f 100644
--- a/code/game/objects/structures/transit_tubes/transit_tube.dm
+++ b/code/game/objects/structures/transit_tubes/transit_tube.dm
@@ -44,7 +44,7 @@ obj/structure/transit_tube/ex_act(severity, target)
for(var/obj/structure/transit_tube_pod/pod in src.loc)
user << "Remove the pod first."
return
- user.visible_message("[user] starts to deattach the [src]!", "You start deattaching the [name]...")
+ user.visible_message("[user] starts to deattach \the [src]!", "You start deattaching the [name]...")
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
if(do_after(user, 35))
user << "You deattach the [name]!"
diff --git a/code/game/objects/structures/transit_tubes/transit_tube_pod.dm b/code/game/objects/structures/transit_tubes/transit_tube_pod.dm
index 9e9afcc61dc..eeaa29e8a85 100644
--- a/code/game/objects/structures/transit_tubes/transit_tube_pod.dm
+++ b/code/game/objects/structures/transit_tubes/transit_tube_pod.dm
@@ -31,11 +31,11 @@
for(var/obj/structure/transit_tube/station/T in loc)
return
if(src.contents.len)
- user.visible_message("[user] empties the [src].", "You empty the [src].")
+ user.visible_message("[user] empties \the [src].", "You empty \the [src].")
src.empty()
return
else
- user << "You free the [src]."
+ user << "You free \the [src]."
var/obj/structure/c_transit_tube_pod/R = new/obj/structure/c_transit_tube_pod(src.loc)
src.transfer_fingerprints_to(R)
R.add_fingerprint(user)
diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm
index 62b181272f2..e5e02663f55 100644
--- a/code/game/objects/structures/watercloset.dm
+++ b/code/game/objects/structures/watercloset.dm
@@ -77,7 +77,7 @@
GM.adjustOxyLoss(5)
swirlie = null
else
- user.visible_message("[user] slams [GM.name] into the [src]!", "You slam [GM] into [src]!")
+ user.visible_message("[user] slams [GM.name] into [src]!", "You slam [GM] into [src]!")
GM.adjustBruteLoss(8)
else
user << "You need a tighter grip."
@@ -167,7 +167,7 @@
if(I.type == /obj/item/device/analyzer)
user << "The water temperature seems to be [watertemp]."
if(istype(I, /obj/item/weapon/wrench))
- user << "You begin to adjust the temperature valve with the [I]."
+ user << "You begin to adjust the temperature valve with \the [I]."
if(do_after(user, 50))
switch(watertemp)
if("normal")
@@ -176,7 +176,7 @@
watertemp = "boiling"
if("boiling")
watertemp = "normal"
- user.visible_message("[user] adjusts the shower with the [I].", "You adjust the shower with the [I] to [watertemp] temperature.")
+ user.visible_message("[user] adjusts the shower with \the [I].", "You adjust the shower with \the [I] to [watertemp] temperature.")
log_game("[key_name(user)] has wrenched a shower to [watertemp] at ([x],[y],[z])")
add_hiddenprint(user)
diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm
index 9e641352434..0be1070747c 100644
--- a/code/game/turfs/simulated/floor.dm
+++ b/code/game/turfs/simulated/floor.dm
@@ -158,3 +158,7 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3","
make_plating()
else if(prob(50))
ReplaceWithLattice()
+
+/turf/simulated/floor/narsie_act()
+ if(prob(20))
+ ChangeTurf(/turf/simulated/floor/engine/cult)
\ No newline at end of file
diff --git a/code/game/turfs/simulated/floor/light_floor.dm b/code/game/turfs/simulated/floor/light_floor.dm
index f1033633551..51f52b5de4c 100644
--- a/code/game/turfs/simulated/floor/light_floor.dm
+++ b/code/game/turfs/simulated/floor/light_floor.dm
@@ -8,7 +8,7 @@
luminosity = 5
icon_state = "light_on"
floor_tile = /obj/item/stack/tile/light
- broken_states = list("light-broken")
+ broken_states = list("light_broken")
var/on = 1
var/state //0 = fine, 1 = flickering, 2 = breaking, 3 = broken
diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm
index 7a11314a50a..bd74639bd6d 100644
--- a/code/game/turfs/simulated/floor/plating.dm
+++ b/code/game/turfs/simulated/floor/plating.dm
@@ -110,6 +110,9 @@
name = "engraved floor"
icon_state = "cult"
+/turf/simulated/floor/engine/cult/narsie_act()
+ return
+
/turf/simulated/floor/engine/n20/New()
..()
var/datum/gas_mixture/adding = new
@@ -137,8 +140,7 @@
nitrogen = 0
temperature = TCMB
-/turf/simulated/floor/airless
- icon_state = "floor"
+/turf/simulated/floor/plasteel/airless
oxygen = 0
nitrogen = 0
temperature = TCMB
diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm
index 3b40db1a39c..d30300fd82e 100644
--- a/code/game/turfs/simulated/walls.dm
+++ b/code/game/turfs/simulated/walls.dm
@@ -224,7 +224,7 @@
/turf/simulated/wall/proc/try_destroy(obj/item/weapon/W as obj, mob/user as mob, turf/T as turf)
- if (istype(W, /obj/item/weapon/pickaxe/diamonddrill))
+ if (istype(W, /obj/item/weapon/pickaxe/drill/diamonddrill))
user << "You begin to drill though the wall."
if(do_after(user, slicing_duration*0.6)) // diamond drill is faster than welding tool slicing
if( !istype(src, /turf/simulated/wall) || !user || !W || !T )
@@ -286,4 +286,8 @@
return
if(current_size == STAGE_FOUR)
if(prob(30))
- dismantle_wall()
\ No newline at end of file
+ dismantle_wall()
+
+/turf/simulated/wall/narsie_act()
+ if(prob(20))
+ ChangeTurf(/turf/simulated/wall/cult)
\ No newline at end of file
diff --git a/code/game/turfs/simulated/walls_misc.dm b/code/game/turfs/simulated/walls_misc.dm
index 2f773d52b04..9c6b1529172 100644
--- a/code/game/turfs/simulated/walls_misc.dm
+++ b/code/game/turfs/simulated/walls_misc.dm
@@ -13,6 +13,9 @@
new /obj/effect/decal/cleanable/blood(src)
new /obj/effect/decal/remains/human(src)
+/turf/simulated/wall/cult/narsie_act()
+ return
+
/turf/simulated/wall/vault
icon_state = "rockvault"
diff --git a/code/game/turfs/simulated/walls_reinforced.dm b/code/game/turfs/simulated/walls_reinforced.dm
index 3957af514c0..e613a03bd2d 100644
--- a/code/game/turfs/simulated/walls_reinforced.dm
+++ b/code/game/turfs/simulated/walls_reinforced.dm
@@ -37,7 +37,7 @@
if(istype(W, /obj/item/weapon/melee/energy/blade))
user << "This wall is too thick to slice through. You will need to find a different path."
return 1
- else if (istype(W, /obj/item/weapon/pickaxe/diamonddrill))
+ else if (istype(W, /obj/item/weapon/pickaxe/drill/diamonddrill))
user << "You begin to drill though the wall."
if(do_after(user, 200))
if( !istype(src, /turf/simulated/wall/r_wall) || !user || !W || !T )
diff --git a/code/modules/admin/admin_investigate.dm b/code/modules/admin/admin_investigate.dm
index b9e4b830b69..7b128727942 100644
--- a/code/modules/admin/admin_investigate.dm
+++ b/code/modules/admin/admin_investigate.dm
@@ -22,12 +22,12 @@
F << "[time2text(world.timeofday,"hh:mm")] \ref[src] ([x],[y],[z]) || [src] [message]
"
//ADMINVERBS
-/client/proc/investigate_show( subject in list("hrefs","notes","ntsl","singulo","wires","telesci", "gravity", "records", "cargo") )
+/client/proc/investigate_show( subject in list("hrefs","notes","ntsl","singulo","wires","telesci", "gravity", "records", "cargo", "supermatter") )
set name = "Investigate"
set category = "Admin"
if(!holder) return
switch(subject)
- if("singulo", "ntsl", "wires", "telesci", "gravity", "records", "cargo") //general one-round-only stuff
+ if("singulo", "ntsl", "wires", "telesci", "gravity", "records", "cargo", "supermatter") //general one-round-only stuff
var/F = investigate_subject2file(subject)
if(!F)
src << "Error: admin_investigate: [INVESTIGATE_DIR][subject] is an invalid path or cannot be accessed."
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index 5e7370e44be..914fbef7c0d 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -989,7 +989,7 @@ var/global/list/g_fancy_list_of_types = null
spawn(30)
for(var/obj/machinery/the_singularitygen/G in world)
if(G.anchored)
- var/obj/machinery/singularity/S = new /obj/machinery/singularity(get_turf(G), 50)
+ var/obj/singularity/S = new /obj/singularity(get_turf(G), 50)
// qdel(G)
S.energy = 1750
S.current_size = 7
diff --git a/code/modules/admin/verbs/possess.dm b/code/modules/admin/verbs/possess.dm
index 773e475b9f4..0947155158c 100644
--- a/code/modules/admin/verbs/possess.dm
+++ b/code/modules/admin/verbs/possess.dm
@@ -2,7 +2,7 @@
set name = "Possess Obj"
set category = "Object"
- if(istype(O,/obj/machinery/singularity))
+ if(istype(O,/obj/singularity))
if(config.forbid_singulo_possession)
usr << "It is forbidden to possess singularities."
return
diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm
index 5c76dc8b1f1..f2c1e93930a 100644
--- a/code/modules/assembly/assembly.dm
+++ b/code/modules/assembly/assembly.dm
@@ -24,30 +24,9 @@
var/const/WIRE_RADIO_RECEIVE = 8 //Allows Pulsed(1) to call Activate()
var/const/WIRE_RADIO_PULSE = 16 //Allows Pulse(1) to send a radio message
-/obj/item/device/assembly/proc/activate() //What the device does when turned on
- return
-
-/obj/item/device/assembly/proc/pulsed(var/radio = 0) //Called when another assembly acts on this one, var/radio will determine where it came from for wire calcs
- return
-
-/obj/item/device/assembly/proc/pulse(var/radio = 0) //Called when this device attempts to act on another device, var/radio determines if it was sent via radio or direct
- return
-
-/obj/item/device/assembly/proc/toggle_secure() //Code that has to happen when the assembly is un\secured goes here
- return
-
-/obj/item/device/assembly/proc/attach_assembly(var/obj/A, var/mob/user) //Called when an assembly is attacked by another
- return
-
-/obj/item/device/assembly/proc/process_cooldown() //Called via spawn(10) to have it count down the cooldown var
- return
-
/obj/item/device/assembly/proc/holder_movement() //Called when the holder is moved
return
-/obj/item/device/assembly/interact(mob/user as mob) //Called when attack_self is called
- return
-
/obj/item/device/assembly/proc/describe() // Called by grenades to describe the state of the trigger (time left, etc)
return "The trigger assembly looks broken!"
@@ -59,16 +38,18 @@
return 1
-
-/obj/item/device/assembly/process_cooldown()
+//Called via spawn(10) to have it count down the cooldown var
+/obj/item/device/assembly/proc/process_cooldown()
cooldown--
- if(cooldown <= 0) return 0
+ if(cooldown <= 0)
+ return 0
spawn(10)
process_cooldown()
return 1
-/obj/item/device/assembly/pulsed(var/radio = 0)
+//Called when another assembly acts on this one, var/radio will determine where it came from for wire calcs
+/obj/item/device/assembly/proc/pulsed(var/radio = 0)
if(holder && (wires & WIRE_RECEIVE))
activate()
if(radio && (wires & WIRE_RADIO_RECEIVE))
@@ -76,48 +57,41 @@
return 1
-/obj/item/device/assembly/pulse(var/radio = 0)
+//Called when this device attempts to act on another device, var/radio determines if it was sent via radio or direct
+/obj/item/device/assembly/proc/pulse(var/radio = 0)
if(holder && (wires & WIRE_PULSE))
holder.process_activation(src, 1, 0)
if(holder && (wires & WIRE_PULSE_SPECIAL))
holder.process_activation(src, 0, 1)
-
- if(istype(loc,/obj/item/weapon/grenade)) // This is a hack. Todo: Manage this better -Sayu
- var/obj/item/weapon/grenade/G = loc
- G.prime() // Adios, muchachos
-// if(radio && (wires & WIRE_RADIO_PULSE))
- //Not sure what goes here quite yet send signal?
return 1
-/obj/item/device/assembly/activate()
- if(!secured || (cooldown > 0)) return 0
+// What the device does when turned on
+/obj/item/device/assembly/proc/activate()
+ if(!secured || (cooldown > 0))
+ return 0
cooldown = 2
spawn(10)
process_cooldown()
return 1
-/obj/item/device/assembly/toggle_secure()
+/obj/item/device/assembly/proc/toggle_secure()
secured = !secured
update_icon()
return secured
-/obj/item/device/assembly/attach_assembly(var/obj/item/device/assembly/A, var/mob/user)
- holder = new/obj/item/device/assembly_holder(get_turf(src))
- if(holder.attach(A,src,user))
- user << "You attach \the [A] to \the [src]!"
- return 1
- return 0
-
-
/obj/item/device/assembly/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(isassembly(W))
var/obj/item/device/assembly/A = W
if((!A.secured) && (!secured))
- attach_assembly(A,user)
- return
+ holder = new/obj/item/device/assembly_holder(get_turf(src))
+ holder.assemble(src,A,user)
+ user << "You attach and secure \the [A] to \the [src]!"
+ else
+ user << "Both devices must be in attachable mode to be attached together."
+ return
if(istype(W, /obj/item/weapon/screwdriver))
if(toggle_secure())
user << "\The [src] is ready!"
@@ -142,7 +116,8 @@
/obj/item/device/assembly/attack_self(mob/user as mob)
- if(!user) return 0
+ if(!user)
+ return 0
user.set_machine(src)
interact(user)
return 1
@@ -151,40 +126,3 @@
/obj/item/device/assembly/interact(mob/user as mob)
return //HTML MENU FOR WIRES GOES HERE
-/*
- var/small_icon_state = null//If this obj will go inside the assembly use this for icons
- var/list/small_icon_state_overlays = null//Same here
- var/obj/holder = null
- var/cooldown = 0//To prevent spam
-
- proc
- Activate()//Called when this assembly is pulsed by another one
- Process_cooldown()//Call this via spawn(10) to have it count down the cooldown var
- Attach_Holder(var/obj/H, var/mob/user)//Called when an assembly holder attempts to attach, sets src's loc in here
-
-
- Activate()
- if(cooldown > 0)
- return 0
- cooldown = 2
- spawn(10)
- Process_cooldown()
- //Rest of code here
- return 0
-
-
- Process_cooldown()
- cooldown--
- if(cooldown <= 0) return 0
- spawn(10)
- Process_cooldown()
- return 1
-
-
- Attach_Holder(var/obj/H, var/mob/user)
- if(!H) return 0
- if(!H.IsAssemblyHolder()) return 0
- //Remember to have it set its loc somewhere in here
-
-
-*/
diff --git a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm
index 9cbf195ef97..755074c2855 100644
--- a/code/modules/assembly/bomb.dm
+++ b/code/modules/assembly/bomb.dm
@@ -87,8 +87,6 @@
/obj/item/weapon/tank/proc/bomb_assemble(W,user) //Bomb assembly proc. This turns assembly+tank into a bomb
var/obj/item/device/assembly_holder/S = W
var/mob/M = user
- if(!S.secured) //Check if the assembly is secured
- return
if(isigniter(S.a_left) == isigniter(S.a_right)) //Check if either part of the assembly has an igniter, but if both parts are igniters, then fuck it
return
diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm
index 3bd27af3549..1ef63734a9f 100644
--- a/code/modules/assembly/holder.dm
+++ b/code/modules/assembly/holder.dm
@@ -9,37 +9,29 @@
throw_speed = 2
throw_range = 7
- var/secured = 0
var/obj/item/device/assembly/a_left = null
var/obj/item/device/assembly/a_right = null
-/obj/item/device/assembly_holder/proc/attach(var/obj/item/device/D, var/obj/item/device/D2, var/mob/user)
- return
-
-/obj/item/device/assembly_holder/proc/process_activation(var/obj/item/device/D)
- return
-
/obj/item/device/assembly_holder/IsAssemblyHolder()
return 1
-/obj/item/device/assembly_holder/attach(var/obj/item/device/D, var/obj/item/device/D2, var/mob/user)
- if((!D)||(!D2)) return 0
- if((!isassembly(D))||(!isassembly(D2))) return 0
- if((D:secured)||(D2:secured)) return 0
- if(user)
- user.remove_from_mob(D)
- user.remove_from_mob(D2)
- D:holder = src
- D2:holder = src
- D.loc = src
- D2.loc = src
- a_left = D
- a_right = D2
- name = "[D.name]-[D2.name] assembly"
+/obj/item/device/assembly_holder/proc/assemble(var/obj/item/device/assembly/A, var/obj/item/device/assembly/A2, var/mob/user)
+ attach(A,user)
+ attach(A2,user)
+ name = "[A.name]-[A2.name] assembly"
update_icon()
- return 1
+/obj/item/device/assembly_holder/proc/attach(var/obj/item/device/assembly/A, var/mob/user)
+ if(user)
+ user.remove_from_mob(A)
+ A.holder = src
+ A.loc = src
+ A.toggle_secure()
+ if(!a_left)
+ a_left = A
+ else
+ a_right = A
/obj/item/device/assembly_holder/update_icon()
overlays.Cut()
@@ -54,16 +46,6 @@
if(master)
master.update_icon()
-
-/obj/item/device/assembly_holder/examine(mob/user)
- ..()
- if(secured)
- user << "\The [src] is secured and ready to be used."
- else
- user << "\The [src] can be attached to other things."
-
-
-
/obj/item/device/assembly_holder/HasProximity(atom/movable/AM as mob|obj)
if(a_left)
a_left.HasProximity(AM)
@@ -88,7 +70,7 @@
if(a_left && a_right)
a_left.holder_movement()
a_right.holder_movement()
- return
+ return
/obj/item/device/assembly_holder/attack_hand()//Perhapse this should be a holder_pickup proc instead, can add if needbe I guess
if(a_left && a_right)
@@ -97,55 +79,39 @@
..()
return
-
/obj/item/device/assembly_holder/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/screwdriver))
- if(!a_left || !a_right)
- user << "BUG:Assembly part missing, please report this!"
- return
- a_left.toggle_secure()
- a_right.toggle_secure()
- secured = !secured
- if(secured)
- user << "\The [src] is ready!"
- else
- user << "\The [src] can now be taken apart!"
- update_icon()
- return
+ var/turf/T = get_turf(src)
+ if(!T)
+ return 0
+ if(a_left)
+ a_left.holder = null
+ a_left.loc = T
+ if(a_right)
+ a_right.holder = null
+ a_right.loc = T
+ qdel(src)
else
..()
- return
-
/obj/item/device/assembly_holder/attack_self(mob/user as mob)
src.add_fingerprint(user)
- if(src.secured)
- if(!a_left || !a_right)
- user << "Assembly part missing!"
- return
- if(istype(a_left,a_right.type))//If they are the same type it causes issues due to window code
- switch(alert("Which side would you like to use?",,"Left","Right"))
- if("Left") a_left.attack_self(user)
- if("Right") a_right.attack_self(user)
- return
- else
- a_left.attack_self(user)
- a_right.attack_self(user)
+ if(!a_left || !a_right)
+ user << "Assembly part missing!"
+ return
+ if(istype(a_left,a_right.type))//If they are the same type it causes issues due to window code
+ switch(alert("Which side would you like to use?",,"Left","Right"))
+ if("Left") a_left.attack_self(user)
+ if("Right") a_right.attack_self(user)
+ return
else
- var/turf/T = get_turf(src)
- if(!T) return 0
- if(a_left)
- a_left:holder = null
- a_left.loc = T
- if(a_right)
- a_right:holder = null
- a_right.loc = T
- qdel(src)
- return
+ a_left.attack_self(user)
+ a_right.attack_self(user)
-/obj/item/device/assembly_holder/process_activation(var/obj/D, var/normal = 1, var/special = 1)
- if(!D) return 0
+/obj/item/device/assembly_holder/proc/process_activation(var/obj/D, var/normal = 1, var/special = 1)
+ if(!D)
+ return 0
if((normal) && (a_right) && (a_left))
if(a_right != D)
a_right.pulsed(0)
diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm
index 0a463af7ad2..5bb7d4473f8 100644
--- a/code/modules/awaymissions/corpse.dm
+++ b/code/modules/awaymissions/corpse.dm
@@ -157,8 +157,8 @@
///////////Civilians//////////////////////
-/obj/effect/landmark/corpse/chef
- name = "Chef"
+/obj/effect/landmark/corpse/cook
+ name = "Cook"
corpseuniform = /obj/item/clothing/under/rank/chef
corpsesuit = /obj/item/clothing/suit/chef/classic
corpseshoes = /obj/item/clothing/shoes/sneakers/black
@@ -166,8 +166,8 @@
corpseback = /obj/item/weapon/storage/backpack
corpseradio = /obj/item/device/radio/headset
corpseid = 1
- corpseidjob = "Chef"
- corpseidaccess = "Chef"
+ corpseidjob = "Cook"
+ corpseidaccess = "Cook"
/obj/effect/landmark/corpse/doctor
diff --git a/code/modules/awaymissions/maploader/reader.dm b/code/modules/awaymissions/maploader/reader.dm
index 7ef70f87ae2..381b167fb6e 100644
--- a/code/modules/awaymissions/maploader/reader.dm
+++ b/code/modules/awaymissions/maploader/reader.dm
@@ -2,6 +2,9 @@
//SS13 Optimized Map loader
//////////////////////////////////////////////////////////////
+//global datum that will preload variables on atoms instanciation
+var/global/dmm_suite/preloader/_preloader = null
+
/**
* Construct the model map and control the loading process
@@ -163,7 +166,7 @@
//first instance the /area and remove it from the members list
index = members.len
var/atom/instance
- var/dmm_suite/preloader/_preloader = new(members_attributes[index])//preloader for assigning set variables on atom creation
+ _preloader = new(members_attributes[index])//preloader for assigning set variables on atom creation
instance = locate(members[index])
instance.contents.Add(locate(xcrd,ycrd,zcrd))
@@ -191,34 +194,6 @@
T = UT
index++
-
- //Replace the previous part of the code with this if it's unsafe to assume tiles have ALWAYS an /area AND a /turf
- /*while(members.len > 0)
- var/length = members.len
- var/member = members[length]
-
- if(ispath(member,/area))
- var/atom/instance
- var/dmm_suite/preloader/_preloader = new(members_attributes[length])
-
- instance = locate(member)
- instance.contents.Add(locate(xcrd,ycrd,zcrd))
-
- if(_preloader && instance)
- _preloader.load(instance)
-
- members.Remove(member)
- continue
-
- else if(ispath(member,/turf))
- instance_atom(member,members_attributes[length],xcrd,ycrd,zcrd)
- members.Remove(member)
- continue
-
- else
- break
- */
-
//finally instance all remainings objects/mobs
for(index=1,index < first_turf_index,index++)
instance_atom(members[index],members_attributes[index],xcrd,ycrd,zcrd)
@@ -230,11 +205,11 @@
//Instance an atom at (x,y,z) and gives it the variables in attributes
/dmm_suite/proc/instance_atom(var/path,var/list/attributes, var/x, var/y, var/z)
var/atom/instance
- var/dmm_suite/preloader/_preloader = new(attributes)
+ _preloader = new(attributes, path)
- instance = new path (locate(x,y,z), _preloader)//first preloader pass
+ instance = new path (locate(x,y,z))//first preloader pass
- if(_preloader && instance)//second preloader pass, as some variables may have been reset/changed by New()
+ if(_preloader && instance)//second preloader pass, for those atoms that don't ..() in New()
_preloader.load(instance)
return instance
@@ -242,9 +217,9 @@
//text trimming (both directions) helper proc
//optionally removes quotes before and after the text (for variable name)
/dmm_suite/proc/trim_text(var/what as text,var/trim_quotes=0)
- while(length(what) && (findtext(what," ",1,2)))// || findtext(what,quote,1,2)))
+ while(length(what) && (findtext(what," ",1,2)))
what=copytext(what,2,0)
- while(length(what) && (findtext(what," ",length(what),0)))// || findtext(what,quote,length(what),0)))
+ while(length(what) && (findtext(what," ",length(what),0)))
what=copytext(what,1,length(what))
if(trim_quotes)
while(length(what) && (findtext(what,quote,1,2)))
@@ -298,14 +273,18 @@
else if(isnum(text2num(trim_right)))
trim_right = text2num(trim_right)
- //Check for file
- else if(copytext(trim_right,1,2) == "'")
- trim_right = file(copytext(trim_right,2,length(trim_right)))
+ //Check for null
+ else if(trim_right == "null")
+ trim_right = null
//Check for list
else if(copytext(trim_right,1,5) == "list")
trim_right = text2list(copytext(trim_right,6,length(trim_right)))
+ //Check for file
+ else if(copytext(trim_right,1,2) == "'")
+ trim_right = file(copytext(trim_right,2,length(trim_right)))
+
to_return[trim_left] = trim_right
else//simple var
@@ -323,10 +302,11 @@
placed.opacity = 1
placed.underlays += turfs_underlays
-//atom creation method that preloads variables before creation
-/atom/New(atom/loc, dmm_suite/preloader/_dmm_preloader)
- if(istype(_dmm_preloader, /dmm_suite/preloader))
- _dmm_preloader.load(src)
+//atom creation method that preloads variables at creation
+/atom/New()
+ if(_preloader && (src.type == _preloader.target_path))//in case the instanciated atom is creating other atoms in New()
+ _preloader.load(src)
+
. = ..()
//////////////////
@@ -336,12 +316,15 @@
/dmm_suite/preloader
parent_type = /datum
var/list/attributes
+ var/target_path
-/dmm_suite/preloader/New(list/the_attributes)
+/dmm_suite/preloader/New(var/list/the_attributes, var/path)
.=..()
if(!the_attributes.len)
Del()
+ return
attributes = the_attributes
+ target_path = path
/dmm_suite/preloader/proc/load(atom/what)
for(var/attribute in attributes)
diff --git a/code/modules/awaymissions/mission_code/Academy.dm b/code/modules/awaymissions/mission_code/Academy.dm
index eb91c32bfe1..1e1f03457ac 100644
--- a/code/modules/awaymissions/mission_code/Academy.dm
+++ b/code/modules/awaymissions/mission_code/Academy.dm
@@ -22,15 +22,15 @@
//Academy Items
-/obj/machinery/singularity/academy
+/obj/singularity/academy
dissipate = 0
move_self = 0
grav_pull = 1
-/obj/machinery/singularity/academy/admin_investigate_setup()
+/obj/singularity/academy/admin_investigate_setup()
return
-/obj/machinery/singularity/academy/process()
+/obj/singularity/academy/process()
eat()
if(prob(1))
mezzer()
diff --git a/code/modules/awaymissions/mission_code/stationCollision.dm b/code/modules/awaymissions/mission_code/stationCollision.dm
index cb0ab5087df..b8cfb519a50 100644
--- a/code/modules/awaymissions/mission_code/stationCollision.dm
+++ b/code/modules/awaymissions/mission_code/stationCollision.dm
@@ -159,21 +159,21 @@ var/sc_safecode5 = "[rand(0,9)]"
/*
* Modified Nar-Sie
*/
-/obj/machinery/singularity/narsie/sc_Narsie
+/obj/singularity/narsie/sc_Narsie
desc = "Your body becomes weak and your feel your mind slipping away as you try to comprehend what you know can't be possible."
move_self = 0 //Contianed narsie does not move!
grav_pull = 0 //Contained narsie does not pull stuff in!
-
+ var/uneatable = list(/turf/space, /obj/effect/overlay, /mob/living/simple_animal/construct)
//Override this to prevent no adminlog runtimes and admin warnings about a singularity without containment
-/obj/machinery/singularity/narsie/sc_Narsie/admin_investigate_setup()
+/obj/singularity/narsie/sc_Narsie/admin_investigate_setup()
return
-/obj/machinery/singularity/narsie/sc_Narsie/process()
+/obj/singularity/narsie/sc_Narsie/process()
eat()
if(prob(25))
mezzer()
-/obj/machinery/singularity/narsie/sc_Narsie/consume(var/atom/A)
+/obj/singularity/narsie/sc_Narsie/consume(var/atom/A)
if(is_type_in_list(A, uneatable))
return 0
if (istype(A,/mob/living))
@@ -194,5 +194,5 @@ var/sc_safecode5 = "[rand(0,9)]"
T.ChangeTurf(/turf/space)
return
-/obj/machinery/singularity/narsie/sc_Narsie/ex_act()
+/obj/singularity/narsie/sc_Narsie/ex_act()
return
\ No newline at end of file
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index 3c54a472e40..31c9d545afd 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -348,7 +348,7 @@ atom/proc/generate_female_clothing(index,t_color,icon)
flags |= (visor_flags)
flags_inv |= (visor_flags_inv)
icon_state = initial(icon_state)
- usr << "You pull the [src] down."
+ usr << "You pull \the [src] down."
flash_protect = initial(flash_protect)
tint = initial(tint)
else
@@ -356,7 +356,7 @@ atom/proc/generate_female_clothing(index,t_color,icon)
flags &= ~(visor_flags)
flags_inv &= ~(visor_flags_inv)
icon_state = "[initial(icon_state)]up"
- usr << "You push the [src] up."
+ usr << "You push \the [src] up."
flash_protect = 0
tint = 0
diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm
index e703f49756e..1935d89d50f 100644
--- a/code/modules/clothing/glasses/hud.dm
+++ b/code/modules/clothing/glasses/hud.dm
@@ -11,7 +11,7 @@
H.add_hud_to(user)
/obj/item/clothing/glasses/hud/dropped(mob/living/carbon/human/user)
- if(user.glasses == src)
+ if(istype(user) && user.glasses == src)
var/datum/atom_hud/H = huds[hud_type]
H.remove_hud_from(user)
diff --git a/code/modules/clothing/gloves/ninja.dm b/code/modules/clothing/gloves/ninja.dm
index 3ec928c9e29..0b05f32fb8d 100644
--- a/code/modules/clothing/gloves/ninja.dm
+++ b/code/modules/clothing/gloves/ninja.dm
@@ -46,65 +46,39 @@
if(!proximity) // todo: you could add ninja stars or computer hacking here
return 0
- // Move an AI into and out of things
- if(istype(A,/mob/living/silicon/ai))
- if(suit.s_control)
- A.add_fingerprint(H)
- suit.transfer_ai("AICORE", "NINJASUIT", A, H)
- return 1
- else
- H << "ERROR: \black Remote access channel disabled."
- return 0
-
- if(istype(A,/obj/structure/AIcore/deactivated))
- if(suit.s_control)
- A.add_fingerprint(H)
- suit.transfer_ai("INACTIVE","NINJASUIT",A, H)
- return 1
- else
- H << "ERROR: \black Remote access channel disabled."
- return 0
- if(istype(A,/obj/machinery/computer/aifixer))
- if(suit.s_control)
- A.add_fingerprint(H)
- suit.transfer_ai("AIFIXER","NINJASUIT",A, H)
- return 1
- else
- H << "ERROR: \black Remote access channel disabled."
- return 0
+ A.add_fingerprint(H)
// steal energy from powered things
if(istype(A,/mob/living/silicon/robot))
- A.add_fingerprint(H)
drain("CYBORG",A,suit)
return 1
+
if(istype(A,/obj/machinery/power/apc))
- A.add_fingerprint(H)
drain("APC",A,suit)
return 1
+
if(istype(A,/obj/structure/cable))
- A.add_fingerprint(H)
drain("WIRE",A,suit)
return 1
+
if(istype(A,/obj/structure/grille))
var/obj/structure/cable/C = locate() in A.loc
if(C)
drain("WIRE",C,suit)
return 1
+
if(istype(A,/obj/machinery/power/smes))
- A.add_fingerprint(H)
drain("SMES",A,suit)
return 1
+
if(istype(A,/obj/mecha))
- A.add_fingerprint(H)
drain("MECHA",A,suit)
return 1
- // download research
- if(istype(A,/obj/machinery/computer/rdconsole))
- A.add_fingerprint(H)
+ if(istype(A,/obj/machinery/computer/rdconsole)) // download research
drain("RESEARCH",A,suit)
return 1
+
if(istype(A,/obj/machinery/r_n_d/server))
A.add_fingerprint(H)
var/obj/machinery/r_n_d/server/S = A
@@ -116,3 +90,15 @@
drain("RESEARCH",A,suit)
return 1
+ //do AI transfers
+ if(istype(A,/mob/living/silicon/ai))
+ suit.NAI.transfer_ai("AICORE", "AICARD", A, H)
+ return 1
+
+ if(istype(A,/obj/structure/AIcore/deactivated))
+ suit.NAI.transfer_ai("INACTIVE","AICARD",A, H)
+ return 1
+
+ if(istype(A,/obj/machinery/computer/aifixer))
+ suit.NAI.transfer_ai("AIFIXER","AICARD",A, H)
+ return 1
diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm
index a3cf1d6a94a..1cdaaf78c71 100644
--- a/code/modules/clothing/head/helmet.dm
+++ b/code/modules/clothing/head/helmet.dm
@@ -32,14 +32,14 @@
flags |= (visor_flags)
flags_inv |= (visor_flags_inv)
icon_state = initial(icon_state)
- usr << "You pull the [src] down."
+ usr << "You pull \the [src] down."
usr.update_inv_head(0)
else
up = !up
flags &= ~(visor_flags)
flags_inv &= ~(visor_flags_inv)
icon_state = "[initial(icon_state)]up"
- usr << "You push the [src] up."
+ usr << "You push \the [src] up."
usr.update_inv_head(0)
/obj/item/clothing/head/helmet/swat
diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm
index 1a25b642c24..256138f8beb 100644
--- a/code/modules/clothing/head/jobs.dm
+++ b/code/modules/clothing/head/jobs.dm
@@ -44,7 +44,6 @@
name = "detective's fedora"
desc = "There's only one man who can sniff out the dirty stench of crime, and he's likely wearing this hat."
icon_state = "detective"
- allowed = list(/obj/item/weapon/reagent_containers/food/snacks/candy_corn, /obj/item/weapon/pen)
armor = list(melee = 50, bullet = 5, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0)
//Mime
@@ -74,16 +73,11 @@
armor = list(melee = 60, bullet = 5, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0)
strip_delay = 60
-/obj/item/clothing/head/warden/drill
- name = "warden's drill hat"
- desc = "A robust drill hat for the Warden. For keeping the officers and prisoners in line."
- icon_state = "wardendrill"
-
/obj/item/clothing/head/beret/sec
name = "security beret"
- desc = "A robust beret with the security insignia emblazoned on it. For officers that are more inclined towards style than safety."
+ desc = "A robust beret with the security insignia emblazoned on it. Uses reinforced fabric to offer sufficent protection."
icon_state = "beret_badge"
- armor = list(melee = 30, bullet = 5, laser = 15, energy = 10, bomb = 0, bio = 0, rad = 0)
+ armor = list(melee = 30, bullet = 25, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0)
strip_delay = 60
/obj/item/clothing/head/beret/sec/navyhos
@@ -95,6 +89,8 @@
name = "warden's beret"
desc = "A special beret with the Warden's insignia emblazoned on it. For wardens with class."
icon_state = "wardenberet"
+ armor = list(melee = 60, bullet = 5, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0)
+ strip_delay = 60
/obj/item/clothing/head/beret/sec/navyofficer
desc = "A special beret with the security insignia emblazoned on it. For officers with class."
diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm
index 54e63a1f1d3..56423b8cf80 100644
--- a/code/modules/clothing/head/soft_caps.dm
+++ b/code/modules/clothing/head/soft_caps.dm
@@ -90,5 +90,11 @@
desc = "It's a robust baseball hat in tasteful red colour."
icon_state = "secsoft"
item_color = "sec"
- armor = list(melee = 30, bullet = 5, laser = 5, energy = 15, bomb = 0, bio = 0, rad = 0)
- strip_delay = 60
\ No newline at end of file
+ armor = list(melee = 30, bullet = 25, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0)
+ strip_delay = 60
+
+/obj/item/clothing/head/soft/emt
+ name = "EMT cap"
+ desc = "It's a baseball hat with a dark turquoise color and a reflective cross on the top."
+ icon_state = "emtsoft"
+ item_color = "emtsoft"
\ No newline at end of file
diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm
index fb2efa9c7d2..92f23576991 100644
--- a/code/modules/clothing/spacesuits/hardsuit.dm
+++ b/code/modules/clothing/spacesuits/hardsuit.dm
@@ -41,7 +41,7 @@
item_state = "eng_hardsuit"
slowdown = 2
armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75)
- allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/t_scanner, /obj/item/weapon/rcd)
+ allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/device/t_scanner, /obj/item/weapon/rcd)
//Atmospherics
@@ -102,7 +102,7 @@
desc = "A special suit that protects against hazardous, low pressure environments. Has reinforced plating for wildlife encounters."
item_state = "mining_hardsuit"
armor = list(melee = 40, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50)
- allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/weapon/storage/bag/ore,/obj/item/weapon/pickaxe)
+ allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/storage/bag/ore,/obj/item/weapon/pickaxe)
@@ -229,7 +229,7 @@
desc = "A special suit that protects against hazardous, low pressure environments. Built with lightweight materials for easier movement."
item_state = "medical_hardsuit"
slowdown = 1
- allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/weapon/storage/firstaid,/obj/item/device/healthanalyzer,/obj/item/stack/medical)
+ allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/storage/firstaid,/obj/item/device/healthanalyzer,/obj/item/stack/medical)
armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 50)
@@ -247,5 +247,5 @@
name = "security hardsuit"
desc = "A special suit that protects against hazardous, low pressure environments. Has an additional layer of armor."
item_state = "sec_hardsuit"
- allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank, /obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs)
+ allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen, /obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs)
armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50)
diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm
index de919a9be17..10aa34f3771 100644
--- a/code/modules/clothing/spacesuits/miscellaneous.dm
+++ b/code/modules/clothing/spacesuits/miscellaneous.dm
@@ -73,7 +73,7 @@
item_state = "void"
desc = "An old, NASA Centcom branch designed, dark red space suit."
slowdown = 1
- allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/multitool)
+ allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/device/multitool)
//Space santa outfit suit
diff --git a/code/modules/clothing/spacesuits/ninja.dm b/code/modules/clothing/spacesuits/ninja.dm
index 5aa48fa2b6f..47d2d3aede6 100644
--- a/code/modules/clothing/spacesuits/ninja.dm
+++ b/code/modules/clothing/spacesuits/ninja.dm
@@ -3,7 +3,6 @@
name = "ninja hood"
icon_state = "s-ninja"
item_state = "s-ninja_mask"
- allowed = list(/obj/item/weapon/stock_parts/cell)
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 25)
strip_delay = 12
unacidable = 1
@@ -56,8 +55,11 @@
var/a_boost = 3.0//Number of adrenaline boosters.
//Onboard AI related variables.
- var/mob/living/silicon/ai/AI//If there is an AI inside the suit.
+
+ var/obj/item/device/aicard/NAI //Integrated intellicard.
+
var/obj/item/device/paicard/pai//A slot for a pAI device
+
var/obj/effect/overlay/hologram//Is the AI hologram on or off? Visible only to the wearer of the suit. This works by attaching an image to a blank overlay.
- var/flush = 0//If an AI purge is in progress.
+
var/s_control = 1//If user in control of the suit.
diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm
index 79eeb774dcc..a665e594809 100644
--- a/code/modules/clothing/suits/armor.dm
+++ b/code/modules/clothing/suits/armor.dm
@@ -10,12 +10,20 @@
/obj/item/clothing/suit/armor/vest
name = "armor"
- desc = "An armored vest that protects against most types of damage."
+ desc = "A slim armored vest that protects against most types of damage."
icon_state = "armor"
item_state = "armor"
blood_overlay_type = "armor"
armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0)
+/obj/item/clothing/suit/armor/vest/alt
+ name = "armor"
+ desc = "An armored vest that protects against most types of damage. This is a civilian variant."
+ icon_state = "armoralt"
+ item_state = "armoralt"
+ blood_overlay_type = "armor"
+ armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0)
+
/obj/item/clothing/suit/armor/hos
name = "armored greatcoat"
desc = "A greatcoat enchanced with a special alloy for some protection and style for those with a commanding presence."
@@ -38,7 +46,7 @@
/obj/item/clothing/suit/armor/vest/warden
name = "warden's jacket"
- desc = "An armored jacket with silver rank pips and livery."
+ desc = "A navy-blue armored jacket with blue shoulder designations and '/Warden/' stitched into one of the chest pockets."
icon_state = "warden_jacket"
item_state = "armor"
body_parts_covered = CHEST|GROIN|ARMS
@@ -46,6 +54,11 @@
heat_protection = CHEST|GROIN|ARMS|HANDS
strip_delay = 70
+/obj/item/clothing/suit/armor/vest/warden/alt
+ name = "warden's armored jacket"
+ desc = "A red jacket with silver rank pips and body armor strapped on top."
+ icon_state = "warden_alt"
+
/obj/item/clothing/suit/armor/vest/capcarapace
name = "captain's carapace"
desc = "An armored vest reinforced with ceramic plates and pauldrons to provide additional protection whilst still offering maximum mobility and flexibility. Issued only to the station's finest, although it does chafe your nipples."
@@ -70,12 +83,12 @@
put_on_delay = 60
/obj/item/clothing/suit/armor/bulletproof
- name = "tactical armor"
- desc = "A kevlar vest that excels in protecting the wearer against traditional projectile weaponry and explosives."
+ name = "bulletproof armor"
+ desc = "A bulletproof vest that excels in protecting the wearer against traditional projectile weaponry and explosives to a minor extent."
icon_state = "bulletproof"
item_state = "armor"
blood_overlay_type = "armor"
- armor = list(melee = 25, bullet = 60, laser = 25, energy = 10, bomb = 40, bio = 0, rad = 0)
+ armor = list(melee = 25, bullet = 80, laser = 10, energy = 10, bomb = 40, bio = 0, rad = 0)
strip_delay = 70
put_on_delay = 50
diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm
index 5ddf605de07..2aecf9f789b 100644
--- a/code/modules/clothing/suits/wiz_robe.dm
+++ b/code/modules/clothing/suits/wiz_robe.dm
@@ -38,6 +38,11 @@
icon_state = "magus"
item_state = "magus"
+/obj/item/clothing/head/wizard/santa
+ name = "Santa's hat"
+ desc = "Ho ho ho. Merrry X-mas!"
+ icon_state = "santahat"
+ flags = BLOCKHAIR
/obj/item/clothing/suit/wizrobe
name = "wizard robe"
@@ -86,6 +91,12 @@
item_state = "magusred"
+/obj/item/clothing/suit/wizrobe/santa
+ name = "Santa's suit"
+ desc = "Festive!"
+ icon_state = "santa"
+ item_state = "santa"
+
/obj/item/clothing/suit/wizrobe/fake
name = "wizard robe"
desc = "A rather dull blue robe meant to mimick real wizard robes."
@@ -113,4 +124,4 @@
gas_transfer_coefficient = 1
permeability_coefficient = 1
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
- unacidable = 0
\ No newline at end of file
+ unacidable = 0
diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm
index 2440011164f..bb6be40c422 100644
--- a/code/modules/clothing/under/jobs/security.dm
+++ b/code/modules/clothing/under/jobs/security.dm
@@ -10,29 +10,23 @@
*/
/obj/item/clothing/under/rank/security
- name = "security jumpsuit"
- desc = "A security jumpsuit for officers complete with nanotrasen waistbuckle."
+ name = "security suit"
+ desc = "A formal security suit for officers complete with nanotrasen belt buckle."
icon_state = "security"
- item_state = "r_suit"
+ item_state = "gy_suit"
item_color = "security"
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
strip_delay = 50
/obj/item/clothing/under/rank/warden
- name = "warden's jumpsuit"
- desc = "A security jumpsuit suit with decorative silver pips and 'warden' written on the shoulders."
- icon_state = "wardenformal"
- item_state = "r_suit"
+ name = "warden's suit"
+ desc = "A formal security suit for the warden with blue desginations and '/Warden/' stiched into the shoulders."
+ icon_state = "warden"
+ item_state = "gy_suit"
item_color = "warden"
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
strip_delay = 50
-/obj/item/clothing/under/rank/warden/formal
- name = "warden's formal suit"
- desc = "A security formal suit with silver shoulder pips, a striped red tie, and tan slacks - the universal sign of bureaucracy.="
- icon_state = "wardenformal"
- item_color = "wardenformal"
-
/*
* Detective
*/
@@ -57,19 +51,13 @@
*/
/obj/item/clothing/under/rank/head_of_security
name = "head of security's suit"
- desc = "The jumpsuit worn by those few with the dedication to achieve the position of Head of Security."
+ desc = "A security suit decorated for those few with the dedication to achieve the position of Head of Security."
icon_state = "hos"
- item_state = "r_suit"
+ item_state = "gy_suit"
item_color = "hos"
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
strip_delay = 60
-/obj/item/clothing/under/rank/head_of_security/formal
- name = "head of security's formal suit"
- desc = "The formal suit for a Head of Security with a superior sense of style."
- icon_state = "hosformal"
- item_color = "hosformal"
-
/*
* Navy uniforms
*/
diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm
index 5c90623466a..88cc52f77bd 100644
--- a/code/modules/clothing/under/miscellaneous.dm
+++ b/code/modules/clothing/under/miscellaneous.dm
@@ -374,4 +374,51 @@
item_state = "wcoat"
item_color = "black_tango"
fitted = 0
- can_adjust = 0
\ No newline at end of file
+ can_adjust = 0
+
+/obj/item/clothing/under/stripeddress
+ name = "striped dress"
+ desc = "Fashion in space."
+ icon_state = "striped_dress"
+ item_state = "stripeddress"
+ item_color = "striped_dress"
+ fitted = 0
+ can_adjust = 0
+
+/obj/item/clothing/under/sailordress
+ name = "sailor dress"
+ desc = "Formal wear for a leading lady."
+ icon_state = "sailor_dress"
+ item_state = "sailordress"
+ item_color = "sailor_dress"
+ fitted = 0
+ can_adjust = 0
+
+/obj/item/clothing/under/redeveninggown
+ name = "red evening gown"
+ desc = "Fancy dress for space bar singers."
+ icon_state = "red_evening_gown"
+ item_state = "redeveninggown"
+ item_color = "red_evening_gown"
+ fitted = 0
+ can_adjust = 0
+
+/obj/item/clothing/under/maid
+ name = "maid costume"
+ desc = "Maid in China."
+ icon_state = "maid"
+ item_state = "maid"
+ item_color = "maid"
+ body_parts_covered = CHEST|GROIN
+ fitted = 0
+ can_adjust = 0
+
+/obj/item/clothing/under/janimaid
+ name = "maid uniform"
+ desc = "A simple maid uniform for housekeeping."
+ icon_state = "janimaid"
+ item_state = "janimaid"
+ item_color = "janimaid"
+ body_parts_covered = CHEST|GROIN
+ fitted = 0
+ can_adjust = 0
diff --git a/code/modules/clothing/under/pants.dm b/code/modules/clothing/under/pants.dm
new file mode 100644
index 00000000000..db060397c5a
--- /dev/null
+++ b/code/modules/clothing/under/pants.dm
@@ -0,0 +1,83 @@
+/obj/item/clothing/under/pants
+ gender = PLURAL
+ body_parts_covered = GROIN|LEGS
+ fitted = 0
+ can_adjust = 0
+
+/obj/item/clothing/under/pants/classicjeans
+ name = "classic jeans"
+ desc = "You feel cooler already."
+ icon_state = "jeansclassic"
+ item_color = "jeansclassic"
+
+/obj/item/clothing/under/pants/mustangjeans
+ name = "Must Hang jeans"
+ desc = "Made in the finest space jeans factory this side of Alpha Centauri."
+ icon_state = "jeansmustang"
+ item_color = "jeansmustang"
+
+/obj/item/clothing/under/pants/blackjeans
+ name = "black jeans"
+ desc = "Only for those who can pull it off."
+ icon_state = "jeansblack"
+ item_color = "jeansblack"
+
+/obj/item/clothing/under/pants/youngfolksjeans
+ name = "Young Folks jeans"
+ desc = "For those tired of boring old jeans. Relive the passion of your youth!"
+ icon_state = "jeansyoungfolks"
+ item_color = "jeansyoungfolks"
+
+/obj/item/clothing/under/pants/white
+ name = "white pants"
+ desc = "Plain white pants. Boring."
+ icon_state = "whitepants"
+ item_color = "whitepants"
+
+/obj/item/clothing/under/pants/red
+ name = "red pants"
+ desc = "Bright red pants. Overflowing with personality."
+ icon_state = "redpants"
+ item_color = "redpants"
+
+/obj/item/clothing/under/pants/black
+ name = "black pants"
+ desc = "These pants are dark, like your soul."
+ icon_state = "blackpants"
+ item_color = "blackpants"
+
+/obj/item/clothing/under/pants/tan
+ name = "tan pants"
+ desc = "Some tan pants. You look like a white collar worker with these on."
+ icon_state = "tanpants"
+ item_color = "tanpants"
+
+/obj/item/clothing/under/pants/blue
+ name = "blue pants"
+ desc = "Stylish blue pants. These go well with a lot of clothes."
+ icon_state = "bluepants"
+ item_color = "bluepants"
+
+/obj/item/clothing/under/pants/track
+ name = "track pants"
+ desc = "A pair of track pants, for the athletic."
+ icon_state = "trackpants"
+ item_color = "trackpants"
+
+/obj/item/clothing/under/pants/jeans
+ name = "jeans"
+ desc = "A nondescript pair of tough blue jeans."
+ icon_state = "jeans"
+ item_color = "jeans"
+
+/obj/item/clothing/under/pants/khaki
+ name = "khaki pants"
+ desc = "A pair of dust beige khaki pants."
+ icon_state = "khaki"
+ item_color = "khaki"
+
+/obj/item/clothing/under/pants/camo
+ name = "camo pants"
+ desc = "A pair of woodland camouflage pants. Probably not the best choice for a space station."
+ icon_state = "camopants"
+ item_color = "camopants"
diff --git a/code/modules/clothing/under/ties.dm b/code/modules/clothing/under/ties.dm
index 75cd9b7f17b..1520f2cfcf7 100644
--- a/code/modules/clothing/under/ties.dm
+++ b/code/modules/clothing/under/ties.dm
@@ -195,4 +195,85 @@
name = "medical guard armband"
desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is white and blue."
icon_state = "medblueband"
- item_color = "medblueband"
\ No newline at end of file
+ item_color = "medblueband"
+
+///////////
+//SCARVES//
+///////////
+
+/obj/item/clothing/tie/scarf
+ name = "scarf"
+ desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks."
+
+/obj/item/clothing/tie/scarf/red
+ name = "red scarf"
+ icon_state = "redscarf"
+ item_color = "redscarf"
+
+/obj/item/clothing/tie/scarf/green
+ name = "green scarf"
+ icon_state = "greenscarf"
+ item_color = "greenscarf"
+
+/obj/item/clothing/tie/scarf/darkblue
+ name = "dark blue scarf"
+ icon_state = "darkbluescarf"
+ item_color = "darkbluescarf"
+
+/obj/item/clothing/tie/scarf/purple
+ name = "purple scarf"
+ icon_state = "purplescarf"
+ item_color = "purplescarf"
+
+/obj/item/clothing/tie/scarf/yellow
+ name = "yellow scarf"
+ icon_state = "yellowscarf"
+ item_color = "yellowscarf"
+
+/obj/item/clothing/tie/scarf/orange
+ name = "orange scarf"
+ icon_state = "orangescarf"
+ item_color = "orangescarf"
+
+/obj/item/clothing/tie/scarf/lightblue
+ name = "light blue scarf"
+ icon_state = "lightbluescarf"
+ item_color = "lightbluescarf"
+
+/obj/item/clothing/tie/scarf/white
+ name = "white scarf"
+ icon_state = "whitescarf"
+ item_color = "whitescarf"
+
+/obj/item/clothing/tie/scarf/black
+ name = "black scarf"
+ icon_state = "blackscarf"
+ item_color = "blackscarf"
+
+/obj/item/clothing/tie/scarf/zebra
+ name = "zebra scarf"
+ icon_state = "zebrascarf"
+ item_color = "zebrascarf"
+
+/obj/item/clothing/tie/scarf/christmas
+ name = "christmas scarf"
+ icon_state = "christmasscarf"
+ item_color = "christmasscarf"
+
+//The three following scarves don't have the scarf subtype
+//This is because Ian can equip anything from that subtype
+//However, these 3 don't have corgi versions of their sprites
+/obj/item/clothing/tie/stripedredscarf
+ name = "striped red scarf"
+ icon_state = "stripedredscarf"
+ item_color = "stripedredscarf"
+
+/obj/item/clothing/tie/stripedgreenscarf
+ name = "striped green scarf"
+ icon_state = "stripedgreenscarf"
+ item_color = "stripedgreenscarf"
+
+/obj/item/clothing/tie/stripedbluescarf
+ name = "striped blue scarf"
+ icon_state = "stripedbluescarf"
+ item_color = "stripedbluescarf"
diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm
index 6a53af52426..c1eb8f03c3b 100644
--- a/code/modules/crafting/recipes.dm
+++ b/code/modules/crafting/recipes.dm
@@ -38,7 +38,7 @@
/obj/item/robot_parts/r_leg = 1,
/obj/item/stack/sheet/metal = 5,
/obj/item/stack/cable_coil = 5,
- /obj/item/weapon/gun/energy/taser = 1,
+ /obj/item/weapon/gun/energy/gun/advtaser = 1,
/obj/item/weapon/stock_parts/cell = 1,
/obj/item/device/assembly/prox_sensor = 1,
/obj/item/robot_parts/r_arm = 1)
@@ -117,6 +117,16 @@
tools = list(/obj/item/weapon/screwdriver)
time = 5
+/datum/table_recipe/frag12
+ name = "FRAG-12 Shell"
+ result = /obj/item/ammo_casing/shotgun/frag12
+ reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1,
+ /datum/reagent/glycerol = 5,
+ /datum/reagent/toxin/acid = 5,
+ /datum/reagent/toxin/acid/polyacid = 5,)
+ tools = list(/obj/item/weapon/screwdriver)
+ time = 5
+
/datum/table_recipe/ishotgun
name = "Improvised Shotgun"
result = /obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised
diff --git a/code/modules/events/holiday/xmas.dm b/code/modules/events/holiday/xmas.dm
index 3c93432b541..8bc253eaaad 100644
--- a/code/modules/events/holiday/xmas.dm
+++ b/code/modules/events/holiday/xmas.dm
@@ -77,4 +77,75 @@
icon_state = "xmashat"
desc = "A crappy paper hat that you are REQUIRED to wear."
flags_inv = 0
- armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
\ No newline at end of file
+ armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
+
+/datum/round_event_control/santa
+ name = "Santa is coming to town! (Christmas)"
+ holidayID = "Xmas"
+ typepath = /datum/round_event/santa
+ weight = 150
+ max_occurrences = 1
+ earliest_start = 20000
+
+/datum/round_event/santa
+ var/mob/living/carbon/human/santa //who is our santa?
+
+/datum/round_event/santa/announce()
+ priority_announce("Santa is coming to town!", "Unknown Transmission")
+
+/datum/round_event/santa/start()
+ for(var/mob/M in dead_mob_list)
+ spawn(0)
+ var/response = alert(M, "Santa is coming to town! Do you want to be santa?", "Ho ho ho!", "Yes", "No")
+ if(response == "Yes" && M && M.client && M.stat == DEAD && !santa)
+ santa = new /mob/living/carbon/human(pick(blobstart))
+ santa.key = M.key
+ qdel(M)
+
+ santa.real_name = "Santa Claus"
+ santa.name = "Santa Claus"
+ santa.mind.name = "Santa Claus"
+ santa.mind.assigned_role = "Santa"
+ santa.mind.special_role = "Santa"
+
+ santa.hair_style = "Long Hair"
+ santa.facial_hair_style = "Full Beard"
+ santa.hair_color = "FFF"
+ santa.facial_hair_color = "FFF"
+
+ santa.equip_to_slot_or_del(new /obj/item/clothing/under/color/red, slot_w_uniform)
+ santa.equip_to_slot_or_del(new /obj/item/clothing/suit/space/santa, slot_wear_suit)
+ santa.equip_to_slot_or_del(new /obj/item/clothing/head/santa, slot_head)
+ santa.equip_to_slot_or_del(new /obj/item/clothing/mask/breath, slot_wear_mask)
+ santa.equip_to_slot_or_del(new /obj/item/clothing/gloves/red, slot_gloves)
+ santa.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/red, slot_shoes)
+ santa.equip_to_slot_or_del(new /obj/item/weapon/tank/emergency_oxygen/double, slot_belt)
+ santa.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain, slot_ears)
+ santa.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/santabag, slot_back)
+ santa.equip_to_slot_or_del(new /obj/item/device/flashlight, slot_r_store) //most blob spawn locations are really dark.
+
+ var/obj/item/weapon/card/id/gold/santacard = new(santa)
+ santacard.update_label("Santa Claus", "Santa")
+ var/datum/job/captain/J = new/datum/job/captain
+ santacard.access = J.get_access()
+ santa.equip_to_slot_or_del(santacard, slot_wear_id)
+
+ santa.update_icons()
+
+ var/obj/item/weapon/storage/backpack/bag = santa.back
+ var/obj/item/weapon/a_gift/gift = new(santa)
+ while(bag.can_be_inserted(gift, 1))
+ bag.handle_item_insertion(gift, 1)
+ gift = new(santa)
+
+ var/datum/objective/santa_objective = new()
+ santa_objective.explanation_text = "Bring joy and presents to the station!"
+ santa_objective.completed = 1 //lets cut our santas some slack.
+ santa_objective.owner = santa.mind
+ santa.mind.objectives += santa_objective
+ santa.mind.spell_list += new /obj/effect/proc_holder/spell/aoe_turf/conjure/presents
+ var/obj/effect/proc_holder/spell/targeted/area_teleport/teleport/telespell = new(santa)
+ telespell.clothes_req = 0 //santa robes aren't actually magical.
+ santa.mind.spell_list += telespell //does the station have chimneys? WHO KNOWS!
+
+ santa << "You are Santa! Your objective is to bring joy to the people on this station. You can conjure more presents using a spell, and there are several presents in your bag."
diff --git a/code/modules/events/ninja.dm b/code/modules/events/ninja.dm
index 961a2d771d9..725cf620a18 100644
--- a/code/modules/events/ninja.dm
+++ b/code/modules/events/ninja.dm
@@ -172,7 +172,7 @@
Ninja.internals.icon_state = "internal1"
if(Ninja.mind != Mind) //something has gone wrong!
- ERROR("The ninja wasn't assigned the right mind. ;ç;")
+ ERROR("The ninja wasn't assigned the right mind. ;ç;")
Ninja << sound('sound/effects/ninja_greeting.ogg') //so ninja you probably wouldn't even know if you were made one
@@ -404,17 +404,17 @@ ________________________________________________________________________________
U:gloves.item_state = "s-ninjan"
else
if(U.mind.special_role!="Space Ninja")
- U << "\red fÄTaL ÈÈRRoR: 382200-*#00CÖDE RED\nUNAU†HORIZED USÈ DETÈC†††eD\nCoMMÈNCING SUB-R0U†IN3 13...\nTÈRMInATING U-U-USÈR..."
+ U << "\red fÄTaL ÈÈRRoR: 382200-*#00CÖDE RED\nUNAU†HORIZED USÈ DETÈC†††eD\nCoMMÈNCING SUB-R0U†IN3 13...\nTÈRMInATING U-U-USÈR..."
U.gib()
return 0
if(!istype(U:head, /obj/item/clothing/head/helmet/space/space_ninja))
- U << "ERROR: 100113 \black UNABLE TO LOCATE HEAD GEAR\nABORTING..."
+ U << "ERROR: 100113 UNABLE TO LOCATE HEAD GEAR\nABORTING..."
return 0
if(!istype(U:shoes, /obj/item/clothing/shoes/space_ninja))
- U << "ERROR: 122011 \black UNABLE TO LOCATE FOOT GEAR\nABORTING..."
+ U << "ERROR: 122011 UNABLE TO LOCATE FOOT GEAR\nABORTING..."
return 0
if(!istype(U:gloves, /obj/item/clothing/gloves/space_ninja))
- U << "ERROR: 110223 \black UNABLE TO LOCATE HAND GEAR\nABORTING..."
+ U << "ERROR: 110223 UNABLE TO LOCATE HAND GEAR\nABORTING..."
return 0
affecting = U
@@ -570,7 +570,7 @@ ________________________________________________________________________________
U.incorporeal_move = 0
kamikaze = 0
k_unlock = 0
- U << "Disengaging mode...\n\blackCODE NAME: KAMIKAZE"
+ U << "Disengaging mode...\nCODE NAME: KAMIKAZE"
//=======//AI VERBS//=======//
@@ -587,295 +587,6 @@ ________________________________________________________________________________
s_control = 1
-//=======//OLD & UNUSED//=======//
-
-/*
-
-Deprecated. get_dir() does the same thing. Still a nice proc.
-Returns direction that the mob or whomever should be facing in relation to the target.
-This proc does not grant absolute direction and is mostly useful for 8dir sprite positioning.
-I personally used it with getline() to great effect.
-/proc/get_dir_to(turf/start,turf/end)//N
- var/xdiff = start.x - end.x//The sign is important.
- var/ydiff = start.y - end.y
-
- var/direction_x = xdiff<1 ? 4:8//East - west
- var/direction_y = ydiff<1 ? 1:2//North - south
- var/direction_xy = xdiff==0 ? -4:0//If x is the same, subtract 4.
- var/direction_yx = ydiff==0 ? -1:0//If y is the same, subtract 1.
- var/direction_f = direction_x+direction_y+direction_xy+direction_yx//Finally direction tally.
- direction_f = direction_f==0 ? 1:direction_f//If direction is 0(same spot), return north. Otherwise, direction.
-
- return direction_f
-
-Alternative and inferior method of calculating spideros.
-var/temp = num2text(spideros)
-var/return_to = copytext(temp, 1, (length(temp)))//length has to be to the length of the thing because by default it's length+1
-spideros = text2num(return_to)//Maximum length here is 6. Use (return_to, X) to specify larger strings if needed.
-
-//Old way of draining from wire.
-/obj/item/clothing/gloves/space_ninja/proc/drain_wire()
- set name = "Drain From Wire"
- set desc = "Drain energy directly from an exposed wire."
- set category = "Ninja Equip"
-
- var/obj/structure/cable/attached
- var/mob/living/carbon/human/U = loc
- if(candrain&&!draining)
- var/turf/T = U.loc
- if(isturf(T) && istype(T, /turf/simulated/floor/plating)
- attached = locate() in T
- if(!attached)
- U << "\red Warning: no exposed cable available."
- else
- U << "\blue Connecting to wire, stand still..."
- if(do_after(U,50)&&!isnull(attached))
- drain("WIRE",attached,U:wear_suit,src)
- else
- U << "\red Procedure interrupted. Protocol terminated."
- return
-
-I've tried a lot of stuff but adding verbs to the AI while inside an object, inside another object, did not want to work properly.
-This was the best work-around I could come up with at the time. Uses objects to then display to panel, based on the object spell system.
-Can be added on to pretty easily.
-
-BYOND fixed the verb bugs so this is no longer necessary. I prefer verb panels.
-
-/obj/item/clothing/suit/space/space_ninja/proc/grant_AI_verbs()
- var/obj/effect/proc_holder/ai_return_control/A_C = new(AI)
- var/obj/effect/proc_holder/ai_hack_ninja/B_C = new(AI)
- var/obj/effect/proc_holder/ai_instruction/C_C = new(AI)
- new/obj/effect/proc_holder/ai_holo_clear(AI)
- AI.proc_holder_list += A_C
- AI.proc_holder_list += B_C
- AI.proc_holder_list += C_C
-
- s_control = 0
-
-/obj/item/clothing/suit/space/space_ninja/proc/remove_AI_verbs()
- var/obj/effect/proc_holder/ai_return_control/A_C = locate() in AI
- var/obj/effect/proc_holder/ai_hack_ninja/B_C = locate() in AI
- var/obj/effect/proc_holder/ai_instruction/C_C = locate() in AI
- var/obj/effect/proc_holder/ai_holo_clear/D_C = locate() in AI
- qdel(A_C)
- qdel(B_C)
- qdel(C_C)
- qdel(D_C)
- AI.proc_holder_list = list()
- verbs += /obj/item/clothing/suit/space/space_ninja/proc/deinit
- verbs += /obj/item/clothing/suit/space/space_ninja/proc/spideros
- verbs += /obj/item/clothing/suit/space/space_ninja/proc/stealth
-
- s_control = 1
-
-//Workaround
-/obj/effect/proc_holder/ai_holo_clear
- name = "Clear Hologram"
- desc = "Stops projecting the current holographic image."
- panel = "AI Ninja Equip"
- density = 0
- opacity = 0
-
-
-/obj/effect/proc_holder/ai_holo_clear/Click()
- var/obj/item/clothing/suit/space/space_ninja/S = loc.loc//This is so stupid but makes sure certain things work. AI.SUIT
- qdel(S.hologram.i_attached)
- qdel(S.hologram)
- var/obj/effect/proc_holder/ai_holo_clear/D_C = locate() in S.AI
- S.AI.proc_holder_list -= D_C
- return
-
-/obj/effect/proc_holder/ai_instruction//Let's the AI know what they can do.
- name = "Instructions"
- desc = "Displays a list of helpful information."
- panel = "AI Ninja Equip"
- density = 0
- opacity = 0
-
-/obj/effect/proc_holder/ai_instruction/Click()
- loc << "The menu you are seeing will contain other commands if they become available.\nRight click a nearby turf to display an AI Hologram. It will only be visible to you and your host. You can move it freely using normal movement keys--it will disappear if placed too far away."
-
-/obj/effect/proc_holder/ai_hack_ninja//Generic proc holder to make sure the two verbs below work propely.
- name = "Hack SpiderOS"
- desc = "Hack directly into the Black Widow(tm) neuro-interface."
- panel = "AI Ninja Equip"
- density = 0
- opacity = 0
-
-/obj/effect/proc_holder/ai_hack_ninja/Click()//When you click on it.
- var/obj/item/clothing/suit/space/space_ninja/S = loc.loc
- S.hack_spideros()
- return
-
-/obj/effect/proc_holder/ai_return_control
- name = "Relinquish Control"
- desc = "Return control to the user."
- panel = "AI Ninja Equip"
- density = 0
- opacity = 0
-
-/obj/effect/proc_holder/ai_return_control/Click()
- var/mob/living/silicon/ai/A = loc
- var/obj/item/clothing/suit/space/space_ninja/S = A.loc
- A << browse(null, "window=hack spideros")//Close window
- A << "You have seized your hacking attempt. [S.affecting] has regained control."
- S.affecting << "UPDATE: [A.real_name] has ceased hacking attempt. All systems clear."
- S.remove_AI_verbs()
- return
-*/
-
-//=======//DEBUG//=======//
-/*
-/obj/item/clothing/suit/space/space_ninja/proc/display_verb_procs()
-//DEBUG
-//Does nothing at the moment. I am trying to see if it's possible to mess around with verbs as variables.
- //for(var/P in verbs)
-// if(P.set.name)
-// usr << "[P.set.name], path: [P]"
- return
-
-
-Most of these are at various points of incomplete.
-
-/mob/verb/grant_object_panel()
- set name = "Grant AI Ninja Verbs Debug"
- set category = "Ninja Debug"
- var/obj/effect/proc_holder/ai_return_control/A_C = new(src)
- var/obj/effect/proc_holder/ai_hack_ninja/B_C = new(src)
- usr:proc_holder_list += A_C
- usr:proc_holder_list += B_C
-
-mob/verb/remove_object_panel()
- set name = "Remove AI Ninja Verbs Debug"
- set category = "Ninja Debug"
- var/obj/effect/proc_holder/ai_return_control/A = locate() in src
- var/obj/effect/proc_holder/ai_hack_ninja/B = locate() in src
- usr:proc_holder_list -= A
- usr:proc_holder_list -= B
- qdel(A)//First.
- qdel(B)//Second, to keep the proc going.
- return
-
-/client/verb/grant_verb_ninja_debug1(var/mob/M in view())
- set name = "Grant AI Ninja Verbs Debug"
- set category = "Ninja Debug"
-
- M.verbs += /mob/living/silicon/ai/verb/ninja_return_control
- M.verbs += /mob/living/silicon/ai/verb/ninja_spideros
- return
-
-/client/verb/grant_verb_ninja_debug2(var/mob/living/carbon/human/M in view())
- set name = "Grant Back Ninja Verbs"
- set category = "Ninja Debug"
-
- M.wear_suit.verbs += /obj/item/clothing/suit/space/space_ninja/proc/deinit
- M.wear_suit.verbs += /obj/item/clothing/suit/space/space_ninja/proc/spideros
- return
-
-/obj/proc/grant_verb_ninja_debug3(var/mob/living/silicon/ai/A as mob)
- set name = "Grant AI Ninja Verbs"
- set category = "null"
- set hidden = 1
- A.verbs -= /obj/item/clothing/suit/space/space_ninja/proc/deinit
- A.verbs -= /obj/item/clothing/suit/space/space_ninja/proc/spideros
- return
-
-/mob/verb/get_dir_to_target(var/mob/M in oview())
- set name = "Get Direction to Target"
- set category = "Ninja Debug"
-
- world << "DIR: [get_dir_to(src.loc,M.loc)]"
- return
-//
-/mob/verb/kill_self_debug()
- set name = "DEBUG Kill Self"
- set category = "Ninja Debug"
-
- src:death()
-
-/client/verb/switch_client_debug()
- set name = "DEBUG Switch Client"
- set category = "Ninja Debug"
-
- mob = mob:loc:loc
-
-/mob/verb/possess_mob(var/mob/M in oview())
- set name = "DEBUG Possess Mob"
- set category = "Ninja Debug"
-
- client.mob = M
-
-/client/verb/switcharoo(var/mob/M in oview())
- set name = "DEBUG Switch to AI"
- set category = "Ninja Debug"
-
- var/mob/last_mob = mob
- mob = M
- last_mob:wear_suit:AI:key = key
-//
-/client/verb/ninjaget(var/mob/M in oview())
- set name = "DEBUG Ninja GET"
- set category = "Ninja Debug"
-
- mob = M
- M.gib()
- space_ninja()
-
-/mob/verb/set_debug_ninja_target()
- set name = "Set Debug Target"
- set category = "Ninja Debug"
-
- ninja_debug_target = src//The target is you, brohime.
- world << "Target: [src]"
-
-/mob/verb/hack_spideros_debug()
- set name = "Debug Hack Spider OS"
- set category = "Ninja Debug"
-
- var/mob/living/silicon/ai/A = loc:AI
- if(A)
- if(!A.key)
- A.client.mob = loc:affecting
- else
- loc:affecting:client:mob = A
- return
-
-//Tests the net and what it does.
-/mob/verb/ninjanet_debug()
- set name = "Energy Net Debug"
- set category = "Ninja Debug"
-
- var/obj/effect/energy_net/E = new /obj/effect/energy_net(loc)
- E.layer = layer+1//To have it appear one layer above the mob.
- stunned = 10//So they are stunned initially but conscious.
- anchored = 1//Anchors them so they can't move.
- E.affecting = src
- spawn(0)//Parallel processing.
- E.process(src)
- return
-
-I made this as a test for a possible ninja ability (or perhaps more) for a certain mob to see hallucinations.
-The thing here is that these guys have to be coded to do stuff as they are simply images that you can't even click on.
-That is why you attached them to objects.
-/mob/verb/TestNinjaShadow()
- set name = "Test Ninja Ability"
- set category = "Ninja Debug"
-
- if(client)
- var/safety = 4
- for(var/turf/T in oview(5))
- if(prob(20))
- var/current_clone = image('icons/mob/mob.dmi',T,"s-ninja")
- safety--
- spawn(0)
- src << current_clone
- spawn(300)
- qdel(current_clone)
- spawn while(!isnull(current_clone))
- step_to(current_clone,src,1)
- sleep(5)
- if(safety<=0) break
- return */
//Alternate ninja speech replacement.
/*This text is hilarious but also absolutely retarded.
@@ -1377,12 +1088,13 @@ ________________________________________________________________________________
reagent_id == "radium" ? reagents.add_reagent(reagent_id, r_maxamount+(a_boost*a_transfer)) : reagents.add_reagent(reagent_id, r_maxamount)//It will take into account radium used for adrenaline boosting.
cell = new/obj/item/weapon/stock_parts/cell/high//The suit should *always* have a battery because so many things rely on it.
cell.charge = 9000//Starting charge should not be higher than maximum charge. It leads to problems with recharging.
+ NAI = new(src) //ninja intellicard
/obj/item/clothing/suit/space/space_ninja/Destroy()
if(affecting)//To make sure the window is closed.
affecting << browse(null, "window=hack spideros")
if(AI)//If there are AIs present when the ninja kicks the bucket.
- killai()
+ killai(NAI)
if(hologram)//If there is a hologram
qdel(hologram.i_attached)//Delete it and the attached image.
qdel(hologram)
@@ -1395,15 +1107,18 @@ ________________________________________________________________________________
qdel(n_shoes)
qdel(src)
-/obj/item/clothing/suit/space/space_ninja/proc/killai(mob/living/silicon/ai/A = AI)
- if(A.client)
- A << "Self-erase protocol dete-- *bzzzzz*"
- A << browse(null, "window=hack spideros")
- AI = null
- A.death(1)//Kill, deleting mob.
- qdel(A)
+
+
+/obj/item/clothing/suit/space/space_ninja/proc/killai(var/obj/item/device/aicard/NAI)
+ for(var/mob/living/silicon/ai/A in src)
+ if(A.client)
+ A << "Self-erase protocol dete-- *bzzzzz*"
+ A << browse(null, "window=hack spideros")
+ NAI.flush = 1
return
+
+
//=======//SUIT VERBS//=======//
//Verbs link to procs because verb-like procs have a bug which prevents their use if the arguments are not readily referenced.
@@ -1459,10 +1174,10 @@ ________________________________________________________________________________
//Let's check for some safeties.
if(s_initialized&&!affecting) terminate()//Kills the suit and attached objects.
if(!s_initialized) return//When turned off the proc stops.
- if(AI&&AI.stat==2)//If there is an AI and it's ded. Shouldn't happen without purging, could happen.
- if(!s_control)
- ai_return_control()//Return control to ninja if the AI was previously in control.
- killai()//Delete AI.
+ for(var/mob/living/silicon/ai/A in NAI)
+ if(A&&A.stat==2)//If there is an AI and it's ded. Shouldn't happen without purging, could happen.
+ if(!s_control)
+ ai_return_control()//Return control to ninja if the AI was previously in control.
//Now let's do the normal processing.
if(s_coold) s_coold--//Checks for ability s_cooldown first.
@@ -1504,7 +1219,7 @@ ________________________________________________________________________________
U << "Extending neural-net interface...\nNow monitoring brain wave pattern..."
if(3)
if(U.stat==2||U.health<=0)
- U << "FĆAL �Rr�R: 344--93#�&&21 BR��N |/|/aV� PATT$RN RED\nA-A-aB�rT�NG..."
+ U << "FĆAL �Rr�R: 344--93#�&&21 BR��N |/|/aV� PATT$RN RED\nA-A-aB�rT�NG..."
unlock_suit()
break
lock_suit(U,1)//Check for icons.
@@ -1525,9 +1240,9 @@ ________________________________________________________________________________
if(!U.mind||U.mind.assigned_role!="MODE")//Your run of the mill persons shouldn't know what it is. Or how to turn it on.
U << "You do not understand how this suit functions. Where the heck did it even come from?"
else if(s_initialized)
- U << "The suit is already functioning. \black Please report this bug."
+ U << "The suit is already functioning. Please report this bug."
else
- U << "ERROR: \black You cannot use this function at this time."
+ U << "ERROR: You cannot use this function at this time."
return
//=======//DEINITIALIZE//=======//
@@ -1536,12 +1251,12 @@ ________________________________________________________________________________
if(affecting==loc&&!s_busy)
var/mob/living/carbon/human/U = affecting
if(!s_initialized)
- U << "The suit is not initialized. \black Please report this bug."
+ U << "The suit is not initialized. Please report this bug."
return
if(alert("Are you certain you wish to remove the suit? This will take time and remove all abilities.",,"Yes","No")=="No")
return
- if(s_busy||flush)
- U << "ERROR: \black You cannot use this function at this time."
+ if(s_busy || NAI.flush)
+ U << "ERROR: You cannot use this function at this time."
return
s_busy = 1
for(var/i = 0,i<7,i++)
@@ -1721,7 +1436,7 @@ ________________________________________________________________________________
Voice masking generates a random name the ninja can use over the radio and in-person. Although, the former use is recommended.
Toggling vision cycles to one of the following: thermal, meson, or darkness vision. The starting mode allows one to scout the identity of those in view, revealing their role. Traitors, revolutionaries, wizards, and other such people will be made known to you.
Stealth, when activated, drains more battery charge and works similarly to a syndicate cloak. The cloak will deactivate when most Abilities are utilized.
- On-board AI: The suit is able to download an AI much like an intelicard. Check with SpiderOS for details once downloaded.
+ On-board AI: The suit is able to download an AI much like an intellicard. Check with SpiderOS for details once downloaded.
SpiderOS is a specialized, PDA-like screen that allows for a small variety of functions, such as injecting healing chemicals directly from the suit. You are using it now, if that was not already obvious. You may also download AI modules directly to the OS.
Abilities:
@@ -1742,45 +1457,12 @@ ________________________________________________________________________________
That is all you will need to know. The rest will come with practice and talent. Good luck!
Master /N
- "}//This has always bothered me but not anymore!
+ "}
if(5)
- var/laws
dat += "
AI Control:
"
- //var/mob/living/silicon/ai/A = AI
- if(AI)//If an AI exists.
- dat += "Stored AI: [A.name]
"
- dat += "System integrity: [(A.health+100)/2]%
"
+ if(NAI)
+ NAI.attack_self(display_to) //Just accesses the integrated Intellicard. If an AI is in control of the suit then I guess it can interact with its own card. How meta.
- //I personally think this makes things a little more fun. Ninjas can override all but law 0.
- //if (A.laws.zeroth)
- // laws += "0: [A.laws.zeroth]"
-
- for (var/index = 1, index <= A.laws.ion.len, index++)
- var/law = A.laws.ion[index]
- if (length(law) > 0)
- var/num = ionnum()
- laws += "[num]. [law]"
-
- var/number = 1
- for (var/index = 1, index <= A.laws.inherent.len, index++)
- var/law = A.laws.inherent[index]
- if (length(law) > 0)
- laws += "[number]: [law]"
- number++
-
- for (var/index = 1, index <= A.laws.supplied.len, index++)
- var/law = A.laws.supplied[index]
- if (length(law) > 0)
- laws += "[number]: [law]"
- number++
-
- dat += "Laws:
"
-
- if (!flush)
- dat += "Purge AI
"
- else
- dat += "Purge in progress...
"
- dat += " [A.control_disabled ? "Enable" : "Disable"] Wireless Activity"
if(6)
dat += {"
Activate Abilities:
@@ -1857,7 +1539,7 @@ ________________________________________________________________________________
U.electrocute_act(damage, src,0.1,1)//The last argument is a safety for the human proc that checks for gloves.
cell.charge -= damage
else
- A << "ERROR: \black Not enough energy remaining."
+ A << "ERROR: Not enough energy remaining."
if("Message")
var/obj/item/device/pda/P = locate(href_list["target"])
@@ -1918,7 +1600,7 @@ ________________________________________________________________________________
for(var/i, i<4, i++)
switch(i)
if(0)
- U << "Engaging mode...\n\blackCODE NAME: KAMIKAZE"
+ U << "Engaging mode...\nCODE NAME: KAMIKAZE"
if(1)
U << "Re-routing power nodes... \nUnlocking limiter..."
if(2)
@@ -1932,7 +1614,7 @@ ________________________________________________________________________________
return
sleep(s_delay)
else
- U << "ERROR: \black Unable to initiate mode."
+ U << "ERROR: Unable to initiate mode."
else
U << browse(null, "window=spideros")
s_busy = 0
@@ -1954,7 +1636,7 @@ ________________________________________________________________________________
t_disk.loc = T
t_disk = null
else
- U << "ERROR: \black Could not eject disk."
+ U << "ERROR: Could not eject disk."
if("Copy to Disk")
var/datum/tech/current_data = locate(href_list["target"])
@@ -1975,7 +1657,7 @@ ________________________________________________________________________________
pai.loc = T
pai = null
else
- U << "ERROR: \black Could not eject pAI card."
+ U << "ERROR: Could not eject pAI card."
if("Override AI Laws")
var/law_zero = A.laws.zeroth//Remembers law zero, if there is one.
@@ -1996,25 +1678,25 @@ ________________________________________________________________________________
if(AI==A)
switch(i)
if(0)
- A << "WARNING: \black purge procedure detected. \nNow hacking host..."
- U << "WARNING: HACKING AT��TEMP� IN PR0GRESs!"
+ A << "WARNING: purge procedure detected. \nNow hacking host..."
+ U << "WARNING: HACKING AT��TEMP� IN PR0GRESs!"
spideros = 0
k_unlock = 0
U << browse(null, "window=spideros")
if(1)
A << "Disconnecting neural interface..."
- U << "WAR�NING: �R�O0�Gr�--S 2&3%"
+ U << "WAR�NING: �R�O0�Gr�--S 2&3%"
if(2)
A << "Shutting down external protocol..."
- U << "WARNING: P����RֆGr�5S 677^%"
+ U << "WARNING: P����RֆGr�5S 677^%"
cancel_stealth()
if(3)
A << "Connecting to kernel..."
- U << "WARNING: �R�r�R_404"
+ U << "WARNING: �R�r�R_404"
A.control_disabled = 0
if(4)
A << "Connection established and secured. Menu updated."
- U << "W�r#nING: #%@!!WȆ|_4�54@ \nUn�B88l3 T� L�-�o-L�CaT2 ##$!�RN�0..%.."
+ U << "W�r#nING: #%@!!WȆ|_4�54@ \nUn�B88l3 T� L�-�o-L�CaT2 ##$!�RN�0..%.."
grant_AI_verbs()
return
sleep(s_delay)
@@ -2022,7 +1704,7 @@ ________________________________________________________________________________
s_busy = 0
U << "Hacking attempt disconnected. Resuming normal operation."
else
- flush = 1
+ NAI.flush = 1
A.suiciding = 1
A << "Your core files are being purged! This is the end..."
spawn(0)
@@ -2031,9 +1713,9 @@ ________________________________________________________________________________
A.adjustOxyLoss(2)
A.updatehealth()
sleep(10)
- killai()
+ killai(NAI)
U << "Artificial Intelligence was terminated. Rebooting..."
- flush = 0
+ NAI.flush = 0
if("Wireless AI")
A.control_disabled = !A.control_disabled
@@ -2058,19 +1740,21 @@ ________________________________________________________________________________
hologram.invisibility = 101//So that it doesn't show up, ever. This also means one could attach a number of images to a single obj and display them differently to differnet people.
hologram.anchored = 1//So it cannot be dragged by space wind and the like.
hologram.dir = get_dir(T,affecting.loc)
- var/image/I = image(AI.holo_icon,hologram)//Attach an image to object.
- hologram.i_attached = I//To attach the image in order to later reference.
- AI << I
- affecting << I
- affecting << "An image flicks to life nearby. It appears visible to you only."
- verbs += /obj/item/clothing/suit/space/space_ninja/proc/ai_holo_clear
+ for(var/mob/living/silicon/ai/A in NAI)
+ var/image/I = image(A.holo_icon,hologram)//Attach an image to object.
+ hologram.i_attached = I//To attach the image in order to later reference.
+ A << I
+ affecting << I
+ affecting << "An image flicks to life nearby. It appears visible to you only."
- ai_holo_process()//Move to initialize
+ verbs += /obj/item/clothing/suit/space/space_ninja/proc/ai_holo_clear
+
+ ai_holo_process()//Move to initialize
else
- AI << "ERROR: \black Image feed in progress."
+ AI << "ERROR: Image feed in progress."
else
- AI << "ERROR: \black Unable to project image."
+ AI << "ERROR: Unable to project image."
return
/obj/item/clothing/suit/space/space_ninja/proc/ai_holo_process()
@@ -2120,11 +1804,13 @@ ________________________________________________________________________________
set category = "AI Ninja Equip"
set src = usr.loc
- AI << browse(null, "window=spideros")//Close window
- AI << "You have seized your hacking attempt. [affecting.real_name] has regained control."
- affecting << "UPDATE: [AI.real_name] has ceased hacking attempt. All systems clear."
- remove_AI_verbs()
+ for(var/mob/living/silicon/ai/A in NAI)
+ AI << browse(null, "window=spideros")//Close window
+ AI << "You have seized your hacking attempt. [affecting.real_name] has regained control."
+ affecting << "UPDATE: [A.real_name] has ceased hacking attempt. All systems clear."
+
+ remove_AI_verbs()
return
//=======//GENERAL SUIT PROCS//=======//
@@ -2135,7 +1821,7 @@ ________________________________________________________________________________
if(s_control)
I:transfer_ai("NINJASUIT","AICARD",src,U)
else
- U << "ERROR: \black Remote access channel disabled."
+ U << "ERROR: Remote access channel disabled."
return//Return individually so that ..() can run properly at the end of the proc.
else if(istype(I, /obj/item/device/paicard) && !pai)//If it's a pai card.
U:drop_item()
@@ -2190,7 +1876,7 @@ ________________________________________________________________________________
TD.stored = null
U << "Data analyzed and updated. Disk erased."
else
- U << "ERROR: \black Procedure interrupted. Process terminated."
+ U << "ERROR: Procedure interrupted. Process terminated."
else
I.loc = src
t_disk = I
@@ -2256,7 +1942,7 @@ ________________________________________________________________________________
user << "There are [s_bombs] smoke bomb\s remaining."
user << "There are [a_boost] adrenaline booster\s remaining."
else
- user << "�rr�R �a��a�� No-�-� f��N� 3RR�r"
+ user << "�rr�R �a��a�� No-�-� f��N� 3RR�r"
/*
===================================================================================
@@ -2405,7 +2091,7 @@ ________________________________________________________________________________
for(var/datum/tech/analyzing_data in A:files.known_tech)
if(current_data.id==analyzing_data.id)
if(analyzing_data.level>current_data.level)
- U << "Database: \black UPDATED."
+ U << "Database: UPDATED."
current_data.level = analyzing_data.level
break//Move on to next.
else break//Otherwise, quit processing.
@@ -2617,7 +2303,7 @@ It is possible to destroy the net by the occupant or someone else.
for(var/mob/O in viewers(src, 3))
O.show_message("[M.name] was recovered from the energy net!", 1, "You hear a grunt.", 2)
if(!isnull(master))//As long as they still exist.
- master << "ERROR: \black unable to initiate transport protocol. Procedure terminated."
+ master << "ERROR: unable to initiate transport protocol. Procedure terminated."
qdel(src)
return
@@ -2631,7 +2317,7 @@ It is possible to destroy the net by the occupant or someone else.
if(isnull(M)||M.loc!=loc)//If mob is gone or not at the location.
if(!isnull(master))//As long as they still exist.
- master << "ERROR: \black unable to locate \the [mob_name]. Procedure terminated."
+ master << "ERROR: unable to locate \the [mob_name]. Procedure terminated."
qdel(src)//Get rid of the net.
return
@@ -2667,7 +2353,7 @@ It is possible to destroy the net by the occupant or someone else.
O.show_message("[M] vanished!", 1, "You hear sparks flying!", 2)
if(!isnull(master))//As long as they still exist.
- master << "SUCCESS: \black transport procedure of \the [affecting] complete."
+ master << "SUCCESS: transport procedure of \the [affecting] complete."
M.anchored = 0//Important.
diff --git a/code/modules/events/wizard/departmentrevolt.dm b/code/modules/events/wizard/departmentrevolt.dm
index 68c9d68e430..59707297095 100644
--- a/code/modules/events/wizard/departmentrevolt.dm
+++ b/code/modules/events/wizard/departmentrevolt.dm
@@ -30,7 +30,7 @@
jobs_to_revolt = list("Quartermaster", "Cargo Technician", "Shaft Miner")
nation = pick("Cargo", "Guna", "Suppli", "Mule", "Crate", "Ore", "Mini", "Shaf")
if("whatevercolorrepresentstheservicepeople") //the few, the proud, the technically aligned
- jobs_to_revolt = list("Bartender", "Chef", "Botanist", "Clown", "Mime", "Janitor", "Chaplain")
+ jobs_to_revolt = list("Bartender", "Cook", "Botanist", "Clown", "Mime", "Janitor", "Chaplain")
nation = pick("Honka", "Boozo", "Fatu", "Danka", "Mimi", "Libra", "Jani", "Religi")
nation += pick("stan", "topia", "land", "nia", "ca", "tova", "dor", "ador", "tia", "sia", "ano", "tica", "tide", "cis", "marea", "co", "taoide", "slavia", "stotzka")
diff --git a/code/modules/food&drinks/drinks/drinks.dm b/code/modules/food&drinks/drinks/drinks.dm
index dc975701a3f..9f064b53481 100644
--- a/code/modules/food&drinks/drinks/drinks.dm
+++ b/code/modules/food&drinks/drinks/drinks.dm
@@ -28,6 +28,10 @@
return 0
if(M == user)
+ if(src.reagents.has_reagent("sugar") && M.satiety < -150 && M.nutrition > NUTRITION_LEVEL_STARVING + 50 )
+ M << "You don't feel like drinking any more sugary drink at the moment."
+ return 0
+
M << "You swallow a gulp of [src]."
if(reagents.total_volume)
reagents.reaction(M, INGEST)
@@ -191,6 +195,7 @@
/obj/item/weapon/reagent_containers/food/drinks/h_chocolate/New()
..()
reagents.add_reagent("hot_coco", 30)
+ reagents.add_reagent("sugar", 5)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
diff --git a/code/modules/food&drinks/drinks/drinks/bottle.dm b/code/modules/food&drinks/drinks/drinks/bottle.dm
index b5ef66b0700..5b63c23a921 100644
--- a/code/modules/food&drinks/drinks/drinks/bottle.dm
+++ b/code/modules/food&drinks/drinks/drinks/bottle.dm
@@ -101,7 +101,7 @@
//The reagents in the bottle splash all over the target, thanks for the idea Nodrak
if(src.reagents)
for(var/mob/O in viewers(user, null))
- O.show_message(text("The contents of the [src] splashes all over [target]!"), 1)
+ O.show_message(text("The contents of \the [src] splashes all over [target]!"), 1)
src.reagents.reaction(target, TOUCH)
//Finally, smash the bottle. This kills (del) the bottle.
diff --git a/code/modules/food&drinks/food/condiment.dm b/code/modules/food&drinks/food/condiment.dm
index fc56ece94a4..948445dc33b 100644
--- a/code/modules/food&drinks/food/condiment.dm
+++ b/code/modules/food&drinks/food/condiment.dm
@@ -42,7 +42,10 @@
return 0
if(M == user)
- M << "You swallow some of contents of the [src]."
+ if(src.reagents.has_reagent("sugar") && M.satiety < -150 && M.nutrition > NUTRITION_LEVEL_STARVING + 50 )
+ M << "You don't feel like drinking any more sugary food at the moment."
+ return 0
+ M << "You swallow some of contents of \the [src]."
if(reagents.total_volume)
reagents.reaction(M, INGEST)
spawn(5)
diff --git a/code/modules/food&drinks/food/snacks.dm b/code/modules/food&drinks/food/snacks.dm
index 3cdea87cb8e..1dc37168afa 100644
--- a/code/modules/food&drinks/food/snacks.dm
+++ b/code/modules/food&drinks/food/snacks.dm
@@ -49,8 +49,15 @@
if(!canconsume(M, user))
return 0
+ var/fullness = M.nutrition + 10
+ for(var/datum/reagent/consumable/C in M.reagents.reagent_list) //we add the nutrition value of what we're currently digesting
+ fullness += C.nutriment_factor * C.volume / C.metabolization_rate
+
if(M == user) //If you're eating it yourself.
- var/fullness = M.nutrition + (M.reagents.get_reagent_amount("nutriment") * 25)
+ if(src.reagents.has_reagent("sugar") && M.satiety < -150 && M.nutrition > NUTRITION_LEVEL_STARVING + 50 )
+ M << "You don't feel like eating any more sugary food at the moment."
+ return 0
+
if(wrapped)
M << "You can't eat wrapped food!"
return 0
@@ -58,19 +65,18 @@
M << "You hungrily [eatverb] some of \the [src] and gobble it down!"
else if(fullness > 50 && fullness < 150)
M << "You hungrily begin to [eatverb] \the [src]."
- else if(fullness > 150 && fullness < 350)
+ else if(fullness > 150 && fullness < 500)
M << "You [eatverb] \the [src]."
- else if(fullness > 350 && fullness < 550)
+ else if(fullness > 500 && fullness < 600)
M << "You unwillingly [eatverb] a bit of \the [src]."
- else if(fullness > (550 * (1 + M.overeatduration / 2000))) // The more you eat - the more you can eat
+ else if(fullness > (600 * (1 + M.overeatduration / 2000))) // The more you eat - the more you can eat
M << "You cannot force any more of \the [src] to go down your throat."
return 0
else
if(! (isslime(M) || isbrain(M)) ) //If you're feeding it to someone else.
- var/fullness = M.nutrition + (M.reagents.get_reagent_amount("nutriment") * 25)
if(wrapped)
return 0
- if(fullness <= (550 * (1 + M.overeatduration / 1000)))
+ if(fullness <= (600 * (1 + M.overeatduration / 1000)))
M.visible_message("[user] attempts to feed [M] [src].", \
"[user] attempts to feed [M] [src].")
else
@@ -78,7 +84,8 @@
"[user] cannot force anymore of [src] down [M]'s throat!")
return 0
- if(!do_mob(user, M)) return
+ if(!do_mob(user, M))
+ return
add_logs(user, M, "fed", object="[reagentlist(src)]")
M.visible_message("[user] forces [M] to eat [src].", \
"[user] feeds [M] to eat [src].")
@@ -182,10 +189,10 @@
if(isanimal(M))
if(iscorgi(M))
if(bitecount == 0 || prob(50))
- M.emote("me", 1, "nibbles away at the [src]")
+ M.emote("me", 1, "nibbles away at \the [src]")
bitecount++
if(bitecount >= 5)
- var/sattisfaction_text = pick("burps from enjoyment", "yaps for more", "woofs twice", "looks at the area where the [src] was")
+ var/sattisfaction_text = pick("burps from enjoyment", "yaps for more", "woofs twice", "looks at the area where \the [src] was")
if(sattisfaction_text)
M.emote("me", 1, "[sattisfaction_text]")
qdel(src)
@@ -253,6 +260,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesewheel/New()
..()
reagents.add_reagent("nutriment", 20)
+ reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge
diff --git a/code/modules/food&drinks/food/snacks_bread.dm b/code/modules/food&drinks/food/snacks_bread.dm
index 793dd7f1e9f..62d53a71605 100644
--- a/code/modules/food&drinks/food/snacks_bread.dm
+++ b/code/modules/food&drinks/food/snacks_bread.dm
@@ -9,6 +9,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/store/meatbread/New()
..()
reagents.add_reagent("nutriment", 30)
+ reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/meatbreadslice
@@ -28,6 +29,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/store/xenomeatbread/New()
..()
reagents.add_reagent("nutriment", 30)
+ reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice
@@ -48,6 +50,7 @@
..()
reagents.add_reagent("nutriment", 30)
reagents.add_reagent("toxin", 15)
+ reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/spidermeatbreadslice
@@ -91,6 +94,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/store/tofubread/New()
..()
reagents.add_reagent("nutriment", 30)
+ reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/tofubreadslice
@@ -130,6 +134,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/store/creamcheesebread/New()
..()
reagents.add_reagent("nutriment", 20)
+ reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/creamcheesebreadslice
@@ -149,4 +154,5 @@
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("blackpepper", 1)
reagents.add_reagent("sodiumchloride", 1)
+ reagents.add_reagent("vitamin", 1)
bitesize = 3
diff --git a/code/modules/food&drinks/food/snacks_burgers.dm b/code/modules/food&drinks/food/snacks_burgers.dm
index 268f0502894..d44f466a7d5 100644
--- a/code/modules/food&drinks/food/snacks_burgers.dm
+++ b/code/modules/food&drinks/food/snacks_burgers.dm
@@ -6,6 +6,7 @@
/obj/item/weapon/reagent_containers/food/snacks/burger/New()
..()
reagents.add_reagent("nutriment", 6)
+ reagents.add_reagent("vitamin", 1)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/burger/human
@@ -27,6 +28,7 @@
/obj/item/weapon/reagent_containers/food/snacks/burger/fish/New()
..()
reagents.add_reagent("carpotoxin", 3)
+ reagents.add_reagent("vitamin", 3)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/burger/tofu
@@ -42,6 +44,7 @@
/obj/item/weapon/reagent_containers/food/snacks/burger/roburger/New()
..()
reagents.add_reagent("nanites", 2)
+ reagents.add_reagent("vitamin", 5)
/obj/item/weapon/reagent_containers/food/snacks/burger/roburgerbig
name = "roburger"
@@ -52,6 +55,7 @@
/obj/item/weapon/reagent_containers/food/snacks/burger/roburgerbig/New()
..()
reagents.add_reagent("nanites", 100)
+ reagents.add_reagent("vitamin", 20)
bitesize = 0.1
/obj/item/weapon/reagent_containers/food/snacks/burger/xeno
@@ -81,6 +85,7 @@
/obj/item/weapon/reagent_containers/food/snacks/burger/brain/New()
..()
reagents.add_reagent("alkysine", 6)
+ reagents.add_reagent("vitamin", 3)
/obj/item/weapon/reagent_containers/food/snacks/burger/ghost
name = "ghost burger"
@@ -176,10 +181,12 @@
/obj/item/weapon/reagent_containers/food/snacks/burger/jelly/slime/New()
..()
reagents.add_reagent("slimejelly", 5)
+ reagents.add_reagent("vitamin", 3)
/obj/item/weapon/reagent_containers/food/snacks/burger/jelly/cherry/New()
..()
reagents.add_reagent("cherryjelly", 5)
+ reagents.add_reagent("vitamin", 3)
/obj/item/weapon/reagent_containers/food/snacks/burger/superbite
name = "super bite burger"
diff --git a/code/modules/food&drinks/food/snacks_cake.dm b/code/modules/food&drinks/food/snacks_cake.dm
index 76163b4723b..e74d7a0d951 100644
--- a/code/modules/food&drinks/food/snacks_cake.dm
+++ b/code/modules/food&drinks/food/snacks_cake.dm
@@ -8,8 +8,9 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/store/carrotcake/New()
..()
- reagents.add_reagent("nutriment", 25)
+ reagents.add_reagent("nutriment", 20)
reagents.add_reagent("imidazoline", 10)
+ reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/carrotcakeslice
@@ -28,8 +29,9 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/store/braincake/New()
..()
- reagents.add_reagent("nutriment", 25)
+ reagents.add_reagent("nutriment", 20)
reagents.add_reagent("alkysine", 10)
+ reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/braincakeslice
@@ -48,7 +50,8 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/store/cheesecake/New()
..()
- reagents.add_reagent("nutriment", 25)
+ reagents.add_reagent("nutriment", 20)
+ reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/cheesecakeslice
@@ -68,6 +71,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/store/plaincake/New()
..()
reagents.add_reagent("nutriment", 20)
+ reagents.add_reagent("vitamin", 5)
/obj/item/weapon/reagent_containers/food/snacks/plaincakeslice
name = "vanilla cake slice"
@@ -86,6 +90,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/store/orangecake/New()
..()
reagents.add_reagent("nutriment", 20)
+ reagents.add_reagent("vitamin", 5)
/obj/item/weapon/reagent_containers/food/snacks/orangecakeslice
name = "orange cake slice"
@@ -104,6 +109,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/store/limecake/New()
..()
reagents.add_reagent("nutriment", 20)
+ reagents.add_reagent("vitamin", 5)
/obj/item/weapon/reagent_containers/food/snacks/limecakeslice
name = "lime cake slice"
@@ -122,6 +128,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/store/lemoncake/New()
..()
reagents.add_reagent("nutriment", 20)
+ reagents.add_reagent("vitamin", 5)
/obj/item/weapon/reagent_containers/food/snacks/lemoncakeslice
name = "lemon cake slice"
@@ -140,6 +147,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/store/chocolatecake/New()
..()
reagents.add_reagent("nutriment", 20)
+ reagents.add_reagent("vitamin", 5)
/obj/item/weapon/reagent_containers/food/snacks/chocolatecakeslice
name = "chocolate cake slice"
@@ -159,6 +167,7 @@
..()
reagents.add_reagent("nutriment", 20)
reagents.add_reagent("sprinkles", 10)
+ reagents.add_reagent("vitamin", 5)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/birthdaycakeslice
@@ -177,7 +186,8 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/store/applecake/New()
..()
- reagents.add_reagent("nutriment", 15)
+ reagents.add_reagent("nutriment", 20)
+ reagents.add_reagent("vitamin", 5)
/obj/item/weapon/reagent_containers/food/snacks/applecakeslice
name = "apple cake slice"
diff --git a/code/modules/food&drinks/food/snacks_egg.dm b/code/modules/food&drinks/food/snacks_egg.dm
index fccf13f8e11..00a9825d034 100644
--- a/code/modules/food&drinks/food/snacks_egg.dm
+++ b/code/modules/food&drinks/food/snacks_egg.dm
@@ -21,6 +21,7 @@
/obj/item/weapon/reagent_containers/food/snacks/egg/New()
..()
reagents.add_reagent("nutriment", 1)
+ reagents.add_reagent("vitamin", 1)
/obj/item/weapon/reagent_containers/food/snacks/egg/throw_impact(atom/hit_atom)
..()
@@ -120,6 +121,8 @@
reagents.remove_reagent("nutriment", 1)
if(reagents.total_volume <= 0)
qdel(src)
+ return
+ ..()
/obj/item/weapon/reagent_containers/food/snacks/benedict
name = "eggs benedict"
@@ -129,4 +132,5 @@
/obj/item/weapon/reagent_containers/food/snacks/benedict/New()
..()
reagents.add_reagent("nutriment", 6)
+ reagents.add_reagent("vitamin", 4)
bitesize = 3
diff --git a/code/modules/food&drinks/food/snacks_meat.dm b/code/modules/food&drinks/food/snacks_meat.dm
index 2402a138050..fa03921b1e2 100644
--- a/code/modules/food&drinks/food/snacks_meat.dm
+++ b/code/modules/food&drinks/food/snacks_meat.dm
@@ -12,7 +12,6 @@
/obj/item/weapon/reagent_containers/food/snacks/cubancarp/New()
..()
reagents.add_reagent("nutriment", 6)
- reagents.add_reagent("carpotoxin", 3)
reagents.add_reagent("capsaicin", 3)
bitesize = 3
@@ -25,7 +24,8 @@
..()
eatverb = pick("bite","chew","choke down","gnaw","swallow","chomp")
reagents.add_reagent("nutriment", 3)
- reagents.add_reagent("carpotoxin", 3)
+ reagents.add_reagent("carpotoxin", 2)
+ reagents.add_reagent("vitamin", 2)
bitesize = 6
/obj/item/weapon/reagent_containers/food/snacks/carpmeat/imitation
@@ -40,7 +40,6 @@
/obj/item/weapon/reagent_containers/food/snacks/fishfingers/New()
..()
reagents.add_reagent("nutriment", 4)
- reagents.add_reagent("carpotoxin", 3)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/fishandchips
@@ -51,7 +50,6 @@
/obj/item/weapon/reagent_containers/food/snacks/fishandchips/New()
..()
reagents.add_reagent("nutriment", 6)
- reagents.add_reagent("carpotoxin", 3)
bitesize = 3
////////////////////////////////////////////MEATS AND ALIKE////////////////////////////////////////////
@@ -86,6 +84,7 @@
..()
reagents.add_reagent("nutriment", 12)
reagents.add_reagent("hyperzine", 5)
+ reagents.add_reagent("vitamin", 2)
src.bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/xenomeat
@@ -96,6 +95,7 @@
/obj/item/weapon/reagent_containers/food/snacks/xenomeat/New()
..()
reagents.add_reagent("nutriment", 3)
+ reagents.add_reagent("vitamin", 1)
src.bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/spidermeat
@@ -107,6 +107,7 @@
..()
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("toxin", 3)
+ reagents.add_reagent("vitamin", 1)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/spiderleg
@@ -139,6 +140,7 @@
/obj/item/weapon/reagent_containers/food/snacks/faggot/New()
..()
reagents.add_reagent("nutriment", 3)
+ reagents.add_reagent("vitamin", 1)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/sausage
@@ -150,6 +152,7 @@
..()
eatverb = pick("bite","chew","nibble","deep throat","gobble","chomp")
reagents.add_reagent("nutriment", 6)
+ reagents.add_reagent("vitamin", 1)
bitesize = 2
@@ -162,6 +165,7 @@
/obj/item/weapon/reagent_containers/food/snacks/wingfangchu/New()
..()
reagents.add_reagent("nutriment", 6)
+ reagents.add_reagent("vitamin", 2)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/human/kebab
@@ -205,9 +209,10 @@
/obj/item/weapon/reagent_containers/food/snacks/meatsteak/New()
..()
- reagents.add_reagent("nutriment", 4)
+ reagents.add_reagent("nutriment", 6)
reagents.add_reagent("sodiumchloride", 1)
reagents.add_reagent("blackpepper", 1)
+ reagents.add_reagent("vitamin", 1)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/monkeycube
diff --git a/code/modules/food&drinks/food/snacks_other.dm b/code/modules/food&drinks/food/snacks_other.dm
index 4a4380cfeea..d4b8682b0f9 100644
--- a/code/modules/food&drinks/food/snacks_other.dm
+++ b/code/modules/food&drinks/food/snacks_other.dm
@@ -24,6 +24,7 @@
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("sugar", 2)
reagents.add_reagent("coco", 2)
+ reagents.add_reagent("vitamin", 1)
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar/attack_self(mob/user)
if(wrapped)
@@ -51,6 +52,7 @@
/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice/New()
..()
reagents.add_reagent("nutriment", 3)
+ reagents.add_reagent("vitamin", 1)
src.bitesize = 3
@@ -120,7 +122,7 @@
/obj/item/weapon/reagent_containers/food/snacks/badrecipe
name = "burned mess"
- desc = "Someone should be demoted from chef for this."
+ desc = "Someone should be demoted from cook for this."
icon_state = "badrecipe"
/obj/item/weapon/reagent_containers/food/snacks/badrecipe/New()
@@ -165,6 +167,7 @@
..()
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("imidazoline", 3)
+ reagents.add_reagent("vitamin", 2)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/candiedapple
@@ -175,6 +178,7 @@
/obj/item/weapon/reagent_containers/food/snacks/candiedapple/New()
..()
reagents.add_reagent("nutriment", 3)
+ reagents.add_reagent("sugar", 3)
bitesize = 3
/*
diff --git a/code/modules/food&drinks/food/snacks_pastry.dm b/code/modules/food&drinks/food/snacks_pastry.dm
index 1c55584b00b..af97eab4323 100644
--- a/code/modules/food&drinks/food/snacks_pastry.dm
+++ b/code/modules/food&drinks/food/snacks_pastry.dm
@@ -14,6 +14,7 @@
..()
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("sprinkles", 1)
+ reagents.add_reagent("sugar", 2)
src.bitesize = 3
if(prob(30))
src.icon_state = "donut2"
@@ -28,6 +29,7 @@
..()
reagents.add_reagent("nutriment", 2)
reagents.add_reagent("sprinkles", 1)
+ reagents.add_reagent("sugar", 1)
bitesize = 10
switch(rand(1,10))
if(1)
@@ -67,6 +69,7 @@
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("sprinkles", 1)
reagents.add_reagent("berryjuice", 5)
+ reagents.add_reagent("vitamin", 1)
if(prob(30))
icon_state = "jdonut2"
name = "Frosted Jelly Donut"
@@ -83,6 +86,7 @@
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("sprinkles", 1)
reagents.add_reagent("slimejelly", 5)
+ reagents.add_reagent("vitamin", 1)
bitesize = 5
if(prob(30))
icon_state = "jdonut2"
@@ -100,6 +104,7 @@
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("sprinkles", 1)
reagents.add_reagent("cherryjelly", 5)
+ reagents.add_reagent("vitamin", 1)
if(prob(30))
icon_state = "jdonut2"
name = "Frosted Jelly Donut"
@@ -150,6 +155,7 @@
/obj/item/weapon/reagent_containers/food/snacks/waffles/New()
..()
reagents.add_reagent("nutriment", 8)
+ reagents.add_reagent("vitamin", 1)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/soylentgreen
@@ -161,6 +167,7 @@
/obj/item/weapon/reagent_containers/food/snacks/soylentgreen/New()
..()
reagents.add_reagent("nutriment", 10)
+ reagents.add_reagent("vitamin", 1)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/soylenviridians
@@ -172,6 +179,7 @@
/obj/item/weapon/reagent_containers/food/snacks/soylenviridians/New()
..()
reagents.add_reagent("nutriment", 10)
+ reagents.add_reagent("vitamin", 1)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/rofflewaffles
@@ -184,6 +192,7 @@
..()
reagents.add_reagent("nutriment", 8)
reagents.add_reagent("mushroomhallucinogen", 8)
+ reagents.add_reagent("vitamin", 2)
bitesize = 4
////////////////////////////////////////////OTHER////////////////////////////////////////////
@@ -202,20 +211,11 @@
name = "\improper Donk-pocket"
desc = "The food of choice for the seasoned traitor."
icon_state = "donkpocket"
- var/warm = 0
/obj/item/weapon/reagent_containers/food/snacks/donkpocket/New()
..()
reagents.add_reagent("nutriment", 4)
-/obj/item/weapon/reagent_containers/food/snacks/donkpocket/proc/cooltime() //Not working, derp?
- if(warm)
- spawn(4200) //ew
- warm = 0
- reagents.del_reagent("tricordrazine")
- name = initial(name)
- return
-
/obj/item/weapon/reagent_containers/food/snacks/fortunecookie
name = "fortune cookie"
desc = "A true prophecy in each cookie!"
@@ -248,12 +248,11 @@
if(prob(10))
name = "exceptional plump helmet biscuit"
desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump helmet biscuit!"
- reagents.add_reagent("nutriment", 8)
+ reagents.add_reagent("nutriment", 3)
reagents.add_reagent("tricordrazine", 5)
- bitesize = 2
- else
- reagents.add_reagent("nutriment", 5)
- bitesize = 2
+ reagents.add_reagent("nutriment", 5)
+ reagents.add_reagent("vitamin", 1)
+ bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/appletart
name = "golden apple streusel tart"
@@ -265,6 +264,7 @@
..()
reagents.add_reagent("nutriment", 8)
reagents.add_reagent("gold", 5)
+ reagents.add_reagent("vitamin", 4)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/cracker
@@ -285,6 +285,7 @@
..()
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("ketchup", 3)
+ reagents.add_reagent("vitamin", 3)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/meatbun
@@ -295,6 +296,7 @@
/obj/item/weapon/reagent_containers/food/snacks/meatbun/New()
..()
reagents.add_reagent("nutriment", 6)
+ reagents.add_reagent("vitamin", 2)
bitesize = 6
/obj/item/weapon/reagent_containers/food/snacks/sugarcookie
@@ -304,6 +306,6 @@
/obj/item/weapon/reagent_containers/food/snacks/sugarcookie/New()
..()
- reagents.add_reagent("nutriment", 2)
- reagents.add_reagent("sugar", 5)
+ reagents.add_reagent("nutriment", 3)
+ reagents.add_reagent("sugar", 3)
bitesize = 2
\ No newline at end of file
diff --git a/code/modules/food&drinks/food/snacks_pie.dm b/code/modules/food&drinks/food/snacks_pie.dm
index 7cb7c79d9a7..7894ea3c301 100644
--- a/code/modules/food&drinks/food/snacks_pie.dm
+++ b/code/modules/food&drinks/food/snacks_pie.dm
@@ -9,6 +9,7 @@
..()
reagents.add_reagent("nutriment", 4)
reagents.add_reagent("banana",5)
+ reagents.add_reagent("vitamin", 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/pie/throw_impact(atom/hit_atom)
@@ -27,6 +28,7 @@
..()
reagents.add_reagent("nutriment", 4)
reagents.add_reagent("berryjuice", 5)
+ reagents.add_reagent("vitamin", 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/meatpie
@@ -38,6 +40,7 @@
/obj/item/weapon/reagent_containers/food/snacks/meatpie/New()
..()
reagents.add_reagent("nutriment", 10)
+ reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/tofupie
@@ -49,6 +52,7 @@
/obj/item/weapon/reagent_containers/food/snacks/tofupie/New()
..()
reagents.add_reagent("nutriment", 10)
+ reagents.add_reagent("vitamin", 2)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/amanita_pie
@@ -61,7 +65,8 @@
reagents.add_reagent("nutriment", 5)
reagents.add_reagent("amatoxin", 3)
reagents.add_reagent("mushroomhallucinogen", 1)
- bitesize = 3
+ reagents.add_reagent("vitamin", 4)
+ bitesize = 4
/obj/item/weapon/reagent_containers/food/snacks/plump_pie
name = "plump pie"
@@ -73,12 +78,11 @@
if(prob(10))
name = "exceptional plump pie"
desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump pie!"
- reagents.add_reagent("nutriment", 8)
reagents.add_reagent("tricordrazine", 5)
- bitesize = 2
- else
- reagents.add_reagent("nutriment", 8)
- bitesize = 2
+
+ reagents.add_reagent("nutriment", 8)
+ reagents.add_reagent("vitamin", 4)
+ bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/xemeatpie
name = "xeno-pie"
@@ -89,6 +93,7 @@
/obj/item/weapon/reagent_containers/food/snacks/xemeatpie/New()
..()
reagents.add_reagent("nutriment", 10)
+ reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/applepie
@@ -99,6 +104,7 @@
/obj/item/weapon/reagent_containers/food/snacks/applepie/New()
..()
reagents.add_reagent("nutriment", 4)
+ reagents.add_reagent("vitamin", 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/cherrypie
@@ -109,6 +115,7 @@
/obj/item/weapon/reagent_containers/food/snacks/cherrypie/New()
..()
reagents.add_reagent("nutriment", 4)
+ reagents.add_reagent("vitamin", 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/sliceable/pumpkinpie
@@ -121,6 +128,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/pumpkinpie/New()
..()
reagents.add_reagent("nutriment", 15)
+ reagents.add_reagent("vitamin", 3)
/obj/item/weapon/reagent_containers/food/snacks/pumpkinpieslice
name = "pumpkin pie slice"
diff --git a/code/modules/food&drinks/food/snacks_pizza.dm b/code/modules/food&drinks/food/snacks_pizza.dm
index f8e003172dd..66a1ec7b98f 100644
--- a/code/modules/food&drinks/food/snacks_pizza.dm
+++ b/code/modules/food&drinks/food/snacks_pizza.dm
@@ -13,8 +13,9 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margherita/New()
..()
- reagents.add_reagent("nutriment", 40)
+ reagents.add_reagent("nutriment", 30)
reagents.add_reagent("tomatojuice", 6)
+ reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/margheritaslice
@@ -32,8 +33,9 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatpizza/New()
..()
- reagents.add_reagent("nutriment", 50)
+ reagents.add_reagent("nutriment", 40)
reagents.add_reagent("tomatojuice", 6)
+ reagents.add_reagent("vitamin", 8)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/meatpizzaslice
@@ -51,7 +53,8 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushroompizza/New()
..()
- reagents.add_reagent("nutriment", 35)
+ reagents.add_reagent("nutriment", 30)
+ reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice
@@ -69,9 +72,10 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza/New()
..()
- reagents.add_reagent("nutriment", 30)
+ reagents.add_reagent("nutriment", 25)
reagents.add_reagent("tomatojuice", 6)
reagents.add_reagent("imidazoline", 12)
+ reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/vegetablepizzaslice
@@ -235,3 +239,23 @@
update_icon()
return
..()
+
+/obj/item/pizzabox/margherita/New()
+ pizza = new /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margherita(src)
+ boxtag = "Margherita Deluxe"
+ update_icon()
+
+/obj/item/pizzabox/vegetable/New()
+ pizza = new /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza(src)
+ boxtag = "Gourmet Vegatable"
+ update_icon()
+
+/obj/item/pizzabox/mushroom/New()
+ pizza = new /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushroompizza(src)
+ boxtag = "Mushroom Special"
+ update_icon()
+
+/obj/item/pizzabox/meat/New()
+ pizza = new /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatpizza(src)
+ boxtag = "Meatlover's Supreme"
+ update_icon()
\ No newline at end of file
diff --git a/code/modules/food&drinks/food/snacks_salad.dm b/code/modules/food&drinks/food/snacks_salad.dm
index 8b8cb86b799..3b0ad13e3cb 100644
--- a/code/modules/food&drinks/food/snacks_salad.dm
+++ b/code/modules/food&drinks/food/snacks_salad.dm
@@ -12,6 +12,7 @@
eatverb = pick("crunch","devour","nibble","gnaw","gobble","chomp")
reagents.add_reagent("nutriment", 8)
reagents.add_reagent("tricordrazine", 8)
+ reagents.add_reagent("vitamin", 6)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/herbsalad
@@ -23,6 +24,7 @@
/obj/item/weapon/reagent_containers/food/snacks/herbsalad/New()
..()
reagents.add_reagent("nutriment", 8)
+ reagents.add_reagent("vitamin", 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/validsalad
@@ -35,4 +37,5 @@
..()
reagents.add_reagent("nutriment", 8)
reagents.add_reagent("doctorsdelight", 5)
+ reagents.add_reagent("vitamin", 2)
bitesize = 3
\ No newline at end of file
diff --git a/code/modules/food&drinks/food/snacks_sandwichtoast.dm b/code/modules/food&drinks/food/snacks_sandwichtoast.dm
index 7ca43af1f4a..3b086bf6194 100644
--- a/code/modules/food&drinks/food/snacks_sandwichtoast.dm
+++ b/code/modules/food&drinks/food/snacks_sandwichtoast.dm
@@ -8,6 +8,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sandwich/New()
..()
reagents.add_reagent("nutriment", 6)
+ reagents.add_reagent("vitamin", 1)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/toastedsandwich
@@ -31,6 +32,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grilledcheese/New()
..()
reagents.add_reagent("nutriment", 7)
+ reagents.add_reagent("vitamin", 1)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/jellysandwich
@@ -47,10 +49,12 @@
/obj/item/weapon/reagent_containers/food/snacks/jellysandwich/slime/New()
..()
reagents.add_reagent("slimejelly", 5)
+ reagents.add_reagent("vitamin", 2)
/obj/item/weapon/reagent_containers/food/snacks/jellysandwich/cherry/New()
..()
reagents.add_reagent("cherryjelly", 5)
+ reagents.add_reagent("vitamin", 2)
/obj/item/weapon/reagent_containers/food/snacks/icecreamsandwich
name = "icecream sandwich"
@@ -72,6 +76,7 @@
/obj/item/weapon/reagent_containers/food/snacks/notasandwich/New()
..()
reagents.add_reagent("nutriment", 6)
+ reagents.add_reagent("vitamin", 6)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast
@@ -88,10 +93,12 @@
/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/cherry/New()
..()
reagents.add_reagent("cherryjelly", 5)
+ reagents.add_reagent("vitamin", 2)
/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/slime/New()
..()
reagents.add_reagent("slimejelly", 5)
+ reagents.add_reagent("vitamin", 2)
/obj/item/weapon/reagent_containers/food/snacks/twobread
name = "two bread"
@@ -101,4 +108,5 @@
/obj/item/weapon/reagent_containers/food/snacks/twobread/New()
..()
reagents.add_reagent("nutriment", 2)
+ reagents.add_reagent("vitamin", 2)
bitesize = 3
diff --git a/code/modules/food&drinks/food/snacks_soup.dm b/code/modules/food&drinks/food/snacks_soup.dm
index 05bf0568838..f9aa75f6eb9 100644
--- a/code/modules/food&drinks/food/snacks_soup.dm
+++ b/code/modules/food&drinks/food/snacks_soup.dm
@@ -10,6 +10,7 @@
eatverb = pick("slurp","sip","suck","inhale","drink")
reagents.add_reagent("nutriment", 8)
reagents.add_reagent("water", 5)
+ reagents.add_reagent("vitamin", 4)
bitesize = 5
/obj/item/weapon/reagent_containers/food/snacks/slimesoup
@@ -22,6 +23,7 @@
eatverb = pick("slurp","sip","suck","inhale","drink")
reagents.add_reagent("slimejelly", 5)
reagents.add_reagent("water", 10)
+ reagents.add_reagent("vitamin", 5)
bitesize = 5
/obj/item/weapon/reagent_containers/food/snacks/bloodsoup
@@ -35,6 +37,7 @@
reagents.add_reagent("nutriment", 2)
reagents.add_reagent("blood", 10)
reagents.add_reagent("water", 5)
+ reagents.add_reagent("vitamin", 5)
bitesize = 5
/obj/item/weapon/reagent_containers/food/snacks/clownstears
@@ -48,6 +51,7 @@
reagents.add_reagent("nutriment", 4)
reagents.add_reagent("banana", 5)
reagents.add_reagent("water", 10)
+ reagents.add_reagent("vitamin", 8)
bitesize = 5
/obj/item/weapon/reagent_containers/food/snacks/vegetablesoup
@@ -61,6 +65,7 @@
eatverb = pick("slurp","sip","suck","inhale","drink")
reagents.add_reagent("nutriment", 8)
reagents.add_reagent("water", 5)
+ reagents.add_reagent("vitamin", 5)
bitesize = 5
/obj/item/weapon/reagent_containers/food/snacks/nettlesoup
@@ -75,6 +80,7 @@
reagents.add_reagent("nutriment", 8)
reagents.add_reagent("water", 5)
reagents.add_reagent("tricordrazine", 5)
+ reagents.add_reagent("vitamin", 5)
bitesize = 5
/obj/item/weapon/reagent_containers/food/snacks/mysterysoup
@@ -137,6 +143,7 @@
if(prob(25))
desc = "A wish come true!"
reagents.add_reagent("nutriment", 8)
+ reagents.add_reagent("vitamin", 1)
/obj/item/weapon/reagent_containers/food/snacks/hotchili
name = "hot chili"
@@ -147,9 +154,10 @@
/obj/item/weapon/reagent_containers/food/snacks/hotchili/New()
..()
eatverb = pick("slurp","sip","suck","inhale","drink")
- reagents.add_reagent("nutriment", 6)
- reagents.add_reagent("capsaicin", 3)
+ reagents.add_reagent("nutriment", 5)
+ reagents.add_reagent("capsaicin", 1)
reagents.add_reagent("tomatojuice", 2)
+ reagents.add_reagent("vitamin", 2)
bitesize = 5
@@ -162,9 +170,10 @@
/obj/item/weapon/reagent_containers/food/snacks/coldchili/New()
..()
eatverb = pick("slurp","sip","suck","inhale","drink")
- reagents.add_reagent("nutriment", 6)
- reagents.add_reagent("frostoil", 3)
+ reagents.add_reagent("nutriment", 5)
+ reagents.add_reagent("frostoil", 1)
reagents.add_reagent("tomatojuice", 2)
+ reagents.add_reagent("vitamin", 2)
bitesize = 5
/obj/item/weapon/reagent_containers/food/snacks/monkeysdelight
@@ -179,7 +188,8 @@
reagents.add_reagent("banana", 5)
reagents.add_reagent("blackpepper", 1)
reagents.add_reagent("sodiumchloride", 1)
- bitesize = 6
+ reagents.add_reagent("vitamin", 5)
+ bitesize = 4
/obj/item/weapon/reagent_containers/food/snacks/tomatosoup
name = "tomato soup"
@@ -192,6 +202,7 @@
eatverb = pick("slurp","sip","suck","inhale","drink")
reagents.add_reagent("nutriment", 5)
reagents.add_reagent("tomatojuice", 10)
+ reagents.add_reagent("vitamin", 3)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/milosoup
@@ -205,6 +216,7 @@
eatverb = pick("slurp","sip","suck","inhale","drink")
reagents.add_reagent("nutriment", 8)
reagents.add_reagent("water", 5)
+ reagents.add_reagent("vitamin", 3)
bitesize = 4
/obj/item/weapon/reagent_containers/food/snacks/mushroomsoup
@@ -217,6 +229,7 @@
..()
eatverb = pick("slurp","sip","suck","inhale","drink")
reagents.add_reagent("nutriment", 8)
+ reagents.add_reagent("vitamin", 4)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/beetsoup
@@ -230,4 +243,5 @@
eatverb = pick("slurp","sip","suck","inhale","drink")
name = pick("borsch","bortsch","borstch","borsh","borshch","borscht")
reagents.add_reagent("nutriment", 8)
+ reagents.add_reagent("vitamin", 4)
bitesize = 2
diff --git a/code/modules/food&drinks/food/snacks_spaghetti.dm b/code/modules/food&drinks/food/snacks_spaghetti.dm
index 5b73364e628..0d6224a080c 100644
--- a/code/modules/food&drinks/food/snacks_spaghetti.dm
+++ b/code/modules/food&drinks/food/snacks_spaghetti.dm
@@ -7,6 +7,7 @@
/obj/item/weapon/reagent_containers/food/snacks/spaghetti/New()
..()
reagents.add_reagent("nutriment", 1)
+ reagents.add_reagent("vitamin", 1)
bitesize = 1
/obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti
@@ -18,6 +19,7 @@
/obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti/New()
..()
reagents.add_reagent("nutriment", 2)
+ reagents.add_reagent("vitamin", 1)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/pastatomato
@@ -30,6 +32,7 @@
..()
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("tomatojuice", 10)
+ reagents.add_reagent("vitamin", 4)
bitesize = 4
/obj/item/weapon/reagent_containers/food/snacks/copypasta
@@ -42,7 +45,8 @@
..()
reagents.add_reagent("nutriment", 12)
reagents.add_reagent("tomatojuice", 20)
- bitesize = 1
+ reagents.add_reagent("vitamin", 8)
+ bitesize = 4
/obj/item/weapon/reagent_containers/food/snacks/meatballspaghetti
name = "spaghetti and meatballs"
@@ -53,7 +57,8 @@
/obj/item/weapon/reagent_containers/food/snacks/meatballspaghetti/New()
..()
reagents.add_reagent("nutriment", 8)
- bitesize = 2
+ reagents.add_reagent("vitamin", 4)
+ bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/spesslaw
name = "spesslaw"
@@ -63,7 +68,8 @@
/obj/item/weapon/reagent_containers/food/snacks/spesslaw/New()
..()
reagents.add_reagent("nutriment", 8)
- bitesize = 2
+ reagents.add_reagent("vitamin", 6)
+ bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/eggplantparm
name = "eggplant parmigiana"
@@ -74,4 +80,5 @@
/obj/item/weapon/reagent_containers/food/snacks/eggplantparm/New()
..()
reagents.add_reagent("nutriment", 6)
+ reagents.add_reagent("vitamin", 2)
bitesize = 2
diff --git a/code/modules/food&drinks/food/snacks_vend.dm b/code/modules/food&drinks/food/snacks_vend.dm
index 465c33d925e..404d9eeae3b 100644
--- a/code/modules/food&drinks/food/snacks_vend.dm
+++ b/code/modules/food&drinks/food/snacks_vend.dm
@@ -22,7 +22,8 @@
/obj/item/weapon/reagent_containers/food/snacks/sosjerky/New()
..()
- reagents.add_reagent("nutriment", 4)
+ reagents.add_reagent("nutriment", 1)
+ reagents.add_reagent("sugar", 3)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/chips
@@ -33,7 +34,8 @@
/obj/item/weapon/reagent_containers/food/snacks/chips/New()
..()
- reagents.add_reagent("nutriment", 3)
+ reagents.add_reagent("nutriment", 1)
+ reagents.add_reagent("sugar", 3)
bitesize = 1
/obj/item/weapon/reagent_containers/food/snacks/no_raisin
@@ -44,7 +46,8 @@
/obj/item/weapon/reagent_containers/food/snacks/no_raisin/New()
..()
- reagents.add_reagent("nutriment", 6)
+ reagents.add_reagent("nutriment", 2)
+ reagents.add_reagent("sugar", 4)
/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie
name = "space twinkie"
@@ -64,7 +67,8 @@
/obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers/New()
..()
- reagents.add_reagent("nutriment", 4)
+ reagents.add_reagent("nutriment", 1)
+ reagents.add_reagent("sugar", 3)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/syndicake
diff --git a/code/modules/food&drinks/recipes/microwave/recipes_pastry.dm b/code/modules/food&drinks/recipes/microwave/recipes_pastry.dm
index f4a37c243bb..b7621899467 100644
--- a/code/modules/food&drinks/recipes/microwave/recipes_pastry.dm
+++ b/code/modules/food&drinks/recipes/microwave/recipes_pastry.dm
@@ -71,31 +71,10 @@
/datum/recipe/donkpocket
reagents = list("flour" = 5)
items = list(
- /obj/item/weapon/reagent_containers/food/snacks/faggot,
+ /obj/item/weapon/reagent_containers/food/snacks/faggot
)
- result = /obj/item/weapon/reagent_containers/food/snacks/donkpocket //SPECIAL
- proc/warm_up(var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/being_cooked)
- being_cooked.warm = 1
- being_cooked.reagents.add_reagent("tricordrazine", 5)
- being_cooked.bitesize = 6
- being_cooked.name = "Warm " + being_cooked.name
- being_cooked.cooltime()
- make_food(var/obj/container as obj)
- var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/being_cooked = ..(container)
- warm_up(being_cooked)
- return being_cooked
+ result = /obj/item/weapon/reagent_containers/food/snacks/donkpocket
-/datum/recipe/donkpocket/warm
- reagents = list() //This is necessary since this is a child object of the above recipe and we don't want donk pockets to need flour
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/donkpocket
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/donkpocket //SPECIAL
- make_food(var/obj/container as obj)
- var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/being_cooked = locate() in container
- if(being_cooked && !being_cooked.warm)
- warm_up(being_cooked)
- return being_cooked
////////////////////////////////////////////////MUFFINS////////////////////////////////////////////////
diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm
index 0a38aabdf7a..8ed4ebc18e1 100644
--- a/code/modules/hydroponics/grown.dm
+++ b/code/modules/hydroponics/grown.dm
@@ -103,6 +103,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/corn/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 10), 1))
+ reagents.add_reagent("vitamin", 1 + round((potency / 10), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
@@ -116,7 +117,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/cherries/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 15), 1))
- reagents.add_reagent("sugar", 1 + round((potency / 15), 1))
+ reagents.add_reagent("sugar", 1 + round((potency / 50), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
@@ -156,6 +157,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/potato/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 10), 1))
+ reagents.add_reagent("vitamin", 1 + round((potency / 10), 1))
bitesize = reagents.total_volume
/obj/item/weapon/reagent_containers/food/snacks/grown/potato/attackby(obj/item/weapon/W as obj, mob/user as mob)
@@ -184,7 +186,8 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/grapes/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 10), 1))
- reagents.add_reagent("sugar", 1 + round((potency / 5), 1))
+ reagents.add_reagent("sugar", 1 + round((potency / 40), 1))
+ reagents.add_reagent("vitamin", 1 + round((potency / 10), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/grapes/green
@@ -208,6 +211,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/cabbage/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 10), 1))
+ reagents.add_reagent("vitamin", 1 + round((potency / 10), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
@@ -221,6 +225,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/berries/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 10), 1))
+ reagents.add_reagent("vitamin", 1 + round((potency / 10), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/berries/poison
@@ -318,6 +323,7 @@
reagents.add_reagent("kelotane", 1 + round(potency / 8, 1))
reagents.add_reagent("bicaridine", 1 + round(potency / 10, 1))
reagents.add_reagent("toxin", 1 + round(potency / 10, 1))
+ reagents.add_reagent("vitamin", 1 + round((potency / 20), 1))
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/deus
@@ -332,6 +338,7 @@
reagents.add_reagent("synaptizine", 1 + round(potency / 8, 1))
reagents.add_reagent("hyperzine", 1 + round(potency / 10, 1))
reagents.add_reagent("space_drugs", 1 + round(potency / 10, 1))
+ reagents.add_reagent("vitamin", 1 + round((potency / 10), 1))
/obj/item/weapon/reagent_containers/food/snacks/grown/apple
@@ -344,6 +351,7 @@
if(..())
reagents.maximum_volume = 20
reagents.add_reagent("nutriment", 1 + round((potency / 10), 1))
+ reagents.add_reagent("vitamin", 1 + round((potency / 20), 1))
bitesize = reagents.maximum_volume // Always eat the apple in one
@@ -386,6 +394,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 6), 1))
+ reagents.add_reagent("vitamin", 1 + round((potency / 10), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin
@@ -397,6 +406,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 6), 1))
+ reagents.add_reagent("vitamin", 1 + round((potency / 10), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin/attackby(obj/item/weapon/W as obj, mob/user as mob)
@@ -417,6 +427,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 20), 1))
+ reagents.add_reagent("vitamin", 1 + round((potency / 10), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lime
@@ -447,6 +458,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/whitebeet/add_juice()
if(..())
reagents.add_reagent("nutriment", round((potency / 20), 1))
+ reagents.add_reagent("vitamin", 1 + round((potency / 20), 1))
reagents.add_reagent("sugar", 1 + round((potency / 5), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
@@ -461,7 +473,9 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/banana/add_juice()
if(..())
+ reagents.add_reagent("nutriment", 1 + round((potency / 50), 1))
reagents.add_reagent("banana", 1 + round((potency / 10), 1))
+ reagents.add_reagent("vitamin", 1 + round((potency / 20), 1))
bitesize = 5
/obj/item/weapon/reagent_containers/food/snacks/grown/chili
@@ -474,6 +488,7 @@
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 25), 1))
reagents.add_reagent("capsaicin", 3+round(potency / 5, 1))
+ reagents.add_reagent("vitamin", 1 + round((potency / 25), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/chili/attackby(var/obj/item/O as obj, var/mob/user as mob)
@@ -491,6 +506,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/icepepper/add_juice()
..()
reagents.add_reagent("nutriment", 1 + round((potency / 50), 1))
+ reagents.add_reagent("vitamin", 1 + round((potency / 50), 1))
reagents.add_reagent("frostoil", 3+round(potency / 5, 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
@@ -546,6 +562,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/eggplant/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 10), 1))
+ reagents.add_reagent("vitamin", 1 + round((potency / 20), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
@@ -581,6 +598,7 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice()
/obj/item/weapon/reagent_containers/food/snacks/grown/soybeans/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 20), 1))
+ reagents.add_reagent("vitamin", 1 + round((potency / 10), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/koibeans
@@ -593,6 +611,7 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 30), 1))
reagents.add_reagent("carpotoxin", 1 + round((potency / 20), 1))
+ reagents.add_reagent("vitamin", 1 + round((potency / 10), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/moonflower
@@ -606,6 +625,7 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 50), 1))
reagents.add_reagent("moonshine", 1 + round((potency / 10), 1))
+ reagents.add_reagent("vitamin", 1 + round((potency / 50), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
//tomaters
@@ -619,6 +639,7 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice()
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 10), 1))
+ reagents.add_reagent("vitamin", 1 + round((potency / 10), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato/proc/squish(atom/target)
@@ -808,6 +829,7 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice()
/obj/item/weapon/reagent_containers/food/snacks/grown/carrot/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 20), 1))
+ reagents.add_reagent("vitamin", 1 + round((potency / 20), 1))
reagents.add_reagent("imidazoline", 3+round(potency / 5, 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
@@ -895,6 +917,7 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice()
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/plumphelmet/add_juice()
..()
reagents.add_reagent("nutriment", 2+round((potency / 10), 1))
+ reagents.add_reagent("vitamin", 1 + round((potency / 20), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
@@ -1040,6 +1063,7 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice()
/obj/item/weapon/reagent_containers/food/snacks/grown/coffee/add_juice()
if(..())
reagents.add_reagent("coffeepowder", 1 + round((potency / 10), 2))
+ reagents.add_reagent("vitamin", 1 + round((potency / 10), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/coffee/arabica
@@ -1067,6 +1091,7 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice()
/obj/item/weapon/reagent_containers/food/snacks/grown/tobacco/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 40), 1))
+ reagents.add_reagent("vitamin", 1 + round((potency / 40), 1))
/obj/item/weapon/reagent_containers/food/snacks/grown/tobacco_space
@@ -1089,6 +1114,7 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice()
/obj/item/weapon/reagent_containers/food/snacks/grown/tea/add_juice()
if(..())
reagents.add_reagent("teapowder", 1 + round((potency / 10), 2))
+ reagents.add_reagent("vitamin", 1 + round((potency / 20), 1))
/obj/item/weapon/reagent_containers/food/snacks/grown/tea/aspera
diff --git a/code/modules/hydroponics/growninedible.dm b/code/modules/hydroponics/growninedible.dm
index 168c7c15f76..02e1160db2c 100644
--- a/code/modules/hydroponics/growninedible.dm
+++ b/code/modules/hydroponics/growninedible.dm
@@ -67,7 +67,7 @@
/obj/item/weapon/grown/log/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
if(istype(W, /obj/item/weapon/circular_saw) || istype(W, /obj/item/weapon/hatchet) || (istype(W, /obj/item/weapon/twohanded/fireaxe) && W:wielded) || istype(W, /obj/item/weapon/melee/energy))
- user.show_message("You make planks out of the [src]!", 1)
+ user.show_message("You make planks out of \the [src]!", 1)
for(var/i = 0,i < 2,i++)
var/obj/item/stack/sheet/mineral/wood/NG = new (user.loc)
for (var/obj/item/stack/sheet/mineral/wood/G in user.loc)
@@ -83,7 +83,7 @@
if(is_type_in_list(W,accepted))
var/obj/item/weapon/reagent_containers/food/snacks/grown/leaf = W
if(leaf.dry)
- user.show_message("You wrap the [W] around the log, turning it into a torch!")
+ user.show_message("You wrap \the [W] around the log, turning it into a torch!")
var/obj/item/device/flashlight/flare/torch/T = new /obj/item/device/flashlight/flare/torch(user.loc)
usr.unEquip(W)
usr.put_in_active_hand(T)
diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm
index 3ab6a0b24eb..fb5b32efcc9 100644
--- a/code/modules/hydroponics/hydroponics.dm
+++ b/code/modules/hydroponics/hydroponics.dm
@@ -721,12 +721,12 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
if(anchored == 2)
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
anchored = 1
- user << "You unscrew the [src]'s hoses."
+ user << "You unscrew \the [src]'s hoses."
else if(anchored == 1)
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
anchored = 2
- user << "You screw in the [src]'s hoses."
+ user << "You screw in \the [src]'s hoses."
for(var/obj/machinery/hydroponics/h in range(1,src))
spawn()
diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm
index 4fff75a6bac..084a4fa4c03 100644
--- a/code/modules/library/lib_items.dm
+++ b/code/modules/library/lib_items.dm
@@ -174,7 +174,9 @@
/obj/item/weapon/book/attack_self(mob/user)
if(is_blind(user))
return
-
+ if(ismonkey(user))
+ user << "You skim through the book but can't comprehend any of it."
+ return
if(dat)
user << browse("Penned by [author].
" + "[dat]", "window=book[window_size != null ? ";size=[window_size]" : ""]")
user.visible_message("[user] opens a book titled \"[title]\" and begins reading intently.")
diff --git a/code/modules/mining/equipment_locker.dm b/code/modules/mining/equipment_locker.dm
index 3748818c031..4874f04a838 100644
--- a/code/modules/mining/equipment_locker.dm
+++ b/code/modules/mining/equipment_locker.dm
@@ -474,7 +474,7 @@
/obj/item/weapon/resonator/proc/CreateResonance(var/target, var/creator)
if(cooldown <= 0)
- playsound(src,'sound/effects/stealthoff.ogg',50,1)
+ playsound(src,'sound/weapons/resonator_fire.ogg',50,1)
var/obj/effect/resonance/R = new /obj/effect/resonance(get_turf(target))
R.creator = creator
cooldown = 1
@@ -507,7 +507,7 @@
return
if(istype(proj_turf, /turf/simulated/mineral))
var/turf/simulated/mineral/M = proj_turf
- playsound(src,'sound/effects/sparks4.ogg',50,1)
+ playsound(src,'sound/weapons/resonator_blast.ogg',50,1)
M.gets_drilled()
spawn(5)
qdel(src)
@@ -518,7 +518,7 @@
name = "strong resonance field"
resonance_damage = 45
spawn(50)
- playsound(src,'sound/effects/sparks4.ogg',50,1)
+ playsound(src,'sound/weapons/resonator_blast.ogg',50,1)
if(creator)
for(var/mob/living/L in src.loc)
add_logs(creator, L, "used a resonator field on", object="resonator")
diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm
index 847e3397eeb..06f2257e50a 100644
--- a/code/modules/mining/mine_items.dm
+++ b/code/modules/mining/mine_items.dm
@@ -69,9 +69,13 @@
w_class = 4.0
m_amt = 3750 //one sheet, but where can you make them?
var/digspeed = 40 //moving the delay to an item var so R&D can make improved picks. --NEO
+ var/list/digsound = list('sound/effects/picaxe1.ogg','sound/effects/picaxe2.ogg','sound/effects/picaxe3.ogg')
origin_tech = "materials=1;engineering=1"
attack_verb = list("hit", "pierced", "sliced", "attacked")
+/obj/item/weapon/pickaxe/proc/playDigSound()
+ playsound(src, pick(digsound),20,1)
+
/obj/item/weapon/pickaxe/silver
name = "silver pickaxe"
icon_state = "spickaxe"
@@ -85,17 +89,32 @@
icon_state = "handdrill"
item_state = "jackhammer"
digspeed = 30
+ digsound = list('sound/weapons/drill.ogg')
+ hitsound = 'sound/weapons/drill.ogg'
origin_tech = "materials=2;powerstorage=3;engineering=2"
desc = "Yours is the drill that will pierce through the rock walls."
+/obj/item/weapon/pickaxe/drill/diamonddrill //When people ask about the badass leader of the mining tools, they are talking about ME! making it a child of drill to stop copypasta
+ name = "diamond mining drill"
+ icon_state = "diamonddrill"
+ digspeed = 5 //Digs through walls, girders, and can dig up sand
+ origin_tech = "materials=6;powerstorage=4;engineering=5"
+ desc = "Yours is the drill that will pierce the heavens!"
+
/obj/item/weapon/pickaxe/jackhammer
name = "sonic jackhammer"
icon_state = "jackhammer"
item_state = "jackhammer"
digspeed = 15 //faster than drill, but cannot dig
origin_tech = "materials=3;powerstorage=2;engineering=2"
+ digsound = list('sound/weapons/sonic_jackhammer.ogg')
+ hitsound = 'sound/weapons/sonic_jackhammer.ogg'
desc = "Cracks rocks with sonic blasts, perfect for clearing large areas of rock."
+/obj/item/weapon/pickaxe/jackhammer/borgdrill // making it a parrent of jackhammer to prevent copypasta
+ name = "cyborg mining drill"
+ desc = ""
+
/obj/item/weapon/pickaxe/gold
name = "golden pickaxe"
icon_state = "gpickaxe"
@@ -111,6 +130,8 @@
w_class = 3.0 //it is smaller than the pickaxe
damtype = "fire"
digspeed = 20 //Can slice though normal walls, all girders, or be used in reinforced wall deconstruction/ light thermite on fire
+ digsound = list('sound/weapons/plasma_cutter.ogg')
+ hitsound = 'sound/weapons/plasma_cutter.ogg'
origin_tech = "materials=4;plasmatech=3;engineering=3"
desc = "A rock cutter that uses bursts of hot plasma. You could use it to cut limbs off of xenos! Or, you know, mine stuff."
@@ -122,20 +143,9 @@
origin_tech = "materials=6;engineering=4"
desc = "A pickaxe with a diamond pick head, this is just like minecraft."
-/obj/item/weapon/pickaxe/diamonddrill //When people ask about the badass leader of the mining tools, they are talking about ME!
- name = "diamond mining drill"
- icon_state = "diamonddrill"
- item_state = "jackhammer"
- digspeed = 5 //Digs through walls, girders, and can dig up sand
- origin_tech = "materials=6;powerstorage=4;engineering=5"
- desc = "Yours is the drill that will pierce the heavens!"
-/obj/item/weapon/pickaxe/borgdrill
- name = "cyborg mining drill"
- icon_state = "jackhammer"
- item_state = "jackhammer"
- digspeed = 15
- desc = ""
+
+
/*****************************Shovel********************************/
diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm
index 92e6a091471..018f6e491ed 100644
--- a/code/modules/mining/mine_turfs.dm
+++ b/code/modules/mining/mine_turfs.dm
@@ -371,13 +371,13 @@
new /mob/living/simple_animal/hostile/asteroid/hivelord(T)
return
-/turf/simulated/mineral/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/turf/simulated/mineral/attackby(var/obj/item/weapon/pickaxe/P as obj, mob/user as mob)
if (!user.IsAdvancedToolUser())
usr << "You don't have the dexterity to do this!"
return
- if (istype(W, /obj/item/weapon/pickaxe))
+ if (istype(P, /obj/item/weapon/pickaxe))
var/turf/T = user.loc
if (!( istype(T, /turf) ))
return
@@ -388,13 +388,14 @@
return
*/
//Watch your tabbing, microwave. --NEO
- if(last_act+W:digspeed > world.time)//prevents message spam
+ if(last_act+P.digspeed > world.time)//prevents message spam
return
last_act = world.time
user << "You start picking."
- playsound(user, 'sound/weapons/Genhit.ogg', 20, 1)
+ //playsound(user, 'sound/weapons/Genhit.ogg', 20, 1)
+ P.playDigSound()
- if(do_after(user,W:digspeed))
+ if(do_after(user,P.digspeed))
user << "You finish cutting into the rock."
gets_drilled()
else
@@ -420,6 +421,7 @@
if (src.mineralName == "Bananium")
new /obj/item/weapon/ore/bananium(src)
var/turf/simulated/floor/plating/asteroid/airless/N = ChangeTurf(/turf/simulated/floor/plating/asteroid/airless)
+ playsound(src, 'sound/effects/break_stone.ogg', 50, 1) //beautiful destruction
N.fullUpdateMineralOverlays()
return
@@ -507,7 +509,7 @@
return
/turf/simulated/floor/plating/asteroid/attackby(obj/item/weapon/W as obj, mob/user as mob)
-
+ //note that this proc does not call ..()
if(!W || !user)
return 0
@@ -521,7 +523,7 @@
return
user << "You start digging."
- playsound(src, 'sound/effects/rustle1.ogg', 50, 1) //russle sounds sounded better
+ playsound(src, 'sound/effects/shovel_dig.ogg', 50, 1) //FUCK YO RUSTLE I GOT'S THE DIGS SOUND HERE
sleep(40)
if ((user.loc == T && user.get_active_hand() == W))
@@ -539,14 +541,14 @@
return
user << "You start digging."
- playsound(src, 'sound/effects/rustle1.ogg', 50, 1) //russle sounds sounded better
+ playsound(src, 'sound/effects/shovel_dig.ogg', 50, 1) //FUCK YO RUSTLE I GOT'S THE DIGS SOUND HERE
sleep(30)
if ((user.loc == T && user.get_active_hand() == W))
user << "You dug a hole."
gets_dug()
- if ((istype(W,/obj/item/weapon/pickaxe/diamonddrill)) || (istype(W,/obj/item/weapon/pickaxe/borgdrill)))
+ if ((istype(W,/obj/item/weapon/pickaxe/drill/diamonddrill)) || (istype(W,/obj/item/weapon/pickaxe/jackhammer/borgdrill)))
var/turf/T = user.loc
if (!( istype(T, /turf) ))
return
@@ -556,7 +558,7 @@
return
user << "You start digging."
- playsound(src, 'sound/effects/rustle1.ogg', 50, 1) //russle sounds sounded better
+ playsound(src, 'sound/effects/shovel_dig.ogg', 50, 1) //FUCK YO RUSTLE I GOT'S THE DIGS SOUND HERE
sleep(0)
if ((user.loc == T && user.get_active_hand() == W))
@@ -570,10 +572,6 @@
O.attackby(W,user)
return
- else
- ..(W,user)
- return
-
/turf/simulated/floor/plating/asteroid/proc/gets_dug()
if(dug)
return
diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm
index d168bb0444e..fa1b079478e 100644
--- a/code/modules/mining/ores_coins.dm
+++ b/code/modules/mining/ores_coins.dm
@@ -152,7 +152,7 @@
if(triggered_by_explosive)
log_game("An explosion has primed a [name] for detonation at [A.name]([bombturf.x],[bombturf.y],[bombturf.z])")
else
- user.visible_message("[user] strikes the [src], causing a chain reaction!")
+ user.visible_message("[user] strikes \the [src], causing a chain reaction!")
log_game("[key_name(usr)] has primed a [name] for detonation at [A.name]([bombturf.x],[bombturf.y],[bombturf.z])")
spawn(det_time)
if(primed)
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index f7da665c052..703d4b577e0 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -301,3 +301,13 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
return 0
usr.visible_message("[src] points to [A]")
return 1
+
+/mob/dead/observer/verb/view_manfiest()
+ set name = "View Crew Manifest"
+ set category = "Ghost"
+
+ var/dat
+ dat += "Crew Manifest
"
+ dat += data_core.get_manifest()
+
+ src << browse(dat, "window=manifest;size=370x420;can_close=1")
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm
index ca793492cc4..49e25cf646d 100644
--- a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm
+++ b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm
@@ -53,6 +53,8 @@ var/const/ALIEN_AFK_BRACKET = 450 // 45 seconds
switch(stage)
if(2, 3)
+ if(affected_mob == DEAD)
+ return
if(prob(1))
affected_mob.emote("sneeze")
if(prob(1))
@@ -62,6 +64,8 @@ var/const/ALIEN_AFK_BRACKET = 450 // 45 seconds
if(prob(1))
affected_mob << "Mucous runs down the back of your throat."
if(4)
+ if(affected_mob == DEAD)
+ return
if(prob(1))
affected_mob.emote("sneeze")
if(prob(1))
@@ -76,9 +80,10 @@ var/const/ALIEN_AFK_BRACKET = 450 // 45 seconds
affected_mob.adjustToxLoss(1)
affected_mob.updatehealth()
if(5)
- affected_mob << "You feel something tearing its way out of your stomach..."
- affected_mob.adjustToxLoss(10)
- affected_mob.updatehealth()
+ if(affected_mob != DEAD)
+ affected_mob << "You feel something tearing its way out of your stomach..."
+ affected_mob.adjustToxLoss(10)
+ affected_mob.updatehealth()
if(prob(50))
AttemptGrow()
diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm
index f854529c8e1..4860105322b 100644
--- a/code/modules/mob/living/carbon/alien/special/facehugger.dm
+++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm
@@ -228,7 +228,7 @@ var/const/MAX_ACTIVE_TIME = 400
return
/proc/CanHug(var/mob/M)
- if(!M)
+ if(!istype(M))
return 0
if(M.stat == DEAD)
return 0
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index 3115d55e8c7..7afecfeac37 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -222,10 +222,10 @@
msg += "[t_He] looks a little soaked.\n"
- if(nutrition < 100)
+ if(nutrition < NUTRITION_LEVEL_STARVING - 50)
msg += "[t_He] [t_is] severely malnourished.\n"
- else if(nutrition >= 500)
- if(user.nutrition < 100)
+ else if(nutrition >= NUTRITION_LEVEL_FAT)
+ if(user.nutrition < NUTRITION_LEVEL_STARVING - 50)
msg += "[t_He] [t_is] plump and delicious looking - Like a fat little piggy. A tasty piggy.\n"
else
msg += "[t_He] [t_is] quite chubby.\n"
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 6985cf97e93..47a9f6ff3c4 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -242,10 +242,10 @@
if(nutrition >= 2) //If we are very, very cold we'll use up quite a bit of nutriment to heat us up.
nutrition -= 2
var/body_temperature_difference = 310.15 - bodytemperature
- bodytemperature += max((body_temperature_difference / BODYTEMP_AUTORECOVERY_DIVISOR), BODYTEMP_AUTORECOVERY_MINIMUM)
+ bodytemperature += max((body_temperature_difference * metabolism_efficiency / BODYTEMP_AUTORECOVERY_DIVISOR), BODYTEMP_AUTORECOVERY_MINIMUM)
if(260.15 to 360.15)
var/body_temperature_difference = 310.15 - bodytemperature
- bodytemperature += body_temperature_difference / BODYTEMP_AUTORECOVERY_DIVISOR
+ bodytemperature += body_temperature_difference * metabolism_efficiency / BODYTEMP_AUTORECOVERY_DIVISOR
if(360.15 to INFINITY) //360.15 is 310.15 + 50, the temperature where you start to feel effects.
//We totally need a sweat system cause it totally makes sense...~
var/body_temperature_difference = 310.15 - bodytemperature
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index a0cb006913b..bf71ff8d60f 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -400,17 +400,42 @@
H.update_inv_w_uniform(0)
H.update_inv_wear_suit()
- // nutrition decrease
+ // nutrition decrease and satiety
if (H.nutrition > 0 && H.stat != 2)
- H.nutrition = max (0, H.nutrition - HUNGER_FACTOR)
+ var/hunger_rate = HUNGER_FACTOR
+ if(H.satiety > 0)
+ H.satiety--
+ if(H.satiety < 0)
+ H.satiety++
+ if(prob(round(-H.satiety/40)))
+ H.Jitter(5)
+ hunger_rate = 5 * HUNGER_FACTOR
+ H.nutrition = max (0, H.nutrition - hunger_rate)
- if (H.nutrition > 450)
+
+ if (H.nutrition > NUTRITION_LEVEL_FULL)
if(H.overeatduration < 600) //capped so people don't take forever to unfat
H.overeatduration++
else
if(H.overeatduration > 1)
H.overeatduration -= 2 //doubled the unfat rate
+ //metabolism change
+ if(H.nutrition > NUTRITION_LEVEL_FAT)
+ H.metabolism_efficiency = 1
+ else if(H.nutrition > NUTRITION_LEVEL_FED && H.satiety > 80)
+ if(H.metabolism_efficiency != 1.25)
+ H << "You feel vigorous."
+ H.metabolism_efficiency = 1.25
+ else if(H.nutrition < NUTRITION_LEVEL_STARVING + 50)
+ if(H.metabolism_efficiency != 0.8)
+ H << "You feel sluggish."
+ H.metabolism_efficiency = 0.8
+ else
+ if(H.metabolism_efficiency == 1.25)
+ H << "You no longer feel vigorous."
+ H.metabolism_efficiency = 1
+
if (H.drowsyness)
H.drowsyness--
H.eye_blurry = max(2, H.eye_blurry)
@@ -536,11 +561,18 @@
if(H.nutrition_icon)
switch(H.nutrition)
- if(450 to INFINITY) H.nutrition_icon.icon_state = "nutrition0"
- if(350 to 450) H.nutrition_icon.icon_state = "nutrition1"
- if(250 to 350) H.nutrition_icon.icon_state = "nutrition2"
- if(150 to 250) H.nutrition_icon.icon_state = "nutrition3"
- else H.nutrition_icon.icon_state = "nutrition4"
+ if(NUTRITION_LEVEL_FULL to INFINITY)
+ H.nutrition_icon.icon_state = "nutritionFAT"
+ if(NUTRITION_LEVEL_WELL_FED to NUTRITION_LEVEL_FULL)
+ H.nutrition_icon.icon_state = "nutrition0"
+ if(NUTRITION_LEVEL_FED to NUTRITION_LEVEL_WELL_FED)
+ H.nutrition_icon.icon_state = "nutrition1"
+ if(NUTRITION_LEVEL_HUNGRY to NUTRITION_LEVEL_FED)
+ H.nutrition_icon.icon_state = "nutrition2"
+ if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY)
+ H.nutrition_icon.icon_state = "nutrition3"
+ else
+ H.nutrition_icon.icon_state = "nutrition4"
if(H.pressure)
H.pressure.icon_state = "pressure[H.pressure_alert]"
@@ -651,7 +683,7 @@
if(J.allow_thrust(0.01, H))
hasjetpack = 1
var/grav = has_gravity(H)
-
+
if(!grav && !hasjetpack)
mspeed += 1 //Slower space without jetpack
diff --git a/code/modules/mob/living/carbon/human/species_types.dm b/code/modules/mob/living/carbon/human/species_types.dm
index 99cb7f8eece..b11cc7d147c 100644
--- a/code/modules/mob/living/carbon/human/species_types.dm
+++ b/code/modules/mob/living/carbon/human/species_types.dm
@@ -82,7 +82,7 @@
H.adjustFireLoss(rand(5,15))
H.show_message("The radiation beam singes you!")
if(/obj/item/projectile/energy/florayield)
- H.nutrition = min(H.nutrition+30, 500)
+ H.nutrition = min(H.nutrition+30, NUTRITION_LEVEL_FULL)
return
/*
@@ -103,14 +103,14 @@
if(A.lighting_use_dynamic) light_amount = min(10,T.lighting_lumcount) - 5
else light_amount = 5
H.nutrition += light_amount
- if(H.nutrition > 500)
- H.nutrition = 500
+ if(H.nutrition > NUTRITION_LEVEL_FULL)
+ H.nutrition = NUTRITION_LEVEL_FULL
if(light_amount > 2) //if there's enough light, heal
H.heal_overall_damage(1,1)
H.adjustToxLoss(-1)
H.adjustOxyLoss(-1)
- if(H.nutrition < 200)
+ if(H.nutrition < NUTRITION_LEVEL_STARVING + 50)
H.take_overall_damage(2,0)
/*
diff --git a/code/modules/mob/living/carbon/slime/life.dm b/code/modules/mob/living/carbon/slime/life.dm
index 46136f4ecf9..7520989692c 100644
--- a/code/modules/mob/living/carbon/slime/life.dm
+++ b/code/modules/mob/living/carbon/slime/life.dm
@@ -347,10 +347,10 @@
if(issilicon(L) && (rabid || attacked)) // They can't eat silicons, but they can glomp them in defence
targets += L // Possible target found!
- if(istype(L, /mob/living/carbon/human) && dna) //Ignore slime(wo)men
+ if(istype(L, /mob/living/carbon/human)) //Ignore slime(wo)men
var/mob/living/carbon/human/H = L
if(H.dna)
- if(/mob/living/carbon/slime in H.dna.species.ignored_by)
+ if(src.type in H.dna.species.ignored_by)
continue
if(!L.canmove) // Only one slime can latch on at a time.
diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm
index 10cb6ac53d6..1292a0cf675 100644
--- a/code/modules/mob/living/damage_procs.dm
+++ b/code/modules/mob/living/damage_procs.dm
@@ -64,7 +64,7 @@
return 1
-/mob/living/proc/apply_effects(var/stun = 0, var/weaken = 0, var/paralyze = 0, var/irradiate = 0, var/stutter = 0, var/eyeblur = 0, var/drowsy = 0, var/blocked = 0)
+/mob/living/proc/apply_effects(var/stun = 0, var/weaken = 0, var/paralyze = 0, var/irradiate = 0, var/stutter = 0, var/eyeblur = 0, var/drowsy = 0, var/stamina = 0, var/blocked = 0)
if(blocked >= 100) return 0
if(stun) apply_effect(stun, STUN, blocked)
if(weaken) apply_effect(weaken, WEAKEN, blocked)
@@ -73,4 +73,5 @@
if(stutter) apply_effect(stutter, STUTTER, blocked)
if(eyeblur) apply_effect(eyeblur, EYE_BLUR, blocked)
if(drowsy) apply_effect(drowsy, DROWSY, blocked)
+ if(stamina) apply_effect(stamina, STAMINA, blocked)
return 1
\ No newline at end of file
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index f9d4fe588e5..b4d6f44b902 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -378,7 +378,7 @@
SetStunned(0)
SetWeakened(0)
radiation = 0
- nutrition = 400
+ nutrition = NUTRITION_LEVEL_FED + 50
bodytemperature = 310
sdisabilities = 0
disabilities = 0
@@ -540,6 +540,7 @@
if(C.handcuffed)
C.handcuffed = null
C.update_inv_handcuffed(0)
+ return
else
C.legcuffed = null
C.update_inv_legcuffed(0)
@@ -571,18 +572,19 @@
C.visible_message("[C] attempts to remove [I]!")
C << "You attempt to remove [I]. (This will take around [displaytime] minutes and you need to stand still.)"
spawn(0)
- if(do_after(C, breakouttime))
+ if(do_after(C, breakouttime, 10))
if(!I || C.buckled)
return
C.visible_message("[C] manages to remove [I]!")
C << "You successfully remove [I]."
if(C.handcuffed)
- C.handcuffed.loc = usr.loc
+ C.handcuffed.loc = C.loc
C.handcuffed = null
C.update_inv_handcuffed(0)
+ return
if(C.legcuffed)
- C.legcuffed.loc = usr.loc
+ C.legcuffed.loc = C.loc
C.legcuffed = null
C.update_inv_legcuffed(0)
else
@@ -760,6 +762,13 @@
/mob/living/singularity_pull(S)
step_towards(src,S)
+/mob/living/narsie_act()
+ if(client)
+ makeNewConstruct(/mob/living/simple_animal/construct/harvester, src, null, 1)
+ spawn_dust()
+ gib()
+ return
+
/mob/living/proc/do_attack_animation(atom/A)
var/pixel_x_diff = 0
var/pixel_y_diff = 0
diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm
index dc7b9cd2f44..c0db992236d 100644
--- a/code/modules/mob/living/living_defines.dm
+++ b/code/modules/mob/living/living_defines.dm
@@ -41,3 +41,4 @@
var/floating = 0
var/nightvision = 0
var/mob_size = 1 //size of the mob. 0 is small, 1 is human sized, and 2 is large.
+ var/metabolism_efficiency = 1 //more or less efficiency to metabolize helpful/harmful reagents and regulate body temperature..
\ No newline at end of file
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index fda757d8aed..31b691a9071 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -261,6 +261,8 @@ var/list/department_radio_keys = list(
if(stuttering)
message = stutter(message)
+ message = capitalize(message)
+
return message
/mob/living/proc/radio(message, message_mode, steps)
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index 30c30cc6e0d..4b12eb1cf13 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -548,7 +548,7 @@ var/list/ai_list = list()
cleared = 1
L -= I
if (cleared)
- queueAlarm(text("--- [] alarm in [] has been cleared.", class, A.name), class, 0)
+ queueAlarm("--- [class] alarm in [A.name] has been cleared.", class, 0)
if (viewalerts) ai_alerts()
return !cleared
diff --git a/code/modules/mob/living/silicon/ai/say.dm b/code/modules/mob/living/silicon/ai/say.dm
index 4d7ffb41382..6bb20acc14f 100644
--- a/code/modules/mob/living/silicon/ai/say.dm
+++ b/code/modules/mob/living/silicon/ai/say.dm
@@ -33,7 +33,7 @@
return !config.silent_ai
/mob/living/silicon/ai/radio(message, message_mode)
- if(!radio_enabled || aiRestorePowerRoutine || stat) //AI cannot speak if radio is disabled (via intelicard) or depowered.
+ if(!radio_enabled || aiRestorePowerRoutine || stat) //AI cannot speak if radio is disabled (via intellicard) or depowered.
src << "Your radio transmitter is offline!"
return 0
..(message,message_mode)
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 7a7b4ddc838..b3707f263cb 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -385,7 +385,7 @@
cleared = 1
L -= I
if (cleared)
- queueAlarm(text("--- [class] alarm in [A.name] has been cleared."), class, 0)
+ queueAlarm("--- [class] alarm in [A.name] has been cleared.", class, 0)
// if (viewalerts) robot_alerts()
return !cleared
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index f698a6ae801..6e488bc3ec9 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -161,7 +161,7 @@
modules += new /obj/item/device/flashlight/seclite(src)
modules += new /obj/item/weapon/restraints/handcuffs/cable/zipties/cyborg(src)
modules += new /obj/item/weapon/melee/baton/loaded(src)
- modules += new /obj/item/weapon/gun/energy/taser/cyborg(src)
+ modules += new /obj/item/weapon/gun/energy/gun/advtaser/cyborg(src)
modules += new /obj/item/clothing/mask/gas/sechailer/cyborg(src)
emag = new /obj/item/weapon/gun/energy/laser/cyborg(src)
fix_modules()
@@ -223,9 +223,9 @@
emag = new /obj/item/borg/stun(src)
modules += new /obj/item/weapon/storage/bag/ore(src)
if(R.emagged)
- modules += new /obj/item/weapon/pickaxe/diamonddrill(src)
+ modules += new /obj/item/weapon/pickaxe/drill/diamonddrill(src)
else
- modules += new /obj/item/weapon/pickaxe/borgdrill(src)
+ modules += new /obj/item/weapon/pickaxe/jackhammer/borgdrill(src)
modules += new /obj/item/device/flashlight/lantern(src)
modules += new /obj/item/weapon/storage/bag/sheetsnatcher/borg(src)
modules += new /obj/item/device/t_scanner/adv_mining_scanner(src)
@@ -234,9 +234,9 @@
/obj/item/weapon/robot_module/miner/on_emag()
..()
- for(var/obj/item/weapon/pickaxe/borgdrill/D in modules)
+ for(var/obj/item/weapon/pickaxe/jackhammer/borgdrill/D in modules)
qdel(D)
- modules += new /obj/item/weapon/pickaxe/diamonddrill(src)
+ modules += new /obj/item/weapon/pickaxe/drill/diamonddrill(src)
rebuild()
diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm
index f52831f11af..2f515596d37 100644
--- a/code/modules/mob/living/simple_animal/constructs.dm
+++ b/code/modules/mob/living/simple_animal/constructs.dm
@@ -70,7 +70,8 @@
Proj.on_hit(src, 0)
return 0
-
+/mob/living/simple_animal/construct/narsie_act()
+ return
/////////////////Juggernaut///////////////
diff --git a/code/modules/mob/living/simple_animal/friendly/corgi.dm b/code/modules/mob/living/simple_animal/friendly/corgi.dm
index 7726038a19a..9546b077482 100644
--- a/code/modules/mob/living/simple_animal/friendly/corgi.dm
+++ b/code/modules/mob/living/simple_animal/friendly/corgi.dm
@@ -25,7 +25,15 @@
var/obj/item/inventory_back
var/facehugger
-/mob/living/simple_animal/corgi/Life()
+/mob/living/simple_animal/corgi/New()
+ ..()
+ regenerate_icons()
+
+/mob/living/simple_animal/corgi/Die()
+ ..()
+ regenerate_icons()
+
+/mob/living/simple_animal/corgi/revive()
..()
regenerate_icons()
@@ -123,7 +131,7 @@
switch(add_to)
if("head")
- place_on_head(usr.get_active_hand())
+ place_on_head(usr.get_active_hand(),usr)
if("back")
if(inventory_back)
@@ -141,7 +149,7 @@
//The objects that corgis can wear on their backs.
var/list/allowed_types = list(
- /obj/item/clothing/suit/armor/vest,
+ /obj/item/clothing/suit/armor/vest/alt,
/obj/item/device/radio,
/obj/item/device/radio/off,
/obj/item/clothing/suit/cardborg,
@@ -175,152 +183,156 @@
//Corgis are supposed to be simpler, so only a select few objects can actually be put
//to be compatible with them. The objects are below.
//Many hats added, Some will probably be removed, just want to see which ones are popular.
-/mob/living/simple_animal/corgi/proc/place_on_head(obj/item/item_to_add)
+/mob/living/simple_animal/corgi/proc/place_on_head(obj/item/item_to_add, var/mob/user as mob)
if(istype(item_to_add,/obj/item/weapon/c4)) // last thing he ever wears, I guess
- item_to_add.afterattack(src,usr,1)
+ item_to_add.afterattack(src,user,1)
return
if(inventory_head)
- if(usr) usr << "You can't put more than one hat on [src]!"
+ if(user) user << "You can't put more than one hat on [src]!"
return
if(!item_to_add)
- usr.visible_message("[usr] pets [src]","You rest your hand on [src]'s head for a moment.")
+ user.visible_message("[user] pets [src]","You rest your hand on [src]'s head for a moment.")
return
var/valid = 0
//Various hats and items (worn on his head) change Ian's behaviour. His attributes are reset when a hat is removed.
- switch(item_to_add.type)
- if( /obj/item/clothing/glasses/sunglasses, /obj/item/clothing/head/that, /obj/item/clothing/head/collectable/paper,
- /obj/item/clothing/head/hardhat, /obj/item/clothing/head/collectable/hardhat,/obj/item/clothing/head/hardhat/white, /obj/item/weapon/paper )
- valid = 1
+ if(istype(item_to_add, /obj/item/clothing/tie/scarf))
+ valid = 1
+ else
+ switch(item_to_add.type)
+ if( /obj/item/clothing/glasses/sunglasses, /obj/item/clothing/head/that, /obj/item/clothing/head/collectable/paper,
+ /obj/item/clothing/head/hardhat, /obj/item/clothing/head/collectable/hardhat, /obj/item/clothing/head/hardhat/white,
+ /obj/item/weapon/paper)
+ valid = 1
- if(/obj/item/clothing/head/helmet)
- name = "Sergeant [real_name]"
- desc = "The ever-loyal, the ever-vigilant."
- valid = 1
+ if(/obj/item/clothing/head/helmet)
+ name = "Sergeant [real_name]"
+ desc = "The ever-loyal, the ever-vigilant."
+ valid = 1
- if(/obj/item/clothing/head/chefhat, /obj/item/clothing/head/collectable/chef)
- name = "Sous chef [real_name]"
- desc = "Your food will be taste-tested. All of it."
- valid = 1
+ if(/obj/item/clothing/head/chefhat, /obj/item/clothing/head/collectable/chef)
+ name = "Sous chef [real_name]"
+ desc = "Your food will be taste-tested. All of it."
+ valid = 1
- if(/obj/item/clothing/head/caphat, /obj/item/clothing/head/collectable/captain)
- name = "Captain [real_name]"
- desc = "Probably better than the last captain."
- valid = 1
+ if(/obj/item/clothing/head/caphat, /obj/item/clothing/head/collectable/captain)
+ name = "Captain [real_name]"
+ desc = "Probably better than the last captain."
+ valid = 1
- if(/obj/item/clothing/head/kitty, /obj/item/clothing/head/collectable/kitty)
- name = "Runtime"
- emote_see = list("coughs up a furball", "stretches")
- emote_hear = list("purrs")
- speak = list("Purrr", "Meow!", "MAOOOOOW!", "HISSSSS", "MEEEEEEW")
- desc = "It's a cute little kitty-cat! ... wait ... what the hell?"
- valid = 1
+ if(/obj/item/clothing/head/kitty, /obj/item/clothing/head/collectable/kitty)
+ name = "Runtime"
+ emote_see = list("coughs up a furball", "stretches")
+ emote_hear = list("purrs")
+ speak = list("Purrr", "Meow!", "MAOOOOOW!", "HISSSSS", "MEEEEEEW")
+ desc = "It's a cute little kitty-cat! ... wait ... what the hell?"
+ valid = 1
- if(/obj/item/clothing/head/rabbitears, /obj/item/clothing/head/collectable/rabbitears)
- name = "Hoppy"
- emote_see = list("twitches its nose", "hops around a bit")
- desc = "This is Hoppy. It's a corgi-...urmm... bunny rabbit"
- valid = 1
+ if(/obj/item/clothing/head/rabbitears, /obj/item/clothing/head/collectable/rabbitears)
+ name = "Hoppy"
+ emote_see = list("twitches its nose", "hops around a bit")
+ desc = "This is Hoppy. It's a corgi-...urmm... bunny rabbit"
+ valid = 1
- if(/obj/item/clothing/head/beret, /obj/item/clothing/head/collectable/beret)
- name = "Yann"
- desc = "Mon dieu! C'est un chien!"
- speak = list("le woof!", "le bark!", "JAPPE!!")
- emote_see = list("cowers in fear.", "surrenders.", "plays dead.","looks as though there is a wall in front of him.")
- valid = 1
+ if(/obj/item/clothing/head/beret, /obj/item/clothing/head/collectable/beret)
+ name = "Yann"
+ desc = "Mon dieu! C'est un chien!"
+ speak = list("le woof!", "le bark!", "JAPPE!!")
+ emote_see = list("cowers in fear.", "surrenders.", "plays dead.","looks as though there is a wall in front of him.")
+ valid = 1
- if(/obj/item/clothing/head/det_hat)
- name = "Detective [real_name]"
- desc = "[name] sees through your lies..."
- emote_see = list("investigates the area.","sniffs around for clues.","searches for scooby snacks.")
- valid = 1
+ if(/obj/item/clothing/head/det_hat)
+ name = "Detective [real_name]"
+ desc = "[name] sees through your lies..."
+ emote_see = list("investigates the area.","sniffs around for clues.","searches for scooby snacks.")
+ valid = 1
- if(/obj/item/clothing/head/nursehat)
- name = "Nurse [real_name]"
- desc = "[name] needs 100cc of beef jerky...STAT!"
- valid = 1
+ if(/obj/item/clothing/head/nursehat)
+ name = "Nurse [real_name]"
+ desc = "[name] needs 100cc of beef jerky...STAT!"
+ valid = 1
- if(/obj/item/clothing/head/pirate, /obj/item/clothing/head/collectable/pirate)
- name = "[pick("Ol'","Scurvy","Black","Rum","Gammy","Bloody","Gangrene","Death","Long-John")] [pick("kibble","leg","beard","tooth","poop-deck","Threepwood","Le Chuck","corsair","Silver","Crusoe")]"
- desc = "Yaarghh!! Thar' be a scurvy dog!"
- emote_see = list("hunts for treasure.","stares coldly...","gnashes his tiny corgi teeth!")
- emote_hear = list("growls ferociously!", "snarls.")
- speak = list("Arrrrgh!!","Grrrrrr!")
- valid = 1
+ if(/obj/item/clothing/head/pirate, /obj/item/clothing/head/collectable/pirate)
+ name = "[pick("Ol'","Scurvy","Black","Rum","Gammy","Bloody","Gangrene","Death","Long-John")] [pick("kibble","leg","beard","tooth","poop-deck","Threepwood","Le Chuck","corsair","Silver","Crusoe")]"
+ desc = "Yaarghh!! Thar' be a scurvy dog!"
+ emote_see = list("hunts for treasure.","stares coldly...","gnashes his tiny corgi teeth!")
+ emote_hear = list("growls ferociously!", "snarls.")
+ speak = list("Arrrrgh!!","Grrrrrr!")
+ valid = 1
- if(/obj/item/clothing/head/ushanka)
- name = "[pick("Comrade","Commissar","Glorious Leader")] [real_name]"
- desc = "A follower of Karl Barx."
- emote_see = list("contemplates the failings of the capitalist economic model.", "ponders the pros and cons of vangaurdism.")
- valid = 1
+ if(/obj/item/clothing/head/ushanka)
+ name = "[pick("Comrade","Commissar","Glorious Leader")] [real_name]"
+ desc = "A follower of Karl Barx."
+ emote_see = list("contemplates the failings of the capitalist economic model.", "ponders the pros and cons of vangaurdism.")
+ valid = 1
- if(/obj/item/clothing/head/collectable/police)
- name = "Officer [real_name]"
- emote_see = list("drools.","looks for donuts.")
- desc = "Stop right there criminal scum!"
- valid = 1
+ if(/obj/item/clothing/head/collectable/police)
+ name = "Officer [real_name]"
+ emote_see = list("drools.","looks for donuts.")
+ desc = "Stop right there criminal scum!"
+ valid = 1
- if(/obj/item/clothing/head/wizard/fake, /obj/item/clothing/head/wizard, /obj/item/clothing/head/collectable/wizard)
- name = "Grandwizard [real_name]"
- speak = list("YAP", "Woof!", "Bark!", "AUUUUUU", "EI NATH!")
- valid = 1
+ if(/obj/item/clothing/head/wizard/fake, /obj/item/clothing/head/wizard, /obj/item/clothing/head/collectable/wizard)
+ name = "Grandwizard [real_name]"
+ speak = list("YAP", "Woof!", "Bark!", "AUUUUUU", "EI NATH!")
+ valid = 1
- if(/obj/item/clothing/head/cardborg)
- name = "Borgi"
- speak = list("Ping!","Beep!","Woof!")
- emote_see = list("goes rogue.", "sniffs out non-humans.")
- desc = "Result of robotics budget cuts."
- valid = 1
+ if(/obj/item/clothing/head/cardborg)
+ name = "Borgi"
+ speak = list("Ping!","Beep!","Woof!")
+ emote_see = list("goes rogue.", "sniffs out non-humans.")
+ desc = "Result of robotics budget cuts."
+ valid = 1
- if(/obj/item/weapon/bedsheet)
- name = "\improper Ghost"
- speak = list("WoooOOOooo~","AUUUUUUUUUUUUUUUUUU")
- emote_see = list("stumbles around.", "shivers.")
- emote_hear = list("howls!","groans.")
- desc = "Spooky!"
- valid = 1
+ if(/obj/item/weapon/bedsheet)
+ name = "\improper Ghost"
+ speak = list("WoooOOOooo~","AUUUUUUUUUUUUUUUUUU")
+ emote_see = list("stumbles around.", "shivers.")
+ emote_hear = list("howls!","groans.")
+ desc = "Spooky!"
+ valid = 1
- if(/obj/item/clothing/head/helmet/space/santahat)
- name = "Santa's Corgi Helper"
- emote_hear = list("barks christmas songs.", "yaps merrily!")
- emote_see = list("looks for presents.", "checks his list.")
- desc = "He's very fond of milk and cookies."
- valid = 1
+ if(/obj/item/clothing/head/helmet/space/santahat)
+ name = "Santa's Corgi Helper"
+ emote_hear = list("barks christmas songs.", "yaps merrily!")
+ emote_see = list("looks for presents.", "checks his list.")
+ desc = "He's very fond of milk and cookies."
+ valid = 1
- if(/obj/item/clothing/head/soft)
- name = "Corgi Tech [real_name]"
- desc = "The reason your yellow gloves have chew-marks."
- valid = 1
+ if(/obj/item/clothing/head/soft)
+ name = "Corgi Tech [real_name]"
+ desc = "The reason your yellow gloves have chew-marks."
+ valid = 1
- if(/obj/item/clothing/head/hardhat/reindeer)
- name = "[real_name] the red-nosed Corgi"
- emote_hear = list("lights the way!", "illuminates.", "yaps!")
- desc = "He has a very shiny nose."
- SetLuminosity(1)
- valid = 1
+ if(/obj/item/clothing/head/hardhat/reindeer)
+ name = "[real_name] the red-nosed Corgi"
+ emote_hear = list("lights the way!", "illuminates.", "yaps!")
+ desc = "He has a very shiny nose."
+ SetLuminosity(1)
+ valid = 1
- if(/obj/item/clothing/head/sombrero)
- name = "Segnor [real_name]"
- desc = "You must respect elder [real_name]"
- valid = 1
+ if(/obj/item/clothing/head/sombrero)
+ name = "Segnor [real_name]"
+ desc = "You must respect elder [real_name]"
+ valid = 1
- if(/obj/item/clothing/head/hopcap)
- name = "Lieutenant [real_name]"
- desc = "Can actually be trusted to not run off on his own."
- valid = 1
+ if(/obj/item/clothing/head/hopcap)
+ name = "Lieutenant [real_name]"
+ desc = "Can actually be trusted to not run off on his own."
+ valid = 1
if(valid)
+ if(user && !user.drop_item())
+ user << "\The [item_to_add] is stuck to your hand, you cannot put it on [src]'s head!"
+ return 0
if(health <= 0)
- usr << "There is merely a dull, lifeless look in [real_name]'s eyes as you put the [item_to_add] on \him."
- else if(usr)
- if(!usr.drop_item())
- usr << "\The [item_to_add] is stuck to your hand, you cannot put it on [src]'s head!"
- return 0
- usr.visible_message("[usr] puts [item_to_add] on [real_name]'s head. [src] looks at [usr] and barks once.",
+ user << "There is merely a dull, lifeless look in [real_name]'s eyes as you put the [item_to_add] on \him."
+ else if(user)
+ user.visible_message("[user] puts [item_to_add] on [real_name]'s head. [src] looks at [user] and barks once.",
"You put [item_to_add] on [real_name]'s head. [src] gives you a peculiar look, then wags \his tail once and barks.",
"You hear a friendly-sounding bark.")
item_to_add.loc = src
@@ -328,10 +340,10 @@
regenerate_icons()
else
- if(!usr.drop_item())
- usr << "\The [item_to_add] is stuck to your hand, you cannot put it on [src]'s head!"
+ if(user && !user.drop_item())
+ user << "\The [item_to_add] is stuck to your hand, you cannot put it on [src]'s head!"
return 0
- usr << "You set [item_to_add] on [src]'s head, but \he shakes it off!"
+ user << "You set [item_to_add] on [src]'s head, but \he shakes it off!"
item_to_add.loc = loc
if(prob(25))
step_rand(item_to_add)
@@ -411,25 +423,27 @@
/mob/living/simple_animal/corgi/regenerate_icons()
- overlays = list()
+ overlays.Cut()
if(inventory_head)
- var/head_icon_state = inventory_head.icon_state
+ var/image/head_icon
if(health <= 0)
- head_icon_state += "2"
-
- var/icon/head_icon = image('icons/mob/corgi_head.dmi',head_icon_state)
- if(head_icon)
- overlays += head_icon
+ head_icon = image('icons/mob/corgi_head.dmi', icon_state = inventory_head.icon_state, dir = EAST)
+ head_icon.pixel_y = -8
+ head_icon.transform = turn(head_icon.transform, 180)
+ else
+ head_icon = image('icons/mob/corgi_head.dmi', icon_state = inventory_head.icon_state)
+ overlays += head_icon
if(inventory_back)
- var/back_icon_state = inventory_back.icon_state
+ var/image/back_icon
if(health <= 0)
- back_icon_state += "2"
-
- var/icon/back_icon = image('icons/mob/corgi_back.dmi',back_icon_state)
- if(back_icon)
- overlays += back_icon
+ back_icon = image('icons/mob/corgi_back.dmi', icon_state = inventory_back.icon_state, dir = EAST)
+ back_icon.pixel_y = -11
+ back_icon.transform = turn(back_icon.transform, 180)
+ else
+ back_icon = image('icons/mob/corgi_back.dmi', icon_state = inventory_back.icon_state)
+ overlays += back_icon
if(facehugger)
if(istype(src, /mob/living/simple_animal/corgi/puppy))
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index e26a681c46a..e80a4a863c3 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -518,7 +518,7 @@ var/list/slot_equipment_priority = list( \
namecounts[name] = 1
creatures[name] = O
- if(istype(O, /obj/machinery/singularity))
+ if(istype(O, /obj/singularity))
var/name = "Singularity"
if (names.Find(name))
namecounts[name]++
diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm
index 20a575fea58..ecdf9f9daf8 100644
--- a/code/modules/mob/mob_defines.dm
+++ b/code/modules/mob/mob_defines.dm
@@ -78,7 +78,8 @@
var/drowsyness = 0//Carbon
var/dizziness = 0//Carbon
var/jitteriness = 0//Carbon
- var/nutrition = 400//Carbon
+ var/nutrition = NUTRITION_LEVEL_FED + 50//Carbon
+ var/satiety = 0//Carbon
var/overeatduration = 0 // How long this guy is overeating //Carbon
var/paralysis = 0
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index fd087516a33..72c56c7f554 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -25,10 +25,13 @@
var/output = "Setup Character
"
if(!ticker || ticker.current_state <= GAME_STATE_PREGAME)
- if(!ready) output += "Declare Ready
"
- else output += "You are ready Cancel
"
+ if(ready)
+ output += "\[ Ready | Not Ready \]
"
+ else
+ output += "\[ Ready | Not Ready \]
"
else
+ output += "View the Crew Manifest
"
output += "Join Game!
"
output += "Observe
"
@@ -98,7 +101,10 @@
return 1
if(href_list["ready"])
- ready = text2num(href_list["ready"])
+ if(!ticker || ticker.current_state <= GAME_STATE_PREGAME) // Make sure we don't ready up after the round has started
+ ready = !ready
+ else
+ ready = 0
if(href_list["refresh"])
src << browse(null, "window=playersetup") //closes the player setup window
@@ -136,6 +142,9 @@
return
LateChoices()
+ if(href_list["manifest"])
+ ViewManifest()
+
if(href_list["SelectedJob"])
if(!enter_allowed)
@@ -364,6 +373,12 @@
return new_character
+/mob/new_player/proc/ViewManifest()
+ var/dat = ""
+ dat += "Crew Manifest
"
+ dat += data_core.get_manifest(OOC = 1)
+
+ src << browse(dat, "window=manifest;size=370x420;can_close=1")
/mob/new_player/Move()
return 0
diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm
index 901fa258ca8..e8bb527e779 100644
--- a/code/modules/mob/new_player/preferences_setup.dm
+++ b/code/modules/mob/new_player/preferences_setup.dm
@@ -81,7 +81,7 @@
if(BARTENDER)
clothes_s = new /icon('icons/mob/uniform.dmi', "ba_suit_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/suit.dmi', "armor"), ICON_OVERLAY)
+ clothes_s.Blend(new /icon('icons/mob/suit.dmi', "armoralt"), ICON_OVERLAY)
if(backbag == 2)
clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
else if(backbag == 3)
@@ -95,7 +95,7 @@
clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
else if(backbag == 3)
clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-norm"), ICON_OVERLAY)
- if(CHEF)
+ if(COOK)
clothes_s = new /icon('icons/mob/uniform.dmi', "chef_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/head.dmi', "chef"), ICON_OVERLAY)
@@ -260,12 +260,12 @@
if(backbag == 3)
clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-cap"), ICON_OVERLAY)
if(HOS)
- clothes_s = new /icon('icons/mob/uniform.dmi', "hosred_s")
+ clothes_s = new /icon('icons/mob/uniform.dmi', "hos_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/head.dmi', "hoscap"), ICON_OVERLAY)
+ clothes_s.Blend(new /icon('icons/mob/head.dmi', "hosberetblack"), ICON_OVERLAY)
clothes_s.Blend(new /icon('icons/mob/eyes.dmi', "sunhud"), ICON_OVERLAY)
- clothes_s.Blend(new /icon('icons/mob/suit.dmi', "hos"), ICON_OVERLAY)
+ clothes_s.Blend(new /icon('icons/mob/suit.dmi', "hostrench"), ICON_OVERLAY)
if(backbag == 2)
clothes_s.Blend(new /icon('icons/mob/back.dmi', "securitypack"), ICON_OVERLAY)
if(backbag == 3)
@@ -293,9 +293,10 @@
if(backbag == 3)
clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-norm"), ICON_OVERLAY)
if(OFFICER)
- clothes_s = new /icon('icons/mob/uniform.dmi', "secred_s")
+ clothes_s = new /icon('icons/mob/uniform.dmi', "security_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/head.dmi', "helmet"), ICON_OVERLAY)
+ clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/head.dmi', "beret_badge"), ICON_OVERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "armor"), ICON_OVERLAY)
if(backbag == 2)
clothes_s.Blend(new /icon('icons/mob/back.dmi', "securitypack"), ICON_OVERLAY)
diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm
index 0c60767621b..c47444be1da 100644
--- a/code/modules/mob/new_player/sprite_accessories.dm
+++ b/code/modules/mob/new_player/sprite_accessories.dm
@@ -720,12 +720,12 @@
gender = NEUTER
/datum/sprite_accessory/undershirt/tank_white
- name = "White Tank-Top"
+ name = "White Tank Top"
icon_state = "tank_white"
gender = NEUTER
/datum/sprite_accessory/undershirt/tank_black
- name = "Black Tank-Top"
+ name = "Black Tank Top"
icon_state = "tank_black"
gender = NEUTER
@@ -738,3 +738,208 @@
name = "Midriff Tank Top"
icon_state = "tank_midriff"
gender = FEMALE
+
+/datum/sprite_accessory/undershirt/lover
+ name = "Lover shirt"
+ icon_state = "lover"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/ian
+ name = "Blue Ian Shirt"
+ icon_state = "ian"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/uk
+ name = "UK Shirt"
+ icon_state = "uk"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/ilovent
+ name = "I Love NT Shirt"
+ icon_state = "ilovent"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/peace
+ name = "Peace Shirt"
+ icon_state = "peace"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/mondmondjaja
+ name = "Band Shirt"
+ icon_state = "band"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/pacman
+ name = "Pogoman Shirt"
+ icon_state = "pogoman"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/matroska
+ name = "Matroska Shirt"
+ icon_state = "matroska"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/whiteshortsleeve
+ name = "White Short-sleeved Shirt"
+ icon_state = "whiteshortsleeve"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/purpleshortsleeve
+ name = "Purple Short-sleeved Shirt"
+ icon_state = "purpleshortsleeve"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/blueshortsleeve
+ name = "Blue Short-sleeved Shirt"
+ icon_state = "blueshortsleeve"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/greenshortsleeve
+ name = "Green Short-sleeved Shirt"
+ icon_state = "greenshortsleeve"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/blackshortsleeve
+ name = "Black Short-sleeved Shirt"
+ icon_state = "blackshortsleeve"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/blueshirt
+ name = "Blue T-Shirt"
+ icon_state = "blueshirt"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/redshirt
+ name = "Red T-Shirt"
+ icon_state = "redshirt"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/yellowshirt
+ name = "Yellow T-Shirt"
+ icon_state = "yellowshirt"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/greenshirt
+ name = "Green T-Shirt"
+ icon_state = "greenshirt"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/bluepolo
+ name = "Blue Polo Shirt"
+ icon_state = "bluepolo"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/redpolo
+ name = "Red Polo Shirt"
+ icon_state = "redpolo"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/whitepolo
+ name = "White Polo Shirt"
+ icon_state = "whitepolo"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/grayyellowpolo
+ name = "Gray-Yellow Polo Shirt"
+ icon_state = "grayyellowpolo"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/redtop
+ name = "Red Top"
+ icon_state = "redtop"
+ gender = FEMALE
+
+/datum/sprite_accessory/undershirt/whitetop
+ name = "White Top"
+ icon_state = "whitetop"
+ gender = FEMALE
+
+/datum/sprite_accessory/undershirt/greenshirtsport
+ name = "Green Sports Shirt"
+ icon_state = "greenshirtsport"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/redshirtsport
+ name = "Red Sports Shirt"
+ icon_state = "redshirtsport"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/blueshirtsport
+ name = "Blue Sports Shirt"
+ icon_state = "blueshirtsport"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/ss13
+ name = "SS13 Shirt"
+ icon_state = "shirt_ss13"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/tankfire
+ name = "Fire Tank Top"
+ icon_state = "tank_fire"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/question
+ name = "Question Shirt"
+ icon_state = "shirt_question"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/skull
+ name = "Skull Shirt"
+ icon_state = "shirt_skull"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/commie
+ name = "Commie Shirt"
+ icon_state = "shirt_commie"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/nano
+ name = "Nanotransen Shirt"
+ icon_state = "shirt_nano"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/stripe
+ name = "Striped Shirt"
+ icon_state = "shirt_stripes"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/blueshirt
+ name = "Blue Shirt"
+ icon_state = "shirt_blue"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/redshirt
+ name = "Red Shirt"
+ icon_state = "shirt_red"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/greenshirt
+ name = "Green Shirt"
+ icon_state = "shirt_green"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/meat
+ name = "Meat Shirt"
+ icon_state = "shirt_meat"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/tiedye
+ name = "Tie-dye Shirt"
+ icon_state = "shirt_tiedye"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/redjersey
+ name = "Red Jersey"
+ icon_state = "shirt_redjersey"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/bluejersey
+ name = "Blue Jersey"
+ icon_state = "shirt_bluejersey"
+ gender = NEUTER
+
+/datum/sprite_accessory/undershirt/tankstripe
+ name = "Striped Tank Top"
+ icon_state = "tank_stripes"
+ gender = FEMALE
diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm
index 53831b9f235..a85940d0f81 100644
--- a/code/modules/paperwork/paperbin.dm
+++ b/code/modules/paperwork/paperbin.dm
@@ -55,7 +55,7 @@
P.loc = user.loc
user.put_in_hands(P)
- user << "You take [P] out of the [src]."
+ user << "You take [P] out of \the [src]."
else
user << "[src] is empty!"
diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm
index dd9af7e4a73..232791722cc 100644
--- a/code/modules/power/lighting.dm
+++ b/code/modules/power/lighting.dm
@@ -679,7 +679,7 @@
if(istype(I, /obj/item/weapon/reagent_containers/syringe))
var/obj/item/weapon/reagent_containers/syringe/S = I
- user << "You inject the solution into the [src]."
+ user << "You inject the solution into \the [src]."
if(S.reagents.has_reagent("plasma", 5))
diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm
index 2d4ede128b5..8e07804317d 100644
--- a/code/modules/power/singularity/collector.dm
+++ b/code/modules/power/singularity/collector.dm
@@ -97,7 +97,7 @@ var/global/list/rad_collectors = list()
user << "The controls are now [src.locked ? "locked." : "unlocked."]"
else
src.locked = 0 //just in case it somehow gets locked
- user << "The controls can only be locked when the [src] is active."
+ user << "The controls can only be locked when \the [src] is active."
else
user << "Access denied!"
return 1
diff --git a/code/modules/power/singularity/containment_field.dm b/code/modules/power/singularity/containment_field.dm
index 377670faa43..14062e210f5 100644
--- a/code/modules/power/singularity/containment_field.dm
+++ b/code/modules/power/singularity/containment_field.dm
@@ -74,7 +74,7 @@
return ..()
/obj/machinery/field/CanPass(obj/mover as obj, turf/target, height=0)
- if((istype(mover, /obj/machinery) && !istype(mover, /obj/machinery/singularity)) || \
+ if((istype(mover, /obj/machinery) && !istype(mover, /obj/singularity)) || \
istype(mover, /obj/structure) || \
istype(mover, /obj/mecha))
bump(mover)
diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm
index 6da19164d8e..8e358e5a43c 100644
--- a/code/modules/power/singularity/emitter.dm
+++ b/code/modules/power/singularity/emitter.dm
@@ -63,13 +63,13 @@
if(!src.locked)
if(src.active==1)
src.active = 0
- user << "You turn off the [src]."
+ user << "You turn off \the [src]."
message_admins("Emitter turned off by [key_name(user, user.client)](?) in ([x],[y],[z] - JMP)",0,1)
log_game("Emitter turned off by [user.ckey]([user]) in ([x],[y],[z])")
investigate_log("turned off by [user.key]","singulo")
else
src.active = 1
- user << "You turn on the [src]."
+ user << "You turn on \the [src]."
src.shot_number = 0
src.fire_delay = 100
investigate_log("turned on by [user.key]","singulo")
@@ -152,7 +152,7 @@
if(istype(W, /obj/item/weapon/wrench))
if(active)
- user << "Turn off the [src] first."
+ user << "Turn off \the [src] first."
return
switch(state)
if(0 && !isinspace())
@@ -176,7 +176,7 @@
if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
if(active)
- user << "Turn off the [src] first."
+ user << "Turn off \the [src] first."
return
switch(state)
if(0)
@@ -185,23 +185,23 @@
if (WT.remove_fuel(0,user))
playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1)
user.visible_message("[user.name] starts to weld the [src.name] to the floor.", \
- "You start to weld the [src] to the floor.", \
+ "You start to weld \the [src] to the floor.", \
"You hear welding")
if (do_after(user,20))
if(!src || !WT.isOn()) return
state = 2
- user << "You weld the [src] to the floor."
+ user << "You weld \the [src] to the floor."
connect_to_network()
if(2)
if (WT.remove_fuel(0,user))
playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1)
user.visible_message("[user.name] starts to cut the [src.name] free from the floor.", \
- "You start to cut the [src] free from the floor.", \
+ "You start to cut \the [src] free from the floor.", \
"You hear welding")
if (do_after(user,20))
if(!src || !WT.isOn()) return
state = 1
- user << "You cut the [src] free from the floor."
+ user << "You cut \the [src] free from the floor."
disconnect_from_network()
return
@@ -215,7 +215,7 @@
user << "The controls are now [src.locked ? "locked." : "unlocked."]"
else
src.locked = 0 //just in case it somehow gets locked
- user << "The controls can only be locked when the [src] is online."
+ user << "The controls can only be locked when \the [src] is online."
else
user << "Access denied."
return
@@ -227,4 +227,4 @@
if(!emagged)
locked = 0
emagged = 1
- user.visible_message("[user.name] emags the [src.name].","You short out the lock.")
+ user.visible_message("[user.name] emags the [src.name].","You short out the lock.")
diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm
index 34f49fa328b..d0fdaf04d41 100644
--- a/code/modules/power/singularity/field_generator.dm
+++ b/code/modules/power/singularity/field_generator.dm
@@ -127,7 +127,7 @@ field_generator power level display
if (WT.remove_fuel(0,user))
playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1)
user.visible_message("[user.name] starts to weld the [src.name] to the floor.", \
- "You start to weld the [src] to the floor.", \
+ "You start to weld \the [src] to the floor.", \
"You hear welding")
if (do_after(user,20))
if(!src || !WT.isOn()) return
@@ -139,12 +139,12 @@ field_generator power level display
if (WT.remove_fuel(0,user))
playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1)
user.visible_message("[user.name] starts to cut the [src.name] free from the floor.", \
- "You start to cut the [src] free from the floor.", \
+ "You start to cut \the [src] free from the floor.", \
"You hear welding")
if (do_after(user,20))
if(!src || !WT.isOn()) return
state = 1
- user << "You cut the [src] free from the floor."
+ user << "You cut \the [src] free from the floor."
else
return
else
@@ -344,7 +344,7 @@ field_generator power level display
//I want to avoid using global variables.
spawn(1)
var/temp = 1 //stops spam
- for(var/obj/machinery/singularity/O in world)
+ for(var/obj/singularity/O in world)
if(O.last_warning && temp)
if((world.time - O.last_warning) > 50) //to stop message-spam
temp = 0
diff --git a/code/modules/power/singularity/generator.dm b/code/modules/power/singularity/generator.dm
index d618cd54eef..0f27d92cd47 100644
--- a/code/modules/power/singularity/generator.dm
+++ b/code/modules/power/singularity/generator.dm
@@ -12,7 +12,7 @@
/obj/machinery/the_singularitygen/process()
var/turf/T = get_turf(src)
if(src.energy >= 200)
- new /obj/machinery/singularity/(T, 50)
+ new /obj/singularity/(T, 50)
if(src) qdel(src)
/obj/machinery/the_singularitygen/attackby(obj/item/W, mob/user)
diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm
index 9253dfde465..1ed275131b6 100644
--- a/code/modules/power/singularity/narsie.dm
+++ b/code/modules/power/singularity/narsie.dm
@@ -1,4 +1,4 @@
-/obj/machinery/singularity/narsie //Moving narsie to a child object of the singularity so it can be made to function differently. --NEO
+/obj/singularity/narsie //Moving narsie to a child object of the singularity so it can be made to function differently. --NEO
name = "Nar-sie's Avatar"
desc = "Your mind begins to bubble and ooze as it tries to comprehend what it sees."
icon = 'icons/obj/magic_terror.dmi'
@@ -10,9 +10,8 @@
move_self = 1 //Do we move on our own?
grav_pull = 5 //How many tiles out do we pull?
consume_range = 6 //How many tiles out do we eat
- var/uneatable = list(/turf/space, /obj/effect/overlay, /mob/living/simple_animal/construct)
-/obj/machinery/singularity/narsie/large
+/obj/singularity/narsie/large
name = "Nar-Sie"
icon = 'icons/obj/narsie.dmi'
// Pixel stuff centers Narsie.
@@ -23,7 +22,7 @@
grav_pull = 10
consume_range = 12 //How many tiles out do we eat
-/obj/machinery/singularity/narsie/large/New()
+/obj/singularity/narsie/large/New()
..()
world << "NAR-SIE HAS RISEN"
world << pick(sound('sound/hallucinations/im_here1.ogg'), sound('sound/hallucinations/im_here2.ogg'))
@@ -39,7 +38,7 @@
emergency_shuttle.incall(0.3) // Cannot recall
-/obj/machinery/singularity/narsie/large/attack_ghost(mob/dead/observer/user as mob)
+/obj/singularity/narsie/large/attack_ghost(mob/dead/observer/user as mob)
if(!(src in view()))
user << "Your soul is too far away."
return
@@ -47,7 +46,7 @@
new /obj/effect/effect/sleep_smoke(user.loc)
-/obj/machinery/singularity/narsie/process()
+/obj/singularity/narsie/process()
eat()
if(!target || prob(5))
pickcultist()
@@ -56,15 +55,15 @@
mezzer()
-/obj/machinery/singularity/narsie/Bump(atom/A)//you dare stand before a god?!
+/obj/singularity/narsie/Bump(atom/A)//you dare stand before a god?!
godsmack(A)
return
-/obj/machinery/singularity/narsie/Bumped(atom/A)
+/obj/singularity/narsie/Bumped(atom/A)
godsmack(A)
return
-/obj/machinery/singularity/narsie/proc/godsmack(var/atom/A)
+/obj/singularity/narsie/proc/godsmack(var/atom/A)
if(istype(A,/obj/))
var/obj/O = A
O.ex_act(1.0)
@@ -75,7 +74,7 @@
T.ChangeTurf(/turf/simulated/floor/engine/cult)
-/obj/machinery/singularity/narsie/mezzer()
+/obj/singularity/narsie/mezzer()
for(var/mob/living/carbon/M in oviewers(8, src))
if(M.stat == CONSCIOUS)
if(!iscultist(M))
@@ -83,33 +82,15 @@
M.apply_effect(3, STUN)
-/obj/machinery/singularity/narsie/consume(var/atom/A)
- if(is_type_in_list(A, uneatable))
- return 0
+/obj/singularity/narsie/consume(var/atom/A)
+ A.narsie_act()
- if(istype(A,/mob/living/))
- var/mob/living/C = A
- if(C.client)
- makeNewConstruct(/mob/living/simple_animal/construct/harvester, C, null, 1)
- C.spawn_dust()
- C.gib()
- return
- if(isturf(A))
- var/turf/T = A
- if(istype(T, /turf/simulated/floor) && !istype(T, /turf/simulated/floor/engine/cult))
- if(prob(20)) T.ChangeTurf(/turf/simulated/floor/engine/cult)
-
- else if(istype(T,/turf/simulated/wall) && !istype(T, /turf/simulated/wall/cult))
- if(prob(20)) T.ChangeTurf(/turf/simulated/wall/cult)
+/obj/singularity/narsie/ex_act() //No throwing bombs at it either. --NEO
return
-/obj/machinery/singularity/narsie/ex_act() //No throwing bombs at it either. --NEO
- return
-
-
-/obj/machinery/singularity/narsie/proc/pickcultist() //Narsie rewards his cultists with being devoured first, then picks a ghost to follow. --NEO
+/obj/singularity/narsie/proc/pickcultist() //Narsie rewards his cultists with being devoured first, then picks a ghost to follow. --NEO
var/list/cultists = list()
var/list/noncultists = list()
for(var/mob/living/carbon/food in living_mob_list) //we don't care about constructs or cult-Ians or whatever. cult-monkeys are fair game i guess
@@ -143,7 +124,7 @@
return
-/obj/machinery/singularity/narsie/proc/acquire(var/mob/food)
+/obj/singularity/narsie/proc/acquire(var/mob/food)
target << "NAR-SIE HAS LOST INTEREST IN YOU"
target = food
if(ishuman(target))
@@ -152,10 +133,10 @@
target << "NAR-SIE HAS CHOSEN YOU TO LEAD HIM TO HIS NEXT MEAL"
//Wizard narsie
-/obj/machinery/singularity/narsie/wizard
+/obj/singularity/narsie/wizard
grav_pull = 0
-/obj/machinery/singularity/narsie/wizard/eat()
+/obj/singularity/narsie/wizard/eat()
set background = BACKGROUND_ENABLED
// if(defer_powernet_rebuild != 2)
// defer_powernet_rebuild = 1
@@ -167,7 +148,7 @@
return
-/obj/machinery/singularity/narsie/proc/narsie_spawn_animation()
+/obj/singularity/narsie/proc/narsie_spawn_animation()
icon = 'icons/obj/narsie_spawn_anim.dmi'
dir = SOUTH
move_self = 0
diff --git a/code/modules/power/singularity/particle_accelerator/particle.dm b/code/modules/power/singularity/particle_accelerator/particle.dm
index 7d41c552c37..ed5d1f760d2 100644
--- a/code/modules/power/singularity/particle_accelerator/particle.dm
+++ b/code/modules/power/singularity/particle_accelerator/particle.dm
@@ -38,7 +38,7 @@
if (A)
if(ismob(A))
toxmob(A)
- if((istype(A,/obj/machinery/the_singularitygen))||(istype(A,/obj/machinery/singularity/)))
+ if((istype(A,/obj/machinery/the_singularitygen))||(istype(A,/obj/singularity/)))
A:energy += energy
return
diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm
index 60a9f5f1cd9..8f1443cb6c3 100644
--- a/code/modules/power/singularity/singularity.dm
+++ b/code/modules/power/singularity/singularity.dm
@@ -1,6 +1,6 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
-/obj/machinery/singularity
+/obj/singularity
name = "gravitational singularity"
desc = "A gravitational singularity."
icon = 'icons/obj/singularity.dmi'
@@ -10,7 +10,6 @@
layer = 6
luminosity = 6
unacidable = 1 //Don't comment this out.
- use_power = 0
var/current_size = 1
var/allowed_size = 1
var/contained = 1 //Are we going to move around?
@@ -27,20 +26,24 @@
var/last_failed_movement = 0//Will not move in the same dir if it couldnt before, will help with the getting stuck on fields thing
var/last_warning
-/obj/machinery/singularity/New(loc, var/starting_energy = 50, var/temp = 0)
+/obj/singularity/New(loc, var/starting_energy = 50, var/temp = 0)
//CARN: admin-alert for chuckle-fuckery.
admin_investigate_setup()
src.energy = starting_energy
..()
+ processing_objects.Add(src)
for(var/obj/machinery/power/singularity_beacon/singubeacon in world)
if(singubeacon.active)
target = singubeacon
break
return
+/obj/singularity/Destroy()
+ processing_objects.Remove(src)
+ ..()
-/obj/machinery/singularity/Move(atom/newloc, direct)
+/obj/singularity/Move(atom/newloc, direct)
if(current_size >= STAGE_FIVE || check_turfs_in(direct))
last_failed_movement = 0//Reset this because we moved
return ..()
@@ -49,17 +52,17 @@
return 0
-/obj/machinery/singularity/attack_hand(mob/user as mob)
+/obj/singularity/attack_hand(mob/user as mob)
consume(user)
return 1
-/obj/machinery/singularity/Process_Spacemove() //The singularity stops drifting for no man!
+/obj/singularity/Process_Spacemove() //The singularity stops drifting for no man!
return 0
-/obj/machinery/singularity/blob_act(severity)
+/obj/singularity/blob_act(severity)
return
-/obj/machinery/singularity/ex_act(severity, target)
+/obj/singularity/ex_act(severity, target)
switch(severity)
if(1.0)
if(current_size <= STAGE_TWO)
@@ -75,21 +78,21 @@
return
-/obj/machinery/singularity/bullet_act(obj/item/projectile/P)
+/obj/singularity/bullet_act(obj/item/projectile/P)
return 0 //Will there be an impact? Who knows. Will we see it? No.
-/obj/machinery/singularity/Bump(atom/A)
+/obj/singularity/Bump(atom/A)
consume(A)
return
-/obj/machinery/singularity/Bumped(atom/A)
+/obj/singularity/Bumped(atom/A)
consume(A)
return
-/obj/machinery/singularity/process()
+/obj/singularity/process()
if(current_size >= STAGE_TWO)
move()
pulse()
@@ -102,17 +105,17 @@
return
-/obj/machinery/singularity/attack_ai() //to prevent ais from gibbing themselves when they click on one.
+/obj/singularity/attack_ai() //to prevent ais from gibbing themselves when they click on one.
return
-/obj/machinery/singularity/proc/admin_investigate_setup()
+/obj/singularity/proc/admin_investigate_setup()
last_warning = world.time
var/count = locate(/obj/machinery/field/containment) in orange(30, src)
if(!count) message_admins("A singulo has been created without containment fields active ([x],[y],[z])",1)
investigate_log("was created. [count?"":"No containment fields were active"]","singulo")
-/obj/machinery/singularity/proc/dissipate()
+/obj/singularity/proc/dissipate()
if(!dissipate)
return
if(dissipate_track >= dissipate_delay)
@@ -122,7 +125,7 @@
dissipate_track++
-/obj/machinery/singularity/proc/expand(var/force_size = 0)
+/obj/singularity/proc/expand(var/force_size = 0)
var/temp_allowed_size = src.allowed_size
if(force_size)
temp_allowed_size = force_size
@@ -191,7 +194,7 @@
return 0
-/obj/machinery/singularity/proc/check_energy()
+/obj/singularity/proc/check_energy()
if(energy <= 0)
investigate_log("collapsed.","singulo")
qdel(src)
@@ -212,11 +215,11 @@
return 1
-/obj/machinery/singularity/proc/eat()
+/obj/singularity/proc/eat()
set background = BACKGROUND_ENABLED
for(var/atom/X in orange(grav_pull,src))
var/dist = get_dist(X, src)
- var/obj/machinery/singularity/S = src
+ var/obj/singularity/S = src
if(dist > consume_range)
X.singularity_pull(S, current_size)
else if(dist <= consume_range)
@@ -224,13 +227,13 @@
return
-/obj/machinery/singularity/proc/consume(var/atom/A)
+/obj/singularity/proc/consume(var/atom/A)
var/gain = A.singularity_act(current_size)
src.energy += gain
return
-/obj/machinery/singularity/proc/move(var/force_move = 0)
+/obj/singularity/proc/move(var/force_move = 0)
if(!move_self)
return 0
@@ -245,7 +248,7 @@
step(src, movement_dir)
-/obj/machinery/singularity/proc/check_turfs_in(var/direction = 0, var/step = 0)
+/obj/singularity/proc/check_turfs_in(var/direction = 0, var/step = 0)
if(!direction)
return 0
var/steps = 0
@@ -298,7 +301,7 @@
return 1
-/obj/machinery/singularity/proc/can_move(var/turf/T)
+/obj/singularity/proc/can_move(var/turf/T)
if(!T)
return 0
if((locate(/obj/machinery/field/containment) in T)||(locate(/obj/machinery/shieldwall) in T))
@@ -314,7 +317,7 @@
return 1
-/obj/machinery/singularity/proc/event()
+/obj/singularity/proc/event()
var/numb = pick(1,2,3,4,5,6)
switch(numb)
if(1)//EMP
@@ -328,7 +331,7 @@
return 1
-/obj/machinery/singularity/proc/toxmob()
+/obj/singularity/proc/toxmob()
var/toxrange = 10
var/toxdamage = 4
var/radiation = 15
@@ -344,7 +347,7 @@
return
-/obj/machinery/singularity/proc/mezzer()
+/obj/singularity/proc/mezzer()
for(var/mob/living/carbon/M in oviewers(8, src))
if(istype(M, /mob/living/carbon/brain)) //Ignore brains
continue
@@ -361,19 +364,19 @@
return
-/obj/machinery/singularity/proc/emp_area()
+/obj/singularity/proc/emp_area()
empulse(src, 8, 10)
return
-/obj/machinery/singularity/proc/pulse()
+/obj/singularity/proc/pulse()
for(var/obj/machinery/power/rad_collector/R in rad_collectors)
if(get_dist(R, src) <= 15) // Better than using orange() every process
R.receive_pulse(energy)
return
-/obj/machinery/singularity/singularity_act()
+/obj/singularity/singularity_act()
var/gain = (energy/2)
var/dist = max((current_size - 2),1)
explosion(src.loc,(dist),(dist*2),(dist*4))
diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm
index 062f28cb028..7c70cb2c484 100644
--- a/code/modules/power/solar.dm
+++ b/code/modules/power/solar.dm
@@ -33,9 +33,10 @@ var/list/solars_list = list()
//set the control of the panel to a given computer if closer than SOLAR_MAX_DIST
/obj/machinery/power/solar/proc/set_control(var/obj/machinery/power/solar_control/SC)
- if(SC && (get_dist(src, SC) > SOLAR_MAX_DIST))
+ if(!SC || (get_dist(src, SC) > SOLAR_MAX_DIST))
return 0
control = SC
+ SC.connected_panels |= src
return 1
//set the control of the panel to null and removes it from the control list of the previous control computer if needed
@@ -323,12 +324,10 @@ var/list/solars_list = list()
var/obj/machinery/power/solar/S = M
if(!S.control) //i.e unconnected
S.set_control(src)
- connected_panels |= S
else if(istype(M, /obj/machinery/power/tracker))
if(!connected_tracker) //if there's already a tracker connected to the computer don't add another
var/obj/machinery/power/tracker/T = M
if(!T.control) //i.e unconnected
- connected_tracker = T
T.set_control(src)
//called by the sun controller, update the facing angle (either manually or via tracking) and rotates the panels accordingly
@@ -484,10 +483,10 @@ var/list/solars_list = list()
set_panels(targetdir)
if(href_list["search_connected"])
- src.search_for_connected()
+ search_for_connected()
if(connected_tracker && track == 2)
connected_tracker.set_angle(sun.angle)
- src.set_panels(cdir)
+ set_panels(cdir)
src.updateUsrDialog()
return
diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm
new file mode 100644
index 00000000000..b08ad2edf4d
--- /dev/null
+++ b/code/modules/power/supermatter/supermatter.dm
@@ -0,0 +1,286 @@
+//Ported from /vg/station13, which was in turn forked from baystation12;
+//Please do not bother them with bugs from this port, however, as it has been modified quite a bit.
+//Modifications include removing the world-ending full supermatter variation, and leaving only the shard.
+
+#define NITROGEN_RETARDATION_FACTOR 2 //Higher == N2 slows reaction more
+#define THERMAL_RELEASE_MODIFIER 5 //Higher == less heat released during reaction
+#define PLASMA_RELEASE_MODIFIER 750 //Higher == less plasma released by reaction
+#define OXYGEN_RELEASE_MODIFIER 325 //Higher == less oxygen released at high temperature/power
+#define REACTION_POWER_MODIFIER 0.55 //Higher == more overall power
+
+
+//These would be what you would get at point blank, decreases with distance
+#define DETONATION_RADS 200
+#define DETONATION_HALLUCINATION 600
+
+
+#define WARNING_DELAY 30 //seconds between warnings.
+
+/obj/machinery/power/supermatter_shard
+ name = "supermatter shard"
+ desc = "A strangely translucent and iridescent crystal that looks like it used to be part of a larger structure. You get headaches just from looking at it."
+ icon = 'icons/obj/supermatter.dmi'
+ icon_state = "darkmatter_shard"
+ density = 1
+ anchored = 0
+ luminosity = 4
+
+
+ var/gasefficency = 0.125
+
+ var/base_icon_state = "darkmatter_shard"
+
+ var/damage = 0
+ var/damage_archived = 0
+ var/safe_alert = "Crystalline hyperstructure returning to safe operating levels."
+ var/warning_point = 50
+ var/warning_alert = "Danger! Crystal hyperstructure instability!"
+ var/emergency_point = 500
+ var/emergency_alert = "CRYSTAL DELAMINATION IMMINENT."
+ var/explosion_point = 900
+
+ var/emergency_issued = 0
+
+ var/explosion_power = 8
+
+ var/lastwarning = 0 // Time in 1/10th of seconds since the last sent warning
+ var/power = 0
+
+ var/oxygen = 0 // Moving this up here for easier debugging.
+
+ //Temporary values so that we can optimize this
+ //How much the bullets damage should be multiplied by when it is added to the internal variables
+ var/config_bullet_energy = 2
+ //How much of the power is left after processing is finished?
+// var/config_power_reduction_per_tick = 0.5
+ //How much hallucination should it produce per unit of power?
+ var/config_hallucination_power = 0.1
+
+ var/obj/item/device/radio/radio
+
+ //for logging
+ var/has_been_powered = 0
+ var/has_reached_emergency = 0
+
+/obj/machinery/power/supermatter_shard/New()
+ . = ..()
+ radio = new(src)
+ radio.listening = 0
+ investigate_log("has been created.", "supermatter")
+
+
+/obj/machinery/power/supermatter_shard/Destroy()
+ investigate_log("has been destroyed.", "supermatter")
+ qdel(radio)
+ . = ..()
+
+/obj/machinery/power/supermatter_shard/proc/explode()
+ investigate_log("has exploded.", "supermatter")
+ explosion(get_turf(src), explosion_power, explosion_power * 2, explosion_power * 3, explosion_power * 4, 1, 1)
+ qdel(src)
+ return
+
+/obj/machinery/power/supermatter_shard/process()
+ var/turf/L = loc
+
+ if(isnull(L)) // We have a null turf...something is wrong, stop processing this entity.
+ return PROCESS_KILL
+
+ if(!istype(L)) //We are in a crate or somewhere that isn't turf, if we return to turf resume processing but for now.
+ return //Yeah just stop.
+
+ if(istype(L, /turf/space)) // Stop processing this stuff if we've been ejected.
+ return
+
+ if(damage > warning_point) // while the core is still damaged and it's still worth noting its status
+ if((world.timeofday - lastwarning) / 10 >= WARNING_DELAY)
+ var/stability = num2text(round((damage / explosion_point) * 100))
+
+ if(damage > emergency_point)
+ radio.talk_into(src, "[emergency_alert] Instability: [stability]%")
+ lastwarning = world.timeofday
+ if(!has_reached_emergency)
+ investigate_log("has reached the emergency point for the first time.", "supermatter")
+ message_admins("[src] has reached the emergency point (JMP).")
+ has_reached_emergency = 1
+
+ else if(damage >= damage_archived) // The damage is still going up
+ radio.talk_into(src, "[warning_alert] Instability: [stability]%")
+ lastwarning = world.timeofday - 150
+
+ else // Phew, we're safe
+ radio.talk_into(src, "[safe_alert]")
+ lastwarning = world.timeofday
+
+ if(damage > explosion_point)
+ for(var/mob/living/mob in living_mob_list)
+ if(istype(mob, /mob/living/carbon/human))
+ //Hilariously enough, running into a closet should make you get hit the hardest.
+ var/mob/living/carbon/human/H = mob
+ H.hallucination += max(50, min(300, DETONATION_HALLUCINATION * sqrt(1 / (get_dist(mob, src) + 1)) ) )
+ var/rads = DETONATION_RADS * sqrt( 1 / (get_dist(mob, src) + 1) )
+ mob.apply_effect(rads, IRRADIATE)
+
+ explode()
+
+ //Ok, get the air from the turf
+ var/datum/gas_mixture/env = L.return_air()
+
+ //Remove gas from surrounding area
+ var/datum/gas_mixture/removed = env.remove(gasefficency * env.total_moles())
+
+ if(!removed || !removed.total_moles())
+ damage += max((power-1600)/10, 0)
+ power = min(power, 1600)
+ return 1
+
+ damage_archived = damage
+ damage = max( damage + ( (removed.temperature - 800) / 150 ) , 0 )
+ //Ok, 100% oxygen atmosphere = best reaction
+ //Maxes out at 100% oxygen pressure
+ oxygen = max(min((removed.oxygen - (removed.nitrogen * NITROGEN_RETARDATION_FACTOR)) / MOLES_CELLSTANDARD, 1), 0)
+
+ var/temp_factor = 50
+
+ if(oxygen > 0.8)
+ // with a perfect gas mix, make the power less based on heat
+ icon_state = "[base_icon_state]_glow"
+ else
+ // in normal mode, base the produced energy around the heat
+ temp_factor = 30
+ icon_state = base_icon_state
+
+ power = max( (removed.temperature * temp_factor / T0C) * oxygen + power, 0) //Total laser power plus an overload
+
+ //We've generated power, now let's transfer it to the collectors for storing/usage
+ transfer_energy()
+
+ var/device_energy = power * REACTION_POWER_MODIFIER
+
+ //To figure out how much temperature to add each tick, consider that at one atmosphere's worth
+ //of pure oxygen, with all four lasers firing at standard energy and no N2 present, at room temperature
+ //that the device energy is around 2140. At that stage, we don't want too much heat to be put out
+ //Since the core is effectively "cold"
+
+ //Also keep in mind we are only adding this temperature to (efficiency)% of the one tile the rock
+ //is on. An increase of 4*C @ 25% efficiency here results in an increase of 1*C / (#tilesincore) overall.
+ removed.temperature += (device_energy / THERMAL_RELEASE_MODIFIER)
+
+ removed.temperature = max(0, min(removed.temperature, 2500))
+
+ //Calculate how much gas to release
+ removed.toxins += max(device_energy / PLASMA_RELEASE_MODIFIER, 0)
+
+ removed.oxygen += max((device_energy + removed.temperature - T0C) / OXYGEN_RELEASE_MODIFIER, 0)
+
+ env.merge(removed)
+
+ for(var/mob/living/carbon/human/l in view(src, min(7, round(power ** 0.25)))) // If they can see it without mesons on. Bad on them.
+ if(!istype(l.glasses, /obj/item/clothing/glasses/meson))
+ l.hallucination = max(0, min(200, l.hallucination + power * config_hallucination_power * sqrt( 1 / min(1, get_dist(l, src)) ) ) )
+
+ for(var/mob/living/l in range(src, round((power / 100) ** 0.25)))
+ var/rads = (power / 10) * sqrt( 1 / min(get_dist(l, src),1) )
+ l.apply_effect(rads, IRRADIATE)
+
+ power -= (power/500)**3
+
+ return 1
+
+
+/obj/machinery/power/supermatter_shard/bullet_act(var/obj/item/projectile/Proj)
+ var/turf/L = loc
+ if(!istype(L)) // We don't run process() when we are in space
+ return 0 // This stops people from being able to really power up the supermatter
+ // Then bring it inside to explode instantly upon landing on a valid turf.
+
+
+ if(Proj.flag != "bullet")
+ power += Proj.damage * config_bullet_energy
+ if(!has_been_powered)
+ investigate_log("has been powered for the first time.", "supermatter")
+ message_admins("[src] has been powered for the first time (JMP).")
+ has_been_powered = 1
+ else
+ damage += Proj.damage * config_bullet_energy
+ return 0
+
+
+/obj/machinery/power/supermatter_shard/attack_paw(mob/user as mob)
+ return attack_hand(user)
+
+
+/obj/machinery/power/supermatter_shard/attack_robot(mob/user as mob)
+ if(Adjacent(user))
+ return attack_hand(user)
+ else
+ user << "You attempt to interface with the control circuits but find they are not connected to your network. Maybe in a future firmware update."
+ return
+
+/obj/machinery/power/supermatter_shard/attack_ai(mob/user as mob)
+ user << "You attempt to interface with the control circuits but find they are not connected to your network. Maybe in a future firmware update."
+
+/obj/machinery/power/supermatter_shard/attack_hand(mob/user as mob)
+ user.visible_message("\The [user] reaches out and touches \the [src], inducing a resonance... \his body starts to glow and bursts into flames before flashing into ash.",\
+ "You reach out and touch \the [src]. Everything starts burning and all you can hear is ringing. Your last thought is \"That was not a wise decision.\"",\
+ "You hear an unearthly noise as a wave of heat washes over you.")
+
+ playsound(get_turf(src), 'sound/effects/supermatter.ogg', 50, 1)
+
+ Consume(user)
+
+/obj/machinery/power/supermatter_shard/proc/transfer_energy()
+ for(var/obj/machinery/power/rad_collector/R in rad_collectors)
+ if(get_dist(R, src) <= 15) // Better than using orange() every process
+ R.receive_pulse(power/10)
+ return
+
+/obj/machinery/power/supermatter_shard/attackby(obj/item/weapon/W as obj, mob/living/user as mob)
+ if(user.drop_item(W))
+ Consume(W)
+ user.visible_message("As [user] touches \the [src] with \a [W], silence fills the room...",\
+ "You touch \the [src] with \the [W], and everything suddenly goes silent.\"\n\The [W] flashes into dust as you flinch away from \the [src].",\
+ "Everything suddenly goes silent.")
+
+ playsound(get_turf(src), 'sound/effects/supermatter.ogg', 50, 1)
+
+ user.apply_effect(150, IRRADIATE)
+
+
+/obj/machinery/power/supermatter_shard/Bumped(atom/AM as mob|obj)
+ if(istype(AM, /mob/living))
+ AM.visible_message("\The [AM] slams into \the [src] inducing a resonance... \his body starts to glow and catch flame before flashing into ash.",\
+ "You slam into \the [src] as your ears are filled with unearthly ringing. Your last thought is \"Oh, fuck.\"",\
+ "You hear an unearthly noise as a wave of heat washes over you.")
+ else
+ AM.visible_message("\The [AM] smacks into \the [src] and rapidly flashes to ash.",\
+ "You hear a loud crack as you are washed with a wave of heat.")
+
+ playsound(get_turf(src), 'sound/effects/supermatter.ogg', 50, 1)
+
+ Consume(AM)
+
+
+/obj/machinery/power/supermatter_shard/proc/Consume(atom/movable/AM)
+ if(istype(AM, /mob/living))
+ var/mob/living/user = AM
+ user.dust()
+ power += 200
+ message_admins("[src] has consumed [key_name(user)]? (JMP).")
+ else
+ qdel(AM)
+
+ investigate_log("has consumed [AM].", "supermatter")
+
+ power += 200
+
+ //Some poor sod got eaten, go ahead and irradiate people nearby.
+ for(var/mob/living/L in range(10))
+ var/rads = 500 * sqrt( 1 / (get_dist(L, src) + 1) )
+ L.apply_effect(rads, IRRADIATE)
+ investigate_log("has irradiated [L] after consuming [AM].", "supermatter")
+ if(L in view())
+ L.show_message("As \the [src] slowly stops resonating, you find your skin covered in new radiation burns.", 1,\
+ "The unearthly ringing subsides and you notice you have new radiation burns.", 2)
+ else
+ L.show_message("You hear an uneartly ringing and notice your skin is covered in fresh radiation burns.", 2)
diff --git a/code/modules/power/supermatter/supermatter_crate.dm b/code/modules/power/supermatter/supermatter_crate.dm
new file mode 100644
index 00000000000..dd65e75cfc5
--- /dev/null
+++ b/code/modules/power/supermatter/supermatter_crate.dm
@@ -0,0 +1,7 @@
+/datum/supply_packs/engineering/engine/supermatter_shard
+ name = "Supermatter Shard Crate"
+ contains = list(/obj/machinery/power/supermatter_shard)
+ cost = 100 //So cargo thinks twice before killing themselves with it
+ containertype = /obj/structure/closet/crate/secure
+ containername = "supermatter shard crate"
+ access = access_ce
diff --git a/code/modules/power/tracker.dm b/code/modules/power/tracker.dm
index 20e8ab528c4..5cf341f9fbb 100644
--- a/code/modules/power/tracker.dm
+++ b/code/modules/power/tracker.dm
@@ -27,9 +27,10 @@
//set the control of the tracker to a given computer if closer than SOLAR_MAX_DIST
/obj/machinery/power/tracker/proc/set_control(var/obj/machinery/power/solar_control/SC)
- if(SC && (get_dist(src, SC) > SOLAR_MAX_DIST))
+ if(!SC || (get_dist(src, SC) > SOLAR_MAX_DIST))
return 0
control = SC
+ SC.connected_tracker = src
return 1
//set the control of the tracker to null and removes it from the previous control computer if needed
diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm
index 801d9b6e2e8..0f85597e0ec 100644
--- a/code/modules/projectiles/ammunition.dm
+++ b/code/modules/projectiles/ammunition.dm
@@ -73,21 +73,34 @@
stored_ammo.Insert(1,b)
return b
-/obj/item/ammo_box/proc/give_round(var/obj/item/ammo_casing/r)
- var/obj/item/ammo_casing/rb = r
- if (rb)
- if (stored_ammo.len < max_ammo && rb.caliber == caliber)
- stored_ammo += rb
- rb.loc = src
- return 1
+/obj/item/ammo_box/proc/give_round(var/obj/item/ammo_casing/R, var/replace_spent = 0)
+ if(!R || (R.caliber != caliber))
+ return 0
+
+ if (stored_ammo.len < max_ammo)
+ stored_ammo += R
+ R.loc = src
+ return 1
+
+ //for accessibles magazines (e.g internal ones) when full, start replacing spent ammo
+ else if(replace_spent)
+ for(var/obj/item/ammo_casing/AC in stored_ammo)
+ if(!AC.BB)//found a spent ammo
+ stored_ammo -= AC
+ AC.loc = get_turf(src.loc)
+
+ stored_ammo += R
+ R.loc = src
+ return 1
+
return 0
-/obj/item/ammo_box/attackby(var/obj/item/A as obj, mob/user as mob, var/silent = 0)
+/obj/item/ammo_box/attackby(var/obj/item/A as obj, mob/user as mob, var/silent = 0, var/replace_spent = 0)
var/num_loaded = 0
if(istype(A, /obj/item/ammo_box))
var/obj/item/ammo_box/AM = A
for(var/obj/item/ammo_casing/AC in AM.stored_ammo)
- var/did_load = give_round(AC)
+ var/did_load = give_round(AC, replace_spent)
if(did_load)
AM.stored_ammo -= AC
num_loaded++
@@ -95,17 +108,18 @@
break
if(istype(A, /obj/item/ammo_casing))
var/obj/item/ammo_casing/AC = A
- if(give_round(AC))
+ if(give_round(AC, replace_spent))
user.drop_item()
AC.loc = src
num_loaded++
+
if(num_loaded)
if(!silent)
user << "You load [num_loaded] shell\s into \the [src]!"
A.update_icon()
update_icon()
- return num_loaded
- return 0
+
+ return num_loaded
/obj/item/ammo_box/attack_self(mob/user as mob)
var/obj/item/ammo_casing/A = get_round()
diff --git a/code/modules/projectiles/ammunition/ammo_casings.dm b/code/modules/projectiles/ammunition/ammo_casings.dm
index a53b80ca1ed..4cf1351fbf1 100644
--- a/code/modules/projectiles/ammunition/ammo_casings.dm
+++ b/code/modules/projectiles/ammunition/ammo_casings.dm
@@ -96,6 +96,12 @@
icon_state = "ishell"
projectile_type = /obj/item/projectile/bullet/incendiary/shell
+/obj/item/ammo_casing/shotgun/frag12
+ name = "FRAG-12 slug"
+ desc = "A high explosive breaching round for a 12 gauge shotgun."
+ icon_state = "heshell"
+ projectile_type = /obj/item/projectile/bullet/frag12
+
/obj/item/ammo_casing/shotgun/incendiary/dragonsbreath
name = "dragonsbreath shell"
desc = "A shotgun shell which fires a spread of incendiary pellets."
@@ -157,4 +163,4 @@
desc = "A cased high explosive grenade that can only be activated once fired out of a grenade launcher."
caliber = "40mm"
icon_state = "40mmHE"
- projectile_type = /obj/item/projectile/bullet/a40mm
\ No newline at end of file
+ projectile_type = /obj/item/projectile/bullet/a40mm
diff --git a/code/modules/projectiles/ammunition/energy.dm b/code/modules/projectiles/ammunition/energy.dm
index 5004ad7e4b6..a20e00aae51 100644
--- a/code/modules/projectiles/ammunition/energy.dm
+++ b/code/modules/projectiles/ammunition/energy.dm
@@ -71,7 +71,7 @@
/obj/item/ammo_casing/energy/ion
projectile_type = /obj/item/projectile/ion
select_name = "ion"
- fire_sound = 'sound/weapons/Laser.ogg'
+ fire_sound = 'sound/weapons/IonRifle.ogg'
/obj/item/ammo_casing/energy/declone
projectile_type = /obj/item/projectile/energy/declone
@@ -114,10 +114,10 @@
projectile_type = /obj/item/projectile/kinetic
select_name = "kinetic"
e_cost = 500
- fire_sound = 'sound/weapons/Gunshot4.ogg'
+ fire_sound = 'sound/weapons/Kenetic_accel.ogg'
/obj/item/ammo_casing/energy/disabler
- projectile_type = /obj/item/projectile/energy/disabler
+ projectile_type = /obj/item/projectile/beam/disabler
select_name = "disable"
e_cost = 50
fire_sound = "sound/weapons/taser.ogg"
diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm
index 742541a7011..f9d3c7410a0 100644
--- a/code/modules/projectiles/ammunition/magazines.dm
+++ b/code/modules/projectiles/ammunition/magazines.dm
@@ -1,4 +1,9 @@
////////////////INTERNAL MAGAZINES//////////////////////
+
+//internals magazines are accessible, so replace spent ammo if full when trying to put a live one in
+/obj/item/ammo_box/magazine/internal/give_round(var/obj/item/ammo_casing/R)
+ return ..(R,1)
+
/obj/item/ammo_box/magazine/internal/cylinder
name = "revolver cylinder"
desc = "Oh god, this shouldn't be here"
@@ -126,7 +131,7 @@
caliber = ".45"
max_ammo = 20
-/obj/item/ammo_box/magazine/smgm/update_icon()
+/obj/item/ammo_box/magazine/smgm45/update_icon()
..()
icon_state = "[initial(icon_state)]-[round(ammo_count(),2)]"
diff --git a/code/modules/projectiles/firing.dm b/code/modules/projectiles/firing.dm
index 8abcea10af0..c5f2b3a0e7d 100644
--- a/code/modules/projectiles/firing.dm
+++ b/code/modules/projectiles/firing.dm
@@ -34,7 +34,7 @@
return 0
if(targloc == curloc) //Fire the projectile
user.bullet_act(BB)
- qdel(BB)
+ del(BB)
return 1
BB.loc = get_turf(user)
BB.starting = get_turf(user)
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 97e0779a17f..9ede9c8e8e1 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -1,3 +1,7 @@
+ #define SAWN_INTACT 0
+ #define SAWN_OFF 1
+ #define SAWN_SAWING -1
+
/obj/item/weapon/gun
name = "gun"
desc = "It's a gun. It's pretty terrible, though."
@@ -23,6 +27,9 @@
var/obj/item/ammo_casing/chambered = null
var/trigger_guard = 1
var/sawn_desc = null
+ var/sawn_state = SAWN_INTACT
+ var/burst_size = 1
+ var/fire_delay = 0
/obj/item/weapon/gun/proc/process_chamber()
return 0
@@ -30,12 +37,17 @@
/obj/item/weapon/gun/proc/special_check(var/mob/M) //Placeholder for any special checks, like detective's revolver.
return 1
+//check if there's enough ammo/energy/whatever to shoot one time
+//i.e if clicking would make it shoot
+/obj/item/weapon/gun/proc/can_shoot()
+ return 1
+
/obj/item/weapon/gun/proc/shoot_with_empty_chamber(mob/living/user as mob|obj)
user << "*click*"
playsound(user, 'sound/weapons/empty.ogg', 100, 1)
return
-/obj/item/weapon/gun/proc/shoot_live_shot(mob/living/user as mob|obj, var/pointblank = 0, var/mob/pbtarget = null)
+/obj/item/weapon/gun/proc/shoot_live_shot(mob/living/user as mob|obj, var/pointblank = 0, var/mob/pbtarget = null, var/message = 1)
if(recoil)
spawn()
shake_camera(user, recoil + 1, recoil)
@@ -44,6 +56,8 @@
playsound(user, fire_sound, 10, 1)
else
playsound(user, fire_sound, 50, 1)
+ if(!message)
+ return
if(pointblank)
user.visible_message("[user] fires [src] point blank at [pbtarget]!", "You fire [src] point blank at [pbtarget]!", "You hear a [istype(src, /obj/item/weapon/gun/energy) ? "laser blast" : "gunshot"]!")
else
@@ -62,47 +76,65 @@
return
//Exclude lasertag guns from the CLUMSY check.
- if(clumsy_check)
+ if(clumsy_check && can_shoot())
if(istype(user, /mob/living))
var/mob/living/M = user
if ((CLUMSY in M.mutations) && prob(40))
- M << "You shoot yourself in the foot with \the [src]!"
- afterattack(user, user)
+ user << "You shoot yourself in the foot with \the [src]!"
+ process_fire(user,user,0,params)
M.drop_item()
return
+ if(isliving(user))
+ var/mob/living/L = user
+ if(!can_trigger_gun(L))
+ return
+
+ process_fire(target,user,flag,params)
+
+/obj/item/weapon/gun/proc/can_trigger_gun(mob/living/user)
if (!user.IsAdvancedToolUser())
user << "You don't have the dexterity to do this!"
- return
+ return 0
if(trigger_guard)
- if(istype(user, /mob/living))
- var/mob/living/M = user
- if (HULK in M.mutations)
- M << "Your meaty finger is much too large for the trigger guard!"
- return
+ if (HULK in user.mutations)
+ user << "Your meaty finger is much too large for the trigger guard!"
+ return 0
if(ishuman(user))
var/mob/living/carbon/human/H = user
if(H.dna && NOGUNS in H.dna.species.specflags)
user << "Your fingers don't fit in the trigger guard!"
- return
+ return 0
+ return 1
+
+/obj/item/weapon/gun/proc/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, var/message = 1, params)
add_fingerprint(user)
- if(chambered)
- if(!chambered.fire(target, user, params, , suppressed))
- shoot_with_empty_chamber(user)
- else
- if(!special_check(user))
- return
- if(get_dist(user, target) <= 1) //Making sure whether the target is in vicinity for the pointblank shot
- shoot_live_shot(user, 1, target)
+ if(!special_check(user))
+ return
+
+ for(var/i = 1 to burst_size)
+ if(!(src in get_both_hands(user))) //for burst firing
+ break
+ if(chambered)
+ if(!chambered.fire(target, user, params, , suppressed))
+ shoot_with_empty_chamber(user)
+ break
else
- shoot_live_shot(user)
- else
- shoot_with_empty_chamber(user)
- process_chamber()
- update_icon()
+ if(!special_check(user))
+ return
+ if(get_dist(user, target) <= 1) //Making sure whether the target is in vicinity for the pointblank shot
+ shoot_live_shot(user, 1, target)
+ else
+ shoot_live_shot(user)
+ else
+ shoot_with_empty_chamber(user)
+ break
+ process_chamber()
+ update_icon()
+ sleep(fire_delay)
if(user.hand)
user.update_inv_l_hand(0)
diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm
index 08351551243..4c407cd5a20 100644
--- a/code/modules/projectiles/guns/energy.dm
+++ b/code/modules/projectiles/guns/energy.dm
@@ -35,7 +35,9 @@
/obj/item/weapon/gun/energy/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, params)
newshot() //prepare a new shot
..()
-
+/obj/item/weapon/gun/energy/can_shoot()
+ var/obj/item/ammo_casing/energy/shot = ammo_type[select]
+ return power_supply.charge >= shot.e_cost
/obj/item/weapon/gun/energy/proc/newshot()
if (!ammo_type || !power_supply)
diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm
index ebace57085b..75d5a076186 100644
--- a/code/modules/projectiles/guns/energy/laser.dm
+++ b/code/modules/projectiles/guns/energy/laser.dm
@@ -125,9 +125,11 @@ obj/item/weapon/gun/energy/laser/retro
/obj/item/weapon/gun/energy/laser/bluetag/process()
charge_tick++
- if(charge_tick < 4) return 0
+ if(charge_tick < 4)
+ return 0
charge_tick = 0
- if(!power_supply) return 0
+ if(!power_supply)
+ return 0
power_supply.give(100)
update_icon()
return 1
@@ -162,9 +164,11 @@ obj/item/weapon/gun/energy/laser/retro
/obj/item/weapon/gun/energy/laser/redtag/process()
charge_tick++
- if(charge_tick < 4) return 0
+ if(charge_tick < 4)
+ return 0
charge_tick = 0
- if(!power_supply) return 0
+ if(!power_supply)
+ return 0
power_supply.give(100)
update_icon()
return 1
diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm
index 7074c8102b1..6ca4a48924e 100644
--- a/code/modules/projectiles/guns/energy/nuclear.dm
+++ b/code/modules/projectiles/guns/energy/nuclear.dm
@@ -3,7 +3,7 @@
desc = "A basic hybrid energy gun with two settings: Stun and kill."
icon_state = "energy"
item_state = null //so the human update icon uses the icon_state instead.
- ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser)
+ ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser)
origin_tech = "combat=3;magnets=2"
modifystate = 2
@@ -12,7 +12,6 @@
select_fire(user)
update_icon()
-
/obj/item/weapon/gun/energy/gun/nuclear
name = "advanced energy gun"
desc = "An energy gun with an experimental miniaturized nuclear reactor that automatically charges the internal power cell."
@@ -21,6 +20,7 @@
var/lightfail = 0
var/charge_tick = 0
modifystate = 0
+ ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser)
/obj/item/weapon/gun/energy/gun/nuclear/New()
..()
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index f2392adfea0..4db3e4a9ffb 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -123,7 +123,7 @@
if(overheat || recent_reload)
return
power_supply.give(500)
- playsound(src.loc, 'sound/weapons/shotgunpump.ogg', 60, 1)
+ playsound(src.loc, 'sound/weapons/kenetic_reload.ogg', 60, 1)
recent_reload = 1
update_icon()
return
diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm
index 2c79a769a35..432594d9c8a 100644
--- a/code/modules/projectiles/guns/energy/stun.dm
+++ b/code/modules/projectiles/guns/energy/stun.dm
@@ -7,25 +7,37 @@
ammo_type = list(/obj/item/ammo_casing/energy/electrode)
cell_type = "/obj/item/weapon/stock_parts/cell/crap"
-/obj/item/weapon/gun/energy/taser/cyborg
- name = "taser gun"
- desc = "An integrated taser that draws directly from a cyborg's power cell. The weapon contains a limiter to prevent the cyborg's power cell from overheating."
- icon_state = "taser"
- fire_sound = 'sound/weapons/Taser.ogg'
+/obj/item/weapon/gun/energy/stunrevolver
+ name = "stun revolver"
+ desc = "A high-tech revolver that fires internal, reusable stun cartidges in a revolving cylinder."
+ icon_state = "stunrevolver"
+ origin_tech = "combat=3;materials=3;powerstorage=2"
+ ammo_type = list(/obj/item/ammo_casing/energy/electrode/gun)
+ cell_type = "/obj/item/weapon/stock_parts/cell"
+
+/obj/item/weapon/gun/energy/gun/advtaser
+ name = "advanced taser"
+ desc = "A hybrid taser designed to fire both short-range high-power electrodes and long-range disabler beams."
+ icon_state = "advtaser"
+ ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/disabler)
+
+/obj/item/weapon/gun/energy/gun/advtaser/cyborg
+ name = "advanced taser"
+ desc = "An integrated advanced taser that draws directly from a cyborg's power cell. The weapon contains a limiter to prevent the cyborg's power cell from overheating."
cell_type = "/obj/item/weapon/stock_parts/cell/secborg"
var/charge_tick = 0
- var/recharge_time = 10 //Time it takes for shots to recharge (in ticks)
+ var/recharge_time = 10
-/obj/item/weapon/gun/energy/taser/cyborg/New()
+/obj/item/weapon/gun/energy/gun/advtaser/cyborg/New()
..()
processing_objects.Add(src)
-/obj/item/weapon/gun/energy/taser/cyborg/Destroy()
+/obj/item/weapon/gun/energy/gun/advtaser/cyborg/Destroy()
processing_objects.Remove(src)
..()
-/obj/item/weapon/gun/energy/taser/cyborg/process() //Every [recharge_time] ticks, recharge a shot for the cyborg
+/obj/item/weapon/gun/energy/gun/advtaser/cyborg/process() //Every [recharge_time] ticks, recharge a shot for the cyborg
charge_tick++
if(charge_tick < recharge_time) return 0
charge_tick = 0
@@ -42,16 +54,6 @@
return 1
-/obj/item/weapon/gun/energy/stunrevolver
- name = "stun revolver"
- desc = "A high-tech revolver that fires internal, reusable stun cartidges in a revolving cylinder."
- icon_state = "stunrevolver"
- origin_tech = "combat=3;materials=3;powerstorage=2"
- ammo_type = list(/obj/item/ammo_casing/energy/electrode/gun)
- cell_type = "/obj/item/weapon/stock_parts/cell"
-
-
-
/obj/item/weapon/gun/energy/crossbow
name = "mini energy crossbow"
desc = "A weapon favored by syndicate stealth specialists."
diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm
index f9a0be82b99..c575632c498 100644
--- a/code/modules/projectiles/guns/magic.dm
+++ b/code/modules/projectiles/guns/magic.dm
@@ -29,6 +29,9 @@
no_den_usage = 0
..()
+/obj/item/weapon/gun/magic/can_shoot()
+ return charges
+
/obj/item/weapon/gun/magic/proc/newshot()
if (charges && chambered)
chambered.newshot()
diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm
index d2c6a9a29ba..b1540df35b9 100644
--- a/code/modules/projectiles/guns/projectile.dm
+++ b/code/modules/projectiles/guns/projectile.dm
@@ -40,6 +40,11 @@
chambered.loc = src
return
+/obj/item/weapon/gun/projectile/can_shoot()
+ if(!magazine || !magazine.ammo_count(0))
+ return 0
+ return 1
+
/obj/item/weapon/gun/projectile/attackby(var/obj/item/A as obj, mob/user as mob)
..()
if (istype(A, /obj/item/ammo_box/magazine))
diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm
index 6cfa117be6a..b5f2c3033c1 100644
--- a/code/modules/projectiles/guns/projectile/automatic.dm
+++ b/code/modules/projectiles/guns/projectile/automatic.dm
@@ -1,15 +1,24 @@
-/obj/item/weapon/gun/projectile/automatic //Hopefully someone will find a way to make these fire in bursts or something. --Superxpdude
+/obj/item/weapon/gun/projectile/automatic
name = "prototype SMG"
- desc = "A lightweight, prototype 9mm submachine gun, designated 'SABR'. Has a threaded barrel for suppressors."
+ desc = "A prototype three-round burst 9mm submachine gun, designated 'SABR'. Has a threaded barrel for suppressors."
icon_state = "saber"
w_class = 3
origin_tech = "combat=4;materials=2"
mag_type = /obj/item/ammo_box/magazine/smgm9mm
var/alarmed = 0
can_suppress = 1
+ burst_size = 3
+ fire_delay = 1
+ var/select = 0
+ action_button_name = "Toggle Fire Mode"
/obj/item/weapon/gun/projectile/automatic/update_icon()
..()
+ overlays.Cut()
+ if(!select)
+ overlays += "[initial(icon_state)]semi"
+ if(select == 1)
+ overlays += "[initial(icon_state)]burst"
icon_state = "[initial(icon_state)][magazine ? "-[magazine.max_ammo]" : ""][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]"
return
@@ -17,6 +26,31 @@
if(..() && chambered)
alarmed = 0
+/obj/item/weapon/gun/projectile/automatic/ui_action_click()
+ burst_select()
+
+/obj/item/weapon/gun/projectile/automatic/verb/burst_select()
+ set name = "Toggle Fire Mode"
+ set category = "Object"
+ set desc = "Click to switch fire modes."
+ var/mob/living/carbon/human/user = usr
+ if(select)
+ select = 0
+ burst_size = 1
+ fire_delay = 0
+ user << "You switch to semi-automatic."
+ else
+ select = 1
+ burst_size = initial(burst_size)
+ fire_delay = initial(fire_delay)
+ user << "You switch to [burst_size]-rnd burst."
+
+ update_icon()
+ return
+
+/obj/item/weapon/gun/projectile/automatic/can_shoot()
+ return get_ammo()
+
/obj/item/weapon/gun/projectile/automatic/proc/empty_alarm()
if(!chambered && !get_ammo() && !alarmed)
playsound(src.loc, 'sound/weapons/smg_empty_alarm.ogg', 40, 1)
@@ -26,12 +60,14 @@
/obj/item/weapon/gun/projectile/automatic/c20r
name = "syndicate SMG"
- desc = "A lightweight, bullpup .45 SMG, designated 'C-20r'. Has a 'Scarborough Arms - Per falcis, per pravitas' buttstamp."
+ desc = "A bullpup two-round burst .45 SMG, designated 'C-20r'. Has a 'Scarborough Arms - Per falcis, per pravitas' buttstamp."
icon_state = "c20r"
item_state = "c20r"
origin_tech = "combat=5;materials=2;syndicate=8"
mag_type = /obj/item/ammo_box/magazine/smgm45
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
+ fire_delay = 2
+ burst_size = 2
/obj/item/weapon/gun/projectile/automatic/c20r/New()
..()
@@ -62,6 +98,12 @@
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
var/cover_open = 0
can_suppress = 0
+ burst_size = 1
+ fire_delay = 0
+
+/obj/item/weapon/gun/projectile/automatic/l6_saw/burst_select()
+ return
+
/obj/item/weapon/gun/projectile/automatic/l6_saw/attack_self(mob/user as mob)
cover_open = !cover_open
@@ -103,43 +145,9 @@
return
..()
-/obj/item/weapon/gun/projectile/automatic/bulldog
- name = "syndicate shotgun"
- desc = "A compact, mag-fed semi-automatic shotgun for combat in narrow corridors, nicknamed 'Bulldog' by boarding parties. Compatible only with specialized 8-round drum magazines."
- icon_state = "bulldog"
- item_state = "bulldog"
- w_class = 3.0
- origin_tech = "combat=5;materials=4;syndicate=6"
- mag_type = /obj/item/ammo_box/magazine/m12g
- fire_sound = 'sound/weapons/Gunshot.ogg'
- can_suppress = 0
-
-/obj/item/weapon/gun/projectile/automatic/bulldog/New()
- ..()
- update_icon()
- return
-
-/obj/item/weapon/gun/projectile/automatic/bulldog/proc/update_magazine()
- if(magazine)
- src.overlays = 0
- overlays += "[magazine.icon_state]"
- return
-
-/obj/item/weapon/gun/projectile/automatic/bulldog/update_icon()
- src.overlays = 0
- update_magazine()
- icon_state = "bulldog[chambered ? "" : "-e"]"
- return
-
-/obj/item/weapon/gun/projectile/automatic/bulldog/afterattack()
- ..()
- empty_alarm()
- return
-
-
/obj/item/weapon/gun/projectile/automatic/c90gl
name = "syndicate assault rifle"
- desc = "A bullpup and compact 5.45x39 assault rifle with a unique toploading design, designated 'C-90gl'. Has an attached underbarrel grenade launcher which can be toggled on and off."
+ desc = "A bullpup three-round burst 5.45x39 assault rifle with a unique toploading design, designated 'C-90gl'. Has an attached underbarrel grenade launcher which can be toggled on and off."
icon_state = "c90gl"
item_state = "c90gl"
origin_tech = "combat=5;materials=2;syndicate=8"
@@ -147,8 +155,9 @@
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
action_button_name = "Toggle Grenade Launcher"
can_suppress = 0
- var/select = 1 //1 for boolets, 0 for explosions.
var/obj/item/weapon/gun/projectile/revolver/grenadelauncher/underbarrel
+ burst_size = 3
+ fire_delay = 2
/obj/item/weapon/gun/projectile/automatic/c90gl/New()
..()
@@ -157,54 +166,53 @@
return
/obj/item/weapon/gun/projectile/automatic/c90gl/afterattack(var/atom/target, var/mob/living/user, flag, params)
- if(select)
+ if(select == 2)
+ underbarrel.afterattack(target, user, flag, params)
+ else
..()
empty_alarm()
return
- else
- underbarrel.afterattack(target, user, flag, params)
-
/obj/item/weapon/gun/projectile/automatic/c90gl/attackby(var/obj/item/A, mob/user)
- if(select)
- ..()
- else
+ if(select == 2)
underbarrel.attackby(A, user)
-
-/obj/item/weapon/gun/projectile/automatic/c90gl/attack_self(var/mob/living/user)
- if(select)
- ..()
else
+ ..()
+/obj/item/weapon/gun/projectile/automatic/c90gl/attack_self(var/mob/living/user)
+ if(select == 2)
underbarrel.attack_self(user)
-
-
+ else
+ ..()
/obj/item/weapon/gun/projectile/automatic/c90gl/update_icon()
..()
overlays.Cut()
- if(select)
- overlays += "c90prim"
- else
- overlays += "c90gren"
+ if(!select)
+ overlays += "[initial(icon_state)]semi"
+ if(select == 1)
+ overlays += "[initial(icon_state)]burst"
+ if(select == 2)
+ overlays += "[initial(icon_state)]gren"
icon_state = "c90gl[magazine ? "-[Ceiling(get_ammo(0)/6)*6]" : ""][chambered ? "" : "-e"]"
return
-/obj/item/weapon/gun/projectile/automatic/c90gl/proc/underbarrel_swap()
+/obj/item/weapon/gun/projectile/automatic/c90gl/burst_select()
var/mob/living/carbon/human/user = usr
- if(select)
- select = 0
- user << "You switch to grenades."
- else
+ if(!select)
select = 1
- user << "You switch to bullets."
-
+ burst_size = initial(burst_size)
+ fire_delay = initial(fire_delay)
+ user << "You switch to [burst_size]-rnd burst."
+ if(select == 1)
+ select = 2
+ user << "You switch to grenades."
+ if(select == 2)
+ select = 0
+ burst_size = 1
+ fire_delay = 0
+ user << "You switch to semi-auto."
update_icon()
return
-/obj/item/weapon/gun/projectile/automatic/c90gl/ui_action_click()
- underbarrel_swap()
-
-
-
/obj/item/weapon/gun/projectile/automatic/tommygun
name = "tommy gun"
desc = "A genuine 'Chicago Typewriter'."
@@ -215,3 +223,4 @@
mag_type = /obj/item/ammo_box/magazine/tommygunm45
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
can_suppress = 0
+ burst_size = 4
\ No newline at end of file
diff --git a/code/modules/projectiles/guns/projectile/launchers.dm b/code/modules/projectiles/guns/projectile/launchers.dm
index 1ef80e2a3f9..31773285919 100644
--- a/code/modules/projectiles/guns/projectile/launchers.dm
+++ b/code/modules/projectiles/guns/projectile/launchers.dm
@@ -28,6 +28,8 @@
fire_sound = 'sound/effects/Explosion1.ogg'
origin_tech = "combat=3"
mag_type = /obj/item/ammo_box/magazine/m75
+ burst_size = 1
+ fire_delay = 0
/obj/item/weapon/gun/projectile/automatic/gyropistol/process_chamber(var/eject_casing = 0, var/empty_chamber = 1)
..()
diff --git a/code/modules/projectiles/guns/projectile/pistol.dm b/code/modules/projectiles/guns/projectile/pistol.dm
index 7e29cfbf8bc..4ed58eba2c9 100644
--- a/code/modules/projectiles/guns/projectile/pistol.dm
+++ b/code/modules/projectiles/guns/projectile/pistol.dm
@@ -6,42 +6,38 @@
origin_tech = "combat=2;materials=2;syndicate=2"
mag_type = /obj/item/ammo_box/magazine/m10mm
can_suppress = 1
+ burst_size = 1
+ fire_delay = 0
/obj/item/weapon/gun/projectile/automatic/pistol/update_icon()
..()
icon_state = "[initial(icon_state)][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]"
return
-/obj/item/weapon/gun/projectile/automatic/m1911
+/obj/item/weapon/gun/projectile/automatic/pistol/m1911
name = "M1911 pistol"
desc = "A classic .45 handgun with a small magazine capacity."
- icon_state = "pistol"
+ icon_state = "m1911"
w_class = 3
mag_type = /obj/item/ammo_box/magazine/m45
-/obj/item/weapon/gun/projectile/automatic/pistol45/update_icon()
- ..()
- icon_state = "[initial(icon_state)][chambered ? "" : "-e"]"
- return
-
-
-/obj/item/weapon/gun/projectile/automatic/deagle
+/obj/item/weapon/gun/projectile/automatic/pistol/deagle
name = "desert eagle"
desc = "A robust .50 AE handgun."
icon_state = "deagle"
force = 14
mag_type = /obj/item/ammo_box/magazine/m50
-/obj/item/weapon/gun/projectile/automatic/deagle/update_icon()
+/obj/item/weapon/gun/projectile/automatic/pistol/deagle/update_icon()
..()
icon_state = "[initial(icon_state)][magazine ? "" : "-e"]"
-/obj/item/weapon/gun/projectile/automatic/deagle/gold
+/obj/item/weapon/gun/projectile/automatic/pistol/deagle/gold
desc = "A gold plated desert eagle folded over a million times by superior martian gunsmiths. Uses .50 AE ammo."
icon_state = "deagleg"
item_state = "deagleg"
-/obj/item/weapon/gun/projectile/automatic/deagle/camo
+/obj/item/weapon/gun/projectile/automatic/pistol/deagle/camo
desc = "A Deagle brand Deagle for operators operating operationally. Uses .50 AE ammo."
icon_state = "deaglecamo"
item_state = "deagleg"
diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm
index 7188ce64cbc..c829cff0c4a 100644
--- a/code/modules/projectiles/guns/projectile/revolver.dm
+++ b/code/modules/projectiles/guns/projectile/revolver.dm
@@ -5,7 +5,7 @@
mag_type = /obj/item/ammo_box/magazine/internal/cylinder
/obj/item/weapon/gun/projectile/revolver/chamber_round()
- if (chambered || !magazine)
+ if ((chambered && chambered.BB)|| !magazine) //if there's a live ammo in the chamber or no magazine
return
else if (magazine.ammo_count())
chambered = magazine.get_round(1)
@@ -37,6 +37,9 @@
else
user << "[src] is empty."
+/obj/item/weapon/gun/projectile/revolver/can_shoot()
+ return get_ammo(0,0)
+
/obj/item/weapon/gun/projectile/revolver/get_ammo(var/countchambered = 0, var/countempties = 1)
var/boolets = 0 //mature var names for mature people
if (chambered && countchambered)
@@ -172,7 +175,7 @@
return
/obj/item/weapon/gun/projectile/revolver/russian/attack_self(mob/user as mob)
- if(!spun && get_ammo(0,0))
+ if(!spun && can_shoot())
user.visible_message("[user] spins the chamber of the revolver.", "You spin the revolver's chamber.")
Spin()
else
@@ -190,34 +193,35 @@
user << "[src] is empty."
/obj/item/weapon/gun/projectile/revolver/russian/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, flag, params)
- if(!spun && get_ammo(0,0))
- user.visible_message("[user] spins the chamber of the revolver.", "You spin the revolver's chamber.")
- Spin()
- ..()
- spun = 0
-
-/obj/item/weapon/gun/projectile/revolver/russian/attack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj)
- if(!spun && get_ammo(0,0))
- user.visible_message("[user] spins the chamber of the revolver.", "You spin the revolver's chamber.")
- Spin()
+ if(user.a_intent == "harm") // Flogging action
+ return
+ if(isliving(user))
+ if(!can_trigger_gun(user))
+ return
+ if(target != user)
+ user << "A mechanism prevents you from shooting anyone but yourself."
return
-
- if(target == user)
- if(!chambered)
- user.visible_message("*click*", "*click*")
+ if(ishuman(user))
+ var/mob/living/carbon/human/H = user
+ if(!spun)
+ user << "You need to spin the revolver's chamber first."
return
- if(isliving(target) && isliving(user))
- var/obj/item/organ/limb/affecting = user.zone_sel.selecting
- if(affecting == "head")
- var/obj/item/ammo_casing/AC = chambered
- if(AC.fire(user, user))
+ spun = 0
+
+ if(chambered)
+ var/obj/item/ammo_casing/AC = chambered
+ if(AC.fire(user, user))
+ playsound(user, fire_sound, 50, 1)
+ var/obj/item/organ/limb/affecting = H.get_organ(check_zone(user.zone_sel.selecting))
+ var/limb_name = affecting.getDisplayName()
+ if(affecting == "head" || affecting == "eyes" || affecting == "mouth")
user.apply_damage(300, BRUTE, affecting)
- playsound(user, fire_sound, 50, 1)
- user.visible_message("[user.name] fires [src] at \his head!", "You fire [src] at your head!", "You hear a [istype(AC.BB, /obj/item/projectile/beam) ? "laser blast" : "gunshot"]!")
- return
+ user.visible_message("[user.name] fires [src] at \his head!", "You fire [src] at your head!", "You hear a gunshot!")
else
- user.visible_message("*click*", "*click*")
- return
- ..()
+ user.visible_message("[user.name] cowardly fires [src] at \his [limb_name]!", "You cowardly fire [src] at your [limb_name]!", "You hear a gunshot!")
+ return
+
+ user.visible_message("*click*")
+ playsound(user, 'sound/weapons/empty.ogg', 100, 1)
diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm
index 1858059454a..f07dde7e94f 100644
--- a/code/modules/projectiles/guns/projectile/shotgun.dm
+++ b/code/modules/projectiles/guns/projectile/shotgun.dm
@@ -25,6 +25,11 @@
/obj/item/weapon/gun/projectile/shotgun/chamber_round()
return
+/obj/item/weapon/gun/projectile/shotgun/can_shoot()
+ if(!chambered)
+ return 0
+ return (chambered.BB ? 1 : 0)
+
/obj/item/weapon/gun/projectile/shotgun/attack_self(mob/living/user)
if(recentpump) return
pump(user)
@@ -69,8 +74,12 @@
/obj/item/weapon/gun/projectile/shotgun/riot/attackby(var/obj/item/A as obj, mob/user as mob)
..()
- if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/melee/energy) || istype(A, /obj/item/weapon/pickaxe/plasmacutter))
+ if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/pickaxe/plasmacutter))
sawoff(user)
+ if(istype(A, /obj/item/weapon/melee/energy))
+ var/obj/item/weapon/melee/energy/W = A
+ if(W.active)
+ sawoff(user)
/obj/item/weapon/gun/projectile/revolver/doublebarrel
name = "double-barreled shotgun"
@@ -89,27 +98,13 @@
..()
if(istype(A, /obj/item/ammo_box) || istype(A, /obj/item/ammo_casing))
chamber_round()
- if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/melee/energy) || istype(A, /obj/item/weapon/pickaxe/plasmacutter))
+ if(istype(A, /obj/item/weapon/melee/energy))
+ var/obj/item/weapon/melee/energy/W = A
+ if(W.active)
+ sawoff(user)
+ if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/pickaxe/plasmacutter))
sawoff(user)
-/obj/item/weapon/gun/projectile/proc/sawoff(mob/user as mob)
- user << "You begin to shorten \the [src]."
- if(get_ammo())
- afterattack(user, user)
- user.visible_message("The [src] goes off!", "The [src] goes off in your face!")
- return
- if(do_after(user, 30))
- name = "sawn-off [src.name]"
- desc = sawn_desc
- icon_state = initial(icon_state) + "-sawn"
- w_class = 3.0
- item_state = "gun"
- slot_flags &= ~SLOT_BACK //you can't sling it on your back
- slot_flags |= SLOT_BELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally)
- user << "You shorten \the [src]!"
- update_icon()
- return
-
/obj/item/weapon/gun/projectile/revolver/doublebarrel/attack_self(mob/living/user as mob)
var/num_unloaded = 0
while (get_ammo() > 0)
@@ -140,7 +135,7 @@
/obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised/attackby(var/obj/item/A as obj, mob/user as mob)
..()
- if(istype(A, /obj/item/stack/cable_coil))
+ if(istype(A, /obj/item/stack/cable_coil) && !sawn_state)
var/obj/item/stack/cable_coil/C = A
if(C.use(10))
flags = CONDUCT
@@ -150,4 +145,87 @@
update_icon()
else
user << "You need at least ten lengths of cable if you want to make a sling."
- return
\ No newline at end of file
+ return
+
+//Sawing guns related procs
+/obj/item/weapon/gun/projectile/proc/blow_up(mob/user as mob)
+ . = 0
+ for(var/obj/item/ammo_casing/AC in magazine.stored_ammo)
+ if(AC.BB)
+ process_fire(user, user)
+ . = 1
+
+/obj/item/weapon/gun/projectile/shotgun/blow_up(mob/user as mob)
+ . = 0
+ if(chambered && chambered.BB)
+ process_fire(user, user,0)
+ . = 1
+ for(var/obj/item/ammo_casing/AC in magazine.stored_ammo)
+ if(AC.BB)
+ chambered = AC
+ process_fire(user, user,0)
+ . = 1
+
+/obj/item/weapon/gun/projectile/proc/sawoff(mob/user as mob)
+ if(sawn_state == SAWN_OFF)
+ user << "\The [src] is already shorten."
+ return
+
+ if(sawn_state == SAWN_SAWING)
+ return
+
+ user.visible_message("[user] begin to shorten \the [src].", "You begin to shorten \the [src].")
+
+ //if there's any live ammo inside the gun, makes it go off
+ if(blow_up(user))
+ user.visible_message("\The [src] goes off!", "\The [src] goes off in your face!")
+ return
+
+ sawn_state = SAWN_SAWING
+
+ if(do_after(user, 30))
+ name = "sawn-off [src.name]"
+ desc = sawn_desc
+ icon_state = initial(icon_state) + "-sawn"
+ w_class = 3.0
+ item_state = "gun"
+ slot_flags &= ~SLOT_BACK //you can't sling it on your back
+ slot_flags |= SLOT_BELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally)
+ sawn_state = SAWN_OFF
+ user.visible_message("[user] shorten \the [src]!", "You shorten \the [src]!")
+ update_icon()
+ return
+ else
+ sawn_state = SAWN_INTACT
+
+
+/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog
+ name = "syndicate shotgun"
+ desc = "A compact, mag-fed burst-fire shotgun for combat in narrow corridors, nicknamed 'Bulldog' by boarding parties. Compatible only with specialized 8-round drum magazines."
+ icon_state = "bulldog"
+ item_state = "bulldog"
+ w_class = 3.0
+ origin_tech = "combat=5;materials=4;syndicate=6"
+ mag_type = /obj/item/ammo_box/magazine/m12g
+ fire_sound = 'sound/weapons/Gunshot.ogg'
+ can_suppress = 0
+ burst_size = 2
+ fire_delay = 1
+/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/New()
+ ..()
+ update_icon()
+ return
+/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/proc/update_magazine()
+ if(magazine)
+ src.overlays = 0
+ overlays += "[magazine.icon_state]"
+ return
+/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/update_icon()
+ src.overlays = 0
+ update_magazine()
+ icon_state = "bulldog[chambered ? "" : "-e"]"
+ return
+/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/afterattack()
+ ..()
+ empty_alarm()
+ return
\ No newline at end of file
diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm
index d2dc5b61e67..02798ab0189 100644
--- a/code/modules/projectiles/projectile.dm
+++ b/code/modules/projectiles/projectile.dm
@@ -35,8 +35,24 @@
var/stutter = 0
var/eyeblur = 0
var/drowsy = 0
+ var/stamina = 0
var/forcedodge = 0
+ var/range = 0
+ var/proj_hit = 0
+
+/obj/item/projectile/proc/Range()
+ if(range)
+ range--
+ if(range <= 0)
+ on_range()
+ else
+ return
+
+/obj/item/projectile/proc/on_range() //if we want there to be effects when they reach the end of their range
+ proj_hit = 1
+ qdel(src)
+
/obj/item/projectile/proc/on_hit(atom/target, blocked = 0, hit_zone)
if(!isliving(target)) return 0
if(isanimal(target)) return 0
@@ -115,6 +131,3 @@
Bump(original)
Range()
sleep(1)
-
-/obj/item/projectile/proc/Range()
- return
\ No newline at end of file
diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm
index d6bfe72329a..d9bba99275d 100644
--- a/code/modules/projectiles/projectile/beams.dm
+++ b/code/modules/projectiles/projectile/beams.dm
@@ -36,6 +36,13 @@
irradiate = 30
forcedodge = 1
+/obj/item/projectile/beam/disabler
+ name = "disabler beam"
+ icon_state = "omnilaser"
+ damage = 33
+ damage_type = STAMINA
+ eyeblur = 0
+
/obj/item/projectile/beam/pulse
name = "pulse"
icon_state = "u_laser"
diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm
index a3634a488f6..8b9d357efe8 100644
--- a/code/modules/projectiles/projectile/bullets.dm
+++ b/code/modules/projectiles/projectile/bullets.dm
@@ -9,14 +9,12 @@
/obj/item/projectile/bullet/weakbullet
damage = 5
- stun = 5
- weaken = 5
+ stamina = 33
/obj/item/projectile/bullet/weakbullet2
damage = 15
- stun = 5
- weaken = 5
+ stamina = 75 //the detective can't shoot in bursts and will get yelled at if he sinks 50 rounds into perps to stun 'em
/obj/item/projectile/bullet/weakbullet3
damage = 20
@@ -30,8 +28,7 @@
/obj/item/projectile/bullet/midbullet
damage = 20
- stun = 5
- weaken = 5
+ stamina = 50 //two round bursts from the c20r
/obj/item/projectile/bullet/midbullet2
damage = 25
@@ -46,11 +43,7 @@
/obj/item/projectile/bullet/stunshot
name = "stunshot"
damage = 5
- stun = 5
- weaken = 5
- stutter = 5
-
-/obj/item/projectile/bullet/incendiary
+ stamina = 50 //two round bursts from the bulldog
/obj/item/projectile/bullet/incendiary/on_hit(var/atom/target, var/blocked = 0)
..()
diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm
index 2f64825d1fd..13c015ab0cd 100644
--- a/code/modules/projectiles/projectile/energy.dm
+++ b/code/modules/projectiles/projectile/energy.dm
@@ -15,13 +15,24 @@
weaken = 5
stutter = 5
hitsound = "sparks"
+ range = 7
- on_hit(var/atom/target, var/blocked = 0)
+/obj/item/projectile/energy/electrode/on_hit(var/atom/target, var/blocked = 0)
+ if(!proj_hit)
if(!ismob(target) || blocked >= 2) //Fully blocked by mob or collided with dense object - burst into sparks!
var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread
sparks.set_up(1, 1, src)
sparks.start()
- ..()
+ proj_hit = 1
+ ..()
+
+/obj/item/projectile/energy/electrode/on_range() //to ensure the bolt sparks when it reaches the end of its range if it didn't hit a target yet
+ if(!proj_hit)
+ var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread
+ sparks.set_up(1, 1, src)
+ sparks.start()
+ proj_hit = 1
+ ..()
/obj/item/projectile/energy/declone
name = "radiation beam"
@@ -31,39 +42,24 @@
irradiate = 40
-/obj/item/projectile/energy/dart
+/obj/item/projectile/energy/dart //ninja throwing dart
name = "dart"
icon_state = "toxin"
damage = 5
damage_type = TOX
weaken = 5
+ range = 7
-
-/obj/item/projectile/energy/bolt
+/obj/item/projectile/energy/bolt //ebow bolts
name = "bolt"
icon_state = "cbbolt"
- damage = 10
+ damage = 15
damage_type = TOX
nodamage = 0
weaken = 5
stutter = 5
-
+ range = 10
/obj/item/projectile/energy/bolt/large
name = "largebolt"
damage = 20
-
-/obj/item/projectile/energy/disabler
- name = "disabler beam"
- icon_state = "omnilaser"
- damage = 34
- damage_type = STAMINA
- var/range = 7
-
-/obj/item/projectile/energy/disabler/Range()
- range--
- if(range <= 0)
- qdel(src)
-
-
-
diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm
index a359fb02159..65a0c7c1451 100644
--- a/code/modules/projectiles/projectile/special.dm
+++ b/code/modules/projectiles/projectile/special.dm
@@ -18,7 +18,6 @@
damage = 50
flag = "bullet"
-
/obj/item/projectile/bullet/gyro/on_hit(atom/target, blocked = 0)
explosion(target, -1, 0, 2)
return 1
@@ -29,6 +28,7 @@
icon_state= "bolter"
damage = 60
flag = "bullet"
+ range = 7
/obj/item/projectile/bullet/a40mm/on_hit(atom/target, blocked = 0)
explosion(target, -1, 0, 2, 1, 0, flame_range = 3)
@@ -105,7 +105,7 @@
damage = 15
damage_type = BRUTE
flag = "bomb"
- var/range = 3
+ range = 3
obj/item/projectile/kinetic/New()
var/turf/proj_turf = get_turf(src)
@@ -168,3 +168,14 @@ obj/item/projectile/kinetic/New()
if(!gun)
qdel(src)
gun.create_portal(src)
+
+
+/obj/item/projectile/bullet/gyro/on_hit(atom/target, blocked = 0)
+ explosion(target, -1, 0, 2)
+ return 1
+
+
+/obj/item/projectile/bullet/frag12
+ name ="explosive slug"
+ damage = 25
+ weaken = 5
diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm
index 9e4da4d8a40..a6d6d2572e2 100644
--- a/code/modules/reagents/Chemistry-Holder.dm
+++ b/code/modules/reagents/Chemistry-Holder.dm
@@ -283,7 +283,7 @@ datum/reagents/proc/handle_reactions()
if(ME2.Uses <= 0) // give the notification that the slime core is dead
for(var/mob/M in seen)
M << "\icon[my_atom] The [my_atom]'s power is consumed in the reaction."
- ME2.name = "\improper used slime extract"
+ ME2.name = "used slime extract"
ME2.desc = "This extract has been used up."
playsound(get_turf(my_atom), 'sound/effects/bubbles.ogg', 80, 1)
diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm
deleted file mode 100644
index 4a278afbdbe..00000000000
--- a/code/modules/reagents/Chemistry-Reagents.dm
+++ /dev/null
@@ -1,3477 +0,0 @@
-#define SOLID 1
-#define LIQUID 2
-#define GAS 3
-
-#define REM REAGENTS_EFFECT_MULTIPLIER
-
-//The reaction procs must ALWAYS set src = null, this detaches the proc from the object (the reagent)
-//so that it can continue working when the reagent is deleted while the proc is still active.
-
-
-datum/reagent
- var/name = "Reagent"
- var/id = "reagent"
- var/description = ""
- var/datum/reagents/holder = null
- var/reagent_state = SOLID
- var/list/data
- var/volume = 0
- var/nutriment_factor = 0
- //var/list/viruses = list()
- var/color = "#000000" // rgb: 0, 0, 0 (does not support alpha channels - yet!)
-
-datum/reagent/proc/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) //By default we have a chance to transfer some
- if(!istype(M, /mob/living)) return 0
- var/datum/reagent/self = src
- src = null //of the reagent to the mob on TOUCHING it.
-
- if(!istype(self.holder.my_atom, /obj/effect/effect/chem_smoke))
- // If the chemicals are in a smoke cloud, do not try to let the chemicals "penetrate" into the mob's system (balance station 13) -- Doohl
-
- if(method == TOUCH)
-
- var/chance = 1
- var/block = 0
-
- for(var/obj/item/clothing/C in M.get_equipped_items())
- if(C.permeability_coefficient < chance) chance = C.permeability_coefficient
- if(istype(C, /obj/item/clothing/suit/bio_suit))
- // bio suits are just about completely fool-proof - Doohl
- // kind of a hacky way of making bio suits more resistant to chemicals but w/e
- if(prob(75))
- block = 1
-
- if(istype(C, /obj/item/clothing/head/bio_hood))
- if(prob(75))
- block = 1
-
- chance = chance * 100
-
- if(prob(chance) && !block)
- if(M.reagents)
- M.reagents.add_reagent(self.id,self.volume/2)
- return 1
-
-datum/reagent/proc/reaction_obj(var/obj/O, var/volume) //By default we transfer a small part of the reagent to the object
- src = null //if it can hold reagents. nope!
- //if(O.reagents)
- // O.reagents.add_reagent(id,volume/3)
- return
-
-datum/reagent/proc/reaction_turf(var/turf/T, var/volume)
- src = null
- return
-
-datum/reagent/proc/on_mob_life(var/mob/living/M as mob)
- if(!istype(M, /mob/living))
- return //Noticed runtime errors from pacid trying to damage ghosts, this should fix. --NEO
- holder.remove_reagent(src.id, REAGENTS_METABOLISM) //By default it slowly disappears.
- return
-
-datum/reagent/proc/on_move(var/mob/M)
- return
-
-// Called after add_reagents creates a new reagent.
-datum/reagent/proc/on_new(var/data)
- return
-
-// Called when two reagents of the same are mixing.
-datum/reagent/proc/on_merge(var/data)
- return
-
-datum/reagent/proc/on_update(var/atom/A)
- return
-
-datum/reagent/blood
- data = list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null)
- name = "Blood"
- id = "blood"
- reagent_state = LIQUID
- color = "#C80000" // rgb: 200, 0, 0
-
-datum/reagent/blood/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
- var/datum/reagent/blood/self = src
- src = null
- if(self.data && self.data["viruses"])
- for(var/datum/disease/D in self.data["viruses"])
-
- if(D.spread_flags & SPECIAL || D.spread_flags & NON_CONTAGIOUS)
- continue
-
- if(method == TOUCH)
- M.ContractDisease(D)
- else //injected
- M.ForceContractDisease(D)
-
-datum/reagent/blood/on_new(var/list/data)
- if(istype(data))
- SetViruses(src, data)
-
-datum/reagent/blood/on_merge(var/list/data)
- if(src.data && data)
- src.data["cloneable"] = 0 //On mix, consider the genetic sampling unviable for pod cloning, or else we won't know who's even getting cloned, etc
- if(src.data["viruses"] || data["viruses"])
-
- var/list/mix1 = src.data["viruses"]
- var/list/mix2 = data["viruses"]
-
- // Stop issues with the list changing during mixing.
- var/list/to_mix = list()
-
- for(var/datum/disease/advance/AD in mix1)
- to_mix += AD
- for(var/datum/disease/advance/AD in mix2)
- to_mix += AD
-
- var/datum/disease/advance/AD = Advance_Mix(to_mix)
- if(AD)
- var/list/preserve = list(AD)
- for(var/D in src.data["viruses"])
- if(!istype(D, /datum/disease/advance))
- preserve += D
- src.data["viruses"] = preserve
- return 1
-
-
-datum/reagent/blood/reaction_turf(var/turf/simulated/T, var/volume)//splash the blood all over the place
- if(!istype(T)) return
- var/datum/reagent/blood/self = src
- src = null
- if(!(volume >= 3)) return
- //var/datum/disease/D = self.data["virus"]
- if(!self.data["donor"] || istype(self.data["donor"], /mob/living/carbon/human))
- var/obj/effect/decal/cleanable/blood/blood_prop = locate() in T //find some blood here
- if(!blood_prop) //first blood!
- blood_prop = new(T)
- blood_prop.blood_DNA[self.data["blood_DNA"]] = self.data["blood_type"]
-
- for(var/datum/disease/D in self.data["viruses"])
- var/datum/disease/newVirus = D.Copy(1)
- blood_prop.viruses += newVirus
- newVirus.holder = blood_prop
-
-
- else if(istype(self.data["donor"], /mob/living/carbon/monkey))
- var/obj/effect/decal/cleanable/blood/blood_prop = locate() in T
- if(!blood_prop)
- blood_prop = new(T)
- blood_prop.blood_DNA["Non-Human DNA"] = "A+"
- for(var/datum/disease/D in self.data["viruses"])
- var/datum/disease/newVirus = D.Copy(1)
- blood_prop.viruses += newVirus
- newVirus.holder = blood_prop
-
- else if(istype(self.data["donor"], /mob/living/carbon/alien))
- var/obj/effect/decal/cleanable/xenoblood/blood_prop = locate() in T
- if(!blood_prop)
- blood_prop = new(T)
- blood_prop.blood_DNA["UNKNOWN DNA STRUCTURE"] = "X*"
- for(var/datum/disease/D in self.data["viruses"])
- var/datum/disease/newVirus = D.Copy(1)
- blood_prop.viruses += newVirus
- newVirus.holder = blood_prop
- return
-
-/* Must check the transfering of reagents and their data first. They all can point to one disease datum.
-
- Del()
- if(src.data["virus"])
- var/datum/disease/D = src.data["virus"]
- D.cure(0)
- ..()
-*/
-datum/reagent/vaccine
- //data must contain virus type
- name = "Vaccine"
- id = "vaccine"
- reagent_state = LIQUID
- color = "#C81040" // rgb: 200, 16, 64
-
-datum/reagent/vaccine/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
- var/datum/reagent/vaccine/self = src
- src = null
- if(islist(self.data) && method == INGEST)
- for(var/datum/disease/D in M.viruses)
- if(D.GetDiseaseID() in self.data)
- D.cure()
- M.resistances |= self.data
- return
-
-datum/reagent/vaccine/on_merge(var/list/data)
- if(istype(data))
- src.data |= data.Copy()
-
-
-datum/reagent/water
- name = "Water"
- id = "water"
- description = "A ubiquitous chemical substance that is composed of hydrogen and oxygen."
- reagent_state = LIQUID
- color = "#AAAAAA77" // rgb: 170, 170, 170, 77 (alpha)
- var/cooling_temperature = 2
-
-datum/reagent/water/reaction_turf(var/turf/simulated/T, var/volume)
- if (!istype(T)) return
- var/CT = cooling_temperature
- src = null
- if(volume >= 10)
- T.MakeSlippery()
-
- for(var/mob/living/carbon/slime/M in T)
- M.apply_water()
-
- var/hotspot = (locate(/obj/effect/hotspot) in T)
- if(hotspot && !istype(T, /turf/space))
- if(T.air)
- var/datum/gas_mixture/G = T.air
- G.temperature = max(min(G.temperature-(CT*1000),G.temperature/CT),0)
- G.react()
- qdel(hotspot)
- return
-
-datum/reagent/water/reaction_obj(var/obj/O, var/volume)
- src = null
- if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/monkeycube))
- var/obj/item/weapon/reagent_containers/food/snacks/monkeycube/cube = O
- if(!cube.wrapped)
- cube.Expand()
- return
-
-datum/reagent/water/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)//Splashing people with water can help put them out!
- if(!istype(M, /mob/living))
- return
- if(method == TOUCH)
- M.adjust_fire_stacks(-(volume / 10))
- if(M.fire_stacks <= 0)
- M.ExtinguishMob()
- return
-
-datum/reagent/water/holywater
- name = "Holy Water"
- id = "holywater"
- description = "Water blessed by some deity."
- color = "#E0E8EF" // rgb: 224, 232, 239
-
-datum/reagent/water/holywater/on_mob_life(var/mob/living/M as mob)
- if(!data) data = 1
- data++
- M.jitteriness = max(M.jitteriness-5,0)
- if(data >= 30) // 12 units, 54 seconds @ metabolism 0.4 units & tick rate 1.8 sec
- if (!M.stuttering) M.stuttering = 1
- M.stuttering += 4
- M.Dizzy(5)
- if(iscultist(M) && prob(5))
- M.say(pick("Av'te Nar'sie","Pa'lid Mors","INO INO ORA ANA","SAT ANA!","Daim'niodeis Arc'iai Le'eones","Egkau'haom'nai en Chaous","Ho Diak'nos tou Ap'iron","R'ge Na'sie","Diabo us Vo'iscum","Si gn'um Co'nu"))
- if(data >= 75 && prob(33)) // 30 units, 135 seconds
- if (!M.confused) M.confused = 1
- M.confused += 3
- if(iscultist(M))
- ticker.mode.remove_cultist(M.mind)
- holder.remove_reagent(src.id, src.volume) // maybe this is a little too perfect and a max() cap on the statuses would be better??
- M.jitteriness = 0
- M.stuttering = 0
- M.confused = 0
- holder.remove_reagent(src.id, 0.4) //fixed consumption to prevent balancing going out of whack
- return
-
-datum/reagent/water/holywater/reaction_turf(var/turf/simulated/T, var/volume)
- ..()
- if(!istype(T)) return
- if(volume>=10)
- for(var/obj/effect/rune/R in T)
- qdel(R)
- T.Bless()
-
-datum/reagent/fuel/unholywater //if you somehow managed to extract this from someone, dont splash it on yourself and have a smoke
- name = "Unholy Water"
- id = "unholywater"
- description = "Something that shouldn't exist on this plane of existance."
-
-datum/reagent/fuel/unholywater/on_mob_life(var/mob/living/M as mob)
- M.adjustBrainLoss(3)
- if(iscultist(M))
- M.status_flags |= GOTTAGOFAST
- M.drowsyness = max(M.drowsyness-5, 0)
- M.AdjustParalysis(-2)
- M.AdjustStunned(-2)
- M.AdjustWeakened(-2)
- else
- M.adjustToxLoss(2)
- M.adjustFireLoss(2)
- M.adjustOxyLoss(2)
- M.adjustBruteLoss(2)
- holder.remove_reagent(src.id, 1)
-
-datum/reagent/hellwater //if someone has this in their system they've really pissed off an eldrich god
- name = "Hell Water"
- id = "hell_water"
- description = "YOUR FLESH! IT BURNS!"
-
-datum/reagent/hellwater/on_mob_life(var/mob/living/M as mob)
- M.fire_stacks = min(5,M.fire_stacks + 3)
- M.IgniteMob() //Only problem with igniting people is currently the commonly availible fire suits make you immune to being on fire
- M.adjustToxLoss(1)
- M.adjustFireLoss(1) //Hence the other damages... ain't I a bastard?
- M.adjustBrainLoss(5)
- holder.remove_reagent(src.id, 1)
-
-datum/reagent/lube
- name = "Space Lube"
- id = "lube"
- description = "Lubricant is a substance introduced between two moving surfaces to reduce the friction and wear between them. giggity."
- reagent_state = LIQUID
- color = "#009CA8" // rgb: 0, 156, 168
-
-datum/reagent/lube/reaction_turf(var/turf/simulated/T, var/volume)
- if (!istype(T)) return
- src = null
- if(volume >= 1)
- T.MakeSlippery(2)
-
-datum/reagent/slimetoxin
- name = "Mutation Toxin"
- id = "mutationtoxin"
- description = "A corruptive toxin produced by slimes."
- reagent_state = LIQUID
- color = "#13BC5E" // rgb: 19, 188, 94
-
-datum/reagent/aslimetoxin
- name = "Advanced Mutation Toxin"
- id = "amutationtoxin"
- description = "An advanced corruptive toxin produced by slimes."
- reagent_state = LIQUID
- color = "#13BC5E" // rgb: 19, 188, 94
-
-datum/reagent/aslimetoxin/reaction_mob(var/mob/M, var/volume)
- src = null
- M.ForceContractDisease(new /datum/disease/transformation/slime(0))
-
-datum/reagent/inaprovaline
- name = "Inaprovaline"
- id = "inaprovaline"
- description = "Inaprovaline is a synaptic stimulant and cardiostimulant. Commonly used to stabilize patients."
- reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
-
-datum/reagent/inaprovaline/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- if(M.losebreath >= 10)
- M.losebreath = max(10, M.losebreath-5)
- holder.remove_reagent(src.id, 0.5 * REAGENTS_METABOLISM)
- return
-
-datum/reagent/space_drugs
- name = "Space drugs"
- id = "space_drugs"
- description = "An illegal chemical compound used as drug."
- reagent_state = LIQUID
- color = "#60A584" // rgb: 96, 165, 132
-
-datum/reagent/space_drugs/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.druggy = max(M.druggy, 15)
- if(isturf(M.loc) && !istype(M.loc, /turf/space))
- if(M.canmove)
- if(prob(10)) step(M, pick(cardinal))
- if(prob(7)) M.emote(pick("twitch","drool","moan","giggle"))
- holder.remove_reagent(src.id, 0.5 * REAGENTS_METABOLISM)
- return
-
-datum/reagent/serotrotium
- name = "Serotrotium"
- id = "serotrotium"
- description = "A chemical compound that promotes concentrated production of the serotonin neurotransmitter in humans."
- reagent_state = LIQUID
- color = "#202040" // rgb: 20, 20, 40
-
-datum/reagent/serotrotium/on_mob_life(var/mob/living/M as mob)
- if(ishuman(M))
- if(prob(7)) M.emote(pick("twitch","drool","moan","gasp"))
- holder.remove_reagent(src.id, 0.25 * REAGENTS_METABOLISM)
- return
-
-/* silicate
- name = "Silicate"
- id = "silicate"
- description = "A compound that can be used to reinforce glass."
- reagent_state = LIQUID
- color = "#C7FFFF" // rgb: 199, 255, 255
-
- reaction_obj(var/obj/O, var/volume)
- src = null
- if(istype(O,/obj/structure/window))
- if(O:silicate <= 200)
-
- O:silicate += volume
- O:health += volume * 3
-
- if(!O:silicateIcon)
- var/icon/I = icon(O.icon,O.icon_state,O.dir)
-
- var/r = (volume / 100) + 1
- var/g = (volume / 70) + 1
- var/b = (volume / 50) + 1
- I.SetIntensity(r,g,b)
- O.icon = I
- O:silicateIcon = I
- else
- var/icon/I = O:silicateIcon
-
- var/r = (volume / 100) + 1
- var/g = (volume / 70) + 1
- var/b = (volume / 50) + 1
- I.SetIntensity(r,g,b)
- O.icon = I
- O:silicateIcon = I
-
- return*/
-
-datum/reagent/oxygen
- name = "Oxygen"
- id = "oxygen"
- description = "A colorless, odorless gas."
- reagent_state = GAS
- color = "#808080" // rgb: 128, 128, 128
-
-datum/reagent/copper
- name = "Copper"
- id = "copper"
- description = "A highly ductile metal."
- color = "#6E3B08" // rgb: 110, 59, 8
-
-datum/reagent/nitrogen
- name = "Nitrogen"
- id = "nitrogen"
- description = "A colorless, odorless, tasteless gas."
- reagent_state = GAS
- color = "#808080" // rgb: 128, 128, 128
-
-datum/reagent/hydrogen
- name = "Hydrogen"
- id = "hydrogen"
- description = "A colorless, odorless, nonmetallic, tasteless, highly combustible diatomic gas."
- reagent_state = GAS
- color = "#808080" // rgb: 128, 128, 128
-
-datum/reagent/potassium
- name = "Potassium"
- id = "potassium"
- description = "A soft, low-melting solid that can easily be cut with a knife. Reacts violently with water."
- reagent_state = SOLID
- color = "#A0A0A0" // rgb: 160, 160, 160
-
-datum/reagent/mercury
- name = "Mercury"
- id = "mercury"
- description = "A chemical element."
- reagent_state = LIQUID
- color = "#484848" // rgb: 72, 72, 72
-
-datum/reagent/mercury/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- if(M.canmove && istype(M.loc, /turf/space))
- step(M, pick(cardinal))
- if(prob(5)) M.emote(pick("twitch","drool","moan"))
- M.adjustBrainLoss(2)
- ..()
- return
-
-datum/reagent/sulfur
- name = "Sulfur"
- id = "sulfur"
- description = "A chemical element."
- reagent_state = SOLID
- color = "#BF8C00" // rgb: 191, 140, 0
-
-datum/reagent/carbon
- name = "Carbon"
- id = "carbon"
- description = "A chemical element."
- reagent_state = SOLID
- color = "#1C1300" // rgb: 30, 20, 0
-
-datum/reagent/carbon/reaction_turf(var/turf/T, var/volume)
- src = null
- if(!istype(T, /turf/space))
- new /obj/effect/decal/cleanable/dirt(T)
-
-datum/reagent/chlorine
- name = "Chlorine"
- id = "chlorine"
- description = "A chemical element."
- reagent_state = GAS
- color = "#808080" // rgb: 128, 128, 128
-
-datum/reagent/chlorine/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.take_organ_damage(1*REM, 0)
- ..()
- return
-
-datum/reagent/fluorine
- name = "Fluorine"
- id = "fluorine"
- description = "A highly-reactive chemical element."
- reagent_state = GAS
- color = "#808080" // rgb: 128, 128, 128
-
-datum/reagent/fluorine/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.adjustToxLoss(1*REM)
- ..()
- return
-
-datum/reagent/sodium
- name = "Sodium"
- id = "sodium"
- description = "A chemical element."
- reagent_state = SOLID
- color = "#808080" // rgb: 128, 128, 128
-
-datum/reagent/phosphorus
- name = "Phosphorus"
- id = "phosphorus"
- description = "A chemical element."
- reagent_state = SOLID
- color = "#832828" // rgb: 131, 40, 40
-
-datum/reagent/lithium
- name = "Lithium"
- id = "lithium"
- description = "A chemical element."
- reagent_state = SOLID
- color = "#808080" // rgb: 128, 128, 128
-
-datum/reagent/lithium/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- if(M.canmove && istype(M.loc, /turf/space))
- step(M, pick(cardinal))
- if(prob(5)) M.emote(pick("twitch","drool","moan"))
- ..()
- return
-
-datum/reagent/sugar
- name = "Sugar"
- id = "sugar"
- description = "The organic compound commonly known as table sugar and sometimes called saccharose. This white, odorless, crystalline powder has a pleasing, sweet taste."
- reagent_state = SOLID
- color = "#FFFFFF" // rgb: 255, 255, 255
-
-datum/reagent/sugar/on_mob_life(var/mob/living/M as mob)
- M.nutrition += 1*REM
- ..()
- return
-
-datum/reagent/glycerol
- name = "Glycerol"
- id = "glycerol"
- description = "Glycerol is a simple polyol compound. Glycerol is sweet-tasting and of low toxicity."
- reagent_state = LIQUID
- color = "#808080" // rgb: 128, 128, 128
-
-datum/reagent/nitroglycerin
- name = "Nitroglycerin"
- id = "nitroglycerin"
- description = "Nitroglycerin is a heavy, colorless, oily, explosive liquid obtained by nitrating glycerol."
- reagent_state = LIQUID
- color = "#808080" // rgb: 128, 128, 128
-
-datum/reagent/radium
- name = "Radium"
- id = "radium"
- description = "Radium is an alkaline earth metal. It is extremely radioactive."
- reagent_state = SOLID
- color = "#C7C7C7" // rgb: 199,199,199
-
-datum/reagent/radium/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.apply_effect(2*REM,IRRADIATE,0)
- ..()
- return
-
-datum/reagent/radium/reaction_turf(var/turf/T, var/volume)
- src = null
- if(volume >= 3)
- if(!istype(T, /turf/space))
- new /obj/effect/decal/cleanable/greenglow(T)
- return
-
-
-datum/reagent/ryetalyn
- name = "Ryetalyn"
- id = "ryetalyn"
- description = "Ryetalyn can cure all genetic abnomalities."
- reagent_state = SOLID
- color = "#C8A5DC" // rgb: 200, 165, 220
-
-datum/reagent/ryetalyn/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
-
- var/needs_update = M.mutations.len > 0
-
- M.mutations = list()
- M.disabilities = 0
- M.sdisabilities = 0
- M.jitteriness = 0
-
- // Might need to update appearance for hulk etc.
- if(needs_update && ishuman(M))
- var/mob/living/carbon/human/H = M
- H.update_mutations()
-
- ..()
- return
-
-datum/reagent/thermite
- name = "Thermite"
- id = "thermite"
- description = "Thermite produces an aluminothermic reaction known as a thermite reaction. Can be used to melt walls."
- reagent_state = SOLID
- color = "#673910" // rgb: 103, 57, 16
-
-datum/reagent/thermite/reaction_turf(var/turf/T, var/volume)
- src = null
- if(volume >= 1 && istype(T, /turf/simulated/wall))
- var/turf/simulated/wall/Wall = T
- if(istype(Wall, /turf/simulated/wall/r_wall))
- Wall.thermite = Wall.thermite+(volume*2.5)
- else
- Wall.thermite = Wall.thermite+(volume*10)
- Wall.overlays = list()
- Wall.overlays += image('icons/effects/effects.dmi',"thermite")
- return
-
-datum/reagent/thermite/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.adjustFireLoss(1)
- ..()
- return
-
-datum/reagent/virus_food
- name = "Virus Food"
- id = "virusfood"
- description = "A mixture of water and milk. Virus cells can use this mixture to reproduce."
- reagent_state = LIQUID
- nutriment_factor = 2 * REAGENTS_METABOLISM
- color = "#899613" // rgb: 137, 150, 19
-
-datum/reagent/virus_food/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.nutrition += nutriment_factor*REM
- ..()
- return
-
-datum/reagent/sterilizine
- name = "Sterilizine"
- id = "sterilizine"
- description = "Sterilizes wounds in preparation for surgery."
- reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
-/*datum/reagent/sterilizine/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
- src = null
- if (method==TOUCH)
- if(istype(M, /mob/living/carbon/human))
- if(M.health >= -100 && M.health <= 0)
- M.crit_op_stage = 0.0
- if (method==INGEST)
- usr << "Well, that was stupid."
- M.adjustToxLoss(3)
- return
-
-datum/reagent/sterilizine/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.radiation += 3
- ..()
- return
- */
-datum/reagent/iron
- name = "Iron"
- id = "iron"
- description = "Pure iron is a metal."
- reagent_state = SOLID
- color = "#C8A5DC" // rgb: 200, 165, 220
-
-datum/reagent/gold
- name = "Gold"
- id = "gold"
- description = "Gold is a dense, soft, shiny metal and the most malleable and ductile metal known."
- reagent_state = SOLID
- color = "#F7C430" // rgb: 247, 196, 48
-
-datum/reagent/silver
- name = "Silver"
- id = "silver"
- description = "A soft, white, lustrous transition metal, it has the highest electrical conductivity of any element and the highest thermal conductivity of any metal."
- reagent_state = SOLID
- color = "#D0D0D0" // rgb: 208, 208, 208
-
-datum/reagent/uranium
- name ="Uranium"
- id = "uranium"
- description = "A silvery-white metallic chemical element in the actinide series, weakly radioactive."
- reagent_state = SOLID
- color = "#B8B8C0" // rgb: 184, 184, 192
-
-datum/reagent/uranium/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.apply_effect(1,IRRADIATE,0)
- ..()
- return
-
-
-datum/reagent/uranium/reaction_turf(var/turf/T, var/volume)
- src = null
- if(volume >= 3)
- if(!istype(T, /turf/space))
- new /obj/effect/decal/cleanable/greenglow(T)
-
-datum/reagent/aluminium
- name = "Aluminium"
- id = "aluminium"
- description = "A silvery white and ductile member of the boron group of chemical elements."
- reagent_state = SOLID
- color = "#A8A8A8" // rgb: 168, 168, 168
-
-datum/reagent/silicon
- name = "Silicon"
- id = "silicon"
- description = "A tetravalent metalloid, silicon is less reactive than its chemical analog carbon."
- reagent_state = SOLID
- color = "#A8A8A8" // rgb: 168, 168, 168
-
-datum/reagent/fuel
- name = "Welding fuel"
- id = "fuel"
- description = "Required for welders. Flamable."
- reagent_state = LIQUID
- color = "#660000" // rgb: 102, 0, 0
-
-datum/reagent/fuel/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)//Splashing people with welding fuel to make them easy to ignite!
- if(!istype(M, /mob/living))
- return
- if(method == TOUCH)
- M.adjust_fire_stacks(volume / 10)
- return
-
-//Commenting this out as it's horribly broken. It's a neat effect though, so it might be worth making a new reagent (that is less common) with similar effects. -Pete
-/*
-datum/reagent/fuel/reaction_obj(var/obj/O, var/volume)
- src = null
- var/turf/the_turf = get_turf(O)
- if(!the_turf)
- return //No sense trying to start a fire if you don't have a turf to set on fire. --NEO
- var/datum/gas_mixture/napalm = new
- var/datum/gas/volatile_fuel/fuel = new
- fuel.moles = 15
- napalm.trace_gases += fuel
- the_turf.assume_air(napalm)
-
-datum/reagent/fuel/reaction_turf(var/turf/T, var/volume)
- src = null
- var/datum/gas_mixture/napalm = new
- var/datum/gas/volatile_fuel/fuel = new
- fuel.moles = 15
- napalm.trace_gases += fuel
- T.assume_air(napalm)
- return*/
-
-datum/reagent/fuel/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.adjustToxLoss(1)
- ..()
- return
-
-datum/reagent/space_cleaner
- name = "Space cleaner"
- id = "cleaner"
- description = "A compound used to clean things. Now with 50% more sodium hypochlorite!"
- reagent_state = LIQUID
- color = "#A5F0EE" // rgb: 165, 240, 238
-
-datum/reagent/space_cleaner/reaction_obj(var/obj/O, var/volume)
- if(istype(O,/obj/effect/decal/cleanable))
- qdel(O)
- else
- if(O)
- O.clean_blood()
-
-datum/reagent/space_cleaner/reaction_turf(var/turf/T, var/volume)
- if(volume >= 1)
- T.clean_blood()
- for(var/obj/effect/decal/cleanable/C in T)
- qdel(C)
-
- for(var/mob/living/carbon/slime/M in T)
- M.adjustToxLoss(rand(5,10))
-
-datum/reagent/space_cleaner/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
- if(iscarbon(M))
- var/mob/living/carbon/C = M
- if(C.r_hand)
- C.r_hand.clean_blood()
- if(C.l_hand)
- C.l_hand.clean_blood()
- if(C.wear_mask)
- if(C.wear_mask.clean_blood())
- C.update_inv_wear_mask(0)
- if(ishuman(M))
- var/mob/living/carbon/human/H = C
- if(H.head)
- if(H.head.clean_blood())
- H.update_inv_head(0)
- if(H.wear_suit)
- if(H.wear_suit.clean_blood())
- H.update_inv_wear_suit(0)
- else if(H.w_uniform)
- if(H.w_uniform.clean_blood())
- H.update_inv_w_uniform(0)
- if(H.shoes)
- if(H.shoes.clean_blood())
- H.update_inv_shoes(0)
- M.clean_blood()
-
-datum/reagent/leporazine
- name = "Leporazine"
- id = "leporazine"
- description = "Leporazine can be use to stabilize an individuals body temperature."
- reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
-
-datum/reagent/leporazine/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- if(M.bodytemperature > 310)
- M.bodytemperature = max(310, M.bodytemperature - (40 * TEMPERATURE_DAMAGE_COEFFICIENT))
- else if(M.bodytemperature < 311)
- M.bodytemperature = min(310, M.bodytemperature + (40 * TEMPERATURE_DAMAGE_COEFFICIENT))
- ..()
- return
-
-datum/reagent/cryptobiolin
- name = "Cryptobiolin"
- id = "cryptobiolin"
- description = "Cryptobiolin causes confusion and dizzyness."
- reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
-
-datum/reagent/cryptobiolin/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.Dizzy(1)
- if(!M.confused) M.confused = 1
- M.confused = max(M.confused, 20)
- holder.remove_reagent(src.id, 0.5 * REAGENTS_METABOLISM)
- ..()
- return
-
-datum/reagent/kelotane
- name = "Kelotane"
- id = "kelotane"
- description = "Kelotane is a drug used to treat burns."
- reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
-
-datum/reagent/kelotane/on_mob_life(var/mob/living/M as mob)
- if(M.stat == 2.0)
- return
- if(!M) M = holder.my_atom
- M.heal_organ_damage(0,2*REM)
- ..()
- return
-
-datum/reagent/dermaline
- name = "Dermaline"
- id = "dermaline"
- description = "Dermaline is the next step in burn medication. Works twice as good as kelotane and enables the body to restore even the direst heat-damaged tissue."
- reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
-
-datum/reagent/dermaline/on_mob_life(var/mob/living/M as mob)
- if(M.stat == 2.0) //THE GUY IS **DEAD**! BEREFT OF ALL LIFE HE RESTS IN PEACE etc etc. He does NOT metabolise shit anymore, god DAMN
- return
- if(!M) M = holder.my_atom
- M.heal_organ_damage(0,3*REM)
- ..()
- return
-
-datum/reagent/dexalin
- name = "Dexalin"
- id = "dexalin"
- description = "Dexalin is used in the treatment of oxygen deprivation."
- reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
-
-datum/reagent/dexalin/on_mob_life(var/mob/living/M as mob)
- if(M.stat == 2.0)
- return //See above, down and around. --Agouri
- if(!M) M = holder.my_atom
- M.adjustOxyLoss(-2*REM)
- if(holder.has_reagent("lexorin"))
- holder.remove_reagent("lexorin", 2*REM)
- ..()
- return
-
-datum/reagent/dexalinp
- name = "Dexalin Plus"
- id = "dexalinp"
- description = "Dexalin Plus is used in the treatment of oxygen deprivation. Its highly effective."
- reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
-
-datum/reagent/dexalinp/on_mob_life(var/mob/living/M as mob)
- if(M.stat == 2.0)
- return
- if(!M) M = holder.my_atom
- M.adjustOxyLoss(-M.getOxyLoss())
- if(holder.has_reagent("lexorin"))
- holder.remove_reagent("lexorin", 2*REM)
- ..()
- return
-
-datum/reagent/tricordrazine
- name = "Tricordrazine"
- id = "tricordrazine"
- description = "Tricordrazine is a highly potent stimulant, originally derived from cordrazine. Can be used to treat a wide range of injuries."
- reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
-
-datum/reagent/tricordrazine/on_mob_life(var/mob/living/M as mob)
- if(M.stat == 2.0)
- return
- if(!M) M = holder.my_atom
- if(M.getOxyLoss() && prob(80)) M.adjustOxyLoss(-1*REM)
- if(M.getBruteLoss() && prob(80)) M.heal_organ_damage(1*REM,0)
- if(M.getFireLoss() && prob(80)) M.heal_organ_damage(0,1*REM)
- if(M.getToxLoss() && prob(80)) M.adjustToxLoss(-1*REM)
- ..()
- return
-
-datum/reagent/anti_toxin
- name = "Anti-Toxin (Dylovene)"
- id = "anti_toxin"
- description = "Dylovene is a broad-spectrum antitoxin."
- reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
-
-datum/reagent/anti_toxin/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.reagents.remove_all_type(/datum/reagent/toxin, 1*REM, 0, 1)
- M.drowsyness = max(M.drowsyness-2*REM, 0)
- M.hallucination = max(0, M.hallucination - 5*REM)
- M.adjustToxLoss(-2*REM)
- ..()
- return
-
-datum/reagent/adminordrazine //An OP chemical for admins
- name = "Adminordrazine"
- id = "adminordrazine"
- description = "It's magic. We don't have to explain it."
- reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
-
-datum/reagent/adminordrazine/on_mob_life(var/mob/living/carbon/M as mob)
- if(!M) M = holder.my_atom ///This can even heal dead people.
- M.reagents.remove_all_type(/datum/reagent/toxin, 5*REM, 0, 1)
- M.setCloneLoss(0)
- M.setOxyLoss(0)
- M.radiation = 0
- M.heal_organ_damage(5,5)
- M.adjustToxLoss(-5)
- M.hallucination = 0
- M.setBrainLoss(0)
- M.disabilities = 0
- M.sdisabilities = 0
- M.eye_blurry = 0
- M.eye_blind = 0
- M.SetWeakened(0)
- M.SetStunned(0)
- M.SetParalysis(0)
- M.silent = 0
- M.dizziness = 0
- M.drowsyness = 0
- M.stuttering = 0
- M.confused = 0
- M.sleeping = 0
- M.jitteriness = 0
- for(var/datum/disease/D in M.viruses)
- if(D.severity == NONTHREAT)
- continue
- D.spread_text = "Remissive"
- D.stage--
- if(D.stage < 1)
- D.cure()
- ..()
- return
-
-datum/reagent/synaptizine
- name = "Synaptizine"
- id = "synaptizine"
- description = "Synaptizine is used to treat various diseases."
- reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
-
-datum/reagent/synaptizine/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.drowsyness = max(M.drowsyness-5, 0)
- M.AdjustParalysis(-1)
- M.AdjustStunned(-1)
- M.AdjustWeakened(-1)
- if(holder.has_reagent("mindbreaker"))
- holder.remove_reagent("mindbreaker", 5)
- M.hallucination = max(0, M.hallucination - 10)
- if(prob(60)) M.adjustToxLoss(1)
- ..()
- return
-
-datum/reagent/impedrezene
- name = "Impedrezene"
- id = "impedrezene"
- description = "Impedrezene is a narcotic that impedes one's ability by slowing down the higher brain cell functions."
- reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
-
-datum/reagent/impedrezene/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.jitteriness = max(M.jitteriness-5,0)
- if(prob(80)) M.adjustBrainLoss(1*REM)
- if(prob(50)) M.drowsyness = max(M.drowsyness, 3)
- if(prob(10)) M.emote("drool")
- ..()
- return
-
-datum/reagent/hyronalin
- name = "Hyronalin"
- id = "hyronalin"
- description = "Hyronalin is a medicinal drug used to counter the effect of radiation poisoning."
- reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
-
-datum/reagent/hyronalin/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.radiation = max(M.radiation-3*REM,0)
- ..()
- return
-
-datum/reagent/arithrazine
- name = "Arithrazine"
- id = "arithrazine"
- description = "Arithrazine is an unstable medication used for the most extreme cases of radiation poisoning."
- reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
-
-datum/reagent/arithrazine/on_mob_life(var/mob/living/M as mob)
- if(M.stat == 2.0)
- return //See above, down and around. --Agouri
- if(!M) M = holder.my_atom
- M.radiation = max(M.radiation-7*REM,0)
- M.adjustToxLoss(-1*REM)
- if(prob(15))
- M.take_organ_damage(1, 0)
- ..()
- return
-
-datum/reagent/alkysine
- name = "Alkysine"
- id = "alkysine"
- description = "Alkysine is a drug used to lessen the damage to neurological tissue after a catastrophic injury. Can heal brain tissue."
- reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
-
-datum/reagent/alkysine/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.adjustBrainLoss(-3*REM)
- ..()
- return
-
-datum/reagent/imidazoline
- name = "Imidazoline"
- id = "imidazoline"
- description = "Heals eye damage."
- reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
-
-datum/reagent/imidazoline/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.eye_blurry = max(M.eye_blurry-5 , 0)
- M.eye_blind = max(M.eye_blind-5 , 0)
- M.disabilities &= ~NEARSIGHTED
- M.eye_stat = max(M.eye_stat-5, 0)
-// M.sdisabilities &= ~1 Replaced by eye surgery
- ..()
- return
-
-datum/reagent/inacusiate
- name = "Inacusiate"
- id = "inacusiate"
- description = "Heals ear damage."
- reagent_state = LIQUID
- color = "#6600FF" // rgb: 100, 165, 255
-
-datum/reagent/inacusiate/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.ear_damage = 0
- M.ear_deaf = 0
- ..()
- return
-
-datum/reagent/bicaridine
- name = "Bicaridine"
- id = "bicaridine"
- description = "Bicaridine is an analgesic medication and can be used to treat blunt trauma."
- reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
-
-datum/reagent/bicaridine/on_mob_life(var/mob/living/M as mob)
- if(M.stat == 2.0)
- return
- if(!M) M = holder.my_atom
- M.heal_organ_damage(2*REM,0)
- ..()
- return
-
-datum/reagent/hyperzine
- name = "Hyperzine"
- id = "hyperzine"
- description = "Hyperzine is a highly effective, long lasting, muscle stimulant."
- reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
-
-datum/reagent/hyperzine/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- if(prob(5)) M.emote(pick("twitch","blink_r","shiver"))
- M.status_flags |= GOTTAGOFAST
- holder.remove_reagent(src.id, 0.5 * REAGENTS_METABOLISM)
- //..() //this was causing hyperzine to be consumed twice...
- return
-
-datum/reagent/cryoxadone
- name = "Cryoxadone"
- id = "cryoxadone"
- description = "A chemical mixture with almost magical healing powers. Its main limitation is that the targets body temperature must be under 170K for it to metabolise correctly."
- reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
-
-datum/reagent/cryoxadone/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- if(M.bodytemperature < 170)
- M.adjustCloneLoss(-1)
- M.adjustOxyLoss(-3)
- M.heal_organ_damage(3,3)
- M.adjustToxLoss(-3)
- ..()
- return
-
-datum/reagent/clonexadone
- name = "Clonexadone"
- id = "clonexadone"
- description = "A liquid compound similar to that used in the cloning process. Can be used to 'finish' clones that get ejected early when used in conjunction with a cryo tube."
- reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
-
-datum/reagent/clonexadone/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- if(M.bodytemperature < 170)
- M.adjustCloneLoss(-3)
- M.adjustOxyLoss(-3)
- M.heal_organ_damage(3,3)
- M.adjustToxLoss(-3)
- M.status_flags &= ~DISFIGURED
- ..()
- return
-
-datum/reagent/rezadone
- name = "Rezadone"
- id = "rezadone"
- description = "A powder derived from fish toxin, this substance can effectively treat cellular damage in humanoids, though excessive consumption has side effects."
- reagent_state = SOLID
- color = "#669900" // rgb: 102, 153, 0
-
-datum/reagent/rezadone/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- if(!data) data = 1
- data++
- switch(data)
- if(1 to 15)
- M.adjustCloneLoss(-1)
- M.heal_organ_damage(1,1)
- if(15 to 35)
- M.adjustCloneLoss(-2)
- M.heal_organ_damage(2,1)
- M.status_flags &= ~DISFIGURED
- if(35 to INFINITY)
- M.adjustToxLoss(1)
- M.Dizzy(5)
- M.Jitter(5)
-
- ..()
- return
-
-datum/reagent/spaceacillin
- name = "Spaceacillin"
- id = "spaceacillin"
- description = "An all-purpose antiviral agent."
- reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
-
-datum/reagent/spaceacillin/on_mob_life(var/mob/living/M as mob)//no more mr. panacea
- holder.remove_reagent(src.id, 0.2)
- ..()
- return
-
-datum/reagent/nanites
- name = "Nanomachines"
- id = "nanites"
- description = "Microscopic construction robots."
- reagent_state = LIQUID
- color = "#535E66" // rgb: 83, 94, 102
-
-datum/reagent/nanites/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
- src = null
- if( (prob(10) && method==TOUCH) || method==INGEST)
- M.ForceContractDisease(new /datum/disease/transformation/robot(0))
-
-datum/reagent/xenomicrobes
- name = "Xenomicrobes"
- id = "xenomicrobes"
- description = "Microbes with an entirely alien cellular structure."
- reagent_state = LIQUID
- color = "#535E66" // rgb: 83, 94, 102
-
-datum/reagent/xenomicrobes/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
- src = null
- if( (prob(10) && method==TOUCH) || method==INGEST)
- M.ContractDisease(new /datum/disease/transformation/xeno(0))
-
-datum/reagent/fluorosurfactant//foam precursor
- name = "Fluorosurfactant"
- id = "fluorosurfactant"
- description = "A perfluoronated sulfonic acid that forms a foam when mixed with water."
- reagent_state = LIQUID
- color = "#9E6B38" // rgb: 158, 107, 56
-
-datum/reagent/foaming_agent// Metal foaming agent. This is lithium hydride. Add other recipes (e.g. LiH + H2O -> LiOH + H2) eventually.
- name = "Foaming agent"
- id = "foaming_agent"
- description = "A agent that yields metallic foam when mixed with light metal and a strong acid."
- reagent_state = SOLID
- color = "#664B63" // rgb: 102, 75, 99
-
-datum/reagent/ammonia
- name = "Ammonia"
- id = "ammonia"
- description = "A caustic substance commonly used in fertilizer or household cleaners."
- reagent_state = GAS
- color = "#404030" // rgb: 64, 64, 48
-
-datum/reagent/diethylamine
- name = "Diethylamine"
- id = "diethylamine"
- description = "A secondary amine, mildly corrosive."
- reagent_state = LIQUID
- color = "#604030" // rgb: 96, 64, 48
-
-datum/reagent/ethylredoxrazine // FUCK YOU, ALCOHOL
- name = "Ethylredoxrazine"
- id = "ethylredoxrazine"
- description = "A powerful oxidizer that reacts with ethanol."
- reagent_state = SOLID
- color = "#605048" // rgb: 96, 80, 72
-
-datum/reagent/ethylredoxrazine/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.dizziness = 0
- M.drowsyness = 0
- M.stuttering = 0
- M.confused = 0
- M.reagents.remove_all_type(/datum/reagent/ethanol, 1*REM, 0, 1)
- ..()
- return
-
-//////////////////////////Poison stuff///////////////////////
-
-datum/reagent/toxin
- name = "Toxin"
- id = "toxin"
- description = "A toxic chemical."
- reagent_state = LIQUID
- color = "#CF3600" // rgb: 207, 54, 0
- var/toxpwr = 1.5
-
-datum/reagent/toxin/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- if(toxpwr)
- M.adjustToxLoss(toxpwr*REM)
- ..()
- return
-
-datum/reagent/toxin/amatoxin
- name = "Amatoxin"
- id = "amatoxin"
- description = "A powerful poison derived from certain species of mushroom."
- reagent_state = LIQUID
- color = "#792300" // rgb: 121, 35, 0
- toxpwr = 1
-
-datum/reagent/toxin/mutagen
- name = "Unstable mutagen"
- id = "mutagen"
- description = "Might cause unpredictable mutations. Keep away from children."
- reagent_state = LIQUID
- color = "#13BC5E" // rgb: 19, 188, 94
- toxpwr = 0
-
-datum/reagent/toxin/mutagen/reaction_mob(var/mob/living/carbon/M, var/method=TOUCH, var/volume)
- if(!..()) return
- if(!istype(M) || !M.dna) return //No robots, AIs, aliens, Ians or other mobs should be affected by this.
- src = null
- if((method==TOUCH && prob(33)) || method==INGEST)
- randmuti(M)
- if(prob(98))
- randmutb(M)
- else
- randmutg(M)
- domutcheck(M, null)
- updateappearance(M)
- return
-
-datum/reagent/toxin/mutagen/on_mob_life(var/mob/living/carbon/M)
- if(!istype(M)) return
- if(!M) M = holder.my_atom
- M.apply_effect(5,IRRADIATE,0)
- ..()
- return
-
-datum/reagent/toxin/plasma
- name = "Plasma"
- id = "plasma"
- description = "Plasma in its liquid form."
- reagent_state = LIQUID
- color = "#DB2D08" // rgb: 219, 45, 8
- toxpwr = 3
-
-datum/reagent/toxin/plasma/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- if(holder.has_reagent("inaprovaline"))
- holder.remove_reagent("inaprovaline", 2*REM)
- ..()
- return
-
-datum/reagent/toxin/plasma/reaction_obj(var/obj/O, var/volume)
- src = null
- /*if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/egg/slime))
- var/obj/item/weapon/reagent_containers/food/snacks/egg/slime/egg = O
- if (egg.grown)
- egg.Hatch()*/
- if((!O) || (!volume)) return 0
- O.atmos_spawn_air(SPAWN_TOXINS|SPAWN_20C, volume)
-
-datum/reagent/toxin/plasma/reaction_turf(var/turf/simulated/T, var/volume)
- src = null
- if(istype(T))
- T.atmos_spawn_air(SPAWN_TOXINS|SPAWN_20C, volume)
- return
-
-datum/reagent/toxin/plasma/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)//Splashing people with plasma is stronger than fuel!
- if(!istype(M, /mob/living))
- return
- if(method == TOUCH)
- M.adjust_fire_stacks(volume / 5)
- return
-
-datum/reagent/toxin/lexorin
- name = "Lexorin"
- id = "lexorin"
- description = "Lexorin temporarily stops respiration. Causes tissue damage."
- reagent_state = LIQUID
- color = "#C8A5DC" // rgb: 200, 165, 220
- toxpwr = 0
-
-datum/reagent/toxin/lexorin/on_mob_life(var/mob/living/M as mob)
- if(M.stat == 2.0)
- return
- if(!M) M = holder.my_atom
- if(prob(33))
- M.take_organ_damage(1*REM, 0)
- M.adjustOxyLoss(3)
- if(prob(20)) M.emote("gasp")
- ..()
- return
-
-datum/reagent/toxin/slimejelly
- name = "Slime Jelly"
- id = "slimejelly"
- description = "A gooey semi-liquid produced from one of the deadliest lifeforms in existence. SO REAL."
- reagent_state = LIQUID
- color = "#801E28" // rgb: 128, 30, 40
- toxpwr = 0
-
-datum/reagent/toxin/slimejelly/on_mob_life(var/mob/living/M as mob)
- if(prob(10))
- M << "Your insides are burning!"
- M.adjustToxLoss(rand(20,60)*REM)
- else if(prob(40))
- M.heal_organ_damage(5*REM,0)
- ..()
- return
-
-datum/reagent/toxin/cyanide
- name = "Cyanide"
- id = "cyanide"
- description = "A highly toxic chemical."
- reagent_state = LIQUID
- color = "#CF3600" // rgb: 207, 54, 0
- toxpwr = 3
-
-datum/reagent/toxin/cyanide/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.adjustOxyLoss(3*REM)
- M.sleeping += 1
- ..()
- return
-
-datum/reagent/toxin/minttoxin
- name = "Mint Toxin"
- id = "minttoxin"
- description = "Useful for dealing with undesirable customers."
- reagent_state = LIQUID
- color = "#CF3600" // rgb: 207, 54, 0
- toxpwr = 0
-
-datum/reagent/toxin/minttoxin/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- if (FAT in M.mutations)
- M.gib()
- ..()
- return
-
-datum/reagent/toxin/carpotoxin
- name = "Carpotoxin"
- id = "carpotoxin"
- description = "A deadly neurotoxin produced by the dreaded spess carp."
- reagent_state = LIQUID
- color = "#003333" // rgb: 0, 51, 51
- toxpwr = 2
-
-datum/reagent/toxin/zombiepowder
- name = "Zombie Powder"
- id = "zombiepowder"
- description = "A strong neurotoxin that puts the subject into a death-like state."
- reagent_state = SOLID
- color = "#669900" // rgb: 102, 153, 0
- toxpwr = 0.5
-
-datum/reagent/toxin/zombiepowder/on_mob_life(var/mob/living/carbon/M as mob)
- if(!M) M = holder.my_atom
- M.status_flags |= FAKEDEATH
- M.adjustOxyLoss(0.5*REM)
- M.Weaken(5)
- M.silent = max(M.silent, 5)
- M.tod = worldtime2text()
- ..()
- return
-
-datum/reagent/toxin/zombiepowder/Del()
- if(holder && ismob(holder.my_atom))
- var/mob/M = holder.my_atom
- M.status_flags &= ~FAKEDEATH
- ..()
-
-datum/reagent/toxin/mindbreaker
- name = "Mindbreaker Toxin"
- id = "mindbreaker"
- description = "A powerful hallucinogen. Not a thing to be messed with."
- reagent_state = LIQUID
- color = "#B31008" // rgb: 139, 166, 233
- toxpwr = 0
-
-datum/reagent/toxin/mindbreaker/on_mob_life(var/mob/living/M)
- if(!M) M = holder.my_atom
- M.hallucination += 10
- ..()
- return
-
-datum/reagent/toxin/plantbgone
- name = "Plant-B-Gone"
- id = "plantbgone"
- description = "A harmful toxic mixture to kill plantlife. Do not ingest!"
- reagent_state = LIQUID
- color = "#49002E" // rgb: 73, 0, 46
- toxpwr = 1
-
-datum/reagent/toxin/plantbgone/reaction_obj(var/obj/O, var/volume)
- if(istype(O,/obj/structure/alien/weeds/))
- var/obj/structure/alien/weeds/alien_weeds = O
- alien_weeds.health -= rand(15,35) // Kills alien weeds pretty fast
- alien_weeds.healthcheck()
- else if(istype(O,/obj/effect/glowshroom)) //even a small amount is enough to kill it
- qdel(O)
- else if(istype(O,/obj/effect/spacevine))
- var/obj/effect/spacevine/SV = O
- SV.on_chem_effect(src)
-
-datum/reagent/toxin/plantbgone/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
- src = null
- if(iscarbon(M))
- var/mob/living/carbon/C = M
- if(!C.wear_mask) // If not wearing a mask
- C.adjustToxLoss(2) // 4 toxic damage per application, doubled for some reason
-
-datum/reagent/toxin/plantbgone/weedkiller
- name = "Weed Killer"
- id = "weedkiller"
- description = "A harmful toxic mixture to kill weeds. Do not ingest!"
- reagent_state = LIQUID
- color = "#4B004B" // rgb: 75, 0, 75
-
-
-datum/reagent/toxin/pestkiller
- name = "Pest Killer"
- id = "pestkiller"
- description = "A harmful toxic mixture to kill pests. Do not ingest!"
- color = "#4B004B" // rgb: 75, 0, 75
- toxpwr = 1
-
-datum/reagent/toxin/pestkiller/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
- src = null
- if(iscarbon(M))
- var/mob/living/carbon/C = M
- if(!C.wear_mask) // If not wearing a mask
- C.adjustToxLoss(2) // 4 toxic damage per application, doubled for some reason
-
-datum/reagent/toxin/stoxin
- name = "Sleep Toxin"
- id = "stoxin"
- description = "An effective hypnotic used to treat insomnia."
- reagent_state = LIQUID
- color = "#E895CC" // rgb: 232, 149, 204
- toxpwr = 0
-
-datum/reagent/toxin/stoxin/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- if(!data) data = 1
- switch(data)
- if(1 to 12)
- if(prob(5)) M.emote("yawn")
- if(12 to 15)
- M.eye_blurry = max(M.eye_blurry, 10)
- if(15 to 25)
- M.drowsyness = max(M.drowsyness, 20)
- if(25 to INFINITY)
- M.Paralyse(20)
- M.drowsyness = max(M.drowsyness, 30)
- data++
- ..()
- return
-
-
-datum/reagent/toxin/spore
- name = "Spore Toxin"
- id = "spore"
- description = "A toxic spore cloud which blocks vision when ingested."
- reagent_state = LIQUID
- color = "#9ACD32"
- toxpwr = 0.5
-
-datum/reagent/toxin/spore/on_mob_life(var/mob/living/M as mob)
- ..()
- M.damageoverlaytemp = 60
- M.eye_blurry = max(M.eye_blurry, 3)
- return
-
-
-datum/reagent/toxin/spore_burning
- name = "Burning Spore Toxin"
- id = "spore_burning"
- description = "A burning spore cloud."
- reagent_state = LIQUID
- color = "#9ACD32"
- toxpwr = 0.5
-
-datum/reagent/toxin/spore_burning/on_mob_life(var/mob/living/M as mob)
- ..()
- M.adjust_fire_stacks(2)
- M.IgniteMob()
-
-datum/reagent/toxin/chloralhydrate
- name = "Chloral Hydrate"
- id = "chloralhydrate"
- description = "A powerful sedative."
- reagent_state = SOLID
- color = "#000067" // rgb: 0, 0, 103
- toxpwr = 0
-
-datum/reagent/toxin/chloralhydrate/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- if(!data) data = 1
- data++
- switch(data)
- if(1 to 10)
- M.confused += 2
- M.drowsyness += 2
- if(10 to 50)
- M.sleeping += 1
- if(51 to INFINITY)
- M.sleeping += 1
- M.adjustToxLoss((data - 50)*REM)
- holder.remove_reagent(src.id, 0.5 * REAGENTS_METABOLISM)
- ..()
- return
-
-datum/reagent/toxin/beer2 //disguised as normal beer for use by emagged brobots
- name = "Beer"
- id = "beer2"
- description = "An alcoholic beverage made from malted grains, hops, yeast, and water."
- reagent_state = LIQUID
- color = "#664300" // rgb: 102, 67, 0
-
-datum/reagent/toxin/beer2/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- if(!data) data = 1
- switch(data)
- if(1 to 50)
- M.sleeping += 1
- if(51 to INFINITY)
- M.sleeping += 1
- M.adjustToxLoss((data - 50)*REM)
- data++
- holder.remove_reagent(src.id, 0.5 * REAGENTS_METABOLISM)
- ..()
- return
-
-datum/reagent/toxin/acid
- name = "Sulphuric acid"
- id = "sacid"
- description = "A strong mineral acid with the molecular formula H2SO4."
- reagent_state = LIQUID
- color = "#DB5008" // rgb: 219, 80, 8
- toxpwr = 1
- var/acidpwr = 10 //the amount of protection removed from the armour
-
-datum/reagent/toxin/acid/reaction_mob(var/mob/living/carbon/C, var/method=TOUCH, var/volume)
- if(!istype(C))
- return
- if(method != TOUCH)
- if(!C.unacidable)
- C.take_organ_damage(min(6*toxpwr, volume * toxpwr))
- return
-
- C.acid_act(acidpwr, toxpwr, volume)
-
-datum/reagent/toxin/acid/reaction_obj(var/obj/O, var/volume)
- if(istype(O.loc, /mob)) //handled in human acid_act()
- return
- O.acid_act(acidpwr, toxpwr, volume)
-
-datum/reagent/toxin/acid/polyacid
- name = "Polytrinic acid"
- id = "pacid"
- description = "Polytrinic acid is a an extremely corrosive chemical substance."
- reagent_state = LIQUID
- color = "#8E18A9" // rgb: 142, 24, 169
- toxpwr = 2
- acidpwr = 20
-
-datum/reagent/toxin/coffeepowder
- name = "Coffee Grounds"
- id = "coffeepowder"
- description = "Finely ground coffee beans, used to make coffee."
- reagent_state = SOLID
- color = "#5B2E0D" // rgb: 91, 46, 13
- toxpwr = 0.5
-
-datum/reagent/toxin/teapowder
- name = "Ground Tea Leaves"
- id = "teapowder"
- description = "Finely shredded tea leaves, used for making tea."
- reagent_state = SOLID
- color = "#7F8400" // rgb: 127, 132, 0
- toxpwr = 0.5
-
-datum/reagent/toxin/mutetoxin //the new zombie powder.
- name = "Mute Toxin"
- id = "mutetoxin"
- description = "A toxin that temporarily paralyzes the vocal cords."
- reagent_state = LIQUID
- color = "#F0F8FF" // rgb: 240, 248, 255
- toxpwr = 0
-
-datum/reagent/toxin/mutetoxin/on_mob_life(mob/living/carbon/M)
- M.silent += REM + 1 //If this var is increased by one or less, it will have no effect since silent is decreased right after reagents are handled in Life(). Hence the + 1.
- ..()
-
-datum/reagent/toxin/staminatoxin
- name = "Tirizene"
- id = "tirizene"
- description = "A toxin that affects the stamina of a person when injected into the bloodstream."
- reagent_state = LIQUID
- color = "#6E2828"
- data = 13
- toxpwr = 0
-
-datum/reagent/toxin/staminatoxin/on_mob_life(mob/living/carbon/M)
- M.adjustStaminaLoss(REM * data)
- data = max(data - 1, 3)
- ..()
-
-/////////////////////////Coloured Crayon Powder////////////////////////////
-//For colouring in /proc/mix_color_from_reagents
-
-
-datum/reagent/crayonpowder
- name = "Crayon Powder"
- id = "crayon powder"
- var/colorname = "none"
- description = "A powder made by grinding down crayons, good for colouring chemical reagents."
- reagent_state = SOLID
- color = "#FFFFFF" // rgb: 207, 54, 0
-
-datum/reagent/crayonpowder/New()
- description = "\an [colorname] powder made by grinding down crayons, good for colouring chemical reagents."
-
-
-datum/reagent/crayonpowder/red
- name = "Red Crayon Powder"
- id = "redcrayonpowder"
- colorname = "red"
-
-datum/reagent/crayonpowder/orange
- name = "Orange Crayon Powder"
- id = "orangecrayonpowder"
- colorname = "orange"
- color = "#FF9300" // orange
-
-datum/reagent/crayonpowder/yellow
- name = "Yellow Crayon Powder"
- id = "yellowcrayonpowder"
- colorname = "yellow"
- color = "#FFF200" // yellow
-
-datum/reagent/crayonpowder/green
- name = "Green Crayon Powder"
- id = "greencrayonpowder"
- colorname = "green"
- color = "#A8E61D" // green
-
-datum/reagent/crayonpowder/blue
- name = "Blue Crayon Powder"
- id = "bluecrayonpowder"
- colorname = "blue"
- color = "#00B7EF" // blue
-
-datum/reagent/crayonpowder/purple
- name = "Purple Crayon Powder"
- id = "purplecrayonpowder"
- colorname = "purple"
- color = "#DA00FF" // purple
-
-datum/reagent/crayonpowder/invisible
- name = "Invisible Crayon Powder"
- id = "invisiblecrayonpowder"
- colorname = "invisible"
- color = "#FFFFFF00" // white + no alpha
-
-
-/////////////////////////Food Reagents////////////////////////////
-// Part of the food code. Nutriment is used instead of the old "heal_amt" code. Also is where all the food
-// condiments, additives, and such go.
-datum/reagent/nutriment
- name = "Nutriment"
- id = "nutriment"
- description = "All the vitamins, minerals, and carbohydrates the body needs in pure form."
- reagent_state = SOLID
- nutriment_factor = 15 * REAGENTS_METABOLISM
- color = "#664330" // rgb: 102, 67, 48
-
-datum/reagent/nutriment/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- if(prob(50)) M.heal_organ_damage(1,0)
- M.nutrition += nutriment_factor // For hunger and fatness
-/*
- // If overeaten - vomit and fall down
- // Makes you feel bad but removes reagents and some effect
- // from your body
- if (M.nutrition > 650)
- M.nutrition = rand (250, 400)
- M.weakened += rand(2, 10)
- M.jitteriness += rand(0, 5)
- M.dizziness = max (0, (M.dizziness - rand(0, 15)))
- M.druggy = max (0, (M.druggy - rand(0, 15)))
- M.adjustToxLoss(rand(-15, -5)))
- M.updatehealth()
-*/
- ..()
- return
-
-datum/reagent/lipozine
- name = "Lipozine" // The anti-nutriment.
- id = "lipozine"
- description = "A chemical compound that causes a powerful fat-burning reaction."
- reagent_state = LIQUID
- nutriment_factor = 10 * REAGENTS_METABOLISM
- color = "#BBEDA4" // rgb: 187, 237, 164
-
-datum/reagent/lipozine/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.nutrition -= nutriment_factor
- M.overeatduration = 0
- if(M.nutrition < 0)//Prevent from going into negatives.
- M.nutrition = 0
- ..()
- return
-
-datum/reagent/soysauce
- name = "Soysauce"
- id = "soysauce"
- description = "A salty sauce made from the soy plant."
- reagent_state = LIQUID
- nutriment_factor = 2 * REAGENTS_METABOLISM
- color = "#792300" // rgb: 121, 35, 0
-
-datum/reagent/ketchup
- name = "Ketchup"
- id = "ketchup"
- description = "Ketchup, catsup, whatever. It's tomato paste."
- reagent_state = LIQUID
- nutriment_factor = 5 * REAGENTS_METABOLISM
- color = "#731008" // rgb: 115, 16, 8
-
-
-datum/reagent/capsaicin
- name = "Capsaicin Oil"
- id = "capsaicin"
- description = "This is what makes chilis hot."
- reagent_state = LIQUID
- color = "#B31008" // rgb: 179, 16, 8
-
-datum/reagent/capsaicin/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- if(!data) data = 1
- switch(data)
- if(1 to 15)
- M.bodytemperature += 5 * TEMPERATURE_DAMAGE_COEFFICIENT
- if(holder.has_reagent("frostoil"))
- holder.remove_reagent("frostoil", 5)
- if(istype(M, /mob/living/carbon/slime))
- M.bodytemperature += rand(5,20)
- if(15 to 25)
- M.bodytemperature += 10 * TEMPERATURE_DAMAGE_COEFFICIENT
- if(istype(M, /mob/living/carbon/slime))
- M.bodytemperature += rand(10,20)
- if(25 to INFINITY)
- M.bodytemperature += 15 * TEMPERATURE_DAMAGE_COEFFICIENT
- if(istype(M, /mob/living/carbon/slime))
- M.bodytemperature += rand(15,20)
- data++
- ..()
- return
-
-datum/reagent/condensedcapsaicin
- name = "Condensed Capsaicin"
- id = "condensedcapsaicin"
- description = "A chemical agent used for self-defense and in police work."
- reagent_state = LIQUID
- color = "#B31008" // rgb: 179, 16, 8
-
-datum/reagent/condensedcapsaicin/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
- if(!istype(M, /mob/living/carbon/human) && !istype(M, /mob/living/carbon/monkey))
- return
-
- var/mob/living/carbon/victim = M
- if(method == TOUCH)
- //check for protection
- var/mouth_covered = 0
- var/eyes_covered = 0
- var/obj/item/safe_thing = null
-
- //monkeys and humans can have masks
- if( victim.wear_mask )
- if ( victim.wear_mask.flags & MASKCOVERSEYES )
- eyes_covered = 1
- safe_thing = victim.wear_mask
- if ( victim.wear_mask.flags & MASKCOVERSMOUTH )
- mouth_covered = 1
- safe_thing = victim.wear_mask
-
- //only humans can have helmets and glasses
- if(istype(victim, /mob/living/carbon/human))
- var/mob/living/carbon/human/H = victim
- if( H.head )
- if ( H.head.flags & MASKCOVERSEYES )
- eyes_covered = 1
- safe_thing = H.head
- if ( H.head.flags & MASKCOVERSMOUTH )
- mouth_covered = 1
- safe_thing = H.head
- if(H.glasses)
- eyes_covered = 1
- if ( !safe_thing )
- safe_thing = H.glasses
-
- //actually handle the pepperspray effects
- if ( eyes_covered && mouth_covered )
- return
- else if ( mouth_covered ) // Reduced effects if partially protected
- if(prob(5))
- victim.emote("scream")
- victim.eye_blurry = max(M.eye_blurry, 3)
- victim.eye_blind = max(M.eye_blind, 1)
- victim.confused = max(M.confused, 3)
- victim.damageoverlaytemp = 60
- victim.Weaken(3)
- victim.drop_item()
- return
- else if ( eyes_covered ) // Eye cover is better than mouth cover
- victim.eye_blurry = max(M.eye_blurry, 3)
- victim.damageoverlaytemp = 30
- return
- else // Oh dear :D
- if(prob(5))
- victim.emote("scream")
- victim.eye_blurry = max(M.eye_blurry, 5)
- victim.eye_blind = max(M.eye_blind, 2)
- victim.confused = max(M.confused, 6)
- victim.damageoverlaytemp = 75
- victim.Weaken(5)
- victim.drop_item()
-
-datum/reagent/condensedcapsaicin/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- if(prob(5))
- M.visible_message("[M] [pick("dry heaves!","coughs!","splutters!")]")
- ..()
- return
-
-datum/reagent/frostoil
- name = "Frost Oil"
- id = "frostoil"
- description = "A special oil that noticably chills the body. Extraced from Icepeppers."
- reagent_state = LIQUID
- color = "#B31008" // rgb: 139, 166, 233
-
-datum/reagent/frostoil/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- if(!data) data = 1
- switch(data)
- if(1 to 15)
- M.bodytemperature -= 5 * TEMPERATURE_DAMAGE_COEFFICIENT
- if(holder.has_reagent("capsaicin"))
- holder.remove_reagent("capsaicin", 5)
- if(istype(M, /mob/living/carbon/slime))
- M.bodytemperature -= rand(5,20)
- if(15 to 25)
- M.bodytemperature -= 10 * TEMPERATURE_DAMAGE_COEFFICIENT
- if(istype(M, /mob/living/carbon/slime))
- M.bodytemperature -= rand(10,20)
- if(25 to INFINITY)
- M.bodytemperature -= 15 * TEMPERATURE_DAMAGE_COEFFICIENT
- if(prob(1)) M.emote("shiver")
- if(istype(M, /mob/living/carbon/slime))
- M.bodytemperature -= rand(15,20)
- data++
- ..()
- return
-
-datum/reagent/frostoil/reaction_turf(var/turf/simulated/T, var/volume)
- if(volume >= 5)
- for(var/mob/living/carbon/slime/M in T)
- M.adjustToxLoss(rand(15,30))
- //if(istype(T))
- // T.atmos_spawn_air(SPAWN_COLD)
-
-datum/reagent/sodiumchloride
- name = "Table Salt"
- id = "sodiumchloride"
- description = "A salt made of sodium chloride. Commonly used to season food."
- reagent_state = SOLID
- color = "#FFFFFF" // rgb: 255,255,255
-
-datum/reagent/blackpepper
- name = "Black Pepper"
- id = "blackpepper"
- description = "A powder ground from peppercorns. *AAAACHOOO*"
- reagent_state = SOLID
- // no color (ie, black)
-
-datum/reagent/coco
- name = "Coco Powder"
- id = "coco"
- description = "A fatty, bitter paste made from coco beans."
- reagent_state = SOLID
- nutriment_factor = 5 * REAGENTS_METABOLISM
- color = "#302000" // rgb: 48, 32, 0
-
-datum/reagent/coco/on_mob_life(var/mob/living/M as mob)
- M.nutrition += nutriment_factor
- ..()
- return
-
-datum/reagent/hot_coco
- name = "Hot Chocolate"
- id = "hot_coco"
- description = "Made with love! And coco beans."
- reagent_state = LIQUID
- nutriment_factor = 2 * REAGENTS_METABOLISM
- color = "#403010" // rgb: 64, 48, 16
-
-datum/reagent/hot_coco/on_mob_life(var/mob/living/M as mob)
- if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055
- M.bodytemperature = min(310, M.bodytemperature + (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
- M.nutrition += nutriment_factor
- ..()
- return
-
-datum/reagent/mushroomhallucinogen
- name = "Mushroom Hallucinogen"
- id = "mushroomhallucinogen"
- description = "A strong hallucinogenic drug derived from certain species of mushroom."
- color = "#E700E7" // rgb: 231, 0, 231
-
-datum/reagent/mushroomhallucinogen/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.druggy = max(M.druggy, 30)
- if(!data) data = 1
- switch(data)
- if(1 to 5)
- if (!M.stuttering) M.stuttering = 1
- M.Dizzy(5)
- if(prob(10)) M.emote(pick("twitch","giggle"))
- if(5 to 10)
- if (!M.stuttering) M.stuttering = 1
- M.Jitter(10)
- M.Dizzy(10)
- M.druggy = max(M.druggy, 35)
- if(prob(20)) M.emote(pick("twitch","giggle"))
- if (10 to INFINITY)
- if (!M.stuttering) M.stuttering = 1
- M.Jitter(20)
- M.Dizzy(20)
- M.druggy = max(M.druggy, 40)
- if(prob(30)) M.emote(pick("twitch","giggle"))
- holder.remove_reagent(src.id, 0.2)
- data++
- ..()
- return
-
-datum/reagent/sprinkles
- name = "Sprinkles"
- id = "sprinkles"
- description = "Multi-colored little bits of sugar, commonly found on donuts. Loved by cops."
- nutriment_factor = 1 * REAGENTS_METABOLISM
- color = "#FF00FF" // rgb: 255, 0, 255
-
-datum/reagent/sprinkles/on_mob_life(var/mob/living/M as mob)
- M.nutrition += nutriment_factor
- if(istype(M, /mob/living/carbon/human) && M.job in list("Security Officer", "Head of Security", "Detective", "Warden"))
- if(!M) M = holder.my_atom
- M.heal_organ_damage(1,1)
- M.nutrition += nutriment_factor
- ..()
- return
- ..()
-
-/* //removed because of meta bullshit. this is why we can't have nice things.
-datum/reagent/syndicream
- name = "Cream filling"
- id = "syndicream"
- description = "Delicious cream filling of a mysterious origin. Tastes criminally good."
- nutriment_factor = 1 * REAGENTS_METABOLISM
- color = "#AB7878" // rgb: 171, 120, 120
-
-datum/reagent/syndicream/on_mob_life(var/mob/living/M as mob)
- M.nutrition += nutriment_factor
- if(istype(M, /mob/living/carbon/human) && M.mind)
- if(M.mind.special_role)
- if(!M) M = holder.my_atom
- M.heal_organ_damage(1,1)
- M.nutrition += nutriment_factor
- ..()
- return
- ..()
-*/
-datum/reagent/cornoil
- name = "Corn Oil"
- id = "cornoil"
- description = "An oil derived from various types of corn."
- reagent_state = LIQUID
- nutriment_factor = 20 * REAGENTS_METABOLISM
- color = "#302000" // rgb: 48, 32, 0
-
-datum/reagent/cornoil/on_mob_life(var/mob/living/M as mob)
- M.nutrition += nutriment_factor
- ..()
- return
-
-datum/reagent/cornoil/reaction_turf(var/turf/simulated/T, var/volume)
- if (!istype(T)) return
- src = null
- if(volume >= 3)
- T.MakeSlippery()
- var/hotspot = (locate(/obj/effect/hotspot) in T)
- if(hotspot)
- var/datum/gas_mixture/lowertemp = T.remove_air( T:air:total_moles() )
- lowertemp.temperature = max( min(lowertemp.temperature-2000,lowertemp.temperature / 2) ,0)
- lowertemp.react()
- T.assume_air(lowertemp)
- qdel(hotspot)
-
-datum/reagent/enzyme
- name = "Universal Enzyme"
- id = "enzyme"
- description = "A universal enzyme used in the preperation of certain chemicals and foods."
- reagent_state = LIQUID
- color = "#365E30" // rgb: 54, 94, 48
-
-datum/reagent/dry_ramen
- name = "Dry Ramen"
- id = "dry_ramen"
- description = "Space age food, since August 25, 1958. Contains dried noodles, vegetables, and chemicals that boil in contact with water."
- reagent_state = SOLID
- nutriment_factor = 1 * REAGENTS_METABOLISM
- color = "#302000" // rgb: 48, 32, 0
-
-datum/reagent/dry_ramen/on_mob_life(var/mob/living/M as mob)
- M.nutrition += nutriment_factor
- ..()
- return
-
-datum/reagent/hot_ramen
- name = "Hot Ramen"
- id = "hot_ramen"
- description = "The noodles are boiled, the flavors are artificial, just like being back in school."
- reagent_state = LIQUID
- nutriment_factor = 5 * REAGENTS_METABOLISM
- color = "#302000" // rgb: 48, 32, 0
-
-datum/reagent/hot_ramen/on_mob_life(var/mob/living/M as mob)
- M.nutrition += nutriment_factor
- if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055
- M.bodytemperature = min(310, M.bodytemperature + (10 * TEMPERATURE_DAMAGE_COEFFICIENT))
- ..()
- return
-
-datum/reagent/hell_ramen
- name = "Hell Ramen"
- id = "hell_ramen"
- description = "The noodles are boiled, the flavors are artificial, just like being back in school."
- reagent_state = LIQUID
- nutriment_factor = 5 * REAGENTS_METABOLISM
- color = "#302000" // rgb: 48, 32, 0
-
-datum/reagent/hell_ramen/on_mob_life(var/mob/living/M as mob)
- M.nutrition += nutriment_factor
- M.bodytemperature += 10 * TEMPERATURE_DAMAGE_COEFFICIENT
- ..()
- return
-
-datum/reagent/flour
- name = "flour"
- id = "flour"
- description = "This is what you rub all over yourself to pretend to be a ghost."
- reagent_state = SOLID
- nutriment_factor = 1 * REAGENTS_METABOLISM
- color = "#FFFFFF" // rgb: 0, 0, 0
-
-datum/reagent/flour/on_mob_life(var/mob/living/M as mob)
- M.nutrition += nutriment_factor
- ..()
- return
-
-datum/reagent/flour/reaction_turf(var/turf/T, var/volume)
- src = null
- if(!istype(T, /turf/space))
- new /obj/effect/decal/cleanable/flour(T)
-
-datum/reagent/cherryjelly
- name = "Cherry Jelly"
- id = "cherryjelly"
- description = "Totally the best. Only to be spread on foods with excellent lateral symmetry."
- reagent_state = LIQUID
- nutriment_factor = 1 * REAGENTS_METABOLISM
- color = "#801E28" // rgb: 128, 30, 40
-
-datum/reagent/cherryjelly/on_mob_life(var/mob/living/M as mob)
- M.nutrition += nutriment_factor
- ..()
- return
-
-/////////////////////////////////////////////////////////////////////////////////////////////////////////
-/////////////////////// DRINKS BELOW, Beer is up there though, along with cola. Cap'n Pete's Cuban Spiced Rum////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-datum/reagent/orangejuice
- name = "Orange juice"
- id = "orangejuice"
- description = "Both delicious AND rich in Vitamin C, what more do you need?"
- reagent_state = LIQUID
- nutriment_factor = 1 * REAGENTS_METABOLISM
- color = "#E78108" // rgb: 231, 129, 8
-
-datum/reagent/orangejuice/on_mob_life(var/mob/living/M as mob)
- M.nutrition += nutriment_factor
- if(!M) M = holder.my_atom
- if(M.getOxyLoss() && prob(30)) M.adjustOxyLoss(-1)
- M.nutrition++
- ..()
- return
-
-datum/reagent/tomatojuice
- name = "Tomato Juice"
- id = "tomatojuice"
- description = "Tomatoes made into juice. What a waste of big, juicy tomatoes, huh?"
- reagent_state = LIQUID
- nutriment_factor = 1 * REAGENTS_METABOLISM
- color = "#731008" // rgb: 115, 16, 8
-
-datum/reagent/tomatojuice/on_mob_life(var/mob/living/M as mob)
- M.nutrition += nutriment_factor
- if(!M) M = holder.my_atom
- if(M.getFireLoss() && prob(20)) M.heal_organ_damage(0,1)
- M.nutrition++
- ..()
- return
-
-datum/reagent/limejuice
- name = "Lime Juice"
- id = "limejuice"
- description = "The sweet-sour juice of limes."
- reagent_state = LIQUID
- nutriment_factor = 1 * REAGENTS_METABOLISM
- color = "#365E30" // rgb: 54, 94, 48
-
-datum/reagent/limejuice/on_mob_life(var/mob/living/M as mob)
- M.nutrition += nutriment_factor
- if(!M) M = holder.my_atom
- if(M.getToxLoss() && prob(20)) M.adjustToxLoss(-1*REM)
- M.nutrition++
- ..()
- return
-
-datum/reagent/carrotjuice
- name = "Carrot juice"
- id = "carrotjuice"
- description = "It is just like a carrot but without crunching."
- reagent_state = LIQUID
- nutriment_factor = 1 * REAGENTS_METABOLISM
- color = "#973800" // rgb: 151, 56, 0
-
-datum/reagent/carrotjuice/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.nutrition += nutriment_factor
- M.eye_blurry = max(M.eye_blurry-1 , 0)
- M.eye_blind = max(M.eye_blind-1 , 0)
- if(!data) data = 1
- switch(data)
- if(1 to 20)
- //nothing
- if(21 to INFINITY)
- if (prob(data-10))
- M.disabilities &= ~NEARSIGHTED
- data++
- ..()
- return
-
-datum/reagent/berryjuice
- name = "Berry Juice"
- id = "berryjuice"
- description = "A delicious blend of several different kinds of berries."
- reagent_state = LIQUID
- nutriment_factor = 1 * REAGENTS_METABOLISM
- color = "#863333" // rgb: 134, 51, 51
-
-datum/reagent/berryjuice/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.nutrition += nutriment_factor
- ..()
- return
-
-datum/reagent/poisonberryjuice
- name = "Poison Berry Juice"
- id = "poisonberryjuice"
- description = "A tasty juice blended from various kinds of very deadly and toxic berries."
- reagent_state = LIQUID
- nutriment_factor = 1 * REAGENTS_METABOLISM
- color = "#863353" // rgb: 134, 51, 83
-
-datum/reagent/poisonberryjuice/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.nutrition += nutriment_factor
- M.adjustToxLoss(1)
- ..()
- return
-
-datum/reagent/watermelonjuice
- name = "Watermelon Juice"
- id = "watermelonjuice"
- description = "Delicious juice made from watermelon."
- reagent_state = LIQUID
- nutriment_factor = 1 * REAGENTS_METABOLISM
- color = "#863333" // rgb: 134, 51, 51
-
-datum/reagent/watermelonjuice/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.nutrition += nutriment_factor
- ..()
- return
-
-datum/reagent/lemonjuice
- name = "Lemon Juice"
- id = "lemonjuice"
- description = "This juice is VERY sour."
- reagent_state = LIQUID
- nutriment_factor = 1 * REAGENTS_METABOLISM
- color = "#863333" // rgb: 175, 175, 0
-
-datum/reagent/lemonjuice/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.nutrition += nutriment_factor
- ..()
- return
-
-datum/reagent/banana
- name = "Banana Juice"
- id = "banana"
- description = "The raw essence of a banana. HONK"
- nutriment_factor = 1 * REAGENTS_METABOLISM
- color = "#863333" // rgb: 175, 175, 0
-
-datum/reagent/banana/on_mob_life(var/mob/living/M as mob)
- M.nutrition += nutriment_factor
- if(istype(M, /mob/living/carbon/human) && M.job in list("Clown"))
- if(!M) M = holder.my_atom
- M.heal_organ_damage(1,1)
- ..()
- return
- if(istype(M, /mob/living/carbon/monkey))
- if(!M) M = holder.my_atom
- M.heal_organ_damage(1,1)
- ..()
- return
- ..()
-
-datum/reagent/nothing
- name = "Nothing"
- id = "nothing"
- description = "Absolutely nothing."
- nutriment_factor = 1 * REAGENTS_METABOLISM
-
-datum/reagent/nothing/on_mob_life(var/mob/living/M as mob)
- M.nutrition += nutriment_factor
- if(istype(M, /mob/living/carbon/human) && M.job in list("Mime"))
- if(!M) M = holder.my_atom
- M.heal_organ_damage(1,1)
- ..()
- return
- ..()
-
-datum/reagent/potato_juice
- name = "Potato Juice"
- id = "potato"
- description = "Juice of the potato. Bleh."
- reagent_state = LIQUID
- nutriment_factor = 2 * REAGENTS_METABOLISM
- color = "#302000" // rgb: 48, 32, 0
-
-datum/reagent/potato_juice/on_mob_life(var/mob/living/M as mob)
- M.nutrition += nutriment_factor
- ..()
- return
-
-datum/reagent/milk
- name = "Milk"
- id = "milk"
- description = "An opaque white liquid produced by the mammary glands of mammals."
- reagent_state = LIQUID
- color = "#DFDFDF" // rgb: 223, 223, 223
-
-datum/reagent/milk/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- if(M.getBruteLoss() && prob(20)) M.heal_organ_damage(1,0)
- if(holder.has_reagent("capsaicin"))
- holder.remove_reagent("capsaicin", 2)
- M.nutrition++
- ..()
- return
-
-datum/reagent/soymilk
- name = "Soy Milk"
- id = "soymilk"
- description = "An opaque white liquid made from soybeans."
- reagent_state = LIQUID
- color = "#DFDFC7" // rgb: 223, 223, 199
-
-datum/reagent/soymilk/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- if(M.getBruteLoss() && prob(20)) M.heal_organ_damage(1,0)
- M.nutrition++
- ..()
- return
-
-datum/reagent/cream
- name = "Cream"
- id = "cream"
- description = "The fatty, still liquid part of milk. Why don't you mix this with sum scotch, eh?"
- reagent_state = LIQUID
- nutriment_factor = 1 * REAGENTS_METABOLISM
- color = "#DFD7AF" // rgb: 223, 215, 175
-
-datum/reagent/cream/on_mob_life(var/mob/living/M as mob)
- M.nutrition += nutriment_factor
- if(M.getBruteLoss() && prob(20)) M.heal_organ_damage(1,0)
- ..()
- return
-
-datum/reagent/coffee
- name = "Coffee"
- id = "coffee"
- description = "Coffee is a brewed drink prepared from roasted seeds, commonly called coffee beans, of the coffee plant."
- reagent_state = LIQUID
- color = "#482000" // rgb: 72, 32, 0
-
-datum/reagent/coffee/on_mob_life(var/mob/living/M as mob)
- ..()
- M.dizziness = max(0,M.dizziness-5)
- M.drowsyness = max(0,M.drowsyness-3)
- M.sleeping = max(0,M.sleeping - 2)
- if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055
- M.bodytemperature = min(310, M.bodytemperature + (25 * TEMPERATURE_DAMAGE_COEFFICIENT))
- M.Jitter(5)
- if(holder.has_reagent("frostoil"))
- holder.remove_reagent("frostoil", 5)
- ..()
- return
-
-datum/reagent/tea
- name = "Tea"
- id = "tea"
- description = "Tasty black tea, it has antioxidants, it's good for you!"
- reagent_state = LIQUID
- color = "#101000" // rgb: 16, 16, 0
-
-datum/reagent/tea/on_mob_life(var/mob/living/M as mob)
- ..()
- M.dizziness = max(0,M.dizziness-2)
- M.drowsyness = max(0,M.drowsyness-1)
- M.jitteriness = max(0,M.jitteriness-3)
- M.sleeping = max(0,M.sleeping-1)
- if(M.getToxLoss() && prob(20))
- M.adjustToxLoss(-1)
- if (M.bodytemperature < 310) //310 is the normal bodytemp. 310.055
- M.bodytemperature = min(310, M.bodytemperature + (20 * TEMPERATURE_DAMAGE_COEFFICIENT))
- ..()
- return
-
-datum/reagent/icecoffee
- name = "Iced Coffee"
- id = "icecoffee"
- description = "Coffee and ice, refreshing and cool."
- reagent_state = LIQUID
- color = "#102838" // rgb: 16, 40, 56
-
-datum/reagent/icecoffee/on_mob_life(var/mob/living/M as mob)
- ..()
- M.dizziness = max(0,M.dizziness-5)
- M.drowsyness = max(0,M.drowsyness-3)
- M.sleeping = max(0,M.sleeping-2)
- if (M.bodytemperature > 310)//310 is the normal bodytemp. 310.055
- M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
- M.Jitter(5)
- ..()
- return
-
-datum/reagent/icetea
- name = "Iced Tea"
- id = "icetea"
- description = "No relation to a certain rap artist/ actor."
- reagent_state = LIQUID
- color = "#104038" // rgb: 16, 64, 56
-
-datum/reagent/icetea/on_mob_life(var/mob/living/M as mob)
- ..()
- M.dizziness = max(0,M.dizziness-2)
- M.drowsyness = max(0,M.drowsyness-1)
- M.sleeping = max(0,M.sleeping-2)
- if(M.getToxLoss() && prob(20))
- M.adjustToxLoss(-1)
- if (M.bodytemperature > 310)//310 is the normal bodytemp. 310.055
- M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
- return
-
-datum/reagent/space_cola
- name = "Cola"
- id = "cola"
- description = "A refreshing beverage."
- reagent_state = LIQUID
- color = "#100800" // rgb: 16, 8, 0
-
-datum/reagent/space_cola/on_mob_life(var/mob/living/M as mob)
- M.drowsyness = max(0,M.drowsyness-5)
- if (M.bodytemperature > 310)//310 is the normal bodytemp. 310.055
- M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
- M.nutrition += 1
- ..()
- return
-
-datum/reagent/nuka_cola
- name = "Nuka Cola"
- id = "nuka_cola"
- description = "Cola, cola never changes."
- reagent_state = LIQUID
- color = "#100800" // rgb: 16, 8, 0
-
-datum/reagent/nuka_cola/on_mob_life(var/mob/living/M as mob)
- M.Jitter(20)
- M.druggy = max(M.druggy, 30)
- M.dizziness +=5
- M.drowsyness = 0
- M.sleeping = max(0,M.sleeping-2)
- M.status_flags |= GOTTAGOFAST
- if (M.bodytemperature > 310)//310 is the normal bodytemp. 310.055
- M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
- M.nutrition += 1
- ..()
- return
-
-datum/reagent/spacemountainwind
- name = "Space Mountain Wind"
- id = "spacemountainwind"
- description = "Blows right through you like a space wind."
- reagent_state = LIQUID
- color = "#102000" // rgb: 16, 32, 0
-
-datum/reagent/spacemountainwind/on_mob_life(var/mob/living/M as mob)
- M.drowsyness = max(0,M.drowsyness-7)
- M.sleeping = max(0,M.sleeping-1)
- if (M.bodytemperature > 310)
- M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
- M.Jitter(5)
- M.nutrition += 1
- ..()
- return
-
-datum/reagent/dr_gibb
- name = "Dr. Gibb"
- id = "dr_gibb"
- description = "A delicious blend of 42 different flavours"
- reagent_state = LIQUID
- color = "#102000" // rgb: 16, 32, 0
-
-datum/reagent/dr_gibb/on_mob_life(var/mob/living/M as mob)
- M.drowsyness = max(0,M.drowsyness-6)
- if (M.bodytemperature > 310)
- M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055
- M.nutrition += 1
- ..()
- return
-
-datum/reagent/space_up
- name = "Space-Up"
- id = "space_up"
- description = "Tastes like a hull breach in your mouth."
- reagent_state = LIQUID
- color = "#00FF00" // rgb: 0, 255, 0
-
-datum/reagent/space_up/on_mob_life(var/mob/living/M as mob)
- if (M.bodytemperature > 310)
- M.bodytemperature = max(310, M.bodytemperature - (8 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055
- M.nutrition += 1
- ..()
- return
-
-datum/reagent/lemon_lime
- name = "Lemon Lime"
- description = "A tangy substance made of 0.5% natural citrus!"
- id = "lemon_lime"
- reagent_state = LIQUID
- color = "#8CFF00" // rgb: 135, 255, 0
-
-datum/reagent/lemon_lime/on_mob_life(var/mob/living/M as mob)
- if (M.bodytemperature > 310)
- M.bodytemperature = max(310, M.bodytemperature - (8 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055
- M.nutrition += 1
- ..()
- return
-
-datum/reagent/sodawater
- name = "Soda Water"
- id = "sodawater"
- description = "A can of club soda. Why not make a scotch and soda?"
- reagent_state = LIQUID
- color = "#619494" // rgb: 97, 148, 148
-
-datum/reagent/sodawater/on_mob_life(var/mob/living/M as mob)
- M.dizziness = max(0,M.dizziness-5)
- M.drowsyness = max(0,M.drowsyness-3)
- if (M.bodytemperature > 310)
- M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
- ..()
- return
-
-datum/reagent/tonic
- name = "Tonic Water"
- id = "tonic"
- description = "It tastes strange but at least the quinine keeps the Space Malaria at bay."
- reagent_state = LIQUID
- color = "#0064C8" // rgb: 0, 100, 200
-
-datum/reagent/tonic/on_mob_life(var/mob/living/M as mob)
- M.dizziness = max(0,M.dizziness-5)
- M.drowsyness = max(0,M.drowsyness-3)
- M.sleeping = max(0,M.sleeping-2)
- if (M.bodytemperature > 310)
- M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
- ..()
- return
-
-datum/reagent/ice
- name = "Ice"
- id = "ice"
- description = "Frozen water, your dentist wouldn't like you chewing this."
- reagent_state = SOLID
- color = "#619494" // rgb: 97, 148, 148
-
-datum/reagent/ice/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.bodytemperature -= 5 * TEMPERATURE_DAMAGE_COEFFICIENT
- ..()
- return
-
-datum/reagent/soy_latte
- name = "Soy Latte"
- id = "soy_latte"
- description = "A nice and tasty beverage while you are reading your hippie books."
- reagent_state = LIQUID
- color = "#664300" // rgb: 102, 67, 0
-
-datum/reagent/soy_latte/on_mob_life(var/mob/living/M as mob)
- ..()
- M.dizziness = max(0,M.dizziness-5)
- M.drowsyness = max(0,M.drowsyness-3)
- M.sleeping = 0
- if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055
- M.bodytemperature = min(310, M.bodytemperature + (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
- M.Jitter(5)
- if(M.getBruteLoss() && prob(20)) M.heal_organ_damage(1,0)
- M.nutrition++
- ..()
- return
-
-datum/reagent/cafe_latte
- name = "Cafe Latte"
- id = "cafe_latte"
- description = "A nice, strong and tasty beverage while you are reading."
- reagent_state = LIQUID
- color = "#664300" // rgb: 102, 67, 0
-
-datum/reagent/cafe_latte/on_mob_life(var/mob/living/M as mob)
- ..()
- M.dizziness = max(0,M.dizziness-5)
- M.drowsyness = max(0,M.drowsyness-3)
- M.sleeping = 0
- if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055
- M.bodytemperature = min(310, M.bodytemperature + (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
- M.Jitter(5)
- if(M.getBruteLoss() && prob(20)) M.heal_organ_damage(1,0)
- M.nutrition++
- ..()
- return
-
-datum/reagent/doctor_delight
- name = "The Doctor's Delight"
- id = "doctorsdelight"
- description = "A gulp a day keeps the MediBot away. That's probably for the best."
- reagent_state = LIQUID
- color = "#FF8CFF" // rgb: 255, 140, 255
-
-datum/reagent/doctor_delight/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- if(M.getOxyLoss() && prob(80)) M.adjustOxyLoss(-2)
- if(M.getBruteLoss() && prob(80)) M.heal_organ_damage(2,0)
- if(M.getFireLoss() && prob(80)) M.heal_organ_damage(0,2)
- if(M.getToxLoss() && prob(80)) M.adjustToxLoss(-2)
- if(M.dizziness !=0) M.dizziness = max(0,M.dizziness-15)
- if(M.confused !=0) M.confused = max(0,M.confused - 5)
- ..()
- return
-
-//////////////////////////////////Hydroponics stuff///////////////////////////////
-
-datum/reagent/plantnutriment
- name = "Generic nutriment"
- id = "plantnutriment"
- description = "Some kind of nutriment. You can't really tell what it is. You should probably report it, along with how you obtained it."
- reagent_state = LIQUID
- color = "#000000" // RBG: 0, 0, 0
- var/tox_prob = 0
-
-datum/reagent/plantnutriment/on_mob_life(var/mob/living/M as mob)
- if(prob(tox_prob)) M.adjustToxLoss(1*REM)
- ..()
- return
-
-datum/reagent/plantnutriment/eznutriment
- name = "E-Z-Nutrient"
- id = "eznutriment"
- description = "Cheap and extremely common type of plant nutriment."
- reagent_state = LIQUID
- color = "#376400" // RBG: 50, 100, 0
- tox_prob = 10
-
-datum/reagent/plantnutriment/left4zednutriment
- name = "Left 4 Zed"
- id = "left4zednutriment"
- description = "Unstable nutriment that makes plants mutate more often than usual."
- reagent_state = LIQUID
- color = "#1A1E4D" // RBG: 26, 30, 77
- tox_prob = 25
-
-datum/reagent/plantnutriment/robustharvestnutriment
- name = "Robust Harvest"
- id = "robustharvestnutriment"
- description = "Very potent nutriment that prevents plants from mutating."
- reagent_state = LIQUID
- color = "#9D9D00" // RBG: 157, 157, 0
- tox_prob = 15
-
-//////////////////////////////////////////////The ten friggen million reagents that get you drunk//////////////////////////////////////////////
-
-datum/reagent/atomicbomb
- name = "Atomic Bomb"
- id = "atomicbomb"
- description = "Nuclear proliferation never tasted so good."
- reagent_state = LIQUID
- color = "#666300" // rgb: 102, 99, 0
-
-datum/reagent/atomicbomb/on_mob_life(var/mob/living/M as mob)
- M.druggy = max(M.druggy, 50)
- M.confused = max(M.confused+2,0)
- M.Dizzy(10)
- if (!M.stuttering) M.stuttering = 1
- M.stuttering += 3
- if(!data) data = 1
- data++
- switch(data)
- if(51 to 200)
- M.sleeping += 1
- if(201 to INFINITY)
- M.sleeping += 1
- M.adjustToxLoss(2)
- ..()
- return
-
-datum/reagent/gargle_blaster
- name = "Pan-Galactic Gargle Blaster"
- id = "gargleblaster"
- description = "Whoah, this stuff looks volatile!"
- reagent_state = LIQUID
- color = "#664300" // rgb: 102, 67, 0
-
-datum/reagent/gargle_blaster/on_mob_life(var/mob/living/M as mob)
- if(!data) data = 1
- data++
- M.dizziness +=6
- if(data >= 15 && data <45)
- if (!M.stuttering) M.stuttering = 1
- M.stuttering += 3
- else if(data >= 45 && prob(50) && data <55)
- M.confused = max(M.confused+3,0)
- else if(data >=55)
- M.druggy = max(M.druggy, 55)
- else if(data >=200)
- M.adjustToxLoss(2)
- ..()
- return
-
-datum/reagent/neurotoxin
- name = "Neurotoxin"
- id = "neurotoxin"
- description = "A strong neurotoxin that puts the subject into a death-like state."
- reagent_state = LIQUID
- color = "#2E2E61" // rgb: 46, 46, 97
-
-datum/reagent/neurotoxin/on_mob_life(var/mob/living/carbon/M as mob)
- if(!M) M = holder.my_atom
- M.weakened = max(M.weakened, 3)
- if(!data) data = 1
- data++
- M.dizziness +=6
- if(data >= 15 && data <45)
- if (!M.stuttering) M.stuttering = 1
- M.stuttering += 3
- else if(data >= 45 && prob(50) && data <55)
- M.confused = max(M.confused+3,0)
- else if(data >=55)
- M.druggy = max(M.druggy, 55)
- else if(data >=200)
- M.adjustToxLoss(2)
- ..()
- return
-
-datum/reagent/hippies_delight
- name = "Hippie's Delight"
- id = "hippiesdelight"
- description = "You just don't get it maaaan."
- reagent_state = LIQUID
- color = "#664300" // rgb: 102, 67, 0
-
-datum/reagent/hippies_delight/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.druggy = max(M.druggy, 50)
- if(!data) data = 1
- data++
- switch(data)
- if(1 to 5)
- if (!M.stuttering) M.stuttering = 1
- M.Dizzy(10)
- if(prob(10)) M.emote(pick("twitch","giggle"))
- if(5 to 10)
- if (!M.stuttering) M.stuttering = 1
- M.Jitter(20)
- M.Dizzy(20)
- M.druggy = max(M.druggy, 45)
- if(prob(20)) M.emote(pick("twitch","giggle"))
- if (10 to 200)
- if (!M.stuttering) M.stuttering = 1
- M.Jitter(40)
- M.Dizzy(40)
- M.druggy = max(M.druggy, 60)
- if(prob(30)) M.emote(pick("twitch","giggle"))
- if(200 to INFINITY)
- if (!M.stuttering) M.stuttering = 1
- M.Jitter(60)
- M.Dizzy(60)
- M.druggy = max(M.druggy, 75)
- if(prob(40)) M.emote(pick("twitch","giggle"))
- if(prob(30)) M.adjustToxLoss(2)
- holder.remove_reagent(src.id, 0.2)
- ..()
- return
-
-/*boozepwr chart
-55 = non-toxic alchohol
-45 = medium-toxic
-35 = the hard stuff
-25 = potent mixes
-<15 = deadly toxic
-*/
-
-datum/reagent/ethanol
- name = "Ethanol"
- id = "ethanol"
- description = "A well-known alcohol with a variety of applications."
- reagent_state = LIQUID
- color = "#404030" // rgb: 64, 64, 48
- var/boozepwr = 10 //lower numbers mean the booze will have an effect faster.
-
-datum/reagent/ethanol/on_mob_life(var/mob/living/M as mob)
- if(!data) data = 1
- data++
- M.jitteriness = max(M.jitteriness-5,0)
- if(data >= boozepwr)
- if (!M.stuttering) M.stuttering = 1
- M.stuttering += 4
- M.Dizzy(5)
- if(data >= boozepwr*2.5 && prob(33))
- if (!M.confused) M.confused = 1
- M.confused += 3
- if(data >= boozepwr*10 && prob(33))
- M.adjustToxLoss(2)
- ..()
- return
-datum/reagent/ethanol/reaction_obj(var/obj/O, var/volume)
- if(istype(O,/obj/item/weapon/paper))
- var/obj/item/weapon/paper/paperaffected = O
- paperaffected.clearpaper()
- usr << "The solution melts away the ink on the paper."
- if(istype(O,/obj/item/weapon/book))
- if(volume >= 5)
- var/obj/item/weapon/book/affectedbook = O
- affectedbook.dat = null
- usr << "The solution melts away the ink on the book."
- else
- usr << "It wasn't enough..."
- return
-
-datum/reagent/ethanol/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)//Splashing people with ethanol isn't quite as good as fuel.
- if(!istype(M, /mob/living))
- return
- if(method == TOUCH)
- M.adjust_fire_stacks(volume / 15)
- return
-
-datum/reagent/ethanol/beer
- name = "Beer"
- id = "beer"
- description = "An alcoholic beverage made from malted grains, hops, yeast, and water."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 55
-
-datum/reagent/ethanol/beer/on_mob_life(var/mob/living/M as mob)
- M.nutrition += 1
- ..()
- return
-
-datum/reagent/ethanol/beer/greenbeer
- name = "Green Beer"
- id = "greenbeer"
- description = "An alcoholic beverage made from malted grains, hops, yeast, and water. Dyed a festive green."
- color = "#A8E61D"
-
-datum/reagent/ethanol/kahlua
- name = "Kahlua"
- id = "kahlua"
- description = "A widely known, Mexican coffee-flavoured liqueur. In production since 1936!"
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 45
-
-datum/reagent/ethanol/kahlua/on_mob_life(var/mob/living/M as mob)
- M.dizziness = max(0,M.dizziness-5)
- M.drowsyness = max(0,M.drowsyness-3)
- M.sleeping = max(0,M.sleeping-2)
- M.Jitter(5)
- ..()
- return
-
-datum/reagent/ethanol/whiskey
- name = "Whiskey"
- id = "whiskey"
- description = "A superb and well-aged single-malt whiskey. Damn."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 35
-
-datum/reagent/ethanol/thirteenloko
- name = "Thirteen Loko"
- id = "thirteenloko"
- description = "A potent mixture of caffeine and alcohol."
- color = "#102000" // rgb: 16, 32, 0
- boozepwr = 35
-
-datum/reagent/ethanol/thirteenloko/on_mob_life(var/mob/living/M as mob)
- M.drowsyness = max(0,M.drowsyness-7)
- M.sleeping = max(0,M.sleeping-2)
- if (M.bodytemperature > 310)
- M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
- M.Jitter(5)
- M.nutrition += 1
- ..()
- return
-
-datum/reagent/ethanol/vodka
- name = "Vodka"
- id = "vodka"
- description = "Number one drink AND fueling choice for Russians worldwide."
- color = "#0064C8" // rgb: 0, 100, 200
- boozepwr = 35
-
-datum/reagent/ethanol/vodka/on_mob_life(var/mob/living/M as mob)
- M.radiation = max(M.radiation-2,0)
- ..()
- return
-
-datum/reagent/ethanol/bilk
- name = "Bilk"
- id = "bilk"
- description = "This appears to be beer mixed with milk. Disgusting."
- color = "#895C4C" // rgb: 137, 92, 76
- boozepwr = 55
-
-datum/reagent/ethanol/bilk/on_mob_life(var/mob/living/M as mob)
- if(M.getBruteLoss() && prob(10)) M.heal_organ_damage(1,0)
- M.nutrition += 2
- ..()
- return
-
-datum/reagent/ethanol/threemileisland
- name = "Three Mile Island Iced Tea"
- id = "threemileisland"
- description = "Made for a woman, strong enough for a man."
- color = "#666340" // rgb: 102, 99, 64
- boozepwr = 15
-
-datum/reagent/ethanol/threemileisland/on_mob_life(var/mob/living/M as mob)
- M.druggy = max(M.druggy, 50)
- ..()
- return
-
-datum/reagent/ethanol/gin
- name = "Gin"
- id = "gin"
- description = "It's gin. In space. I say, good sir."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 55
-
-datum/reagent/ethanol/rum
- name = "Rum"
- id = "rum"
- description = "Yohoho and all that."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 45
-
-datum/reagent/ethanol/tequilla
- name = "Tequila"
- id = "tequilla"
- description = "A strong and mildly flavoured, mexican produced spirit. Feeling thirsty hombre?"
- color = "#FFFF91" // rgb: 255, 255, 145
- boozepwr = 35
-
-datum/reagent/ethanol/vermouth
- name = "Vermouth"
- id = "vermouth"
- description = "You suddenly feel a craving for a martini..."
- color = "#91FF91" // rgb: 145, 255, 145
- boozepwr = 45
-
-datum/reagent/ethanol/wine
- name = "Wine"
- id = "wine"
- description = "An premium alchoholic beverage made from distilled grape juice."
- color = "#7E4043" // rgb: 126, 64, 67
- boozepwr = 45
-
-datum/reagent/ethanol/cognac
- name = "Cognac"
- id = "cognac"
- description = "A sweet and strongly alchoholic drink, made after numerous distillations and years of maturing. Classy as fornication."
- color = "#AB3C05" // rgb: 171, 60, 5
- boozepwr = 45
-
-datum/reagent/ethanol/hooch
- name = "Hooch"
- id = "hooch"
- description = "Either someone's failure at cocktail making or attempt in alchohol production. In any case, do you really want to drink that?"
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 35
-
-datum/reagent/ethanol/ale
- name = "Ale"
- id = "ale"
- description = "A dark alchoholic beverage made by malted barley and yeast."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 55
-
-datum/reagent/ethanol/goldschlager
- name = "Goldschlager"
- id = "goldschlager"
- description = "100 proof cinnamon schnapps, made for alcoholic teen girls on spring break."
- color = "#FFFF91" // rgb: 255, 255, 145
- boozepwr = 25
-
-datum/reagent/ethanol/patron
- name = "Patron"
- id = "patron"
- description = "Tequila with silver in it, a favorite of alcoholic women in the club scene."
- color = "#585840" // rgb: 88, 88, 64
- boozepwr = 45
-
-datum/reagent/ethanol/gintonic
- name = "Gin and Tonic"
- id = "gintonic"
- description = "An all time classic, mild cocktail."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 55
-
-datum/reagent/ethanol/cuba_libre
- name = "Cuba Libre"
- id = "cubalibre"
- description = "Rum, mixed with cola. Viva la revolution."
- color = "#3E1B00" // rgb: 62, 27, 0
- boozepwr = 45
-
-datum/reagent/ethanol/whiskey_cola
- name = "Whiskey Cola"
- id = "whiskeycola"
- description = "Whiskey, mixed with cola. Surprisingly refreshing."
- color = "#3E1B00" // rgb: 62, 27, 0
- boozepwr = 35
-
-datum/reagent/ethanol/martini
- name = "Classic Martini"
- id = "martini"
- description = "Vermouth with Gin. Not quite how 007 enjoyed it, but still delicious."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 35
-
-datum/reagent/ethanol/vodkamartini
- name = "Vodka Martini"
- id = "vodkamartini"
- description = "Vodka with Gin. Not quite how 007 enjoyed it, but still delicious."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 25
-
-datum/reagent/ethanol/white_russian
- name = "White Russian"
- id = "whiterussian"
- description = "That's just, like, your opinion, man..."
- color = "#A68340" // rgb: 166, 131, 64
- boozepwr = 35
-
-datum/reagent/ethanol/screwdrivercocktail
- name = "Screwdriver"
- id = "screwdrivercocktail"
- description = "Vodka, mixed with plain ol' orange juice. The result is surprisingly delicious."
- color = "#A68310" // rgb: 166, 131, 16
- boozepwr = 35
-
-datum/reagent/ethanol/booger
- name = "Booger"
- id = "booger"
- description = "Ewww..."
- color = "#8CFF8C" // rgb: 140, 255, 140
- boozepwr = 45
-
-datum/reagent/ethanol/bloody_mary
- name = "Bloody Mary"
- id = "bloodymary"
- description = "A strange yet pleasurable mixture made of vodka, tomato and lime juice. Or at least you THINK the red stuff is tomato juice."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 35
-
-datum/reagent/ethanol/brave_bull
- name = "Brave Bull"
- id = "bravebull"
- description = "It's just as effective as Dutch-Courage!."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 35
-
-datum/reagent/ethanol/tequilla_sunrise
- name = "Tequila Sunrise"
- id = "tequillasunrise"
- description = "Tequila and orange juice. Much like a Screwdriver, only Mexican~"
- color = "#FFE48C" // rgb: 255, 228, 140
- boozepwr = 35
-
-datum/reagent/ethanol/toxins_special
- name = "Toxins Special"
- id = "toxinsspecial"
- description = "This thing is ON FIRE! CALL THE DAMN SHUTTLE!"
- reagent_state = LIQUID
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 15
-
-datum/reagent/ethanol/toxins_special/on_mob_life(var/mob/living/M as mob)
- if (M.bodytemperature < 330)
- M.bodytemperature = min(330, M.bodytemperature + (15 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055
- ..()
- return
-
-datum/reagent/ethanol/beepsky_smash
- name = "Beepsky Smash"
- id = "beepskysmash"
- description = "Deny drinking this and prepare for THE LAW."
- reagent_state = LIQUID
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 25
-
-datum/reagent/ethanol/beepsky_smash/on_mob_life(var/mob/living/M as mob)
- M.Stun(2)
- ..()
- return
-
-datum/reagent/ethanol/irish_cream
- name = "Irish Cream"
- id = "irishcream"
- description = "Whiskey-imbued cream, what else would you expect from the Irish."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 35
-
-datum/reagent/ethanol/manly_dorf
- name = "The Manly Dorf"
- id = "manlydorf"
- description = "Beer and Ale, brought together in a delicious mix. Intended for true men only."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 45 //was 10, but really its only beer and ale, both weak alchoholic beverages
-
-datum/reagent/ethanol/longislandicedtea
- name = "Long Island Iced Tea"
- id = "longislandicedtea"
- description = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 25
-
-datum/reagent/ethanol/moonshine
- name = "Moonshine"
- id = "moonshine"
- description = "You've really hit rock bottom now... your liver packed its bags and left last night."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 25
-
-datum/reagent/ethanol/b52
- name = "B-52"
- id = "b52"
- description = "Coffee, Irish Cream, and cognac. You will get bombed."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 25
-
-datum/reagent/ethanol/irishcoffee
- name = "Irish Coffee"
- id = "irishcoffee"
- description = "Coffee, and alcohol. More fun than a Mimosa to drink in the morning."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 35
-
-datum/reagent/ethanol/margarita
- name = "Margarita"
- id = "margarita"
- description = "On the rocks with salt on the rim. Arriba~!"
- color = "#8CFF8C" // rgb: 140, 255, 140
- boozepwr = 35
-
-datum/reagent/ethanol/black_russian
- name = "Black Russian"
- id = "blackrussian"
- description = "For the lactose-intolerant. Still as classy as a White Russian."
- color = "#360000" // rgb: 54, 0, 0
- boozepwr = 35
-
-datum/reagent/ethanol/manhattan
- name = "Manhattan"
- id = "manhattan"
- description = "The Detective's undercover drink of choice. He never could stomach gin..."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 45
-
-datum/reagent/ethanol/manhattan_proj
- name = "Manhattan Project"
- id = "manhattan_proj"
- description = "A scientist's drink of choice, for pondering ways to blow up the station."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 15
-
-datum/reagent/ethanol/manhattan_proj/on_mob_life(var/mob/living/M as mob)
- M.druggy = max(M.druggy, 30)
- ..()
- return
-
-datum/reagent/ethanol/whiskeysoda
- name = "Whiskey Soda"
- id = "whiskeysoda"
- description = "For the more refined griffon."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 35
-
-datum/reagent/ethanol/antifreeze
- name = "Anti-freeze"
- id = "antifreeze"
- description = "Ultimate refreshment."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 25
-
-datum/reagent/ethanol/antifreeze/on_mob_life(var/mob/living/M as mob)
- if (M.bodytemperature < 330)
- M.bodytemperature = min(330, M.bodytemperature + (20 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055
- ..()
- return
-
-datum/reagent/ethanol/barefoot
- name = "Barefoot"
- id = "barefoot"
- description = "Barefoot and pregnant"
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 45
-
-datum/reagent/ethanol/snowwhite
- name = "Snow White"
- id = "snowwhite"
- description = "A cold refreshment"
- color = "#FFFFFF" // rgb: 255, 255, 255
- boozepwr = 45
-
-datum/reagent/ethanol/demonsblood
- name = "Demons Blood"
- id = "demonsblood"
- description = "AHHHH!!!!"
- color = "#820000" // rgb: 130, 0, 0
- boozepwr = 35
-
-datum/reagent/ethanol/vodkatonic
- name = "Vodka and Tonic"
- id = "vodkatonic"
- description = "For when a gin and tonic isn't russian enough."
- color = "#0064C8" // rgb: 0, 100, 200
- boozepwr = 35
-
-datum/reagent/ethanol/ginfizz
- name = "Gin Fizz"
- id = "ginfizz"
- description = "Refreshingly lemony, deliciously dry."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 45
-
-datum/reagent/ethanol/bahama_mama
- name = "Bahama mama"
- id = "bahama_mama"
- description = "Tropical cocktail."
- color = "#FF7F3B" // rgb: 255, 127, 59
- boozepwr = 35
-
-datum/reagent/ethanol/singulo
- name = "Singulo"
- id = "singulo"
- description = "A blue-space beverage!"
- color = "#2E6671" // rgb: 46, 102, 113
- boozepwr = 15
-
-datum/reagent/ethanol/sbiten
- name = "Sbiten"
- id = "sbiten"
- description = "A spicy Vodka! Might be a little hot for the little guys!"
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 35
-
-datum/reagent/ethanol/sbiten/on_mob_life(var/mob/living/M as mob)
- if (M.bodytemperature < 360)
- M.bodytemperature = min(360, M.bodytemperature + (50 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055
- ..()
- return
-
-datum/reagent/ethanol/devilskiss
- name = "Devils Kiss"
- id = "devilskiss"
- description = "Creepy time!"
- color = "#A68310" // rgb: 166, 131, 16
- boozepwr = 35
-
-datum/reagent/ethanol/red_mead
- name = "Red Mead"
- id = "red_mead"
- description = "The true Viking drink! Even though it has a strange red color."
- color = "#C73C00" // rgb: 199, 60, 0
- boozepwr = 45
-
-datum/reagent/ethanol/mead
- name = "Mead"
- id = "mead"
- description = "A Vikings drink, though a cheap one."
- reagent_state = LIQUID
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 45
-
-datum/reagent/ethanol/mead/on_mob_life(var/mob/living/M as mob)
- M.nutrition += 1
- ..()
- return
-
-datum/reagent/ethanol/iced_beer
- name = "Iced Beer"
- id = "iced_beer"
- description = "A beer which is so cold the air around it freezes."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 55
-
-datum/reagent/ethanol/iced_beer/on_mob_life(var/mob/living/M as mob)
- if(M.bodytemperature > 270)
- M.bodytemperature = max(270, M.bodytemperature - (20 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055
- ..()
- return
-
-datum/reagent/ethanol/grog
- name = "Grog"
- id = "grog"
- description = "Watered down rum, Nanotrasen approves!"
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 90
-
-datum/reagent/ethanol/aloe
- name = "Aloe"
- id = "aloe"
- description = "So very, very, very good."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 35
-
-datum/reagent/ethanol/andalusia
- name = "Andalusia"
- id = "andalusia"
- description = "A nice, strange named drink."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 35
-
-datum/reagent/ethanol/alliescocktail
- name = "Allies Cocktail"
- id = "alliescocktail"
- description = "A drink made from your allies, not as sweet as when made from your enemies."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 35
-
-datum/reagent/ethanol/acid_spit
- name = "Acid Spit"
- id = "acidspit"
- description = "A drink for the daring, can be deadly if incorrectly prepared!"
- reagent_state = LIQUID
- color = "#365000" // rgb: 54, 80, 0
- boozepwr = 45
-
-datum/reagent/ethanol/amasec
- name = "Amasec"
- id = "amasec"
- description = "Official drink of the Nanotrasen Gun-Club!"
- reagent_state = LIQUID
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 35
-
-datum/reagent/ethanol/changelingsting
- name = "Changeling Sting"
- id = "changelingsting"
- description = "You take a tiny sip and feel a burning sensation..."
- color = "#2E6671" // rgb: 46, 102, 113
- boozepwr = 15
-
-datum/reagent/ethanol/irishcarbomb
- name = "Irish Car Bomb"
- id = "irishcarbomb"
- description = "Mmm, tastes like chocolate cake..."
- color = "#2E6671" // rgb: 46, 102, 113
- boozepwr = 25
-
-datum/reagent/ethanol/syndicatebomb
- name = "Syndicate Bomb"
- id = "syndicatebomb"
- description = "Tastes like terrorism!"
- color = "#2E6671" // rgb: 46, 102, 113
- boozepwr = 15
-
-datum/reagent/ethanol/erikasurprise
- name = "Erika Surprise"
- id = "erikasurprise"
- description = "The surprise is, it's green!"
- color = "#2E6671" // rgb: 46, 102, 113
- boozepwr = 35
-
-datum/reagent/ethanol/driestmartini
- name = "Driest Martini"
- id = "driestmartini"
- description = "Only for the experienced. You think you see sand floating in the glass."
- nutriment_factor = 1 * REAGENTS_METABOLISM
- color = "#2E6671" // rgb: 46, 102, 113
- boozepwr = 25
-
-datum/reagent/ethanol/bananahonk
- name = "Banana Mama"
- id = "bananahonk"
- description = "A drink from Clown Heaven."
- nutriment_factor = 1 * REAGENTS_METABOLISM
- color = "#FFFF91" // rgb: 255, 255, 140
- boozepwr = 25
-
-datum/reagent/ethanol/bananahonk/on_mob_life(var/mob/living/M as mob)
- M.nutrition += nutriment_factor
- if(istype(M, /mob/living/carbon/human) && M.job in list("Clown") || istype(M, /mob/living/carbon/monkey))
- if(!M) M = holder.my_atom
- M.heal_organ_damage(1,1)
- ..()
- return
-
-datum/reagent/ethanol/silencer
- name = "Silencer"
- id = "silencer"
- description = "A drink from Mime Heaven."
- nutriment_factor = 1 * REAGENTS_METABOLISM
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 15
-
-datum/reagent/ethanol/silencer/on_mob_life(var/mob/living/M as mob)
- M.nutrition += nutriment_factor
- if(istype(M, /mob/living/carbon/human) && M.job in list("Mime"))
- if(!M) M = holder.my_atom
- M.heal_organ_damage(1,1)
- ..()
- return
-
-// Undefine the alias for REAGENTS_EFFECT_MULTIPLER
-#undef REM
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm
new file mode 100644
index 00000000000..641c0916c0f
--- /dev/null
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm
@@ -0,0 +1,858 @@
+#define SOLID 1
+#define LIQUID 2
+#define GAS 3
+
+#define REM REAGENTS_EFFECT_MULTIPLIER
+
+//The reaction procs must ALWAYS set src = null, this detaches the proc from the object (the reagent)
+//so that it can continue working when the reagent is deleted while the proc is still active.
+
+
+//Various reagents
+//Toxin & acid reagents
+//Hydroponics stuff
+
+datum/reagent
+ var/name = "Reagent"
+ var/id = "reagent"
+ var/description = ""
+ var/datum/reagents/holder = null
+ var/reagent_state = LIQUID
+ var/list/data
+ var/volume = 0
+ //var/list/viruses = list()
+ var/color = "#000000" // rgb: 0, 0, 0 (does not support alpha channels - yet!)
+ var/metabolization_rate = REAGENTS_METABOLISM
+
+datum/reagent/proc/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) //By default we have a chance to transfer some
+ if(!istype(M, /mob/living))
+ return 0
+ var/datum/reagent/self = src
+ src = null //of the reagent to the mob on TOUCHING it.
+
+ if(!istype(self.holder.my_atom, /obj/effect/effect/chem_smoke))
+ // If the chemicals are in a smoke cloud, do not try to let the chemicals "penetrate" into the mob's system (balance station 13) -- Doohl
+
+ if(method == TOUCH)
+
+ var/chance = 1
+ var/block = 0
+
+ for(var/obj/item/clothing/C in M.get_equipped_items())
+ if(C.permeability_coefficient < chance) chance = C.permeability_coefficient
+ if(istype(C, /obj/item/clothing/suit/bio_suit))
+ // bio suits are just about completely fool-proof - Doohl
+ // kind of a hacky way of making bio suits more resistant to chemicals but w/e
+ if(prob(75))
+ block = 1
+
+ if(istype(C, /obj/item/clothing/head/bio_hood))
+ if(prob(75))
+ block = 1
+
+ chance = chance * 100
+
+ if(prob(chance) && !block)
+ if(M.reagents)
+ M.reagents.add_reagent(self.id,self.volume/2)
+ return 1
+
+datum/reagent/proc/reaction_obj(var/obj/O, var/volume) //By default we transfer a small part of the reagent to the object
+ src = null //if it can hold reagents. nope!
+ //if(O.reagents)
+ // O.reagents.add_reagent(id,volume/3)
+ return
+
+datum/reagent/proc/reaction_turf(var/turf/T, var/volume)
+ src = null
+ return
+
+datum/reagent/proc/on_mob_life(var/mob/living/M as mob)
+ if(!istype(M, /mob/living))
+ return //Noticed runtime errors from pacid trying to damage ghosts, this should fix. --NEO
+ holder.remove_reagent(src.id, metabolization_rate * M.metabolism_efficiency) //By default it slowly disappears.
+ return
+
+datum/reagent/proc/on_move(var/mob/M)
+ return
+
+// Called after add_reagents creates a new reagent.
+datum/reagent/proc/on_new(var/data)
+ return
+
+// Called when two reagents of the same are mixing.
+datum/reagent/proc/on_merge(var/data)
+ return
+
+datum/reagent/proc/on_update(var/atom/A)
+ return
+
+datum/reagent/blood
+ data = list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null)
+ name = "Blood"
+ id = "blood"
+ color = "#C80000" // rgb: 200, 0, 0
+
+datum/reagent/blood/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
+ var/datum/reagent/blood/self = src
+ src = null
+ if(self.data && self.data["viruses"])
+ for(var/datum/disease/D in self.data["viruses"])
+
+ if(D.spread_flags & SPECIAL || D.spread_flags & NON_CONTAGIOUS)
+ continue
+
+ if(method == TOUCH)
+ M.ContractDisease(D)
+ else //injected
+ M.ForceContractDisease(D)
+
+datum/reagent/blood/on_new(var/list/data)
+ if(istype(data))
+ SetViruses(src, data)
+
+datum/reagent/blood/on_merge(var/list/data)
+ if(src.data && data)
+ src.data["cloneable"] = 0 //On mix, consider the genetic sampling unviable for pod cloning, or else we won't know who's even getting cloned, etc
+ if(src.data["viruses"] || data["viruses"])
+
+ var/list/mix1 = src.data["viruses"]
+ var/list/mix2 = data["viruses"]
+
+ // Stop issues with the list changing during mixing.
+ var/list/to_mix = list()
+
+ for(var/datum/disease/advance/AD in mix1)
+ to_mix += AD
+ for(var/datum/disease/advance/AD in mix2)
+ to_mix += AD
+
+ var/datum/disease/advance/AD = Advance_Mix(to_mix)
+ if(AD)
+ var/list/preserve = list(AD)
+ for(var/D in src.data["viruses"])
+ if(!istype(D, /datum/disease/advance))
+ preserve += D
+ src.data["viruses"] = preserve
+ return 1
+
+
+datum/reagent/blood/reaction_turf(var/turf/simulated/T, var/volume)//splash the blood all over the place
+ if(!istype(T)) return
+ var/datum/reagent/blood/self = src
+ src = null
+ if(!(volume >= 3)) return
+ //var/datum/disease/D = self.data["virus"]
+ if(!self.data["donor"] || istype(self.data["donor"], /mob/living/carbon/human))
+ var/obj/effect/decal/cleanable/blood/blood_prop = locate() in T //find some blood here
+ if(!blood_prop) //first blood!
+ blood_prop = new(T)
+ blood_prop.blood_DNA[self.data["blood_DNA"]] = self.data["blood_type"]
+
+ for(var/datum/disease/D in self.data["viruses"])
+ var/datum/disease/newVirus = D.Copy(1)
+ blood_prop.viruses += newVirus
+ newVirus.holder = blood_prop
+
+
+ else if(istype(self.data["donor"], /mob/living/carbon/monkey))
+ var/obj/effect/decal/cleanable/blood/blood_prop = locate() in T
+ if(!blood_prop)
+ blood_prop = new(T)
+ blood_prop.blood_DNA["Non-Human DNA"] = "A+"
+ for(var/datum/disease/D in self.data["viruses"])
+ var/datum/disease/newVirus = D.Copy(1)
+ blood_prop.viruses += newVirus
+ newVirus.holder = blood_prop
+
+ else if(istype(self.data["donor"], /mob/living/carbon/alien))
+ var/obj/effect/decal/cleanable/xenoblood/blood_prop = locate() in T
+ if(!blood_prop)
+ blood_prop = new(T)
+ blood_prop.blood_DNA["UNKNOWN DNA STRUCTURE"] = "X*"
+ for(var/datum/disease/D in self.data["viruses"])
+ var/datum/disease/newVirus = D.Copy(1)
+ blood_prop.viruses += newVirus
+ newVirus.holder = blood_prop
+ return
+
+/* Must check the transfering of reagents and their data first. They all can point to one disease datum.
+
+ Del()
+ if(src.data["virus"])
+ var/datum/disease/D = src.data["virus"]
+ D.cure(0)
+ ..()
+*/
+datum/reagent/vaccine
+ //data must contain virus type
+ name = "Vaccine"
+ id = "vaccine"
+ color = "#C81040" // rgb: 200, 16, 64
+
+datum/reagent/vaccine/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
+ var/datum/reagent/vaccine/self = src
+ src = null
+ if(islist(self.data) && method == INGEST)
+ for(var/datum/disease/D in M.viruses)
+ if(D.GetDiseaseID() in self.data)
+ D.cure()
+ M.resistances |= self.data
+ return
+
+datum/reagent/vaccine/on_merge(var/list/data)
+ if(istype(data))
+ src.data |= data.Copy()
+
+
+datum/reagent/water
+ name = "Water"
+ id = "water"
+ description = "A ubiquitous chemical substance that is composed of hydrogen and oxygen."
+ color = "#AAAAAA77" // rgb: 170, 170, 170, 77 (alpha)
+ var/cooling_temperature = 2
+
+datum/reagent/water/reaction_turf(var/turf/simulated/T, var/volume)
+ if (!istype(T)) return
+ var/CT = cooling_temperature
+ src = null
+ if(volume >= 10)
+ T.MakeSlippery()
+
+ for(var/mob/living/carbon/slime/M in T)
+ M.apply_water()
+
+ var/hotspot = (locate(/obj/effect/hotspot) in T)
+ if(hotspot && !istype(T, /turf/space))
+ if(T.air)
+ var/datum/gas_mixture/G = T.air
+ G.temperature = max(min(G.temperature-(CT*1000),G.temperature/CT),0)
+ G.react()
+ qdel(hotspot)
+ return
+
+datum/reagent/water/reaction_obj(var/obj/O, var/volume)
+ src = null
+ if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/monkeycube))
+ var/obj/item/weapon/reagent_containers/food/snacks/monkeycube/cube = O
+ if(!cube.wrapped)
+ cube.Expand()
+ return
+
+datum/reagent/water/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)//Splashing people with water can help put them out!
+ if(!istype(M, /mob/living))
+ return
+ if(method == TOUCH)
+ M.adjust_fire_stacks(-(volume / 10))
+ if(M.fire_stacks <= 0)
+ M.ExtinguishMob()
+ return
+
+datum/reagent/water/holywater
+ name = "Holy Water"
+ id = "holywater"
+ description = "Water blessed by some deity."
+ color = "#E0E8EF" // rgb: 224, 232, 239
+
+datum/reagent/water/holywater/on_mob_life(var/mob/living/M as mob)
+ if(!data) data = 1
+ data++
+ M.jitteriness = max(M.jitteriness-5,0)
+ if(data >= 30) // 12 units, 54 seconds @ metabolism 0.4 units & tick rate 1.8 sec
+ if (!M.stuttering) M.stuttering = 1
+ M.stuttering += 4
+ M.Dizzy(5)
+ if(iscultist(M) && prob(5))
+ M.say(pick("Av'te Nar'sie","Pa'lid Mors","INO INO ORA ANA","SAT ANA!","Daim'niodeis Arc'iai Le'eones","Egkau'haom'nai en Chaous","Ho Diak'nos tou Ap'iron","R'ge Na'sie","Diabo us Vo'iscum","Si gn'um Co'nu"))
+ if(data >= 75 && prob(33)) // 30 units, 135 seconds
+ if (!M.confused) M.confused = 1
+ M.confused += 3
+ if(iscultist(M))
+ ticker.mode.remove_cultist(M.mind)
+ holder.remove_reagent(src.id, src.volume) // maybe this is a little too perfect and a max() cap on the statuses would be better??
+ M.jitteriness = 0
+ M.stuttering = 0
+ M.confused = 0
+ holder.remove_reagent(src.id, 0.4) //fixed consumption to prevent balancing going out of whack
+ return
+
+datum/reagent/water/holywater/reaction_turf(var/turf/simulated/T, var/volume)
+ ..()
+ if(!istype(T)) return
+ if(volume>=10)
+ for(var/obj/effect/rune/R in T)
+ qdel(R)
+ T.Bless()
+
+datum/reagent/fuel/unholywater //if you somehow managed to extract this from someone, dont splash it on yourself and have a smoke
+ name = "Unholy Water"
+ id = "unholywater"
+ description = "Something that shouldn't exist on this plane of existance."
+
+datum/reagent/fuel/unholywater/on_mob_life(var/mob/living/M as mob)
+ M.adjustBrainLoss(3)
+ if(iscultist(M))
+ M.status_flags |= GOTTAGOFAST
+ M.drowsyness = max(M.drowsyness-5, 0)
+ M.AdjustParalysis(-2)
+ M.AdjustStunned(-2)
+ M.AdjustWeakened(-2)
+ else
+ M.adjustToxLoss(2)
+ M.adjustFireLoss(2)
+ M.adjustOxyLoss(2)
+ M.adjustBruteLoss(2)
+ holder.remove_reagent(src.id, 1)
+
+datum/reagent/hellwater //if someone has this in their system they've really pissed off an eldrich god
+ name = "Hell Water"
+ id = "hell_water"
+ description = "YOUR FLESH! IT BURNS!"
+
+datum/reagent/hellwater/on_mob_life(var/mob/living/M as mob)
+ M.fire_stacks = min(5,M.fire_stacks + 3)
+ M.IgniteMob() //Only problem with igniting people is currently the commonly availible fire suits make you immune to being on fire
+ M.adjustToxLoss(1)
+ M.adjustFireLoss(1) //Hence the other damages... ain't I a bastard?
+ M.adjustBrainLoss(5)
+ holder.remove_reagent(src.id, 1)
+
+datum/reagent/lube
+ name = "Space Lube"
+ id = "lube"
+ description = "Lubricant is a substance introduced between two moving surfaces to reduce the friction and wear between them. giggity."
+ color = "#009CA8" // rgb: 0, 156, 168
+
+datum/reagent/lube/reaction_turf(var/turf/simulated/T, var/volume)
+ if (!istype(T)) return
+ src = null
+ if(volume >= 1)
+ T.MakeSlippery(2)
+
+datum/reagent/slimetoxin
+ name = "Mutation Toxin"
+ id = "mutationtoxin"
+ description = "A corruptive toxin produced by slimes."
+ color = "#13BC5E" // rgb: 19, 188, 94
+
+datum/reagent/aslimetoxin
+ name = "Advanced Mutation Toxin"
+ id = "amutationtoxin"
+ description = "An advanced corruptive toxin produced by slimes."
+ color = "#13BC5E" // rgb: 19, 188, 94
+
+datum/reagent/aslimetoxin/reaction_mob(var/mob/M, var/volume)
+ src = null
+ M.ForceContractDisease(new /datum/disease/transformation/slime(0))
+
+datum/reagent/space_drugs
+ name = "Space drugs"
+ id = "space_drugs"
+ description = "An illegal chemical compound used as drug."
+ color = "#60A584" // rgb: 96, 165, 132
+ metabolization_rate = 0.5 * REAGENTS_METABOLISM
+
+datum/reagent/space_drugs/on_mob_life(var/mob/living/M as mob)
+ M.druggy = max(M.druggy, 15)
+ if(isturf(M.loc) && !istype(M.loc, /turf/space))
+ if(M.canmove)
+ if(prob(10)) step(M, pick(cardinal))
+ if(prob(7)) M.emote(pick("twitch","drool","moan","giggle"))
+ ..()
+ return
+
+datum/reagent/serotrotium
+ name = "Serotrotium"
+ id = "serotrotium"
+ description = "A chemical compound that promotes concentrated production of the serotonin neurotransmitter in humans."
+ color = "#202040" // rgb: 20, 20, 40
+ metabolization_rate = 0.25 * REAGENTS_METABOLISM
+
+datum/reagent/serotrotium/on_mob_life(var/mob/living/M as mob)
+ if(ishuman(M))
+ if(prob(7)) M.emote(pick("twitch","drool","moan","gasp"))
+ ..()
+ return
+
+datum/reagent/oxygen
+ name = "Oxygen"
+ id = "oxygen"
+ description = "A colorless, odorless gas."
+ reagent_state = GAS
+ color = "#808080" // rgb: 128, 128, 128
+
+datum/reagent/copper
+ name = "Copper"
+ id = "copper"
+ description = "A highly ductile metal."
+ reagent_state = SOLID
+ color = "#6E3B08" // rgb: 110, 59, 8
+
+datum/reagent/nitrogen
+ name = "Nitrogen"
+ id = "nitrogen"
+ description = "A colorless, odorless, tasteless gas."
+ reagent_state = GAS
+ color = "#808080" // rgb: 128, 128, 128
+
+datum/reagent/hydrogen
+ name = "Hydrogen"
+ id = "hydrogen"
+ description = "A colorless, odorless, nonmetallic, tasteless, highly combustible diatomic gas."
+ reagent_state = GAS
+ color = "#808080" // rgb: 128, 128, 128
+
+datum/reagent/potassium
+ name = "Potassium"
+ id = "potassium"
+ description = "A soft, low-melting solid that can easily be cut with a knife. Reacts violently with water."
+ reagent_state = SOLID
+ color = "#A0A0A0" // rgb: 160, 160, 160
+
+datum/reagent/mercury
+ name = "Mercury"
+ id = "mercury"
+ description = "A chemical element."
+ color = "#484848" // rgb: 72, 72, 72
+
+datum/reagent/mercury/on_mob_life(var/mob/living/M as mob)
+ if(M.canmove && istype(M.loc, /turf/space))
+ step(M, pick(cardinal))
+ if(prob(5))
+ M.emote(pick("twitch","drool","moan"))
+ M.adjustBrainLoss(2)
+ ..()
+ return
+
+datum/reagent/sulfur
+ name = "Sulfur"
+ id = "sulfur"
+ description = "A chemical element."
+ reagent_state = SOLID
+ color = "#BF8C00" // rgb: 191, 140, 0
+
+datum/reagent/carbon
+ name = "Carbon"
+ id = "carbon"
+ description = "A chemical element."
+ reagent_state = SOLID
+ color = "#1C1300" // rgb: 30, 20, 0
+
+datum/reagent/carbon/reaction_turf(var/turf/T, var/volume)
+ src = null
+ if(!istype(T, /turf/space))
+ new /obj/effect/decal/cleanable/dirt(T)
+
+datum/reagent/chlorine
+ name = "Chlorine"
+ id = "chlorine"
+ description = "A chemical element."
+ reagent_state = GAS
+ color = "#808080" // rgb: 128, 128, 128
+
+datum/reagent/chlorine/on_mob_life(var/mob/living/M as mob)
+ M.take_organ_damage(1*REM, 0)
+ ..()
+ return
+
+datum/reagent/fluorine
+ name = "Fluorine"
+ id = "fluorine"
+ description = "A highly-reactive chemical element."
+ reagent_state = GAS
+ color = "#808080" // rgb: 128, 128, 128
+
+datum/reagent/fluorine/on_mob_life(var/mob/living/M as mob)
+ M.adjustToxLoss(1*REM)
+ ..()
+ return
+
+datum/reagent/sodium
+ name = "Sodium"
+ id = "sodium"
+ description = "A chemical element."
+ reagent_state = SOLID
+ color = "#808080" // rgb: 128, 128, 128
+
+datum/reagent/phosphorus
+ name = "Phosphorus"
+ id = "phosphorus"
+ description = "A chemical element."
+ reagent_state = SOLID
+ color = "#832828" // rgb: 131, 40, 40
+
+datum/reagent/lithium
+ name = "Lithium"
+ id = "lithium"
+ description = "A chemical element."
+ reagent_state = SOLID
+ color = "#808080" // rgb: 128, 128, 128
+
+datum/reagent/lithium/on_mob_life(var/mob/living/M as mob)
+ if(M.canmove && istype(M.loc, /turf/space))
+ step(M, pick(cardinal))
+ if(prob(5))
+ M.emote(pick("twitch","drool","moan"))
+ ..()
+ return
+
+datum/reagent/glycerol
+ name = "Glycerol"
+ id = "glycerol"
+ description = "Glycerol is a simple polyol compound. Glycerol is sweet-tasting and of low toxicity."
+ color = "#808080" // rgb: 128, 128, 128
+
+datum/reagent/nitroglycerin
+ name = "Nitroglycerin"
+ id = "nitroglycerin"
+ description = "Nitroglycerin is a heavy, colorless, oily, explosive liquid obtained by nitrating glycerol."
+ color = "#808080" // rgb: 128, 128, 128
+
+datum/reagent/radium
+ name = "Radium"
+ id = "radium"
+ description = "Radium is an alkaline earth metal. It is extremely radioactive."
+ reagent_state = SOLID
+ color = "#C7C7C7" // rgb: 199,199,199
+
+datum/reagent/radium/on_mob_life(var/mob/living/M as mob)
+ M.apply_effect(2*REM/M.metabolism_efficiency,IRRADIATE,0)
+ ..()
+ return
+
+datum/reagent/radium/reaction_turf(var/turf/T, var/volume)
+ src = null
+ if(volume >= 3)
+ if(!istype(T, /turf/space))
+ new /obj/effect/decal/cleanable/greenglow(T)
+ return
+
+datum/reagent/thermite
+ name = "Thermite"
+ id = "thermite"
+ description = "Thermite produces an aluminothermic reaction known as a thermite reaction. Can be used to melt walls."
+ reagent_state = SOLID
+ color = "#673910" // rgb: 103, 57, 16
+
+datum/reagent/thermite/reaction_turf(var/turf/T, var/volume)
+ src = null
+ if(volume >= 1 && istype(T, /turf/simulated/wall))
+ var/turf/simulated/wall/Wall = T
+ if(istype(Wall, /turf/simulated/wall/r_wall))
+ Wall.thermite = Wall.thermite+(volume*2.5)
+ else
+ Wall.thermite = Wall.thermite+(volume*10)
+ Wall.overlays = list()
+ Wall.overlays += image('icons/effects/effects.dmi',"thermite")
+ return
+
+datum/reagent/thermite/on_mob_life(var/mob/living/M as mob)
+ M.adjustFireLoss(1)
+ ..()
+ return
+
+datum/reagent/sterilizine
+ name = "Sterilizine"
+ id = "sterilizine"
+ description = "Sterilizes wounds in preparation for surgery."
+ color = "#C8A5DC" // rgb: 200, 165, 220
+
+datum/reagent/iron
+ name = "Iron"
+ id = "iron"
+ description = "Pure iron is a metal."
+ reagent_state = SOLID
+ color = "#C8A5DC" // rgb: 200, 165, 220
+
+datum/reagent/gold
+ name = "Gold"
+ id = "gold"
+ description = "Gold is a dense, soft, shiny metal and the most malleable and ductile metal known."
+ reagent_state = SOLID
+ color = "#F7C430" // rgb: 247, 196, 48
+
+datum/reagent/silver
+ name = "Silver"
+ id = "silver"
+ description = "A soft, white, lustrous transition metal, it has the highest electrical conductivity of any element and the highest thermal conductivity of any metal."
+ reagent_state = SOLID
+ color = "#D0D0D0" // rgb: 208, 208, 208
+
+datum/reagent/uranium
+ name ="Uranium"
+ id = "uranium"
+ description = "A silvery-white metallic chemical element in the actinide series, weakly radioactive."
+ reagent_state = SOLID
+ color = "#B8B8C0" // rgb: 184, 184, 192
+
+datum/reagent/uranium/on_mob_life(var/mob/living/M as mob)
+ M.apply_effect(1/M.metabolism_efficiency,IRRADIATE,0)
+ ..()
+ return
+
+
+datum/reagent/uranium/reaction_turf(var/turf/T, var/volume)
+ src = null
+ if(volume >= 3)
+ if(!istype(T, /turf/space))
+ new /obj/effect/decal/cleanable/greenglow(T)
+
+datum/reagent/aluminium
+ name = "Aluminium"
+ id = "aluminium"
+ description = "A silvery white and ductile member of the boron group of chemical elements."
+ reagent_state = SOLID
+ color = "#A8A8A8" // rgb: 168, 168, 168
+
+datum/reagent/silicon
+ name = "Silicon"
+ id = "silicon"
+ description = "A tetravalent metalloid, silicon is less reactive than its chemical analog carbon."
+ reagent_state = SOLID
+ color = "#A8A8A8" // rgb: 168, 168, 168
+
+datum/reagent/fuel
+ name = "Welding fuel"
+ id = "fuel"
+ description = "Required for welders. Flamable."
+ color = "#660000" // rgb: 102, 0, 0
+
+datum/reagent/fuel/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)//Splashing people with welding fuel to make them easy to ignite!
+ if(!istype(M, /mob/living))
+ return
+ if(method == TOUCH)
+ M.adjust_fire_stacks(volume / 10)
+ return
+
+datum/reagent/fuel/on_mob_life(var/mob/living/M as mob)
+ M.adjustToxLoss(1)
+ ..()
+ return
+
+datum/reagent/space_cleaner
+ name = "Space cleaner"
+ id = "cleaner"
+ description = "A compound used to clean things. Now with 50% more sodium hypochlorite!"
+ color = "#A5F0EE" // rgb: 165, 240, 238
+
+datum/reagent/space_cleaner/reaction_obj(var/obj/O, var/volume)
+ if(istype(O,/obj/effect/decal/cleanable))
+ qdel(O)
+ else
+ if(O)
+ O.clean_blood()
+
+datum/reagent/space_cleaner/reaction_turf(var/turf/T, var/volume)
+ if(volume >= 1)
+ T.clean_blood()
+ for(var/obj/effect/decal/cleanable/C in T)
+ qdel(C)
+
+ for(var/mob/living/carbon/slime/M in T)
+ M.adjustToxLoss(rand(5,10))
+
+datum/reagent/space_cleaner/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
+ if(iscarbon(M))
+ var/mob/living/carbon/C = M
+ if(C.r_hand)
+ C.r_hand.clean_blood()
+ if(C.l_hand)
+ C.l_hand.clean_blood()
+ if(C.wear_mask)
+ if(C.wear_mask.clean_blood())
+ C.update_inv_wear_mask(0)
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = C
+ if(H.head)
+ if(H.head.clean_blood())
+ H.update_inv_head(0)
+ if(H.wear_suit)
+ if(H.wear_suit.clean_blood())
+ H.update_inv_wear_suit(0)
+ else if(H.w_uniform)
+ if(H.w_uniform.clean_blood())
+ H.update_inv_w_uniform(0)
+ if(H.shoes)
+ if(H.shoes.clean_blood())
+ H.update_inv_shoes(0)
+ M.clean_blood()
+
+datum/reagent/cryptobiolin
+ name = "Cryptobiolin"
+ id = "cryptobiolin"
+ description = "Cryptobiolin causes confusion and dizzyness."
+ color = "#C8A5DC" // rgb: 200, 165, 220
+ metabolization_rate = 0.5 * REAGENTS_METABOLISM
+
+datum/reagent/cryptobiolin/on_mob_life(var/mob/living/M as mob)
+ M.Dizzy(1)
+ if(!M.confused)
+ M.confused = 1
+ M.confused = max(M.confused, 20)
+ return
+
+datum/reagent/impedrezene
+ name = "Impedrezene"
+ id = "impedrezene"
+ description = "Impedrezene is a narcotic that impedes one's ability by slowing down the higher brain cell functions."
+ color = "#C8A5DC" // rgb: 200, 165, 220
+
+datum/reagent/impedrezene/on_mob_life(var/mob/living/M as mob)
+ M.jitteriness = max(M.jitteriness-5,0)
+ if(prob(80)) M.adjustBrainLoss(1*REM)
+ if(prob(50)) M.drowsyness = max(M.drowsyness, 3)
+ if(prob(10)) M.emote("drool")
+ ..()
+ return
+
+datum/reagent/nanites
+ name = "Nanomachines"
+ id = "nanites"
+ description = "Microscopic construction robots."
+ color = "#535E66" // rgb: 83, 94, 102
+
+datum/reagent/nanites/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
+ src = null
+ if( (prob(10) && method==TOUCH) || method==INGEST)
+ M.ForceContractDisease(new /datum/disease/transformation/robot(0))
+
+datum/reagent/xenomicrobes
+ name = "Xenomicrobes"
+ id = "xenomicrobes"
+ description = "Microbes with an entirely alien cellular structure."
+ color = "#535E66" // rgb: 83, 94, 102
+
+datum/reagent/xenomicrobes/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
+ src = null
+ if( (prob(10) && method==TOUCH) || method==INGEST)
+ M.ContractDisease(new /datum/disease/transformation/xeno(0))
+
+datum/reagent/fluorosurfactant//foam precursor
+ name = "Fluorosurfactant"
+ id = "fluorosurfactant"
+ description = "A perfluoronated sulfonic acid that forms a foam when mixed with water."
+ color = "#9E6B38" // rgb: 158, 107, 56
+
+datum/reagent/foaming_agent// Metal foaming agent. This is lithium hydride. Add other recipes (e.g. LiH + H2O -> LiOH + H2) eventually.
+ name = "Foaming agent"
+ id = "foaming_agent"
+ description = "A agent that yields metallic foam when mixed with light metal and a strong acid."
+ reagent_state = SOLID
+ color = "#664B63" // rgb: 102, 75, 99
+
+datum/reagent/ammonia
+ name = "Ammonia"
+ id = "ammonia"
+ description = "A caustic substance commonly used in fertilizer or household cleaners."
+ reagent_state = GAS
+ color = "#404030" // rgb: 64, 64, 48
+
+datum/reagent/diethylamine
+ name = "Diethylamine"
+ id = "diethylamine"
+ description = "A secondary amine, mildly corrosive."
+ color = "#604030" // rgb: 96, 64, 48
+
+
+
+/////////////////////////Coloured Crayon Powder////////////////////////////
+//For colouring in /proc/mix_color_from_reagents
+
+
+datum/reagent/crayonpowder
+ name = "Crayon Powder"
+ id = "crayon powder"
+ var/colorname = "none"
+ description = "A powder made by grinding down crayons, good for colouring chemical reagents."
+ reagent_state = SOLID
+ color = "#FFFFFF" // rgb: 207, 54, 0
+
+datum/reagent/crayonpowder/New()
+ description = "\an [colorname] powder made by grinding down crayons, good for colouring chemical reagents."
+
+
+datum/reagent/crayonpowder/red
+ name = "Red Crayon Powder"
+ id = "redcrayonpowder"
+ colorname = "red"
+
+datum/reagent/crayonpowder/orange
+ name = "Orange Crayon Powder"
+ id = "orangecrayonpowder"
+ colorname = "orange"
+ color = "#FF9300" // orange
+
+datum/reagent/crayonpowder/yellow
+ name = "Yellow Crayon Powder"
+ id = "yellowcrayonpowder"
+ colorname = "yellow"
+ color = "#FFF200" // yellow
+
+datum/reagent/crayonpowder/green
+ name = "Green Crayon Powder"
+ id = "greencrayonpowder"
+ colorname = "green"
+ color = "#A8E61D" // green
+
+datum/reagent/crayonpowder/blue
+ name = "Blue Crayon Powder"
+ id = "bluecrayonpowder"
+ colorname = "blue"
+ color = "#00B7EF" // blue
+
+datum/reagent/crayonpowder/purple
+ name = "Purple Crayon Powder"
+ id = "purplecrayonpowder"
+ colorname = "purple"
+ color = "#DA00FF" // purple
+
+datum/reagent/crayonpowder/invisible
+ name = "Invisible Crayon Powder"
+ id = "invisiblecrayonpowder"
+ colorname = "invisible"
+ color = "#FFFFFF00" // white + no alpha
+
+
+
+
+//////////////////////////////////Hydroponics stuff///////////////////////////////
+
+datum/reagent/plantnutriment
+ name = "Generic nutriment"
+ id = "plantnutriment"
+ description = "Some kind of nutriment. You can't really tell what it is. You should probably report it, along with how you obtained it."
+ color = "#000000" // RBG: 0, 0, 0
+ var/tox_prob = 0
+
+datum/reagent/plantnutriment/on_mob_life(var/mob/living/M as mob)
+ if(prob(tox_prob))
+ M.adjustToxLoss(1*REM)
+ ..()
+ return
+
+datum/reagent/plantnutriment/eznutriment
+ name = "E-Z-Nutrient"
+ id = "eznutriment"
+ description = "Cheap and extremely common type of plant nutriment."
+ color = "#376400" // RBG: 50, 100, 0
+ tox_prob = 10
+
+datum/reagent/plantnutriment/left4zednutriment
+ name = "Left 4 Zed"
+ id = "left4zednutriment"
+ description = "Unstable nutriment that makes plants mutate more often than usual."
+ color = "#1A1E4D" // RBG: 26, 30, 77
+ tox_prob = 25
+
+datum/reagent/plantnutriment/robustharvestnutriment
+ name = "Robust Harvest"
+ id = "robustharvestnutriment"
+ description = "Very potent nutriment that prevents plants from mutating."
+ color = "#9D9D00" // RBG: 157, 157, 0
+ tox_prob = 15
+
+
+
+// Undefine the alias for REAGENTS_EFFECT_MULTIPLER
+#undef REM
+
diff --git a/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Drink-Reagents/Alcohols.dm b/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Drink-Reagents/Alcohols.dm
new file mode 100644
index 00000000000..2c059efc478
--- /dev/null
+++ b/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Drink-Reagents/Alcohols.dm
@@ -0,0 +1,620 @@
+
+
+
+///////////////////////////////////////////////////////////////////////////////////////
+ //ALCOHOLS
+/////////////////////////////////////////////////////////////////////////////////////
+
+/*boozepwr chart
+55 = non-toxic alchohol
+45 = medium-toxic
+35 = the hard stuff
+25 = potent mixes
+<15 = deadly toxic
+*/
+
+datum/reagent/consumable/ethanol
+ name = "Ethanol"
+ id = "ethanol"
+ description = "A well-known alcohol with a variety of applications."
+ color = "#404030" // rgb: 64, 64, 48
+ nutriment_factor = 0
+ var/boozepwr = 10 //lower numbers mean the booze will have an effect faster.
+
+datum/reagent/consumable/ethanol/on_mob_life(var/mob/living/M as mob)
+ if(!data)
+ data = 1
+ data++
+ M.jitteriness = max(M.jitteriness-5,0)
+ if(data >= boozepwr)
+ if (!M.stuttering) M.stuttering = 1
+ M.stuttering += 4
+ M.Dizzy(5)
+ if(data >= boozepwr*2.5 && prob(33))
+ if (!M.confused) M.confused = 1
+ M.confused += 3
+ if(data >= boozepwr*10 && prob(33))
+ M.adjustToxLoss(2)
+ ..()
+ return
+datum/reagent/consumable/ethanol/reaction_obj(var/obj/O, var/volume)
+ if(istype(O,/obj/item/weapon/paper))
+ var/obj/item/weapon/paper/paperaffected = O
+ paperaffected.clearpaper()
+ usr << "The solution melts away the ink on the paper."
+ if(istype(O,/obj/item/weapon/book))
+ if(volume >= 5)
+ var/obj/item/weapon/book/affectedbook = O
+ affectedbook.dat = null
+ usr << "The solution melts away the ink on the book."
+ else
+ usr << "It wasn't enough..."
+ return
+
+datum/reagent/consumable/ethanol/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)//Splashing people with ethanol isn't quite as good as fuel.
+ if(!istype(M, /mob/living))
+ return
+ if(method == TOUCH)
+ M.adjust_fire_stacks(volume / 15)
+ return
+
+datum/reagent/consumable/ethanol/beer
+ name = "Beer"
+ id = "beer"
+ description = "An alcoholic beverage made from malted grains, hops, yeast, and water."
+ color = "#664300" // rgb: 102, 67, 0
+ nutriment_factor = 1 * REAGENTS_METABOLISM
+ boozepwr = 55
+
+datum/reagent/consumable/ethanol/beer/greenbeer
+ name = "Green Beer"
+ id = "greenbeer"
+ description = "An alcoholic beverage made from malted grains, hops, yeast, and water. Dyed a festive green."
+ color = "#A8E61D"
+
+datum/reagent/consumable/ethanol/kahlua
+ name = "Kahlua"
+ id = "kahlua"
+ description = "A widely known, Mexican coffee-flavoured liqueur. In production since 1936!"
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 45
+
+datum/reagent/consumable/ethanol/kahlua/on_mob_life(var/mob/living/M as mob)
+ M.dizziness = max(0,M.dizziness-5)
+ M.drowsyness = max(0,M.drowsyness-3)
+ M.sleeping = max(0,M.sleeping-2)
+ M.Jitter(5)
+ ..()
+ return
+
+datum/reagent/consumable/ethanol/whiskey
+ name = "Whiskey"
+ id = "whiskey"
+ description = "A superb and well-aged single-malt whiskey. Damn."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 35
+
+datum/reagent/consumable/ethanol/thirteenloko
+ name = "Thirteen Loko"
+ id = "thirteenloko"
+ description = "A potent mixture of caffeine and alcohol."
+ color = "#102000" // rgb: 16, 32, 0
+ nutriment_factor = 1 * REAGENTS_METABOLISM
+ boozepwr = 35
+
+datum/reagent/consumable/ethanol/thirteenloko/on_mob_life(var/mob/living/M as mob)
+ M.drowsyness = max(0,M.drowsyness-7)
+ M.sleeping = max(0,M.sleeping-2)
+ if (M.bodytemperature > 310)
+ M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
+ M.Jitter(5)
+ ..()
+ return
+
+datum/reagent/consumable/ethanol/vodka
+ name = "Vodka"
+ id = "vodka"
+ description = "Number one drink AND fueling choice for Russians worldwide."
+ color = "#0064C8" // rgb: 0, 100, 200
+ boozepwr = 35
+
+datum/reagent/consumable/ethanol/vodka/on_mob_life(var/mob/living/M as mob)
+ M.radiation = max(M.radiation-2,0)
+ ..()
+ return
+
+datum/reagent/consumable/ethanol/bilk
+ name = "Bilk"
+ id = "bilk"
+ description = "This appears to be beer mixed with milk. Disgusting."
+ color = "#895C4C" // rgb: 137, 92, 76
+ nutriment_factor = 2 * REAGENTS_METABOLISM
+ boozepwr = 55
+
+datum/reagent/consumable/ethanol/bilk/on_mob_life(var/mob/living/M as mob)
+ if(M.getBruteLoss() && prob(10))
+ M.heal_organ_damage(1,0)
+ ..()
+ return
+
+datum/reagent/consumable/ethanol/threemileisland
+ name = "Three Mile Island Iced Tea"
+ id = "threemileisland"
+ description = "Made for a woman, strong enough for a man."
+ color = "#666340" // rgb: 102, 99, 64
+ boozepwr = 15
+
+datum/reagent/consumable/ethanol/threemileisland/on_mob_life(var/mob/living/M as mob)
+ M.druggy = max(M.druggy, 50)
+ ..()
+ return
+
+datum/reagent/consumable/ethanol/gin
+ name = "Gin"
+ id = "gin"
+ description = "It's gin. In space. I say, good sir."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 55
+
+datum/reagent/consumable/ethanol/rum
+ name = "Rum"
+ id = "rum"
+ description = "Yohoho and all that."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 45
+
+datum/reagent/consumable/ethanol/tequilla
+ name = "Tequila"
+ id = "tequilla"
+ description = "A strong and mildly flavoured, mexican produced spirit. Feeling thirsty hombre?"
+ color = "#FFFF91" // rgb: 255, 255, 145
+ boozepwr = 35
+
+datum/reagent/consumable/ethanol/vermouth
+ name = "Vermouth"
+ id = "vermouth"
+ description = "You suddenly feel a craving for a martini..."
+ color = "#91FF91" // rgb: 145, 255, 145
+ boozepwr = 45
+
+datum/reagent/consumable/ethanol/wine
+ name = "Wine"
+ id = "wine"
+ description = "An premium alchoholic beverage made from distilled grape juice."
+ color = "#7E4043" // rgb: 126, 64, 67
+ boozepwr = 45
+
+datum/reagent/consumable/ethanol/cognac
+ name = "Cognac"
+ id = "cognac"
+ description = "A sweet and strongly alchoholic drink, made after numerous distillations and years of maturing. Classy as fornication."
+ color = "#AB3C05" // rgb: 171, 60, 5
+ boozepwr = 45
+
+datum/reagent/consumable/ethanol/hooch
+ name = "Hooch"
+ id = "hooch"
+ description = "Either someone's failure at cocktail making or attempt in alchohol production. In any case, do you really want to drink that?"
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 35
+
+datum/reagent/consumable/ethanol/ale
+ name = "Ale"
+ id = "ale"
+ description = "A dark alchoholic beverage made by malted barley and yeast."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 55
+
+datum/reagent/consumable/ethanol/goldschlager
+ name = "Goldschlager"
+ id = "goldschlager"
+ description = "100 proof cinnamon schnapps, made for alcoholic teen girls on spring break."
+ color = "#FFFF91" // rgb: 255, 255, 145
+ boozepwr = 25
+
+datum/reagent/consumable/ethanol/patron
+ name = "Patron"
+ id = "patron"
+ description = "Tequila with silver in it, a favorite of alcoholic women in the club scene."
+ color = "#585840" // rgb: 88, 88, 64
+ boozepwr = 45
+
+datum/reagent/consumable/ethanol/gintonic
+ name = "Gin and Tonic"
+ id = "gintonic"
+ description = "An all time classic, mild cocktail."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 55
+
+datum/reagent/consumable/ethanol/cuba_libre
+ name = "Cuba Libre"
+ id = "cubalibre"
+ description = "Rum, mixed with cola. Viva la revolution."
+ color = "#3E1B00" // rgb: 62, 27, 0
+ boozepwr = 45
+
+datum/reagent/consumable/ethanol/whiskey_cola
+ name = "Whiskey Cola"
+ id = "whiskeycola"
+ description = "Whiskey, mixed with cola. Surprisingly refreshing."
+ color = "#3E1B00" // rgb: 62, 27, 0
+ boozepwr = 35
+
+datum/reagent/consumable/ethanol/martini
+ name = "Classic Martini"
+ id = "martini"
+ description = "Vermouth with Gin. Not quite how 007 enjoyed it, but still delicious."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 35
+
+datum/reagent/consumable/ethanol/vodkamartini
+ name = "Vodka Martini"
+ id = "vodkamartini"
+ description = "Vodka with Gin. Not quite how 007 enjoyed it, but still delicious."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 25
+
+datum/reagent/consumable/ethanol/white_russian
+ name = "White Russian"
+ id = "whiterussian"
+ description = "That's just, like, your opinion, man..."
+ color = "#A68340" // rgb: 166, 131, 64
+ boozepwr = 35
+
+datum/reagent/consumable/ethanol/screwdrivercocktail
+ name = "Screwdriver"
+ id = "screwdrivercocktail"
+ description = "Vodka, mixed with plain ol' orange juice. The result is surprisingly delicious."
+ color = "#A68310" // rgb: 166, 131, 16
+ boozepwr = 35
+
+datum/reagent/consumable/ethanol/booger
+ name = "Booger"
+ id = "booger"
+ description = "Ewww..."
+ color = "#8CFF8C" // rgb: 140, 255, 140
+ boozepwr = 45
+
+datum/reagent/consumable/ethanol/bloody_mary
+ name = "Bloody Mary"
+ id = "bloodymary"
+ description = "A strange yet pleasurable mixture made of vodka, tomato and lime juice. Or at least you THINK the red stuff is tomato juice."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 35
+
+datum/reagent/consumable/ethanol/brave_bull
+ name = "Brave Bull"
+ id = "bravebull"
+ description = "It's just as effective as Dutch-Courage!."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 35
+
+datum/reagent/consumable/ethanol/tequilla_sunrise
+ name = "Tequila Sunrise"
+ id = "tequillasunrise"
+ description = "Tequila and orange juice. Much like a Screwdriver, only Mexican~"
+ color = "#FFE48C" // rgb: 255, 228, 140
+ boozepwr = 35
+
+datum/reagent/consumable/ethanol/toxins_special
+ name = "Toxins Special"
+ id = "toxinsspecial"
+ description = "This thing is ON FIRE! CALL THE DAMN SHUTTLE!"
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 15
+
+datum/reagent/consumable/ethanol/toxins_special/on_mob_life(var/mob/living/M as mob)
+ if (M.bodytemperature < 330)
+ M.bodytemperature = min(330, M.bodytemperature + (15 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055
+ ..()
+ return
+
+datum/reagent/consumable/ethanol/beepsky_smash
+ name = "Beepsky Smash"
+ id = "beepskysmash"
+ description = "Deny drinking this and prepare for THE LAW."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 25
+
+datum/reagent/consumable/ethanol/beepsky_smash/on_mob_life(var/mob/living/M as mob)
+ M.Stun(2)
+ ..()
+ return
+
+datum/reagent/consumable/ethanol/irish_cream
+ name = "Irish Cream"
+ id = "irishcream"
+ description = "Whiskey-imbued cream, what else would you expect from the Irish."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 35
+
+datum/reagent/consumable/ethanol/manly_dorf
+ name = "The Manly Dorf"
+ id = "manlydorf"
+ description = "Beer and Ale, brought together in a delicious mix. Intended for true men only."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 45 //was 10, but really its only beer and ale, both weak alchoholic beverages
+
+datum/reagent/consumable/ethanol/longislandicedtea
+ name = "Long Island Iced Tea"
+ id = "longislandicedtea"
+ description = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 25
+
+datum/reagent/consumable/ethanol/moonshine
+ name = "Moonshine"
+ id = "moonshine"
+ description = "You've really hit rock bottom now... your liver packed its bags and left last night."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 25
+
+datum/reagent/consumable/ethanol/b52
+ name = "B-52"
+ id = "b52"
+ description = "Coffee, Irish Cream, and cognac. You will get bombed."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 25
+
+datum/reagent/consumable/ethanol/irishcoffee
+ name = "Irish Coffee"
+ id = "irishcoffee"
+ description = "Coffee, and alcohol. More fun than a Mimosa to drink in the morning."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 35
+
+datum/reagent/consumable/ethanol/margarita
+ name = "Margarita"
+ id = "margarita"
+ description = "On the rocks with salt on the rim. Arriba~!"
+ color = "#8CFF8C" // rgb: 140, 255, 140
+ boozepwr = 35
+
+datum/reagent/consumable/ethanol/black_russian
+ name = "Black Russian"
+ id = "blackrussian"
+ description = "For the lactose-intolerant. Still as classy as a White Russian."
+ color = "#360000" // rgb: 54, 0, 0
+ boozepwr = 35
+
+datum/reagent/consumable/ethanol/manhattan
+ name = "Manhattan"
+ id = "manhattan"
+ description = "The Detective's undercover drink of choice. He never could stomach gin..."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 45
+
+datum/reagent/consumable/ethanol/manhattan_proj
+ name = "Manhattan Project"
+ id = "manhattan_proj"
+ description = "A scientist's drink of choice, for pondering ways to blow up the station."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 15
+
+datum/reagent/consumable/ethanol/manhattan_proj/on_mob_life(var/mob/living/M as mob)
+ M.druggy = max(M.druggy, 30)
+ ..()
+ return
+
+datum/reagent/consumable/ethanol/whiskeysoda
+ name = "Whiskey Soda"
+ id = "whiskeysoda"
+ description = "For the more refined griffon."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 35
+
+datum/reagent/consumable/ethanol/antifreeze
+ name = "Anti-freeze"
+ id = "antifreeze"
+ description = "Ultimate refreshment."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 25
+
+datum/reagent/consumable/ethanol/antifreeze/on_mob_life(var/mob/living/M as mob)
+ if (M.bodytemperature < 330)
+ M.bodytemperature = min(330, M.bodytemperature + (20 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055
+ ..()
+ return
+
+datum/reagent/consumable/ethanol/barefoot
+ name = "Barefoot"
+ id = "barefoot"
+ description = "Barefoot and pregnant"
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 45
+
+datum/reagent/consumable/ethanol/snowwhite
+ name = "Snow White"
+ id = "snowwhite"
+ description = "A cold refreshment"
+ color = "#FFFFFF" // rgb: 255, 255, 255
+ boozepwr = 45
+
+datum/reagent/consumable/ethanol/demonsblood
+ name = "Demons Blood"
+ id = "demonsblood"
+ description = "AHHHH!!!!"
+ color = "#820000" // rgb: 130, 0, 0
+ boozepwr = 35
+
+datum/reagent/consumable/ethanol/vodkatonic
+ name = "Vodka and Tonic"
+ id = "vodkatonic"
+ description = "For when a gin and tonic isn't russian enough."
+ color = "#0064C8" // rgb: 0, 100, 200
+ boozepwr = 35
+
+datum/reagent/consumable/ethanol/ginfizz
+ name = "Gin Fizz"
+ id = "ginfizz"
+ description = "Refreshingly lemony, deliciously dry."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 45
+
+datum/reagent/consumable/ethanol/bahama_mama
+ name = "Bahama mama"
+ id = "bahama_mama"
+ description = "Tropical cocktail."
+ color = "#FF7F3B" // rgb: 255, 127, 59
+ boozepwr = 35
+
+datum/reagent/consumable/ethanol/singulo
+ name = "Singulo"
+ id = "singulo"
+ description = "A blue-space beverage!"
+ color = "#2E6671" // rgb: 46, 102, 113
+ boozepwr = 15
+
+datum/reagent/consumable/ethanol/sbiten
+ name = "Sbiten"
+ id = "sbiten"
+ description = "A spicy Vodka! Might be a little hot for the little guys!"
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 35
+
+datum/reagent/consumable/ethanol/sbiten/on_mob_life(var/mob/living/M as mob)
+ if (M.bodytemperature < 360)
+ M.bodytemperature = min(360, M.bodytemperature + (50 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055
+ ..()
+ return
+
+datum/reagent/consumable/ethanol/devilskiss
+ name = "Devils Kiss"
+ id = "devilskiss"
+ description = "Creepy time!"
+ color = "#A68310" // rgb: 166, 131, 16
+ boozepwr = 35
+
+datum/reagent/consumable/ethanol/red_mead
+ name = "Red Mead"
+ id = "red_mead"
+ description = "The true Viking drink! Even though it has a strange red color."
+ color = "#C73C00" // rgb: 199, 60, 0
+ boozepwr = 45
+
+datum/reagent/consumable/ethanol/mead
+ name = "Mead"
+ id = "mead"
+ description = "A Vikings drink, though a cheap one."
+ color = "#664300" // rgb: 102, 67, 0
+ nutriment_factor = 1 * REAGENTS_METABOLISM
+ boozepwr = 45
+
+datum/reagent/consumable/ethanol/iced_beer
+ name = "Iced Beer"
+ id = "iced_beer"
+ description = "A beer which is so cold the air around it freezes."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 55
+
+datum/reagent/consumable/ethanol/iced_beer/on_mob_life(var/mob/living/M as mob)
+ if(M.bodytemperature > 270)
+ M.bodytemperature = max(270, M.bodytemperature - (20 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055
+ ..()
+ return
+
+datum/reagent/consumable/ethanol/grog
+ name = "Grog"
+ id = "grog"
+ description = "Watered down rum, Nanotrasen approves!"
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 90
+
+datum/reagent/consumable/ethanol/aloe
+ name = "Aloe"
+ id = "aloe"
+ description = "So very, very, very good."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 35
+
+datum/reagent/consumable/ethanol/andalusia
+ name = "Andalusia"
+ id = "andalusia"
+ description = "A nice, strange named drink."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 35
+
+datum/reagent/consumable/ethanol/alliescocktail
+ name = "Allies Cocktail"
+ id = "alliescocktail"
+ description = "A drink made from your allies, not as sweet as when made from your enemies."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 35
+
+datum/reagent/consumable/ethanol/acid_spit
+ name = "Acid Spit"
+ id = "acidspit"
+ description = "A drink for the daring, can be deadly if incorrectly prepared!"
+ color = "#365000" // rgb: 54, 80, 0
+ boozepwr = 45
+
+datum/reagent/consumable/ethanol/amasec
+ name = "Amasec"
+ id = "amasec"
+ description = "Official drink of the Nanotrasen Gun-Club!"
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 35
+
+datum/reagent/consumable/ethanol/changelingsting
+ name = "Changeling Sting"
+ id = "changelingsting"
+ description = "You take a tiny sip and feel a burning sensation..."
+ color = "#2E6671" // rgb: 46, 102, 113
+ boozepwr = 15
+
+datum/reagent/consumable/ethanol/irishcarbomb
+ name = "Irish Car Bomb"
+ id = "irishcarbomb"
+ description = "Mmm, tastes like chocolate cake..."
+ color = "#2E6671" // rgb: 46, 102, 113
+ boozepwr = 25
+
+datum/reagent/consumable/ethanol/syndicatebomb
+ name = "Syndicate Bomb"
+ id = "syndicatebomb"
+ description = "Tastes like terrorism!"
+ color = "#2E6671" // rgb: 46, 102, 113
+ boozepwr = 15
+
+datum/reagent/consumable/ethanol/erikasurprise
+ name = "Erika Surprise"
+ id = "erikasurprise"
+ description = "The surprise is, it's green!"
+ color = "#2E6671" // rgb: 46, 102, 113
+ boozepwr = 35
+
+datum/reagent/consumable/ethanol/driestmartini
+ name = "Driest Martini"
+ id = "driestmartini"
+ description = "Only for the experienced. You think you see sand floating in the glass."
+ nutriment_factor = 1 * REAGENTS_METABOLISM
+ color = "#2E6671" // rgb: 46, 102, 113
+ boozepwr = 25
+
+datum/reagent/consumable/ethanol/bananahonk
+ name = "Banana Mama"
+ id = "bananahonk"
+ description = "A drink from Clown Heaven."
+ nutriment_factor = 1 * REAGENTS_METABOLISM
+ color = "#FFFF91" // rgb: 255, 255, 140
+ boozepwr = 25
+
+datum/reagent/consumable/ethanol/bananahonk/on_mob_life(var/mob/living/M as mob)
+ if( ( istype(M, /mob/living/carbon/human) && M.job in list("Clown") ) || istype(M, /mob/living/carbon/monkey) )
+ M.heal_organ_damage(1,1)
+ ..()
+ return
+
+datum/reagent/consumable/ethanol/silencer
+ name = "Silencer"
+ id = "silencer"
+ description = "A drink from Mime Heaven."
+ nutriment_factor = 1 * REAGENTS_METABOLISM
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 15
+
+datum/reagent/consumable/ethanol/silencer/on_mob_life(var/mob/living/M as mob)
+ if(istype(M, /mob/living/carbon/human) && M.job in list("Mime"))
+ M.heal_organ_damage(1,1)
+ ..()
+ return
diff --git a/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Drink-Reagents/Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Drink-Reagents/Drinks.dm
new file mode 100644
index 00000000000..656570dce93
--- /dev/null
+++ b/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Drink-Reagents/Drinks.dm
@@ -0,0 +1,537 @@
+
+#define REM REAGENTS_EFFECT_MULTIPLIER
+
+
+
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////
+/////////////////////// DRINKS BELOW, Beer is up there though, along with cola. Cap'n Pete's Cuban Spiced Rum////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+datum/reagent/consumable/orangejuice
+ name = "Orange juice"
+ id = "orangejuice"
+ description = "Both delicious AND rich in Vitamin C, what more do you need?"
+ color = "#E78108" // rgb: 231, 129, 8
+
+datum/reagent/consumable/orangejuice/on_mob_life(var/mob/living/M as mob)
+ if(M.getOxyLoss() && prob(30))
+ M.adjustOxyLoss(-1)
+ ..()
+ return
+
+datum/reagent/consumable/tomatojuice
+ name = "Tomato Juice"
+ id = "tomatojuice"
+ description = "Tomatoes made into juice. What a waste of big, juicy tomatoes, huh?"
+ color = "#731008" // rgb: 115, 16, 8
+
+datum/reagent/consumable/tomatojuice/on_mob_life(var/mob/living/M as mob)
+ if(M.getFireLoss() && prob(20))
+ M.heal_organ_damage(0,1)
+ ..()
+ return
+
+datum/reagent/consumable/limejuice
+ name = "Lime Juice"
+ id = "limejuice"
+ description = "The sweet-sour juice of limes."
+ color = "#365E30" // rgb: 54, 94, 48
+
+datum/reagent/consumable/limejuice/on_mob_life(var/mob/living/M as mob)
+ if(M.getToxLoss() && prob(20))
+ M.adjustToxLoss(-1*REM)
+ ..()
+ return
+
+datum/reagent/consumable/carrotjuice
+ name = "Carrot juice"
+ id = "carrotjuice"
+ description = "It is just like a carrot but without crunching."
+ color = "#973800" // rgb: 151, 56, 0
+
+datum/reagent/consumable/carrotjuice/on_mob_life(var/mob/living/M as mob)
+ M.eye_blurry = max(M.eye_blurry-1 , 0)
+ M.eye_blind = max(M.eye_blind-1 , 0)
+ if(!data)
+ data = 1
+ switch(data)
+ if(1 to 20)
+ //nothing
+ if(21 to INFINITY)
+ if (prob(data-10))
+ M.disabilities &= ~NEARSIGHTED
+ data++
+ ..()
+ return
+
+datum/reagent/consumable/berryjuice
+ name = "Berry Juice"
+ id = "berryjuice"
+ description = "A delicious blend of several different kinds of berries."
+ color = "#863333" // rgb: 134, 51, 51
+
+datum/reagent/consumable/poisonberryjuice
+ 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
+
+datum/reagent/consumable/poisonberryjuice/on_mob_life(var/mob/living/M as mob)
+ M.adjustToxLoss(1)
+ ..()
+ return
+
+datum/reagent/consumable/watermelonjuice
+ name = "Watermelon Juice"
+ id = "watermelonjuice"
+ description = "Delicious juice made from watermelon."
+ color = "#863333" // rgb: 134, 51, 51
+
+datum/reagent/consumable/lemonjuice
+ name = "Lemon Juice"
+ id = "lemonjuice"
+ description = "This juice is VERY sour."
+ color = "#863333" // rgb: 175, 175, 0
+
+datum/reagent/consumable/banana
+ name = "Banana Juice"
+ id = "banana"
+ description = "The raw essence of a banana. HONK"
+ color = "#863333" // rgb: 175, 175, 0
+
+datum/reagent/consumable/banana/on_mob_life(var/mob/living/M as mob)
+ if( ( istype(M, /mob/living/carbon/human) && M.job in list("Clown") ) || istype(M, /mob/living/carbon/monkey) )
+ M.heal_organ_damage(1,1)
+ ..()
+
+datum/reagent/consumable/nothing
+ name = "Nothing"
+ id = "nothing"
+ description = "Absolutely nothing."
+
+datum/reagent/consumable/nothing/on_mob_life(var/mob/living/M as mob)
+ if(istype(M, /mob/living/carbon/human) && M.job in list("Mime"))
+ M.heal_organ_damage(1,1)
+ ..()
+
+datum/reagent/consumable/potato_juice
+ name = "Potato Juice"
+ id = "potato"
+ description = "Juice of the potato. Bleh."
+ nutriment_factor = 2 * REAGENTS_METABOLISM
+ color = "#302000" // rgb: 48, 32, 0
+
+datum/reagent/consumable/milk
+ name = "Milk"
+ id = "milk"
+ description = "An opaque white liquid produced by the mammary glands of mammals."
+ color = "#DFDFDF" // rgb: 223, 223, 223
+
+datum/reagent/consumable/milk/on_mob_life(var/mob/living/M as mob)
+ if(M.getBruteLoss() && prob(20))
+ M.heal_organ_damage(1,0)
+ if(holder.has_reagent("capsaicin"))
+ holder.remove_reagent("capsaicin", 2)
+ ..()
+ return
+
+datum/reagent/consumable/soymilk
+ name = "Soy Milk"
+ id = "soymilk"
+ description = "An opaque white liquid made from soybeans."
+ color = "#DFDFC7" // rgb: 223, 223, 199
+
+datum/reagent/consumable/soymilk/on_mob_life(var/mob/living/M as mob)
+ if(M.getBruteLoss() && prob(20))
+ M.heal_organ_damage(1,0)
+ ..()
+ return
+
+datum/reagent/consumable/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
+
+datum/reagent/consumable/cream/on_mob_life(var/mob/living/M as mob)
+ if(M.getBruteLoss() && prob(20))
+ M.heal_organ_damage(1,0)
+ ..()
+ return
+
+datum/reagent/consumable/coffee
+ name = "Coffee"
+ id = "coffee"
+ description = "Coffee is a brewed drink prepared from roasted seeds, commonly called coffee beans, of the coffee plant."
+ color = "#482000" // rgb: 72, 32, 0
+ nutriment_factor = 0
+
+datum/reagent/consumable/coffee/on_mob_life(var/mob/living/M as mob)
+ M.dizziness = max(0,M.dizziness-5)
+ M.drowsyness = max(0,M.drowsyness-3)
+ M.sleeping = max(0,M.sleeping - 2)
+ if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055
+ M.bodytemperature = min(310, M.bodytemperature + (25 * TEMPERATURE_DAMAGE_COEFFICIENT))
+ M.Jitter(5)
+ if(holder.has_reagent("frostoil"))
+ holder.remove_reagent("frostoil", 5)
+ ..()
+ return
+
+datum/reagent/consumable/tea
+ name = "Tea"
+ id = "tea"
+ description = "Tasty black tea, it has antioxidants, it's good for you!"
+ color = "#101000" // rgb: 16, 16, 0
+ nutriment_factor = 0
+
+datum/reagent/consumable/tea/on_mob_life(var/mob/living/M as mob)
+ M.dizziness = max(0,M.dizziness-2)
+ M.drowsyness = max(0,M.drowsyness-1)
+ M.jitteriness = max(0,M.jitteriness-3)
+ M.sleeping = max(0,M.sleeping-1)
+ if(M.getToxLoss() && prob(20))
+ M.adjustToxLoss(-1)
+ if (M.bodytemperature < 310) //310 is the normal bodytemp. 310.055
+ M.bodytemperature = min(310, M.bodytemperature + (20 * TEMPERATURE_DAMAGE_COEFFICIENT))
+ ..()
+ return
+
+datum/reagent/consumable/icecoffee
+ name = "Iced Coffee"
+ id = "icecoffee"
+ description = "Coffee and ice, refreshing and cool."
+ color = "#102838" // rgb: 16, 40, 56
+ nutriment_factor = 0
+
+datum/reagent/consumable/icecoffee/on_mob_life(var/mob/living/M as mob)
+ M.dizziness = max(0,M.dizziness-5)
+ M.drowsyness = max(0,M.drowsyness-3)
+ M.sleeping = max(0,M.sleeping-2)
+ if (M.bodytemperature > 310)//310 is the normal bodytemp. 310.055
+ M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
+ M.Jitter(5)
+ ..()
+ return
+
+datum/reagent/consumable/icetea
+ name = "Iced Tea"
+ id = "icetea"
+ description = "No relation to a certain rap artist/ actor."
+ color = "#104038" // rgb: 16, 64, 56
+ nutriment_factor = 0
+
+datum/reagent/consumable/icetea/on_mob_life(var/mob/living/M as mob)
+ M.dizziness = max(0,M.dizziness-2)
+ M.drowsyness = max(0,M.drowsyness-1)
+ M.sleeping = max(0,M.sleeping-2)
+ if(M.getToxLoss() && prob(20))
+ M.adjustToxLoss(-1)
+ if (M.bodytemperature > 310)//310 is the normal bodytemp. 310.055
+ M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
+ ..()
+ return
+
+datum/reagent/consumable/space_cola
+ name = "Cola"
+ id = "cola"
+ description = "A refreshing beverage."
+ color = "#100800" // rgb: 16, 8, 0
+
+datum/reagent/consumable/space_cola/on_mob_life(var/mob/living/M as mob)
+ M.drowsyness = max(0,M.drowsyness-5)
+ if (M.bodytemperature > 310)//310 is the normal bodytemp. 310.055
+ M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
+ ..()
+ return
+
+datum/reagent/consumable/nuka_cola
+ name = "Nuka Cola"
+ id = "nuka_cola"
+ description = "Cola, cola never changes."
+ color = "#100800" // rgb: 16, 8, 0
+
+datum/reagent/consumable/nuka_cola/on_mob_life(var/mob/living/M as mob)
+ M.Jitter(20)
+ M.druggy = max(M.druggy, 30)
+ M.dizziness +=5
+ M.drowsyness = 0
+ M.sleeping = max(0,M.sleeping-2)
+ M.status_flags |= GOTTAGOFAST
+ if (M.bodytemperature > 310)//310 is the normal bodytemp. 310.055
+ M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
+ ..()
+ return
+
+datum/reagent/consumable/spacemountainwind
+ name = "Space Mountain Wind"
+ id = "spacemountainwind"
+ description = "Blows right through you like a space wind."
+ color = "#102000" // rgb: 16, 32, 0
+
+datum/reagent/consumable/spacemountainwind/on_mob_life(var/mob/living/M as mob)
+ M.drowsyness = max(0,M.drowsyness-7)
+ M.sleeping = max(0,M.sleeping-1)
+ if (M.bodytemperature > 310)
+ M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
+ M.Jitter(5)
+ ..()
+ return
+
+datum/reagent/consumable/dr_gibb
+ name = "Dr. Gibb"
+ id = "dr_gibb"
+ description = "A delicious blend of 42 different flavours"
+ color = "#102000" // rgb: 16, 32, 0
+
+datum/reagent/consumable/dr_gibb/on_mob_life(var/mob/living/M as mob)
+ M.drowsyness = max(0,M.drowsyness-6)
+ if (M.bodytemperature > 310)
+ M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055
+ ..()
+ return
+
+datum/reagent/consumable/space_up
+ name = "Space-Up"
+ id = "space_up"
+ description = "Tastes like a hull breach in your mouth."
+ color = "#00FF00" // rgb: 0, 255, 0
+
+datum/reagent/consumable/space_up/on_mob_life(var/mob/living/M as mob)
+ if (M.bodytemperature > 310)
+ M.bodytemperature = max(310, M.bodytemperature - (8 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055
+ ..()
+ return
+
+datum/reagent/consumable/lemon_lime
+ name = "Lemon Lime"
+ description = "A tangy substance made of 0.5% natural citrus!"
+ id = "lemon_lime"
+ color = "#8CFF00" // rgb: 135, 255, 0
+
+datum/reagent/consumable/lemon_lime/on_mob_life(var/mob/living/M as mob)
+ if (M.bodytemperature > 310)
+ M.bodytemperature = max(310, M.bodytemperature - (8 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055
+ ..()
+ return
+
+datum/reagent/consumable/sodawater
+ name = "Soda Water"
+ id = "sodawater"
+ description = "A can of club soda. Why not make a scotch and soda?"
+ color = "#619494" // rgb: 97, 148, 148
+
+datum/reagent/consumable/sodawater/on_mob_life(var/mob/living/M as mob)
+ M.dizziness = max(0,M.dizziness-5)
+ M.drowsyness = max(0,M.drowsyness-3)
+ if (M.bodytemperature > 310)
+ M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
+ ..()
+ return
+
+datum/reagent/consumable/tonic
+ name = "Tonic Water"
+ id = "tonic"
+ description = "It tastes strange but at least the quinine keeps the Space Malaria at bay."
+ color = "#0064C8" // rgb: 0, 100, 200
+
+datum/reagent/consumable/tonic/on_mob_life(var/mob/living/M as mob)
+ M.dizziness = max(0,M.dizziness-5)
+ M.drowsyness = max(0,M.drowsyness-3)
+ M.sleeping = max(0,M.sleeping-2)
+ if (M.bodytemperature > 310)
+ M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
+ ..()
+ return
+
+datum/reagent/consumable/ice
+ name = "Ice"
+ id = "ice"
+ description = "Frozen water, your dentist wouldn't like you chewing this."
+ reagent_state = SOLID
+ color = "#619494" // rgb: 97, 148, 148
+
+datum/reagent/consumable/ice/on_mob_life(var/mob/living/M as mob)
+ M.bodytemperature -= 5 * TEMPERATURE_DAMAGE_COEFFICIENT
+ ..()
+ return
+
+datum/reagent/consumable/soy_latte
+ 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
+
+datum/reagent/consumable/soy_latte/on_mob_life(var/mob/living/M as mob)
+ M.dizziness = max(0,M.dizziness-5)
+ M.drowsyness = max(0,M.drowsyness-3)
+ M.sleeping = 0
+ if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055
+ M.bodytemperature = min(310, M.bodytemperature + (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
+ M.Jitter(5)
+ if(M.getBruteLoss() && prob(20))
+ M.heal_organ_damage(1,0)
+ ..()
+ return
+
+datum/reagent/consumable/cafe_latte
+ name = "Cafe Latte"
+ id = "cafe_latte"
+ description = "A nice, strong and tasty beverage while you are reading."
+ color = "#664300" // rgb: 102, 67, 0
+
+datum/reagent/consumable/cafe_latte/on_mob_life(var/mob/living/M as mob)
+ M.dizziness = max(0,M.dizziness-5)
+ M.drowsyness = max(0,M.drowsyness-3)
+ M.sleeping = 0
+ if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055
+ M.bodytemperature = min(310, M.bodytemperature + (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
+ M.Jitter(5)
+ if(M.getBruteLoss() && prob(20))
+ M.heal_organ_damage(1,0)
+ ..()
+ return
+
+datum/reagent/consumable/doctor_delight
+ name = "The Doctor's Delight"
+ id = "doctorsdelight"
+ description = "A gulp a day keeps the MediBot away. That's probably for the best."
+ color = "#FF8CFF" // rgb: 255, 140, 255
+
+datum/reagent/consumable/doctor_delight/on_mob_life(var/mob/living/M as mob)
+ if(M.getOxyLoss() && prob(80))
+ M.adjustOxyLoss(-2)
+ if(M.getBruteLoss() && prob(80))
+ M.heal_organ_damage(2,0)
+ if(M.getFireLoss() && prob(80))
+ M.heal_organ_damage(0,2)
+ if(M.getToxLoss() && prob(80))
+ M.adjustToxLoss(-2)
+ if(M.dizziness !=0)
+ M.dizziness = max(0,M.dizziness-15)
+ if(M.confused !=0)
+ M.confused = max(0,M.confused - 5)
+ holder.remove_reagent(id, metabolization_rate/M.metabolism_efficiency)
+ return
+
+
+//////////////////////////////////////////////The ten friggen million reagents that get you drunk//////////////////////////////////////////////
+
+datum/reagent/consumable/atomicbomb
+ name = "Atomic Bomb"
+ id = "atomicbomb"
+ description = "Nuclear proliferation never tasted so good."
+ color = "#666300" // rgb: 102, 99, 0
+
+datum/reagent/consumable/atomicbomb/on_mob_life(var/mob/living/M as mob)
+ M.druggy = max(M.druggy, 50)
+ M.confused = max(M.confused+2,0)
+ M.Dizzy(10)
+ if (!M.stuttering)
+ M.stuttering = 1
+ M.stuttering += 3
+ if(!data)
+ data = 1
+ data++
+ switch(data)
+ if(51 to 200)
+ M.sleeping += 1
+ if(201 to INFINITY)
+ M.sleeping += 1
+ M.adjustToxLoss(2)
+ ..()
+ return
+
+datum/reagent/consumable/gargle_blaster
+ name = "Pan-Galactic Gargle Blaster"
+ id = "gargleblaster"
+ description = "Whoah, this stuff looks volatile!"
+ color = "#664300" // rgb: 102, 67, 0
+
+datum/reagent/consumable/gargle_blaster/on_mob_life(var/mob/living/M as mob)
+ if(!data)
+ data = 1
+ data++
+ M.dizziness +=6
+ if(data >= 15 && data <45)
+ if (!M.stuttering)
+ M.stuttering = 1
+ M.stuttering += 3
+ else if(data >= 45 && prob(50) && data <55)
+ M.confused = max(M.confused+3,0)
+ else if(data >=55)
+ M.druggy = max(M.druggy, 55)
+ else if(data >=200)
+ M.adjustToxLoss(2)
+ ..()
+ return
+
+datum/reagent/consumable/neurotoxin
+ name = "Neurotoxin"
+ id = "neurotoxin"
+ description = "A strong neurotoxin that puts the subject into a death-like state."
+ color = "#2E2E61" // rgb: 46, 46, 97
+
+datum/reagent/consumable/neurotoxin/on_mob_life(var/mob/living/carbon/M as mob)
+ M.weakened = max(M.weakened, 3)
+ if(!data)
+ data = 1
+ data++
+ M.dizziness +=6
+ if(data >= 15 && data <45)
+ if (!M.stuttering)
+ M.stuttering = 1
+ M.stuttering += 3
+ else if(data >= 45 && prob(50) && data <55)
+ M.confused = max(M.confused+3,0)
+ else if(data >=55)
+ M.druggy = max(M.druggy, 55)
+ else if(data >=200)
+ M.adjustToxLoss(2)
+ ..()
+ return
+
+datum/reagent/consumable/hippies_delight
+ name = "Hippie's Delight"
+ id = "hippiesdelight"
+ description = "You just don't get it maaaan."
+ color = "#664300" // rgb: 102, 67, 0
+ nutriment_factor = 0
+ metabolization_rate = 0.2 * REAGENTS_METABOLISM
+
+datum/reagent/consumable/hippies_delight/on_mob_life(var/mob/living/M as mob)
+ M.druggy = max(M.druggy, 50)
+ if(!data)
+ data = 1
+ data++
+ switch(data)
+ if(1 to 5)
+ if (!M.stuttering) M.stuttering = 1
+ M.Dizzy(10)
+ if(prob(10)) M.emote(pick("twitch","giggle"))
+ if(5 to 10)
+ if (!M.stuttering) M.stuttering = 1
+ M.Jitter(20)
+ M.Dizzy(20)
+ M.druggy = max(M.druggy, 45)
+ if(prob(20)) M.emote(pick("twitch","giggle"))
+ if (10 to 200)
+ if (!M.stuttering) M.stuttering = 1
+ M.Jitter(40)
+ M.Dizzy(40)
+ M.druggy = max(M.druggy, 60)
+ if(prob(30)) M.emote(pick("twitch","giggle"))
+ if(200 to INFINITY)
+ if (!M.stuttering) M.stuttering = 1
+ M.Jitter(60)
+ M.Dizzy(60)
+ M.druggy = max(M.druggy, 75)
+ if(prob(40)) M.emote(pick("twitch","giggle"))
+ if(prob(30)) M.adjustToxLoss(2)
+ ..()
+ return
+
+
+// Undefine the alias for REAGENTS_EFFECT_MULTIPLER
+#undef REM
\ No newline at end of file
diff --git a/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Food-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Food-Reagents.dm
new file mode 100644
index 00000000000..c5132e52363
--- /dev/null
+++ b/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Food-Reagents.dm
@@ -0,0 +1,388 @@
+
+
+///////////////////////////////////////////////////////////////////
+ //Food Reagents
+//////////////////////////////////////////////////////////////////
+
+
+// Part of the food code. Also is where all the food
+// condiments, additives, and such go.
+
+
+datum/reagent/consumable
+ name = "Consumable"
+ id = "consumable"
+ var/nutriment_factor = 1 * REAGENTS_METABOLISM
+
+datum/reagent/consumable/on_mob_life(var/mob/living/M as mob)
+ M.nutrition += nutriment_factor
+ holder.remove_reagent(src.id, metabolization_rate)
+
+datum/reagent/consumable/nutriment
+ name = "Nutriment"
+ id = "nutriment"
+ description = "All the vitamins, minerals, and carbohydrates the body needs in pure form."
+ reagent_state = SOLID
+ nutriment_factor = 15 * REAGENTS_METABOLISM
+ color = "#664330" // rgb: 102, 67, 48
+
+datum/reagent/consumable/nutriment/on_mob_life(var/mob/living/M as mob)
+ if(prob(50))
+ M.heal_organ_damage(1,0)
+ ..()
+ return
+
+datum/reagent/consumable/vitamin
+ name = "Vitamin"
+ id = "vitamin"
+ description = "All the best vitamins, minerals, and carbohydrates the body needs in pure form."
+ reagent_state = SOLID
+ color = "#664330" // rgb: 102, 67, 48
+
+datum/reagent/consumable/vitamin/on_mob_life(var/mob/living/M as mob)
+ if(prob(50))
+ M.heal_organ_damage(1,1)
+ if(M.satiety < 600)
+ M.satiety += 20
+ ..()
+ return
+
+datum/reagent/consumable/sugar
+ name = "Sugar"
+ id = "sugar"
+ description = "The organic compound commonly known as table sugar and sometimes called saccharose. This white, odorless, crystalline powder has a pleasing, sweet taste."
+ reagent_state = SOLID
+ color = "#FFFFFF" // rgb: 255, 255, 255
+ nutriment_factor = 10 * REAGENTS_METABOLISM
+ metabolization_rate = 2 * REAGENTS_METABOLISM
+
+datum/reagent/consumable/sugar/on_mob_life(var/mob/living/M as mob)
+ if(M.satiety > -200)
+ M.satiety -= 20 //eating sugar makes you more hungry over time by making your hunger drop faster.
+ M.nutrition += max(((NUTRITION_LEVEL_FED + 50) - M.nutrition )/100, 0) * nutriment_factor // sugar doesn't help your hunger if your stomach is nearly full
+ holder.remove_reagent(src.id, metabolization_rate)
+
+datum/reagent/consumable/virus_food
+ name = "Virus Food"
+ id = "virusfood"
+ description = "A mixture of water and milk. Virus cells can use this mixture to reproduce."
+ nutriment_factor = 2 * REAGENTS_METABOLISM
+ color = "#899613" // rgb: 137, 150, 19
+
+datum/reagent/consumable/soysauce
+ name = "Soysauce"
+ id = "soysauce"
+ description = "A salty sauce made from the soy plant."
+ nutriment_factor = 2 * REAGENTS_METABOLISM
+ color = "#792300" // rgb: 121, 35, 0
+
+datum/reagent/consumable/ketchup
+ name = "Ketchup"
+ id = "ketchup"
+ description = "Ketchup, catsup, whatever. It's tomato paste."
+ nutriment_factor = 5 * REAGENTS_METABOLISM
+ color = "#731008" // rgb: 115, 16, 8
+
+
+datum/reagent/consumable/capsaicin
+ name = "Capsaicin Oil"
+ id = "capsaicin"
+ description = "This is what makes chilis hot."
+ color = "#B31008" // rgb: 179, 16, 8
+
+datum/reagent/consumable/capsaicin/on_mob_life(var/mob/living/M as mob)
+ if(!data)
+ data = 1
+ switch(data)
+ if(1 to 15)
+ M.bodytemperature += 5 * TEMPERATURE_DAMAGE_COEFFICIENT
+ if(holder.has_reagent("frostoil"))
+ holder.remove_reagent("frostoil", 5)
+ if(istype(M, /mob/living/carbon/slime))
+ M.bodytemperature += rand(5,20)
+ if(15 to 25)
+ M.bodytemperature += 10 * TEMPERATURE_DAMAGE_COEFFICIENT
+ if(istype(M, /mob/living/carbon/slime))
+ M.bodytemperature += rand(10,20)
+ if(25 to INFINITY)
+ M.bodytemperature += 15 * TEMPERATURE_DAMAGE_COEFFICIENT
+ if(istype(M, /mob/living/carbon/slime))
+ M.bodytemperature += rand(15,20)
+ data++
+ ..()
+ return
+
+datum/reagent/consumable/condensedcapsaicin
+ name = "Condensed Capsaicin"
+ id = "condensedcapsaicin"
+ description = "A chemical agent used for self-defense and in police work."
+ color = "#B31008" // rgb: 179, 16, 8
+
+datum/reagent/consumable/condensedcapsaicin/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
+ if(!istype(M, /mob/living/carbon/human) && !istype(M, /mob/living/carbon/monkey))
+ return
+
+ var/mob/living/carbon/victim = M
+ if(method == TOUCH)
+ //check for protection
+ var/mouth_covered = 0
+ var/eyes_covered = 0
+ var/obj/item/safe_thing = null
+
+ //monkeys and humans can have masks
+ if( victim.wear_mask )
+ if ( victim.wear_mask.flags & MASKCOVERSEYES )
+ eyes_covered = 1
+ safe_thing = victim.wear_mask
+ if ( victim.wear_mask.flags & MASKCOVERSMOUTH )
+ mouth_covered = 1
+ safe_thing = victim.wear_mask
+
+ //only humans can have helmets and glasses
+ if(istype(victim, /mob/living/carbon/human))
+ var/mob/living/carbon/human/H = victim
+ if( H.head )
+ if ( H.head.flags & MASKCOVERSEYES )
+ eyes_covered = 1
+ safe_thing = H.head
+ if ( H.head.flags & MASKCOVERSMOUTH )
+ mouth_covered = 1
+ safe_thing = H.head
+ if(H.glasses)
+ eyes_covered = 1
+ if ( !safe_thing )
+ safe_thing = H.glasses
+
+ //actually handle the pepperspray effects
+ if ( eyes_covered && mouth_covered )
+ return
+ else if ( mouth_covered ) // Reduced effects if partially protected
+ if(prob(5))
+ victim.emote("scream")
+ victim.eye_blurry = max(M.eye_blurry, 3)
+ victim.eye_blind = max(M.eye_blind, 1)
+ victim.confused = max(M.confused, 3)
+ victim.damageoverlaytemp = 60
+ victim.Weaken(3)
+ victim.drop_item()
+ return
+ else if ( eyes_covered ) // Eye cover is better than mouth cover
+ victim.eye_blurry = max(M.eye_blurry, 3)
+ victim.damageoverlaytemp = 30
+ return
+ else // Oh dear :D
+ if(prob(5))
+ victim.emote("scream")
+ victim.eye_blurry = max(M.eye_blurry, 5)
+ victim.eye_blind = max(M.eye_blind, 2)
+ victim.confused = max(M.confused, 6)
+ victim.damageoverlaytemp = 75
+ victim.Weaken(5)
+ victim.drop_item()
+
+datum/reagent/consumable/condensedcapsaicin/on_mob_life(var/mob/living/M as mob)
+ if(prob(5))
+ M.visible_message("[M] [pick("dry heaves!","coughs!","splutters!")]")
+ ..()
+ return
+
+datum/reagent/consumable/frostoil
+ name = "Frost Oil"
+ id = "frostoil"
+ description = "A special oil that noticably chills the body. Extraced from Icepeppers."
+ color = "#B31008" // rgb: 139, 166, 233
+
+datum/reagent/consumable/frostoil/on_mob_life(var/mob/living/M as mob)
+ if(!data) data = 1
+ switch(data)
+ if(1 to 15)
+ M.bodytemperature -= 5 * TEMPERATURE_DAMAGE_COEFFICIENT
+ if(holder.has_reagent("capsaicin"))
+ holder.remove_reagent("capsaicin", 5)
+ if(istype(M, /mob/living/carbon/slime))
+ M.bodytemperature -= rand(5,20)
+ if(15 to 25)
+ M.bodytemperature -= 10 * TEMPERATURE_DAMAGE_COEFFICIENT
+ if(istype(M, /mob/living/carbon/slime))
+ M.bodytemperature -= rand(10,20)
+ if(25 to INFINITY)
+ M.bodytemperature -= 15 * TEMPERATURE_DAMAGE_COEFFICIENT
+ if(prob(1))
+ M.emote("shiver")
+ if(istype(M, /mob/living/carbon/slime))
+ M.bodytemperature -= rand(15,20)
+ data++
+ ..()
+ return
+
+datum/reagent/consumable/frostoil/reaction_turf(var/turf/simulated/T, var/volume)
+ if(volume >= 5)
+ for(var/mob/living/carbon/slime/M in T)
+ M.adjustToxLoss(rand(15,30))
+ //if(istype(T))
+ // T.atmos_spawn_air(SPAWN_COLD)
+
+datum/reagent/consumable/sodiumchloride
+ name = "Table Salt"
+ id = "sodiumchloride"
+ description = "A salt made of sodium chloride. Commonly used to season food."
+ reagent_state = SOLID
+ color = "#FFFFFF" // rgb: 255,255,255
+
+datum/reagent/consumable/blackpepper
+ name = "Black Pepper"
+ id = "blackpepper"
+ description = "A powder ground from peppercorns. *AAAACHOOO*"
+ reagent_state = SOLID
+ // no color (ie, black)
+
+datum/reagent/consumable/coco
+ name = "Coco Powder"
+ id = "coco"
+ description = "A fatty, bitter paste made from coco beans."
+ reagent_state = SOLID
+ nutriment_factor = 5 * REAGENTS_METABOLISM
+ color = "#302000" // rgb: 48, 32, 0
+
+datum/reagent/consumable/hot_coco
+ name = "Hot Chocolate"
+ id = "hot_coco"
+ description = "Made with love! And coco beans."
+ nutriment_factor = 3 * REAGENTS_METABOLISM
+ color = "#403010" // rgb: 64, 48, 16
+
+datum/reagent/consumable/hot_coco/on_mob_life(var/mob/living/M as mob)
+ if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055
+ M.bodytemperature = min(310, M.bodytemperature + (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
+ ..()
+ return
+
+datum/reagent/mushroomhallucinogen
+ name = "Mushroom Hallucinogen"
+ id = "mushroomhallucinogen"
+ description = "A strong hallucinogenic drug derived from certain species of mushroom."
+ color = "#E700E7" // rgb: 231, 0, 231
+ metabolization_rate = 0.2 * REAGENTS_METABOLISM
+
+datum/reagent/mushroomhallucinogen/on_mob_life(var/mob/living/M as mob)
+ M.druggy = max(M.druggy, 30)
+ if(!data)
+ data = 1
+ switch(data)
+ if(1 to 5)
+ if (!M.stuttering)
+ M.stuttering = 1
+ M.Dizzy(5)
+ if(prob(10))
+ M.emote(pick("twitch","giggle"))
+ if(5 to 10)
+ if (!M.stuttering)
+ M.stuttering = 1
+ M.Jitter(10)
+ M.Dizzy(10)
+ M.druggy = max(M.druggy, 35)
+ if(prob(20))
+ M.emote(pick("twitch","giggle"))
+ if (10 to INFINITY)
+ if (!M.stuttering)
+ M.stuttering = 1
+ M.Jitter(20)
+ M.Dizzy(20)
+ M.druggy = max(M.druggy, 40)
+ if(prob(30))
+ M.emote(pick("twitch","giggle"))
+ data++
+ ..()
+ return
+
+datum/reagent/consumable/sprinkles
+ name = "Sprinkles"
+ id = "sprinkles"
+ description = "Multi-colored little bits of sugar, commonly found on donuts. Loved by cops."
+ color = "#FF00FF" // rgb: 255, 0, 255
+
+datum/reagent/consumable/sprinkles/on_mob_life(var/mob/living/M as mob)
+ if(istype(M, /mob/living/carbon/human) && M.job in list("Security Officer", "Head of Security", "Detective", "Warden"))
+ M.heal_organ_damage(1,1)
+ ..()
+ return
+ ..()
+
+datum/reagent/consumable/cornoil
+ name = "Corn Oil"
+ id = "cornoil"
+ description = "An oil derived from various types of corn."
+ nutriment_factor = 20 * REAGENTS_METABOLISM
+ color = "#302000" // rgb: 48, 32, 0
+
+datum/reagent/consumable/cornoil/reaction_turf(var/turf/simulated/T, var/volume)
+ if (!istype(T))
+ return
+ src = null
+ if(volume >= 3)
+ T.MakeSlippery()
+ var/hotspot = (locate(/obj/effect/hotspot) in T)
+ if(hotspot)
+ var/datum/gas_mixture/lowertemp = T.remove_air( T:air:total_moles() )
+ lowertemp.temperature = max( min(lowertemp.temperature-2000,lowertemp.temperature / 2) ,0)
+ lowertemp.react()
+ T.assume_air(lowertemp)
+ qdel(hotspot)
+
+datum/reagent/consumable/enzyme
+ name = "Universal Enzyme"
+ id = "enzyme"
+ description = "A universal enzyme used in the preperation of certain chemicals and foods."
+ color = "#365E30" // rgb: 54, 94, 48
+
+datum/reagent/consumable/dry_ramen
+ name = "Dry Ramen"
+ id = "dry_ramen"
+ description = "Space age food, since August 25, 1958. Contains dried noodles, vegetables, and chemicals that boil in contact with water."
+ reagent_state = SOLID
+ color = "#302000" // rgb: 48, 32, 0
+
+datum/reagent/consumable/hot_ramen
+ name = "Hot Ramen"
+ id = "hot_ramen"
+ description = "The noodles are boiled, the flavors are artificial, just like being back in school."
+ nutriment_factor = 5 * REAGENTS_METABOLISM
+ color = "#302000" // rgb: 48, 32, 0
+
+datum/reagent/consumable/hot_ramen/on_mob_life(var/mob/living/M as mob)
+ if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055
+ M.bodytemperature = min(310, M.bodytemperature + (10 * TEMPERATURE_DAMAGE_COEFFICIENT))
+ ..()
+ return
+
+datum/reagent/consumable/hell_ramen
+ name = "Hell Ramen"
+ id = "hell_ramen"
+ description = "The noodles are boiled, the flavors are artificial, just like being back in school."
+ nutriment_factor = 5 * REAGENTS_METABOLISM
+ color = "#302000" // rgb: 48, 32, 0
+
+datum/reagent/consumable/hell_ramen/on_mob_life(var/mob/living/M as mob)
+ M.bodytemperature += 10 * TEMPERATURE_DAMAGE_COEFFICIENT
+ ..()
+ return
+
+datum/reagent/consumable/flour
+ name = "flour"
+ id = "flour"
+ description = "This is what you rub all over yourself to pretend to be a ghost."
+ reagent_state = SOLID
+ color = "#FFFFFF" // rgb: 0, 0, 0
+
+datum/reagent/consumable/flour/reaction_turf(var/turf/T, var/volume)
+ src = null
+ if(!istype(T, /turf/space))
+ new /obj/effect/decal/cleanable/flour(T)
+
+datum/reagent/consumable/cherryjelly
+ name = "Cherry Jelly"
+ id = "cherryjelly"
+ description = "Totally the best. Only to be spread on foods with excellent lateral symmetry."
+ color = "#801E28" // rgb: 128, 30, 40
+
+
diff --git a/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm
new file mode 100644
index 00000000000..20b105f9040
--- /dev/null
+++ b/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm
@@ -0,0 +1,399 @@
+
+#define REM REAGENTS_EFFECT_MULTIPLIER
+
+//////////////////////////////////////////////////////////////////////////////////////////
+ // MEDICINE REAGENTS
+//////////////////////////////////////////////////////////////////////////////////////
+
+// where all the reagents related to medicine go.
+
+datum/reagent/medicine
+ name = "Medicine"
+ id = "medicine"
+
+datum/reagent/medicine/on_mob_life(var/mob/living/M as mob)
+ holder.remove_reagent(src.id, metabolization_rate / M.metabolism_efficiency) //medicine reagents stay longer if you have a better metabolism
+
+datum/reagent/medicine/ethylredoxrazine // FUCK YOU, ALCOHOL
+ name = "Ethylredoxrazine"
+ id = "ethylredoxrazine"
+ description = "A powerful oxidizer that reacts with ethanol."
+ reagent_state = SOLID
+ color = "#605048" // rgb: 96, 80, 72
+
+datum/reagent/medicine/ethylredoxrazine/on_mob_life(var/mob/living/M as mob)
+ M.dizziness = 0
+ M.drowsyness = 0
+ M.stuttering = 0
+ M.confused = 0
+ M.reagents.remove_all_type(/datum/reagent/consumable/ethanol, 1*REM, 0, 1)
+ ..()
+ return
+
+datum/reagent/medicine/lipozine
+ name = "Lipozine" // The anti-nutriment.
+ id = "lipozine"
+ description = "A chemical compound that causes a powerful fat-burning reaction."
+ color = "#BBEDA4" // rgb: 187, 237, 164
+
+datum/reagent/medicine/lipozine/on_mob_life(var/mob/living/M as mob)
+ M.nutrition -= 10 * REAGENTS_METABOLISM
+ M.overeatduration = 0
+ if(M.nutrition < 0)//Prevent from going into negatives.
+ M.nutrition = 0
+ ..()
+ return
+
+datum/reagent/medicine/hyperzine
+ name = "Hyperzine"
+ id = "hyperzine"
+ description = "Hyperzine is a highly effective, long lasting, muscle stimulant."
+ color = "#C8A5DC" // rgb: 200, 165, 220
+ metabolization_rate = 0.5 * REAGENTS_METABOLISM
+
+datum/reagent/medicine/hyperzine/on_mob_life(var/mob/living/M as mob)
+ if(M.stat != DEAD)
+ if(prob(5))
+ M.emote(pick("twitch","blink_r","shiver"))
+ M.status_flags |= GOTTAGOFAST
+ ..()
+ return
+
+datum/reagent/medicine/leporazine
+ name = "Leporazine"
+ id = "leporazine"
+ description = "Leporazine can be use to stabilize an individuals body temperature."
+ color = "#C8A5DC" // rgb: 200, 165, 220
+
+datum/reagent/medicine/leporazine/on_mob_life(var/mob/living/M as mob)
+ if(M.bodytemperature > 310)
+ M.bodytemperature = max(310, M.bodytemperature - (40 * TEMPERATURE_DAMAGE_COEFFICIENT))
+ else if(M.bodytemperature < 311)
+ M.bodytemperature = min(310, M.bodytemperature + (40 * TEMPERATURE_DAMAGE_COEFFICIENT))
+ ..()
+
+datum/reagent/medicine/inaprovaline
+ name = "Inaprovaline"
+ id = "inaprovaline"
+ description = "Inaprovaline is a synaptic stimulant and cardiostimulant. Commonly used to stabilize patients."
+ color = "#C8A5DC" // rgb: 200, 165, 220
+ metabolization_rate = 0.5 * REAGENTS_METABOLISM
+
+datum/reagent/medicine/inaprovaline/on_mob_life(var/mob/living/M as mob)
+ if(M.losebreath >= 10)
+ M.losebreath = max(10, M.losebreath-5)
+ ..()
+ return
+
+datum/reagent/medicine/ryetalyn
+ name = "Ryetalyn"
+ id = "ryetalyn"
+ description = "Ryetalyn can cure all genetic abnomalities."
+ reagent_state = SOLID
+ color = "#C8A5DC" // rgb: 200, 165, 220
+
+datum/reagent/medicine/ryetalyn/on_mob_life(var/mob/living/M as mob)
+
+ var/needs_update = M.mutations.len > 0
+ M.mutations = list()
+ M.disabilities = 0
+ M.sdisabilities = 0
+ M.jitteriness = 0
+
+ // Might need to update appearance for hulk etc.
+ if(needs_update && ishuman(M))
+ var/mob/living/carbon/human/H = M
+ H.update_mutations()
+ ..()
+ return
+
+datum/reagent/medicine/kelotane
+ name = "Kelotane"
+ id = "kelotane"
+ description = "Kelotane is a drug used to treat burns."
+ color = "#C8A5DC" // rgb: 200, 165, 220
+
+datum/reagent/medicine/kelotane/on_mob_life(var/mob/living/M as mob)
+ if(M.stat != DEAD)
+ M.heal_organ_damage(0,2*REM)
+ ..()
+ return
+
+datum/reagent/medicine/dermaline
+ name = "Dermaline"
+ id = "dermaline"
+ description = "Dermaline is the next step in burn medication. Works twice as good as kelotane and enables the body to restore even the direst heat-damaged tissue."
+ color = "#C8A5DC" // rgb: 200, 165, 220
+
+datum/reagent/medicine/dermaline/on_mob_life(var/mob/living/M as mob)
+ if(M.stat != DEAD) //THE GUY IS **DEAD**! BEREFT OF ALL LIFE HE RESTS IN PEACE etc etc. He does NOT metabolise shit anymore, god DAMN
+ M.heal_organ_damage(0,3*REM)
+ ..()
+ return
+
+datum/reagent/medicine/dexalin
+ name = "Dexalin"
+ id = "dexalin"
+ description = "Dexalin is used in the treatment of oxygen deprivation."
+ color = "#C8A5DC" // rgb: 200, 165, 220
+
+datum/reagent/medicine/dexalin/on_mob_life(var/mob/living/M as mob)
+ if(M.stat != DEAD)
+ M.adjustOxyLoss(-2*REM)
+ if(holder.has_reagent("lexorin"))
+ holder.remove_reagent("lexorin", 2*REM)
+ ..()
+ return
+
+datum/reagent/medicine/dexalinp
+ name = "Dexalin Plus"
+ id = "dexalinp"
+ description = "Dexalin Plus is used in the treatment of oxygen deprivation. Its highly effective."
+ color = "#C8A5DC" // rgb: 200, 165, 220
+
+datum/reagent/medicine/dexalinp/on_mob_life(var/mob/living/M as mob)
+ if(M.stat != DEAD)
+ M.adjustOxyLoss(-M.getOxyLoss())
+ if(holder.has_reagent("lexorin"))
+ holder.remove_reagent("lexorin", 2*REM)
+ ..()
+ return
+
+datum/reagent/medicine/tricordrazine
+ name = "Tricordrazine"
+ id = "tricordrazine"
+ description = "Tricordrazine is a highly potent stimulant, originally derived from cordrazine. Can be used to treat a wide range of injuries."
+ color = "#C8A5DC" // rgb: 200, 165, 220
+
+datum/reagent/medicine/tricordrazine/on_mob_life(var/mob/living/M as mob)
+ if(M.stat != DEAD)
+ if(M.getOxyLoss() && prob(80))
+ M.adjustOxyLoss(-1*REM)
+ if(M.getBruteLoss() && prob(80))
+ M.heal_organ_damage(1*REM,0)
+ if(M.getFireLoss() && prob(80))
+ M.heal_organ_damage(0,1*REM)
+ if(M.getToxLoss() && prob(80))
+ M.adjustToxLoss(-1*REM)
+ ..()
+ return
+
+datum/reagent/medicine/anti_toxin
+ name = "Anti-Toxin (Dylovene)"
+ id = "anti_toxin"
+ description = "Dylovene is a broad-spectrum antitoxin."
+ color = "#C8A5DC" // rgb: 200, 165, 220
+
+datum/reagent/medicine/anti_toxin/on_mob_life(var/mob/living/M as mob)
+ if(M.stat != DEAD)
+ M.reagents.remove_all_type(/datum/reagent/toxin, 1*REM, 0, 1)
+ M.drowsyness = max(M.drowsyness-2*REM, 0)
+ M.hallucination = max(0, M.hallucination - 5*REM)
+ M.adjustToxLoss(-2*REM)
+ ..()
+ return
+
+datum/reagent/medicine/adminordrazine //An OP chemical for admins
+ name = "Adminordrazine"
+ id = "adminordrazine"
+ description = "It's magic. We don't have to explain it."
+ color = "#C8A5DC" // rgb: 200, 165, 220
+
+datum/reagent/medicine/adminordrazine/on_mob_life(var/mob/living/carbon/M as mob)
+ if(!M) M = holder.my_atom ///This can even heal dead people.
+ M.reagents.remove_all_type(/datum/reagent/toxin, 5*REM, 0, 1)
+ M.setCloneLoss(0)
+ M.setOxyLoss(0)
+ M.radiation = 0
+ M.heal_organ_damage(5,5)
+ M.adjustToxLoss(-5)
+ M.hallucination = 0
+ M.setBrainLoss(0)
+ M.disabilities = 0
+ M.sdisabilities = 0
+ M.eye_blurry = 0
+ M.eye_blind = 0
+ M.SetWeakened(0)
+ M.SetStunned(0)
+ M.SetParalysis(0)
+ M.silent = 0
+ M.dizziness = 0
+ M.drowsyness = 0
+ M.stuttering = 0
+ M.confused = 0
+ M.sleeping = 0
+ M.jitteriness = 0
+ for(var/datum/disease/D in M.viruses)
+ if(D.severity == NONTHREAT)
+ continue
+ D.spread_text = "Remissive"
+ D.stage--
+ if(D.stage < 1)
+ D.cure()
+ ..()
+ return
+
+datum/reagent/medicine/synaptizine
+ name = "Synaptizine"
+ id = "synaptizine"
+ description = "Synaptizine is used to treat various diseases."
+ color = "#C8A5DC" // rgb: 200, 165, 220
+
+datum/reagent/medicine/synaptizine/on_mob_life(var/mob/living/M as mob)
+ M.drowsyness = max(M.drowsyness-5, 0)
+ M.AdjustParalysis(-1)
+ M.AdjustStunned(-1)
+ M.AdjustWeakened(-1)
+ if(holder.has_reagent("mindbreaker"))
+ holder.remove_reagent("mindbreaker", 5)
+ M.hallucination = max(0, M.hallucination - 10)
+ if(prob(60))
+ M.adjustToxLoss(1)
+ ..()
+ return
+
+datum/reagent/medicine/hyronalin
+ name = "Hyronalin"
+ id = "hyronalin"
+ description = "Hyronalin is a medicinal drug used to counter the effect of radiation poisoning."
+ color = "#C8A5DC" // rgb: 200, 165, 220
+
+datum/reagent/medicine/hyronalin/on_mob_life(var/mob/living/M as mob)
+ M.radiation = max(M.radiation-3*REM,0)
+ ..()
+ return
+
+datum/reagent/medicine/arithrazine
+ name = "Arithrazine"
+ id = "arithrazine"
+ description = "Arithrazine is an unstable medication used for the most extreme cases of radiation poisoning."
+ color = "#C8A5DC" // rgb: 200, 165, 220
+
+datum/reagent/medicine/arithrazine/on_mob_life(var/mob/living/M as mob)
+ if(M.stat != DEAD)
+ M.radiation = max(M.radiation-7*REM,0)
+ M.adjustToxLoss(-1*REM)
+ if(prob(15))
+ M.take_organ_damage(1, 0)
+ ..()
+ return
+
+datum/reagent/medicine/alkysine
+ name = "Alkysine"
+ id = "alkysine"
+ description = "Alkysine is a drug used to lessen the damage to neurological tissue after a catastrophic injury. Can heal brain tissue."
+ color = "#C8A5DC" // rgb: 200, 165, 220
+
+datum/reagent/medicine/alkysine/on_mob_life(var/mob/living/M as mob)
+ if(M != DEAD)
+ M.adjustBrainLoss(-3*REM)
+ ..()
+ return
+
+datum/reagent/medicine/imidazoline
+ name = "Imidazoline"
+ id = "imidazoline"
+ description = "Heals eye damage."
+ color = "#C8A5DC" // rgb: 200, 165, 220
+
+datum/reagent/medicine/imidazoline/on_mob_life(var/mob/living/M as mob)
+ M.eye_blurry = max(M.eye_blurry-5 , 0)
+ M.eye_blind = max(M.eye_blind-5 , 0)
+ M.disabilities &= ~NEARSIGHTED
+ M.eye_stat = max(M.eye_stat-5, 0)
+// M.sdisabilities &= ~1 Replaced by eye surgery
+ ..()
+ return
+
+datum/reagent/medicine/inacusiate
+ name = "Inacusiate"
+ id = "inacusiate"
+ description = "Heals ear damage."
+ color = "#6600FF" // rgb: 100, 165, 255
+
+datum/reagent/medicine/inacusiate/on_mob_life(var/mob/living/M as mob)
+ M.ear_damage = 0
+ M.ear_deaf = 0
+ ..()
+ return
+
+datum/reagent/medicine/bicaridine
+ name = "Bicaridine"
+ id = "bicaridine"
+ description = "Bicaridine is an analgesic medication and can be used to treat blunt trauma."
+ color = "#C8A5DC" // rgb: 200, 165, 220
+
+datum/reagent/medicine/bicaridine/on_mob_life(var/mob/living/M as mob)
+ if(M.stat != DEAD)
+ M.heal_organ_damage(2*REM,0)
+ ..()
+ return
+
+datum/reagent/medicine/cryoxadone
+ name = "Cryoxadone"
+ id = "cryoxadone"
+ description = "A chemical mixture with almost magical healing powers. Its main limitation is that the targets body temperature must be under 170K for it to metabolise correctly."
+ color = "#C8A5DC" // rgb: 200, 165, 220
+
+datum/reagent/medicine/cryoxadone/on_mob_life(var/mob/living/M as mob)
+ if(M.stat != DEAD && M.bodytemperature < 170)
+ M.adjustCloneLoss(-1)
+ M.adjustOxyLoss(-3)
+ M.heal_organ_damage(3,3)
+ M.adjustToxLoss(-3)
+ ..()
+ return
+
+datum/reagent/medicine/clonexadone
+ name = "Clonexadone"
+ id = "clonexadone"
+ description = "A liquid compound similar to that used in the cloning process. Can be used to 'finish' clones that get ejected early when used in conjunction with a cryo tube."
+ color = "#C8A5DC" // rgb: 200, 165, 220
+
+datum/reagent/medicine/clonexadone/on_mob_life(var/mob/living/M as mob)
+ if(M.stat != DEAD && M.bodytemperature < 170)
+ M.adjustCloneLoss(-3)
+ M.adjustOxyLoss(-3)
+ M.heal_organ_damage(3,3)
+ M.adjustToxLoss(-3)
+ M.status_flags &= ~DISFIGURED
+ ..()
+ return
+
+datum/reagent/medicine/rezadone
+ name = "Rezadone"
+ id = "rezadone"
+ description = "A powder derived from fish toxin, this substance can effectively treat cellular damage in humanoids, though excessive consumption has side effects."
+ reagent_state = SOLID
+ color = "#669900" // rgb: 102, 153, 0
+
+datum/reagent/medicine/rezadone/on_mob_life(var/mob/living/M as mob)
+ if(!data)
+ data = 1
+ data++
+ switch(data)
+ if(1 to 15)
+ M.adjustCloneLoss(-1)
+ M.heal_organ_damage(1,1)
+ if(15 to 35)
+ M.adjustCloneLoss(-2)
+ M.heal_organ_damage(2,1)
+ M.status_flags &= ~DISFIGURED
+ if(35 to INFINITY)
+ M.adjustToxLoss(1)
+ M.Dizzy(5)
+ M.Jitter(5)
+
+ ..()
+ return
+
+datum/reagent/medicine/spaceacillin
+ name = "Spaceacillin"
+ id = "spaceacillin"
+ description = "An all-purpose antiviral agent."
+ color = "#C8A5DC" // rgb: 200, 165, 220
+ metabolization_rate = 0.5 * REAGENTS_METABOLISM
+
+
+// Undefine the alias for REAGENTS_EFFECT_MULTIPLER
+#undef REM
\ No newline at end of file
diff --git a/code/modules/reagents/Chemistry-Reagents/Toxin-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Toxin-Reagents.dm
new file mode 100644
index 00000000000..d58815700bf
--- /dev/null
+++ b/code/modules/reagents/Chemistry-Reagents/Toxin-Reagents.dm
@@ -0,0 +1,411 @@
+
+#define REM REAGENTS_EFFECT_MULTIPLIER
+
+
+//////////////////////////Poison stuff (Toxins & Acids)///////////////////////
+
+datum/reagent/toxin
+ name = "Toxin"
+ id = "toxin"
+ description = "A toxic chemical."
+ color = "#CF3600" // rgb: 207, 54, 0
+ var/toxpwr = 1.5
+
+datum/reagent/toxin/on_mob_life(var/mob/living/M as mob)
+ if(toxpwr)
+ M.adjustToxLoss(toxpwr*REM)
+ ..()
+ return
+
+datum/reagent/toxin/amatoxin
+ name = "Amatoxin"
+ id = "amatoxin"
+ description = "A powerful poison derived from certain species of mushroom."
+ color = "#792300" // rgb: 121, 35, 0
+ toxpwr = 1
+
+datum/reagent/toxin/mutagen
+ name = "Unstable mutagen"
+ id = "mutagen"
+ description = "Might cause unpredictable mutations. Keep away from children."
+ color = "#13BC5E" // rgb: 19, 188, 94
+ toxpwr = 0
+
+datum/reagent/toxin/mutagen/reaction_mob(var/mob/living/carbon/M, var/method=TOUCH, var/volume)
+ if(!..())
+ return
+ if(!istype(M) || !M.dna)
+ return //No robots, AIs, aliens, Ians or other mobs should be affected by this.
+ src = null
+ if((method==TOUCH && prob(33)) || method==INGEST)
+ randmuti(M)
+ if(prob(98))
+ randmutb(M)
+ else
+ randmutg(M)
+ domutcheck(M, null)
+ updateappearance(M)
+ return
+
+datum/reagent/toxin/mutagen/on_mob_life(var/mob/living/carbon/M)
+ if(istype(M))
+ M.apply_effect(5,IRRADIATE,0)
+ ..()
+ return
+
+datum/reagent/toxin/plasma
+ name = "Plasma"
+ id = "plasma"
+ description = "Plasma in its liquid form."
+ color = "#DB2D08" // rgb: 219, 45, 8
+ toxpwr = 3
+
+datum/reagent/toxin/plasma/on_mob_life(var/mob/living/M as mob)
+ if(holder.has_reagent("inaprovaline"))
+ holder.remove_reagent("inaprovaline", 2*REM)
+ ..()
+ return
+
+datum/reagent/toxin/plasma/reaction_obj(var/obj/O, var/volume)
+ src = null
+ /*if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/egg/slime))
+ var/obj/item/weapon/reagent_containers/food/snacks/egg/slime/egg = O
+ if (egg.grown)
+ egg.Hatch()*/
+ if((!O) || (!volume)) return 0
+ O.atmos_spawn_air(SPAWN_TOXINS|SPAWN_20C, volume)
+
+datum/reagent/toxin/plasma/reaction_turf(var/turf/simulated/T, var/volume)
+ src = null
+ if(istype(T))
+ T.atmos_spawn_air(SPAWN_TOXINS|SPAWN_20C, volume)
+ return
+
+datum/reagent/toxin/plasma/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)//Splashing people with plasma is stronger than fuel!
+ if(!istype(M, /mob/living))
+ return
+ if(method == TOUCH)
+ M.adjust_fire_stacks(volume / 5)
+ return
+
+datum/reagent/toxin/lexorin
+ name = "Lexorin"
+ id = "lexorin"
+ description = "Lexorin temporarily stops respiration. Causes tissue damage."
+ color = "#C8A5DC" // rgb: 200, 165, 220
+ toxpwr = 0
+
+datum/reagent/toxin/lexorin/on_mob_life(var/mob/living/M as mob)
+ if(M.stat != DEAD)
+ if(prob(33))
+ M.take_organ_damage(1*REM, 0)
+ M.adjustOxyLoss(3)
+ if(prob(20))
+ M.emote("gasp")
+ ..()
+ return
+
+datum/reagent/toxin/slimejelly
+ name = "Slime Jelly"
+ id = "slimejelly"
+ description = "A gooey semi-liquid produced from one of the deadliest lifeforms in existence. SO REAL."
+ color = "#801E28" // rgb: 128, 30, 40
+ toxpwr = 0
+
+datum/reagent/toxin/slimejelly/on_mob_life(var/mob/living/M as mob)
+ if(prob(10))
+ M << "Your insides are burning!"
+ M.adjustToxLoss(rand(20,60)*REM)
+ else if(prob(40))
+ M.heal_organ_damage(5*REM,0)
+ ..()
+ return
+
+datum/reagent/toxin/cyanide
+ name = "Cyanide"
+ id = "cyanide"
+ description = "A highly toxic chemical."
+ color = "#CF3600" // rgb: 207, 54, 0
+ toxpwr = 3
+
+datum/reagent/toxin/cyanide/on_mob_life(var/mob/living/M as mob)
+ M.adjustOxyLoss(3*REM)
+ M.sleeping += 1
+ ..()
+ return
+
+datum/reagent/toxin/minttoxin
+ name = "Mint Toxin"
+ id = "minttoxin"
+ description = "Useful for dealing with undesirable customers."
+ color = "#CF3600" // rgb: 207, 54, 0
+ toxpwr = 0
+
+datum/reagent/toxin/minttoxin/on_mob_life(var/mob/living/M as mob)
+ if (FAT in M.mutations)
+ M.gib()
+ ..()
+ return
+
+datum/reagent/toxin/carpotoxin
+ name = "Carpotoxin"
+ id = "carpotoxin"
+ description = "A deadly neurotoxin produced by the dreaded spess carp."
+ color = "#003333" // rgb: 0, 51, 51
+ toxpwr = 2
+
+datum/reagent/toxin/zombiepowder
+ name = "Zombie Powder"
+ id = "zombiepowder"
+ description = "A strong neurotoxin that puts the subject into a death-like state."
+ reagent_state = SOLID
+ color = "#669900" // rgb: 102, 153, 0
+ toxpwr = 0.5
+
+datum/reagent/toxin/zombiepowder/on_mob_life(var/mob/living/carbon/M as mob)
+ M.status_flags |= FAKEDEATH
+ M.adjustOxyLoss(0.5*REM)
+ M.Weaken(5)
+ M.silent = max(M.silent, 5)
+ M.tod = worldtime2text()
+ ..()
+ return
+
+datum/reagent/toxin/zombiepowder/Del()
+ if(holder && ismob(holder.my_atom))
+ var/mob/M = holder.my_atom
+ M.status_flags &= ~FAKEDEATH
+ ..()
+
+datum/reagent/toxin/mindbreaker
+ name = "Mindbreaker Toxin"
+ id = "mindbreaker"
+ description = "A powerful hallucinogen. Not a thing to be messed with."
+ color = "#B31008" // rgb: 139, 166, 233
+ toxpwr = 0
+
+datum/reagent/toxin/mindbreaker/on_mob_life(var/mob/living/M)
+ M.hallucination += 10
+ ..()
+ return
+
+datum/reagent/toxin/plantbgone
+ name = "Plant-B-Gone"
+ id = "plantbgone"
+ description = "A harmful toxic mixture to kill plantlife. Do not ingest!"
+ color = "#49002E" // rgb: 73, 0, 46
+ toxpwr = 1
+
+datum/reagent/toxin/plantbgone/reaction_obj(var/obj/O, var/volume)
+ if(istype(O,/obj/structure/alien/weeds/))
+ var/obj/structure/alien/weeds/alien_weeds = O
+ alien_weeds.health -= rand(15,35) // Kills alien weeds pretty fast
+ alien_weeds.healthcheck()
+ else if(istype(O,/obj/effect/glowshroom)) //even a small amount is enough to kill it
+ qdel(O)
+ else if(istype(O,/obj/effect/spacevine))
+ var/obj/effect/spacevine/SV = O
+ SV.on_chem_effect(src)
+
+datum/reagent/toxin/plantbgone/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
+ src = null
+ if(iscarbon(M))
+ var/mob/living/carbon/C = M
+ if(!C.wear_mask) // If not wearing a mask
+ C.adjustToxLoss(2) // 4 toxic damage per application, doubled for some reason
+
+datum/reagent/toxin/plantbgone/weedkiller
+ name = "Weed Killer"
+ id = "weedkiller"
+ description = "A harmful toxic mixture to kill weeds. Do not ingest!"
+ color = "#4B004B" // rgb: 75, 0, 75
+
+
+datum/reagent/toxin/pestkiller
+ name = "Pest Killer"
+ id = "pestkiller"
+ description = "A harmful toxic mixture to kill pests. Do not ingest!"
+ color = "#4B004B" // rgb: 75, 0, 75
+ toxpwr = 1
+
+datum/reagent/toxin/pestkiller/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
+ src = null
+ if(iscarbon(M))
+ var/mob/living/carbon/C = M
+ if(!C.wear_mask) // If not wearing a mask
+ C.adjustToxLoss(2) // 4 toxic damage per application, doubled for some reason
+
+datum/reagent/toxin/stoxin
+ name = "Sleep Toxin"
+ id = "stoxin"
+ description = "An effective hypnotic used to treat insomnia."
+ color = "#E895CC" // rgb: 232, 149, 204
+ toxpwr = 0
+
+datum/reagent/toxin/stoxin/on_mob_life(var/mob/living/M as mob)
+ if(!data) data = 1
+ switch(data)
+ if(1 to 12)
+ if(prob(5)) M.emote("yawn")
+ if(12 to 15)
+ M.eye_blurry = max(M.eye_blurry, 10)
+ if(15 to 25)
+ M.drowsyness = max(M.drowsyness, 20)
+ if(25 to INFINITY)
+ M.Paralyse(20)
+ M.drowsyness = max(M.drowsyness, 30)
+ data++
+ ..()
+ return
+
+
+datum/reagent/toxin/spore
+ name = "Spore Toxin"
+ id = "spore"
+ description = "A toxic spore cloud which blocks vision when ingested."
+ color = "#9ACD32"
+ toxpwr = 0.5
+
+datum/reagent/toxin/spore/on_mob_life(var/mob/living/M as mob)
+ M.damageoverlaytemp = 60
+ M.eye_blurry = max(M.eye_blurry, 3)
+ ..()
+ return
+
+
+datum/reagent/toxin/spore_burning
+ name = "Burning Spore Toxin"
+ id = "spore_burning"
+ description = "A burning spore cloud."
+ color = "#9ACD32"
+ toxpwr = 0.5
+
+datum/reagent/toxin/spore_burning/on_mob_life(var/mob/living/M as mob)
+ ..()
+ M.adjust_fire_stacks(2)
+ M.IgniteMob()
+
+datum/reagent/toxin/chloralhydrate
+ name = "Chloral Hydrate"
+ id = "chloralhydrate"
+ description = "A powerful sedative."
+ reagent_state = SOLID
+ color = "#000067" // rgb: 0, 0, 103
+ toxpwr = 0
+ metabolization_rate = 0.5 * REAGENTS_METABOLISM
+
+datum/reagent/toxin/chloralhydrate/on_mob_life(var/mob/living/M as mob)
+ if(!data)
+ data = 1
+ data++
+ switch(data)
+ if(1 to 10)
+ M.confused += 2
+ M.drowsyness += 2
+ if(10 to 50)
+ M.sleeping += 1
+ if(51 to INFINITY)
+ M.sleeping += 1
+ M.adjustToxLoss((data - 50)*REM)
+ ..()
+ return
+
+datum/reagent/toxin/beer2 //disguised as normal beer for use by emagged brobots
+ name = "Beer"
+ id = "beer2"
+ description = "An alcoholic beverage made from malted grains, hops, yeast, and water."
+ color = "#664300" // rgb: 102, 67, 0
+ metabolization_rate = 0.5 * REAGENTS_METABOLISM
+
+datum/reagent/toxin/beer2/on_mob_life(var/mob/living/M as mob)
+ if(!data)
+ data = 1
+ switch(data)
+ if(1 to 50)
+ M.sleeping += 1
+ if(51 to INFINITY)
+ M.sleeping += 1
+ M.adjustToxLoss((data - 50)*REM)
+ data++
+ ..()
+ return
+
+
+
+//ACID
+
+
+datum/reagent/toxin/acid
+ name = "Sulphuric acid"
+ id = "sacid"
+ description = "A strong mineral acid with the molecular formula H2SO4."
+ color = "#DB5008" // rgb: 219, 80, 8
+ toxpwr = 1
+ var/acidpwr = 10 //the amount of protection removed from the armour
+
+datum/reagent/toxin/acid/reaction_mob(var/mob/living/carbon/C, var/method=TOUCH, var/volume)
+ if(!istype(C))
+ return
+ if(method != TOUCH)
+ if(!C.unacidable)
+ C.take_organ_damage(min(6*toxpwr, volume * toxpwr))
+ return
+
+ C.acid_act(acidpwr, toxpwr, volume)
+
+datum/reagent/toxin/acid/reaction_obj(var/obj/O, var/volume)
+ if(istype(O.loc, /mob)) //handled in human acid_act()
+ return
+ O.acid_act(acidpwr, toxpwr, volume)
+
+datum/reagent/toxin/acid/polyacid
+ name = "Polytrinic acid"
+ id = "pacid"
+ description = "Polytrinic acid is a an extremely corrosive chemical substance."
+ color = "#8E18A9" // rgb: 142, 24, 169
+ toxpwr = 2
+ acidpwr = 20
+
+datum/reagent/toxin/coffeepowder
+ name = "Coffee Grounds"
+ id = "coffeepowder"
+ description = "Finely ground coffee beans, used to make coffee."
+ reagent_state = SOLID
+ color = "#5B2E0D" // rgb: 91, 46, 13
+ toxpwr = 0.5
+
+datum/reagent/toxin/teapowder
+ name = "Ground Tea Leaves"
+ id = "teapowder"
+ description = "Finely shredded tea leaves, used for making tea."
+ reagent_state = SOLID
+ color = "#7F8400" // rgb: 127, 132, 0
+ toxpwr = 0.5
+
+datum/reagent/toxin/mutetoxin //the new zombie powder.
+ name = "Mute Toxin"
+ id = "mutetoxin"
+ description = "A toxin that temporarily paralyzes the vocal cords."
+ color = "#F0F8FF" // rgb: 240, 248, 255
+ toxpwr = 0
+
+datum/reagent/toxin/mutetoxin/on_mob_life(mob/living/carbon/M)
+ M.silent += REM + 1 //If this var is increased by one or less, it will have no effect since silent is decreased right after reagents are handled in Life(). Hence the + 1.
+ ..()
+
+datum/reagent/toxin/staminatoxin
+ name = "Tirizene"
+ id = "tirizene"
+ description = "A toxin that affects the stamina of a person when injected into the bloodstream."
+ color = "#6E2828"
+ data = 13
+ toxpwr = 0
+
+datum/reagent/toxin/staminatoxin/on_mob_life(mob/living/carbon/M)
+ M.adjustStaminaLoss(REM * data)
+ data = max(data - 1, 3)
+ ..()
+
+
+// Undefine the alias for REAGENTS_EFFECT_MULTIPLER
+#undef REM
\ No newline at end of file
diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm
index a19eaff4eb4..958ed65f986 100644
--- a/code/modules/research/circuitprinter.dm
+++ b/code/modules/research/circuitprinter.dm
@@ -17,6 +17,19 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
var/efficiency_coeff
reagents = new()
+ var/list/categories = list(
+ "AI Modules",
+ "Computer Boards",
+ "Teleportation Machinery",
+ "Medical Machinery",
+ "Engineering Machinery",
+ "Exosuit Modules",
+ "Hydroponics Machinery",
+ "Subspace Telecomms",
+ "Research Machinery",
+ "Misc. Machinery"
+ )
+
/obj/machinery/r_n_d/circuit_imprinter/New()
..()
component_parts = list()
diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm
index 875504431b4..9be7c88ea13 100644
--- a/code/modules/research/designs.dm
+++ b/code/modules/research/designs.dm
@@ -149,7 +149,7 @@ datum/design/drill_diamond
build_type = PROTOLATHE
materials = list("$metal" = 3000, "$glass" = 1000, "$diamond" = 3750) //Yes, a whole diamond is needed.
reliability = 79
- build_path = /obj/item/weapon/pickaxe/diamonddrill
+ build_path = /obj/item/weapon/pickaxe/drill/diamonddrill
/////////////////////////////////////////
//////////////Blue Space/////////////////
diff --git a/code/modules/research/designs/AI_module_designs.dm b/code/modules/research/designs/AI_module_designs.dm
index d91e8efb90a..9915b0eb92c 100644
--- a/code/modules/research/designs/AI_module_designs.dm
+++ b/code/modules/research/designs/AI_module_designs.dm
@@ -2,79 +2,89 @@
//////////AI Module Disks//////////
///////////////////////////////////
-datum/design/safeguard_module
- name = "AI Module(Safeguard)"
+
+/datum/design/safeguard_module
+ name = "Module Design (Safeguard)"
desc = "Allows for the construction of a Safeguard AI Module."
id = "safeguard_module"
req_tech = list("programming" = 3, "materials" = 4)
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20, "$gold" = 100)
build_path = /obj/item/weapon/aiModule/supplied/safeguard
+ category = list("AI Modules")
-datum/design/onehuman_module
- name = "AI Module (OneHuman)"
+/datum/design/onehuman_module
+ name = "Module Design (OneHuman)"
desc = "Allows for the construction of a OneHuman AI Module."
id = "onehuman_module"
req_tech = list("programming" = 4, "materials" = 6)
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20, "$diamond" = 100)
build_path = /obj/item/weapon/aiModule/zeroth/oneHuman
+ category = list("AI Modules")
-datum/design/protectstation_module
- name = "AI Module (ProtectStation)"
+/datum/design/protectstation_module
+ name = "Module Design (ProtectStation)"
desc = "Allows for the construction of a ProtectStation AI Module."
id = "protectstation_module"
req_tech = list("programming" = 3, "materials" = 6)
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20, "$gold" = 100)
build_path = /obj/item/weapon/aiModule/supplied/protectStation
+ category = list("AI Modules")
-datum/design/quarantine_module
- name = "AI Module (Quarantine)"
+/datum/design/quarantine_module
+ name = "Module Design (Quarantine)"
desc = "Allows for the construction of a Quarantine AI Module."
id = "quarantine_module"
req_tech = list("programming" = 3, "biotech" = 2, "materials" = 4)
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20, "$gold" = 100)
build_path = /obj/item/weapon/aiModule/supplied/quarantine
+ category = list("AI Modules")
-datum/design/oxygen_module
- name = "AI Module (OxygenIsToxicToHumans)"
+
+/datum/design/oxygen_module
+ name = "Module Design (OxygenIsToxicToHumans)"
desc = "Allows for the construction of a Safeguard AI Module."
id = "oxygen_module"
req_tech = list("programming" = 3, "biotech" = 2, "materials" = 4)
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20, "$gold" = 100)
build_path = /obj/item/weapon/aiModule/supplied/oxygen
+ category = list("AI Modules")
-datum/design/freeform_module
- name = "AI Module (Freeform)"
+/datum/design/freeform_module
+ name = "Module Design (Freeform)"
desc = "Allows for the construction of a Freeform AI Module."
id = "freeform_module"
req_tech = list("programming" = 4, "materials" = 4)
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20, "$gold" = 100)
build_path = /obj/item/weapon/aiModule/supplied/freeform
+ category = list("AI Modules")
-datum/design/reset_module
- name = "AI Module (Reset)"
+/datum/design/reset_module
+ name = "Module Design (Reset)"
desc = "Allows for the construction of a Reset AI Module."
id = "reset_module"
req_tech = list("programming" = 3, "materials" = 6)
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20, "$gold" = 100)
build_path = /obj/item/weapon/aiModule/reset
+ category = list("AI Modules")
-datum/design/purge_module
- name = "AI Module (Purge)"
+/datum/design/purge_module
+ name = "Module Design (Purge)"
desc = "Allows for the construction of a Purge AI Module."
id = "purge_module"
req_tech = list("programming" = 4, "materials" = 6)
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20, "$diamond" = 100)
build_path = /obj/item/weapon/aiModule/reset/purge
+ category = list("AI Modules")
-datum/design/freeformcore_module
+/datum/design/freeformcore_module
name = "AI Core Module (Freeform)"
desc = "Allows for the construction of a Freeform AI Core Module."
id = "freeformcore_module"
@@ -82,48 +92,54 @@ datum/design/freeformcore_module
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20, "$diamond" = 100)
build_path = /obj/item/weapon/aiModule/core/freeformcore
+ category = list("AI Modules")
-datum/design/asimov
- name = "AI Core Module (Asimov)"
+/datum/design/asimov
+ name = "Core Module Design (Asimov)"
desc = "Allows for the construction of a Asimov AI Core Module."
id = "asimov_module"
req_tech = list("programming" = 3, "materials" = 6)
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20, "$diamond" = 100)
build_path = /obj/item/weapon/aiModule/core/full/asimov
+ category = list("AI Modules")
-datum/design/paladin_module
- name = "AI Core Module (P.A.L.A.D.I.N.)"
+/datum/design/paladin_module
+ name = "Core Module Design (P.A.L.A.D.I.N.)"
desc = "Allows for the construction of a P.A.L.A.D.I.N. AI Core Module."
id = "paladin_module"
req_tech = list("programming" = 4, "materials" = 6)
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20, "$diamond" = 100)
build_path = /obj/item/weapon/aiModule/core/full/paladin
+ category = list("AI Modules")
-datum/design/tyrant_module
- name = "AI Core Module (T.Y.R.A.N.T.)"
+/datum/design/tyrant_module
+ name = "Core Module Design (T.Y.R.A.N.T.)"
desc = "Allows for the construction of a T.Y.R.A.N.T. AI Module."
id = "tyrant_module"
req_tech = list("programming" = 4, "syndicate" = 2, "materials" = 6)
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20, "$diamond" = 100)
build_path = /obj/item/weapon/aiModule/core/full/tyrant
+ category = list("AI Modules")
-datum/design/corporate_module
- name = "AI Core Module (Corporate)"
+/datum/design/corporate_module
+ name = "Core Module Design (Corporate)"
desc = "Allows for the construction of a Corporate AI Core Module."
id = "corporate_module"
req_tech = list("programming" = 4, "materials" = 6)
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20, "$diamond" = 100)
build_path = /obj/item/weapon/aiModule/core/full/corp
+ category = list("AI Modules")
-datum/design/custom_module
- name = "AI Core Module (Custom)"
+/datum/design/custom_module
+ name = "Core Module Design (Custom)"
desc = "Allows for the construction of a Custom AI Core Module."
id = "custom_module"
req_tech = list("programming" = 4, "materials" = 6)
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20, "$diamond" = 100)
- build_path = /obj/item/weapon/aiModule/core/full/custom
\ No newline at end of file
+ build_path = /obj/item/weapon/aiModule/core/full/custom
+ category = list("AI Modules")
diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm
new file mode 100644
index 00000000000..8eca25e1066
--- /dev/null
+++ b/code/modules/research/designs/autolathe_designs.dm
@@ -0,0 +1,492 @@
+///////////////////////////////////
+//////////Autolathe Designs ///////
+///////////////////////////////////
+
+/datum/design/bucket
+ name = "Bucket"
+ id = "bucket"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 200)
+ build_path = /obj/item/weapon/reagent_containers/glass/bucket
+ category = list("initial","Tools")
+
+/datum/design/crowbar
+ name = "Pocket crowbar"
+ id = "crowbar"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 50)
+ build_path = /obj/item/weapon/crowbar
+ category = list("initial","Tools")
+
+/datum/design/flashlight
+ name = "Flashlight"
+ id = "flashlight"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 50, "$glass" = 20)
+ build_path = /obj/item/device/flashlight
+ category = list("initial","Tools")
+
+/datum/design/extinguisher
+ name = "Fire extinguisher"
+ id = "extinguisher"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 90)
+ build_path = /obj/item/weapon/extinguisher
+ category = list("initial","Tools")
+
+/datum/design/multitool
+ name = "Multitool"
+ id = "multitool"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 50, "$glass" = 20)
+ build_path = /obj/item/device/multitool
+ category = list("initial","Tools")
+
+/datum/design/analyzer
+ name = "Analyzer"
+ id = "analyzer"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 30, "$glass" = 20)
+ build_path = /obj/item/device/analyzer
+ category = list("initial","Tools")
+
+/datum/design/tscanner
+ name = "T-ray scanner"
+ id = "tscanner"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 150)
+ build_path = /obj/item/device/t_scanner
+ category = list("initial","Tools")
+
+/datum/design/weldingtool
+ name = "Welding tool"
+ id = "welding_tool"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 70, "$glass" = 20)
+ build_path = /obj/item/weapon/weldingtool
+ category = list("initial","Tools")
+
+/datum/design/screwdriver
+ name = "Screwdriver"
+ id = "screwdriver"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 75)
+ build_path = /obj/item/weapon/screwdriver
+ category = list("initial","Tools")
+
+/datum/design/wirecutters
+ name = "Wirecutters"
+ id = "wirecutters"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 80)
+ build_path = /obj/item/weapon/wirecutters
+ category = list("initial","Tools")
+
+/datum/design/wrench
+ name = "Wrench"
+ id = "wrench"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 150)
+ build_path = /obj/item/weapon/wrench
+ category = list("initial","Tools")
+
+/datum/design/welding_helmet
+ name = "Welding helmet"
+ id = "welding_helmet"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 1750, "$glass" = 400)
+ build_path = /obj/item/clothing/head/welding
+ category = list("initial","Tools")
+
+/datum/design/console_screen
+ name = "Console screen"
+ id = "console_screen"
+ build_type = AUTOLATHE
+ materials = list("$glass" = 200)
+ build_path = /obj/item/weapon/stock_parts/console_screen
+ category = list("initial", "Electronics")
+
+/datum/design/airlock_board
+ name = "Airlock electronics"
+ id = "airlock_board"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 50, "$glass" = 50)
+ build_path = /obj/item/weapon/airlock_electronics
+ category = list("initial", "Electronics")
+
+/datum/design/airalarm_electronics
+ name = "Air alarm electronics"
+ id = "airalarm_electronics"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 50, "$glass" = 50)
+ build_path = /obj/item/weapon/airalarm_electronics
+ category = list("initial", "Electronics")
+
+/datum/design/firealarm_electronics
+ name = "Fire alarm electronics"
+ id = "firealarm_electronics"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 50, "$glass" = 50)
+ build_path = /obj/item/weapon/firealarm_electronics
+ category = list("initial", "Electronics")
+
+/datum/design/pipe_painter
+ name = "Pipe painter"
+ id = "pipe_painter"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 5000, "$glass" = 2000)
+ build_path = /obj/item/device/pipe_painter
+ category = list("initial", "Misc")
+
+/datum/design/metal
+ name = "Metal"
+ id = "metal"
+ build_type = AUTOLATHE
+ materials = list("$metal" = MINERAL_MATERIAL_AMOUNT)
+ build_path = /obj/item/stack/sheet/metal
+ category = list("initial","Construction")
+
+/datum/design/glass
+ name = "Glass"
+ id = "glass"
+ build_type = AUTOLATHE
+ materials = list("$glass" = MINERAL_MATERIAL_AMOUNT)
+ build_path = /obj/item/stack/sheet/glass
+ category = list("initial","Construction")
+
+/datum/design/rglass
+ name = "Reinforced glass"
+ id = "rglass"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 1000, "$glass" = MINERAL_MATERIAL_AMOUNT)
+ build_path = /obj/item/stack/sheet/rglass
+ category = list("initial","Construction")
+
+/datum/design/rods
+ name = "Metal rod"
+ id = "rods"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 1000)
+ build_path = /obj/item/stack/rods
+ category = list("initial","Construction")
+
+/datum/design/rcd_ammo
+ name = "Compressed matter cardridge"
+ id = "rcd_ammo"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 16000, "$glass"=8000)
+ build_path = /obj/item/weapon/rcd_ammo
+ category = list("initial","Construction")
+
+/datum/design/kitchen_knife
+ name = "Kitchen knife"
+ id = "kitchen_knife"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 12000)
+ build_path = /obj/item/weapon/kitchenknife
+ category = list("initial","Misc")
+
+/datum/design/scalpel
+ name = "Scalpel"
+ id = "scalpel"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 4000, "$glass" = 1000)
+ build_path = /obj/item/weapon/scalpel
+ category = list("initial", "Medical")
+
+/datum/design/circular_saw
+ name = "Circular saw"
+ id = "circular_saw"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 10000, "$glass" = 6000)
+ build_path = /obj/item/weapon/circular_saw
+ category = list("initial", "Medical")
+
+/datum/design/surgicaldrill
+ name = "Surgical drill"
+ id = "surgicaldrill"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 10000, "$glass" = 6000)
+ build_path = /obj/item/weapon/surgicaldrill
+ category = list("initial", "Medical")
+
+/datum/design/retractor
+ name = "Retractor"
+ id = "retractor"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 6000, "$glass" = 3000)
+ build_path = /obj/item/weapon/
+ category = list("initial", "Medical")
+
+/datum/design/cautery
+ name = "Cautery"
+ id = "cautery"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 2500, "$glass" = 750)
+ build_path = /obj/item/weapon/cautery
+ category = list("initial", "Medical")
+
+/datum/design/hemostat
+ name = "Hemostat"
+ id = "hemostat"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 5000, "$glass" = 2500)
+ build_path = /obj/item/weapon/hemostat
+ category = list("initial", "Medical")
+
+/datum/design/beaker
+ name = "Beaker"
+ id = "beaker"
+ build_type = AUTOLATHE
+ materials = list("$glass" = 500)
+ build_path = /obj/item/weapon/reagent_containers/glass/beaker
+ category = list("initial", "Medical")
+
+/datum/design/large_beaker
+ name = "Large beaker"
+ id = "large_beaker"
+ build_type = AUTOLATHE
+ materials = list("$glass" = 2500)
+ build_path = /obj/item/weapon/reagent_containers/glass/beaker/large
+ category = list("initial", "Medical")
+
+/datum/design/beanbag_slug
+ name = "Beanbag slug"
+ id = "beanbag_slug"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 250)
+ build_path = /obj/item/ammo_casing/shotgun/beanbag
+ category = list("initial", "Security")
+
+/datum/design/c38
+ name = "Speed loader (.38)"
+ id = "c38"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 30000)
+ build_path = /obj/item/ammo_box/c38
+ category = list("initial", "Security")
+
+/datum/design/recorder
+ name = "Universal recorder"
+ id = "recorder"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 60, "$glass" = 30)
+ build_path = /obj/item/device/taperecorder/empty
+ category = list("initial", "Misc")
+
+/datum/design/tape
+ name = "Tape"
+ id = "tape"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 20, "$glass" = 5)
+ build_path = /obj/item/device/tape
+ category = list("initial", "Misc")
+
+/datum/design/igniter
+ name = "Igniter"
+ id = "igniter"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 500, "$glass" = 50)
+ build_path = /obj/item/device/assembly/igniter
+ category = list("initial", "Misc")
+
+/datum/design/signaler
+ name = "Remote signaling device"
+ id = "signaler"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 400, "$glass" = 120)
+ build_path = /obj/item/device/assembly/signaler
+ category = list("initial", "T-Comm")
+
+/datum/design/radio_headset
+ name = "Radio headset"
+ id = "radio_headset"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 75)
+ build_path = /obj/item/device/radio/headset
+ category = list("initial", "T-Comm")
+
+/datum/design/bounced_radio
+ name = "Station bounced radio"
+ id = "bounced_radio"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 75, "$glass" = 25)
+ build_path = /obj/item/device/radio/off
+ category = list("initial", "T-Comm")
+
+/datum/design/infrared_emitter
+ name = "Infrared emitter"
+ id = "infrared_emitter"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 1000, "$glass" = 500)
+ build_path = /obj/item/device/assembly/infra
+ category = list("initial", "Misc")
+
+/datum/design/timer
+ name = "Timer"
+ id = "timer"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 500, "$glass" = 50)
+ build_path = /obj/item/device/assembly/timer
+ category = list("initial", "Misc")
+
+/datum/design/voice_analyser
+ name = "Voice analyser"
+ id = "voice_analyser"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 500, "$glass" = 50)
+ build_path = /obj/item/device/assembly/voice
+ category = list("initial", "Misc")
+
+/datum/design/light_tube
+ name = "Light tube"
+ id = "light_tube"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 60, "$glass" = 100)
+ build_path = /obj/item/weapon/light/tube
+ category = list("initial", "Construction")
+
+/datum/design/light_bulb
+ name = "Light bulb"
+ id = "light_bulb"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 60, "$glass" = 100)
+ build_path = /obj/item/weapon/light/bulb
+ category = list("initial", "Construction")
+
+/datum/design/camera_assembly
+ name = "Camera assembly"
+ id = "camera_assembly"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 400, "$glass" = 250)
+ build_path = /obj/item/weapon/camera_assembly
+ category = list("initial", "Construction")
+
+/datum/design/newscaster_frame
+ name = "Newscaster frame"
+ id = "newscaster_frame"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 14000, "$glass" = 8000)
+ build_path = /obj/item/newscaster_frame
+ category = list("initial", "Construction")
+
+/datum/design/syringe
+ name = "Syringe"
+ id = "syringe"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 10, "$glass" = 20)
+ build_path = /obj/item/weapon/reagent_containers/syringe
+ category = list("initial", "Medical")
+
+/datum/design/prox_sensor
+ name = "Proximity sensor"
+ id = "prox_sensor"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 800, "$glass" = 200)
+ build_path = /obj/item/device/assembly/prox_sensor
+ category = list("initial", "Misc")
+
+//hacked autolathe recipes
+/datum/design/flamethrower
+ name = "Flamethrower"
+ id = "flamethrower"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 500)
+ build_path = /obj/item/weapon/flamethrower/full
+ category = list("hacked", "Weapons and ammo")
+
+/datum/design/rcd
+ name = "Rapid construction device (RCD)"
+ id = "rcd"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 30000)
+ build_path = /obj/item/weapon/rcd
+ category = list("hacked", "Construction")
+
+/datum/design/electropack
+ name = "Electropack"
+ id = "electropack"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 10000, "$glass" = 2500)
+ build_path = /obj/item/device/electropack
+ category = list("hacked", "Tools")
+
+/datum/design/large_welding_tool
+ name = "Industrial welding tool"
+ id = "large_welding_tool"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 70, "$glass" = 60)
+ build_path = /obj/item/weapon/weldingtool/largetank
+ category = list("hacked", "Tools")
+
+/datum/design/handcuffs
+ name = "Handcuffs"
+ id = "handcuffs"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 500)
+ build_path = /obj/item/weapon/restraints/handcuffs
+ category = list("hacked", "Security")
+
+/datum/design/shotgun_slug
+ name = "Shotgun slug"
+ id = "shotgun_slug"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 4000)
+ build_path = /obj/item/ammo_casing/shotgun
+ category = list("hacked", "Security")
+
+/datum/design/buckshot_shell
+ name = "Buckshot shell"
+ id = "buckshot_shell"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 4000)
+ build_path = /obj/item/ammo_casing/shotgun/buckshot
+ category = list("hacked", "Security")
+
+/datum/design/shotgun_dart
+ name = "Shotgun dart"
+ id = "shotgun_dart"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 4000)
+ build_path = /obj/item/ammo_casing/shotgun/dart
+ category = list("hacked", "Security")
+
+/datum/design/incendiary_slug
+ name = "Incendiary slug"
+ id = "incendiary_slug"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 4000)
+ build_path = /obj/item/ammo_casing/shotgun/incendiary
+ category = list("hacked", "Security")
+
+/datum/design/a357
+ name = "Ammo box (.357)"
+ id = "a357"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 30000)
+ build_path = /obj/item/ammo_box/a357
+ category = list("hacked", "Security")
+
+/datum/design/c10mm
+ name = "Ammo box (10mm)"
+ id = "c10mm"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 30000)
+ build_path = /obj/item/ammo_box/c10mm
+ category = list("hacked", "Security")
+
+/datum/design/c45
+ name = "Ammo box (.45)"
+ id = "c45"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 30000)
+ build_path = /obj/item/ammo_box/c45
+ category = list("hacked", "Security")
+
+/datum/design/c9mm
+ name = "Ammo box (9mm)"
+ id = "c9mm"
+ build_type = AUTOLATHE
+ materials = list("$metal" = 30000)
+ build_path = /obj/item/ammo_box/c9mm
+ category = list("hacked", "Security")
diff --git a/code/modules/research/designs/comp_board_designs.dm b/code/modules/research/designs/comp_board_designs.dm
index 599e9700966..297a1eaa353 100644
--- a/code/modules/research/designs/comp_board_designs.dm
+++ b/code/modules/research/designs/comp_board_designs.dm
@@ -1,6 +1,6 @@
///////////////////Computer Boards///////////////////////////////////
-datum/design/seccamera
+/datum/design/seccamera
name = "Computer Design (Security)"
desc = "Allows for the construction of circuit boards used to build security camera computers."
id = "seccamera"
@@ -8,8 +8,9 @@ datum/design/seccamera
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/security
+ category = list("Computer Boards")
-datum/design/aicore
+/datum/design/aicore
name = "AI Design (AI Core)"
desc = "Allows for the construction of circuit boards used to build new AI cores."
id = "aicore"
@@ -17,8 +18,9 @@ datum/design/aicore
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/aicore
+ category = list("Computer Boards")
-datum/design/aiupload
+/datum/design/aiupload
name = "Computer Design (AI Upload)"
desc = "Allows for the construction of circuit boards used to build an AI Upload Console."
id = "aiupload"
@@ -26,8 +28,9 @@ datum/design/aiupload
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/aiupload
+ category = list("Computer Boards")
-datum/design/borgupload
+/datum/design/borgupload
name = "Computer Design (Cyborg Upload)"
desc = "Allows for the construction of circuit boards used to build a Cyborg Upload Console."
id = "borgupload"
@@ -35,8 +38,9 @@ datum/design/borgupload
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/borgupload
+ category = list("Computer Boards")
-datum/design/med_data
+/datum/design/med_data
name = "Computer Design (Medical Records)"
desc = "Allows for the construction of circuit boards used to build a medical records console."
id = "med_data"
@@ -44,8 +48,9 @@ datum/design/med_data
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/med_data
+ category = list("Computer Boards")
-datum/design/operating
+/datum/design/operating
name = "Computer Design (Operating Computer)"
desc = "Allows for the construction of circuit boards used to build an operating computer console."
id = "operating"
@@ -53,8 +58,9 @@ datum/design/operating
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/operating
+ category = list("Computer Boards")
-datum/design/pandemic
+/datum/design/pandemic
name = "Computer Design (PanD.E.M.I.C. 2200)"
desc = "Allows for the construction of circuit boards used to build a PanD.E.M.I.C. 2200 console."
id = "pandemic"
@@ -62,8 +68,9 @@ datum/design/pandemic
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/pandemic
+ category = list("Computer Boards")
-datum/design/scan_console
+/datum/design/scan_console
name = "Computer Design (DNA Machine)"
desc = "Allows for the construction of circuit boards used to build a new DNA scanning console."
id = "scan_console"
@@ -71,8 +78,9 @@ datum/design/scan_console
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/scan_consolenew
+ category = list("Computer Boards")
-datum/design/comconsole
+/datum/design/comconsole
name = "Computer Design (Communications)"
desc = "Allows for the construction of circuit boards used to build a communications console."
id = "comconsole"
@@ -80,8 +88,9 @@ datum/design/comconsole
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/communications
+ category = list("Computer Boards")
-datum/design/idcardconsole
+/datum/design/idcardconsole
name = "Computer Design (ID Console)"
desc = "Allows for the construction of circuit boards used to build an ID computer."
id = "idcardconsole"
@@ -89,8 +98,9 @@ datum/design/idcardconsole
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/card
+ category = list("Computer Boards")
-datum/design/crewconsole
+/datum/design/crewconsole
name = "Computer Design (Crew monitoring computer)"
desc = "Allows for the construction of circuit boards used to build a Crew monitoring computer."
id = "crewconsole"
@@ -98,8 +108,9 @@ datum/design/crewconsole
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/crew
+ category = list("Computer Boards")
-datum/design/teleconsole
+/datum/design/teleconsole
name = "Computer Design (Teleporter Console)"
desc = "Allows for the construction of circuit boards used to build a teleporter control console."
id = "teleconsole"
@@ -107,8 +118,9 @@ datum/design/teleconsole
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/teleporter
+ category = list("Computer Boards")
-datum/design/secdata
+/datum/design/secdata
name = "Computer Design (Security Records Console)"
desc = "Allows for the construction of circuit boards used to build a security records console."
id = "secdata"
@@ -116,8 +128,9 @@ datum/design/secdata
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/secure_data
+ category = list("Computer Boards")
-datum/design/atmosalerts
+/datum/design/atmosalerts
name = "Computer Design (Atmosphere Alert)"
desc = "Allows for the construction of circuit boards used to build an atmosphere alert console."
id = "atmosalerts"
@@ -125,8 +138,9 @@ datum/design/atmosalerts
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/atmos_alert
+ category = list("Computer Boards")
-datum/design/air_management
+/datum/design/air_management
name = "Computer Design (Atmospheric Monitor)"
desc = "Allows for the construction of circuit boards used to build an Atmospheric Monitor."
id = "air_management"
@@ -134,8 +148,9 @@ datum/design/air_management
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/air_management
+ category = list("Computer Boards")
-datum/design/robocontrol
+/datum/design/robocontrol
name = "Computer Design (Robotics Control Console)"
desc = "Allows for the construction of circuit boards used to build a Robotics Control console."
id = "robocontrol"
@@ -143,8 +158,9 @@ datum/design/robocontrol
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/robotics
+ category = list("Computer Boards")
-datum/design/clonecontrol
+/datum/design/clonecontrol
name = "Computer Design (Cloning Machine Console)"
desc = "Allows for the construction of circuit boards used to build a new Cloning Machine console."
id = "clonecontrol"
@@ -152,8 +168,9 @@ datum/design/clonecontrol
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/cloning
+ category = list("Computer Boards")
-datum/design/clonepod
+/datum/design/clonepod
name = "Machine Design (Clone Pod)"
desc = "Allows for the construction of circuit boards used to build a Cloning Pod."
id = "clonepod"
@@ -161,8 +178,9 @@ datum/design/clonepod
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/clonepod
+ category = list("Computer Boards")
-datum/design/clonescanner
+/datum/design/clonescanner
name = "Machine Design (Cloning Scanner)"
desc = "Allows for the construction of circuit boards used to build a Cloning Scanner."
id = "clonescanner"
@@ -170,8 +188,9 @@ datum/design/clonescanner
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/clonescanner
+ category = list("Computer Boards")
-datum/design/arcadebattle
+/datum/design/arcadebattle
name = "Computer Design (Battle Arcade Machine)"
desc = "Allows for the construction of circuit boards used to build a new arcade machine."
id = "arcademachine"
@@ -179,8 +198,9 @@ datum/design/arcadebattle
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/arcade/battle
+ category = list("Computer Boards")
-datum/design/orion_trail
+/datum/design/orion_trail
name = "Computer Design (Orion Trail Arcade Machine)"
desc = "Allows for the construction of circuit boards used to build a new Orion Trail machine."
id = "arcademachine"
@@ -188,8 +208,9 @@ datum/design/orion_trail
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/arcade/orion_trail
+ category = list("Computer Boards")
-datum/design/orion_trail
+/datum/design/orion_trail
name = "Computer Design (Slot Machine)"
desc = "Allows for the construction of circuit boards used to build a new slot machine."
id = "slotmachine"
@@ -197,8 +218,9 @@ datum/design/orion_trail
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/slot_machine
+ category = list("Computer Boards")
-datum/design/powermonitor
+/datum/design/powermonitor
name = "Computer Design (Power Monitor)"
desc = "Allows for the construction of circuit boards used to build a new power monitor."
id = "powermonitor"
@@ -206,8 +228,9 @@ datum/design/powermonitor
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/powermonitor
+ category = list("Computer Boards")
-datum/design/solarcontrol
+/datum/design/solarcontrol
name = "Computer Design (Solar Control)"
desc = "Allows for the construction of circuit boards used to build a solar control console."
id = "solarcontrol"
@@ -215,8 +238,9 @@ datum/design/solarcontrol
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/solar_control
+ category = list("Computer Boards")
-datum/design/prisonmanage
+/datum/design/prisonmanage
name = "Computer Design (Prisoner Management Console)"
desc = "Allows for the construction of circuit boards used to build a prisoner management console."
id = "prisonmanage"
@@ -224,8 +248,9 @@ datum/design/prisonmanage
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/prisoner
+ category = list("Computer Boards")
-datum/design/mechacontrol
+/datum/design/mechacontrol
name = "Computer Design (Exosuit Control Console)"
desc = "Allows for the construction of circuit boards used to build an exosuit control console."
id = "mechacontrol"
@@ -233,8 +258,9 @@ datum/design/mechacontrol
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha_control
+ category = list("Computer Boards")
-datum/design/mechapower
+/datum/design/mechapower
name = "Computer Design (Mech Bay Power Control Console)"
desc = "Allows for the construction of circuit boards used to build a mech bay power control console."
id = "mechapower"
@@ -242,8 +268,9 @@ datum/design/mechapower
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mech_bay_power_console
+ category = list("Computer Boards")
-datum/design/rdconsole
+/datum/design/rdconsole
name = "Computer Design (R&D Console)"
desc = "Allows for the construction of circuit boards used to build a new R&D console."
id = "rdconsole"
@@ -251,8 +278,9 @@ datum/design/rdconsole
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/rdconsole
+ category = list("Computer Boards")
-datum/design/ordercomp
+/datum/design/ordercomp
name = "Computer Design (Supply ordering console)"
desc = "Allows for the construction of circuit boards used to build a Supply ordering console."
id = "ordercomp"
@@ -260,8 +288,9 @@ datum/design/ordercomp
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/ordercomp
+ category = list("Computer Boards")
-datum/design/supplycomp
+/datum/design/supplycomp
name = "Computer Design (Supply shuttle console)"
desc = "Allows for the construction of circuit boards used to build a Supply shuttle console."
id = "supplycomp"
@@ -269,8 +298,9 @@ datum/design/supplycomp
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/supplycomp
+ category = list("Computer Boards")
-datum/design/mining
+/datum/design/mining
name = "Computer Design (Outpost Status Display)"
desc = "Allows for the construction of circuit boards used to build an outpost status display console."
id = "mining"
@@ -278,8 +308,9 @@ datum/design/mining
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mining
+ category = list("Computer Boards")
-datum/design/comm_monitor
+/datum/design/comm_monitor
name = "Computer Design (Telecommunications Monitoring Console)"
desc = "Allows for the construction of circuit boards used to build a telecommunications monitor."
id = "comm_monitor"
@@ -287,8 +318,9 @@ datum/design/comm_monitor
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/comm_monitor
+ category = list("Computer Boards")
-datum/design/comm_server
+/datum/design/comm_server
name = "Computer Design (Telecommunications Server Monitoring Console)"
desc = "Allows for the construction of circuit boards used to build a telecommunication server browser and monitor."
id = "comm_server"
@@ -296,8 +328,9 @@ datum/design/comm_server
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/comm_server
+ category = list("Computer Boards")
-datum/design/message_monitor
+/datum/design/message_monitor
name = "Computer Design (Messaging Monitor Console)"
desc = "Allows for the construction of circuit boards used to build a messaging monitor console."
id = "message_monitor"
@@ -305,8 +338,9 @@ datum/design/message_monitor
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/message_monitor
+ category = list("Computer Boards")
-datum/design/comm_traffic
+/datum/design/comm_traffic
name = "Computer Design (Telecommunications Traffic Control Console)"
desc = "Allows for the construction of circuit boards used to build a telecommunications traffic control console."
id = "comm_traffic"
@@ -314,8 +348,9 @@ datum/design/comm_traffic
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/comm_traffic
+ category = list("Computer Boards")
-datum/design/telesci_console
+/datum/design/telesci_console
name = "Computer Design (Telepad Control Console Board)"
desc = "Allows for the construction of circuit boards used to build a telescience console."
id = "telesci_console"
@@ -323,12 +358,14 @@ datum/design/telesci_console
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/telesci_console
+ category = list("Computer Boards")
-datum/design/aifixer
+/datum/design/aifixer
name = "Computer Design (AI Integrity Restorer)"
desc = "Allows for the construction of circuit boards used to build an AI Integrity Restorer."
id = "aifixer"
req_tech = list("programming" = 3, "biotech" = 2)
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
- build_path = /obj/item/weapon/circuitboard/aifixer
\ No newline at end of file
+ build_path = /obj/item/weapon/circuitboard/aifixer
+ category = list("Computer Boards")
diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm
index bc0d01dd8fb..bcd39b203e3 100644
--- a/code/modules/research/designs/machine_designs.dm
+++ b/code/modules/research/designs/machine_designs.dm
@@ -2,7 +2,7 @@
//////////////MISC Boards///////////////
////////////////////////////////////////
-datum/design/smes
+/datum/design/smes
name = "Machine Design (SMES Board)"
desc = "The circuit board for a SMES."
id = "smes"
@@ -10,8 +10,9 @@ datum/design/smes
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/smes
+ category = list ("Engineering Machinery")
-datum/design/turbine_computer
+/datum/design/turbine_computer
name = "Computer Design (Power Turbine Console Board)"
desc = "The circuit board for a power turbine console."
id = "power_turbine_console"
@@ -19,8 +20,9 @@ datum/design/turbine_computer
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/turbine_computer
+ category = list ("Engineering Machinery")
-datum/design/power_compressor
+/datum/design/power_compressor
name = "Machine Design (Power Compressor Board)"
desc = "The circuit board for a power compressor."
id = "power_compressor"
@@ -28,8 +30,9 @@ datum/design/power_compressor
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/power_compressor
+ category = list ("Engineering Machinery")
-datum/design/power_turbine
+/datum/design/power_turbine
name = "Machine Design (Power Turbine Board)"
desc = "The circuit board for a power turbine."
id = "power_turbine"
@@ -37,53 +40,9 @@ datum/design/power_turbine
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/power_turbine
+ category = list ("Engineering Machinery")
-datum/design/teleport_station
- name = "Machine Design (Teleportation Station Board)"
- desc = "The circuit board for a teleportation station."
- id = "tele_station"
- req_tech = list("programming" = 4, "bluespace" = 4, "engineering" = 4)
- build_type = IMPRINTER
- materials = list("$glass" = 1000, "sacid" = 20)
- build_path = /obj/item/weapon/circuitboard/teleporter_station
-
-datum/design/teleport_hub
- name = "Machine Design (Teleportation Hub Board)"
- desc = "The circuit board for a teleportation hub."
- id = "tele_hub"
- req_tech = list("programming" = 3, "bluespace" = 5, "materials" = 4, "engineering" = 5)
- build_type = IMPRINTER
- materials = list("$glass" = 1000, "sacid" = 20)
- build_path = /obj/item/weapon/circuitboard/teleporter_hub
-
-datum/design/telepad
- name = "Machine Design (Telepad Board)"
- desc = "The circuit board for a telescience telepad."
- id = "telepad"
- req_tech = list("programming" = 4, "bluespace" = 4, "materials" = 3, "engineering" = 3)
- build_type = IMPRINTER
- materials = list("$glass" = 1000, "sacid" = 20)
- build_path = /obj/item/weapon/circuitboard/telesci_pad
-
-datum/design/sleeper
- name = "Machine Design (Sleeper Board)"
- desc = "The circuit board for a sleeper."
- id = "sleeper"
- req_tech = list("programming" = 3, "biotech" = 2, "materials" = 3, "engineering" = 3)
- build_type = IMPRINTER
- materials = list("$glass" = 1000, "sacid" = 20)
- build_path = /obj/item/weapon/circuitboard/sleeper
-
-datum/design/cryotube
- name = "Machine Design (Cryotube Board)"
- desc = "The circuit board for a cryotube."
- id = "cryotube"
- req_tech = list("programming" = 4, "biotech" = 3, "engineering" = 4)
- build_type = IMPRINTER
- materials = list("$glass" = 1000, "sacid" = 20)
- build_path = /obj/item/weapon/circuitboard/cryo_tube
-
-datum/design/thermomachine
+/datum/design/thermomachine
name = "Machine Design (Freezer/Heater Board)"
desc = "The circuit board for a freezer/heater."
id = "thermomachine"
@@ -91,35 +50,59 @@ datum/design/thermomachine
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/thermomachine
+ category = list ("Engineering Machinery")
-datum/design/biogenerator
- name = "Machine Design (Biogenerator Board)"
- desc = "The circuit board for a biogenerator."
- id = "biogenerator"
- req_tech = list("programming" = 3, "biotech" = 2, "materials" = 3)
+/datum/design/teleport_station
+ name = "Machine Design (Teleportation Station Board)"
+ desc = "The circuit board for a teleportation station."
+ id = "tele_station"
+ req_tech = list("programming" = 4, "bluespace" = 4, "engineering" = 4)
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
- build_path = /obj/item/weapon/circuitboard/biogenerator
+ build_path = /obj/item/weapon/circuitboard/teleporter_station
+ category = list ("Teleportation Machinery")
-datum/design/hydroponics
- name = "Machine Design (Hydroponics Tray Board)"
- desc = "The circuit board for a hydroponics tray."
- id = "hydro_tray"
- req_tech = list("programming" = 1, "biotech" = 1)
+/datum/design/teleport_hub
+ name = "Machine Design (Teleportation Hub Board)"
+ desc = "The circuit board for a teleportation hub."
+ id = "tele_hub"
+ req_tech = list("programming" = 3, "bluespace" = 5, "materials" = 4, "engineering" = 5)
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
- build_path = /obj/item/weapon/circuitboard/hydroponics
+ build_path = /obj/item/weapon/circuitboard/teleporter_hub
+ category = list ("Teleportation Machinery")
-datum/design/microwave
- name = "Machine Design (Microwave Board)"
- desc = "The circuit board for a microwave."
- id = "microwave"
- req_tech = list("programming" = 1)
+/datum/design/telepad
+ name = "Machine Design (Telepad Board)"
+ desc = "The circuit board for a telescience telepad."
+ id = "telepad"
+ req_tech = list("programming" = 4, "bluespace" = 4, "materials" = 3, "engineering" = 3)
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
- build_path = /obj/item/weapon/circuitboard/microwave
+ build_path = /obj/item/weapon/circuitboard/telesci_pad
+ category = list ("Teleportation Machinery")
-datum/design/chem_dispenser
+/datum/design/sleeper
+ name = "Machine Design (Sleeper Board)"
+ desc = "The circuit board for a sleeper."
+ id = "sleeper"
+ req_tech = list("programming" = 3, "biotech" = 2, "materials" = 3, "engineering" = 3)
+ build_type = IMPRINTER
+ materials = list("$glass" = 1000, "sacid" = 20)
+ build_path = /obj/item/weapon/circuitboard/sleeper
+ category = list ("Medical Machinery")
+
+/datum/design/cryotube
+ name = "Machine Design (Cryotube Board)"
+ desc = "The circuit board for a cryotube."
+ id = "cryotube"
+ req_tech = list("programming" = 4, "biotech" = 3, "engineering" = 4)
+ build_type = IMPRINTER
+ materials = list("$glass" = 1000, "sacid" = 20)
+ build_path = /obj/item/weapon/circuitboard/cryo_tube
+ category = list ("Medical Machinery")
+
+/datum/design/chem_dispenser
name = "Machine Design (Portable Chem Dispenser Board)"
desc = "The circuit board for a portable chem dispenser."
id = "chem_dispenser"
@@ -127,8 +110,29 @@ datum/design/chem_dispenser
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/chem_dispenser
+ category = list ("Medical Machinery")
-datum/design/destructive_analyzer
+/datum/design/biogenerator
+ name = "Machine Design (Biogenerator Board)"
+ desc = "The circuit board for a biogenerator."
+ id = "biogenerator"
+ req_tech = list("programming" = 3, "biotech" = 2, "materials" = 3)
+ build_type = IMPRINTER
+ materials = list("$glass" = 1000, "sacid" = 20)
+ build_path = /obj/item/weapon/circuitboard/biogenerator
+ category = list ("Hydroponics Machinery")
+
+/datum/design/hydroponics
+ name = "Machine Design (Hydroponics Tray Board)"
+ desc = "The circuit board for a hydroponics tray."
+ id = "hydro_tray"
+ req_tech = list("programming" = 1, "biotech" = 1)
+ build_type = IMPRINTER
+ materials = list("$glass" = 1000, "sacid" = 20)
+ build_path = /obj/item/weapon/circuitboard/hydroponics
+ category = list ("Hydroponics Machinery")
+
+/datum/design/destructive_analyzer
name = "Machine Design (Destructive Analyzer Board)"
desc = "The circuit board for a destructive analyzer."
id = "destructive_analyzer"
@@ -136,8 +140,9 @@ datum/design/destructive_analyzer
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/destructive_analyzer
+ category = list("Research Machinery")
-datum/design/protolathe
+/datum/design/protolathe
name = "Machine Design (Protolathe Board)"
desc = "The circuit board for a protolathe."
id = "protolathe"
@@ -145,8 +150,9 @@ datum/design/protolathe
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/protolathe
+ category = list("Research Machinery")
-datum/design/circuit_imprinter
+/datum/design/circuit_imprinter
name = "Machine Design (Circuit Imprinter Board)"
desc = "The circuit board for a circuit imprinter."
id = "circuit_imprinter"
@@ -154,17 +160,9 @@ datum/design/circuit_imprinter
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/circuit_imprinter
+ category = list("Research Machinery")
-datum/design/autolathe
- name = "Machine Design (Autolathe Board)"
- desc = "The circuit board for an autolathe."
- id = "autolathe"
- req_tech = list("programming" = 2, "engineering" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 1000, "sacid" = 20)
- build_path = /obj/item/weapon/circuitboard/autolathe
-
-datum/design/rdservercontrol
+/datum/design/rdservercontrol
name = "Computer Design (R&D Server Control Console Board)"
desc = "The circuit board for an R&D Server Control Console."
id = "rdservercontrol"
@@ -172,8 +170,9 @@ datum/design/rdservercontrol
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/rdservercontrol
+ category = list("Research Machinery")
-datum/design/rdserver
+/datum/design/rdserver
name = "Machine Design (R&D Server Board)"
desc = "The circuit board for an R&D Server."
id = "rdserver"
@@ -181,8 +180,9 @@ datum/design/rdserver
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/rdserver
+ category = list("Research Machinery")
-datum/design/mechfab
+/datum/design/mechfab
name = "Machine Design (Exosuit Fabricator Board)"
desc = "The circuit board for an Exosuit Fabricator."
id = "mechfab"
@@ -190,8 +190,9 @@ datum/design/mechfab
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mechfab
+ category = list("Research Machinery")
-datum/design/cyborgrecharger
+/datum/design/cyborgrecharger
name = "Machine Design (Cyborg Recharger Board)"
desc = "The circuit board for a Cyborg Recharger."
id = "cyborgrecharger"
@@ -199,8 +200,9 @@ datum/design/cyborgrecharger
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/cyborgrecharger
+ category = list("Research Machinery")
-datum/design/mech_recharger
+/datum/design/mech_recharger
name = "Machine Design (Mechbay Recharger Board)"
desc = "The circuit board for a Mechbay Recharger."
id = "mech_recharger"
@@ -208,8 +210,29 @@ datum/design/mech_recharger
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mech_recharger
+ category = list("Research Machinery")
-datum/design/vendor
+/datum/design/microwave
+ name = "Machine Design (Microwave Board)"
+ desc = "The circuit board for a microwave."
+ id = "microwave"
+ req_tech = list("programming" = 1)
+ build_type = IMPRINTER
+ materials = list("$glass" = 1000, "sacid" = 20)
+ build_path = /obj/item/weapon/circuitboard/microwave
+ category = list ("Misc. Machinery")
+
+/datum/design/autolathe
+ name = "Machine Design (Autolathe Board)"
+ desc = "The circuit board for an autolathe."
+ id = "autolathe"
+ req_tech = list("programming" = 2, "engineering" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 1000, "sacid" = 20)
+ build_path = /obj/item/weapon/circuitboard/autolathe
+ category = list ("Misc. Machinery")
+
+/datum/design/vendor
name = "Machine Design (Vendor Board)"
desc = "The circuit board for a Vendor."
id = "vendor"
@@ -217,8 +240,9 @@ datum/design/vendor
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/vendor
+ category = list ("Misc. Machinery")
-datum/design/ore_redemption
+/datum/design/ore_redemption
name = "Machine Design (Ore Redemption Board)"
desc = "The circuit board for an Ore Redemption machine."
id = "ore_redemption"
@@ -226,13 +250,15 @@ datum/design/ore_redemption
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/ore_redemption
+ category = list ("Misc. Machinery")
-datum/design/mining_equipment_vendor
+/datum/design/mining_equipment_vendor
name = "Machine Design (Mining Rewards Vender Board)"
desc = "The circuit board for a Mining Rewards Vender."
id = "mining_equipment_vendor"
req_tech = list("programming" = 1, "engineering" = 2)
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
- build_path = /obj/item/weapon/circuitboard/mining_equipment_vendor
\ No newline at end of file
+ build_path = /obj/item/weapon/circuitboard/mining_equipment_vendor
+ category = list ("Misc. Machinery")
\ No newline at end of file
diff --git a/code/modules/research/designs/mecha_designs.dm b/code/modules/research/designs/mecha_designs.dm
index 08d65a3a975..479c91de938 100644
--- a/code/modules/research/designs/mecha_designs.dm
+++ b/code/modules/research/designs/mecha_designs.dm
@@ -10,6 +10,7 @@ datum/design/ripley_main
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/ripley/main
+ category = list("Exosuit Modules")
datum/design/ripley_peri
name = "Exosuit Module (APLU \"Ripley\" Peripherals Control module)"
@@ -19,6 +20,7 @@ datum/design/ripley_peri
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/ripley/peripherals
+ category = list("Exosuit Modules")
datum/design/odysseus_main
name = "Exosuit Module (\"Odysseus\" Central Control module)"
@@ -28,6 +30,7 @@ datum/design/odysseus_main
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/odysseus/main
+ category = list("Exosuit Modules")
datum/design/odysseus_peri
name = "Exosuit Module (\"Odysseus\" Peripherals Control module)"
@@ -37,6 +40,7 @@ datum/design/odysseus_peri
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/odysseus/peripherals
+ category = list("Exosuit Modules")
datum/design/gygax_main
name = "Exosuit Module (\"Gygax\" Central Control module)"
@@ -46,6 +50,7 @@ datum/design/gygax_main
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/gygax/main
+ category = list("Exosuit Modules")
datum/design/gygax_peri
name = "Exosuit Module (\"Gygax\" Peripherals Control module)"
@@ -55,6 +60,7 @@ datum/design/gygax_peri
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/gygax/peripherals
+ category = list("Exosuit Modules")
datum/design/gygax_targ
name = "Exosuit Module (\"Gygax\" Weapons & Targeting Control module)"
@@ -64,6 +70,7 @@ datum/design/gygax_targ
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/gygax/targeting
+ category = list("Exosuit Modules")
datum/design/durand_main
name = "Exosuit Module (\"Durand\" Central Control module)"
@@ -73,6 +80,7 @@ datum/design/durand_main
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/durand/main
+ category = list("Exosuit Modules")
datum/design/durand_peri
name = "Exosuit Module (\"Durand\" Peripherals Control module)"
@@ -82,6 +90,7 @@ datum/design/durand_peri
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/durand/peripherals
+ category = list("Exosuit Modules")
datum/design/durand_targ
name = "Exosuit Module (\"Durand\" Weapons & Targeting Control module)"
@@ -91,6 +100,7 @@ datum/design/durand_targ
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/durand/targeting
+ category = list("Exosuit Modules")
datum/design/honker_main
name = "Exosuit Module (\"H.O.N.K\" Central Control module)"
@@ -100,6 +110,7 @@ datum/design/honker_main
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/honker/main
+ category = list("Exosuit Modules")
datum/design/honker_peri
name = "Exosuit Module (\"H.O.N.K\" Peripherals Control module)"
@@ -109,6 +120,7 @@ datum/design/honker_peri
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/honker/peripherals
+ category = list("Exosuit Modules")
datum/design/honker_targ
name = "Exosuit Module (\"H.O.N.K\" Weapons & Targeting Control module)"
@@ -118,6 +130,7 @@ datum/design/honker_targ
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/honker/targeting
+ category = list("Exosuit Modules")
datum/design/phazon_main
name = "Exosuit Module (\"Phazon\" Central Control module)"
@@ -127,6 +140,7 @@ datum/design/phazon_main
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/phazon/main
+ category = list("Exosuit Modules")
datum/design/phazon_peri
name = "Exosuit Module (\"Phazon\" Peripherals Control module)"
@@ -136,6 +150,7 @@ datum/design/phazon_peri
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/phazon/peripherals
+ category = list("Exosuit Modules")
datum/design/phazon_targ
name = "Exosuit Module (\"Phazon\" Weapons & Targeting Control module)"
@@ -145,6 +160,7 @@ datum/design/phazon_targ
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/phazon/targeting
+ category = list("Exosuit Modules")
////////////////////////////////////////
/////////// Mecha Equpment /////////////
@@ -346,4 +362,4 @@ datum/design/mech_generator_nuclear
build_path = /obj/item/mecha_parts/mecha_equipment/generator/nuclear
materials = list("$metal"=10000,"$glass"=1000,"$silver"=500)
construction_time = 100
- category = list("Exosuit Equipment")
\ No newline at end of file
+ category = list("Exosuit Equipment")
diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm
index 6e5143a5e07..013841c43c9 100644
--- a/code/modules/research/designs/medical_designs.dm
+++ b/code/modules/research/designs/medical_designs.dm
@@ -11,6 +11,7 @@ datum/design/mass_spectrometer
materials = list("$metal" = 30, "$glass" = 20)
reliability = 76
build_path = /obj/item/device/mass_spectrometer
+ category = list("Medical Designs")
datum/design/adv_mass_spectrometer
name = "Advanced Mass-Spectrometer"
@@ -21,6 +22,7 @@ datum/design/adv_mass_spectrometer
materials = list("$metal" = 30, "$glass" = 20)
reliability = 74
build_path = /obj/item/device/mass_spectrometer/adv
+ category = list("Medical Designs")
datum/design/mmi
name = "Man-Machine Interface"
@@ -32,7 +34,7 @@ datum/design/mmi
construction_time = 75
reliability = 76
build_path = /obj/item/device/mmi
- category = list("Misc")
+ category = list("Misc","Medical Designs")
datum/design/mmi_radio
name = "Radio-enabled Man-Machine Interface"
@@ -44,7 +46,7 @@ datum/design/mmi_radio
construction_time = 75
reliability = 74
build_path = /obj/item/device/mmi/radio_enabled
- category = list("Misc")
+ category = list("Misc","Medical Designs")
datum/design/synthetic_flash
name = "Flash"
@@ -67,7 +69,7 @@ datum/design/bluespacebeaker
materials = list("$metal" = 3000, "$plasma" = 3000, "$diamond" = 500)
reliability = 76
build_path = /obj/item/weapon/reagent_containers/glass/beaker/bluespace
- category = list("Misc")
+ category = list("Misc","Medical Designs")
datum/design/noreactbeaker
name = "Cryostasis Beaker"
@@ -78,7 +80,7 @@ datum/design/noreactbeaker
materials = list("$metal" = 3000)
reliability = 76
build_path = /obj/item/weapon/reagent_containers/glass/beaker/noreact
- category = list("Misc")
+ category = list("Medical Designs")
datum/design/bluespacebodybag
name = "Bluespace body bag"
@@ -89,7 +91,7 @@ datum/design/bluespacebodybag
materials = list("$metal" = 3000, "$plasma" = 2000, "$diamond" = 500)
reliability = 76
build_path = /obj/item/bodybag/bluespace
- category = list("Misc")
+ category = list("Medical Designs")
datum/design/defib
name = "Defibrillator"
@@ -100,4 +102,4 @@ datum/design/defib
materials = list("$metal" = 5000, "$glass" = 2000, "$silver" = 1000)
reliability = 76
build_path = /obj/item/weapon/defibrillator
- category = list("Misc")
\ No newline at end of file
+ category = list("Medical Designs")
diff --git a/code/modules/research/designs/power_designs.dm b/code/modules/research/designs/power_designs.dm
index 7e83426acfc..73cb40dc456 100644
--- a/code/modules/research/designs/power_designs.dm
+++ b/code/modules/research/designs/power_designs.dm
@@ -9,9 +9,9 @@ datum/design/basic_cell
req_tech = list("powerstorage" = 1)
build_type = PROTOLATHE | AUTOLATHE |MECHFAB
materials = list("$metal" = 700, "$glass" = 50)
- build_path = /obj/item/weapon/stock_parts/cell
construction_time=100
- category = list("Misc")
+ build_path = /obj/item/weapon/stock_parts/cell
+ category = list("Misc","Power Designs")
datum/design/high_cell
name = "High-Capacity Power Cell"
@@ -22,7 +22,7 @@ datum/design/high_cell
materials = list("$metal" = 700, "$glass" = 60)
construction_time=100
build_path = /obj/item/weapon/stock_parts/cell/high
- category = list("Misc")
+ category = list("Misc","Power Designs")
datum/design/super_cell
name = "Super-Capacity Power Cell"
@@ -34,7 +34,7 @@ datum/design/super_cell
materials = list("$metal" = 700, "$glass" = 70)
construction_time=100
build_path = /obj/item/weapon/stock_parts/cell/super
- category = list("Misc")
+ category = list("Misc","Power Designs")
datum/design/hyper_cell
name = "Hyper-Capacity Power Cell"
@@ -46,7 +46,7 @@ datum/design/hyper_cell
materials = list("$metal" = 400, "$gold" = 150, "$silver" = 150, "$glass" = 80)
construction_time=100
build_path = /obj/item/weapon/stock_parts/cell/hyper
- category = list("Misc")
+ category = list("Misc","Power Designs")
datum/design/light_replacer
name = "Light Replacer"
@@ -56,6 +56,7 @@ datum/design/light_replacer
build_type = PROTOLATHE
materials = list("$metal" = 1500, "$silver" = 150, "$glass" = 3000)
build_path = /obj/item/device/lightreplacer
+ category = list("Power Designs")
datum/design/pacman
name = "Machine Design (PACMAN-type Generator Board)"
@@ -85,4 +86,4 @@ datum/design/mrspacman
build_type = IMPRINTER
reliability = 74
materials = list("$glass" = 1000, "sacid" = 20)
- build_path = /obj/item/weapon/circuitboard/pacman/mrs
\ No newline at end of file
+ build_path = /obj/item/weapon/circuitboard/pacman/mrs
diff --git a/code/modules/research/designs/stock_parts_designs.dm b/code/modules/research/designs/stock_parts_designs.dm
index 1268e86079a..638ef2d97ab 100644
--- a/code/modules/research/designs/stock_parts_designs.dm
+++ b/code/modules/research/designs/stock_parts_designs.dm
@@ -2,7 +2,7 @@
/////////////Stock Parts////////////////
////////////////////////////////////////
-datum/design/RPED
+/datum/design/RPED
name = "Rapid Part Exchange Device"
desc = "Special mechanical module made to store, sort, and apply standard machine parts."
id = "rped"
@@ -11,8 +11,10 @@ datum/design/RPED
build_type = PROTOLATHE
materials = list("$metal" = 15000, "$glass" = 5000) //hardcore
build_path = /obj/item/weapon/storage/part_replacer
+ category = list("Stock Parts")
-datum/design/basic_capacitor
+//Capacitors
+/datum/design/basic_capacitor
name = "Basic Capacitor"
desc = "A stock part used in the construction of various devices."
id = "basic_capacitor"
@@ -20,44 +22,9 @@ datum/design/basic_capacitor
build_type = PROTOLATHE | AUTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
build_path = /obj/item/weapon/stock_parts/capacitor
+ category = list("Stock Parts")
-datum/design/basic_scanning
- name = "Basic Scanning Module"
- desc = "A stock part used in the construction of various devices."
- id = "basic_scanning"
- req_tech = list("magnets" = 1)
- build_type = PROTOLATHE | AUTOLATHE
- materials = list("$metal" = 50, "$glass" = 20)
- build_path = /obj/item/weapon/stock_parts/scanning_module
-
-datum/design/micro_mani
- name = "Micro Manipulator"
- desc = "A stock part used in the construction of various devices."
- id = "micro_mani"
- req_tech = list("materials" = 1, "programming" = 1)
- build_type = PROTOLATHE | AUTOLATHE
- materials = list("$metal" = 30)
- build_path = /obj/item/weapon/stock_parts/manipulator
-
-datum/design/basic_micro_laser
- name = "Basic Micro-Laser"
- desc = "A stock part used in the construction of various devices."
- id = "basic_micro_laser"
- req_tech = list("magnets" = 1)
- build_type = PROTOLATHE | AUTOLATHE
- materials = list("$metal" = 10, "$glass" = 20)
- build_path = /obj/item/weapon/stock_parts/micro_laser
-
-datum/design/basic_matter_bin
- name = "Basic Matter Bin"
- desc = "A stock part used in the construction of various devices."
- id = "basic_matter_bin"
- req_tech = list("materials" = 1)
- build_type = PROTOLATHE | AUTOLATHE
- materials = list("$metal" = 80)
- build_path = /obj/item/weapon/stock_parts/matter_bin
-
-datum/design/adv_capacitor
+/datum/design/adv_capacitor
name = "Advanced Capacitor"
desc = "A stock part used in the construction of various devices."
id = "adv_capacitor"
@@ -65,8 +32,31 @@ datum/design/adv_capacitor
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
build_path = /obj/item/weapon/stock_parts/capacitor/adv
+ category = list("Stock Parts")
-datum/design/adv_scanning
+/datum/design/super_capacitor
+ name = "Super Capacitor"
+ desc = "A stock part used in the construction of various devices."
+ id = "super_capacitor"
+ req_tech = list("powerstorage" = 5, "materials" = 4)
+ build_type = PROTOLATHE
+ reliability = 71
+ materials = list("$metal" = 50, "$glass" = 50, "$gold" = 20)
+ build_path = /obj/item/weapon/stock_parts/capacitor/super
+ category = list("Stock Parts")
+
+//Scanning modules
+/datum/design/basic_scanning
+ name = "Basic Scanning Module"
+ desc = "A stock part used in the construction of various devices."
+ id = "basic_scanning"
+ req_tech = list("magnets" = 1)
+ build_type = PROTOLATHE | AUTOLATHE
+ materials = list("$metal" = 50, "$glass" = 20)
+ build_path = /obj/item/weapon/stock_parts/scanning_module
+ category = list("Stock Parts")
+
+/datum/design/adv_scanning
name = "Advanced Scanning Module"
desc = "A stock part used in the construction of various devices."
id = "adv_scanning"
@@ -74,8 +64,31 @@ datum/design/adv_scanning
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 20)
build_path = /obj/item/weapon/stock_parts/scanning_module/adv
+ category = list("Stock Parts")
-datum/design/nano_mani
+/datum/design/phasic_scanning
+ name = "Phasic Scanning Module"
+ desc = "A stock part used in the construction of various devices."
+ id = "phasic_scanning"
+ req_tech = list("magnets" = 5, "materials" = 3)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 50, "$glass" = 20, "$silver" = 10)
+ reliability = 72
+ build_path = /obj/item/weapon/stock_parts/scanning_module/phasic
+ category = list("Stock Parts")
+
+//Maipulators
+/datum/design/micro_mani
+ name = "Micro Manipulator"
+ desc = "A stock part used in the construction of various devices."
+ id = "micro_mani"
+ req_tech = list("materials" = 1, "programming" = 1)
+ build_type = PROTOLATHE | AUTOLATHE
+ materials = list("$metal" = 30)
+ build_path = /obj/item/weapon/stock_parts/manipulator
+ category = list("Stock Parts")
+
+/datum/design/nano_mani
name = "Nano Manipulator"
desc = "A stock part used in the construction of various devices."
id = "nano_mani"
@@ -83,6 +96,29 @@ datum/design/nano_mani
build_type = PROTOLATHE
materials = list("$metal" = 30)
build_path = /obj/item/weapon/stock_parts/manipulator/nano
+ category = list("Stock Parts")
+
+/datum/design/pico_mani
+ name = "Pico Manipulator"
+ desc = "A stock part used in the construction of various devices."
+ id = "pico_mani"
+ req_tech = list("materials" = 5, "programming" = 2)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 30)
+ reliability = 73
+ build_path = /obj/item/weapon/stock_parts/manipulator/pico
+ category = list("Stock Parts")
+
+//Micro-lasers
+/datum/design/basic_micro_laser
+ name = "Basic Micro-Laser"
+ desc = "A stock part used in the construction of various devices."
+ id = "basic_micro_laser"
+ req_tech = list("magnets" = 1)
+ build_type = PROTOLATHE | AUTOLATHE
+ materials = list("$metal" = 10, "$glass" = 20)
+ build_path = /obj/item/weapon/stock_parts/micro_laser
+ category = list("Stock Parts")
datum/design/high_micro_laser
name = "High-Power Micro-Laser"
@@ -92,45 +128,7 @@ datum/design/high_micro_laser
build_type = PROTOLATHE
materials = list("$metal" = 10, "$glass" = 20)
build_path = /obj/item/weapon/stock_parts/micro_laser/high
-
-datum/design/adv_matter_bin
- name = "Advanced Matter Bin"
- desc = "A stock part used in the construction of various devices."
- id = "adv_matter_bin"
- req_tech = list("materials" = 3)
- build_type = PROTOLATHE
- materials = list("$metal" = 80)
- build_path = /obj/item/weapon/stock_parts/matter_bin/adv
-
-datum/design/super_capacitor
- name = "Super Capacitor"
- desc = "A stock part used in the construction of various devices."
- id = "super_capacitor"
- req_tech = list("powerstorage" = 5, "materials" = 4)
- build_type = PROTOLATHE
- reliability = 71
- materials = list("$metal" = 50, "$glass" = 50, "$gold" = 20)
- build_path = /obj/item/weapon/stock_parts/capacitor/super
-
-datum/design/phasic_scanning
- name = "Phasic Scanning Module"
- desc = "A stock part used in the construction of various devices."
- id = "phasic_scanning"
- req_tech = list("magnets" = 5, "materials" = 3)
- build_type = PROTOLATHE
- materials = list("$metal" = 50, "$glass" = 20, "$silver" = 10)
- reliability = 72
- build_path = /obj/item/weapon/stock_parts/scanning_module/phasic
-
-datum/design/pico_mani
- name = "Pico Manipulator"
- desc = "A stock part used in the construction of various devices."
- id = "pico_mani"
- req_tech = list("materials" = 5, "programming" = 2)
- build_type = PROTOLATHE
- materials = list("$metal" = 30)
- reliability = 73
- build_path = /obj/item/weapon/stock_parts/manipulator/pico
+ category = list("Stock Parts")
datum/design/ultra_micro_laser
name = "Ultra-High-Power Micro-Laser"
@@ -141,6 +139,27 @@ datum/design/ultra_micro_laser
materials = list("$metal" = 10, "$glass" = 20, "$uranium" = 10)
reliability = 70
build_path = /obj/item/weapon/stock_parts/micro_laser/ultra
+ category = list("Stock Parts")
+
+datum/design/basic_matter_bin
+ name = "Basic Matter Bin"
+ desc = "A stock part used in the construction of various devices."
+ id = "basic_matter_bin"
+ req_tech = list("materials" = 1)
+ build_type = PROTOLATHE | AUTOLATHE
+ materials = list("$metal" = 80)
+ build_path = /obj/item/weapon/stock_parts/matter_bin
+ category = list("Stock Parts")
+
+datum/design/adv_matter_bin
+ name = "Advanced Matter Bin"
+ desc = "A stock part used in the construction of various devices."
+ id = "adv_matter_bin"
+ req_tech = list("materials" = 3)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 80)
+ build_path = /obj/item/weapon/stock_parts/matter_bin/adv
+ category = list("Stock Parts")
datum/design/super_matter_bin
name = "Super Matter Bin"
@@ -151,7 +170,9 @@ datum/design/super_matter_bin
materials = list("$metal" = 80)
reliability = 75
build_path = /obj/item/weapon/stock_parts/matter_bin/super
+ category = list("Stock Parts")
+//T-Comms devices
datum/design/subspace_ansible
name = "Subspace Ansible"
desc = "A compact module capable of sensing extradimensional activity."
@@ -160,6 +181,7 @@ datum/design/subspace_ansible
build_type = PROTOLATHE
materials = list("$metal" = 80, "$silver" = 20)
build_path = /obj/item/weapon/stock_parts/subspace/ansible
+ category = list("Stock Parts")
datum/design/hyperwave_filter
name = "Hyperwave Filter"
@@ -169,6 +191,7 @@ datum/design/hyperwave_filter
build_type = PROTOLATHE
materials = list("$metal" = 40, "$silver" = 10)
build_path = /obj/item/weapon/stock_parts/subspace/filter
+ category = list("Stock Parts")
datum/design/subspace_amplifier
name = "Subspace Amplifier"
@@ -178,6 +201,7 @@ datum/design/subspace_amplifier
build_type = PROTOLATHE
materials = list("$metal" = 10, "$gold" = 30, "$uranium" = 15)
build_path = /obj/item/weapon/stock_parts/subspace/amplifier
+ category = list("Stock Parts")
datum/design/subspace_treatment
name = "Subspace Treatment Disk"
@@ -187,6 +211,7 @@ datum/design/subspace_treatment
build_type = PROTOLATHE
materials = list("$metal" = 10, "$silver" = 20)
build_path = /obj/item/weapon/stock_parts/subspace/treatment
+ category = list("Stock Parts")
datum/design/subspace_analyzer
name = "Subspace Analyzer"
@@ -196,6 +221,7 @@ datum/design/subspace_analyzer
build_type = PROTOLATHE
materials = list("$metal" = 10, "$gold" = 15)
build_path = /obj/item/weapon/stock_parts/subspace/analyzer
+ category = list("Stock Parts")
datum/design/subspace_crystal
name = "Ansible Crystal"
@@ -205,6 +231,7 @@ datum/design/subspace_crystal
build_type = PROTOLATHE
materials = list("$glass" = 1000, "$silver" = 20, "$gold" = 20)
build_path = /obj/item/weapon/stock_parts/subspace/crystal
+ category = list("Stock Parts")
datum/design/subspace_transmitter
name = "Subspace Transmitter"
@@ -213,4 +240,5 @@ datum/design/subspace_transmitter
req_tech = list("magnets" = 3, "materials" = 3, "bluespace" = 2)
build_type = PROTOLATHE
materials = list("$glass" = 100, "$silver" = 10, "$uranium" = 15)
- build_path = /obj/item/weapon/stock_parts/subspace/transmitter
\ No newline at end of file
+ build_path = /obj/item/weapon/stock_parts/subspace/transmitter
+ category = list("Stock Parts")
\ No newline at end of file
diff --git a/code/modules/research/designs/telecomms_designs.dm b/code/modules/research/designs/telecomms_designs.dm
index e4de22f4fdd..d43f9c6cdde 100644
--- a/code/modules/research/designs/telecomms_designs.dm
+++ b/code/modules/research/designs/telecomms_designs.dm
@@ -2,7 +2,7 @@
/////Subspace Telecomms////////////
///////////////////////////////////
-datum/design/subspace_receiver
+/datum/design/subspace_receiver
name = "Machine Design (Subspace Receiver)"
desc = "Allows for the construction of Subspace Receiver equipment."
id = "s-receiver"
@@ -10,8 +10,9 @@ datum/design/subspace_receiver
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/telecomms/receiver
+ category = list("Subspace Telecomms")
-datum/design/telecomms_bus
+/datum/design/telecomms_bus
name = "Machine Design (Bus Mainframe)"
desc = "Allows for the construction of Telecommunications Bus Mainframes."
id = "s-bus"
@@ -19,8 +20,9 @@ datum/design/telecomms_bus
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/telecomms/bus
+ category = list("Subspace Telecomms")
-datum/design/telecomms_hub
+/datum/design/telecomms_hub
name = "Machine Design (Hub Mainframe)"
desc = "Allows for the construction of Telecommunications Hub Mainframes."
id = "s-hub"
@@ -28,8 +30,9 @@ datum/design/telecomms_hub
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/telecomms/hub
+ category = list("Subspace Telecomms")
-datum/design/telecomms_relay
+/datum/design/telecomms_relay
name = "Machine Design (Relay Mainframe)"
desc = "Allows for the construction of Telecommunications Relay Mainframes."
id = "s-relay"
@@ -37,8 +40,9 @@ datum/design/telecomms_relay
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/telecomms/relay
+ category = list("Subspace Telecomms")
-datum/design/telecomms_processor
+/datum/design/telecomms_processor
name = "Machine Design (Processor Unit)"
desc = "Allows for the construction of Telecommunications Processor equipment."
id = "s-processor"
@@ -46,8 +50,9 @@ datum/design/telecomms_processor
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/telecomms/processor
+ category = list("Subspace Telecomms")
-datum/design/telecomms_server
+/datum/design/telecomms_server
name = "Machine Design (Server Mainframe)"
desc = "Allows for the construction of Telecommunications Servers."
id = "s-server"
@@ -55,12 +60,14 @@ datum/design/telecomms_server
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/telecomms/server
+ category = list("Subspace Telecomms")
-datum/design/subspace_broadcaster
+/datum/design/subspace_broadcaster
name = "Machine Design (Subspace Broadcaster)"
desc = "Allows for the construction of Subspace Broadcasting equipment."
id = "s-broadcaster"
req_tech = list("programming" = 2, "engineering" = 2, "bluespace" = 1)
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
- build_path = /obj/item/weapon/circuitboard/telecomms/broadcaster
\ No newline at end of file
+ build_path = /obj/item/weapon/circuitboard/telecomms/broadcaster
+ category = list("Subspace Telecomms")
\ No newline at end of file
diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm
index 71830875577..fa35c34bacf 100644
--- a/code/modules/research/designs/weapon_designs.dm
+++ b/code/modules/research/designs/weapon_designs.dm
@@ -2,7 +2,7 @@
/////////////////Weapons/////////////////
/////////////////////////////////////////
-datum/design/nuclear_gun
+/datum/design/nuclear_gun
name = "Advanced Energy Gun"
desc = "An energy gun with an experimental miniaturized reactor."
id = "nuclear_gun"
@@ -12,8 +12,9 @@ datum/design/nuclear_gun
reliability = 76
build_path = /obj/item/weapon/gun/energy/gun/nuclear
locked = 1
+ category = list("Weapons")
-datum/design/stunrevolver
+/datum/design/stunrevolver
name = "Stun Revolver"
desc = "A high-tech revolver that fires internal, reusable stun cartidges in a revolving cylinder. The stun cartridges can be recharged using a conventional energy weapon recharger."
id = "stunrevolver"
@@ -22,8 +23,9 @@ datum/design/stunrevolver
materials = list("$metal" = 4000)
build_path = /obj/item/weapon/gun/energy/stunrevolver
locked = 1
+ category = list("Weapons")
-datum/design/tele_shield
+/datum/design/tele_shield
name = "Telescopic Riot Shield"
desc = "An advanced riot shield made of lightweight materials that collapses for easy storage."
id = "tele_shield"
@@ -32,8 +34,9 @@ datum/design/tele_shield
materials = list("$metal" = 4000, "$glass" = 5000, "$silver" = 300)
build_path = /obj/item/weapon/shield/riot/tele
locked = 1
+ category = list("Weapons")
-datum/design/lasercannon
+/datum/design/lasercannon
name = "Laser Cannon"
desc = "A heavy duty laser cannon."
id = "lasercannon"
@@ -42,8 +45,9 @@ datum/design/lasercannon
materials = list("$metal" = 10000, "$glass" = 2000, "$diamond" = 2000)
build_path = /obj/item/weapon/gun/energy/lasercannon
locked = 1
+ category = list("Weapons")
-datum/design/decloner
+/datum/design/decloner
name = "Decloner"
desc = "Your opponent will bubble into a messy pile of goop."
id = "decloner"
@@ -52,18 +56,9 @@ datum/design/decloner
materials = list("$gold" = 5000,"$uranium" = 10000, "mutagen" = 40)
build_path = /obj/item/weapon/gun/energy/decloner
locked = 1
-/*
-datum/design/chemsprayer
- name = "Chem Sprayer"
- desc = "An advanced chem spraying device."
- id = "chemsprayer"
- req_tech = list("combat" = 3, "materials" = 3, "engineering" = 3, "biotech" = 2)
- build_type = PROTOLATHE
- materials = list("$metal" = 5000, "$glass" = 1000)
- reliability = 100
- build_path = /obj/item/weapon/chemsprayer"
-*/
-datum/design/rapidsyringe
+ category = list("Weapons")
+
+/datum/design/rapidsyringe
name = "Rapid Syringe Gun"
desc = "A gun that fires many syringes."
id = "rapidsyringe"
@@ -71,8 +66,9 @@ datum/design/rapidsyringe
build_type = PROTOLATHE
materials = list("$metal" = 5000, "$glass" = 1000)
build_path = /obj/item/weapon/gun/syringe/rapidsyringe
+ category = list("Weapons")
-datum/design/largecrossbow
+/datum/design/largecrossbow
name = "Energy Crossbow"
desc = "A reverse-engineered energy crossbow favored by syndicate infiltration teams and carp hunters."
id = "largecrossbow"
@@ -81,8 +77,9 @@ datum/design/largecrossbow
materials = list("$metal" = 5000, "$glass" = 1500, "$uranium" = 1500, "$silver" = 1500)
build_path = /obj/item/weapon/gun/energy/crossbow/largecrossbow
locked = 1
+ category = list("Weapons")
-datum/design/temp_gun
+/datum/design/temp_gun
name = "Temperature Gun"
desc = "A gun that shoots temperature bullet energythings to change temperature."//Change it if you want
id = "temp_gun"
@@ -91,8 +88,9 @@ datum/design/temp_gun
materials = list("$metal" = 5000, "$glass" = 500, "$silver" = 3000)
build_path = /obj/item/weapon/gun/energy/temperature
locked = 1
+ category = list("Weapons")
-datum/design/flora_gun
+/datum/design/flora_gun
name = "Floral Somatoray"
desc = "A tool that discharges controlled radiation which induces mutation in plant cells. Harmless to other organic life."
id = "flora_gun"
@@ -100,8 +98,9 @@ datum/design/flora_gun
build_type = PROTOLATHE
materials = list("$metal" = 2000, "$glass" = 500, "radium" = 20)
build_path = /obj/item/weapon/gun/energy/floragun
+ category = list("Weapons")
-datum/design/large_grenade
+/datum/design/large_grenade
name = "Large Grenade"
desc = "A grenade that affects a larger area and use larger containers."
id = "large_Grenade"
@@ -110,8 +109,9 @@ datum/design/large_grenade
materials = list("$metal" = 3000)
reliability = 79
build_path = /obj/item/weapon/grenade/chem_grenade/large
+ category = list("Weapons")
-datum/design/smg
+/datum/design/smg
name = "Prototype Submachine Gun"
desc = "A prototype weapon made using lightweight materials on a traditional frame, designed to fire standard 9mm rounds."
id = "smg"
@@ -120,17 +120,9 @@ datum/design/smg
materials = list("$metal" = 8000, "$silver" = 2000, "$diamond" = 1000)
build_path = /obj/item/weapon/gun/projectile/automatic
locked = 1
+ category = list("Weapons")
-datum/design/mag_smg
- name = "Submachine Gun Magazine (9mm)"
- desc = "A 20-round magazine for the prototype submachine gun."
- id = "mag_smg"
- req_tech = list("combat" = 4, "materials" = 3)
- build_type = PROTOLATHE
- materials = list("$metal" = 2000)
- build_path = /obj/item/ammo_box/magazine/smgm9mm
-
-datum/design/xray
+/datum/design/xray
name = "Xray Laser Gun"
desc = "Not quite as menacing as it sounds"
id = "xray"
@@ -139,8 +131,9 @@ datum/design/xray
materials = list("$gold" = 5000,"$uranium" = 10000, "$metal" = 4000)
build_path = /obj/item/weapon/gun/energy/xray
locked = 1
+ category = list("Weapons")
-datum/design/ionrifle
+/datum/design/ionrifle
name = "Ion Rifle"
desc = "How to dismantle a cyborg : The gun."
id = "ionrifle"
@@ -149,8 +142,9 @@ datum/design/ionrifle
materials = list("$silver" = 4000, "$metal" = 6000, "$uranium" = 1000)
build_path = /obj/item/weapon/gun/energy/ionrifle
locked = 1
+ category = list("Weapons")
-datum/design/wormhole_projector
+/datum/design/wormhole_projector
name = "Bluespace Wormhole Projector"
desc = "A projector that emits high density quantum-coupled bluespace beams."
id = "wormholeprojector"
@@ -159,8 +153,9 @@ datum/design/wormhole_projector
materials = list("$silver" = 1000, "$metal" = 5000, "$diamond" = 3000)
build_path = /obj/item/weapon/gun/energy/wormhole_projector
locked = 1
+ category = list("Weapons")
-datum/design/reciever
+/datum/design/reciever
name = "Modular Reciever"
desc = "A prototype modular reciever and trigger assembly for a variety of firearms."
id = "reciever"
@@ -168,8 +163,19 @@ datum/design/reciever
build_type = PROTOLATHE
materials = list("$metal" = 6500, "$silver" = 500)
build_path = /obj/item/weaponcrafting/reciever
+ category = list("Weapons")
-datum/design/stunshell
+/datum/design/mag_smg
+ name = "Submachine Gun Magazine (9mm)"
+ desc = "A 20-round magazine for the prototype submachine gun."
+ id = "mag_smg"
+ req_tech = list("combat" = 4, "materials" = 3)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 2000)
+ build_path = /obj/item/ammo_box/magazine/smgm9mm
+ category = list("Ammo")
+
+/datum/design/stunshell
name = "Stun Shell"
desc = "A stunning shell for a shotgun."
id = "stunshell"
@@ -177,8 +183,9 @@ datum/design/stunshell
build_type = PROTOLATHE
materials = list("$metal" = 200)
build_path = /obj/item/ammo_casing/shotgun/stunslug
+ category = list("Ammo")
-datum/design/techshell
+/datum/design/techshell
name = "Unloaded Technological Shotshell"
desc = "A high-tech shotgun shell which can be loaded with materials to produce unique effects."
id = "techshotshell"
@@ -186,12 +193,14 @@ datum/design/techshell
build_type = PROTOLATHE
materials = list("$metal" = 1000, "$glass" = 200, "$silver" = 300)
build_path = /obj/item/ammo_casing/shotgun/techshell
+ category = list("Ammo")
-datum/design/suppressor
+/datum/design/suppressor
name = "Universal Suppressor"
desc = "A reverse-engineered universal suppressor that fits on most small arms with threaded barrels."
id = "suppressor"
req_tech = list("combat" = 6, "engineering" = 5, "syndicate" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 2000, "$silver" = 500)
- build_path = /obj/item/weapon/suppressor
\ No newline at end of file
+ build_path = /obj/item/weapon/suppressor
+ category = list("Weapons")
diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm
index d4affb8af14..771d53cd16e 100644
--- a/code/modules/research/protolathe.dm
+++ b/code/modules/research/protolathe.dm
@@ -25,6 +25,14 @@ Note: Must be placed west/left of and R&D console to function.
var/adamantine_amount = 0.0
var/efficiency_coeff
+ var/list/categories = list(
+ "Power Designs",
+ "Stock Parts",
+ "Medical Designs",
+ "Weapons",
+ "Ammo",
+ )
+
reagents = new()
diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm
index 124bbf8599c..7c695ffe718 100644
--- a/code/modules/research/rdconsole.dm
+++ b/code/modules/research/rdconsole.dm
@@ -49,6 +49,8 @@ won't update every console in existence) but it's more of a hassle to do. Also,
req_access = list(access_tox) //Data and setting manipulation requires scientist access.
+ var/selected_category
+
/obj/machinery/computer/rdconsole/proc/CallTechName(var/ID) //A simple helper proc to find the name of a tech with a given ID.
var/datum/tech/check_tech
@@ -179,6 +181,9 @@ won't update every console in existence) but it's more of a hassle to do. Also,
var/temp_screen = text2num(href_list["menu"])
screen = temp_screen
+ if(href_list["category"])
+ selected_category = href_list["category"]
+
else if(href_list["updt_tech"]) //Update the research holder with information from the technology disk.
screen = 0.0
spawn(50)
@@ -413,7 +418,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
else
new_item.loc = linked_lathe.loc
linked_lathe.busy = 0
- screen = 3.1
+ screen = 3.15
updateUsrDialog()
else if(href_list["imprint"]) //Causes the Circuit Imprinter to build something.
@@ -778,31 +783,42 @@ won't update every console in existence) but it's more of a hassle to do. Also,
dat += "Protolathe Menu:
"
dat += "Material Amount: [linked_lathe.TotalMaterials()] / [linked_lathe.max_material_storage]
"
dat += "Chemical Volume: [linked_lathe.reagents.total_volume] / [linked_lathe.reagents.maximum_volume]
"
+
+ dat += list_categories(linked_lathe.categories, 3.15)
+
+ //Grouping designs by categories, to improve readability
+ if(3.15)
+ dat += "Main Menu"
+ dat += "Protolathe Menu"
+ dat += "Browsing [selected_category]:
"
+ dat += "
Material Amount: [linked_lathe.TotalMaterials()] / [linked_lathe.max_material_storage]
"
+ dat += "
Chemical Volume: [linked_lathe.reagents.total_volume] / [linked_lathe.reagents.maximum_volume]
"
+
var/coeff = linked_lathe.efficiency_coeff
for(var/datum/design/D in files.known_designs)
- if(!(D.build_type & PROTOLATHE))
+ if(!(selected_category in D.category)|| !(D.build_type & PROTOLATHE))
continue
- var/temp_dat = "[D.name]"
var/temp_material
var/c = 50
var/t
for(var/M in D.materials)
t = linked_lathe.check_mat(D, M)
+ temp_material += " | "
if (!t)
- temp_material += "
[D.materials[M]/coeff] [CallMaterialName(M)]"
+ temp_material += "
[D.materials[M]/coeff] [CallMaterialName(M)]"
else
temp_material += " [D.materials[M]/coeff] [CallMaterialName(M)]"
c = min(c,t)
if (c)
- dat += "*
[temp_dat]"
+ dat += "
[D.name]"
if(c >= 5.0)
dat += "
x5"
if(c >= 10.0)
dat += "
x10"
dat += "[temp_material]"
else
- dat += "*
[temp_dat][temp_material]"
+ dat += "
[D.name][temp_material]"
dat += "
"
dat += "
"
@@ -880,23 +896,33 @@ won't update every console in existence) but it's more of a hassle to do. Also,
dat += "Circuit Imprinter Menu:
"
dat += "Material Amount: [linked_imprinter.TotalMaterials()]
"
dat += "Chemical Volume: [linked_imprinter.reagents.total_volume]
"
+
+ dat += list_categories(linked_imprinter.categories, 4.15)
+
+ if(4.15)
+ dat += "Main Menu"
+ dat += "Circuit Imprinter Menu"
+ dat += "Browsing [selected_category]:
"
+ dat += "Material Amount: [linked_imprinter.TotalMaterials()]
"
+ dat += "Chemical Volume: [linked_imprinter.reagents.total_volume]
"
+
var/coeff = linked_imprinter.efficiency_coeff
for(var/datum/design/D in files.known_designs)
- if(!(D.build_type & IMPRINTER))
+ if(!(selected_category in D.category) || !(D.build_type & IMPRINTER))
continue
- var/temp_dat = "[D.name]"
var/temp_materials
var/check_materials = 1
for(var/M in D.materials)
+ temp_materials += " | "
if (!linked_imprinter.check_mat(D, M))
check_materials = 0
- temp_materials += "
[D.materials[M]/coeff] [CallMaterialName(M)]"
+ temp_materials += "
[D.materials[M]/coeff] [CallMaterialName(M)]"
else
temp_materials += " [D.materials[M]/coeff] [CallMaterialName(M)]"
if (check_materials)
- dat += "*
[temp_dat][temp_materials]
"
+ dat += "
[D.name][temp_materials]
"
else
- dat += "*
[temp_dat][temp_materials]
"
+ dat += "
[D.name][temp_materials]
"
dat += "
"
if(4.2)
@@ -931,11 +957,30 @@ won't update every console in existence) but it's more of a hassle to do. Also,
if(linked_imprinter.diamond_amount >= 2000) dat += "All"
dat += ""
- var/datum/browser/popup = new(user, "rndconsole", name, 420, 450)
+ var/datum/browser/popup = new(user, "rndconsole", name, 460, 550)
popup.set_content(dat)
popup.open()
return
+//helper proc, which return a table containing categories
+/obj/machinery/computer/rdconsole/proc/list_categories(var/list/categories, var/menu_num as num)
+ if(!categories)
+ return
+
+ var/line_length = 1
+ var/dat = ""
+
+ for(var/C in categories)
+ if(line_length > 2)
+ dat += "
"
+ line_length = 1
+
+ dat += "| [C] | "
+ line_length++
+
+ dat += "
"
+ return dat
+
/obj/machinery/computer/rdconsole/robotics
name = "Robotics R&D Console"
desc = "A console used to interface with R&D tools."
diff --git a/code/modules/research/research.dm b/code/modules/research/research.dm
index ef765b17f9e..6fa8bb0536a 100644
--- a/code/modules/research/research.dm
+++ b/code/modules/research/research.dm
@@ -159,6 +159,26 @@ research holder datum.
if(I.crit_fail)
D.reliability = min(100, D.reliability + rand(3, 5))
+/datum/research/proc/FindDesignByID(var/id)
+ for(var/datum/design/D in known_designs)
+ if(D.id == id)
+ return D
+
+
+//Autolathe files
+/datum/research/autolathe/New()
+ for(var/T in (typesof(/datum/tech) - /datum/tech))
+ possible_tech += new T(src)
+ for(var/path in typesof(/datum/design) - /datum/design)
+ var/datum/design/D = new path(src)
+ possible_designs += D
+ if((D.build_type & AUTOLATHE) && ("initial" in D.category)) //autolathe starts without hacked designs
+ AddDesign2Known(D)
+
+/datum/research/autolathe/AddDesign2Known(var/datum/design/D)
+ if(!(D.build_type & AUTOLATHE))
+ return
+ ..()
/***************************************************************
** Technology Datums **
diff --git a/code/modules/surgery/lipoplasty.dm b/code/modules/surgery/lipoplasty.dm
index 9ccb93d6dd5..8652fc2978e 100644
--- a/code/modules/surgery/lipoplasty.dm
+++ b/code/modules/surgery/lipoplasty.dm
@@ -31,7 +31,7 @@
user.visible_message("[user] extracts [target]'s fat!")
target.overeatduration = 0 //patient is unfatted
var/removednutriment = target.nutrition
- target.nutrition = 450
+ target.nutrition = NUTRITION_LEVEL_WELL_FED
removednutriment -= 450 //whatever was removed goes into the meat
var/obj/item/weapon/reagent_containers/food/snacks/meat/human/newmeat = new
newmeat.name = "fatty meat"
diff --git a/code/modules/telesci/telepad.dm b/code/modules/telesci/telepad.dm
index ea7bb4ce13a..e0eccaff92b 100644
--- a/code/modules/telesci/telepad.dm
+++ b/code/modules/telesci/telepad.dm
@@ -60,10 +60,10 @@
playsound(src, 'sound/items/Ratchet.ogg', 50, 1)
if(anchored)
anchored = 0
- user << " The [src] can now be moved."
+ user << " \The [src] can now be moved."
else if(!anchored)
anchored = 1
- user << " The [src] is now secured."
+ user << " \The [src] is now secured."
if(istype(W, /obj/item/weapon/screwdriver))
if(stage == 0)
playsound(src, 'sound/items/Screwdriver.ogg', 50, 1)
diff --git a/code/world.dm b/code/world.dm
index 82f3817b3c2..c31d225da1d 100644
--- a/code/world.dm
+++ b/code/world.dm
@@ -89,7 +89,7 @@
master_controller = new /datum/controller/game_controller()
spawn(-1)
master_controller.setup()
- lighting_controller.Initialize()
+ lighting_controller.initializeLighting()
src.update_status()
diff --git a/config/admins.txt b/config/admins.txt
index e888262a285..cec937826ec 100644
--- a/config/admins.txt
+++ b/config/admins.txt
@@ -69,3 +69,7 @@ steelpoint = Game Master
phil235 = Game Master
xxnoob = Game Master
tkdrg = Game Master
+Cuboos = Game Master
+thunder12345 = Game Master
+wjohnston = Game Master
+mandurrh = Game Master
diff --git a/html/changelog.html b/html/changelog.html
index f1a6231e621..c0dafcb126f 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -55,6 +55,32 @@
-->
+
+
16 December 2014
+
Paprika updated:
+
+ - Reverted security armor and helmets to the old (Grey) style of armor/helmets.
+ - Updated security jumpsuits to be more consistent across officer/warden/HoS ranks.
+ - Added tactical armor and helmets to replace the largely unused bulletproof vest in the armory. This armor has higher bullet and explosive resistance than normal armor, and uses the previous, more military armor/helmet sprites.
+ - Added a new injury doll to go along with the overall health meter. This will show you locational overall limb-based burn/brute damage, so you can tell the difference between being hurt with burn/brute or toxins/stamina damage which does not affect limbs.
+ - Reverted some UI icons back to their older status and changed some around for readability. Thank you for your feedback.
+
+
Thunder12345 updated:
+
+ - Added a new FRAG-12 explosive shotgun shell, built from the unloaded technological shell, using tablecrafting. Constructed using an unloaded technological tech shell, 5 units sulphuric acid, 5 units polytrinic acid, 5 units glycerol, and requires a screwdriver.
+
+
phil235 updated:
+
+ - Change to the hunger system. Eating food with sugar temporarily worsens your nutrition drop rate. Eating too much sugar too quickly can make you temporarily unable to eat any sugary food. The nutritional effect of sugar depends on how hungry you are thus it cannot easily raise your nutrition level past well fed and is best used when hungry. Lots of sugar can make you a bit jittery at times. Eating food with vitamin (new reagent) counteracts the sugar effects and can give you temporary buffs when well fed: it lowers your chance to catch or spread viruses,it makes your body's metabolism more efficient that is it keeps healing reagents longer and evacuate toxins faster and reduces damage from radioactive reagents. Your metabolism gets less efficient if starving.
+ - New hunger hud icons: starving, hungry, fed, well fed, full, fat.
+ - Snack vending machine get a chef compartment that can be loaded with non-sugary food by hand or with a tray by anyone with kitchen access (unless you hack the machine with multitool or emag). The food can be unloaded by anyone, like regular snacks
+ - Cargo can get a nutritious pizza crate order for 60 points.
+ - Grown and cooked food gets some vitamin while junk food gets less nutriment and more sugar (only hot donkpocket and ramen don't have sugar)
+ - The number of junk food in snack vending machine is lowered from 6 to 5 of each type.
+ - Fixing not being able to load an omelette du fromage on a tray.
+
+
+
10 December 2014
GunHog updated:
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index d8ff4543cd3..11d9482ac4a 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -2164,3 +2164,44 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
of mutation, and plasma will increase it.
- rscadd: We've also found that feeding slimes solid plasma bars makes them more
friendly to humans.
+2014-12-16:
+ Paprika:
+ - tweak: Reverted security armor and helmets to the old (Grey) style of armor/helmets.
+ - tweak: Updated security jumpsuits to be more consistent across officer/warden/HoS
+ ranks.
+ - rscadd: Added tactical armor and helmets to replace the largely unused bulletproof
+ vest in the armory. This armor has higher bullet and explosive resistance than
+ normal armor, and uses the previous, more military armor/helmet sprites.
+ - rscadd: Added a new injury doll to go along with the overall health meter. This
+ will show you locational overall limb-based burn/brute damage, so you can tell
+ the difference between being hurt with burn/brute or toxins/stamina damage which
+ does not affect limbs.
+ - tweak: Reverted some UI icons back to their older status and changed some around
+ for readability. Thank you for your feedback.
+ Thunder12345:
+ - rscadd: Added a new FRAG-12 explosive shotgun shell, built from the unloaded technological
+ shell, using tablecrafting. Constructed using an unloaded technological tech
+ shell, 5 units sulphuric acid, 5 units polytrinic acid, 5 units glycerol, and
+ requires a screwdriver.
+ phil235:
+ - rscadd: 'Change to the hunger system. Eating food with sugar temporarily worsens
+ your nutrition drop rate. Eating too much sugar too quickly can make you temporarily
+ unable to eat any sugary food. The nutritional effect of sugar depends on how
+ hungry you are thus it cannot easily raise your nutrition level past well fed
+ and is best used when hungry. Lots of sugar can make you a bit jittery at times.
+ Eating food with vitamin (new reagent) counteracts the sugar effects and can
+ give you temporary buffs when well fed: it lowers your chance to catch or spread
+ viruses,it makes your body''s metabolism more efficient that is it keeps healing
+ reagents longer and evacuate toxins faster and reduces damage from radioactive
+ reagents. Your metabolism gets less efficient if starving.'
+ - rscadd: 'New hunger hud icons: starving, hungry, fed, well fed, full, fat.'
+ - rscadd: Snack vending machine get a chef compartment that can be loaded with non-sugary
+ food by hand or with a tray by anyone with kitchen access (unless you hack the
+ machine with multitool or emag). The food can be unloaded by anyone, like regular
+ snacks
+ - rscadd: Cargo can get a nutritious pizza crate order for 60 points.
+ - tweak: Grown and cooked food gets some vitamin while junk food gets less nutriment
+ and more sugar (only hot donkpocket and ramen don't have sugar)
+ - tweak: The number of junk food in snack vending machine is lowered from 6 to 5
+ of each type.
+ - bugfix: Fixing not being able to load an omelette du fromage on a tray.
diff --git a/html/changelogs/Paprika - secsprites.yml b/html/changelogs/Paprika - secsprites.yml
deleted file mode 100644
index 8cd3297fdc4..00000000000
--- a/html/changelogs/Paprika - secsprites.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-author: Paprika
-delete-after: True
-
-
-changes:
-
- - tweak: "Reverted security armor and helmets to the old (Grey) style of armor/helmets."
-
- - tweak: "Updated security jumpsuits to be more consistent across officer/warden/HoS ranks."
-
- - rscadd: "Added tactical armor and helmets to replace the largely unused bulletproof vest in the armory. This armor has higher bullet and explosive resistance than normal armor, and uses the previous, more military armor/helmet sprites."
\ No newline at end of file
diff --git a/html/changelogs/Paprika - stuntweaks.yml b/html/changelogs/Paprika - stuntweaks.yml
new file mode 100644
index 00000000000..a37a27e1fc8
--- /dev/null
+++ b/html/changelogs/Paprika - stuntweaks.yml
@@ -0,0 +1,13 @@
+author: Paprika
+delete-after: True
+
+
+changes:
+
+ - experiment: "Taser electrodes now have a limited range of 7 tiles."
+ - experiment: "The energy gun's stun mode has been replaced with a disable mode."
+ - experiment: "Security officers will now spawn with tasers."
+ - tweak: "Disabler beams now go through windows and grilles."
+ - tweak: "Disabler beams now do 33 stamina damage instead of 34. This means they will only stun in 3 hits on someone that is NOT 100% healthy."
+ - tweak: "Most ballistic projectiles now do stamina damage in addition to their regular damage instead of stunning. This includes nuke op c-20r .45, detective's revolver, etc. They are effectively better than disablers at stunning people, as well as do significant damage, but they do not stun instantly like a taser. Expect engagements to be a little longer and plan ahead for this."
+ - rscadd: "Added an advanced taser for RnD, the child of a disabler and a taser."
\ No newline at end of file
diff --git a/html/changelogs/Paprka-injurydoll.yml b/html/changelogs/Paprka-injurydoll.yml
deleted file mode 100644
index 835f656c2a6..00000000000
--- a/html/changelogs/Paprka-injurydoll.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: Paprika
-delete-after: True
-changes:
- - rscadd: "Added a new injury doll to go along with the overall health meter. This will show you locational overall limb-based burn/brute damage, so you can tell the difference between being hurt with burn/brute or toxins/stamina damage which does not affect limbs."
- - tweak: "Reverted some UI icons back to their older status and changed some around for readability. Thank you for your feedback."
\ No newline at end of file
diff --git a/html/changelogs/Tkdrg-FUCKING_SUPERMATTER.yml b/html/changelogs/Tkdrg-FUCKING_SUPERMATTER.yml
new file mode 100644
index 00000000000..8a39d30d075
--- /dev/null
+++ b/html/changelogs/Tkdrg-FUCKING_SUPERMATTER.yml
@@ -0,0 +1,5 @@
+author: Tkdrg
+delete-after: True
+
+changes:
+ - rscadd: "Envoys from the distant Viji sector have brought an exotic contraption to Centcomm. Known as the 'supermatter shard', it is a fragment of an ancient alien artifact, believed to have a dangerous and mysterious power. This precious item has been made available to the Space Station 13 cargo team for the cost of a hundred supply points, as a reward for all your hard work. Good luck, and stay safe."
diff --git a/icons/mecha/mech_construction.dmi b/icons/mecha/mech_construction.dmi
index cb4da25728d..38b3b04c5df 100644
Binary files a/icons/mecha/mech_construction.dmi and b/icons/mecha/mech_construction.dmi differ
diff --git a/icons/mob/alien.dmi b/icons/mob/alien.dmi
index 8c8690ea853..0b2c7f8e136 100644
Binary files a/icons/mob/alien.dmi and b/icons/mob/alien.dmi differ
diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi
index 9c0449f011e..d613dedcefe 100644
Binary files a/icons/mob/back.dmi and b/icons/mob/back.dmi differ
diff --git a/icons/mob/belt.dmi b/icons/mob/belt.dmi
index e711157e2e5..0a170f70789 100644
Binary files a/icons/mob/belt.dmi and b/icons/mob/belt.dmi differ
diff --git a/icons/mob/corgi_back.dmi b/icons/mob/corgi_back.dmi
index 6c7c1444909..7ea3cee1a4a 100644
Binary files a/icons/mob/corgi_back.dmi and b/icons/mob/corgi_back.dmi differ
diff --git a/icons/mob/corgi_head.dmi b/icons/mob/corgi_head.dmi
index 4faf6d77ddb..e03c9eb25c0 100644
Binary files a/icons/mob/corgi_head.dmi and b/icons/mob/corgi_head.dmi differ
diff --git a/icons/mob/ears.dmi b/icons/mob/ears.dmi
index 8ff02f67652..fe9e2b691e7 100644
Binary files a/icons/mob/ears.dmi and b/icons/mob/ears.dmi differ
diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi
index fb2f66315e6..b10bcfce92b 100644
Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ
diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi
index 14588c5ff62..dfe577df1d4 100644
Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ
diff --git a/icons/mob/items_lefthand.dmi b/icons/mob/items_lefthand.dmi
index 57009026e86..bb4f4121a2a 100644
Binary files a/icons/mob/items_lefthand.dmi and b/icons/mob/items_lefthand.dmi differ
diff --git a/icons/mob/items_righthand.dmi b/icons/mob/items_righthand.dmi
index 33af023bd79..32316ec15f2 100644
Binary files a/icons/mob/items_righthand.dmi and b/icons/mob/items_righthand.dmi differ
diff --git a/icons/mob/monkey.dmi b/icons/mob/monkey.dmi
index 99beec24bf8..d1872d6aaff 100644
Binary files a/icons/mob/monkey.dmi and b/icons/mob/monkey.dmi differ
diff --git a/icons/mob/screen_alien.dmi b/icons/mob/screen_alien.dmi
index 3674b2bf163..e0257307ac1 100644
Binary files a/icons/mob/screen_alien.dmi and b/icons/mob/screen_alien.dmi differ
diff --git a/icons/mob/screen_gen.dmi b/icons/mob/screen_gen.dmi
index 1126ea7226d..4e5a9f42d54 100644
Binary files a/icons/mob/screen_gen.dmi and b/icons/mob/screen_gen.dmi differ
diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi
index 8a75178920d..b6923194bb1 100644
Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ
diff --git a/icons/mob/ties.dmi b/icons/mob/ties.dmi
index c2befc32eaa..bab5533b140 100644
Binary files a/icons/mob/ties.dmi and b/icons/mob/ties.dmi differ
diff --git a/icons/mob/underwear.dmi b/icons/mob/underwear.dmi
index 6a16f7002c2..7e161846df6 100644
Binary files a/icons/mob/underwear.dmi and b/icons/mob/underwear.dmi differ
diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi
index 7dbde85779a..30334b16415 100644
Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ
diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi
index 200bed93b1b..367ef6ee234 100644
Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ
diff --git a/icons/obj/closet.dmi b/icons/obj/closet.dmi
index 589ae4689f3..a47cfcdb2e9 100644
Binary files a/icons/obj/closet.dmi and b/icons/obj/closet.dmi differ
diff --git a/icons/obj/clothing/belts.dmi b/icons/obj/clothing/belts.dmi
index b5dd02a219d..6ac0661e122 100644
Binary files a/icons/obj/clothing/belts.dmi and b/icons/obj/clothing/belts.dmi differ
diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi
index 195682b8789..24f9048fc45 100644
Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ
diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi
index 39d8d0c3d86..30fd1979df8 100644
Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ
diff --git a/icons/obj/clothing/ties.dmi b/icons/obj/clothing/ties.dmi
index 80722813075..7be081f9579 100644
Binary files a/icons/obj/clothing/ties.dmi and b/icons/obj/clothing/ties.dmi differ
diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi
index 637ce06644f..9cee4e8a3bb 100644
Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ
diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi
index 31601e0c21d..e73f17598ab 100644
Binary files a/icons/obj/gun.dmi and b/icons/obj/gun.dmi differ
diff --git a/icons/obj/lighting.dmi b/icons/obj/lighting.dmi
index 3e27a28f2ec..6f8513e7862 100644
Binary files a/icons/obj/lighting.dmi and b/icons/obj/lighting.dmi differ
diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi
index 201a73b0905..e0bbc6ea25a 100644
Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.dmi differ
diff --git a/icons/obj/pda.dmi b/icons/obj/pda.dmi
index cf23e987632..848647eae2d 100644
Binary files a/icons/obj/pda.dmi and b/icons/obj/pda.dmi differ
diff --git a/icons/obj/stationobjs.dmi b/icons/obj/stationobjs.dmi
index cedaea84001..edb1b1fe792 100644
Binary files a/icons/obj/stationobjs.dmi and b/icons/obj/stationobjs.dmi differ
diff --git a/icons/obj/supermatter.dmi b/icons/obj/supermatter.dmi
new file mode 100644
index 00000000000..64e26758738
Binary files /dev/null and b/icons/obj/supermatter.dmi differ
diff --git a/icons/obj/tank.dmi b/icons/obj/tank.dmi
index 91d42d5ec4e..01e5983da03 100644
Binary files a/icons/obj/tank.dmi and b/icons/obj/tank.dmi differ
diff --git a/icons/obj/vending.dmi b/icons/obj/vending.dmi
index 7ae9dadfd3b..2d23a9a9b4d 100644
Binary files a/icons/obj/vending.dmi and b/icons/obj/vending.dmi differ
diff --git a/icons/obj/vending_restock.dmi b/icons/obj/vending_restock.dmi
index ec37cad94c5..aa9f2873f02 100644
Binary files a/icons/obj/vending_restock.dmi and b/icons/obj/vending_restock.dmi differ
diff --git a/sound/effects/break_stone.ogg b/sound/effects/break_stone.ogg
new file mode 100644
index 00000000000..711fd50d482
Binary files /dev/null and b/sound/effects/break_stone.ogg differ
diff --git a/sound/effects/picaxe1.ogg b/sound/effects/picaxe1.ogg
new file mode 100644
index 00000000000..337422d39e4
Binary files /dev/null and b/sound/effects/picaxe1.ogg differ
diff --git a/sound/effects/picaxe2.ogg b/sound/effects/picaxe2.ogg
new file mode 100644
index 00000000000..c1a2fd631bd
Binary files /dev/null and b/sound/effects/picaxe2.ogg differ
diff --git a/sound/effects/picaxe3.ogg b/sound/effects/picaxe3.ogg
new file mode 100644
index 00000000000..f4656613284
Binary files /dev/null and b/sound/effects/picaxe3.ogg differ
diff --git a/sound/effects/shovel_dig.ogg b/sound/effects/shovel_dig.ogg
new file mode 100644
index 00000000000..c0b459066a0
Binary files /dev/null and b/sound/effects/shovel_dig.ogg differ
diff --git a/sound/effects/supermatter.ogg b/sound/effects/supermatter.ogg
new file mode 100644
index 00000000000..83081a5e9bf
Binary files /dev/null and b/sound/effects/supermatter.ogg differ
diff --git a/sound/machines/defib_SaftyOn.ogg b/sound/machines/defib_SaftyOn.ogg
new file mode 100644
index 00000000000..cf261536466
Binary files /dev/null and b/sound/machines/defib_SaftyOn.ogg differ
diff --git a/sound/machines/defib_charge.ogg b/sound/machines/defib_charge.ogg
new file mode 100644
index 00000000000..3e2be160fd1
Binary files /dev/null and b/sound/machines/defib_charge.ogg differ
diff --git a/sound/machines/defib_failed.ogg b/sound/machines/defib_failed.ogg
new file mode 100644
index 00000000000..341f70ce84e
Binary files /dev/null and b/sound/machines/defib_failed.ogg differ
diff --git a/sound/machines/defib_ready.ogg b/sound/machines/defib_ready.ogg
new file mode 100644
index 00000000000..718128602ed
Binary files /dev/null and b/sound/machines/defib_ready.ogg differ
diff --git a/sound/machines/defib_saftyOff.ogg b/sound/machines/defib_saftyOff.ogg
new file mode 100644
index 00000000000..6ab57097de3
Binary files /dev/null and b/sound/machines/defib_saftyOff.ogg differ
diff --git a/sound/machines/defib_success.ogg b/sound/machines/defib_success.ogg
new file mode 100644
index 00000000000..3f71438c168
Binary files /dev/null and b/sound/machines/defib_success.ogg differ
diff --git a/sound/machines/defib_zap.ogg b/sound/machines/defib_zap.ogg
new file mode 100644
index 00000000000..5612db39a43
Binary files /dev/null and b/sound/machines/defib_zap.ogg differ
diff --git a/sound/misc/announce.ogg b/sound/misc/announce.ogg
index 2342d2eb505..0ee0f36d56f 100644
Binary files a/sound/misc/announce.ogg and b/sound/misc/announce.ogg differ
diff --git a/sound/misc/announce_dig.ogg b/sound/misc/announce_dig.ogg
new file mode 100644
index 00000000000..2342d2eb505
Binary files /dev/null and b/sound/misc/announce_dig.ogg differ
diff --git a/sound/weapons/Taser.ogg b/sound/weapons/Taser.ogg
index f2191222b79..8992b71f50f 100644
Binary files a/sound/weapons/Taser.ogg and b/sound/weapons/Taser.ogg differ
diff --git a/sound/weapons/drill.ogg b/sound/weapons/drill.ogg
new file mode 100644
index 00000000000..fd7495f74fa
Binary files /dev/null and b/sound/weapons/drill.ogg differ
diff --git a/sound/weapons/plasma_cutter.ogg b/sound/weapons/plasma_cutter.ogg
new file mode 100644
index 00000000000..ba95317cc1e
Binary files /dev/null and b/sound/weapons/plasma_cutter.ogg differ
diff --git a/sound/weapons/resonator_blast.ogg b/sound/weapons/resonator_blast.ogg
new file mode 100644
index 00000000000..7110a716b1c
Binary files /dev/null and b/sound/weapons/resonator_blast.ogg differ
diff --git a/sound/weapons/resonator_fire.ogg b/sound/weapons/resonator_fire.ogg
new file mode 100644
index 00000000000..20665e5dd08
Binary files /dev/null and b/sound/weapons/resonator_fire.ogg differ
diff --git a/sound/weapons/sonic_jackhammer.ogg b/sound/weapons/sonic_jackhammer.ogg
new file mode 100644
index 00000000000..dae5762b2c4
Binary files /dev/null and b/sound/weapons/sonic_jackhammer.ogg differ
diff --git a/tgstation.dme b/tgstation.dme
index 672a4f281ef..1ee1c28cfe7 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -209,6 +209,7 @@
#include "code\datums\spells\mime.dm"
#include "code\datums\spells\mind_transfer.dm"
#include "code\datums\spells\projectile.dm"
+#include "code\datums\spells\santa.dm"
#include "code\datums\spells\trigger.dm"
#include "code\datums\spells\turf_teleport.dm"
#include "code\datums\spells\wizard.dm"
@@ -836,6 +837,7 @@
#include "code\modules\clothing\under\chameleon.dm"
#include "code\modules\clothing\under\color.dm"
#include "code\modules\clothing\under\miscellaneous.dm"
+#include "code\modules\clothing\under\pants.dm"
#include "code\modules\clothing\under\shorts.dm"
#include "code\modules\clothing\under\syndicate.dm"
#include "code\modules\clothing\under\ties.dm"
@@ -1212,6 +1214,8 @@
#include "code\modules\power\singularity\particle_accelerator\particle_control.dm"
#include "code\modules\power\singularity\particle_accelerator\particle_emitter.dm"
#include "code\modules\power\singularity\particle_accelerator\particle_power.dm"
+#include "code\modules\power\supermatter\supermatter.dm"
+#include "code\modules\power\supermatter\supermatter_crate.dm"
#include "code\modules\projectiles\ammunition.dm"
#include "code\modules\projectiles\firing.dm"
#include "code\modules\projectiles\gun.dm"
@@ -1246,12 +1250,17 @@
#include "code\modules\reagents\Chemistry-Holder.dm"
#include "code\modules\reagents\Chemistry-Machinery.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\grenade_launcher.dm"
#include "code\modules\reagents\reagent_containers.dm"
#include "code\modules\reagents\reagent_dispenser.dm"
#include "code\modules\reagents\syringe_gun.dm"
+#include "code\modules\reagents\Chemistry-Reagents\Chemistry-Reagents.dm"
+#include "code\modules\reagents\Chemistry-Reagents\Medicine-Reagents.dm"
+#include "code\modules\reagents\Chemistry-Reagents\Toxin-Reagents.dm"
+#include "code\modules\reagents\Chemistry-Reagents\Consumable-Reagents\Food-Reagents.dm"
+#include "code\modules\reagents\Chemistry-Reagents\Consumable-Reagents\Drink-Reagents\Alcohols.dm"
+#include "code\modules\reagents\Chemistry-Reagents\Consumable-Reagents\Drink-Reagents\Drinks.dm"
#include "code\modules\reagents\reagent_containers\borghydro.dm"
#include "code\modules\reagents\reagent_containers\dropper.dm"
#include "code\modules\reagents\reagent_containers\glass.dm"
@@ -1276,6 +1285,7 @@
#include "code\modules\research\research.dm"
#include "code\modules\research\server.dm"
#include "code\modules\research\designs\AI_module_designs.dm"
+#include "code\modules\research\designs\autolathe_designs.dm"
#include "code\modules\research\designs\comp_board_designs.dm"
#include "code\modules\research\designs\machine_designs.dm"
#include "code\modules\research\designs\mecha_designs.dm"
diff --git a/tools/mapmerge/Location.java b/tools/mapmerge/Source/Location.java
similarity index 100%
rename from tools/mapmerge/Location.java
rename to tools/mapmerge/Source/Location.java
diff --git a/tools/mapmerge/META-INF/MANIFEST.MF b/tools/mapmerge/Source/META-INF/MANIFEST.MF
similarity index 95%
rename from tools/mapmerge/META-INF/MANIFEST.MF
rename to tools/mapmerge/Source/META-INF/MANIFEST.MF
index d66a7b3b698..5aa53c2fa28 100644
--- a/tools/mapmerge/META-INF/MANIFEST.MF
+++ b/tools/mapmerge/Source/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
-Manifest-Version: 1.0
-Created-By: 1.6.0_31 (Sun Microsystems Inc.)
-Main-Class: MapPatcher
-
+Manifest-Version: 1.0
+Created-By: 1.6.0_31 (Sun Microsystems Inc.)
+Main-Class: MapPatcher
+
diff --git a/tools/mapmerge/Map.java b/tools/mapmerge/Source/Map.java
similarity index 100%
rename from tools/mapmerge/Map.java
rename to tools/mapmerge/Source/Map.java
diff --git a/tools/mapmerge/MapPatcher.java b/tools/mapmerge/Source/MapPatcher.java
similarity index 100%
rename from tools/mapmerge/MapPatcher.java
rename to tools/mapmerge/Source/MapPatcher.java
diff --git a/tools/mapmerge/SavingThread.java b/tools/mapmerge/Source/SavingThread.java
similarity index 100%
rename from tools/mapmerge/SavingThread.java
rename to tools/mapmerge/Source/SavingThread.java
diff --git a/tools/mapmerge/clean_map.bat b/tools/mapmerge/clean_map.bat
index ab0cd4ea2ec..01cf441ee32 100644
--- a/tools/mapmerge/clean_map.bat
+++ b/tools/mapmerge/clean_map.bat
@@ -1,5 +1,5 @@
-set MAPFILE=TgStation/tgstation.2.1.3.dmm
+set MAPFILE=tgstation.2.1.3.dmm
-java -jar MapPatcher.jar -clean ../../_maps/map_files/%MAPFILE%.backup ../../_maps/map_files/%MAPFILE% ../../_maps/map_files/%MAPFILE%
+java -jar MapPatcher.jar -clean ../../_maps/map_files/TgStation/%MAPFILE%.backup ../../_maps/map_files/TgStation/%MAPFILE% ../../_maps/map_files/TgStation/%MAPFILE%
pause
diff --git a/tools/mapmerge/prepare_map.bat b/tools/mapmerge/prepare_map.bat
index d0d67489e82..4132fbbc2a7 100644
--- a/tools/mapmerge/prepare_map.bat
+++ b/tools/mapmerge/prepare_map.bat
@@ -1,6 +1,6 @@
-set MAPFILE=TgStation/tgstation.2.1.3.dmm
+set MAPFILE=tgstation.2.1.3.dmm
-cd ../../_maps/map_files
+cd ../../_maps/map_files/TgStation/
copy %MAPFILE% %MAPFILE%.backup
pause