diff --git a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm
index 299850722c0..0314b624a82 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm
@@ -1,76 +1,133 @@
-"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/turf/closed/wall/r_wall,/area/ruin/powered)
-"c" = (/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
-"d" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
-"e" = (/turf/open/floor/plating/beach/sand,/area/ruin/powered)
-"f" = (/obj/effect/overlay/palmtree_l,/turf/open/floor/plating/beach/sand,/area/ruin/powered)
-"g" = (/turf/closed/wall/mineral/sandstone,/area/ruin/powered)
-"h" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/open/floor/plating/beach/sand,/area/ruin/powered)
-"i" = (/obj/structure/table,/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/item/weapon/storage/box/beakers,/turf/open/floor/wood,/area/ruin/powered)
-"j" = (/obj/structure/table,/obj/machinery/reagentgrinder,/turf/open/floor/wood,/area/ruin/powered)
-"k" = (/obj/machinery/vending/boozeomat{emagged = 1},/turf/open/floor/wood,/area/ruin/powered)
-"l" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/rag,/turf/open/floor/wood,/area/ruin/powered)
-"m" = (/obj/effect/mob_spawn/human/cook{helmet = null; id_access = "Bartender"; id_job = "Bartender"; suit = /obj/item/clothing/suit/armor/vest; uniform = /obj/item/clothing/under/rank/bartender; death = 0; desc = "Looks secure."; flavour_text = "You are a bartender for the beach!"; icon = 'icons/obj/Cryogenic2.dmi'; icon_state = "sleeper"; mob_name = "Jerry Thomas"; name = "bartenders cryosleeper"; roundstart = 1},/turf/open/floor/wood,/area/ruin/powered)
-"n" = (/turf/open/floor/wood,/area/ruin/powered)
-"o" = (/obj/structure/table,/obj/machinery/microwave,/turf/open/floor/wood,/area/ruin/powered)
-"p" = (/turf/open/floor/plating/beach/sand,/obj/structure/closet/crate/bin,/turf/open/floor/plasteel/sandeffect,/area/ruin/powered)
-"q" = (/turf/open/floor/plating/beach/sand,/turf/open/floor/plasteel/sandeffect,/area/ruin/powered)
-"r" = (/obj/structure/table,/turf/open/floor/wood,/area/ruin/powered)
-"s" = (/turf/open/floor/plating/beach/sand,/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/sandeffect,/area/ruin/powered)
-"t" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/ruin/powered)
-"u" = (/obj/machinery/processor,/turf/open/floor/wood,/area/ruin/powered)
-"v" = (/turf/open/floor/plating/beach/sand,/obj/machinery/vending/cola,/turf/open/floor/plasteel/sandeffect,/area/ruin/powered)
-"w" = (/turf/open/floor/plating/beach/sand,/obj/structure/chair/stool,/turf/open/floor/plasteel/sandeffect,/area/ruin/powered)
-"x" = (/obj/structure/closet/secure_closet/freezer/meat,/turf/open/floor/wood,/area/ruin/powered)
-"y" = (/turf/open/floor/plating/beach/sand,/obj/machinery/vending/snack,/turf/open/floor/plasteel/sandeffect,/area/ruin/powered)
-"z" = (/turf/open/floor/plating/beach/sand{density = 1; opacity = 1},/area/ruin/powered)
-"A" = (/obj/machinery/door/airlock/sandstone,/turf/open/floor/wood,/area/ruin/powered)
-"B" = (/obj/structure/closet/secure_closet/freezer/kitchen,/turf/open/floor/wood,/area/ruin/powered)
-"C" = (/obj/structure/sign/barsign,/turf/closed/wall/mineral/sandstone,/area/ruin/powered)
-"D" = (/mob/living/simple_animal/crab,/turf/open/floor/plating/beach/sand,/area/ruin/powered)
-"E" = (/obj/effect/overlay/palmtree_l,/obj/effect/overlay/coconut,/turf/open/floor/plating/beach/sand,/area/ruin/powered)
-"F" = (/turf/open/floor/plating/beach/sand,/obj/structure/closet/athletic_mixed,/turf/open/floor/plasteel/sandeffect,/area/ruin/powered)
-"G" = (/turf/open/floor/plating/beach/sand,/obj/item/clothing/shoes/sandal,/obj/item/clothing/shoes/sandal,/obj/item/clothing/shoes/sandal,/obj/structure/closet/crate,/turf/open/floor/plasteel/sandeffect,/area/ruin/powered)
-"H" = (/obj/machinery/door/airlock/hatch,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth; blocks_air = 1},/area/ruin/powered)
-"I" = (/obj/machinery/door/airlock/sandstone,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
-"J" = (/obj/effect/overlay/coconut,/turf/open/floor/plating/beach/sand,/area/ruin/powered)
-"K" = (/obj/item/toy/beach_ball,/turf/open/floor/plating/beach/sand,/area/ruin/powered)
-"L" = (/obj/structure/chair,/turf/open/floor/plating/beach/sand,/area/ruin/powered)
-"M" = (/obj/structure/chair,/mob/living/simple_animal/crab,/turf/open/floor/plating/beach/sand,/area/ruin/powered)
-"N" = (/turf/open/floor/plating/beach/coastline_t,/area/ruin/powered)
-"O" = (/turf/open/floor/plating/beach/coastline_b,/area/ruin/powered)
-"P" = (/turf/open/floor/plating/beach/water,/area/ruin/powered)
-"Q" = (/turf/closed/wall/r_wall{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
+"aa" = (/turf/template_noop,/area/template_noop)
+"ab" = (/turf/closed/wall/r_wall{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
+"ac" = (/turf/closed/wall/r_wall,/area/ruin/powered)
+"ad" = (/obj/structure/flora/ausbushes/leafybush,/turf/open/floor/plating/beach/sand,/area/ruin/powered)
+"ae" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/stack/cable_coil,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
+"af" = (/obj/structure/table,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
+"ag" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
+"ah" = (/obj/machinery/power/smes,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
+"ai" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
+"aj" = (/turf/closed/wall/mineral/sandstone{baseturf = /turf/open/floor/plating/beach/sand},/area/ruin/powered)
+"ak" = (/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/obj/structure/toilet,/turf/open/floor/plasteel/sandeffect,/area/ruin/powered)
+"al" = (/obj/structure/urinal{pixel_y = 32},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
+"am" = (/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/obj/structure/urinal{pixel_y = 32},/turf/open/floor/plasteel/sandeffect,/area/ruin/powered)
+"an" = (/obj/item/device/flashlight/lantern,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
+"ao" = (/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel/sandeffect,/area/ruin/powered)
+"ap" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/open/floor/plating/beach/sand,/area/ruin/powered)
+"aq" = (/obj/structure/flora/ausbushes/sunnybush,/turf/open/floor/plating/beach/sand,/area/ruin/powered)
+"ar" = (/turf/open/floor/plating/beach/sand,/area/ruin/powered)
+"as" = (/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
+"at" = (/obj/item/weapon/tank/internals/oxygen,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
+"au" = (/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/turf/open/floor/plasteel/sandeffect,/area/ruin/powered)
+"av" = (/obj/machinery/door/airlock/hatch,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
+"aw" = (/obj/machinery/door/airlock/sandstone,/turf/open/floor/wood,/area/ruin/powered)
+"ax" = (/obj/structure/extinguisher_cabinet,/turf/closed/wall/mineral/sandstone{baseturf = /turf/open/floor/plating/beach/sand},/area/ruin/powered)
+"ay" = (/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/obj/machinery/door/airlock/hatch,/turf/open/floor/plasteel/sandeffect,/area/ruin/powered)
+"az" = (/obj/item/clothing/tie/dope_necklace,/obj/item/weapon/reagent_containers/spray/spraytan,/turf/open/floor/plating/beach/sand,/area/ruin/powered)
+"aA" = (/turf/open/floor/plating/beach/sand,/turf/open/floor/plasteel/sandeffect,/area/ruin/powered)
+"aB" = (/turf/open/floor/plasteel/asteroid/warning{baseturf = /turf/open/floor/plating/beach/sand; dir = 1; icon_state = "asteroidwarning"; tag = "icon-asteroidwarning (NORTH)"},/area/ruin/powered)
+"aC" = (/turf/open/floor/wood,/area/ruin/powered)
+"aD" = (/obj/structure/table,/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/item/weapon/storage/box/beakers,/turf/open/floor/wood,/area/ruin/powered)
+"aE" = (/obj/structure/table,/obj/machinery/reagentgrinder,/turf/open/floor/wood,/area/ruin/powered)
+"aF" = (/obj/machinery/vending/boozeomat{emagged = 1},/turf/open/floor/wood,/area/ruin/powered)
+"aG" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/rag,/turf/open/floor/wood,/area/ruin/powered)
+"aH" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/wood,/area/ruin/powered)
+"aI" = (/obj/structure/table,/obj/machinery/microwave,/turf/open/floor/wood,/area/ruin/powered)
+"aJ" = (/obj/structure/closet/crate/bin,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/trash/candy,/obj/item/toy/talking/owl,/turf/open/floor/plasteel/asteroid/warning{baseturf = /turf/open/floor/plating/beach/sand; dir = 1; icon_state = "asteroidwarning"; tag = "icon-asteroidwarning (NORTH)"},/area/ruin/powered)
+"aK" = (/turf/open/floor/plasteel/asteroid{baseturf = /turf/open/floor/plating/beach/sand},/area/ruin/powered)
+"aL" = (/obj/effect/mob_spawn/human/bartender/alive{name = "beach bum sleeper"},/turf/open/floor/wood,/area/ruin/powered)
+"aM" = (/obj/structure/reagent_dispensers/beerkeg,/turf/open/floor/wood,/area/ruin/powered)
+"aN" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/asteroid{baseturf = /turf/open/floor/plating/beach/sand},/area/ruin/powered)
+"aO" = (/obj/structure/stacklifter,/turf/open/floor/plating/beach/sand,/area/ruin/powered)
+"aP" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/ruin/powered)
+"aQ" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp,/turf/open/floor/wood,/area/ruin/powered)
+"aR" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/bottle/tequila,/turf/open/floor/wood,/area/ruin/powered)
+"aS" = (/obj/machinery/processor,/turf/open/floor/wood,/area/ruin/powered)
+"aT" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/asteroid{baseturf = /turf/open/floor/plating/beach/sand},/area/ruin/powered)
+"aU" = (/obj/effect/overlay/palmtree_l,/turf/open/floor/plating/beach/sand,/area/ruin/powered)
+"aV" = (/obj/effect/mob_spawn/human/beach/alive{flavour_text = "You're, like, totally a dudebro, bruh. Ch'yea. You came here, like, on spring break, hopin' to pick up some bangin' hot chicks, y'knaw?"; pocket2 = /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/dank; uniform = /obj/item/clothing/under/pants/youngfolksjeans},/turf/open/floor/plating/beach/sand,/area/ruin/powered)
+"aW" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/asteroid/warning{baseturf = /turf/open/floor/plating/beach/sand; dir = 1; icon_state = "asteroidwarning"; tag = "icon-asteroidwarning (NORTH)"},/area/ruin/powered)
+"aX" = (/obj/structure/closet/secure_closet/freezer/meat,/turf/open/floor/wood,/area/ruin/powered)
+"aY" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel/asteroid{baseturf = /turf/open/floor/plating/beach/sand},/area/ruin/powered)
+"aZ" = (/obj/effect/overlay/coconut,/turf/open/floor/plating/beach/sand,/area/ruin/powered)
+"ba" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/asteroid/basalt},/area/ruin/powered)
+"bb" = (/obj/structure/weightlifter,/turf/open/floor/plating/beach/sand,/area/ruin/powered)
+"bc" = (/turf/open/floor/wood,/obj/machinery/door/airlock/sandstone,/turf/open/floor/plasteel/sandeffect,/area/ruin/powered)
+"bd" = (/obj/structure/closet/secure_closet/freezer/kitchen,/turf/open/floor/wood,/area/ruin/powered)
+"be" = (/obj/vehicle/scooter/skateboard{dir = 4},/turf/open/floor/plating/beach/sand,/area/ruin/powered)
+"bf" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/asteroid/basalt},/area/ruin/powered)
+"bg" = (/obj/structure/sign/barsign,/turf/closed/wall/mineral/sandstone,/area/ruin/powered)
+"bh" = (/turf/closed/wall/mineral/sandstone,/area/ruin/powered)
+"bi" = (/turf/open/floor/plating/beach/sand{density = 1; opacity = 1},/area/ruin/powered)
+"bj" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 4},/turf/open/floor/plasteel/asteroid{baseturf = /turf/open/floor/plating/beach/sand},/area/ruin/powered)
+"bk" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/pastatomato,/turf/open/floor/plasteel/asteroid{baseturf = /turf/open/floor/plating/beach/sand},/area/ruin/powered)
+"bl" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 8},/turf/open/floor/plasteel/asteroid{baseturf = /turf/open/floor/plating/beach/sand},/area/ruin/powered)
+"bm" = (/mob/living/simple_animal/crab,/turf/open/floor/plating/beach/sand{density = 1; opacity = 1},/area/ruin/powered)
+"bn" = (/obj/structure/closet/athletic_mixed,/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/asteroid/basalt},/area/ruin/powered)
+"bo" = (/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/asteroid/basalt},/obj/structure/rack,/obj/item/clothing/shoes/sandal,/obj/item/clothing/shoes/sandal,/turf/open/floor/plasteel/sandeffect,/area/ruin/powered)
+"bp" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
+"bq" = (/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/asteroid/basalt},/obj/structure/closet/athletic_mixed,/turf/open/floor/plasteel/sandeffect,/area/ruin/powered)
+"br" = (/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/asteroid/basalt},/area/ruin/powered)
+"bs" = (/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/asteroid/basalt},/turf/open/floor/plasteel/sandeffect,/area/ruin/powered)
+"bt" = (/obj/machinery/door/airlock/hatch,/obj/structure/fans/tiny,/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/asteroid/basalt},/area/ruin/powered)
+"bu" = (/turf/open/floor/pod/light{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
+"bv" = (/turf/open/floor/pod/light{baseturf = /turf/open/floor/plating/lava/smooth},/turf/open/floor/plasteel/sandeffect,/area/ruin/powered)
+"bw" = (/obj/machinery/door/airlock/sandstone,/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/asteroid/basalt},/area/ruin/powered)
+"bx" = (/obj/structure/flora/rock,/turf/open/floor/plating/beach/sand,/area/ruin/powered)
+"by" = (/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/asteroid/basalt},/obj/machinery/door/airlock/sandstone,/turf/open/floor/plasteel/sandeffect,/area/ruin/powered)
+"bz" = (/mob/living/simple_animal/crab,/turf/open/floor/plating/beach/sand,/area/ruin/powered)
+"bA" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/bikehorn/airhorn,/obj/structure/table/wood,/obj/item/weapon/storage/firstaid,/obj/item/weapon/storage/firstaid/brute,/turf/open/floor/wood,/area/ruin/powered)
+"bB" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/structure/chair/stool,/turf/open/floor/wood,/area/ruin/powered)
+"bC" = (/obj/structure/table/wood,/obj/item/weapon/tank/internals/oxygen,/obj/item/weapon/pickaxe,/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/asteroid/basalt},/area/ruin/powered)
+"bD" = (/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/asteroid/basalt},/obj/structure/dresser,/turf/open/floor/plasteel/sandeffect,/area/ruin/powered)
+"bE" = (/obj/item/weapon/reagent_containers/spray/spraytan,/turf/open/floor/plating/beach/sand,/area/ruin/powered)
+"bF" = (/obj/item/toy/beach_ball,/turf/open/floor/plating/beach/sand,/area/ruin/powered)
+"bG" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/item/device/megaphone,/turf/open/floor/wood,/area/ruin/powered)
+"bH" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/effect/mob_spawn/human/beach/alive{flavour_text = "You're a spunky lifeguard! It's up to you to make sure nobody drowns or gets eaten by sharks and stuff."; has_id = 1; id_access = "Medical Doctor"; id_job = "Lifeguard"; mob_gender = "female"},/turf/open/floor/wood,/area/ruin/powered)
+"bI" = (/obj/structure/dresser,/turf/open/floor/pod/dark{baseturf = /turf/open/floor/plating/asteroid/basalt},/area/ruin/powered)
+"bJ" = (/obj/structure/chair,/turf/open/floor/plating/beach/sand,/area/ruin/powered)
+"bK" = (/obj/item/weapon/storage/backpack/dufflebag,/turf/open/floor/plating/beach/sand,/area/ruin/powered)
+"bL" = (/turf/open/floor/pod/light{baseturf = /turf/open/floor/plating/lava/smooth; density = 1},/obj/structure/lattice,/turf/open/floor/plasteel/sandeffect,/area/ruin/powered)
+"bM" = (/turf/open/floor/plasteel/stairs/old,/area/ruin/powered)
+"bN" = (/obj/structure/flora/ausbushes/reedbush,/turf/open/floor/plating/beach/sand,/area/ruin/powered)
+"bO" = (/obj/item/weapon/reagent_containers/spray/spraytan,/obj/item/device/camera,/turf/open/floor/plating/beach/sand,/area/ruin/powered)
+"bP" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/plating/beach/sand,/area/ruin/powered)
+"bQ" = (/obj/structure/flora/ausbushes/reedbush,/turf/open/floor/plating/beach/coastline_t,/area/ruin/powered)
+"bR" = (/turf/open/floor/plating/beach/coastline_t,/area/ruin/powered)
+"bS" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/open/floor/plating/beach/coastline_t,/area/ruin/powered)
+"bT" = (/turf/open/floor/plating/beach/coastline_b,/area/ruin/powered)
+"bU" = (/turf/open/floor/plating/beach/water,/area/ruin/powered)
+"bV" = (/obj/structure/flora/ausbushes/stalkybush,/turf/open/floor/plating/beach/water,/area/ruin/powered)
(1,1,1) = {"
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
-bccccccccccccccccccccccccccccb
-bcddddddddddddddddddddddddddcb
-bcdeeeeeeeeeeeeeeeeeeeeeeeedcb
-bcdeeeeefeeeeeeeeeeeeeeeeeedcb
-bcdeeeeeegggggggggggeeeeheedcb
-bcdeeeeeegijklmnnnogpqeeeeedcb
-bcdeeeeeqgnnnnnnnnrgsqqqqqedcb
-bcdeeeefqgttttttgnugvqqqqqedcb
-bcdeeeeeqqwwwwwwgnxgyqeeeeedcb
-bcdzzzzzqqqqqqqqAnBgqqzzzzedcb
-bcdeeeeeeqqqqqqqgCggqeDeeeedcb
-bcdeeeEeeeeeeqqqqqqqqeeeeeedcb
-bcdeeeeeeeeeeqqqeeeeeeeeFGedcb
-HcIeeeeeeeeeeqqqeeeeeeeeqqedcb
-bcdeeDeeeeeeeeeeeeeeeeeeeeedcb
-bcdeeeeefJeeeeeeeeeeeeeeeeedcb
-bcdeeKLeeLeeMeeLeLeLeLeLefedcb
-bcdeeeeeeeeeeeeeeeeeeeeeeeedcb
-bcdNNNNNNNNNNNNNNNNNNNNNNNNdcb
-bcdOOOOOOOOOOOOOOOOOOOOOOOOdcb
-bcdPPPPPPPPPPPPPPPPPPPPPPPPdcb
-bcdPPPPPPPPPPPPPPPPPPPPPPPPdcb
-bcdPPPPPPPPPPPPPPPPPPPPPPPPdcb
-bcdPPPPPPPPPPPPPPPPPPPPPPPPdcb
-bcdPPPPPPPPPPPPPPPPPPPPPPPPdcb
-bcddddddddddddddddddddddddddcb
-bccccccccccccccccccccccccccccb
-bbbbbQbbbbbbbbbbbbbbbbbbbbbbbb
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaabababacacacacacacacacacacacacabababaaaaaaaaaaaa
+aaaaaaaaabababadabaeafagahaiajakajalamanaoabapabababaaaaaaaa
+aaaaaaababaqararabasasasasatajauavasasauauabararaqababaaaaaa
+aaaaababadaraparababajawajaxajajajajajajayabaraparapababaaaa
+aaaaabapararazaraAaBajaCaDaEaFaGaHaIajaJaKaAararararadabaaaa
+aaababarararararaAaKajaCaCaLaCaCaCaMajaNaKaAarararararababaa
+aaabaparaOaraOaraAaKajaPaQaPaRajaCaSajaTaKaAaraUaraqarapabaa
+aaabarararaVararaAaKaBaWaWaWaWajaCaXajaYaKaAararaZarararabaa
+baabararbbarbbaraAaKaKaKaKaKaKbcaCbdajaKaKaAarararbearapabbf
+aaabararararararaAaKaKaKaKaKaKajbgbhajaKaKaAararararararabaa
+ababababbibibibiaAaKbjbkblaKaKaBaBaBaBaKaKaAbibmbibiabababab
+acbnbobpararararaAaKaKaKaKaKaKaKaKaKaKaKaKaAararararbpbqboab
+acbrbrbpararaUaraAaAaAaAaAaAaAaAaAaAaAaAaAaAararararbpbrbsab
+btbubvbpaAaraZararararararararararararararararararaAbpbububt
+abbvbvbwaAarararararararbxararararaZarararararararaAbybvbuab
+btbububpaAarararararararararararaUararararararararaAbpbvbvbt
+acbsbrbparbzarararbxarararararararararbAbBararaZararbpbsbrab
+acbCbDbpararararararararararbEararbFarbGbHarararararbpbIbCab
+ababababarbJarbJarbJarbJbKbJarbJarararbLbMarbJararaUabababab
+aaabadapbNarararbOararararararararbzarararbPararararapbNabaa
+baabbQbRbRbSbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbSbRbRbRabbf
+aaabbTbTbTbTbTbTbTbTbTbTbTbTbTbTbTbTbTbTbTbTbTbTbTbTbTbTabaa
+aaababbUbUbUbUbUbUbUbUbUbUbUbUbUbUbUbUbUbUbUbUbUbUbUbUababaa
+aaaaabbUbUbUbUbUbUbUbUbUbUbUbUbUbVbUbUbUbUbUbUbUbUbUbUabaaaa
+aaaaababbUbUbUbUbUbVbUbUbUbUbUbUbUbUbUbUbUbUbUbUbUbUababaaaa
+aaaaaaababbUbUbUbUbUbUbUbUbUbUbUbUbUbUbUbUbVbUbUbUababaaaaaa
+aaaaaaaaabababbUbUbUbUbUbUbUbUbUbUbUbUbUbUbUbUabababaaaaaaaa
+aaaaaaaaaaaaababababababababababababababababababaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"}
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_gym.dmm b/_maps/RandomRuins/LavaRuins/lavaland_gym.dmm
index 207eabfa613..155236dd586 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_gym.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_gym.dmm
@@ -5,48 +5,49 @@
"e" = (/obj/structure/closet,/mob/living/simple_animal/hostile/zombie,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
"f" = (/obj/structure/punching_bag,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
"g" = (/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
-"h" = (/obj/structure/window{icon_state = "window"; dir = 1},/obj/item/weapon/shard{icon_state = "medium"},/mob/living/simple_animal/hostile/zombie{name = "Boss of This Gym"},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
-"i" = (/obj/structure/window{icon_state = "window"; dir = 1},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
-"j" = (/obj/structure/window{icon_state = "window"; dir = 1},/obj/structure/window{icon_state = "window"; dir = 4},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
+"h" = (/obj/structure/window{icon_state = "window";dir = 1},/obj/item/weapon/shard{icon_state = "medium"},/mob/living/simple_animal/hostile/zombie{name = "Boss of This Gym"},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
+"i" = (/obj/structure/window{icon_state = "window";dir = 1},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
+"j" = (/obj/structure/window{icon_state = "window";dir = 1},/obj/structure/window{icon_state = "window";dir = 4},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
"k" = (/obj/effect/decal/cleanable/blood,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
"l" = (/obj/structure/weightlifter,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
-"m" = (/obj/structure/window{icon_state = "window"; dir = 8},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
-"n" = (/obj/structure/window{icon_state = "window"; dir = 4},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
+"m" = (/obj/structure/window{icon_state = "window";dir = 8},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
+"n" = (/obj/structure/window{icon_state = "window";dir = 4},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
"o" = (/obj/structure/stacklifter,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
-"p" = (/obj/structure/window,/obj/structure/window{icon_state = "window"; dir = 8},/obj/effect/decal/cleanable/blood,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
+"p" = (/obj/structure/window,/obj/structure/window{icon_state = "window";dir = 8},/obj/effect/decal/cleanable/blood,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
"q" = (/obj/structure/window,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
"r" = (/obj/structure/window,/obj/item/weapon/shard,/mob/living/simple_animal/hostile/zombie{name = "Leatherhead"},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
-"s" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-splatter4 (NORTH)"; icon_state = "splatter4"; dir = 1},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
-"t" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-splatter6 (EAST)"; icon_state = "splatter6"; dir = 4},/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (NORTH)"; icon_state = "tracks"; dir = 1},/obj/effect/decal/cleanable/blood/tracks{tag = "icon-gib3"; icon_state = "gib3"},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
-"u" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/ruin/powered)
-"v" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (EAST)"; icon_state = "tracks"; dir = 4},/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (NORTHEAST)"; icon_state = "tracks"; dir = 5},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
-"w" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (EAST)"; icon_state = "tracks"; dir = 4},/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (SOUTHEAST)"; icon_state = "tracks"; dir = 6},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
-"x" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-splatter5"; icon_state = "splatter5"},/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (EAST)"; icon_state = "tracks"; dir = 4},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
-"y" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-splatter4 (NORTH)"; icon_state = "splatter4"; dir = 1},/obj/effect/decal/cleanable/blood/tracks{tag = "icon-splatter6 (NORTH)"; icon_state = "splatter6"; dir = 1},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
-"z" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-splatter5"; icon_state = "splatter5"},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
+"s" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-splatter4 (NORTH)";icon_state = "splatter4";dir = 1},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
+"t" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-splatter6 (EAST)";icon_state = "splatter6";dir = 4},/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (NORTH)";icon_state = "tracks";dir = 1},/obj/effect/decal/cleanable/blood/tracks{tag = "icon-gib3";icon_state = "gib3"},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
+"u" = (/obj/machinery/door/airlock/external,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
+"v" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (EAST)";icon_state = "tracks";dir = 4},/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (NORTHEAST)";icon_state = "tracks";dir = 5},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
+"w" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (EAST)";icon_state = "tracks";dir = 4},/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (SOUTHEAST)";icon_state = "tracks";dir = 6},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
+"x" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-splatter5";icon_state = "splatter5"},/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (EAST)";icon_state = "tracks";dir = 4},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
+"y" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-splatter4 (NORTH)";icon_state = "splatter4";dir = 1},/obj/effect/decal/cleanable/blood/tracks{tag = "icon-splatter6 (NORTH)";icon_state = "splatter6";dir = 1},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
+"z" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-splatter5";icon_state = "splatter5"},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
"A" = (/mob/living/simple_animal/hostile/zombie,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
-"B" = (/obj/structure/window{icon_state = "window"; dir = 1},/obj/machinery/shower,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
-"C" = (/obj/structure/window{icon_state = "window"; dir = 1},/obj/machinery/shower,/mob/living/simple_animal/hostile/zombie,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
+"B" = (/obj/structure/window{icon_state = "window";dir = 1},/obj/machinery/shower,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
+"C" = (/obj/structure/window{icon_state = "window";dir = 1},/obj/machinery/shower,/mob/living/simple_animal/hostile/zombie,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
+"D" = (/turf/template_noop,/area/template_noop)
(1,1,1) = {"
-aaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaabab
-aaaaaccccccccccccbbb
-aaaaacdeddddddedcbbb
-aaaaacfgghiijkglcbaa
-aaaaacfggmgkngglcbbb
-aaaaacfggmggnggocbbb
-aaaaacfggpqqrggocstb
-aaaaacgkgggggggkuvwx
-aaaaacuucccccccccyzb
-aaaaacgAgggggggAcbbb
-aaaaacggggggAgggcbbb
-aaaaacBCBBggBBBBcbaa
-aaaaacgggggggAggcbaa
-aaaaaccccccccccccbaa
-aaaaaaaaaaaaaaaaaabb
-aaaaaaaaaaaaaaaabbbb
-aaaaaaaaaaaaaaaabbba
+DDDDDDDDDDDDDDDDDDDD
+DDDDDDDDDDDDDDDDDDDD
+DDDDDDDDDDDDDDDDDDDD
+DDDDDDDDDDDDDDDDDDDD
+DDDccccccccccccDDDDD
+DDDcdeddddddedcbDDDD
+DDDcfgghiijkglcbaDDD
+DDDcfggmgkngglcbbbDD
+DDDcfggmggnggocbbbDD
+DDDcfggpqqrggocstbbD
+DDDcgkgggggggkuvwxbD
+DDDcuucccccccccyzbbD
+DDDcgAgggggggAcbbbbD
+DDDcggggggAgggcbbbDD
+DDDcBCBBggBBBBcbbDDD
+DDDcgggggggAggcbDDDD
+DDDccccccccccccbDDDD
+DDDDDDDDDDDDDDDDDDDD
+DDDDDDDDDDDDDDDDDDDD
+DDDDDDDDDDDDDDDDDDDD
"}
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm
index e90e8f60831..6249fddfb88 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm
@@ -7,11 +7,11 @@
"ag" = (/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"ah" = (/obj/structure/toilet,/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"ai" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/cmo{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
-"aj" = (/obj/structure/table/wood,/obj/item/weapon/storage/backpack/dufflebag/med,/turf/open/floor/plasteel/cmo{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
+"aj" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp,/turf/open/floor/plasteel/cmo{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"ak" = (/obj/structure/table/wood,/obj/item/device/taperecorder,/obj/item/weapon/pen/blue,/turf/open/floor/plasteel/cmo{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"al" = (/obj/structure/table/wood,/obj/item/toy/carpplushie,/turf/open/floor/plasteel/cmo{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"am" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel/cmo{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
-"an" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 4},/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
+"an" = (/obj/machinery/sleeper{icon_state = "sleeper-open";dir = 4},/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"ao" = (/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"ap" = (/obj/structure/table,/obj/item/weapon/circular_saw,/obj/item/weapon/scalpel{pixel_y = 12},/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"aq" = (/obj/structure/table,/obj/item/weapon/cautery{pixel_x = 4},/obj/item/weapon/surgicaldrill,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
@@ -19,11 +19,11 @@
"as" = (/turf/open/floor/plasteel/cmo{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"at" = (/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/plasteel/cmo{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"au" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/plasteel/cmo{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
-"av" = (/obj/structure/table/reinforced,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/item/clothing/suit/apron/surgical,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
+"av" = (/obj/item/weapon/reagent_containers/glass/rag,/obj/item/weapon/reagent_containers/spray/cleaner,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface;dir = 8;icon_state = "blue"},/area/ruin/powered)
"aw" = (/obj/structure/bed/roller,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"ax" = (/obj/structure/closet/crate/trashcart,/obj/item/weapon/storage/bag/trash,/obj/item/trash/cheesie,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/bodybag,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka,/turf/open/floor/grass{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/lavaland/surface/outdoors)
-"ay" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
-"az" = (/obj/structure/noticeboard{dir = 1; pixel_y = -27},/obj/item/weapon/paper{info = "Nothing of interest to report."; name = "Important Notice - Mrs. Henderson"},/turf/open/floor/plasteel/cmo{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
+"ay" = (/obj/structure/sink{icon_state = "sink";dir = 8;pixel_x = -12;pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/turf/open/floor/plasteel/bar{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
+"az" = (/obj/structure/noticeboard{dir = 1;pixel_y = -27},/obj/item/weapon/paper{info = "Nothing of interest to report.";name = "Important Notice - Mrs. Henderson"},/turf/open/floor/plasteel/cmo{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"aA" = (/obj/structure/closet/secure_closet/medical2,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"aB" = (/obj/machinery/computer/operating,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"aC" = (/obj/structure/table/optable,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
@@ -35,14 +35,14 @@
"aI" = (/turf/closed/wall/shuttle/smooth,/area/ruin/powered)
"aJ" = (/turf/open/floor/plasteel/grimy{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/lavaland/surface/outdoors)
"aK" = (/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
-"aL" = (/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1; icon_state = "blue"},/area/ruin/powered)
-"aM" = (/obj/effect/mob_spawn/human/doctor/alive{flavour_text = "You were putting in your hours as a vet in the local animal hospital when a massive bluespace translocation shunted you across the galaxy. Can you survive on this desolate wasteland..?"; id_job = "Veterinarian"},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1; icon_state = "blue"},/area/ruin/powered)
-"aN" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1; icon_state = "blue"},/area/ruin/powered)
-"aO" = (/obj/machinery/iv_drip,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1; icon_state = "blue"},/area/ruin/powered)
-"aP" = (/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 0; icon_state = "blue"},/area/ruin/powered)
-"aQ" = (/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8; icon_state = "bluecorner"},/area/ruin/powered)
-"aR" = (/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 4; icon_state = "blue"},/area/ruin/powered)
-"aS" = (/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8; icon_state = "blue"},/area/ruin/powered)
+"aL" = (/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface;dir = 1;icon_state = "blue"},/area/ruin/powered)
+"aM" = (/obj/effect/mob_spawn/human/doctor/alive{flavour_text = "You were putting in your hours as a vet in the local animal hospital when a massive bluespace translocation shunted you across the galaxy. Can you survive on this desolate wasteland..?";id_job = "Veterinarian"},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface;dir = 1;icon_state = "blue"},/area/ruin/powered)
+"aN" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface;dir = 1;icon_state = "blue"},/area/ruin/powered)
+"aO" = (/obj/machinery/iv_drip,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface;dir = 1;icon_state = "blue"},/area/ruin/powered)
+"aP" = (/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface;dir = 0;icon_state = "blue"},/area/ruin/powered)
+"aQ" = (/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface;dir = 8;icon_state = "bluecorner"},/area/ruin/powered)
+"aR" = (/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface;dir = 4;icon_state = "blue"},/area/ruin/powered)
+"aS" = (/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface;dir = 8;icon_state = "blue"},/area/ruin/powered)
"aT" = (/obj/structure/closet,/obj/effect/decal/cleanable/cobweb,/obj/item/ammo_casing/shotgun/dart,/obj/item/ammo_casing/shotgun/dart,/obj/item/weapon/gun/projectile/revolver/doublebarrel{desc = "For putting critters out to pasture."},/obj/item/ammo_casing/shotgun/buckshot,/obj/item/weapon/storage/box/bodybags,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"aU" = (/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"aV" = (/obj/structure/closet/secure_closet/medical1,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
@@ -50,7 +50,7 @@
"aX" = (/obj/item/stack/cable_coil/random,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"aY" = (/obj/structure/bodycontainer/morgue,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"aZ" = (/obj/effect/decal/cleanable/ash,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
-"ba" = (/obj/structure/table/glass,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/reagent_containers/glass/beaker,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
+"ba" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/storage/backpack/dufflebag/med,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"bb" = (/obj/structure/table/reinforced,/obj/item/device/laser_pointer,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"bc" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"bd" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/gloves,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
@@ -61,63 +61,72 @@
"bi" = (/obj/item/toy/cattoy,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"bj" = (/obj/structure/table/glass,/obj/item/weapon/lazarus_injector,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"bk" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
-"bl" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/cookie{name = "doggie biscuit"},/obj/item/weapon/reagent_containers/food/snacks/cookie{name = "doggie biscuit"},/obj/item/weapon/reagent_containers/food/snacks/cookie{name = "doggie biscuit"},/obj/item/weapon/reagent_containers/food/snacks/cookie{name = "doggie biscuit"},/obj/item/weapon/reagent_containers/food/snacks/cookie{name = "doggie biscuit"},/obj/item/weapon/reagent_containers/food/snacks/cookie{name = "doggie biscuit"},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1; icon_state = "blue"},/area/ruin/powered)
-"bm" = (/obj/structure/chair/comfy/teal{dir = 8},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 1; icon_state = "blue"},/area/ruin/powered)
+"bl" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/cookie{name = "doggie biscuit"},/obj/item/weapon/reagent_containers/food/snacks/cookie{name = "doggie biscuit"},/obj/item/weapon/reagent_containers/food/snacks/cookie{name = "doggie biscuit"},/obj/item/weapon/reagent_containers/food/snacks/cookie{name = "doggie biscuit"},/obj/item/weapon/reagent_containers/food/snacks/cookie{name = "doggie biscuit"},/obj/item/weapon/reagent_containers/food/snacks/cookie{name = "doggie biscuit"},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface;dir = 1;icon_state = "blue"},/area/ruin/powered)
+"bm" = (/obj/structure/chair/comfy/teal{dir = 8},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface;dir = 1;icon_state = "blue"},/area/ruin/powered)
"bn" = (/obj/structure/bed/dogbed,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"bo" = (/obj/item/weapon/reagent_containers/glass/bowl,/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
-"bp" = (/obj/structure/closet/crate/bin,/obj/item/trash/pistachios,/obj/item/weapon/lipstick/random,/obj/item/seeds/apple,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8; icon_state = "blue"},/area/ruin/powered)
+"bp" = (/obj/structure/closet/crate/bin,/obj/item/trash/pistachios,/obj/item/weapon/lipstick/random,/obj/item/seeds/apple,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface;dir = 8;icon_state = "blue"},/area/ruin/powered)
"bq" = (/obj/structure/filingcabinet/chestdrawer/wheeled,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"br" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"bs" = (/obj/structure/table/reinforced,/obj/item/weapon/phone,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"bt" = (/obj/structure/flora/kirbyplants,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
-"bu" = (/obj/structure/chair/comfy/teal{dir = 8},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 4; icon_state = "blue"},/area/ruin/powered)
-"bv" = (/obj/effect/mob_spawn/mouse{dir = 4; flavour_text = "You're a mousey! You're getting pretty old as mice go, and you haven't been feeling well as of late. Your master loves you a lot so he took you to this place so you can get better! You can't wait to see him again!"; mob_name = "Stallman Jr."},/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
+"bu" = (/obj/structure/chair/comfy/teal{dir = 8},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface;dir = 4;icon_state = "blue"},/area/ruin/powered)
+"bv" = (/obj/effect/mob_spawn/mouse{dir = 4;flavour_text = "You're a mousey! You're getting pretty old as mice go, and you haven't been feeling well as of late. Your master loves you a lot so he took you to this place so you can get better! You can't wait to see him again!";mob_name = "Stallman Jr."},/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"bw" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
-"bx" = (/obj/machinery/door/airlock/medical{name = "Patient Room"; req_access_txt = "5"},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
-"by" = (/obj/structure/table/reinforced,/obj/item/device/flashlight/lamp,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8; icon_state = "blue"},/area/ruin/powered)
+"bx" = (/obj/machinery/door/airlock/medical{name = "Patient Room";req_access_txt = "5"},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
+"by" = (/obj/structure/table/reinforced,/obj/item/device/flashlight/lamp,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface;dir = 8;icon_state = "blue"},/area/ruin/powered)
"bz" = (/obj/structure/table/reinforced,/obj/item/clothing/glasses/regular,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"bA" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/obj/item/weapon/pen/fourcolor,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"bB" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/hug,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"bC" = (/obj/structure/chair/office/light{dir = 1},/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
-"bD" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/bottle/cyanide{desc = "A cocktail of chemotherpy drugs intended to treat bladder cancer."; name = "MVAC regimen"},/obj/item/weapon/reagent_containers/syringe,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
-"bE" = (/obj/structure/closet/crate/critter,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8; icon_state = "blue"},/area/ruin/powered)
-"bF" = (/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 10; icon_state = "blue"},/area/ruin/powered)
-"bG" = (/obj/structure/chair/comfy/teal{dir = 8},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 6; icon_state = "blue"},/area/ruin/powered)
-"bH" = (/obj/item/weapon/reagent_containers/glass/rag,/obj/structure/table,/obj/item/weapon/reagent_containers/spray/cleaner,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 8; icon_state = "blue"},/area/ruin/powered)
+"bD" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/bottle/cyanide{desc = "A cocktail of chemotherpy drugs intended to treat bladder cancer.";name = "MVAC regimen"},/obj/item/weapon/reagent_containers/syringe,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
+"bE" = (/obj/structure/closet/crate/critter,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface;dir = 8;icon_state = "blue"},/area/ruin/powered)
+"bF" = (/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface;dir = 10;icon_state = "blue"},/area/ruin/powered)
+"bG" = (/obj/structure/chair/comfy/teal{dir = 8},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface;dir = 6;icon_state = "blue"},/area/ruin/powered)
+"bH" = (/obj/structure/table,/obj/item/weapon/tank/internals/oxygen,/obj/item/weapon/tank/internals/oxygen,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface;dir = 8;icon_state = "blue"},/area/ruin/powered)
"bI" = (/obj/structure/sign/bluecross_2{name = "animal hospital"},/turf/closed/wall/shuttle/smooth{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"bJ" = (/obj/machinery/door/airlock/glass_large,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"bK" = (/obj/item/weapon/reagent_containers/glass/bowl,/obj/item/weapon/reagent_containers/food/snacks/grown/wheat,/obj/item/weapon/reagent_containers/food/snacks/grown/wheat,/obj/item/weapon/reagent_containers/food/snacks/grown/wheat,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"bL" = (/obj/vehicle/scooter/skateboard{dir = 4},/turf/open/floor/grass{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/lavaland/surface/outdoors)
"bM" = (/obj/structure/flora/ausbushes/sunnybush,/turf/open/floor/grass{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/lavaland/surface/outdoors)
-"bN" = (/obj/effect/mob_spawn/cow{dir = 4; flavour_text = "You're a cow. You've lived a pampered life as a prized show heifer, a real blue-ribbon winner. After showing signs of a minor respiratory infection, your master took you to the hospital right away. He'd better come back soon, you're getting quite impatient."; mob_name = "Flossie"},/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
+"bN" = (/obj/effect/mob_spawn/cow{dir = 4;flavour_text = "You're a cow. You've lived a pampered life as a prized show heifer, a real blue-ribbon winner. After showing signs of a minor respiratory infection, your master took you to the hospital right away. He'd better come back soon, you're getting quite impatient.";mob_name = "Flossie"},/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"bO" = (/obj/structure/flora/ausbushes/ppflowers,/turf/open/floor/grass{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/lavaland/surface/outdoors)
"bP" = (/obj/structure/chair/office/light{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
"bQ" = (/obj/structure/table/glass,/obj/item/clothing/tie/petcollar,/obj/item/weapon/pen/blue,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
-"bR" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/melee/baton/cattleprod,/obj/item/weapon/stock_parts/cell/high,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 10; icon_state = "blue"},/area/ruin/powered)
-"bS" = (/obj/structure/closet,/obj/item/weapon/defibrillator/loaded,/obj/item/weapon/storage/belt/medical,/obj/item/clothing/glasses/hud/health,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 6; icon_state = "blue"},/area/ruin/powered)
+"bR" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/melee/baton/cattleprod,/obj/item/weapon/stock_parts/cell/high,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface;dir = 10;icon_state = "blue"},/area/ruin/powered)
+"bS" = (/obj/structure/closet,/obj/item/weapon/defibrillator/loaded,/obj/item/weapon/storage/belt/medical,/obj/item/clothing/glasses/hud/health,/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface;dir = 6;icon_state = "blue"},/area/ruin/powered)
"bT" = (/obj/item/weapon/pickaxe,/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
"bU" = (/obj/effect/decal/remains/human,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
"bV" = (/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
"bW" = (/turf/open/floor/grass,/area/lavaland/surface/outdoors)
+"cf" = (/obj/machinery/sleeper{icon_state = "sleeper-open";dir = 4},/turf/open/floor/plasteel{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface;dir = 1;icon_state = "blue"},/area/ruin/powered)
+"ce" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1},/obj/machinery/portable_atmospherics/pump,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
+"cd" = (/obj/structure/table/reinforced,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/item/clothing/suit/apron/surgical,/turf/open/floor/plasteel/white{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/space)
+"cc" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/closed/wall/shuttle/smooth{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/ruin/powered)
+"cb" = (/obj/machinery/atmospherics/components/binary/valve,/turf/open/floor/grass{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/lavaland/surface/outdoors)
+"ca" = (/obj/machinery/atmospherics/components/unary/tank/air{dir = 4},/turf/open/floor/grass{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/lavaland/surface/outdoors)
+"bZ" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 10},/turf/open/floor/grass{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/lavaland/surface/outdoors)
+"bY" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 1},/turf/open/floor/grass{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/lavaland/surface/outdoors)
+"bX" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 6},/turf/open/floor/grass{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface},/area/lavaland/surface/outdoors)
(1,1,1) = {"
aaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaa
-aaaaaaaaaaaaababababacacabacababaaaaaaaaaa
-aaaaaaaaaaaaababacabacacacababababaaaaaaaa
-aaaaaaaaaaababacacacacadacacacababaaaaaaaa
-aaaaaaaaaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaa
-aaaaababaeagahaeaiajakalamaeanaoapaqaraeaa
-aaaaababaeagagaeasatasauasaeavaoaoaoawaeaa
+aaaaaaaaaaaaababababacacabacabababaaaaaaaa
+aaaaaaaaaaaaababacabacacacbXbYbZabababaaaa
+aaaaaaaaaaababacacacacadaccacacbacacababaa
+aaaaaaaaaeaeaeaeaeafafafaeaeaeccaeaeaeaeaa
+aaaaababaeagahaeaiajakalamaecdceapaqaraeaa
+aaaaababaeagagaeasatasauasaeanaoaoaoawaeaa
aaababaxaeayagaeasasazasasaeaAaoaBaCaDaeaa
abababacaEaeaFaGaFaeaeaeaFaHaeaFaIaIaIaeaa
-ababaJaJaFaKaKaLaKaMaMaMaKaLaLaKaLaNaOaeaa
+ababaJaJaFaKaKaLaKaMaMaMaKaLcfaKaLaNaOaeaa
abababacaeaKaKaPaPaKaPaKaPaPaPaKaPaQaRaeaa
aaababaeaEaFaEaeaeaFaeaFaeaeaEaFaeaSaRaeaa
ababacaeaTaUaeaVaWaoaeaoaWaVaeaXaeaSaRaeaa
aaababaeaYaZaebaaobbaebcaobdaebeaeaSaRaeaa
aaaaaaaebfbgaebhbiaoaeaoaobjaebkaeaSaRaeaa
aaaaaaaeaEaFaEaGaeaFaeaFaeaeaeaeaEaSaRaeaa
-aaaaaaaaaeaKaLaLaLaKblaKbmaebnboafaSaRaeaa
+aaaaaaaaaeaKaLaLaLaKblaKbmaebnboafavaRaeaa
aaaaaaaaaebpbqbrbsaKbtaKbuaebvbwbxaKaRaeaa
aaaaaaaaaebybzbAbBaKaKaKbuaebCbDaebEaRaeaa
aaaaaaaaaebFaPaPaPaKaKaPbGaeaeaeaEbHaRaeaa
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm
index 91d2e091cae..0d13efc45a1 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm
@@ -11,19 +11,19 @@
"k" = (/obj/effect/mob_spawn/human/corpse/damaged,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
"l" = (/obj/structure/closet/crate/radiation,/obj/item/device/flashlight/lantern,/obj/item/device/flashlight/lantern,/obj/item/device/flashlight/lantern,/obj/item/device/flashlight/flare,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
"m" = (/obj/structure/closet/crate/medical,/obj/item/device/malf_upgrade,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
-"n" = (/obj/structure/closet/crate/hydroponics,/obj/item/weapon/storage/belt,/obj/item/weapon/scythe,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
+"n" = (/obj/structure/closet/crate/hydroponics,/obj/item/weapon/storage/belt,/obj/item/weapon/scythe,/obj/item/seeds/glowshroom,/obj/item/seeds/glowshroom,/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
"o" = (/obj/item/device/flashlight/lantern,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
"p" = (/obj/item/device/flashlight/seclite,/obj/item/device/flashlight,/obj/structure/closet/crate,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
"q" = (/obj/item/device/flashlight/flare,/obj/item/device/flashlight/seclite,/obj/item/device/flashlight/seclite,/obj/item/device/flashlight,/obj/structure/closet/crate,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
"r" = (/turf/closed/wall/mineral/iron{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
"s" = (/obj/item/weapon/twohanded/spear,/obj/structure/mineral_door/iron,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
"t" = (/obj/structure/mineral_door/iron,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
-"u" = (/obj/structure/closet/crate,/obj/item/weapon/rcd/loaded,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
-"v" = (/obj/structure/closet/crate,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
+"u" = (/obj/structure/closet/crate/engineering,/obj/item/weapon/rcd/loaded,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
+"v" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/reagent_containers/blood/random,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
"w" = (/obj/machinery/the_singularitygen,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
-"x" = (/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_left"; name = "skeletal minibar"},/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
-"y" = (/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_right"; name = "skeletal minibar"},/obj/item/clothing/head/helmet/roman/legionaire,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
-"z" = (/obj/item/weapon/shovel,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
+"x" = (/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi';icon_state = "minibar_left";name = "skeletal minibar"},/obj/item/stack/sheet/cloth/ten,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
+"y" = (/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi';icon_state = "minibar_right";name = "skeletal minibar"},/obj/item/clothing/head/helmet/roman/legionaire,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
+"z" = (/obj/item/weapon/shovel,/obj/effect/decal/cleanable/cobweb2,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
"A" = (/obj/structure/closet/crate,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/o2,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
"B" = (/obj/structure/table_frame,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
"C" = (/obj/structure/table/optable,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
@@ -32,12 +32,16 @@
"F" = (/obj/structure/closet/crate/miningcar,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
"G" = (/obj/item/weapon/twohanded/spear,/obj/structure/rack,/obj/item/weapon/twohanded/spear,/obj/item/weapon/twohanded/spear,/obj/item/weapon/twohanded/spear,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
"H" = (/obj/item/weapon/twohanded/spear,/obj/structure/rack,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
-"I" = (/obj/structure/mineral_door/iron,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth; blocks_air = 1},/area/ruin/unpowered)
+"I" = (/obj/structure/mineral_door/iron,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth;blocks_air = 1},/area/ruin/unpowered)
"J" = (/turf/closed/wall/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/lavaland/surface/outdoors)
-"K" = (/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth; initial_gas_mix = "o2=13;n2=24;TEMP=300"},/area/lavaland/surface/outdoors)
+"K" = (/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth;initial_gas_mix = "o2=13;n2=24;TEMP=300"},/area/lavaland/surface/outdoors)
"L" = (/obj/item/weapon/twohanded/spear,/obj/structure/table,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
-"M" = (/obj/item/weapon/pickaxe,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth; initial_gas_mix = "o2=13;n2=24;TEMP=300"},/area/lavaland/surface/outdoors)
+"M" = (/obj/item/weapon/pickaxe,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth;initial_gas_mix = "o2=13;n2=24;TEMP=300"},/area/lavaland/surface/outdoors)
"N" = (/obj/structure/ore_box,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
+"R" = (/mob/living/simple_animal/hostile/asteroid/gutlunch/gubbuck,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
+"Q" = (/mob/living/simple_animal/hostile/asteroid/gutlunch/guthen,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
+"P" = (/obj/machinery/iv_drip,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
+"O" = (/obj/item/weapon/reagent_containers/glass/bowl,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered)
(1,1,1) = {"
aabaaaaaaaaabb
@@ -45,13 +49,13 @@ aaaaaaaaaaaabb
aaaaccccccaaab
aaaacdefgcaaab
aaaacehifcaaab
-baaccifffccaaa
+baacciffOccaaa
baacjfkfflcaaa
aaacmnfopqcaaa
aaccrrstrrccaa
aacuvwffxyzcaa
-aacAfffkffBcaa
-aacCfDffffEcaa
+aacAPffkQfBcaa
+aacCRDffffEcaa
bFrGfHrIrrrraa
JKrLLHrKbKMNaa
JKrrrrrbbbbbaa
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm
index 64e43646095..fbf9af94e17 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm
@@ -1,62 +1,103 @@
-"a" = (/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
-"b" = (/turf/closed/wall/r_wall,/area/ruin/powered/snow_biodome)
-"c" = (/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
-"d" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
-"e" = (/turf/open/floor/plating/ice,/area/ruin/powered/snow_biodome)
-"f" = (/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
-"g" = (/obj/structure/flora/rock/icy,/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
-"h" = (/obj/structure/flora/bush,/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
-"i" = (/turf/closed/wall/mineral/wood,/area/ruin/powered/snow_biodome)
-"j" = (/obj/structure/dresser,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome)
-"k" = (/obj/structure/bed,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome)
-"l" = (/obj/structure/bookcase/random,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome)
-"m" = (/obj/structure/flora/tree/pine,/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
-"n" = (/obj/structure/flora/grass/both,/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
-"o" = (/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome)
-"p" = (/obj/structure/flora/tree/dead,/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
-"q" = (/obj/machinery/door/airlock/wood,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome)
-"r" = (/obj/structure/chair/comfy/brown{tag = "icon-comfychair (EAST)"; icon_state = "comfychair"; dir = 4},/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome)
-"s" = (/obj/structure/table/wood,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome)
-"t" = (/obj/structure/chair/comfy/brown{tag = "icon-comfychair (WEST)"; icon_state = "comfychair"; dir = 8},/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome)
-"u" = (/turf/closed/wall/mineral/wood{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
-"v" = (/obj/structure/displaycase/captain,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome)
-"w" = (/obj/structure/bed/dogbed,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome)
-"x" = (/obj/structure/flora/tree/pine/xmas,/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
-"y" = (/obj/machinery/door/airlock/hatch,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth; blocks_air = 1},/area/ruin/powered/snow_biodome)
-"z" = (/obj/machinery/door/airlock/silver,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
-"A" = (/obj/structure/flora/rock/pile/icy,/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
-"B" = (/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "bridge"},/area/ruin/powered/snow_biodome)
-"C" = (/turf/closed/wall/r_wall{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"aa" = (/turf/template_noop,/area/template_noop)
+"ab" = (/turf/closed/wall/r_wall{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"ac" = (/obj/item/stack/medical/ointment,/obj/structure/table,/obj/item/stack/medical/bruise_pack,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"ad" = (/obj/structure/table,/obj/item/stack/medical/gauze,/obj/item/stack/medical/gauze,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"ae" = (/obj/machinery/power/smes,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"af" = (/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"ag" = (/obj/structure/reagent_dispensers/beerkeg,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"ah" = (/obj/item/weapon/reagent_containers/food/drinks/mug,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"ai" = (/obj/machinery/shower,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"aj" = (/obj/structure/sink,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"ak" = (/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"al" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"am" = (/obj/machinery/door/airlock/hatch,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"an" = (/obj/structure/toilet{dir = 8},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"ao" = (/turf/open/floor/plating/ice,/area/ruin/powered/snow_biodome)
+"ap" = (/obj/structure/flora/rock/icy,/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"aq" = (/turf/closed/wall/mineral/wood,/area/ruin/powered/snow_biodome)
+"ar" = (/obj/machinery/door/airlock/wood,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"as" = (/obj/structure/fans,/turf/closed/wall/mineral/wood,/area/ruin/powered/snow_biodome)
+"at" = (/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome)
+"au" = (/obj/structure/bed,/obj/item/weapon/bedsheet/blue,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome)
+"av" = (/obj/structure/bookcase/random,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome)
+"aw" = (/obj/structure/table/wood,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome)
+"ax" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/beans,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome)
+"ay" = (/obj/structure/closet/crate/trashcart,/obj/item/trash/semki,/obj/item/trash/candy,/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"az" = (/obj/structure/flora/tree/pine,/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"aA" = (/obj/structure/chair/comfy/brown{tag = "icon-comfychair (EAST)"; icon_state = "comfychair"; dir = 4},/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome)
+"aB" = (/obj/structure/flora/rock/pile/icy,/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"aC" = (/obj/structure/flora/tree/dead,/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"aD" = (/obj/machinery/door/airlock/wood,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome)
+"aE" = (/obj/structure/extinguisher_cabinet,/turf/closed/wall/mineral/wood,/area/ruin/powered/snow_biodome)
+"aF" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/mug/coco,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome)
+"aG" = (/obj/structure/chair/comfy/brown{tag = "icon-comfychair (WEST)"; icon_state = "comfychair"; dir = 8},/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome)
+"aH" = (/mob/living/simple_animal/hostile/skeleton/eskimo,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome)
+"aI" = (/obj/structure/flora/bush,/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"aJ" = (/obj/vehicle/atv,/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"aK" = (/turf/closed/wall/mineral/wood{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"aL" = (/obj/structure/displaycase/captain,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome)
+"aM" = (/turf/open/floor/carpet{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"aN" = (/obj/structure/bed/dogbed,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "floor"},/area/ruin/powered/snow_biodome)
+"aO" = (/obj/machinery/door/airlock/glass_large,/obj/structure/fans/tiny,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome)
+"aP" = (/obj/structure/fans/tiny,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome)
+"aQ" = (/obj/structure/flora/grass/both,/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"aR" = (/obj/structure/flora/tree/pine/xmas,/turf/open/floor/plating/asteroid/snow{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"aS" = (/obj/structure/rack,/obj/item/clothing/suit/hooded/wintercoat/science,/obj/item/clothing/shoes/winterboots,/obj/item/clothing/gloves/fingerless,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome)
+"aT" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"aU" = (/obj/machinery/vending/coffee,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome)
+"aV" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome)
+"aW" = (/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome)
+"aX" = (/turf/open/floor/pod/light,/area/ruin/powered/snow_biodome)
+"aY" = (/obj/structure/chair/stool,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome)
+"aZ" = (/obj/machinery/door/airlock/hatch,/obj/structure/fans/tiny,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome)
+"ba" = (/obj/machinery/door/airlock/silver,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome)
+"bb" = (/obj/machinery/door/airlock/silver,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered/snow_biodome)
+"bc" = (/obj/structure/table,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome)
+"bd" = (/obj/structure/table,/obj/item/weapon/pen,/obj/item/weapon/paper_bin,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome)
+"be" = (/obj/structure/table,/obj/machinery/microwave,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome)
+"bf" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome)
+"bg" = (/obj/item/weapon/twohanded/required/chainsaw,/obj/structure/closet,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome)
+"bh" = (/obj/structure/filingcabinet,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome)
+"bi" = (/obj/machinery/computer/monitor,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome)
+"bj" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome)
+"bk" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome)
+"bl" = (/turf/open/floor/wood{baseturf = /turf/open/floor/plating/lava/smooth; name = "bridge"},/area/ruin/powered/snow_biodome)
+"bm" = (/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/ruin/powered/snow_biodome)
+"bn" = (/obj/item/clothing/mask/balaclava,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome)
+"bo" = (/obj/structure/table,/obj/item/weapon/storage/fancy/cigarettes/cigpack_carp,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome)
+"bp" = (/obj/structure/table,/obj/item/weapon/pen,/obj/item/weapon/paper,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome)
+"bq" = (/obj/machinery/light/built{dir = 1},/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome)
+"br" = (/obj/structure/fans/tiny,/obj/machinery/door/airlock/glass_large,/turf/open/floor/pod/dark,/area/ruin/powered/snow_biodome)
(1,1,1) = {"
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
-bccccccccccccccccccccccccccccb
-bcddddddddddddddddddddddddddcb
-bcdeefgfffffffffhiiiiiiiiiidcb
-bcdfeeffffhfffffhijkilllllidcb
-bcdfeeeemfffmffnfiooioooooidcb
-bcdpfeeeffpffffffiqiiorstoidcb
-bcdfheeeefffhffffioooorstoidcb
-bcdhfffeefffhmhfnuvoooooowidcb
-bcdffhfeeefffffffiiiiqqiiiidcb
-bcdfffffeeffffgffffffffffffdcb
-bcdfmfffeeemffffhffffffffxfdcb
-bcdfffffeeeffpfnfffffffffffdcb
-bcdnfffffeeeefffffmfffmhhffdcb
-yczfAfmffeeeeeffffffpffffffdcb
-bcdffffffffeeffmfffhffngfffdcb
-bcdfffpffhfeeefffffffffffmfdcb
-bcdfmffffmfeeeeffffmffpffffdcb
-bcdffffgffBBBBBBfpffffffnffdcb
-bcdffnhhffBBBBBBffffgfhffffdcb
-bcdfffhfffffeeeffffffhfffffdcb
-bcdffffnpfhfffeeefffffmfAmfdcb
-bcdffffffffffhffeefmffhhfffdcb
-bcdhfmfffhfmffffeefffnhhffhdcb
-bcdfffffffffhhfhfeeeffffpffdcb
-bcdhhffmfffffpfffffeeffffffdcb
-bcddddddddddddddddddddddddddcb
-bccccccccccccccccccccccccccccb
-bbbbbCbbbbbbbbbbbbbbbbbbbbbbbb
+aaaaaaaaaaaaaaaaaaababababababababababababaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaababababacadaeafaeagahabaiajababababaaaaaaaaaaaa
+aaaaaaaaabababakabafafafafalafahafamafafanabakabababaaaaaaaa
+aaaaaaababaoapakababaqaraqaqaqasaqaqaqaqababakakapababaaaaaa
+aaaaababaoaoakakakakaqatauaqavawaxavavaqayakazakakakababaaaa
+aaaaabakaoaoaoakazakaqatauaqataAawatataqakakakaBakakakabaaaa
+aaababaCakaoaoakakakaqaDaqaEataAaFaGaHaqakaIaJakakazakababaa
+aaabakakaIaoaoaoakakaqatatataHatatatataqakakakakakakakakabaa
+aaabakakakakaoaoaoakaKaLatataMaMatataNaqakapakaCakakakakabaa
+aaabakakakaIakaoaoakaqaqaqaqaOaPaqaqaqaqakakakakaQakakakabaa
+ababababakakakaoaoakakakakakapakakaRakakakakakakakakabababab
+abaSaSaTazakakakaoaoaoazakakakakaIakakakakakakakakakaTaUaVab
+abaWaWaTakakakakaoaoaoakakaCakaQakakakakakakakakakakaTaWaWab
+abaWaWaTaBakakakakaoaoaoaoakakakakakazakakakazaIaIakaTaXaYab
+aZaXaXbaakakazakakaoaoaoaoaoakakakakakakaCakakakakakbbaXbcab
+abaWbdaTakakakakakakaoaoaoakakazakakakaIakakaQapakakaTaXbeab
+abaWaYaTakakaCakakaIakaoaoaoakakakakakakakakakakakazaTbfbgab
+abbhbiaTaIakakakakazakaoaoaoaoakakakakazakakaCakakakaTbjbkab
+ababababakakakapakakblblblblblblakaCakakakakakakaQakabababab
+ababakakakaQaIaIakakblblblblblblakakakakapakaIakakakakakabaa
+ababakakakakaIakakakakakaoaoaoakakakakakakaIakakakakakakabaa
+aaabakakakakakaQaCakaIakakaoaoaoaoakakakakakazakaBazakakabaa
+aaababakakakakakakakakakakaIakaoaoaoakazakakaIaIakakakababaa
+aaaaabakakazakakakaIakazakakakakaoaoaoakakaQaIaIakakakabaaaa
+aaaaababakakakakakakakakaIakakakakaoaoaoakakakakaCakababaaaa
+aaaabmababakakazakakababababaOaPababababakakakakakababbmaaaa
+aaaabmbmabababakakakabaSbnaXaXaXaXaWboabakakakabababbmbmaaaa
+aaaaaabmbmbmabababababaSaWaXaXaXaXaWbpabababababbmbmbmaaaaaa
+aaaaaaaabmbmbmbmbqbmababababbraPababababbmbqbmbmbmaaaaaaaaaa
+aaaaaaaaaaaaaabmbmbmbmbmbmbmbmbmbmbmbmbmbmbmbmaaaaaaaaaaaaaa
"}
diff --git a/_maps/map_files/BirdStation/BirdStation.dmm b/_maps/map_files/BirdStation/BirdStation.dmm
index a0912232dcc..5ecccfef356 100644
--- a/_maps/map_files/BirdStation/BirdStation.dmm
+++ b/_maps/map_files/BirdStation/BirdStation.dmm
@@ -2781,7 +2781,7 @@
"bbA" = (/obj/structure/grille,/obj/structure/cable/cyan{icon_state = "0-8"},/obj/structure/cable/cyan{icon_state = "4-8"},/obj/structure/cable/cyan{icon_state = "2-4"},/obj/structure/cable/cyan{icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/asmaint2)
"bbB" = (/obj/structure/cable/cyan{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2)
"bbC" = (/obj/structure/cable/cyan{icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/asmaint2)
-"bbD" = (/obj/effect/spawner/lootdrop{loot = list(/obj/item/organ/internal/gland/bloody = 7, /obj/item/organ/internal/gland/bodysnatch = 4, /obj/item/organ/internal/gland/egg = 7, /obj/item/organ/internal/gland/emp = 3, /obj/item/organ/internal/gland/mindshock = 5, /obj/item/organ/internal/gland/plasma = 7, /obj/item/organ/internal/gland/pop = 5, /obj/item/organ/internal/gland/slime = 4, /obj/item/organ/internal/gland/spiderman = 5, /obj/item/organ/internal/gland/ventcrawling = 1, /obj/item/organ/internal/body_egg/alien_embryo = 1, /obj/item/organ/internal/hivelord_core = 2); lootcount = 3; name = "organ spawner"},/obj/structure/closet/secure_closet{name = "xenobiology research materials locker"; req_access_txt = "55"},/turf/open/floor/plasteel/white,/area/toxins/xenobiology)
+"bbD" = (/obj/effect/spawner/lootdrop{loot = list(/obj/item/organ/gland/bloody = 7, /obj/item/organ/gland/bodysnatch = 4, /obj/item/organ/gland/egg = 7, /obj/item/organ/gland/emp = 3, /obj/item/organ/gland/mindshock = 5, /obj/item/organ/gland/plasma = 7, /obj/item/organ/gland/pop = 5, /obj/item/organ/gland/slime = 4, /obj/item/organ/gland/spiderman = 5, /obj/item/organ/gland/ventcrawling = 1, /obj/item/organ/body_egg/alien_embryo = 1, /obj/item/organ/hivelord_core = 2); lootcount = 3; name = "organ spawner"},/obj/structure/closet/secure_closet{name = "xenobiology research materials locker"; req_access_txt = "55"},/turf/open/floor/plasteel/white,/area/toxins/xenobiology)
"bbE" = (/mob/living/simple_animal/mouse/brown,/turf/open/floor/wood,/area/maintenance/fore{name = "Security Maintenance"})
"bbF" = (/obj/effect/spawner/lootdrop/crate_spawner,/turf/open/floor/plating,/area/maintenance/fore{name = "Security Maintenance"})
"bbG" = (/obj/structure/closet/crate{name = "solar pack crate"},/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/weapon/circuitboard/solar_control,/obj/item/weapon/electronics/tracker,/obj/item/weapon/paper/solar,/turf/open/floor/plating,/area/maintenance/fore{name = "Security Maintenance"})
diff --git a/_maps/map_files/BirdStation/z5.dmm b/_maps/map_files/BirdStation/z5.dmm
index 3466e3566b1..95e62d3e425 100644
--- a/_maps/map_files/BirdStation/z5.dmm
+++ b/_maps/map_files/BirdStation/z5.dmm
@@ -56,7 +56,7 @@
"bd" = (/turf/closed/mineral/diamond,/area/mine/unexplored)
"be" = (/mob/living/simple_animal/hostile/asteroid/basilisk,/turf/open/floor/plating/asteroid/airless,/area/mine/explored)
"bf" = (/obj/structure/alien/weeds,/turf/open/floor/plating/asteroid/airless,/area/mine/explored)
-"bg" = (/obj/effect/spawner/lootdrop{loot = list(/obj/item/organ/internal/body_egg/alien_embryo = 5, /obj/structure/alien/egg = 1); name = "xeno egg spawner2"},/turf/open/floor/plating/asteroid/airless,/area/mine/explored)
+"bg" = (/obj/effect/spawner/lootdrop{loot = list(/obj/item/organ/body_egg/alien_embryo = 5, /obj/structure/alien/egg = 1); name = "xeno egg spawner2"},/turf/open/floor/plating/asteroid/airless,/area/mine/explored)
"bh" = (/mob/living/simple_animal/hostile/asteroid/fugu,/turf/open/floor/plating/asteroid/airless,/area/mine/explored)
"bi" = (/turf/closed/mineral/random/high_chance,/area/mine/explored)
"bj" = (/turf/closed/mineral/clown,/area/mine/explored)
diff --git a/_maps/map_files/MetaStation/MetaStation.v41I.dmm b/_maps/map_files/MetaStation/MetaStation.v41I.dmm
index dd60f599a3f..9a976b2f168 100644
--- a/_maps/map_files/MetaStation/MetaStation.v41I.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.v41I.dmm
@@ -60283,9 +60283,7 @@
pixel_y = 0
},
/obj/item/weapon/folder/blue,
-/obj/item/clothing/head/collectable/HoS{
- desc = "It's your turn to demand excessive paperwork, signatures, stamps, and hire more clowns! Papers, please!";
- icon_state = "hopcap";
+/obj/item/clothing/head/collectable/HoP{
name = "novelty HoP hat"
},
/obj/machinery/light/small{
@@ -90522,7 +90520,7 @@
/obj/item/weapon/nullrod{
pixel_x = 4
},
-/obj/item/organ/internal/heart,
+/obj/item/organ/heart,
/obj/item/device/soulstone/anybody,
/obj/effect/landmark{
name = "revenantspawn"
diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm
index 93ee4f95305..4b6ad4ccfca 100644
--- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm
+++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm
@@ -52505,7 +52505,9 @@
/area/solar/port)
"ccY" = (
/obj/structure/table,
-/obj/item/weapon/storage/fancy/cigarettes,
+/obj/item/weapon/kitchen/rollingpin,
+/obj/item/weapon/reagent_containers/food/condiment/enzyme,
+/obj/item/weapon/reagent_containers/food/condiment/sugar,
/turf/open/floor/plating,
/area/maintenance/aft)
"ccZ" = (
@@ -53384,9 +53386,11 @@
/turf/open/floor/plating,
/area/maintenance/asmaint2)
"ceV" = (
-/obj/item/clothing/under/rank/vice,
/obj/structure/closet,
-/obj/item/clothing/shoes/jackboots,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
/turf/open/floor/plating,
/area/maintenance/aft)
"ceW" = (
@@ -63979,8 +63983,9 @@
/turf/open/floor/plating/airless,
/area/space/nearstation)
"cAy" = (
+/obj/structure/closet/secure_closet/freezer/kitchen/maintenance,
/turf/open/floor/plating,
-/area/maintenance/electrical)
+/area/maintenance/aft)
"cAz" = (
/obj/structure/disposalpipe/segment{
dir = 1;
@@ -63994,39 +63999,42 @@
},
/area/chapel/office)
"cAA" = (
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"cAB" = (
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/plasteel{
- icon_state = "showroomfloor"
- },
-/area/crew_quarters/kitchen)
-"cAC" = (
-/turf/open/floor/plasteel{
- icon_state = "cafeteria"
- },
-/area/crew_quarters/kitchen)
-"cAD" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/plating{
- icon_state = "warnplate";
+/obj/machinery/light/small{
dir = 1
},
-/area/maintenance/disposal)
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cAB" = (
+/obj/structure/table,
+/obj/machinery/microwave,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cAC" = (
+/obj/structure/sink/kitchen{
+ dir = 8;
+ pixel_x = 11
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cAD" = (
+/obj/structure/table,
+/obj/item/weapon/kitchen/knife,
+/obj/item/weapon/storage/box/donkpockets,
+/turf/open/floor/plating,
+/area/maintenance/aft)
"cAE" = (
-/obj/structure/cable{
- d1 = 1;
- d2 = 2;
- icon_state = "1-2"
+/obj/structure/table/glass,
+/obj/item/weapon/reagent_containers/food/condiment/saltshaker{
+ pixel_y = 2
},
-/turf/open/floor/plasteel{
- icon_state = "dark"
+/obj/item/weapon/reagent_containers/food/condiment/peppermill{
+ pixel_x = 2
},
-/area/medical/morgue)
+/obj/item/weapon/reagent_containers/food/snacks/mint{
+ pixel_y = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
"cAF" = (
/turf/open/floor/plating,
/area/maintenance/disposal)
@@ -64049,10 +64057,9 @@
/turf/open/floor/plating,
/area/crew_quarters/heads)
"cAH" = (
-/turf/open/floor/plasteel{
- icon_state = "dark"
- },
-/area/medical/morgue)
+/obj/machinery/processor,
+/turf/open/floor/plating,
+/area/maintenance/aft)
"cAI" = (
/obj/machinery/conveyor_switch/oneway{
convdir = -1;
@@ -64066,8 +64073,9 @@
/turf/open/floor/plating,
/area/maintenance/disposal)
"cAK" = (
+/obj/machinery/light/small,
/turf/open/floor/plating,
-/area/maintenance/asmaint2)
+/area/maintenance/aft)
"cAL" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/mob/living/simple_animal/hostile/lizard{
@@ -83662,10 +83670,10 @@ apQ
aaf
bCq
bCq
-bLv
-bLv
bCq
-aaf
+bCq
+bCq
+bCq
cfx
cfx
chO
@@ -83918,11 +83926,11 @@ bXv
bLv
aaf
bCq
-bHE
-ccd
+cAy
+cAB
ccY
-bLv
-aaf
+cAD
+cAH
cfw
cgA
chP
@@ -84175,11 +84183,11 @@ bHE
bLv
aaf
bCq
+cAA
bHE
bHE
ccZ
-bCq
-bCq
+cAK
cfw
cgC
chR
@@ -84433,9 +84441,9 @@ bLv
bLv
bCq
bHE
-bCq
-bCq
-bCq
+cAC
+ccZ
+cAE
ceV
cfw
cgB
@@ -84689,9 +84697,9 @@ bHE
bYu
bZk
bCq
-bHE
+bTz
+bCq
bCq
-bSq
bCq
bCq
cfw
@@ -84948,7 +84956,7 @@ bZj
bCq
bHE
bCq
-bHE
+bSq
cdW
ceW
bCq
diff --git a/_maps/map_files/generic/z6.dmm b/_maps/map_files/generic/z6.dmm
index ebde3b06dfa..82a78c133c6 100644
--- a/_maps/map_files/generic/z6.dmm
+++ b/_maps/map_files/generic/z6.dmm
@@ -41,8 +41,8 @@
"aO" = (/obj/machinery/computer/operating,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Aft)
"aP" = (/turf/closed/wall/shuttle{icon_state = "swall3"},/area/awaymission/BMPship/Aft)
"aQ" = (/turf/open/floor/plating{icon_state = "warnplate"; dir = 9},/area/awaymission/BMPship/Aft)
-"aR" = (/obj/structure/closet/crate/freezer,/obj/item/organ/internal/appendix,/obj/item/weapon/reagent_containers/food/snacks/meat/slab,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem,/turf/open/floor/plating{icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship/Aft)
-"aS" = (/obj/structure/closet/crate/freezer,/obj/item/organ/internal/brain,/obj/item/organ/internal/appendix,/obj/item/weapon/reagent_containers/food/snacks/meat/slab,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/slime,/turf/open/floor/plating{icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship/Aft)
+"aR" = (/obj/structure/closet/crate/freezer,/obj/item/organ/appendix,/obj/item/weapon/reagent_containers/food/snacks/meat/slab,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem,/turf/open/floor/plating{icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship/Aft)
+"aS" = (/obj/structure/closet/crate/freezer,/obj/item/organ/brain,/obj/item/weapon/reagent_containers/food/snacks/meat/slab,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/slime,/turf/open/floor/plating{icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship/Aft)
"aT" = (/obj/structure/table,/obj/item/stack/packageWrap,/turf/open/floor/plating{icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship/Aft)
"aU" = (/obj/structure/table,/obj/item/weapon/storage/box,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating{icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship/Aft)
"aV" = (/turf/open/floor/plating{icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship/Aft)
@@ -118,7 +118,7 @@
"cn" = (/obj/structure/kitchenspike,/turf/open/floor/plating{dir = 2; icon_state = "warnplate"},/area/awaymission/BMPship/Aft)
"co" = (/obj/structure/closet/crate,/obj/item/device/analyzer,/obj/item/stack/spacecash/c10,/turf/open/floor/plating{dir = 2; icon_state = "warnplate"},/area/awaymission/BMPship/Aft)
"cp" = (/obj/structure/closet/crate,/obj/item/stack/spacecash/c1000,/obj/item/stack/spacecash/c200,/obj/item/stack/spacecash/c500,/turf/open/floor/plating{dir = 2; icon_state = "warnplate"},/area/awaymission/BMPship/Aft)
-"cq" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice,/obj/item/organ/internal/appendix,/obj/item/weapon/reagent_containers/food/snacks/meat/slab,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem/adamantine,/turf/open/floor/plating{dir = 2; icon_state = "warnplate"},/area/awaymission/BMPship/Aft)
+"cq" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice,/obj/item/organ/appendix,/obj/item/weapon/reagent_containers/food/snacks/meat/slab,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem/adamantine,/turf/open/floor/plating{dir = 2; icon_state = "warnplate"},/area/awaymission/BMPship/Aft)
"cr" = (/obj/machinery/button/door{id = "packerCargo"; pixel_y = -24},/obj/machinery/light/small,/turf/open/floor/plating{dir = 2; icon_state = "warnplate"},/area/awaymission/BMPship/Aft)
"cs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating{dir = 2; icon_state = "warnplate"},/area/awaymission/BMPship/Aft)
"ct" = (/turf/open/floor/plating{icon_state = "warnplate"; dir = 6},/area/awaymission/BMPship/Aft)
@@ -379,43 +379,43 @@
"ho" = (/turf/open/floor/plating/airless,/area/awaymission)
"hp" = (/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg1"},/area/awaymission)
"hq" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating/airless,/area/awaymission)
-"hr" = (/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg2"},/area/awaymission)
-"hs" = (/obj/item/wallframe/apc,/turf/open/floor/plating/airless,/area/awaymission)
-"ht" = (/obj/structure/ore_box,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating/airless,/area/awaymission)
-"hu" = (/obj/item/stack/cable_coil{amount = 5},/turf/open/floor/plating/airless,/area/awaymission)
-"hv" = (/obj/structure/ore_box,/turf/open/floor/plating/airless,/area/awaymission)
-"hw" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft)
-"hx" = (/obj/effect/decal/remains/human,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft)
-"hy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft)
-"hz" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft)
-"hA" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/item/wallframe/apc,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft)
-"hB" = (/obj/effect/decal/remains/human,/obj/item/clothing/head/helmet/space/syndicate/green/dark,/obj/effect/gibspawner/generic,/turf/open/floor/plating/asteroid/airless,/area/awaymission)
-"hC" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/item/weapon/shard{icon_state = "small"},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore)
-"hD" = (/obj/machinery/door/unpowered/shuttle,/turf,/area/awaymission/BMPship/Fore)
-"hE" = (/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore)
-"hF" = (/obj/effect/gibspawner/robot,/turf/open/floor/plasteel/airless{icon_state = "floorscorched2"},/area/awaymission/BMPship/Fore)
-"hG" = (/obj/effect/gibspawner/robot,/turf/open/floor/plating/airless,/area/awaymission)
-"hH" = (/obj/structure/mecha_wreckage/ripley,/turf/open/floor/plating/airless,/area/awaymission)
-"hI" = (/obj/structure/bed,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft)
-"hJ" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/weapon/storage/wallet/random,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft)
-"hK" = (/obj/structure/closet,/obj/item/clothing/under/lawyer/bluesuit,/obj/item/clothing/suit/apron,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft)
-"hL" = (/obj/item/clothing/suit/space/syndicate/green/dark,/turf/open/floor/plating/asteroid/airless,/area/awaymission)
-"hM" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore)
-"hN" = (/turf/open/floor/plating/airless{broken = 1; icon_state = "panelscorched"},/area/awaymission)
-"hO" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating/airless,/area/awaymission)
-"hP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating/airless,/area/awaymission)
-"hQ" = (/obj/machinery/door/unpowered/shuttle,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/awaymission/BMPship/Aft)
-"hR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft)
-"hS" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft)
-"hT" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/space,/area/space)
-"hU" = (/turf/closed/wall/shuttle{icon_state = "swall13"},/area/awaymission/BMPship/Fore)
-"hV" = (/turf/closed/wall/shuttle,/area/awaymission/BMPship/Fore)
-"hW" = (/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg3"},/area/awaymission)
-"hX" = (/obj/effect/decal/remains/human,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft)
-"hY" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft)
-"hZ" = (/obj/machinery/door/unpowered/shuttle,/turf/open/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/awaymission/BMPship/Aft)
-"ia" = (/obj/structure/mirror{pixel_y = 28},/turf/open/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/awaymission/BMPship/Aft)
-"ib" = (/obj/structure/toilet{dir = 8},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/awaymission/BMPship/Aft)
+"hr" = (/obj/item/wallframe/apc,/turf/open/floor/plating/airless,/area/awaymission)
+"hs" = (/obj/structure/ore_box,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating/airless,/area/awaymission)
+"ht" = (/obj/item/stack/cable_coil{amount = 5},/turf/open/floor/plating/airless,/area/awaymission)
+"hu" = (/obj/structure/ore_box,/turf/open/floor/plating/airless,/area/awaymission)
+"hv" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft)
+"hw" = (/obj/effect/decal/remains/human,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft)
+"hx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft)
+"hy" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft)
+"hz" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/item/wallframe/apc,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft)
+"hA" = (/obj/effect/decal/remains/human,/obj/item/clothing/head/helmet/space/syndicate/green/dark,/obj/effect/gibspawner/generic,/turf/open/floor/plating/asteroid/airless,/area/awaymission)
+"hB" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/item/weapon/shard{icon_state = "small"},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore)
+"hC" = (/obj/machinery/door/unpowered/shuttle,/turf,/area/awaymission/BMPship/Fore)
+"hD" = (/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore)
+"hE" = (/obj/effect/gibspawner/robot,/turf/open/floor/plasteel/airless{icon_state = "floorscorched2"},/area/awaymission/BMPship/Fore)
+"hF" = (/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg2"},/area/awaymission)
+"hG" = (/obj/structure/mecha_wreckage/ripley,/turf/open/floor/plating/airless,/area/awaymission)
+"hH" = (/obj/structure/bed,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft)
+"hI" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/weapon/storage/wallet/random,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft)
+"hJ" = (/obj/structure/closet,/obj/item/clothing/under/lawyer/bluesuit,/obj/item/clothing/suit/apron,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft)
+"hK" = (/obj/item/clothing/suit/space/syndicate/green/dark,/turf/open/floor/plating/asteroid/airless,/area/awaymission)
+"hL" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore)
+"hM" = (/obj/effect/gibspawner/robot,/turf/open/floor/plating/airless,/area/awaymission)
+"hN" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating/airless,/area/awaymission)
+"hO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating/airless,/area/awaymission)
+"hP" = (/obj/machinery/door/unpowered/shuttle,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/awaymission/BMPship/Aft)
+"hQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft)
+"hR" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft)
+"hS" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/space,/area/space)
+"hT" = (/turf/closed/wall/shuttle{icon_state = "swall13"},/area/awaymission/BMPship/Fore)
+"hU" = (/turf/closed/wall/shuttle,/area/awaymission/BMPship/Fore)
+"hV" = (/turf/open/floor/plating/airless{broken = 1; icon_state = "panelscorched"},/area/awaymission)
+"hW" = (/obj/effect/decal/remains/human,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft)
+"hX" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft)
+"hY" = (/obj/machinery/door/unpowered/shuttle,/turf/open/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/awaymission/BMPship/Aft)
+"hZ" = (/obj/structure/mirror{pixel_y = 28},/turf/open/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/awaymission/BMPship/Aft)
+"ia" = (/obj/structure/toilet{dir = 8},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/awaymission/BMPship/Aft)
+"ib" = (/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg3"},/area/awaymission)
"ic" = (/obj/item/weapon/caution,/turf/open/floor/plating/airless,/area/awaymission)
"id" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating/airless,/area/awaymission)
"ie" = (/obj/structure/closet/crate,/obj/item/stack/spacecash/c10,/obj/item/stack/spacecash/c200,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft)
@@ -433,7 +433,7 @@
"iq" = (/turf/open/floor/plating,/turf/closed/wall/shuttle{icon_state = "swall_f6"; dir = 2},/area/awaymission/BMPship/Fore)
"ir" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/turf/open/floor/engine,/area/awaymission/BMPship/Fore)
"is" = (/turf/closed/mineral/diamond,/area/awaymission)
-"it" = (/turf/closed/wall/shuttle{icon_state = "wall3"},/area/awaymission)
+"it" = (/turf/closed/mineral/clown,/area/awaymission)
"iu" = (/turf/closed/mineral,/area/awaymission)
"iv" = (/turf/closed/wall/r_wall,/area/awaymission/listeningpost)
"iw" = (/turf/open/floor/plating,/area/awaymission/listeningpost)
@@ -444,33 +444,33 @@
"iB" = (/obj/structure/table,/turf/open/floor/plasteel,/area/awaymission/listeningpost)
"iC" = (/turf/open/floor/plasteel,/area/awaymission/listeningpost)
"iD" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/awaymission/listeningpost)
-"iE" = (/turf/open/floor/plating/asteroid/airless,/area/mine/explored)
-"iF" = (/obj/machinery/computer/message_monitor,/turf/open/floor/plasteel,/area/awaymission/listeningpost)
-"iG" = (/obj/structure/chair{dir = 4},/mob/living/simple_animal/hostile/syndicate{desc = "A weary looking syndicate operative."},/turf/open/floor/plasteel,/area/awaymission/listeningpost)
-"iH" = (/obj/structure/table,/obj/item/weapon/paper{info = "Nothing of interest to report."; name = "november report"},/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/awaymission/listeningpost)
-"iI" = (/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/open/floor/plasteel,/area/awaymission/listeningpost)
-"iJ" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate,/obj/item/clothing/mask/gas,/obj/item/clothing/head/helmet/space/syndicate,/turf/open/floor/plasteel,/area/awaymission/listeningpost)
-"iK" = (/obj/machinery/door/airlock,/obj/structure/safe/floor,/obj/item/weapon/paper{info = "I wonder how much longer they will accept my empty reports. They will cancel the case soon without results. When the pickup comes, I will tell them I have lost faith in our cause, and beg them to consider a diplomatic solution. How many nuclear teams have been dispatched with those nukes? I must try and prevent more from ever being sent. If they will not listen to reason, I will detonate the warehouse myself. Maybe some day in the immediate future, space will be peaceful, though I don't intend to live to see it. And that is why I write this down- it is my sacrifice that stabilised your worlds, traveller. Spare a thought for me, and please attempt to prevent nuclear proliferation, should it ever rear it's ugly head again. -Donk Co. Operative #451"; name = "odd report"},/obj/item/weapon/gun/projectile/automatic/pistol,/turf/open/floor/plasteel,/area/awaymission/listeningpost)
-"iL" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/closed/mineral,/area/awaymission)
-"iM" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/mineral,/area/awaymission)
-"iN" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plating/airless,/area/space)
-"iO" = (/obj/structure/bed,/obj/item/weapon/bedsheet/brown,/turf/open/floor/plasteel,/area/awaymission/listeningpost)
-"iP" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/open/floor/plasteel,/area/awaymission/listeningpost)
-"iQ" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel,/area/awaymission/listeningpost)
-"iR" = (/obj/structure/disposalpipe/segment,/turf/closed/mineral,/area/awaymission)
-"iS" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel,/area/awaymission/listeningpost)
-"iT" = (/obj/structure/closet,/obj/item/clothing/gloves/boxing,/turf/open/floor/plasteel,/area/awaymission/listeningpost)
-"iU" = (/obj/structure/filingcabinet,/obj/item/weapon/paper{info = "A good start to the operation: intercepted Nanotrasen military communications. A convoy is scheduled to transfer nuclear warheads to a new military base. This is as good a chance as any to get our hands on some heavy weaponry, I suggest we take it."; name = "april report"},/obj/item/weapon/paper{info = "Nothing of real interest to report this month. I have intercepted faint transmissions from what appears to be some sort of pirate radio station. They do not appear to be relevant to my assignment."; name = "may report"},/obj/item/weapon/paper{info = "Nanotrasen communications have been noticably less frequent recently. The pirate radio station I found last month has been transmitting pro-Nanotrasen propaganda. I will continue to monitor it."; name = "june report"},/obj/item/weapon/paper{info = "Nothing of interest to report."; name = "july report"},/obj/item/weapon/paper{info = "Nothing of interest to report."; name = "august report"},/obj/item/weapon/paper{info = "Nothing of interest to report."; name = "september report"},/obj/item/weapon/paper{info = "Nothing of interest to report."; name = "october report"},/obj/item/weapon/paper{info = "1 x Stechtkin pistol - $600
1 x silencer - $200
shipping charge - $4360
total - $5160"; name = "receipt"},/turf/open/floor/plasteel,/area/awaymission/listeningpost)
-"iV" = (/obj/structure/table,/obj/item/weapon/paper{info = "Mission Details: You have been assigned to a newly constructed listening post constructed within an asteroid in Nanotrasen space to monitor their plasma mining operations. Accurate intel is crucial to the success of our operatives onboard, do not fail us."; name = "mission briefing"},/turf/open/floor/plasteel,/area/awaymission/listeningpost)
-"iW" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plasteel,/area/awaymission/listeningpost)
-"iX" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall/r_wall,/area/awaymission/listeningpost)
-"iY" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/closed/mineral,/area/awaymission)
-"iZ" = (/obj/machinery/door/airlock{name = "Toilet"},/turf/open/floor/plasteel,/area/awaymission/listeningpost)
-"ja" = (/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/awaymission/listeningpost)
-"jb" = (/obj/machinery/shower{icon_state = "shower"; dir = 8},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/awaymission/listeningpost)
-"jc" = (/obj/structure/toilet{icon_state = "toilet00"; dir = 8},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/awaymission/listeningpost)
-"jd" = (/turf/closed/mineral/clown,/area/awaymission)
-"je" = (/turf/open/floor/plasteel/airless{icon_state = "gcircuit"},/area/awaymission)
+"iE" = (/obj/machinery/computer/message_monitor,/turf/open/floor/plasteel,/area/awaymission/listeningpost)
+"iF" = (/obj/structure/chair{dir = 4},/mob/living/simple_animal/hostile/syndicate{desc = "A weary looking syndicate operative."},/turf/open/floor/plasteel,/area/awaymission/listeningpost)
+"iG" = (/obj/structure/table,/obj/item/weapon/paper{info = "Nothing of interest to report."; name = "november report"},/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/awaymission/listeningpost)
+"iH" = (/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/open/floor/plasteel,/area/awaymission/listeningpost)
+"iI" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate,/obj/item/clothing/mask/gas,/obj/item/clothing/head/helmet/space/syndicate,/turf/open/floor/plasteel,/area/awaymission/listeningpost)
+"iJ" = (/obj/machinery/door/airlock,/obj/structure/safe/floor,/obj/item/weapon/paper{info = "I wonder how much longer they will accept my empty reports. They will cancel the case soon without results. When the pickup comes, I will tell them I have lost faith in our cause, and beg them to consider a diplomatic solution. How many nuclear teams have been dispatched with those nukes? I must try and prevent more from ever being sent. If they will not listen to reason, I will detonate the warehouse myself. Maybe some day in the immediate future, space will be peaceful, though I don't intend to live to see it. And that is why I write this down- it is my sacrifice that stabilised your worlds, traveller. Spare a thought for me, and please attempt to prevent nuclear proliferation, should it ever rear it's ugly head again. -Donk Co. Operative #451"; name = "odd report"},/obj/item/weapon/gun/projectile/automatic/pistol,/turf/open/floor/plasteel,/area/awaymission/listeningpost)
+"iK" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/closed/mineral,/area/awaymission)
+"iL" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/mineral,/area/awaymission)
+"iM" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plating/airless,/area/space)
+"iN" = (/obj/structure/bed,/obj/item/weapon/bedsheet/brown,/turf/open/floor/plasteel,/area/awaymission/listeningpost)
+"iO" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/open/floor/plasteel,/area/awaymission/listeningpost)
+"iP" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel,/area/awaymission/listeningpost)
+"iQ" = (/obj/structure/disposalpipe/segment,/turf/closed/mineral,/area/awaymission)
+"iR" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel,/area/awaymission/listeningpost)
+"iS" = (/obj/structure/closet,/obj/item/clothing/gloves/boxing,/turf/open/floor/plasteel,/area/awaymission/listeningpost)
+"iT" = (/obj/structure/filingcabinet,/obj/item/weapon/paper{info = "A good start to the operation: intercepted Nanotrasen military communications. A convoy is scheduled to transfer nuclear warheads to a new military base. This is as good a chance as any to get our hands on some heavy weaponry, I suggest we take it."; name = "april report"},/obj/item/weapon/paper{info = "Nothing of real interest to report this month. I have intercepted faint transmissions from what appears to be some sort of pirate radio station. They do not appear to be relevant to my assignment."; name = "may report"},/obj/item/weapon/paper{info = "Nanotrasen communications have been noticably less frequent recently. The pirate radio station I found last month has been transmitting pro-Nanotrasen propaganda. I will continue to monitor it."; name = "june report"},/obj/item/weapon/paper{info = "Nothing of interest to report."; name = "july report"},/obj/item/weapon/paper{info = "Nothing of interest to report."; name = "august report"},/obj/item/weapon/paper{info = "Nothing of interest to report."; name = "september report"},/obj/item/weapon/paper{info = "Nothing of interest to report."; name = "october report"},/obj/item/weapon/paper{info = "1 x Stechtkin pistol - $600
1 x silencer - $200
shipping charge - $4360
total - $5160"; name = "receipt"},/turf/open/floor/plasteel,/area/awaymission/listeningpost)
+"iU" = (/obj/structure/table,/obj/item/weapon/paper{info = "Mission Details: You have been assigned to a newly constructed listening post constructed within an asteroid in Nanotrasen space to monitor their plasma mining operations. Accurate intel is crucial to the success of our operatives onboard, do not fail us."; name = "mission briefing"},/turf/open/floor/plasteel,/area/awaymission/listeningpost)
+"iV" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plasteel,/area/awaymission/listeningpost)
+"iW" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall/r_wall,/area/awaymission/listeningpost)
+"iX" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/closed/mineral,/area/awaymission)
+"iY" = (/obj/machinery/door/airlock{name = "Toilet"},/turf/open/floor/plasteel,/area/awaymission/listeningpost)
+"iZ" = (/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/awaymission/listeningpost)
+"ja" = (/obj/machinery/shower{icon_state = "shower"; dir = 8},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/awaymission/listeningpost)
+"jb" = (/obj/structure/toilet{icon_state = "toilet00"; dir = 8},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/awaymission/listeningpost)
+"jc" = (/turf/closed/wall/shuttle{icon_state = "wall3"},/area/awaymission)
+"jd" = (/turf/open/floor/plasteel/airless{icon_state = "gcircuit"},/area/awaymission)
+"je" = (/turf/open/floor/plating/asteroid/airless,/area/mine/explored)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -551,22 +551,22 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasgvgwghgxgygzczcHcHcHcHcHcHcHcHgAcHdMcHgBeeeeeeeeeeeedOdOdOescHdbgCdddddddddQgDgEaPdBgFbcgGayaxazfdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaasaaaaaaaagHgIgJgigzczcHgKcHcHcHcHgLcHgMgLcIcHgKcHcHcHgKcHcHcHcHgKcHcHcRaxaAgNaCaAgOaCaxazaAgPaCcifdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagQgQgQacaaasaagRasaagSagaggTgUgVcgcgcgcgcgcgcggWgXgYgZcgcgcgcgcgcgcgcgcgcgcgcgcgbPdldldldlhadkhbhchdhaekheaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagQgQgQgQacaaaaaaaaaahfakhgcdhhhihjhkgghlgihmgQgQgQgQhnacachohpachqhoachphshthuhvaPhwdlbcdldlhxhyhyhyhyhzhAaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagQgQgQgQhBaaaaaaaaaahCalalhDhEgvhEhjhFhEhjgQgQgQgQgQgQhmachrhHhoachphohohohohohobahbdldlhIdlhJdlhIdldldlhKaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagQachLaaaaaaaaaahMakalbOgigihjgghjgihjhmgQgQgQhmgQgQgQachGachohohohohohohOhPhQhRhRhRhRhRhSdldldlaCaxaxbPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaahTacafagaghUaghVgQhjhmgQgQgQgQgQgQgQgQgQgQgQhphrhohoachohohNhohobGdldlhXhYdlhIdlhIdlhZiaibaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQhmachrhohohWicicicidaPieifdlbcdldldldldlbGigihfdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagQgQgQgQacaaaaaaaaaahfakhgcdhhhihjhkgghlgihmgQgQgQgQhnacachohpachqhoachphrhshthuaPhvdlbcdldlhwhxhxhxhxhyhzaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagQgQgQgQhAaaaaaaaaaahBalalhChDgvhDhjhEhDhjgQgQgQgQgQgQhmachFhGhoachphohohohohohobahbdldlhHdlhIdlhHdldldlhJaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagQachKaaaaaaaaaahLakalbOgigihjgghjgihjhmgQgQgQhmgQgQgQachMachohohohohohohNhOhPhQhQhQhQhQhRdldldlaCaxaxbPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaahSacafagaghTaghUgQhjhmgQgQgQgQgQgQgQgQgQgQgQhphFhohoachohohVhohobGdldlhWhXdlhHdlhHdlhYhZiaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQhmachFhohoibicicicidaPieifdlbcdldldldldlbGigihfdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiiacacacgQgQgQgQgQgQgQgQgQgQgQhmgQgQgQgQgQgQgQgQhmijikikikikikikikazaxaxaxayaAgNaCayayazaxfdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQacacaaaaaaaaaailakhgcdimarinavioaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQacacaaaaaaaaaaapalalaqaripiqioaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQacacaaaaaaaaaairakalbOaniqioaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacgQgQacacgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQacacaaaaaaaaaaafagaghUagioaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacgQgQacacgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQacacaaaaaaaaaaafagaghTagioaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagQgQgQacacacgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagQgQgQgQgQacacgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagQgQgQgQgQacacacgQgQisgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagQgQgQgQgQacacacgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagQgQgQgQgQacacacgQgQgQgQgQgQjdgQgQgQgQgQgQgQgQgQgQgQacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagQgQgQgQgQacacacgQgQgQjdgQgQjdgQgQgQgQgQgQgQgQgQacacacacgQgQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagQgQgQgQgQacacacgQgQgQgQgQgQitgQgQgQgQgQgQgQgQgQgQgQacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagQgQgQgQgQacacacgQgQgQitgQgQitgQgQgQgQgQgQgQgQgQacacacacgQgQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagQgQgQgQacacacacgQgQgQgQgQgQgQgQgQgQgQgQgQgQgQacacgQgQgQgQgQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagQgQacacacacacacgQgQgQgQgQgQgQgQgQgQgQgQacacacacgQgQgQgQgQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacgQgQgQgQgQgQgQgQacacacacaaaaaagQgQgQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -620,16 +620,16 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiviwixiviuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiviviviyizivivivivaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiviviAiBiCiCiDiwiwiDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaciuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiviFiGiHiCiCiDiwiwiDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuaaaciuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiviviIiBiCiCivivivivaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuacaciuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiviCiCiCiJiviuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuaciuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiviviviviKiziziziviuiLiMiMiNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiviOiPiziCiCiCiQiviuiRiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiviCiCiyiCiCiCiSiviuiRiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiviTiUiziViCiWiXiXiMiYiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiviviviviviZiziviuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuivjajbiviuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuivjajciviuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaciuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiviEiFiGiCiCiDiwiwiDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuaaaciuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiviviHiBiCiCivivivivaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuacaciuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiviCiCiCiIiviuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuaciuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiviviviviJiziziziviuiKiLiLiMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiviNiOiziCiCiCiPiviuiQiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiviCiCiyiCiCiCiRiviuiQiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiviSiTiziUiCiViWiWiLiXiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiviviviviviYiziviuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiviZjaiviuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiviZjbiviuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiviviviviuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -639,30 +639,30 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuacacaciuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiujdjdiuiuiuiuiuiuiuacacaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiujdiuiujdiuiuiuacacacaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiujdiuiuiuiuiuiuiuiuiuiuiuiuacaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiujdjdiuiuiuiuiuiuiuiuiuiuiuacaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiujdjdiuiuiuiuiuiuiuiuiuiuiuacaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiujdiuiuiuiuiuiuaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuititiuiuiuiuiuiuiuacacaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuitiuiuitiuiuiuacacacaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuitiuiuiuiuiuiuiuiuiuiuiuiuacaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuititiuiuiuiuiuiuiuiuiuiuiuacaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuititiuiuiuiuiuiuiuiuiuiuiuacaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuitiuiuiuiuiuiuaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiujdjdiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiujdiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiujdiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuititiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuitiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuitiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiujdjdiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuititiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuacacacacaciuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuacaaaaaaaaiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuacaciuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuitititititititiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuacjejejejejeitiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiujejejejejeitiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiujejejejeitiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiEiuiuiuiuiuiuiuiuiuiuiuiuiuiujejejejejeitiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiEiEiuiuiuiuiuiuiuiuiuiuiuiuiuacjejejejeitiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaiEiuiuiuiuiuiuiuiuiuiuiuiuacacitititititiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiujcjcjcjcjcjcjciuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuacjdjdjdjdjdjciuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiujdjdjdjdjdjciuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiujdjdjdjdjciuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiujeiuiuiuiuiuiuiuiuiuiuiuiuiuiujdjdjdjdjdjciuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiujejeiuiuiuiuiuiuiuiuiuiuiuiuiuacjdjdjdjdjciuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaajeiuiuiuiuiuiuiuiuiuiuiuiuacacjcjcjcjcjciuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuiuiuiuiuiuaaaaaaaaaaaaiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -729,4 +729,3 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"}
-
diff --git a/code/__DEFINES/clothing.dm b/code/__DEFINES/clothing.dm
index fabe22f95c4..dd8ce2bdb96 100644
--- a/code/__DEFINES/clothing.dm
+++ b/code/__DEFINES/clothing.dm
@@ -13,19 +13,7 @@
#define SLOT_POCKET 2048 //this is to allow items with a w_class of 3 or 4 to fit in pockets.
#define SLOT_DENYPOCKET 4096 //this is to deny items with a w_class of 2 or 1 to fit in pockets.
-//Bit flags for the flags_inv variable, which determine when a piece of clothing hides another. IE a helmet hiding glasses.
-#define HIDEGLOVES 1
-#define HIDESUITSTORAGE 2
-#define HIDEJUMPSUIT 4 //these first four are only used in exterior suits
-#define HIDESHOES 8
-#define HIDEMASK 16 //these last six are only used in masks and headgear.
-#define HIDEEARS 32 // (ears means headsets and such)
-#define HIDEEYES 64 // Whether eyes and glasses are hidden
-#define HIDEFACE 128 // Whether we appear as unknown.
-#define HIDEHAIR 256
-#define HIDEFACIALHAIR 512
-
-//slots
+//SLOTS
#define slot_back 1
#define slot_wear_mask 2
#define slot_handcuffed 3
@@ -49,6 +37,49 @@
#define slots_amt 20 // Keep this up to date!
+//I hate that this has to exist
+/proc/slotdefine2slotbit(slotdefine) //Keep this up to date with the value of SLOT BITMASKS and SLOTS (the two define sections above)
+ . = 0
+ switch(slotdefine)
+ if(slot_back)
+ . = SLOT_BACK
+ if(slot_wear_mask)
+ . = SLOT_MASK
+ if(slot_belt)
+ . = SLOT_BELT
+ if(slot_wear_id)
+ . = SLOT_ID
+ if(slot_ears)
+ . = SLOT_EARS
+ if(slot_glasses)
+ . = SLOT_EYES
+ if(slot_gloves)
+ . = SLOT_GLOVES
+ if(slot_head)
+ . = SLOT_HEAD
+ if(slot_shoes)
+ . = SLOT_FEET
+ if(slot_wear_suit)
+ . = SLOT_OCLOTHING
+ if(slot_w_uniform)
+ . = SLOT_ICLOTHING
+ if(slot_l_store, slot_r_store)
+ . = SLOT_POCKET
+
+
+//Bit flags for the flags_inv variable, which determine when a piece of clothing hides another. IE a helmet hiding glasses.
+#define HIDEGLOVES 1
+#define HIDESUITSTORAGE 2
+#define HIDEJUMPSUIT 4 //these first four are only used in exterior suits
+#define HIDESHOES 8
+#define HIDEMASK 16 //these last six are only used in masks and headgear.
+#define HIDEEARS 32 // (ears means headsets and such)
+#define HIDEEYES 64 // Whether eyes and glasses are hidden
+#define HIDEFACE 128 // Whether we appear as unknown.
+#define HIDEHAIR 256
+#define HIDEFACIALHAIR 512
+
+
//Cant seem to find a mob bitflags area other than the powers one
// bitflags for clothing parts - also used for limbs
diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm
index 9d0840adf36..d5c37b89886 100644
--- a/code/__DEFINES/flags.dm
+++ b/code/__DEFINES/flags.dm
@@ -55,8 +55,8 @@
#define FACEHAIR 4
#define EYECOLOR 8
#define LIPS 16
-#define COLDRES 32
-#define HEATRES 64
+#define RESISTCOLD 32
+#define RESISTHEAT 64
#define RADIMMUNE 128
#define NOBREATH 256
#define NOGUNS 512
diff --git a/code/__DEFINES/genetics.dm b/code/__DEFINES/genetics.dm
index dd3b99c0e86..4cf307dbf34 100644
--- a/code/__DEFINES/genetics.dm
+++ b/code/__DEFINES/genetics.dm
@@ -80,7 +80,7 @@
#define TR_KEEPSRC 128
#define TR_KEEPORGANS 256
-//Organ stuff, It's here because "Genetics" is the most relevant file for organs
+//Organ stuff, It's here because "Genetics" is the most relevant file for organs and bodyparts
#define ORGAN_ORGANIC 1
#define ORGAN_ROBOTIC 2
diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm
index 0a62f085b66..f05b74117d9 100644
--- a/code/__DEFINES/is_helpers.dm
+++ b/code/__DEFINES/is_helpers.dm
@@ -60,7 +60,7 @@
#define isguardian(A) (istype(A, /mob/living/simple_animal/hostile/guardian))
-#define islimb(A) (istype(A, /obj/item/organ/limb))
+#define islimb(A) (istype(A, /obj/item/bodypart))
#define isbot(A) (istype(A, /mob/living/simple_animal/bot))
diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm
index a83f410d5ff..e13ea1a5174 100644
--- a/code/__DEFINES/misc.dm
+++ b/code/__DEFINES/misc.dm
@@ -23,13 +23,13 @@
#define FRIDAY_13TH "Friday the 13th"
//Human Overlays Indexes/////////
-#define SPECIES_LAYER 27 // mutantrace colors... these are on a seperate layer in order to prvent
-#define MUTATIONS_LAYER 26 //mutations. Hulk, Tk headglows, etc
-#define BODY_BEHIND_LAYER 25
-#define BODY_LAYER 24 //underwear, undershirts, socks, eyes, lips(makeup)
-#define BODY_ADJ_LAYER 23
-#define AUGMENTS_LAYER 22
-#define FRONT_MUTATIONS_LAYER 21 //mutations that should appear above body and augments layer (e.g. laser eyes)
+#define MUTATIONS_LAYER 27 //mutations. Tk headglows, cold resistance glow, etc
+#define SPECIES_LAYER 26 // mutantrace colors... these are on a seperate layer in order to prvent
+#define BODY_BEHIND_LAYER 25 //certain mutantrace features (tail when looking south) that must appear behind the body parts
+#define BODYPARTS_LAYER 24 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag
+#define BODY_ADJ_LAYER 23 //certain mutantrace features (snout, body markings) that must appear above the body parts
+#define BODY_LAYER 22 //underwear, undershirts, socks, eyes, lips(makeup)
+#define FRONT_MUTATIONS_LAYER 21 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes)
#define DAMAGE_LAYER 20 //damage indicators (cuts and burns)
#define UNIFORM_LAYER 19
#define ID_LAYER 18
@@ -60,7 +60,7 @@
#define UNDER_BODY_LAYER BODY_LAYER+1
#define UNDER_BODY_ADJ_LAYER BODY_ADJ_LAYER+1
#define UNDER_MUTATIONS_LAYER MUTATIONS_LAYER+1
-#define UNDER_AUGMENTS_LAYER AUGMENTS_LAYER+1
+#define UNDER_BODYPARTS_LAYER BODYPARTS_LAYER+1
#define UNDER_DAMAGE_LAYER DAMAGE_LAYER+1
#define UNDER_UNIFORM_LAYER UNIFORM_LAYER+1
#define UNDER_ID_LAYER ID_LAYER+1
@@ -88,7 +88,7 @@
#define ABOVE_BODY_LAYER BODY_LAYER-1
#define ABOVE_BODY_ADJ_LAYER BODY_ADJ_LAYER-1
#define ABOVE_MUTATIONS_LAYER MUTATIONS_LAYER-1
-#define ABOVE_AUGMENTS_LAYER AUGMENTS_LAYER-1
+#define ABOVE_BODYPARTS_LAYER BODYPARTS_LAYER-1
#define ABOVE_DAMAGE_LAYER DAMAGE_LAYER-1
#define ABOVE_UNIFORM_LAYER UNIFORM_LAYER-1
#define ABOVE_ID_LAYER ID_LAYER-1
@@ -283,6 +283,7 @@ var/list/bloody_footprints_cache = list()
#define TURF_WET_WATER 1
#define TURF_WET_LUBE 2
#define TURF_WET_ICE 3
+#define TURF_WET_PERMAFROST 4
//Object/Item sharpness
#define IS_BLUNT 0
diff --git a/code/_globalvars/configuration.dm b/code/_globalvars/configuration.dm
index ded24179173..7f5b1709a6c 100644
--- a/code/_globalvars/configuration.dm
+++ b/code/_globalvars/configuration.dm
@@ -26,6 +26,9 @@ var/Debug2 = 0
var/global/comms_key = "default_pwd"
var/global/comms_allowed = 0 //By default, the server does not allow messages to be sent to it, unless the key is strong enough (this is to prevent misconfigured servers from becoming vulnerable)
+//Cross server communications
+var/global/cross_address = "byond://" //This needs to be global as the message sent contains the comms key.
+var/global/cross_allowed = 0 //Don't bother attempting to send if the address wasn't set.
//This was a define, but I changed it to a variable so it can be changed in-game.(kept the all-caps definition because... code...) -Errorage
var/MAX_EX_DEVESTATION_RANGE = 3
diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm
index 26838de68c3..826a61fb9ab 100644
--- a/code/_onclick/click.dm
+++ b/code/_onclick/click.dm
@@ -58,6 +58,9 @@
return
var/list/modifiers = params2list(params)
+ if(modifiers["shift"] && modifiers["middle"])
+ ShiftMiddleClickOn(A)
+ return
if(modifiers["shift"] && modifiers["ctrl"])
CtrlShiftClickOn(A)
return
@@ -264,6 +267,10 @@
A.CtrlShiftClick(src)
return
+/mob/proc/ShiftMiddleClickOn(atom/A)
+ src.pointed(A)
+ return
+
/atom/proc/CtrlShiftClick(mob/user)
return
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index 2fc47ab95be..ef8ecf90a8b 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -81,6 +81,7 @@
/obj/screen/inventory/hand
var/image/active_overlay
var/image/handcuff_overlay
+ var/image/blocked_overlay
/obj/screen/inventory/hand/update_icon()
..()
@@ -89,6 +90,8 @@
if(!handcuff_overlay)
var/state = (slot_id == slot_r_hand) ? "markus" : "gabrielle"
handcuff_overlay = image("icon"='icons/mob/screen_gen.dmi', "icon_state"=state)
+ if(!blocked_overlay)
+ blocked_overlay = image("icon"='icons/mob/screen_gen.dmi', "icon_state"="blocked")
overlays.Cut()
@@ -97,6 +100,12 @@
var/mob/living/carbon/C = hud.mymob
if(C.handcuffed)
overlays += handcuff_overlay
+ if(slot_id == slot_r_hand)
+ if(!C.has_right_hand())
+ overlays += blocked_overlay
+ else if(slot_id == slot_l_hand)
+ if(!C.has_left_hand())
+ overlays += blocked_overlay
if(slot_id == slot_l_hand && hud.mymob.hand)
overlays += active_overlay
diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm
index 374b077d67a..d981f93f573 100644
--- a/code/_onclick/item_attack.dm
+++ b/code/_onclick/item_attack.dm
@@ -23,7 +23,7 @@
return I.attack(src, user)
-/obj/item/proc/attack(mob/living/M, mob/living/user, def_zone)
+/obj/item/proc/attack(mob/living/M, mob/living/user)
if(flags & NOBLUDGEON)
return
if(!force)
@@ -34,7 +34,7 @@
user.lastattacked = M
M.lastattacker = user
- M.attacked_by(src, user, def_zone)
+ M.attacked_by(src, user)
add_logs(user, M, "attacked", src.name, "(INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(damtype)])")
add_fingerprint(user)
@@ -57,11 +57,11 @@
if(I.force)
user.visible_message("[user] has hit [src] with [I]!", "You hit [src] with [I]!")
-/mob/living/attacked_by(obj/item/I, mob/living/user, def_zone)
+/mob/living/attacked_by(obj/item/I, mob/living/user)
if(user != src)
user.do_attack_animation(src)
- if(send_item_attack_message(I, user, def_zone))
- if(apply_damage(I.force, I.damtype, def_zone))
+ if(send_item_attack_message(I, user))
+ if(apply_damage(I.force, I.damtype))
if(I.damtype == BRUTE)
if(prob(33))
var/turf/location = get_turf(src)
diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm
index 8f818f47a88..7a561b426ee 100644
--- a/code/_onclick/observer.dm
+++ b/code/_onclick/observer.dm
@@ -17,12 +17,15 @@
loc = get_turf(A)
/mob/dead/observer/ClickOn(var/atom/A, var/params)
-
+
if(client.click_intercept)
if(call(client.click_intercept,"InterceptClickOn")(src,params,A))
return
var/list/modifiers = params2list(params)
+ if(modifiers["shift"] && modifiers["middle"])
+ ShiftMiddleClickOn(A)
+ return
if(modifiers["middle"])
MiddleClickOn(A)
return
diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm
index a053de3efa2..5ca614626ff 100644
--- a/code/_onclick/other_mobs.dm
+++ b/code/_onclick/other_mobs.dm
@@ -5,11 +5,15 @@
Otherwise pretty standard.
*/
/mob/living/carbon/human/UnarmedAttack(atom/A, proximity)
- var/obj/item/clothing/gloves/G = gloves // not typecast specifically enough in defines
+
+ if(!has_active_hand()) //can't attack without a hand.
+ src << "You look at your arm and sigh."
+ return
// Special glove functions:
// If the gloves do anything, have them return 1 to stop
// normal attack_hand() here.
+ var/obj/item/clothing/gloves/G = gloves // not typecast specifically enough in defines
if(proximity && istype(G) && G.Touch(A,1))
return
@@ -89,9 +93,10 @@
return
var/mob/living/carbon/ML = A
var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg")
- var/obj/item/organ/limb/affecting = null
- if(ishuman(ML)) // why the hell is this not more general
- affecting = ML:get_organ(ran_zone(dam_zone))
+ var/obj/item/bodypart/affecting = null
+ if(ishuman(ML))
+ var/mob/living/carbon/human/H = ML
+ affecting = H.get_bodypart(ran_zone(dam_zone))
var/armor = ML.run_armor_check(affecting, "melee")
if(prob(75))
ML.apply_damage(rand(1,3), BRUTE, affecting, armor)
diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm
index 743d1328a13..067730d32bf 100644
--- a/code/controllers/configuration.dm
+++ b/code/controllers/configuration.dm
@@ -202,6 +202,7 @@
var/client_error_version = 0
var/client_error_message = "Your version of byond is too old, may have issues, and is blocked from accessing this server."
+ var/cross_name = "Other server"
/datum/configuration/New()
var/list/L = subtypesof(/datum/game_mode)
@@ -359,6 +360,12 @@
global.comms_key = value
if(value != "default_pwd" && length(value) > 6) //It's the default value or less than 6 characters long, warn badmins
global.comms_allowed = 1
+ if("cross_server_address")
+ global.cross_address = value
+ if(value != "byond:\\address:port")
+ global.cross_allowed = 1
+ if("cross_comms_name")
+ cross_name = value
if("see_own_notes")
config.see_own_notes = 1
if("soft_popcap")
diff --git a/code/controllers/master.dm b/code/controllers/master.dm
index 424ddf8f9c8..d48be2c82c4 100644
--- a/code/controllers/master.dm
+++ b/code/controllers/master.dm
@@ -69,6 +69,15 @@ var/global/datum/controller/master/Master = new()
return
world << "Initializing subsystems..."
+ var/tally = 0
+ var/obj/effect/spawner/lootdrop/maintenance/L = new()
+ // Grab it before it gets deleted
+ var/list/loot = L.loot.Copy()
+ for(var/item in loot)
+ tally += loot[item]
+ world.log << "There are [tally] items in the \
+ maintenance loot table."
+
preloadTemplates()
// Pick a random away mission.
createRandomZlevel()
diff --git a/code/controllers/subsystem.dm b/code/controllers/subsystem.dm
index dea6e9645a0..7decbd16a22 100644
--- a/code/controllers/subsystem.dm
+++ b/code/controllers/subsystem.dm
@@ -92,4 +92,5 @@
/datum/subsystem/on_varedit(edited_var)
if (edited_var == "can_fire" && can_fire)
next_fire = world.time + wait
+ ..()
diff --git a/code/controllers/subsystem/voting.dm b/code/controllers/subsystem/voting.dm
index 0549457940e..6279e25fc84 100644
--- a/code/controllers/subsystem/voting.dm
+++ b/code/controllers/subsystem/voting.dm
@@ -145,9 +145,19 @@ var/datum/subsystem/vote/SSvote
/datum/subsystem/vote/proc/initiate_vote(vote_type, initiator_key)
if(!mode)
- if(started_time != null)
+ if(started_time)
var/next_allowed_time = (started_time + config.vote_delay)
- if(next_allowed_time > world.time)
+ if(mode)
+ usr << "There is already a vote in progress! please wait for it to finish."
+ return 0
+
+ var/admin = FALSE
+ var/ckey = ckey(initiator_key)
+ if((admin_datums[ckey]) || (ckey in deadmins))
+ admin = TRUE
+
+ if(next_allowed_time > world.time && !admin)
+ usr << "A vote was initiated recently, you must wait roughly [(next_allowed_time-world.time)/10] seconds before a new vote can be started!"
return 0
reset()
diff --git a/code/datums/action.dm b/code/datums/action.dm
index 59976843017..677ccc18254 100644
--- a/code/datums/action.dm
+++ b/code/datums/action.dm
@@ -270,18 +270,21 @@
check_flags = AB_CHECK_CONSCIOUS
/datum/action/item_action/organ_action/IsAvailable()
- var/obj/item/organ/internal/I = target
+ var/obj/item/organ/I = target
if(!I.owner)
return 0
return ..()
-/datum/action/item_action/organ_action/toggle
-
/datum/action/item_action/organ_action/toggle/New(Target)
..()
name = "Toggle [target.name]"
button.name = name
+/datum/action/item_action/organ_action/use/New(Target)
+ ..()
+ name = "Use [target.name]"
+ button.name = name
+
diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm
index a436272faae..1908392d673 100644
--- a/code/datums/datumvars.dm
+++ b/code/datums/datumvars.dm
@@ -1,6 +1,10 @@
// reference: /client/proc/modify_variables(var/atom/O, var/param_var_name = null, var/autodetect_class = 0)
-datum/proc/on_varedit(modified_var) //called whenever a var is edited
+/datum
+ var/var_edited = 0 //Warrenty void if seal is broken
+
+/datum/proc/on_varedit(modified_var) //called whenever a var is edited
+ var_edited = 1
return
/client/proc/debug_variables(datum/D in world)
@@ -218,6 +222,8 @@ datum/proc/on_varedit(modified_var) //called whenever a var is edited
if(src.holder && src.holder.marked_datum && src.holder.marked_datum == D)
body += "
Marked Object"
+ if(D.var_edited)
+ body += "
Var Edited"
body += ""
body += ""
@@ -270,6 +276,7 @@ datum/proc/on_varedit(modified_var) //called whenever a var is edited
if(ishuman(D))
body += ""
body += ""
+ body += ""
body += ""
body += ""
body += ""
@@ -887,6 +894,25 @@ body
H.set_species(newtype)
H.dna.species.admin_set_species(H,old_species)
+ else if(href_list["removebodypart"])
+ if(!check_rights(R_SPAWN))
+ return
+
+ var/mob/living/carbon/human/H = locate(href_list["removebodypart"])
+ if(!istype(H))
+ usr << "This can only be done to instances of type /mob/living/carbon/human"
+ return
+
+ var/result = input(usr, "Please choose which body part to remove","Remove Body Part") as null|anything in list("head", "l_arm", "r_arm", "l_leg", "r_leg")
+
+ if(!H)
+ usr << "Mob doesn't exist anymore"
+ return
+
+ if(result)
+ var/obj/item/bodypart/BP = H.get_bodypart(result)
+ if(BP)
+ BP.drop_limb()
else if(href_list["purrbation"])
if(!check_rights(R_SPAWN))
diff --git a/code/datums/diseases/_MobProcs.dm b/code/datums/diseases/_MobProcs.dm
index f5fcf511f2f..001614a66aa 100644
--- a/code/datums/diseases/_MobProcs.dm
+++ b/code/datums/diseases/_MobProcs.dm
@@ -140,6 +140,6 @@
/mob/living/carbon/human/CanContractDisease(datum/disease/D)
- if(dna && VIRUSIMMUNE in dna.species.specflags)
+ if(dna && (VIRUSIMMUNE in dna.species.specflags))
return 0
return ..()
\ No newline at end of file
diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm
index e96b40ca822..87a55138682 100644
--- a/code/datums/diseases/_disease.dm
+++ b/code/datums/diseases/_disease.dm
@@ -164,7 +164,7 @@ var/list/diseases = subtypesof(/datum/disease)
if(ishuman(affected_mob))
var/mob/living/carbon/human/H = affected_mob
for(var/obj/item/organ/O in required_organs)
- if(!locate(O) in H.organs)
+ if(!locate(O) in H.bodyparts)
if(!locate(O) in H.internal_organs)
cure()
return
diff --git a/code/datums/diseases/advance/symptoms/damage_converter.dm b/code/datums/diseases/advance/symptoms/damage_converter.dm
index ce8c644a67f..c6b4f0a87d0 100644
--- a/code/datums/diseases/advance/symptoms/damage_converter.dm
+++ b/code/datums/diseases/advance/symptoms/damage_converter.dm
@@ -40,12 +40,12 @@ Bonus
if(istype(M, /mob/living/carbon/human))
var/mob/living/carbon/human/H = M
- var/list/parts = H.get_damaged_organs(1,1) //1,1 because it needs inputs.
+ var/list/parts = H.get_damaged_bodyparts(1,1) //1,1 because it needs inputs.
if(!parts.len)
return
- for(var/obj/item/organ/limb/L in parts)
+ for(var/obj/item/bodypart/L in parts)
L.heal_damage(get_damage, get_damage, 0)
M.adjustToxLoss(get_damage*parts.len)
diff --git a/code/datums/diseases/appendicitis.dm b/code/datums/diseases/appendicitis.dm
index 499a5aaa924..77ec5a583d4 100644
--- a/code/datums/diseases/appendicitis.dm
+++ b/code/datums/diseases/appendicitis.dm
@@ -12,7 +12,7 @@
disease_flags = CAN_CARRY|CAN_RESIST
spread_flags = NON_CONTAGIOUS
visibility_flags = HIDDEN_PANDEMIC
- required_organs = list(/obj/item/organ/internal/appendix)
+ required_organs = list(/obj/item/organ/appendix)
/datum/disease/appendicitis/stage_act()
..()
@@ -21,7 +21,7 @@
if(prob(5))
affected_mob.emote("cough")
if(2)
- var/obj/item/organ/internal/appendix/A = affected_mob.getorgan(/obj/item/organ/internal/appendix)
+ var/obj/item/organ/appendix/A = affected_mob.getorgan(/obj/item/organ/appendix)
if(A)
A.inflamed = 1
A.update_icon()
diff --git a/code/datums/diseases/brainrot.dm b/code/datums/diseases/brainrot.dm
index 01464fe65fe..8a0349854cb 100644
--- a/code/datums/diseases/brainrot.dm
+++ b/code/datums/diseases/brainrot.dm
@@ -9,7 +9,7 @@
viable_mobtypes = list(/mob/living/carbon/human)
cure_chance = 15//higher chance to cure, since two reagents are required
desc = "This disease destroys the braincells, causing brain fever, brain necrosis and general intoxication."
- required_organs = list(/obj/item/organ/limb/head)
+ required_organs = list(/obj/item/bodypart/head)
severity = DANGEROUS
/datum/disease/brainrot/stage_act() //Removed toxloss because damaging diseases are pretty horrible. Last round it killed the entire station because the cure didn't work -- Urist -ACTUALLY Removed rather than commented out, I don't see it returning - RR
diff --git a/code/datums/diseases/dna_spread.dm b/code/datums/diseases/dna_spread.dm
index d627fe8edbe..11a8eebbe5d 100644
--- a/code/datums/diseases/dna_spread.dm
+++ b/code/datums/diseases/dna_spread.dm
@@ -18,7 +18,7 @@
..()
if(!affected_mob.dna)
cure()
- if(affected_mob.dna.species.specflags & NOTRANSSTING) //Only species that can be spread by transformation sting can be spread by the retrovirus
+ if(NOTRANSSTING in affected_mob.dna.species.specflags) //Only species that can be spread by transformation sting can be spread by the retrovirus
cure()
if(!strain_data["dna"])
diff --git a/code/datums/diseases/tuberculosis.dm b/code/datums/diseases/tuberculosis.dm
index 6086d6d0b22..b2d4fb9065b 100644
--- a/code/datums/diseases/tuberculosis.dm
+++ b/code/datums/diseases/tuberculosis.dm
@@ -8,7 +8,7 @@
viable_mobtypes = list(/mob/living/carbon/human)
cure_chance = 5//like hell are you getting out of hell
desc = "A rare highly transmittable virulent virus. Few samples exist, rumoured to be carefully grown and cultured by clandestine bio-weapon specialists. Causes fever, blood vomiting, lung damage, weight loss, and fatigue."
- required_organs = list(/obj/item/organ/limb/head)
+ required_organs = list(/obj/item/bodypart/head)
severity = DANGEROUS
/datum/disease/tuberculosis/stage_act() //it begins
diff --git a/code/datums/diseases/wizarditis.dm b/code/datums/diseases/wizarditis.dm
index 25c73a7f0ed..bc9d70fc63c 100644
--- a/code/datums/diseases/wizarditis.dm
+++ b/code/datums/diseases/wizarditis.dm
@@ -11,7 +11,7 @@
permeability_mod = 0.75
desc = "Some speculate, that this virus is the cause of Wizard Federation existance. Subjects affected show the signs of mental retardation, yelling obscure sentences or total gibberish. On late stages subjects sometime express the feelings of inner power, and, cite, 'the ability to control the forces of cosmos themselves!' A gulp of strong, manly spirits usually reverts them to normal, humanlike, condition."
severity = HARMFUL
- required_organs = list(/obj/item/organ/limb/head)
+ required_organs = list(/obj/item/bodypart/head)
/*
BIRUZ BENNAR
diff --git a/code/datums/martial.dm b/code/datums/martial.dm
index d1b498f5070..46e18dde7d7 100644
--- a/code/datums/martial.dm
+++ b/code/datums/martial.dm
@@ -41,7 +41,7 @@
add_logs(A, D, "attempted to [atk_verb]")
return 0
- var/obj/item/organ/limb/affecting = D.get_organ(ran_zone(A.zone_selected))
+ var/obj/item/bodypart/affecting = D.get_bodypart(ran_zone(A.zone_selected))
var/armor_block = D.run_armor_check(affecting, "melee")
playsound(D.loc, A.dna.species.attack_sound, 25, 1, -1)
@@ -106,7 +106,7 @@
return 0
- var/obj/item/organ/limb/affecting = D.get_organ(ran_zone(A.zone_selected))
+ var/obj/item/bodypart/affecting = D.get_bodypart(ran_zone(A.zone_selected))
var/armor_block = D.run_armor_check(affecting, "melee")
playsound(D.loc, A.dna.species.attack_sound, 25, 1, -1)
@@ -128,64 +128,6 @@
D.forcesay(hit_appends)
return 1
-/datum/martial_art/wrestling
- name = "Wrestling"
- help_verb = /mob/living/carbon/human/proc/wrestling_help
-
-// combo refence since wrestling uses a different format to sleeping carp and plasma fist.
-// Clinch "G"
-// Suplex "GD"
-// Advanced grab "G"
-
-/datum/martial_art/wrestling/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
- D.grabbedby(A,1)
- var/obj/item/weapon/grab/G = A.get_active_hand()
- if(G && prob(50))
- G.state = GRAB_AGGRESSIVE
- D.visible_message("[A] has [D] in a clinch!", \
- "[A] has [D] in a clinch!")
- else
- D.visible_message("[A] fails to get [D] in a clinch!", \
- "[A] fails to get [D] in a clinch!")
- return 1
-
-
-/datum/martial_art/wrestling/proc/Suplex(mob/living/carbon/human/A, mob/living/carbon/human/D)
-
- D.visible_message("[A] suplexes [D]!", \
- "[A] suplexes [D]!")
- D.forceMove(A.loc)
- var/armor_block = D.run_armor_check(null, "melee")
- D.apply_damage(30, BRUTE, null, armor_block)
- D.apply_effect(6, WEAKEN, armor_block)
- add_logs(A, D, "suplexed")
-
- A.SpinAnimation(10,1)
-
- D.SpinAnimation(10,1)
- spawn(3)
- armor_block = A.run_armor_check(null, "melee")
- A.apply_effect(4, WEAKEN, armor_block)
- return
-
-/datum/martial_art/wrestling/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
- if(istype(A.get_inactive_hand(),/obj/item/weapon/grab))
- var/obj/item/weapon/grab/G = A.get_inactive_hand()
- if(G.affecting == D)
- Suplex(A,D)
- return 1
- harm_act(A,D)
- return 1
-
-/datum/martial_art/wrestling/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
- D.grabbedby(A,1)
- D.visible_message("[A] holds [D] down!", \
- "[A] holds [D] down!")
- var/obj/item/organ/limb/affecting = D.get_organ(ran_zone(A.zone_selected))
- var/armor_block = D.run_armor_check(affecting, "melee")
- D.apply_damage(10, STAMINA, affecting, armor_block)
- return 1
-
/mob/living/carbon/human/proc/wrestling_help()
set name = "Recall Teachings"
set desc = "Remember how to wrestle."
@@ -452,7 +394,6 @@
if(slot == slot_belt)
var/mob/living/carbon/human/H = user
style.teach(H,1)
- user << "You have an urge to flex your muscles and get into a fight. You have the knowledge of a thousand wrestlers before you. You can remember more by using the Recall teaching verb in the wrestling tab."
return
/obj/item/weapon/storage/belt/champion/wrestling/dropped(mob/user)
@@ -461,7 +402,6 @@
var/mob/living/carbon/human/H = user
if(H.get_item_by_slot(slot_belt) == src)
style.remove(H)
- user << "You no longer have an urge to flex your muscles."
return
/obj/item/weapon/plasma_fist_scroll
diff --git a/code/datums/martial/wrestling.dm b/code/datums/martial/wrestling.dm
new file mode 100644
index 00000000000..c80217e7754
--- /dev/null
+++ b/code/datums/martial/wrestling.dm
@@ -0,0 +1,421 @@
+/datum/martial_art/wrestling
+ name = "Wrestling"
+ var/datum/action/slam/slam = new/datum/action/slam()
+ var/datum/action/throw_wrassle/throw_wrassle = new/datum/action/throw_wrassle()
+ var/datum/action/kick/kick = new/datum/action/kick()
+ var/datum/action/strike/strike = new/datum/action/strike()
+ var/datum/action/drop/drop = new/datum/action/drop()
+
+/datum/martial_art/wrestling/proc/check_streak(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
+ switch(streak)
+ if("drop")
+ streak = ""
+ drop(A,D)
+ return 1
+ if("strike")
+ streak = ""
+ strike(A,D)
+ return 1
+ if("kick")
+ streak = ""
+ kick(A,D)
+ return 1
+ if("throw")
+ streak = ""
+ throw_wrassle(A,D)
+ return 1
+ if("slam")
+ streak = ""
+ slam(A,D)
+ return 1
+ return 0
+
+/datum/action/slam
+ name = "Slam (Cinch) - Slam a grappled opponent into the floor."
+ button_icon_state = "wrassle_slam"
+
+/datum/action/slam/Trigger()
+ if(owner.incapacitated())
+ owner << "You can't WRESTLE while you're OUT FOR THE COUNT."
+ return
+ owner.visible_message("[owner] prepares to BODY SLAM!", "Your next attack will be a BODY SLAM.")
+ var/mob/living/carbon/human/H = owner
+ H.martial_art.streak = "slam"
+
+/datum/action/throw_wrassle
+ name = "Throw (Cinch) - Spin a cinched opponent around and throw them."
+ button_icon_state = "wrassle_throw"
+
+/datum/action/throw_wrassle/Trigger()
+ if(owner.incapacitated())
+ owner << "You can't WRESTLE while you're OUT FOR THE COUNT."
+ return
+ owner.visible_message("[owner] prepares to THROW!", "Your next attack will be a THROW.")
+ var/mob/living/carbon/human/H = owner
+ H.martial_art.streak = "throw"
+
+/datum/action/kick
+ name = "Kick - A powerful kick, sends people flying away from you. Also useful for escaping from bad situations."
+ button_icon_state = "wrassle_kick"
+
+/datum/action/kick/Trigger()
+ if(owner.incapacitated())
+ owner << "You can't WRESTLE while you're OUT FOR THE COUNT."
+ return
+ owner.visible_message("[owner] prepares to KICK!", "Your next attack will be a KICK.")
+ var/mob/living/carbon/human/H = owner
+ H.martial_art.streak = "kick"
+
+/datum/action/strike
+ name = "Strike - Hit a neaby opponent with a quick attack."
+ button_icon_state = "wrassle_strike"
+
+/datum/action/strike/Trigger()
+ if(owner.incapacitated())
+ owner << "You can't WRESTLE while you're OUT FOR THE COUNT."
+ return
+ owner.visible_message("[owner] prepares to STRIKE!", "Your next attack will be a STRIKE.")
+ var/mob/living/carbon/human/H = owner
+ H.martial_art.streak = "strike"
+
+/datum/action/drop
+ name = "Drop - Smash down onto an opponent."
+ button_icon_state = "wrassle_drop"
+
+/datum/action/drop/Trigger()
+ if(owner.incapacitated())
+ owner << "You can't WRESTLE while you're OUT FOR THE COUNT."
+ return
+ owner.visible_message("[owner] prepares to LEG DROP!", "Your next attack will be a LEG DROP.")
+ var/mob/living/carbon/human/H = owner
+ H.martial_art.streak = "drop"
+
+/datum/martial_art/wrestling/teach(var/mob/living/carbon/human/H,var/make_temporary=0)
+ ..()
+ H << "SNAP INTO A THIN TIM!"
+ H << "Place your cursor over a move at the top of the screen to see what it does."
+ drop.Grant(H)
+ kick.Grant(H)
+ slam.Grant(H)
+ throw_wrassle.Grant(H)
+ strike.Grant(H)
+
+/datum/martial_art/wrestling/remove(var/mob/living/carbon/human/H)
+ ..()
+ H << "You no longer feel that the tower of power is too sweet to be sour..."
+ drop.Remove(H)
+ kick.Remove(H)
+ slam.Remove(H)
+ throw_wrassle.Remove(H)
+ strike.Remove(H)
+
+/datum/martial_art/wrestling/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
+ if(check_streak(A,D))
+ return 1
+ ..()
+
+/datum/martial_art/wrestling/proc/throw_wrassle(mob/living/carbon/human/A, mob/living/carbon/human/D)
+ if(!D)
+ return
+ if(!A.pulling || A.pulling != D)
+ A << "You need to have [D] in a cinch!"
+ return
+ D.forceMove(A.loc)
+ D.dir = get_dir(D, A)
+
+ D.Stun(4)
+ A.visible_message("[A] starts spinning around with [D]!")
+ A.emote("scream")
+
+ for (var/i = 0, i < 20, i++)
+ var/delay = 5
+ switch (i)
+ if (17 to INFINITY)
+ delay = 0.25
+ if (14 to 16)
+ delay = 0.5
+ if (9 to 13)
+ delay = 1
+ if (5 to 8)
+ delay = 2
+ if (0 to 4)
+ delay = 3
+
+ if (A && D)
+
+ if (get_dist(A, D) > 1)
+ A << "[D] is too far away!"
+ return 0
+
+ if (!isturf(A.loc) || !isturf(D.loc))
+ A << "You can't throw [D] from here!"
+ return 0
+
+ A.dir = turn(A.dir, 90)
+ var/turf/T = get_step(A, A.dir)
+ var/turf/S = D.loc
+ if ((S && isturf(S) && S.Exit(D)) && (T && isturf(T) && T.Enter(A)))
+ D.forceMove(T)
+ D.dir = get_dir(D, A)
+ else
+ return 0
+
+ sleep(delay)
+
+ if (A && D)
+ // These are necessary because of the sleep call.
+
+ if (get_dist(A, D) > 1)
+ A << "[D] is too far away!"
+ return 0
+
+ if (!isturf(A.loc) || !isturf(D.loc))
+ A << "You can't throw [D] from here!"
+ return 0
+
+ D.forceMove(A.loc) // Maybe this will help with the wallthrowing bug.
+
+ A.visible_message("[A] throws [D]!")
+ playsound(A.loc, "swing_hit", 50, 1)
+ var/turf/T = get_edge_target_turf(A, A.dir)
+ if (T && isturf(T))
+ if (!D.stat)
+ D.emote("scream")
+ D.throw_at(T, 10, 4)
+ D.Weaken(2)
+
+ return 0
+
+/datum/martial_art/wrestling/proc/slam(mob/living/carbon/human/A, mob/living/carbon/human/D)
+ if(!D)
+ return
+ if(!A.pulling || A.pulling != D)
+ A << "You need to have [D] in a cinch!"
+ return
+ D.forceMove(A.loc)
+ A.dir = get_dir(A, D)
+ D.dir = get_dir(D, A)
+
+ A.visible_message("[A] lifts [D] up!")
+
+ spawn (0)
+ if (D)
+ animate(D, transform = matrix(180, MATRIX_ROTATE), time = 1, loop = 0)
+ sleep (15)
+ if (D)
+ animate(transform = null, time = 1, loop = 0)
+
+ for (var/i = 0, i < 3, i++)
+ if (A && D)
+ A.pixel_y += 3
+ D.pixel_y += 3
+ A.dir = turn(A.dir, 90)
+ D.dir = turn(D.dir, 90)
+
+ switch (A.dir)
+ if (NORTH)
+ D.pixel_x = A.pixel_x
+ if (SOUTH)
+ D.pixel_x = A.pixel_x
+ if (EAST)
+ D.pixel_x = A.pixel_x - 8
+ if (WEST)
+ D.pixel_x = A.pixel_x + 8
+
+ if (get_dist(A, D) > 1)
+ A << "[D] is too far away!"
+ A.pixel_x = 0
+ A.pixel_y = 0
+ D.pixel_x = 0
+ D.pixel_y = 0
+ return 0
+
+ if (!isturf(A.loc) || !isturf(D.loc))
+ A << "You can't slam [D] here!"
+ A.pixel_x = 0
+ A.pixel_y = 0
+ D.pixel_x = 0
+ D.pixel_y = 0
+ return 0
+ else
+ if (A)
+ A.pixel_x = 0
+ A.pixel_y = 0
+ if (D)
+ D.pixel_x = 0
+ D.pixel_y = 0
+ return 0
+
+ sleep (1)
+
+ if (A && D)
+ A.pixel_x = 0
+ A.pixel_y = 0
+ D.pixel_x = 0
+ D.pixel_y = 0
+
+ if (get_dist(A, D) > 1)
+ A << "[D] is too far away!"
+ return 0
+
+ if (!isturf(A.loc) || !isturf(D.loc))
+ A << "You can't slam [D] here!"
+ return 0
+
+ D.forceMove(A.loc)
+
+ var/fluff = "body-slam"
+ switch(pick(2,3))
+ if (2)
+ fluff = "turbo [fluff]"
+ if (3)
+ fluff = "atomic [fluff]"
+
+ A.visible_message("[A] [fluff] [D]!")
+ playsound(A.loc, "swing_hit", 50, 1)
+ if (!D.stat)
+ D.emote("scream")
+ D.weakened += 2
+ D.stunned += 2
+
+ switch(rand(1,3))
+ if (2)
+ D.adjustBruteLoss(rand(20,30))
+ if (3)
+ D.ex_act(3)
+ else
+ D.adjustBruteLoss(rand(10,20))
+ else
+ D.ex_act(3)
+
+ else
+ if (A)
+ A.pixel_x = 0
+ A.pixel_y = 0
+ if (D)
+ D.pixel_x = 0
+ D.pixel_y = 0
+
+
+ return 0
+
+/datum/martial_art/wrestling/proc/strike(mob/living/carbon/human/A, mob/living/carbon/human/D)
+ if(!D)
+ return
+ var/turf/T = get_turf(A)
+ if (T && isturf(T) && D && isturf(D.loc))
+ for (var/i = 0, i < 4, i++)
+ A.dir = turn(A.dir, 90)
+
+ A.forceMove(D.loc)
+ spawn (4)
+ if (A && (T && isturf(T) && get_dist(A, T) <= 1))
+ A.forceMove(T)
+
+ A.visible_message("[A] headbutts [D]!")
+ D.adjustBruteLoss(rand(10,20))
+ playsound(A.loc, "swing_hit", 50, 1)
+ D.Paralyse(1)
+
+/datum/martial_art/wrestling/proc/kick(mob/living/carbon/human/A, mob/living/carbon/human/D)
+ if(!D)
+ return
+ A.emote("scream")
+ A.emote("flip")
+ A.dir = turn(A.dir, 90)
+
+ A.visible_message("[A] roundhouse-kicks [D]!")
+ playsound(A.loc, "swing_hit", 50, 1)
+ D.adjustBruteLoss(rand(10,20))
+
+ var/turf/T = get_edge_target_turf(A, get_dir(A, get_step_away(D, A)))
+ if (T && isturf(T))
+ D.Weaken(1)
+ D.throw_at(T, 3, 2)
+
+/datum/martial_art/wrestling/proc/drop(mob/living/carbon/human/A, mob/living/carbon/human/D)
+ if(!D)
+ return
+ var/obj/surface = null
+ var/turf/ST = null
+ var/falling = 0
+
+ for (var/obj/O in oview(1, A))
+ if (O.density == 1)
+ if (O == A) continue
+ if (O == D) continue
+ if (O.opacity) continue
+ else
+ surface = O
+ ST = get_turf(O)
+ break
+
+ if (surface && (ST && isturf(ST)))
+ A.forceMove(ST)
+ A.visible_message("[A] climbs onto [surface]!")
+ A.pixel_y = 10
+ falling = 1
+ sleep(10)
+
+ if (A && D)
+ // These are necessary because of the sleep call.
+
+ if ((falling == 0 && get_dist(A, D) > 1) || (falling == 1 && get_dist(A, D) > 2)) // We climbed onto stuff.
+ A.pixel_y = 0
+ if (falling == 1)
+ A.visible_message("...and dives head-first into the ground, ouch!")
+ A.adjustBruteLoss(rand(10,20))
+ A.Weaken(3)
+ A << "[D] is too far away!"
+ return 0
+
+ if (!isturf(A.loc) || !isturf(D.loc))
+ A.pixel_y = 0
+ A << "You can't drop onto [D] from here!"
+ return 0
+
+ if(A)
+ animate(A, transform = matrix(90, MATRIX_ROTATE), time = 1, loop = 0)
+ sleep(10)
+ if(A)
+ animate(A, transform = null, time = 1, loop = 0)
+
+ A.forceMove(D.loc)
+
+ A.visible_message("[A] leg-drops [D]!")
+ playsound(A.loc, "swing_hit", 50, 1)
+ A.emote("scream")
+
+ if (falling == 1)
+ if (prob(33) || D.stat)
+ D.ex_act(3)
+ else
+ D.adjustBruteLoss(rand(20,30))
+ else
+ D.adjustBruteLoss(rand(20,30))
+
+ D.Weaken(1)
+ D.Stun(2)
+
+ A.pixel_y = 0
+
+ else
+ if (A)
+ A.pixel_y = 0
+ return
+
+/datum/martial_art/wrestling/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
+ if(check_streak(A,D))
+ return 1
+ ..()
+
+/datum/martial_art/wrestling/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
+ if(check_streak(A,D))
+ return 1
+ if(A.pulling == D)
+ return 1
+ A.start_pulling(D)
+ D.visible_message("[A] gets [D] in a cinch!", \
+ "[A] gets [D] in a cinch!")
+ D.Stun(rand(3,5))
+ return 1
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index 933d8ff2db8..1587bc4b8d2 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -146,11 +146,7 @@
/datum/mind/proc/remove_cultist()
if(src in ticker.mode.cult)
- ticker.mode.cult -= src
- ticker.mode.update_cult_icons_removed(src)
- var/datum/game_mode/cult/cult = ticker.mode
- if(istype(cult))
- cult.memorize_cult_objectives(src)
+ ticker.mode.remove_cultist(src, 0, 0)
special_role = null
remove_objectives()
remove_antag_equip()
@@ -488,20 +484,20 @@
if(ticker.mode.config_tag == "handofgod")
text = uppertext(text)
text = "[text]: "
- if(src in ticker.mode.red_deity_prophets)
- text += "RED PROPHET|red follower|employee|blue follower|blue prophet|red god|blue god"
+ if (src in ticker.mode.red_deities)
+ text += "RED GOD|red prophet|red follower|employee|blue god|blue prophet|blue follower"
+ else if(src in ticker.mode.red_deity_prophets)
+ text += "red god|RED PROPHET|red follower|employee|blue god|blue prophet|blue follower"
else if (src in ticker.mode.red_deity_followers)
- text += "red prophet|RED FOLLOWER|employee|blue follower|blue prophet|red god|blue god"
- else if (src in ticker.mode.blue_deity_followers)
- text += "red prophet|red follower|employee|BLUE FOLLOWER|blue prophet|red god|blue god"
- else if (src in ticker.mode.blue_deity_prophets)
- text += "red prophet|red follower|employee|blue follower|BLUE PROPHET|red god|blue god"
- else if (src in ticker.mode.red_deities)
- text += "red prophet|red follower|employee|blue follower|blue prophet|RED GOD|blue god"
+ text += "red god|red prophet|RED FOLLOWER|employee|blue god|blue prophet|blue follower"
else if (src in ticker.mode.blue_deities)
- text += "red prophet|red follower|employee|blue follower|blue prophet|red god|BLUE GOD"
+ text += "red god|red prophet|red follower|employee|BLUE GOD|blue prophet|blue follower"
+ else if (src in ticker.mode.blue_deity_prophets)
+ text += "red god|red prophet|red follower|employee|blue god|BLUE PROPHET|blue follower"
+ else if (src in ticker.mode.blue_deity_followers)
+ text += "red god|red prophet|red follower|employee|blue god|blue prophet|BLUE FOLLOWER"
else
- text += "red prophet|red follower|EMPLOYEE|blue follower|blue prophet|red god|blue god"
+ text += "red god|red prophet|red follower|EMPLOYEE|blue god|blue prophet|blue follower"
if(current && current.client && (ROLE_HOG_GOD in current.client.prefs.be_special))
text += "|HOG God Enabled in Prefs"
@@ -983,12 +979,11 @@
switch(href_list["cult"])
if("clear")
remove_cultist()
- current << "You have been brainwashed! You are no longer a cultist!"
message_admins("[key_name_admin(usr)] has de-cult'ed [current].")
log_admin("[key_name(usr)] has de-cult'ed [current].")
if("cultist")
if(!(src in ticker.mode.cult))
- ticker.mode.add_cultist(src)
+ ticker.mode.add_cultist(src, 0)
message_admins("[key_name_admin(usr)] has cult'ed [current].")
log_admin("[key_name(usr)] has cult'ed [current].")
if("tome")
diff --git a/code/datums/mutations.dm b/code/datums/mutations.dm
index 4a74b38236d..3111a81c8d4 100644
--- a/code/datums/mutations.dm
+++ b/code/datums/mutations.dm
@@ -19,6 +19,7 @@
var/layer_used = MUTATIONS_LAYER //which mutation layer to use
var/list/species_allowed = list() //to restrict mutation to only certain species
var/health_req //minimum health required to acquire the mutation
+ var/limb_req //required limbs to acquire this mutation
var/time_coeff = 1 //coefficient for timed mutations
/datum/mutation/human/proc/force_give(mob/living/carbon/human/owner)
@@ -61,6 +62,8 @@
return 1
if(health_req && owner.health < health_req)
return 1
+ if(limb_req && !owner.get_bodypart(limb_req))
+ return 1
owner.dna.mutations.Add(src)
if(text_gain_indication)
owner << text_gain_indication
@@ -120,24 +123,16 @@
species_allowed = list("human") //no skeleton/lizard hulk
health_req = 25
-/datum/mutation/human/hulk/New()
- ..()
- visual_indicators |= image("icon"='icons/effects/genetics.dmi', "icon_state"="hulk_f_s", "layer"=-MUTATIONS_LAYER)
- visual_indicators |= image("icon"='icons/effects/genetics.dmi', "icon_state"="hulk_m_s", "layer"=-MUTATIONS_LAYER)
-
/datum/mutation/human/hulk/on_acquiring(mob/living/carbon/human/owner)
if(..())
return
var/status = CANSTUN | CANWEAKEN | CANPARALYSE | CANPUSH
owner.status_flags &= ~status
+ owner.update_body_parts()
/datum/mutation/human/hulk/on_attack_hand(mob/living/carbon/human/owner, atom/target)
return target.attack_hulk(owner)
-/datum/mutation/human/hulk/get_visual_indicator(mob/living/carbon/human/owner)
- var/g = (owner.gender == FEMALE) ? 1 : 2
- return visual_indicators[g]
-
/datum/mutation/human/hulk/on_life(mob/living/carbon/human/owner)
if(owner.health < 0)
on_losing(owner)
@@ -147,6 +142,7 @@
if(..())
return
owner.status_flags |= CANSTUN | CANWEAKEN | CANPARALYSE | CANPUSH
+ owner.update_body_parts()
/datum/mutation/human/hulk/say_mod(message)
if(message)
@@ -160,6 +156,7 @@
get_chance = 20
lowest_value = 256 * 12
text_gain_indication = "You feel smarter!"
+ limb_req = "head"
/datum/mutation/human/telekinesis/New()
..()
@@ -613,6 +610,7 @@
dna_block = NON_SCANNABLE
text_gain_indication = "You feel pressure building up behind your eyes."
layer_used = FRONT_MUTATIONS_LAYER
+ limb_req = "head"
/datum/mutation/human/laser_eyes/New()
..()
diff --git a/code/game/asteroid.dm b/code/game/asteroid.dm
index 4b1786c596a..37e7a2f52b3 100644
--- a/code/game/asteroid.dm
+++ b/code/game/asteroid.dm
@@ -65,7 +65,7 @@ var/global/max_secret_rooms = 6
walltypes = list(/turf/closed/wall/r_wall=2,/turf/closed/wall=2,/turf/closed/mineral/random/high_chance=1)
floortypes = list(/turf/open/floor/plasteel,/turf/open/floor/engine)
treasureitems = list(/mob/living/simple_animal/bot/medbot/mysterious=1, /obj/item/weapon/circular_saw=1, /obj/structure/closet/crate/critter=2, /mob/living/simple_animal/pet/cat/space=1)
- fluffitems = list(/obj/effect/decal/cleanable/blood=5,/obj/item/organ/internal/appendix=2,/obj/structure/closet/crate/freezer=2,
+ fluffitems = list(/obj/effect/decal/cleanable/blood=5,/obj/item/organ/appendix=2,/obj/structure/closet/crate/freezer=2,
/obj/structure/table/optable=1,/obj/item/weapon/scalpel=1,/obj/item/weapon/storage/firstaid/regular=3,
/obj/item/weapon/tank/internals/anesthetic=1, /obj/item/weapon/surgical_drapes=2, /obj/item/device/mass_spectrometer/adv=1,/obj/item/clothing/glasses/hud/health=1)
@@ -76,7 +76,7 @@ var/global/max_secret_rooms = 6
treasureitems = list(/obj/item/device/soulstone/anybody=1, /obj/item/clothing/suit/space/cult=1, /obj/item/weapon/bedsheet/cult=2,
/obj/item/clothing/suit/cultrobes=2, /mob/living/simple_animal/hostile/creature=3)
fluffitems = list(/obj/effect/gateway=1,/obj/effect/gibspawner=1,/obj/structure/cult/talisman=1,/obj/item/toy/crayon/red=2,
- /obj/item/organ/internal/heart=2, /obj/effect/decal/cleanable/blood=4,/obj/structure/table/wood=2,/obj/item/weapon/ectoplasm=3,
+ /obj/item/organ/heart=2, /obj/effect/decal/cleanable/blood=4,/obj/structure/table/wood=2,/obj/item/weapon/ectoplasm=3,
/obj/item/clothing/head/helmet/space/cult=1, /obj/item/clothing/shoes/cult=1)
if("wizden")
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index e6727a1f781..038b52b7a91 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -402,3 +402,4 @@ var/list/blood_splatter_icons = list()
var/datum/reagent/consumable/nutri_check = R
if(nutri_check.nutriment_factor >0)
M.reagents.remove_reagent(R.id,R.volume)
+
diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm
index 14a79e8a9ae..4185dc51a4b 100644
--- a/code/game/data_huds.dm
+++ b/code/game/data_huds.dm
@@ -16,7 +16,7 @@
/datum/atom_hud/data
/datum/atom_hud/data/human/medical
- hud_icons = list(HEALTH_HUD, STATUS_HUD)
+ hud_icons = list(STATUS_HUD, HEALTH_HUD)
/datum/atom_hud/data/human/medical/basic
@@ -67,24 +67,49 @@
return 0
//helper for getting the appropriate health status
-/proc/RoundHealth(health)
- switch(health)
+/proc/RoundHealth(mob/living/M)
+ if(M.stat == DEAD)
+ return "health-100" //what's our health? it doesn't matter, we're dead
+ var/resulthealth = (M.health / M.maxHealth) * 100
+ switch(resulthealth)
if(100 to INFINITY)
return "health100"
- if(70 to 100)
- return "health80"
- if(50 to 70)
- return "health60"
- if(30 to 50)
- return "health40"
- if(18 to 30)
+ if(90.625 to 100)
+ return "health93.75"
+ if(84.375 to 90.625)
+ return "health87.5"
+ if(78.125 to 84.375)
+ return "health81.25"
+ if(71.875 to 78.125)
+ return "health75"
+ if(65.625 to 71.875)
+ return "health68.75"
+ if(59.375 to 65.625)
+ return "health62.5"
+ if(53.125 to 59.375)
+ return "health56.25"
+ if(46.875 to 53.125)
+ return "health50"
+ if(40.625 to 46.875)
+ return "health43.75"
+ if(34.375 to 40.625)
+ return "health37.5"
+ if(28.125 to 34.375)
+ return "health31.25"
+ if(21.875 to 28.125)
return "health25"
- if(5 to 18)
- return "health10"
- if(1 to 5)
- return "health1"
- if(-99 to 0)
+ if(15.625 to 21.875)
+ return "health18.75"
+ if(9.375 to 15.625)
+ return "health12.5"
+ if(1 to 9.375)
+ return "health6.25"
+ if(-50 to 1)
return "health0"
+ if(-85 to -50)
+ return "health-50"
+ if(-99 to -85)
+ return "health-85"
else
return "health-100"
return "0"
@@ -99,20 +124,28 @@
var/turf/T = get_turf(src)
if (T) crewmonitor.queueUpdate(T.z)
-//called when a carbon changes health
-/mob/living/carbon/proc/med_hud_set_health()
+//called when a living mob changes health
+/mob/living/proc/med_hud_set_health()
var/image/holder = hud_list[HEALTH_HUD]
- if(stat == DEAD)
- holder.icon_state = "hudhealth-100"
- else
- holder.icon_state = "hud[RoundHealth(health)]"
+ holder.icon_state = "hud[RoundHealth(src)]"
+
+//for carbon suit sensors
+/mob/living/carbon/med_hud_set_health()
+ ..()
var/turf/T = get_turf(src)
- if (T)
+ if(T)
crewmonitor.queueUpdate(T.z)
//called when a carbon changes stat, virus or XENO_HOST
-/mob/living/carbon/proc/med_hud_set_status()
+/mob/living/proc/med_hud_set_status()
+ var/image/holder = hud_list[STATUS_HUD]
+ if(stat == DEAD)
+ holder.icon_state = "huddead"
+ else
+ holder.icon_state = "hudhealthy"
+
+/mob/living/carbon/med_hud_set_status()
var/image/holder = hud_list[STATUS_HUD]
if(stat == DEAD)
holder.icon_state = "huddead"
diff --git a/code/game/dna.dm b/code/game/dna.dm
index b1e51e9b5e5..5ea7e2f103e 100644
--- a/code/game/dna.dm
+++ b/code/game/dna.dm
@@ -183,7 +183,7 @@
if(icon_update)
update_body()
update_hair()
- update_mutcolor()
+ update_body_parts()
update_mutations_overlay()// no lizard with human hulk overlay please.
@@ -220,7 +220,7 @@
if(mrace || newfeatures || ui)
update_body()
update_hair()
- update_mutcolor()
+ update_body_parts()
update_mutations_overlay()
@@ -249,7 +249,7 @@ mob/living/carbon/human/updateappearance(icon_update=1, mutcolor_update=0, mutat
update_body()
update_hair()
if(mutcolor_update)
- update_mutcolor()
+ update_body_parts()
if(mutations_overlay_update)
update_mutations_overlay()
diff --git a/code/game/gamemodes/blob/blobs/blob_mobs.dm b/code/game/gamemodes/blob/blobs/blob_mobs.dm
index 7f433d5fc36..037d0d246ea 100644
--- a/code/game/gamemodes/blob/blobs/blob_mobs.dm
+++ b/code/game/gamemodes/blob/blobs/blob_mobs.dm
@@ -89,6 +89,8 @@
attacktext = "hits"
attack_sound = 'sound/weapons/genhit1.ogg'
flying = 1
+ del_on_death = 1
+ deathmessage = "The blob spore explodes into a cloud of gas!"
var/death_cloud_size = 1 //size of cloud produced from a dying spore
var/list/human_overlays = list()
var/is_zombie = 0
@@ -134,7 +136,6 @@
visible_message("The corpse of [H.name] suddenly rises!")
/mob/living/simple_animal/hostile/blob/blobspore/death(gibbed)
- ..(1)
// On death, create a small smoke of harmful gas (s-Acid)
var/datum/effect_system/smoke_spread/chem/S = new
var/turf/location = get_turf(src)
@@ -151,9 +152,10 @@
S.attach(location)
S.set_up(reagents, death_cloud_size, location, silent=1)
S.start()
+ if(factory)
+ factory.spore_delay = world.time + factory.spore_cooldown //put the factory on cooldown
- ghostize()
- qdel(src)
+ ..()
/mob/living/simple_animal/hostile/blob/blobspore/Destroy()
if(factory)
diff --git a/code/game/gamemodes/blob/blobs/factory.dm b/code/game/gamemodes/blob/blobs/factory.dm
index 8ee6baa2c73..ccaf8e12a1a 100644
--- a/code/game/gamemodes/blob/blobs/factory.dm
+++ b/code/game/gamemodes/blob/blobs/factory.dm
@@ -11,6 +11,7 @@
var/mob/living/simple_animal/hostile/blob/blobbernaut/naut = null
var/max_spores = 3
var/spore_delay = 0
+ var/spore_cooldown = 80 //8 seconds between spores and after spore death
/obj/effect/blob/factory/scannerreport()
@@ -38,7 +39,7 @@
if(spore_delay > world.time)
return
flick("blob_factory_glow", src)
- spore_delay = world.time + 100 // 10 seconds
+ spore_delay = world.time + spore_cooldown
var/mob/living/simple_animal/hostile/blob/blobspore/BS = new/mob/living/simple_animal/hostile/blob/blobspore(src.loc, src)
if(overmind) //if we don't have an overmind, we don't need to do anything but make a spore
BS.overmind = overmind
diff --git a/code/game/gamemodes/blob/theblob.dm b/code/game/gamemodes/blob/theblob.dm
index 1ff18339458..72112430613 100644
--- a/code/game/gamemodes/blob/theblob.dm
+++ b/code/game/gamemodes/blob/theblob.dm
@@ -225,16 +225,24 @@
user.changeNext_move(CLICK_CD_MELEE)
user << "The analyzer beeps once, then reports:
"
user << 'sound/machines/ping.ogg'
- if(overmind)
- user << "Material: [overmind.blob_reagent_datum.name]."
- user << "Material Effects: [overmind.blob_reagent_datum.analyzerdescdamage]"
- user << "Material Properties: [overmind.blob_reagent_datum.analyzerdesceffect]
"
- user << "Blob Type: [uppertext(initial(name))]"
- user << "Health: [health]/[maxhealth]"
- user << "Effects: [scannerreport()]"
+ chemeffectreport(user)
+ typereport(user)
else
return ..()
+/obj/effect/blob/proc/chemeffectreport(mob/user)
+ if(overmind)
+ user << "Material: [overmind.blob_reagent_datum.name]."
+ user << "Material Effects: [overmind.blob_reagent_datum.analyzerdescdamage]"
+ user << "Material Properties: [overmind.blob_reagent_datum.analyzerdesceffect]
"
+ else
+ user << "No Material Detected!
"
+
+/obj/effect/blob/proc/typereport(mob/user)
+ user << "Blob Type: [uppertext(initial(name))]"
+ user << "Health: [health]/[maxhealth]"
+ user << "Effects: [scannerreport()]"
+
/obj/effect/blob/attacked_by(obj/item/I, mob/living/user)
user.changeNext_move(CLICK_CD_MELEE)
user.do_attack_animation(src)
@@ -294,8 +302,13 @@
/obj/effect/blob/examine(mob/user)
..()
- user << "It seems to be made of [get_chem_name()]."
- return
+ var/datum/atom_hud/hud_to_check = huds[DATA_HUD_MEDICAL_ADVANCED]
+ if(user.research_scanner || (user in hud_to_check.hudusers))
+ user << "Your HUD displays an extensive report...
"
+ chemeffectreport(user)
+ typereport(user)
+ else
+ user << "It seems to be made of [get_chem_name()]."
/obj/effect/blob/proc/scannerreport()
return "A generic blob. Looks like someone forgot to override this proc, adminhelp this."
diff --git a/code/game/gamemodes/changeling/powers/augmented_eyesight.dm b/code/game/gamemodes/changeling/powers/augmented_eyesight.dm
index facf2bb191a..e69d48b60ce 100644
--- a/code/game/gamemodes/changeling/powers/augmented_eyesight.dm
+++ b/code/game/gamemodes/changeling/powers/augmented_eyesight.dm
@@ -12,26 +12,26 @@
/obj/effect/proc_holder/changeling/augmented_eyesight/sting_action(mob/living/carbon/human/user)
if(!istype(user))
return
- if(user.getorgan(/obj/item/organ/internal/cyberimp/eyes/thermals/ling))
+ if(user.getorgan(/obj/item/organ/cyberimp/eyes/thermals/ling))
user << "Our eyes are protected from flashes."
- var/obj/item/organ/internal/cyberimp/eyes/O = new /obj/item/organ/internal/cyberimp/eyes/shield/ling()
+ var/obj/item/organ/cyberimp/eyes/O = new /obj/item/organ/cyberimp/eyes/shield/ling()
O.Insert(user)
else
- var/obj/item/organ/internal/cyberimp/eyes/O = new /obj/item/organ/internal/cyberimp/eyes/thermals/ling()
+ var/obj/item/organ/cyberimp/eyes/O = new /obj/item/organ/cyberimp/eyes/thermals/ling()
O.Insert(user)
return 1
/obj/effect/proc_holder/changeling/augmented_eyesight/on_refund(mob/user)
- var/obj/item/organ/internal/cyberimp/eyes/O = user.getorganslot("eye_ling")
+ var/obj/item/organ/cyberimp/eyes/O = user.getorganslot("eye_ling")
if(O)
O.Remove(user)
qdel(O)
-/obj/item/organ/internal/cyberimp/eyes/shield/ling
+/obj/item/organ/cyberimp/eyes/shield/ling
name = "protective membranes"
desc = "These variable transparency organic membranes will protect you from welders and flashes and heal your eye damage."
icon_state = "ling_eyeshield"
@@ -41,18 +41,18 @@
slot = "eye_ling"
status = ORGAN_ORGANIC
-/obj/item/organ/internal/cyberimp/eyes/shield/ling/on_life()
+/obj/item/organ/cyberimp/eyes/shield/ling/on_life()
..()
if(owner.eye_blind>1 || (owner.eye_blind && owner.stat !=UNCONSCIOUS) || owner.eye_damage || owner.eye_blurry || (owner.disabilities & NEARSIGHT))
owner.reagents.add_reagent("oculine", 1)
-/obj/item/organ/internal/cyberimp/eyes/shield/ling/prepare_eat()
+/obj/item/organ/cyberimp/eyes/shield/ling/prepare_eat()
var/obj/S = ..()
S.reagents.add_reagent("oculine", 15)
return S
-/obj/item/organ/internal/cyberimp/eyes/thermals/ling
+/obj/item/organ/cyberimp/eyes/thermals/ling
name = "heat receptors"
desc = "These heat receptors dramatically increases eyes light sensing ability."
icon_state = "ling_thermal"
@@ -63,16 +63,16 @@
status = ORGAN_ORGANIC
aug_message = "You feel a minute twitch in our eyes, and darkness creeps away."
-/obj/item/organ/internal/cyberimp/eyes/thermals/ling/emp_act(severity)
+/obj/item/organ/cyberimp/eyes/thermals/ling/emp_act(severity)
return
-/obj/item/organ/internal/cyberimp/eyes/thermals/ling/Insert(mob/living/carbon/M, special = 0)
+/obj/item/organ/cyberimp/eyes/thermals/ling/Insert(mob/living/carbon/M, special = 0)
..()
if(ishuman(owner))
var/mob/living/carbon/human/H = owner
H.weakeyes = 1
-/obj/item/organ/internal/cyberimp/eyes/thermals/ling/Remove(mob/living/carbon/M, special = 0)
+/obj/item/organ/cyberimp/eyes/thermals/ling/Remove(mob/living/carbon/M, special = 0)
if(ishuman(owner))
var/mob/living/carbon/human/H = owner
H.weakeyes = 0
diff --git a/code/game/gamemodes/changeling/powers/fleshmend.dm b/code/game/gamemodes/changeling/powers/fleshmend.dm
index 2b07ab71265..e4c68a8537c 100644
--- a/code/game/gamemodes/changeling/powers/fleshmend.dm
+++ b/code/game/gamemodes/changeling/powers/fleshmend.dm
@@ -6,6 +6,9 @@
dna_cost = 2
req_stat = UNCONSCIOUS
var/recent_uses = 1 //The factor of which the healing should be divided by
+ var/healing_ticks = 10
+ // The ideal total healing amount, divided by healing_ticks to get heal/tick
+ var/total_healing = 100
/obj/effect/proc_holder/changeling/fleshmend/New()
..()
@@ -17,7 +20,7 @@
/obj/effect/proc_holder/changeling/fleshmend/process()
if(recent_uses > 1)
- recent_uses--
+ recent_uses = max(1, recent_uses - (1 / healing_ticks))
//Starts healing you every second for 10 seconds. Can be used whilst unconscious.
/obj/effect/proc_holder/changeling/fleshmend/sting_action(mob/living/user)
@@ -30,12 +33,20 @@
var/mob/living/carbon/human/H = user
H.restore_blood()
H.remove_all_embedded_objects()
+ if(H.get_missing_limbs())
+ playsound(user, 'sound/magic/Demon_consume.ogg', 50, 1)
+ H.visible_message("[user]'s missing limbs reform, making a loud, grotesque sound!", "Your limbs regrow, making a loud, crunchy sound and giving you great pain!", "You hear organic matter ripping and tearing!")
+ H.emote("scream")
+ H.regenerate_limbs(1)
- for(var/i = 0, i < 10, i++) //The healing itself - doesn't heal toxin damage (that's anatomic panacea) and effectiveness decreases with each use in a short timespan
+ // The healing itself - doesn't heal toxin damage (that's anatomic panacea) and
+ // effectiveness decreases with each use in a short timespan
+ for(var/i in 1 to healing_ticks)
if(user)
- user.adjustBruteLoss(-10 / recent_uses, 0)
- user.adjustOxyLoss(-10 / recent_uses, 0)
- user.adjustFireLoss(-10 / recent_uses, 0)
+ var/healpertick = -(total_healing / healing_ticks)
+ user.adjustBruteLoss(healpertick / recent_uses, 0)
+ user.adjustOxyLoss(healpertick / recent_uses, 0)
+ user.adjustFireLoss(healpertick / recent_uses, 0)
user.updatehealth()
sleep(10)
diff --git a/code/game/gamemodes/changeling/powers/headcrab.dm b/code/game/gamemodes/changeling/powers/headcrab.dm
index c93fcb06c26..78a0e5f9fe3 100644
--- a/code/game/gamemodes/changeling/powers/headcrab.dm
+++ b/code/game/gamemodes/changeling/powers/headcrab.dm
@@ -10,7 +10,7 @@
var/datum/mind/M = user.mind
var/list/organs = user.getorganszone("head", 1)
- for(var/obj/item/organ/internal/I in organs)
+ for(var/obj/item/organ/I in organs)
I.Remove(user, 1)
explosion(get_turf(user),0,0,2,0,silent=1)
@@ -26,7 +26,7 @@
var/turf = get_turf(user)
spawn(5) // So it's not killed in explosion
var/mob/living/simple_animal/hostile/headcrab/crab = new(turf)
- for(var/obj/item/organ/internal/I in organs)
+ for(var/obj/item/organ/I in organs)
I.loc = crab
crab.origin = M
if(crab.origin)
diff --git a/code/game/gamemodes/changeling/powers/mutations.dm b/code/game/gamemodes/changeling/powers/mutations.dm
index fddcbfa6d66..1dc79ffc084 100644
--- a/code/game/gamemodes/changeling/powers/mutations.dm
+++ b/code/game/gamemodes/changeling/powers/mutations.dm
@@ -38,10 +38,18 @@
user.update_inv_l_hand()
return 1
-/obj/effect/proc_holder/changeling/weapon/sting_action(mob/user)
+/obj/effect/proc_holder/changeling/weapon/sting_action(mob/living/user)
if(!user.drop_item())
user << "The [user.get_active_hand()] is stuck to your hand, you cannot grow a [weapon_name_simple] over it!"
return
+ var/limb_regen = 0
+ if(user.hand) //we regen the arm before changing it into the weapon
+ limb_regen = user.regenerate_limb("l_arm", 1)
+ else
+ limb_regen = user.regenerate_limb("r_arm", 1)
+ if(limb_regen)
+ user.visible_message("[user]'s missing arm reforms, making a loud, grotesque sound!", "Your arm regrows, making a loud, crunchy sound and giving you great pain!", "You hear organic matter ripping and tearing!")
+ user.emote("scream")
var/obj/item/W = new weapon_type(user)
user.put_in_hands(W)
playsound(user, 'sound/effects/blobattack.ogg', 30, 1)
diff --git a/code/game/gamemodes/changeling/powers/panacea.dm b/code/game/gamemodes/changeling/powers/panacea.dm
index e72decb7b34..d4c60625f27 100644
--- a/code/game/gamemodes/changeling/powers/panacea.dm
+++ b/code/game/gamemodes/changeling/powers/panacea.dm
@@ -10,7 +10,7 @@
/obj/effect/proc_holder/changeling/panacea/sting_action(mob/user)
user << "We begin cleansing impurities from our form."
- var/obj/item/organ/internal/body_egg/egg = user.getorgan(/obj/item/organ/internal/body_egg)
+ var/obj/item/organ/body_egg/egg = user.getorgan(/obj/item/organ/body_egg)
if(egg)
egg.Remove(user)
if(iscarbon(user))
@@ -19,11 +19,11 @@
egg.loc = get_turf(user)
user.reagents.add_reagent("mutadone", 10)
- user.reagents.add_reagent("potass_iodide", 10)
- user.reagents.add_reagent("charcoal", 20)
+ user.reagents.add_reagent("pen_acid", 20)
user.reagents.add_reagent("antihol", 10)
+ user.reagents.add_reagent("mannitol", 25)
for(var/datum/disease/D in user.viruses)
D.cure()
feedback_add_details("changeling_powers","AP")
- return 1
\ No newline at end of file
+ return 1
diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm
index 6b619838ded..dc706d3934f 100644
--- a/code/game/gamemodes/cult/cult.dm
+++ b/code/game/gamemodes/cult/cult.dm
@@ -15,51 +15,23 @@
return 0
/proc/is_convertable_to_cult(datum/mind/mind)
- if(!istype(mind)) return 0
- if(istype(mind.current, /mob/living/carbon/human) && (mind.assigned_role in list("Captain", "Chaplain"))) return 0
+ if(!istype(mind))
+ return 0
+ if(istype(mind.current, /mob/living/carbon/human) && (mind.assigned_role in list("Captain", "Chaplain")))
+ return 0
if(isloyal(mind.current))
return 0
if (ticker.mode.name == "cult") //redundant?
if(is_sacrifice_target(mind)) return 0
return 1
-/proc/cultist_commune(mob/living/user, clear = 0, say = 0, message)
- if(!message)
- return
- if(say)
- user.say("O bidai nabora se[pick("'","`")]sma!")
- else
- user.whisper("O bidai nabora se[pick("'","`")]sma!")
- sleep(10)
- if(!user)
- return
- if(say)
- user.say(message)
- else
- user.whisper(message)
- var/my_message = "Error, message null. You should probably report this."
- for(var/mob/M in mob_list)
- if(iscultist(M) || (M in dead_mob_list))
- if(clear || !ishuman(user))
- my_message = "[(ishuman(user) ? "Acolyte" : "Construct")] [user]: [message]"
- else //Emergency comms
- my_message = "Acolyte ???: [message]"
- if(M in dead_mob_list)
- M << "(F) [my_message]"
- else
- M << my_message
-
- log_say("[user.real_name]/[user.key] : [message]")
-
-
-
/datum/game_mode/cult
name = "cult"
config_tag = "cult"
antag_flag = ROLE_CULTIST
restricted_jobs = list("Chaplain","AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel")
protected_jobs = list()
- required_players = 30
+ required_players = 24
required_enemies = 4
recommended_enemies = 4
enemy_minimum_age = 14
@@ -71,11 +43,12 @@
var/acolytes_survived = 0
var/datum/mind/sacrifice_target = null//The target to be sacrificed
+ var/list/cultists_to_cult = list() //the cultists we'll convert
/datum/game_mode/cult/announce()
world << "The current game mode is - Cult!"
- world << "Some crewmembers are attempting to start a cult!
\nCultists - complete your objectives at all costs. Convert crewmembers to your cause by using the convert rune, or sacrifice them and turn them into constructs. Remember - there is no you, there is only the cult.
\nPersonnel - Do not let the cult succeed in its mission. Forced consumption of holy water will convert a cultist back to a Nanotrasen-sanctioned faith."
+ world << "Some crewmembers are attempting to start a cult!
\nCultists - sacrifice your target and summon Nar-Sie at all costs. Convert crewmembers to your cause by using the convert rune, or sacrifice them and turn them into constructs. Remember - there is no you, there is only the cult.
\nPersonnel - Do not let the cult succeed in its mission. Forced consumption of holy water will convert a cultist back to a Nanotrasen-sanctioned faith."
/datum/game_mode/cult/pre_setup()
@@ -97,12 +70,12 @@
break
var/datum/mind/cultist = pick(antag_candidates)
antag_candidates -= cultist
- cult += cultist
+ cultists_to_cult += cultist
cultist.special_role = "Cultist"
cultist.restricted_roles = restricted_jobs
log_game("[cultist.key] (ckey) has been selected as a cultist")
- return (cult.len>=required_enemies)
+ return (cultists_to_cult.len>=required_enemies)
/datum/game_mode/cult/proc/memorize_cult_objectives(datum/mind/cult_mind)
@@ -113,21 +86,22 @@
explanation = "Our knowledge must live on. Make sure at least [acolytes_needed] acolytes escape on the shuttle to spread their work on an another station."
if("sacrifice")
if(sacrifice_target)
- explanation = "Sacrifice [sacrifice_target.name], the [sacrifice_target.assigned_role]. You will need the Sacrifice rune and three acolytes to do so."
+ explanation = "Sacrifice [sacrifice_target.name], the [sacrifice_target.assigned_role] via invoking a Sacrifice rune with them on it and three acolytes around it."
else
explanation = "Free objective."
if("eldergod")
- explanation = "Summon Nar-Sie via the rune 'Call Forth The Geometer'. It will only work if nine acolytes stand on and around it."
+ explanation = "Summon Nar-Sie by invoking the rune 'Summon Nar-Sie' with nine acolytes around and on it. You must do this after sacrificing your target."
cult_mind.current << "Objective #[obj_count]: [explanation]"
cult_mind.memory += "Objective #[obj_count]: [explanation]
"
+
/datum/game_mode/cult/post_setup()
- modePlayer += cult
+ modePlayer += cultists_to_cult
if("sacrifice" in cult_objectives)
var/list/possible_targets = get_unconvertables()
if(!possible_targets.len)
message_admins("Cult Sacrifice: Could not find unconvertable target, checking for convertable target.")
for(var/mob/living/carbon/human/player in player_list)
- if(player.mind && !(player.mind in cult))
+ if(player.mind && !(player.mind in cultists_to_cult))
possible_targets += player.mind
if(possible_targets.len > 0)
sacrifice_target = pick(possible_targets)
@@ -135,16 +109,16 @@
message_admins("Cult Sacrifice: ERROR - Null target chosen!")
else
message_admins("Cult Sacrifice: Could not find unconvertable or convertable target. WELP!")
- for(var/datum/mind/cult_mind in cult)
+ for(var/datum/mind/cult_mind in cultists_to_cult)
equip_cultist(cult_mind.current)
update_cult_icons_added(cult_mind)
cult_mind.current << "You are a member of the cult!"
- memorize_cult_objectives(cult_mind)
+ add_cultist(cult_mind, 0)
..()
+
/datum/game_mode/proc/equip_cultist(mob/living/carbon/human/mob,tome = 0)
if(!istype(mob))
return
- mob.cult_add_comm()
if (mob.mind)
if (mob.mind.assigned_role == "Clown")
mob << "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself."
@@ -180,14 +154,17 @@
B.show_to(mob)
return 1
-/datum/game_mode/proc/add_cultist(datum/mind/cult_mind) //BASE
+/datum/game_mode/proc/add_cultist(datum/mind/cult_mind, stun) //BASE
if (!istype(cult_mind))
return 0
if(!(cult_mind in cult) && is_convertable_to_cult(cult_mind))
- cult_mind.current.Paralyse(5)
+ if(stun)
+ cult_mind.current.Paralyse(5)
cult += cult_mind
cult_mind.current.faction |= "cult"
- cult_mind.current.cult_add_comm()
+ cult_mind.current.verbs += /mob/living/proc/cult_help
+ var/datum/action/innate/cultcomm/C = new()
+ C.Grant(cult_mind.current)
update_cult_icons_added(cult_mind)
cult_mind.current.attack_log += "\[[time_stamp()]\] Has been converted to the cult!"
if(jobban_isbanned(cult_mind.current, ROLE_CULTIST))
@@ -195,18 +172,21 @@
return 1
-/datum/game_mode/cult/add_cultist(datum/mind/cult_mind) //INHERIT
+/datum/game_mode/cult/add_cultist(datum/mind/cult_mind, stun) //INHERIT
if (!..(cult_mind))
return
memorize_cult_objectives(cult_mind)
-/datum/game_mode/proc/remove_cultist(datum/mind/cult_mind, show_message = 1)
+/datum/game_mode/proc/remove_cultist(datum/mind/cult_mind, show_message = 1, stun)
if(cult_mind in cult)
cult -= cult_mind
cult_mind.current.faction -= "cult"
- cult_mind.current.verbs -= /mob/living/proc/cult_innate_comm
- cult_mind.current.Paralyse(5)
+ cult_mind.current.verbs -= /mob/living/proc/cult_help
+ for(var/datum/action/innate/cultcomm/C in cult_mind.current.actions)
+ qdel(C)
+ if(stun)
+ cult_mind.current.Paralyse(5)
cult_mind.current << "An unfamiliar white light flashes through your mind, cleansing the taint of the Dark One and all your memories as its servant."
cult_mind.memory = ""
update_cult_icons_removed(cult_mind)
diff --git a/code/game/gamemodes/cult/cult_comms.dm b/code/game/gamemodes/cult/cult_comms.dm
new file mode 100644
index 00000000000..0af0525f908
--- /dev/null
+++ b/code/game/gamemodes/cult/cult_comms.dm
@@ -0,0 +1,75 @@
+
+/datum/action/innate/cultcomm
+ name = "Communion"
+ button_icon_state = "cult_comms"
+ background_icon_state = "bg_demon"
+ check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_CONSCIOUS
+
+/datum/action/innate/cultcomm/IsAvailable()
+ if(!iscultist(owner))
+ return 0
+ return ..()
+
+/datum/action/innate/cultcomm/Activate()
+ var/input = stripped_input(usr, "Please choose a message to tell to the other acolytes.", "Voice of Blood", "")
+ if(!input || !IsAvailable())
+ return
+
+ cultist_commune(usr, input)
+ return
+
+/proc/cultist_commune(mob/living/user, message)
+ if(!message)
+ return
+ if(!ishuman(user))
+ user.say("O bidai nabora se[pick("'","`")]sma!")
+ else
+ user.whisper("O bidai nabora se[pick("'","`")]sma!")
+ sleep(10)
+ if(!user)
+ return
+ if(!ishuman(user))
+ user.say(message)
+ else
+ user.whisper(message)
+ var/my_message = "[(ishuman(user) ? "Acolyte" : "Construct")] [user]: [message]"
+ for(var/mob/M in mob_list)
+ if(iscultist(M))
+ M << my_message
+ else if(M in dead_mob_list)
+ M << "(F) [my_message]"
+
+ log_say("[user.real_name]/[user.key] : [message]")
+
+/mob/living/proc/cult_help()
+ set category = "Cultist"
+ set name = "How to Play Cult"
+ var/text = ""
+ text += "