Merge pull request #2 from quotefox/master

a
This commit is contained in:
Chloe
2021-02-04 16:18:06 +00:00
committed by GitHub
84 changed files with 683 additions and 207 deletions
+32 -26
View File
@@ -1125,7 +1125,7 @@
"avG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel,/area/crew_quarters/dorms)
"avH" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/fitness)
"avI" = (/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral,/obj/structure/table,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/fitness)
"avJ" = (/obj/effect/decal/cleanable/semen,/turf/open/floor/wood,/area/crew_quarters/dorms)
"avJ" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plasteel/dark,/area/hallway/secondary/exit)
"avK" = (/obj/structure/bed,/obj/machinery/button/door{id = "Dorm5"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_y = -25; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber/on,/obj/effect/spawner/lootdrop/bedsheet,/turf/open/floor/wood,/area/crew_quarters/dorms)
"avL" = (/obj/structure/bed,/obj/machinery/button/door{id = "Dorm6"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_y = -25; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber/on,/obj/effect/spawner/lootdrop/bedsheet,/turf/open/floor/wood,/area/crew_quarters/dorms)
"avM" = (/obj/structure/table,/obj/item/paper/fluff/holodeck/disclaimer,/turf/open/floor/plasteel,/area/crew_quarters/fitness)
@@ -1598,6 +1598,7 @@
"aEL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/bar)
"aEM" = (/obj/machinery/airalarm{dir = 8; pixel_x = 24},/obj/machinery/atmospherics/components/unary/vent_scrubber/on{dir = 1},/obj/structure/cable{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet)
"aEN" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/item/twohanded/required/kirbyplants/random,/turf/open/floor/plasteel,/area/gateway)
"aEO" = (/obj/effect/turf_decal/tile/blue{dir = 4},/obj/machinery/atm{pixel_y = 30},/turf/open/floor/plasteel/white/corner{dir = 1},/area/hallway/secondary/entry)
"aEP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard/fore)
"aEQ" = (/obj/machinery/door/airlock{name = "Service Hall"; req_one_access_txt = "25;26;35;28"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plating,/area/hallway/secondary/service)
"aER" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/hallway/secondary/service)
@@ -1642,7 +1643,7 @@
"aFE" = (/obj/item/radio/intercom{name = "Station Intercom (General)"; pixel_x = -30},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/gateway)
"aFF" = (/obj/structure/chair/stool,/turf/open/floor/plasteel,/area/gateway)
"aFG" = (/turf/open/floor/plasteel,/area/gateway)
"aFH" = (/obj/item/reagent_containers/food/drinks/shaker,/obj/item/gun/ballistic/revolver/doublebarrel,/obj/structure/table/wood,/obj/item/stack/spacecash/c10,/obj/item/stack/spacecash/c100,/turf/open/floor/carpet/red,/area/crew_quarters/bar)
"aFH" = (/obj/item/reagent_containers/food/drinks/shaker,/obj/item/gun/ballistic/revolver/doublebarrel,/obj/structure/table/wood,/turf/open/floor/carpet/red,/area/crew_quarters/bar)
"aFI" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fore)
"aFJ" = (/obj/structure/table,/obj/item/stack/sheet/rglass{amount = 50},/obj/item/stack/sheet/rglass{amount = 50},/obj/item/stack/rods/fifty,/obj/item/stack/rods/fifty,/obj/machinery/light{dir = 8},/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva)
"aFK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/dark,/area/ai_monitored/storage/eva)
@@ -2187,12 +2188,12 @@
"aQd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/chapel,/area/chapel/main)
"aQe" = (/obj/machinery/door/morgue{name = "Confession Booth"},/turf/open/floor/plasteel/dark,/area/chapel/main)
"aQf" = (/obj/item/radio/intercom{broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; pixel_x = 25},/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/dark,/area/chapel/main)
"aQg" = (/obj/structure/table/reinforced,/obj/item/reagent_containers/food/condiment/peppermill{pixel_x = 5; pixel_y = -2},/obj/item/reagent_containers/food/condiment/saltshaker{pixel_x = -2; pixel_y = 2},/turf/open/floor/plasteel/dark,/area/hallway/secondary/exit)
"aQg" = (/turf/closed/wall/r_wall,/area/hallway/secondary/exit)
"aQh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit)
"aQi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit)
"aQj" = (/turf/open/floor/plasteel,/area/hallway/secondary/exit)
"aQk" = (/obj/structure/table/reinforced,/obj/item/reagent_containers/rag,/turf/open/floor/plasteel/dark,/area/hallway/secondary/exit)
"aQl" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel/dark,/area/hallway/secondary/exit)
"aQk" = (/obj/effect/turf_decal/loading_area{dir = 4},/obj/machinery/light{dir = 1; pixel_y = 16},/turf/open/floor/plasteel/dark,/area/hallway/secondary/exit)
"aQl" = (/obj/machinery/atm{pixel_y = 30},/obj/structure/window/reinforced,/turf/open/floor/plasteel/dark,/area/hallway/secondary/exit)
"aQm" = (/obj/machinery/camera{c_tag = "Escape Arm Holding Area"; dir = 4},/obj/item/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 8},/obj/structure/chair{dir = 4},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/hallway/secondary/exit)
"aQn" = (/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/dark,/area/hallway/secondary/exit)
"aQo" = (/obj/docking_port/stationary/random{dir = 8; id = "pod_lavaland1"; name = "lavaland"},/turf/open/space,/area/space/nearstation)
@@ -2828,7 +2829,7 @@
"bcu" = (/obj/structure/disposalpipe/segment{dir = 6},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port)
"bcv" = (/obj/structure/cable{icon_state = "1-2"},/obj/structure/disposalpipe/junction/flip{dir = 1},/turf/open/floor/plating,/area/maintenance/port)
"bcw" = (/obj/effect/landmark/xeno_spawn,/obj/item/bikehorn/rubberducky,/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet)
"bcx" = (/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/machinery/atm{pixel_y = 30},/turf/open/floor/plasteel,/area/hallway/secondary/entry)
"bcx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/bed/dogbed/ian,/obj/machinery/atm{pixel_y = 30},/mob/living/simple_animal/pet/dog/corgi/Ian{dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/heads/hop)
"bcy" = (/obj/structure/closet/wardrobe/green,/obj/machinery/light{dir = 8},/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/effect/turf_decal/tile/neutral{dir = 1},/turf/open/floor/plasteel,/area/crew_quarters/locker)
"bcz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/cryopod)
"bcA" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/closet/crate/freezer,/turf/open/floor/plasteel,/area/quartermaster/warehouse)
@@ -3162,6 +3163,8 @@
"biQ" = (/obj/effect/turf_decal/loading_area{dir = 6; icon_state = "steel_panel"; name = "steel pannel"},/turf/open/floor/plasteel,/area/hydroponics)
"biR" = (/obj/effect/turf_decal/loading_area{dir = 9; icon_state = "steel_panel"; name = "steel pannel"},/turf/open/floor/plasteel,/area/hydroponics)
"biS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/junction/yjunction{dir = 1},/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/machinery/atm{pixel_y = 30},/turf/open/floor/plasteel/dark,/area/crew_quarters/bar)
"biT" = (/obj/effect/turf_decal/loading_area,/obj/machinery/light{dir = 1; pixel_y = 16},/turf/open/floor/plasteel/dark,/area/hallway/secondary/exit)
"biU" = (/obj/machinery/atm{pixel_y = 30},/obj/structure/window/reinforced,/turf/open/floor/plasteel,/area/hallway/primary/central)
"biV" = (/obj/structure/table,/obj/item/reagent_containers/glass/beaker{pixel_x = 5},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen)
"biW" = (/obj/effect/landmark/start/botanist,/obj/effect/turf_decal/loading_area{dir = 4; icon_state = "steel_panel"; name = "steel pannel"},/turf/open/floor/plasteel,/area/hydroponics)
"biX" = (/obj/effect/turf_decal/loading_area{dir = 5; icon_state = "steel_panel"; name = "steel pannel"},/turf/open/floor/plasteel,/area/hydroponics)
@@ -3179,6 +3182,7 @@
"bjj" = (/obj/effect/turf_decal/tile/green{dir = 4},/obj/effect/turf_decal/tile/green{dir = 1},/obj/effect/turf_decal/tile/green,/obj/structure/table/glass,/obj/item/reagent_containers/glass/bucket{pixel_x = 3; pixel_y = 3},/obj/item/reagent_containers/glass/bucket,/turf/open/floor/plasteel,/area/hydroponics/garden)
"bjk" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/starboard/fore)
"bjl" = (/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 1},/obj/structure/cable{icon_state = "1-4"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet)
"bjm" = (/obj/effect/turf_decal/loading_area{dir = 4},/obj/machinery/light{dir = 1; pixel_y = 16},/turf/open/floor/plasteel,/area/hallway/primary/central)
"bjn" = (/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/structure/table/plasmaglass,/obj/item/reagent_containers/food/drinks/drinkingglass{pixel_x = -4; pixel_y = 6},/turf/open/floor/plasteel,/area/crew_quarters/bar)
"bjo" = (/obj/structure/disposalpipe/segment,/obj/effect/turf_decal/tile/blue{dir = 8},/obj/effect/turf_decal/loading_area{dir = 8; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel,/area/hallway/primary/central)
"bjp" = (/obj/structure/flora/ausbushes/lavendergrass,/obj/structure/flora/ausbushes/fullgrass,/obj/structure/flora/junglebush/c{pixel_x = 10; pixel_y = -5},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/grass,/area/hallway/primary/port)
@@ -3430,6 +3434,7 @@
"bob" = (/turf/closed/wall/r_wall,/area/crew_quarters/heads/hop)
"boc" = (/turf/closed/wall/r_wall,/area/storage/tech)
"bod" = (/obj/effect/spawner/structure/window/reinforced,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"},/obj/structure/cable{icon_state = "0-4"},/turf/open/floor/plating,/area/engine/gravity_generator)
"boe" = (/turf/closed/wall,/area/space)
"bof" = (/obj/effect/mapping_helpers/airlock/cyclelink_helper{dir = 8},/obj/machinery/door/airlock/external{name = "Escape Airlock"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel/dark,/area/hallway/secondary/exit)
"bog" = (/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/science/lab)
"boh" = (/obj/item/stack/sheet/glass,/obj/structure/table/glass,/obj/item/stack/sheet/glass,/obj/item/stack/sheet/glass,/obj/item/stock_parts/matter_bin,/obj/item/stock_parts/matter_bin,/obj/machinery/light{dir = 4},/obj/item/stock_parts/scanning_module{pixel_x = 2; pixel_y = 3},/obj/item/stock_parts/scanning_module,/obj/machinery/power/apc{areastring = "/area/science/lab"; dir = 4; name = "Research Lab APC"; pixel_x = 26},/obj/structure/cable{icon_state = "0-8"},/turf/open/floor/plasteel/white,/area/science/lab)
@@ -3457,6 +3462,7 @@
"boD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "4-8"},/obj/machinery/light_switch{pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/dark,/area/medical/morgue)
"boE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "4-8"},/obj/machinery/light/small,/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/dark,/area/medical/morgue)
"boF" = (/obj/effect/landmark/event_spawn,/turf/open/floor/wood,/area/library)
"boG" = (/obj/effect/spawner/structure/window/reinforced,/obj/machinery/door/poddoor/preopen{id = "cargoshut2"; name = "shutters"},/turf/open/floor/plating,/area/space/nearstation)
"boH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/dark,/area/medical/morgue)
"boI" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{dir = 4; name = "Morgue Maintenance"; req_access_txt = "6"},/obj/structure/cable{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/medical/morgue)
"boJ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/department/medical/morgue)
@@ -3507,7 +3513,7 @@
"bpC" = (/obj/machinery/button/flasher{id = "hopflash"; pixel_x = 6; pixel_y = 36},/obj/machinery/button/door{id = "hop"; name = "Privacy Shutters Control"; pixel_x = 6; pixel_y = 25; req_access_txt = "57"},/obj/machinery/button/door{id = "hopqueue"; name = "Queue Shutters Control"; pixel_x = -4; pixel_y = 25; req_access_txt = "57"},/obj/machinery/light_switch{pixel_x = -4; pixel_y = 36},/obj/machinery/pdapainter,/obj/effect/turf_decal/tile/blue{dir = 1},/obj/effect/turf_decal/tile/blue{dir = 4},/obj/effect/turf_decal/tile/blue{dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/heads/hop)
"bpD" = (/obj/machinery/newscaster/security_unit{pixel_y = 32},/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/plasteel,/area/crew_quarters/heads/hop)
"bpE" = (/obj/machinery/computer/security/telescreen/vault{pixel_y = 30},/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel,/area/crew_quarters/heads/hop)
"bpF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/bed/dogbed/ian,/obj/structure/medkit_cabinet{pixel_y = 27},/mob/living/simple_animal/pet/dog/corgi/Ian{dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/heads/hop)
"bpF" = (/obj/effect/turf_decal/tile/brown{dir = 4},/obj/effect/turf_decal/tile/brown{dir = 1},/obj/machinery/atm{pixel_y = 30},/turf/open/floor/plasteel/dark,/area/quartermaster/qm)
"bpG" = (/obj/structure/cable{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/heads/hop)
"bpH" = (/obj/machinery/power/apc{areastring = "/area/ai_monitored/nuke_storage"; dir = 1; name = "Vault APC"; pixel_y = 25},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{icon_state = "0-8"},/turf/open/floor/circuit,/area/ai_monitored/nuke_storage)
"bpI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/tile/blue{dir = 8},/obj/effect/turf_decal/tile/blue,/turf/open/floor/plasteel,/area/bridge/meeting_room)
@@ -3523,10 +3529,12 @@
"bpS" = (/obj/structure/table/glass,/obj/item/grenade/chem_grenade,/obj/item/grenade/chem_grenade,/obj/item/grenade/chem_grenade,/obj/item/grenade/chem_grenade,/obj/item/screwdriver{pixel_x = -2; pixel_y = 6},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/white,/area/medical/chemistry)
"bpT" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_pump/on,/turf/open/floor/plasteel/white,/area/medical/chemistry)
"bpU" = (/obj/structure/table,/obj/item/folder/white,/obj/item/radio/headset/headset_med,/turf/open/floor/plasteel/white,/area/medical/chemistry)
"bpV" = (/obj/effect/spawner/structure/window/reinforced,/obj/machinery/door/poddoor/preopen{id = "cargoshut2"; name = "shutters"},/turf/open/floor/plating,/area/space)
"bpW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/tile/blue{dir = 1},/obj/effect/turf_decal/tile/blue{dir = 4},/obj/effect/turf_decal/tile/blue,/turf/open/floor/plasteel/white,/area/medical/medbay/central)
"bpX" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plating,/area/medical/medbay/central)
"bpY" = (/obj/machinery/computer/med_data{dir = 1},/obj/item/radio/intercom{frequency = 1485; name = "Station Intercom (Medbay)"; pixel_y = -30},/turf/open/floor/plasteel/white,/area/medical/medbay/central)
"bpZ" = (/obj/machinery/light,/obj/machinery/computer/crew{dir = 1},/turf/open/floor/plasteel/white,/area/medical/medbay/central)
"bqa" = (/obj/machinery/computer/security/qm{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 8},/obj/effect/turf_decal/tile/brown,/turf/open/floor/plasteel/dark,/area/quartermaster/qm)
"bqb" = (/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plasteel/white,/area/medical/medbay/central)
"bqc" = (/obj/machinery/door/airlock/security/glass{name = "Security Office"; req_access_txt = "63"},/obj/structure/cable{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/white,/area/security/checkpoint/medical)
"bqd" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/closed/wall,/area/security/checkpoint/medical)
@@ -3660,6 +3668,8 @@
"bsB" = (/obj/structure/table,/obj/item/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/pen,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/folder/white,/obj/item/stamp/rd{pixel_x = 3; pixel_y = -2},/turf/open/floor/carpet/purple,/area/crew_quarters/heads/hor)
"bsC" = (/obj/machinery/airalarm{dir = 8; pixel_x = 24},/obj/structure/cable{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/heads/hop)
"bsD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/starboard/fore)
"bsE" = (/obj/structure/closet/crate,/obj/item/clothing/under/color/lightpurple,/turf/open/floor/plating,/area/maintenance/starboard/aft)
"bsF" = (/obj/effect/turf_decal/loading_area,/obj/machinery/light{dir = 1; pixel_y = 16},/turf/open/floor/plasteel,/area/hallway/primary/central)
"bsG" = (/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/structure/urinal{pixel_y = 32},/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet)
"bsH" = (/turf/closed/wall/r_wall,/area/teleporter)
"bsI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/teleporter)
@@ -5446,7 +5456,6 @@
"caX" = (/obj/structure/window/reinforced,/obj/structure/flora/ausbushes/ywflowers,/turf/open/floor/grass,/area/hallway/secondary/exit)
"caY" = (/obj/machinery/button/door{id = "telelab"; name = "Test Chamber Blast Doors"; pixel_x = 25; req_access_txt = "47"},/obj/effect/turf_decal/stripes/line,/turf/open/floor/plasteel/white,/area/science/explab)
"caZ" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard/aft)
"cba" = (/obj/structure/closet/crate,/obj/item/clothing/under/color/lightpurple,/obj/item/stack/spacecash/c200,/turf/open/floor/plating,/area/maintenance/starboard/aft)
"cbb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/turf_decal/stripes/corner{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/entry)
"cbc" = (/obj/structure/sign/warning/vacuum/external{pixel_x = -32},/turf/open/floor/plating,/area/maintenance/port/aft)
"cbd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 5},/turf/open/floor/plating,/area/maintenance/port/aft)
@@ -6870,9 +6879,6 @@
"cFX" = (/obj/structure/flora/ausbushes/fullgrass,/obj/structure/flora/ausbushes/sunnybush,/obj/structure/flora/ausbushes/brflowers,/obj/structure/window/reinforced,/turf/open/floor/grass,/area/hallway/primary/central)
"cFY" = (/obj/structure/flora/ausbushes/brflowers,/obj/structure/flora/ausbushes/ywflowers,/obj/structure/window/reinforced,/turf/open/floor/grass,/area/hallway/primary/central)
"cFZ" = (/obj/structure/flora/ausbushes/sparsegrass,/obj/structure/flora/ausbushes/lavendergrass,/obj/structure/flora/ausbushes/ppflowers,/obj/structure/flora/ausbushes/ywflowers,/obj/structure/window/reinforced,/turf/open/floor/grass,/area/hallway/primary/central)
"cGa" = (/obj/structure/flora/ausbushes/fullgrass,/obj/structure/flora/ausbushes/sparsegrass,/obj/structure/flora/ausbushes/ppflowers,/obj/structure/flora/ausbushes/brflowers,/obj/structure/window/reinforced,/turf/open/floor/grass,/area/hallway/primary/central)
"cGb" = (/obj/structure/flora/ausbushes/fullgrass,/obj/structure/flora/ausbushes/brflowers,/obj/structure/flora/ausbushes/sunnybush,/obj/structure/window/reinforced,/turf/open/floor/grass,/area/hallway/primary/central)
"cGc" = (/obj/structure/flora/ausbushes/sparsegrass,/obj/structure/flora/ausbushes/brflowers,/obj/structure/flora/ausbushes/ywflowers,/obj/structure/window/reinforced,/turf/open/floor/grass,/area/hallway/primary/central)
"cGd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/stripes/line{dir = 4},/obj/effect/turf_decal/stripes/corner{dir = 1},/turf/open/floor/plasteel,/area/storage/primary)
"cGe" = (/obj/structure/table,/obj/item/weldingtool,/obj/item/crowbar,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/turf/open/floor/plasteel/dark,/area/storage/primary)
"cGf" = (/obj/structure/table,/obj/item/wrench,/obj/item/analyzer,/turf/open/floor/plasteel/dark,/area/storage/primary)
@@ -7321,10 +7327,10 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadamJanjanjanjanjaqhanjanjanjaqiaqjapjapkaqkamJaadalzamialzaqlaqmanQaqnaqoalzaoEamiaqpxJwanOaqqamiamiamiamiamiamiamiamialzalzalzaadaaFaadaaFaqraqsaqraaaaaaaaaaaaaaaaaaaaaaaaaadaiHaqtaquaiHaqvaoHaqwaqxaqyapwapwaoHapyaoKaqzapBaqAaqBaqCamYanbandapEaiEaqDaqDaqDaqDaqDaqEaqFaqDaqDaqDaqDaqDaqDaqDaqDaqDasGaqGaqIaqGatIayGctCatIctDatzatzaEXatzatzapUaJgaqGaqGaqGaqGaqGaaaaqLamIaluapgaqMaqNaqOaqPamIamIamIaltamIaltaqQamIamIaltamIaqRaqSaqTapiamIaltaqUaqValtdPCapZaltaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadamJanjanjanjanjanjanjanjanjanjanMaqWapkaqXamJalzalzaqYalzalzalzamPaqZaraaraarbarcardarcarearfargarhalzamialzalzalzamialzarialzaaFaadaoBaadaqraqsaqraaaaaaaaaaaaaaaarjarjarjarjarjarjarjarjaptaoHarkarlarmapwarnaoHapyaroarparqarrarsaqCamYanbartapEaiEaqDaruarvautarxaryatAaqDatBatCatGaqDatHauuayzaqDasGaqGctEaLVauFauFauGauHaqJaqKaqKaqKaqKaqKaqJapRaEYayHaadaadaadaadaluarNaluapgarOamIarPuyYaoramIaltaltarQaltaltarRaltaltaqTarSarTamIaltamIarUarUarUarUarUarUarUarUarUarVarVarVarVaaFarVarVaadaadaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadamJanjanjanjanjanjanjanjanjanjanMarWapkarXamJarYarZasaasbasbasbasbasbasbascasdasealzalzalzalzamialzalzamiasfalzargamialzalzalzalzaoBaoBaoBaqrasgaqraaaaaaaaaaadaadarjashasiarjasjaskaslarjaptaoHapxasmapxasnapwaoHasoaspasqapBasrcagaqCamYanbassapEaiEaqDastasuasvavxasxauIaqDavyavAavBaqDavyavCbFnaqDavDaqGctFavFapRayFavHavIaqJaqKaqKaqKaqKaqKaqJapRayDayHaaaaaaaaaaaaaluamIapYapgasMaqTarPamIasNasOasPapiamIamIamIamIamIamIamIarSasQamIatOamIarUasSasTasUarUasVasWasXarUaadaoBaoBaoBaoBaoBaoBaoBaoBaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaamJanjanjanjanjanjanjanjanjanjanMarWasYasZamJamiamiataatbatcatcatcatcatcatcatdateatfaaFatgalzamiathapqargatialzatjamiamiamiatkakTaoBaoBaadaqraqsaqraaaaaaaaaarjarjarjaqsaqsarjaqsaqsaqsarjaptaoHapxatlatmatnapxaoHapyatoaoKatpatqatraoKatsanbandapEaiEaqDaqDaqDaqDaqDattazgaqDavJavAavKaqDbPPavAavLaqDasGaqGawRawTawUawUawVawWasKaqKaqKaqKaqKaqKaqJapRaEZayHatJatJatJaadaluamIctGapgatLamIatMatNatNatNatNavXatNatPamIamIamIuyYamIamIamIamIaltasOarUatQatRatRarUatSatTatUarUaoBaoBaoBaoBaoBaoBaoBaoBaoBaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaamJanjanjanjanjanjanjanjanjanjanMarWasYasZamJamiamiataatbatcatcatcatcatcatcatdateatfaaFatgalzamiathapqargatialzatjamiamiamiatkakTaoBaoBaadaqraqsaqraaaaaaaaaarjarjarjaqsaqsarjaqsaqsaqsarjaptaoHapxatlatmatnapxaoHapyatoaoKatpatqatraoKatsanbandapEaiEaqDaqDaqDaqDaqDattazgaqDavyavAavKaqDbPPavAavLaqDasGaqGawRawTawUawUawVawWasKaqKaqKaqKaqKaqKaqJapRaEZayHatJatJatJaadaluamIctGapgatLamIatMatNatNatNatNavXatNatPamIamIamIuyYamIamIamIamIaltasOarUatQatRatRarUatSatTatUarUaoBaoBaoBaoBaoBaoBaoBaoBaoBaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadamJanjanjanjanjanjanjanjanjanjanMatVatWatXamJatYlORauaaubanRaucaudaueaufalzaugateaaFauhatfakTamiasfalzalzalzalzalzalzalzauiatkakTaadaoBaadaqraqsaqraaeaaeaaeaujaukaulaqsaqsarjarjaumarjarjaptaoHaoHaunaoHauoaoHaoHaupauqaoKaoKaoKaoKaoKauranbausapEaiEaqDaruarvaytarxawXawYaqDaqDawZaqFaqDaqDaxaaqFaqDaxbaqGaxcatDaxdaxdaxeaxfatEaqKaqKaqKaqKaqKatFasHaFaaqGaltaltaltaltaltamIaltapgapgapgapgapgapgapgapgapgaltauMauNaltaltaltaltaltaltaltaltamIauOarUatRatRauPauQatQauRarUaoBaoBaoBaoBaoBaoBaoBaoBaoBaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajXDaGRaNMatJatJatJatJauSamJamJamJamJamJamJamJamJamJamJamJauTauUamJamJauValzataauWamiauXauYamiamialzaugateauZaadauZalzamiavaalzavbavcalzatjaqoavdaveaveaveawCavfavfavgavhaviavfavfavfavgaviavgavgavhavgavjavhavkavlavmavnavnavoavnavpavnavnavqavravnavnavnavnavsavtavuavuavvavwaqDastasvasvazyauwaxgayuauxauyauzauAauBauCayxcIiayAaqGayBatDayCaxdaxeaxfatIaqKaqKaqKaqKaqKatIauKauLaqGaFTaFSaltasLaqcamIavNaltavOaosavPavQaoraltatLaoraltavRamIaltavSamIaltavTavUavVavWavWavWawxavYavZawaawbawcawdarUarVarVaaFaaFarVarVarVarVaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRMatJjXDbanaaaaaaaaaaaaaaaaweawfawgawhawiawiawiawiaLLawiawiawjawkawlawmawnawoalzataauWawpamiawqamiawralzaugawsaveaveaveaveawtaveasecGzawqawuamiamiawvawwaDVawyawBawzawzawAawzawBawzawzawAawyawDawFawFawFawFawFawFawGawHawIawJawJawJawJawKawJawJawKawJawLawLawLawLawLawMawNawOawPawQaqDaqDaqDaqDaqDattayEayvazCazCazJavzavzazAavGawSazBazKazDazEazGazGazHazIatIaqKaqKaqKaqKaqKatIavMaIqaqGamIamIatOamIamIamIamIamIamIaxlatNatNatNatNatNatNatNaxmamIamIamIamIasRamIamIaxnaxoaxpaxqaxraxsaxtatRatRatRaxuarUaadaoBaoBaoBaoBaoBaoBaoBaoBaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRMatJjXDbanaaaaaaaaaaaaaaaaweawfawgawhawiaEOawiawiaLLawiawiawjawkawlawmawnawoalzataauWawpamiawqamiawralzaugawsaveaveaveaveawtaveasecGzawqawuamiamiawvawwaDVawyawBawzawzawAawzawBawzawzawAawyawDawFawFawFawFawFawFawGawHawIawJawJawJawJawKawJawJawKawJawLawLawLawLawLawMawNawOawPawQaqDaqDaqDaqDaqDattayEayvazCazCazJavzavzazAavGawSazBazKazDazEazGazGazHazIatIaqKaqKaqKaqKaqKatIavMaIqaqGamIamIatOamIamIamIamIamIamIaxlatNatNatNatNatNatNatNaxmamIamIamIamIasRamIamIaxnaxoaxpaxqaxraxsaxtatRatRatRaxuarUaadaoBaoBaoBaoBaoBaoBaoBaoBaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaxvaaaaaaaaaaxwaxyaxzayTaxAaXbaxAaxCaxDaxDaxEaxFbdpaxGaxHaxDaxDaxIaveaxJauWaxKamiamiaxLaxMalzaxNaxOatZatZatZatZatZaxPateaxQamialzarYarYateaxRalzawEaxSawEaxXaxUaxVaxWbmGaxVaxYaxVaxZayaayaayaayaayaayaayaaybaycaydayeayfaygayhayiayjaykaylaymayncbvaypayqayranbaysahfafmaqDaruarvaBKarxbdxaywazzazNaAVaBOaATawSawSawSawSaAUaBPaAWapRapRasIauJaxfatEaqKaqKaqKaqKaqKaxhaxiaxjaxkamIamIaltaorayKayKayKayKaltarPaltaltayLaltaltapialtarPasLaltaltapialtamIasLaxnayMarSarUayNayOayPayQayRayOaySarUaadaoBaoBaoBaoBaoBaoBaoBaoBaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRMatJjXDbanaaaaaaaaaaaaaaaaweayVaweayUaBcayUayWaxBaxBayXayUaBcayUayYayZazaazbalzataauWalzalzalzalzazcazcazdazeazcazcazcazcazcaugawsaveaveaveaveaveazfaxRaoEawEaBMaBqaBqabFaxVaeXaHzazhaHHaxVaIDayaaAAazjazkazlaCWayaaybaznazoazpazpazqazrazpazpazpazsaztaztazuazvayqazwanbazxahfafmaqDastasvasvaDoaBNaBSaDraEHaEHaDraDsaDtaDuaDvaDwbiZaDKauEaDMbjbazLaEDaDNayIaqKaqKaqKaqKaqKayJaltaltaltamIamIaltaltayKazOazPayKapZarPaltazQamIaltazRamIaltazSazTaltazUamIaltapiapiaIpazVapiarUazWayOazXazYazXayOazZarUaadaadaadaoBaoBaoBaoBaoBaoBaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajXDbclcEeatJatJatJatJauSaAaauSaAbaRJayUaAcaAdaAeaAfayUaRJaAbayUauSaAgaAhalzaAiaAjaAkaAkaAkaAlazcaAmaAnaAoaApaAqaAraAmazcaAsaAtaAuaAvaAvaAvaAvaAvaAwarYawEaHIaBqaICaIYaxVaIZaJcaHzaJfaxVaxZayaaCXaABaACaADaCYayaaAEaAFaAGaAHaAIaAJaAKaALaAMaANaAOaAPayoayoayoaAQazwanbaARahfafmaomaomaomaomaomaEGbgocHXcIjayyaEIaEJazFazFazFazFazFaqGaqGaqGaAXaDDaGlaqGayJaqKaqKaqKaqKaqKayJaltapZamIamIamIaltaAYayKaAZaBaayKamIarPaltamIasNaltamIamIaltarPasOaltcGAamIaltaBbuyYaxnayMaqTarUarUarUarUarUarUarUarUarUarVarVarVarVarVaadaoBaoBaoBaoBaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -7333,10 +7339,10 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJat
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRMatJjXDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayUayWaEcaBeaEdaEeaEfaEgaEhaEiazcaFraFsaFwaFxaFsaFwaFxaEkaGVaGYaGZaHaaGZaGZaGZaGZaIuaGVaBnaKiaKjaKkaKkaGjaHyaKkaKpaKraBTaxZayaaEraEsaEtaEuaEvayaaqsaEwaydaydaDiaExaEyaEzaEAaydaydayoayoayqaEBayqazwanbazxahfafmaomaGgaHtbczbdwbdxbeMaEKaEKaEKbssaEMaEKbghbghbgibeLazFaqGaqGbbVaHCaJabnbaCiaCiaCiaCiaCiaCiaCiaCibGNaltaltaltaEPaltayKaEQaERaESaETaEUaEVaEWaEVaHwaHBaHVaHWaHXaFbaFbaFbaFbaFcaFdaFeaFcaFcaFcaFcaFcaFcaFcaFfaFgaFhaCwaCwaCwaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayUayWaFiaBeaFjaFkaFlaFmaFnaFoazcaIzaYjbfNbgTbjjaCFaFqazcaIvaIwaFtaFuaElaElaElaFvaIxaIyaBnaLcaLgaKkaLhaLkaLlaKkaLnaLoaBTaFDayaaFEaFFaEtaFGaENayaaqsaFIayqaFJayoaFKaFLaFMayoaFNayqaFOaFPayqaFLayqaFQaoNaFRahfafmaombtSbtTbtUbBTattatuazFbaubaKbLfcHhazFazFazFazFazFazFaKtaITbbVaLXaGbbsrbsDcImbjkaOdaDOaDOaDOcveaLWaGmaGkaGkaGnaGiaGoaGpaCnaGqaGraGsaGtaGuaGtaHYaGwaFbaHZaIaaKIaKJaMpaGBaFcaGCaGDaFcaGEaGFaGGaGHaGIaGJaGKaGLaGMaGNaGOaGPaaaatJaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoBaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGQayUayWcEwaBeaBeaGSaGTaGUaGTaBeazcazcazcazcazcazcaGWaGXazcaIAaIBaJUaJUaJUaQKaJUaJUcGdcGeaBnaLpaLxaKkaLkaLSaLkaKkaLTaLZaBTaxZayaaHdaHeaHfaHgaHhayaaqsaHiayqaHjayoaHkaFLaHlayoaHmayqaAQaAQayqaHnayqaHoaHpaHqahfanDaomaomaomaomaomaHraHsazFazFazFbLfbjlbsGbsGaLYaMcaNmaNoaNuaNUbbVaOcaNnaJdcvtaJdcuucvtaJdaJdaJdcvuaHKaHLaHMaxpaxpaxpaHNaHOaHPaHQaHRamIaHSaHSaHSaHTaIoaFbaMraNEaOzbagbcbbhPaFcaIbaIcaFcaIdaIeaIfaIgaGIaIhaFfaFgaDYaIiaIjaGPaaaatJaaaaaaatJaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayUayWaxBaIraIlaImaIlaInbvpaLfbcxaLqaLvbjpbswaJLaCFbyiazccGfcGgcGhcGicGjcGkcGlcGmcGncGoaBnaMaaMbaKkaKkaKkaKkaKkaMNaMaaBTaxZayaaIEaIFaIGaFGaIHayaaqsapyayqaIIcbvaFLaFLaFLaIJaIKayqcFwcFxaHFaIMaINaIOaIPbULbUQaISaIQcFAcFBaITaOuaIVaIWazFbaubbpcHxbbcbbcbbcbbcaOvazFaOwaOyaVmbbVbpAaVnaJdaBQaBRaDxaOxaDzaFHaNraJiaJiaJjaJkaJlaJiaJmaHSaHSaJnaHTaHSaHSaHSaJoaJpaHTaHUaFbaJqaJraJsaJtaJuaJvaFcaJwaJxaJyaJzaJAaJBaJCaJDaIhaFfaJEaDYaGNaJFaGPaaaaaaaaaaaaatJaaaaMzaMzaMzaMzaMzaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRMatJjXDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayUayWaxBaJGaJHaJIaJHaJJaJHaJHaJHaJKaLOcFCbyfaJLaJMaJLazcaJNaJOaJNaBnaBnaBnaBnaJNaJPaJQaBnaBTaMPaNjaNjaNkaNjaNjaNlaBTaBTaJXayaaJYayaaJZaKaaKbayaarjaoJayqayqayqaAQaKcaAQayqayqayqcFEcFFcFGaKdaIPaIPaIPaIPaIPaKecFHcFIcFJaITaWGaIVaKgazFazFazFazFazFazFazFazFaKqazFaWIaWIaOCbbVbpAaWJaELaPLaDBaDCaOmaDzaDzaNsaJiaLUaKuaKvaKwaJiaKxaKyaKzaKAaKBaKCaKDaKEaKFaKGaHTaHUaFbaKHaMpaMqbmcaMpaKKaFcaKLaKMaKNaKOaKPaKQaKRaFcaFcaKSaFgaDYaIiaIjaGPaaaaaaaaaaaaatJaaaaMzaNIaNJaNLaMzaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauSaKTaxBaKUaKVaKWaKXaKYaKZaweaLaaLbaxBaIraNXaNYaNYaNYaOaaNYbzEaNYaNYaNYaNYaNYaNYbSqaObbSxbTEbUPaNYaNYaNYaNYaNYbVLaNYbVMbWDbWEaLraLmaLsaLmaLtaMWaLuaOeaLwaLRaEEaIRaIRaIRaLNbiMaLPbiFaLPaLPaLAaLBaLCaLDaLEaLFaLGaLPaLPcFDaLHaLIaLJaLKaPJbcXaNKbiGbiMbiHcvEbAIaXUaYkaZMaZMaZMbaEbbbbbRaJdcvtaGcaJdaJdaJdaJdaJdaJiaMdaKuaMeaMfaJiaJiaMgaMhaMiaMjaMkaMlaMmaMnaMoaHTaHUaFbaGzboFaMpaNDaMpaMpaFcaMsaMtaFcaMuctNaKRaKRaFcaMvaMwaMxaDYaCwaCwaCwaMyaMzaMzaMzaMzaMyaMycExaQjaOXaMzaaaatJaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJatJaaaaaaaaaaaaaaaaaaaaaaaaayUaRNayUayUayUayUayUayUaRNayUaaaauSaBdaMAaKUaMBaMCaMDaMEaMFaweaMGaLbaMHaIkaLdaMIaMJaMLaMKaMLaMMaLeaLeaLeaLeaLeaLeaLeaLiaLdaLebXCaLeaLeaPKaPOaMQaMRaMQaMRaMSaMQaMTaMQaMUaMQaMVaOnaMXaMYaMZaIPaIPaIPaIPaIPaIPaIPaIPaLzaIPaIPaNaaNbaNcaNdaNeaNfaNgaIPaIPaLzaIPaNhaIPaIPaIPaIPaIPaIPaIPaNiaIPaIPaIPaLzaIPaIPaIPaIPaIPbbXaJdaKsaNpaPQaWKaQFaJdaQGaJiaNvaKuaNwaNxaNyaJiaHSaHSaNzaHSaHSaHSaNAaNBaNAaHTaHUaFbaFbaFbbtJbtKaFbaFbaFcaFcaFcaFcaFcaFcaFcaNFaFcaFfaFfaFgaDYaNGaNHaCwaOYaPaaPbaQgaQkaQlaMyaQmaQjaOXaMzatJatJatJatJatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayUayWaxBaIraIlaImaIlaInbvpaLfbvpaLqaLvbjpbswaJLaCFbyiazccGfcGgcGhcGicGjcGkcGlcGmcGncGoaBnaMaaMbaKkaKkaKkaKkaKkaMNaMaaBTaxZayaaIEaIFaIGaFGaIHayaaqsapyayqaIIcbvaFLaFLaFLaIJaIKayqcFwcFxaHFaIMaINaIOaIPbULbUQaISaIQcFAcFBaITaOuaIVaIWazFbaubbpcHxbbcbbcbbcbbcaOvazFaOwaOyaVmbbVbpAaVnaJdaBQaBRaDxaOxaDzaFHaNraJiaJiaJjaJkaJlaJiaJmaHSaHSaJnaHTaHSaHSaHSaJoaJpaHTaHUaFbaJqaJraJsaJtaJuaJvaFcaJwaJxaJyaJzaJAaJBaJCaJDaIhaFfaJEaDYaGNaJFaGPaaaaaaaaaaaaatJaaaaMzaMzaMzaMzaMzaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRMatJjXDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayUayWaxBaJGaJHaJIaJHaJJaJHaJHaJHaJKaLOcFCbyfaJLaJMaJLazcaJNaJOaJNaBnaBnaBnaBnaJNaJPaJQaBnaBTaMPaNjaNjaNkaNjaNjaNlaBTaBTaJXayaaJYayaaJZaKaaKbayaarjaoJayqayqayqaAQaKcaAQayqayqayqcFEcFFcFGaKdaIPaIPaIPaIPaIPaKecFHcFIcFJaITaWGaIVaKgazFazFazFazFazFazFazFazFaKqazFaWIaWIaOCbbVbpAaWJaELaPLaDBaDCaOmaDzaDzaNsaJiaLUaKuaKvaKwaJiaKxaKyaKzaKAaKBaKCaKDaKEaKFaKGaHTaHUaFbaKHaMpaMqbmcaMpaKKaFcaKLaKMaKNaKOaKPaKQaKRaFcaFcaKSaFgaDYaIiaIjaGPaaaaaaavJaQgaQgaQgaMzaNIaNJaNLaMzaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauSaKTaxBaKUaKVaKWaKXaKYaKZaweaLaaLbaxBaIraNXaNYaNYaNYaOaaNYbzEaNYaNYaNYaNYaNYaNYbSqaObbSxbTEbUPaNYaNYaNYaNYaNYbVLaNYbVMbWDbWEaLraLmaLsaLmaLtaMWaLuaOeaLwaLRaEEaIRaIRaIRaLNbiMaLPbiFaLPaLPaLAaLBaLCaLDaLEaLFaLGaLPaLPcFDaLHaLIaLJaLKaPJbcXaNKbiGaLPbiHcvEbAIaXUaYkaZMaZMaZMbaEbbbbbRaJdcvtaGcaJdaJdaJdaJdaJdaJiaMdaKuaMeaMfaJiaJiaMgaMhaMiaMjaMkaMlaMmaMnaMoaHTaHUaFbaGzboFaMpaNDaMpaMpaFcaMsaMtaFcaMuctNaKRaKRaFcaMvaMwaMxaDYaCwaCwaCwaMyaMzaMzaQkaQlbiTaMycExaQjaOXaMzaaaatJaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJatJaaaaaaaaaaaaaaaaaaaaaaaaayUaRNayUayUayUayUayUayUaRNayUaaaauSaBdaMAaKUaMBaMCaMDaMEaMFaweaMGaLbaMHaIkaLdaMIaMJaMLaMKaMLaMMaLeaLeaLeaLeaLeaLeaLeaLiaLdaLebXCaLeaLeaPKaPOaMQaMRaMQaMRaMSaMQaMTaMQaMUaMQaMVaOnaMXaMYaMZaIPaIPaIPaIPaIPaIPaIPaIPaLzaIPaIPaNaaNbaNcaNdaNeaNfaNgaIPaIPaLzaIPaNhaIPaIPaIPaIPaIPaIPaIPaNiaIPaIPaIPaLzaIPaIPaIPaIPaIPbbXaJdaKsaNpaPQaWKaQFaJdaQGaJiaNvaKuaNwaNxaNyaJiaHSaHSaNzaHSaHSaHSaNAaNBaNAaHTaHUaFbaFbaFbbtJbtKaFbaFbaFcaFcaFcaFcaFcaFcaFcaNFaFcaFfaFfaFgaDYaNGaNHaCwaOYaPaaPbaRkaRkaRkaMyaQmaQjaOXaMzatJatJatJatJatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajXDaGRaNMatJatJatJatJauSaAaauSayUaRJayUaNNaNOaNPaNQayUaRJayUayUauSayWaxBaKUaNRaNSaMDaMEaMFaweaNTaLbaxBaPmaPnaPvbXDaPwaPwaPwaPxaPyaQCaNVaNZaPwaPwaPwaQEcGpaPwcHdcHecHecHfaSyaQIaOgaOfaOgaOhaOiaOjaOlaOkaQMaRPaWUaOoaOpaIPaOqaOqaOqaOraOqaOqaOqaOqaOsaOqaOqaOqaOqaOqaOqaOtaOqaOqaOqaOqaPPaOqaOqaOqaOqaOqaOqaOqaOqaIPaIPaIPbfQbfQaRfbfQbfQbfQbfQbfQaRiaJdaRlaKoaJhaLQaLQaJdaltaJiaOAaOBaODaWFaOEaJiaHSaOFaOGaOHaOIaKmaOHaOJaOKaHTaHUaFbaOLaOLaOMaONaOOaOOaOPaFbaOQaORaOSaCwaFfaGNaOTaFfaFfaOUaOVaCwaOWaCwaQnbamaRkaRkbcjaSWaMyaSXaOZaSYaMzaMzaMzaMzaMzaMzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRMatJjXDbanaaaaaaaaaaaaaaaaweawfaweayUaXfayUayWaxBaxBayXayUaXfayUaPcaPdaPeaxBaKUaPfaPgaKXaPhaKZaweaPiaLbaLOcFKcFLaPjaPkaPlaPlaPlaPlaPlaPlaQHaQLaPlaPoaPlaPlaPlaPpaPqaPraPqaPsaPtaPuaYMaLeaRObeuaRZbexbhKaPzaScaPAaPAaPMaRgaRmaILaILaILaILaILaILaILaILaPCaPDaPEaPFaPEaPEaPEaPGaPEaPHaPEaPIaPCaILaILaILaILaILaILaILaILaPMaTSaUTaJdaJdaJdaJdcuTbeNbeNcuTcwFaJdaRsbjnbMRcvDcvbaJiaRnaJiaJiaPRaJkaJiaJiaJiaJiaOHaPSaPTaPTaPTaPTaPUaOHaHTaHUaFbaPVaMpaOMaONaMpaMpaPWaFbaPXaPYaPZaCwaFfaIiaQaaQbaQbaQcaQdaQeaQfaCwaRkbfTbqAbTpchDaPbaMyaUsaVCbspaXcaRkaRkaXdaRkbkIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaQoaaaaaaaaaaxwaxyaxzayTaQpbvpaQqaPeaxBaxBaQraQqbvpaQpaPeaxBaxBaxBaQsaQtaQuaQvaQwaQxcFMaQyaQzaLOcFNcFOaPjaQBaPlaRQaRRaRSaRUaSLaSMaThaTmaTpaUeaUfaUCaPpaQNaQOaQPaPsaQQaPuaPuaQRaPuaPuaPAaPAaQSaQTaPAaPAaPAaQUbiLbbeaILaaaaaaaaaaaaaaaaaaaaaaPCaKnaQVaQWaQXaQYaQZaRaaRbaRcaRdaReaPCaaaaaaaaaaaaaaaaaaaaaaILaVNaIPbjDaJdaGaaRjaTTaTUcwZcwZaWHbiSbcWbdaaSaaSaaSacvaaVoaSBaRoaRpaRqaRraRtaRuaSuaJiaOHaRvaVsbiNbiNbiOaRxaOHaHTaRyaFbaRzaRzxNJaONaRAaRAaRBaFbaFbaRCaFbaCwaRDaGNaOTaREaRFaOUaOVaCwaCwaCwaYNcDRcEibbkbblbcgaMyaRGaRHaMzaMzaMzaMzaMzaMzaRIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -7356,21 +7362,21 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoBaaabdrbkBbkCbkDbkEbkEbkFbkGbkHbASaPjbkJbkKbkLbkLbkLbkMbkMbkMbkMbkMbkMbkNbkObhYbkPbkQbkRbkSbkTbkUbkXbkWbhYblfbkYbkZbeVbeVblabpvblcblbbldblebxQblgbbZblhblibljblkbllaZybgJblmaZvaZvaadaAxcGEaBsboabpHaBvaAxaadaZDaZDbipbpdbiqbaWbjebjfbjgaZDbjoaIPbjDbfvblsbisbltblublvblwbhcblxblyblzblAblBblCblCblDbhcbixbfDblEblFblGbpobkabhibhibkbbkabkcblHbfBblIblJbjWblKblLblMblNblKbkkblOblPbkmbkmbkmbkmblQbfLblRblSblTbfSbkvbgRbgRbkwbkxbkybfSbkzbnwbnxbnybnzbnAaaeaaeaaeaaeaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdrblZbdrbmabmbbmbbxBbdrbmdbmdaPjbmebmfbmebmebmebmfbmeaPjaPjbhYbhYbmgbmhbhYbmibmibmibmibmibmibmjbmkbmlbmmbmnbmobmpbmqbmrrJHbmsbiebmucWYbjCbmvbzhbmxbmybmzbmAbmBaZybpIbpJaZvaadaadaAxcGFaCSbpKaFzcGGaAxaadaadaZDbmHbmIaZDaZDaZDaZDbmJaZDbmKaIPbmLbfvbmMbmNbmObitbiubmPbhcblxbmQbmRbmSbmTbmUbmVbmWbmXbixberbmYbmZbnabpzbkabhibhibkbbkacHvbncbfBbndblJbjWbnebkgbnfbkibngbkkbnhbnibnjbnkbnlbnmbnnbfLbnoblSbnpbfSbnqbnrbnsblnbtIblpbfSbkzbnwbANblYblYblYatJaaaaaaaaeaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJbdrbnBbkCbnCbmbbnDbnEbdraaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaabnFbnGbnHbnIbnJbnKbmibmibmibnLbmibmibnMbnNbnOblbbnQbnRblbbnTkjTeDbbiebqIbeVbAObnWbbfblhbnXbnYbnYbnYbnYbnZbrdbobaadaaaaAxaEnaHbaEobqgaEqaAxaaaaadaZDbntbnubnvbojbokaZDbreaZDbjiaIPbombfvbonboobopboqborbfvbosblxbmQbotboubhcbovbotbmWbowboxberboybozboAboBboCboCboDboEboHcIoboHboIboJboKbjWboLboMboNboOboPboQboRboSboTboUboVboWaRhbfLboXboYboZbfSbpabpbbpcblqbgRblrbfSbpebpfcEfblYcEgblYatJatJaaajXDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJbdrbpjbkCbkCbkCbdrbdrbdraaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaabnFbpkbplbpmbpnbpnbpnbpnbpnbpnbpnbpnbqJbhYbppbpqbprbpsbptbpubeVviwbiebpybeVbjCbpAbjDblhblhbobbpCbpDbpEbpFbpGbobaaaaaaaAxaFybrccGBcGLaFCaAxaaaaaaaZDboibpdbpxaZDbpOaZDcGHaZDbjiaIPbpQbpRbpSboobpTbitbpUbfvbjEamDbpWbpXbpYbhcbpZbpXaDybqbbjEberberbqcbqPbqdbqebqfbqfbqfbqfbqhbqibqibqibqjbqkbfIbfIbfIbfIbfIbqlbqmbkmbqnboWboWbvAbqpbqlbATbAUbBQbqtblUblVblWblXbogbohbfScEqbfScEpbphbphbphbphbphbphbpiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJbdrbpjbkCbkCbkCbdrbdrbdraaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaabnFbpkbplbpmbpnbpnbpnbpnbpnbpnbpnbpnbqJbhYbppbpqbprbpsbptbpubeVviwbiebpybeVbjCbpAbjDblhblhbobbpCbpDbpEbcxbpGbobaaaaaaaAxaFybrccGBcGLaFCaAxaaaaaaaZDboibpdbpxaZDbpOaZDcGHaZDbjiaIPbpQbpRbpSboobpTbitbpUbfvbjEamDbpWbpXbpYbhcbpZbpXaDybqbbjEberberbqcbqPbqdbqebqfbqfbqfbqfbqhbqibqibqibqjbqkbfIbfIbfIbfIbfIbqlbqmbkmbqnboWboWbvAbqpbqlbATbAUbBQbqtblUblVblWblXbogbohbfScEqbfScEpbphbphbphbphbphbphbpiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJatJaaaatJaaaaaaatJaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaabqFbnFbnFbqGbplbkVbmibqHbqHbqHbqHbmibmibmibsmbhYbihbmwbqLbqMbqNbeVbeVbqQaZJbeVbeVbBVbqSbqTbqUbqVbqWbqXbpLbpMbpNbrbbobaadaaaaAxaAxcGUaHccGVaAxaAxaaaaadaZDbqxbqybDUaZDbriaZDbolaZDbjiaIPbpQbfvbrjboobrkbrlbrmbfvbrnblxbrobpXbjEbrpbjEbpXbrqbrrbrsbrtbrubrvbrwbrxbrybrzbrAbrBbrCbrDbrEbrFbrGblJbrHbrIbrJbrKbrLbrMbrNbrObrPbrQbrRbrSboWbrTbrUbrVbrWaSxbqtbqubqvbqwbqYbgRbqZbsccEscEtbqCbqDbqDbqDbqDbqDbqEbhIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaatJaaaaaajXDaaaaaaaaaaaajXDaaaaaaaaaaaaaaaaaaaaabsfbsgbsfbshbsibsjbskbslbmibmibmibmibzKbmibvlbhYbqKbvmcEOcEPcEQcERbsqbsnbtHbDubxPbzAbpAbjDasFbsxbsybszbrabrfbpNbsCbobaaaaaaaTBbmCcIpaIPcIqcGJaTBaaaaaabsHbsIbsJbsHbsHbsHbsHbsKbsHbsLaLzbsMbfvbfvbsNbsObsPbfvbfvbhcbsQbsRbsSbsTbsSbsUbsSbsWbqbbhcbhcbhcbqbbhcbhbbrybrzbsXbsYbsZbtabtbbtcbrGbtdbtebtfbtgbtgbtgbthbtibtjbtkbtlbtmbtnbtobtpbtqbtrblSbtsbqtbqtbttbtubtvbttbqtbScbScbScbScbScbScbScbScbScbtBbhIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaatJatJatJjXDatJjXDjXDatJjXDaaaaaaaaaaaaaaaaaaaaabtCbtDbtEbtFbmibkVbmibqHbqHbtGbqHbmibmibvgbhYbhYbxRbxYbzqbzwbzxbzxbpwbzybtLbDwbDxbzAbpAbjDasJbtMbtNbtObrgbrgbrhbtRbobaadaadaTBcGKcGWcIrcIscGNaTBaadaadbsHbuabubbucbudbuebufbugbsHbjoaIPbMmbujbukbulbumbunbuobupbuqburbusbutbutbutbutbutbuubuvbutbutbutbuwblCbuxbuybrzbuzbuAbuBbuBbuCbuDbrGblJbrHbuEbuFbuGbuHbuIbuJbuKbkmbuLbkmbkmbkmbuMbqlbuNbuObuPbuQbuRbuSbuTbuUbuVbuWbuXbuYbuZbvabvbbvabtwbvcbvdbvebhIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaatJaaaaaajXDaaaaaaaaaaaajXDaaaaaaaaaaaaaaaaaaaaabqFbnFbnFbvfbmibkVbmibmibmibmibmibmibmibwEbwWbxTbxRbvibvjbvkbvnbvnbvnbvobAwbDwbDxbzAbpAbjDctHbsxbobbvrbvsbvtbvubvvbobaaaaaaaTBcGMcGWcItcIucGOaTBaaaaaabsHbvybvzbALbvBbvCbvCbvDbvEbvFbvGbWxbvHbvIbvJbvKbvLbvMbvNbvMbvMbvObvPbvQbvRbvRbvRbvSbvTbhcbhcbvUbvVbvVbvWbrzbrzbrzbvXbvYbvZbtbbuDbrGbwabrHbfLbqlbqlbqlbqlbqlbqlbqlbqlbqlbwbbwcbwbbqlbwdbwebwfbwgbwgbwgbwhbwibwjbwkbwlbwmbwnbwqbwpbwqbwrbwsbwtbwubwvblYbwwbwwblYaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaatJaaaaaajXDaaaaaaaaaaaajXDaaaaaaaaaaaaaaaaaabwxbtCbtDbtEbpkbwybmjbwzbnKbmibwybmibmibmibwEbxUbxVbxRbAybsobwCbpwbpwbpwbAzbpwbDwbDxbzAbpAbjDctIbwGbobbwHbwIbwJbwKbpGbobaaaaaaaTBcGPcIvaMZbiLcGQaTBaaaaaabsHbwPbwQbwRbwSbwTbwUbwVbsHcHwaIPbjDbjEbjEbwXbwYbsWbwZbxabxbbxcbxcbxbbxabxbbxabxbbxabxbbxabfzbfzbvVbxdbuBbxebxfbrzbvXbxgbxhbxibxjbrGbxkbxlbxmbxnbxobwgbwgbxpbwgbwgbxqbxrbxsbxtbxubwgbxvbxwbxxbxybxybxybxzbxzbxzbxzbXybxAbzgbzjbxDbzjbxEbtxbScbxFbxGbxHbxIbxJblYaadaaaaaaaaaaaaaaaaaaaadaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaatJaaaaaajXDaaaaaaaaaaaajXDaaaaaaaaaaaaaaaaaaaaabxKbxLbxKbxMbxNbxMbxMbxMbxMbxMbxMbxObmibwEbxUbzrbxRbxSbzzbAxbBPbBUbBUbBUbBUbXzbxPbzAbpAaKebxZbsxbobbyabybbycbydbyebobaTBaTBaTBaTBcGXcGRcGYaTBaTBaTBaTBbsHbyjbykbylbymbwTbwUbwVbsHbynaIPbjDbyobypbyqbwYbyrbysbxabyubyubyvbywbyxbjcbyzbyAbyzbyBbxabhcbyCbvVbyDbuBbyEbyFbyGbyHbyIbyJbyJbyKbyLbyMbyNbyObyPbyQbyRbySbyRbyRbyTbyRbyRbyUbyVbyRbyRbyWbyXbyYbxybrXbrYbrZbzcbzdbzebXybzfbzgbzjbzibzjbxEbzkbScbxFbhIbzlbzmbznblYaaaaaaaaaaaaaaaaaaaaaaadbzoaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJatJatJjXDatJjXDjXDatJjXDaaaaaaaaaaaaaaaaaaaaabqFbnFbnFbnFbhYbzpbzpbzpbzpbzpbtVbmibmibwEbxUbDebhYbzsbztbzubtWbxWbxXbxXbxXbxWbxWbLdcGsaRmaTBaTBbobbobbobbobbobbzBbobcFXcFYcFZaTBcGZcGScHaaTBcGacGbcGcbsHbsHbsHbsHbsHbsHbsHbsHbsHcGtaTScGubxabxabzHbzIbxabxabxabzJbyubDFbyubzLbzMbzNbzObzPbzQbzLbhcbyCbvVbzRbzSbzTbzUbzVbzWbzXbzUbzUbzYbzZbAabAbbAcbAcbAcbAcbAdbAcbAcbAcbAebAebAfbAgbAhbAhbtrbAibtsbxybHIbsbbsAbAmbAnbAobScbtybtzbAqbtAbAqbApbArbScbxFbhIbAsbzmbAtblYaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaajXDaaaaaaaaaaaajXDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbzpcIdbqObMlbzpbtXbAvbmibIjbQwbQwwzybAAbABbACbADbxXbvxbwLbwMbwNbxWcGwbpAaIPaLPbAIbAJbAKaLPbiFbEWbAMbKObXBbXBbXBcHbbAPbAQcGTcHcaLPaLPaLPaLPbAKaLPbiFaNKaLPaLPbAJaLPbAVaIPbAWbxabAXbAYbAZbBabBbbxabBcbyubBdbyubzLbzMbzMbBebBfbBgbzLbhcbBhbvVbuBbBibBjbBkbBlbBmbBnbBobBpbrGbrGbBqbBrbAcbBsbBtbBubBvbBwbBxbAcbwObygbyhbzvbzCbAhbtrbAibBDbBEbsBbsVbtPbBIbBJbBKbScbBLbTkbTlbTmbTlbTkbTnbScbxFbhIbBMbBNbBOblYaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoBaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJatJatJjXDatJjXDjXDatJjXDaaaaaaaaaaaaaaaaaaaaabqFbnFbnFbnFbhYbzpbzpbzpbzpbzpbtVbmibmibwEbxUbDebhYbzsbztbzubtWbxWbxXbxXbxXbxWbxWbLdcGsaRmaTBaTBbobbobbobbobbobbzBbobcFXcFYcFZaTBcGZcGScHaaTBbjmbiUbsFbsHbsHbsHbsHbsHbsHbsHbsHbsHcGtaTScGubxabxabzHbzIbxabxabxabzJbyubDFbyubzLbzMbzNbzObzPbzQbzLbhcbyCbvVbzRbzSbzTbzUbzVbzWbzXbzUbzUbzYbzZbAabAbbAcbAcbAcbAcbAdbAcbAcbAcbAebAebAfbAgbAhbAhbtrbAibtsbxybHIbsbbsAbAmbAnbAobScbtybtzbAqbtAbAqbApbArbScbxFbhIbAsbzmbAtblYaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaajXDaaaaaaaaaaaajXDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbzpcIdbqObMlbzpbtXbAvbmibIjbQwbQwwzybAAbABbACbADbxXbvxbwLbwMbwNbxWcGwbpAaIPaLPbAIbAJbAKaLPbiFbEWbAMbKObXBbXBbXBcHbbAPbAQcGTcHcaIPaLPaIPaLPbAKaLPbiFaNKaLPaLPbAJaLPbAVaIPbAWbxabAXbAYbAZbBabBbbxabBcbyubBdbyubzLbzMbzMbBebBfbBgbzLbhcbBhbvVbuBbBibBjbBkbBlbBmbBnbBobBpbrGbrGbBqbBrbAcbBsbBtbBubBvbBwbBxbAcbwObygbyhbzvbzCbAhbtrbAibBDbBEbsBbsVbtPbBIbBJbBKbScbBLbTkbTlbTmbTlbTkbTnbScbxFbhIbBMbBNbBOblYaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoBaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajXDaaaaaaaaaaaajXDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbzpfpLbMklOVbzpbzpbzpbBRbDcbDcbzpbzpbBWbBXbBYbBZbCabzDbAubAEbAFbxWbjibCeaIPaIPaIPaIPaIPaIPbCfaIPbpAaIPaIPaIPaIPaIPbCgbChbCiaIPaIPaIPaIPaIPaIPaIPaLzaIPaIPaIPaIPaNhbAVbCjbjDbxabCkbClbCmbCnbCobxabCpbyubyvbCqbxabCrbCsbCtbCubCvbxabhcbyCbvVbvVbvVbvVbvVbrGbrGbrGbrGbrGbrGbCwbCxbCybAcbCzbCAbCBbCCbCDbCEbAcbAGbAHbBybBzbBAbAhbtrbCKbCLbCMbtQbyybyybyZbzabzbbScbUtbUubCSbCTbCSbUvbUtbScbxFbhIbCUbzmbCVblYaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajXDaaaaaaaaaaaajXDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzpbzpdfsbzpbzpbCWbCXbIYbCZbDabDbbDcuifbGKbDfbDdbDgbBBbBCbCbbCcbxWbQCbDmbDnaKlbDnbDobDnbDnbDpbDnbDqbfQbDrbDsbfQbDtcoqcovcowcqibDybDzbDAbDAbDBbDAbDCbDDbDAbDEbRgbDGbDHbfQbDIbxabDJbDKbDLbxbbxbbxabxbbDMbxbbxabxabxabxabxabxabxabxabhcbhcbDNbDObDPbwZbDQbDRbAjbAkbAlbBFbDRbDWbDXbDYbAcbBsbDZbEabEbbEcbEdbAcbCdbCFbCGbCHbCIbAhbtrbEjbEkbxzbBGbBHbCNbCObCPbCQbScbUwbVxbVybErbVybVxbVzbScbEsbEtbEubzmbznblYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajXDatJjXDjXDatJjXDatJcrbjXDjXDjXDcrbatJatJatJatJatJatJbDctsdbIYpOzdwndALbWhpNVhmyrdArQznTcbEvbEwqhLaTRbxWbCJbDhbDibDjbxWbExbEyaITaITaITaITbEzbEzbEzbEzbEzbEzbEzbEzbEzbEzbEAaHpbEBbECbECbECbECbECbEDbECbECbECbECbEEbEFbEEaIUaKfbEGbxabEHbEIbEJbEKbELbxabEMbyubENbEObEPbEQbERbESbETbEUbEOblDbhcbhcbhcbhcbhcbsWbEVbCRbDSbCRbDTbDRbEZbCxbFabFabFabFabFabFabFabFabFabFbbFbbFbbFbbFbbFbbFcbFdbFebxzbxzbxzbxzbxzbxzbxzbScbScbScbScbScbScbScbScbScbxFbhIbFfbFgblYblYaadaadaadaaeaaeaaeaaeaaeaaeaaeaaeaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabDckoehZpfNzbFhsoPjSqdEdfMfwaouQIwmybFibFjbFkbFlbFpbFpbFpbFpbFpbFqbFrbEyaaaaaaaadaaabEzbFsbFtbFubFvbMybFxbFybNNbEzbFAbFBbFCbECbFDbFEbFFbFGbFHbFIbFJbFKbFLbFMbFNbEEbEEbEEbEEbxabFObFPbFQbFRbFSbFTbFUbFVbFWbFXbFVbFVbFVbFYbyubFZbGabGbbGcbGcbGdbGebGfbGgbEVbIZbDVbElbEmbDRbEZbCxbFabGlbGlbGlbGmbGlbGlbGlbFabGnbGnbGobGnbGnbFbbGpbGqbGrbGsbGtbGubGvbGwbGxbGybGzbGAbGBbGCbGDbGEbGFbGGbGGbGHbGIbGtbGtblYaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabDcjUKsaookwbzpbzpbDcbDcbDcbDcbzpbzpbGJbGKbGLbGMcFsbtYbGPlQqbGPcGrbGRbGSaadbGTbGUbGVbGWbGXbFzbGYbFzbGZbFzbFzbFzbEzbHabHbbHcbECbHdbHebHfbHgbHhbHibHjbECbECbHkbHlbHmbHnbHobHpbHqbHrbHsbHtbHubHvbHwbHxbHybHzbHAbHBbHCbyubyubyubHDbjEbjEbjEbjEbjEbHEbHFbwYbEVbEnbEobCRbEpbDRbEZbCxbFabGlbGlbGlbGlbGlbGlbGlbFabHJbHKbHLbHMbHNbHObHPbHQbGrbHRbHSbHTbHTbHTbHTbHTbHTbHUbHVbHWbGDblYbHXbHYbHZbHZbIabIbbIcbGtatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadbIdbIebIdaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaggeggeggeggebzsiMGfyTfyTfyTfyTukKbIgwNCbJEbIibMocGxbzsbEybIkbEybEybIlbImaaabInbIobIpbIqbFzbFzbIrbFzbIsbItbIubFzbEzbHabHbaTWbECbIvbIwbIxbIybIzbIAbIBbECbCwbICbIDbIEcFgbIFbIGbHAbIHbIIbIJbyubIKbxabILbIMbINbxabIObyubyubyubyubIPbjEbIQbIRbISbITbIUbIVbIWbIXbEqbCRbXAbEXbJbbJcbJdbFabGlbGlbJebGlbGlbGlbGlbFabJfbJgbJgbJhbJibJjbJkbJlbGrbJmbJnbHTbHTbHTbJobJpbJqbJqbJqbJqbJrbJsbJtbJubJvbJwbJxbJybJzbHSatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadbIebIdbJAbIdbIeaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajXDaaaaaaaaaaaajXDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaboebzpbzpdfsbzpbzpbCWbCXbIYbCZbDabDbbDcuifbGKbDfbDdbDgbBBbBCbCbbCcbxWbQCbDmbDnaKlbDnbDobDnbDnbDpbDnbDqbfQbDrbDsbfQbDtcoqcovcowcqibDybDzbDAbDAbDBbDAbDCbDDbDAbDEbRgbDGbDHbfQbDIbxabDJbDKbDLbxbbxbbxabxbbDMbxbbxabxabxabxabxabxabxabxabhcbhcbDNbDObDPbwZbDQbDRbAjbAkbAlbBFbDRbDWbDXbDYbAcbBsbDZbEabEbbEcbEdbAcbCdbCFbCGbCHbCIbAhbtrbEjbEkbxzbBGbBHbCNbCObCPbCQbScbUwbVxbVybErbVybVxbVzbScbEsbEtbEubzmbznblYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajXDatJjXDjXDatJjXDatJcrbjXDjXDjXDcrbatJatJatJatJatJboGtsdbpFbIYpOzdwndALbWhpNVhmyrdArQznTcbEvbEwqhLaTRbxWbCJbDhbDibDjbxWbExbEyaITaITaITaITbEzbEzbEzbEzbEzbEzbEzbEzbEzbEzbEAaHpbEBbECbECbECbECbECbEDbECbECbECbECbEEbEFbEEaIUaKfbEGbxabEHbEIbEJbEKbELbxabEMbyubENbEObEPbEQbERbESbETbEUbEOblDbhcbhcbhcbhcbhcbsWbEVbCRbDSbCRbDTbDRbEZbCxbFabFabFabFabFabFabFabFabFabFbbFbbFbbFbbFbbFbbFcbFdbFebxzbxzbxzbxzbxzbxzbxzbScbScbScbScbScbScbScbScbScbxFbhIbFfbFgblYblYaadaadaadaaeaaeaaeaaeaaeaaeaaeaaeaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpVkoebIYhZpfNzbFhsoPjSqdEdfMfwaouQIwmybFibFjbFkbFlbFpbFpbFpbFpbFpbFqbFrbEyaaaaaaaadaaabEzbFsbFtbFubFvbMybFxbFybNNbEzbFAbFBbFCbECbFDbFEbFFbFGbFHbFIbFJbFKbFLbFMbFNbEEbEEbEEbEEbxabFObFPbFQbFRbFSbFTbFUbFVbFWbFXbFVbFVbFVbFYbyubFZbGabGbbGcbGcbGdbGebGfbGgbEVbIZbDVbElbEmbDRbEZbCxbFabGlbGlbGlbGmbGlbGlbGlbFabGnbGnbGobGnbGnbFbbGpbGqbGrbGsbGtbGubGvbGwbGxbGybGzbGAbGBbGCbGDbGEbGFbGGbGGbGHbGIbGtbGtblYaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpVjUKbqasaookwbzpbzpbDcbDcbDcbDcbzpbzpbGJbGKbGLbGMcFsbtYbGPlQqbGPcGrbGRbGSaadbGTbGUbGVbGWbGXbFzbGYbFzbGZbFzbFzbFzbEzbHabHbbHcbECbHdbHebHfbHgbHhbHibHjbECbECbHkbHlbHmbHnbHobHpbHqbHrbHsbHtbHubHvbHwbHxbHybHzbHAbHBbHCbyubyubyubHDbjEbjEbjEbjEbjEbHEbHFbwYbEVbEnbEobCRbEpbDRbEZbCxbFabGlbGlbGlbGlbGlbGlbGlbFabHJbHKbHLbHMbHNbHObHPbHQbGrbHRbHSbHTbHTbHTbHTbHTbHTbHUbHVbHWbGDblYbHXbHYbHZbHZbIabIbbIcbGtatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadbIdbIebIdaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpVggeggeggeggebzsiMGfyTfyTfyTfyTukKbIgwNCbJEbIibMocGxbzsbEybIkbEybEybIlbImaaabInbIobIpbIqbFzbFzbIrbFzbIsbItbIubFzbEzbHabHbaTWbECbIvbIwbIxbIybIzbIAbIBbECbCwbICbIDbIEcFgbIFbIGbHAbIHbIIbIJbyubIKbxabILbIMbINbxabIObyubyubyubyubIPbjEbIQbIRbISbITbIUbIVbIWbIXbEqbCRbXAbEXbJbbJcbJdbFabGlbGlbJebGlbGlbGlbGlbFabJfbJgbJgbJhbJibJjbJkbJlbGrbJmbJnbHTbHTbHTbJobJpbJqbJqbJqbJqbJrbJsbJtbJubJvbJwbJxbJybJzbHSatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadbIebIdbJAbIdbIeaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIfqpXiZtpqvbzsdTSbIhbIhbJBbJCjDQbJDbIhbJElCObJFgDEbzsbJGbJHbJIbEybIlbImaadbInbJJbJKbJLbJMbJNbJMbJMbJObJPbJQbJQbJRbJSbJTbJUbECbECbECbECbECbJVbJWbECbECbJXbJYbJZbKabJZbKbbKcbxabKdbKebKfbKgbKhbxabKibKjbKkbxabKlbKmbKnbKobKpbKqbjEbgzbKrbKsbKtbKsbKubKvbKwbEYbGhbGibGjbDRbEZbCxbFabFabKBbGlbGlbKCbKBbFabFabKDbKEbKFbKFbKGbFbbKHbKIbGrbKJbHSbHTbHTbKKbKLbKMbHTbKNbZKbKPbKQbKRbKSbKTbKUbKVbKWbKXbKYbHSatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadbKZbIebLabLbbLcbIebKZaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaatJaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqxqkDGpIXbIhwTXuBvpIXbIhbLebIhbIhbIhbIhbIhbLglCOlCOjIcbzsbLhbJIbLibEybIlbImaaabInbLjbLkbLlbFzbFzbLmbFzbLnbLobLpbLqbEzbLrbLsbLtbLubLvbLvbLvbLvbLwbLxbLvbLvbLybLzbLAbLBbLCbLDbLEbFTbFTbFTbFTbFTbFTbFTbFTbFTbFTbLFbLFbLFbLFbLFbLFbLGbLHbjEbjEbjEbjEbLIbLJblxbDRbDRbDRbDRbDRbDRbEZbCxbFabLKbLLbLMbLNbLObLPbLQbLRbKDbKEcbXbKFbKGbFbbLSbLTbGrbLUbGtbLVbLWbLXbLYbLZbMabHTbHTbMbbGDbMcbMdbMebGtbMfbMgbMgbGtbGtaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadatJaadaadbIebIebMhbMibMibMibMjbIebIeaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajXDatJjXDjXDatJjXDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIfwARowksfrtDjrbKhhuhhuhhuwwqcrUbMndJcbMobMpbMqbMrbzsbEybEybEybEybIlbMsaadbMtbGUbMubGWbMvbFzbMwbFzbFzbFzbMxcFnbMzbMAbMBbMCbMDbMEbMEbMEbMEbMFbMEbMGbMHbMIbMJbMKbMLbMMbMNbMObMPbMQbMPbMPbMPbMPbMPbMPbMPbMPbMPbMPbMPbMPbMPbXebMSbLHbMTbMUbMVbMWbIUbIVbMXbMYbMZbMZbNabNbbMJbMKbNcbFabNdbNebNfbNgbNhbNibNjbLRbLRbLRbLRbLRbLRbNkbNlbNmbNnbNobGtbGDbGDbGDbGDbNpbGDbNqbHTbHTbGDbNrbNsbNtbGtbNubNvbNwbNxbNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNzbNAbNzbMibNBbMibNCbNDbIdaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -7385,7 +7391,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaoBaoBaaeaadaadctdaoBbEybEybEybEybEybEybEybEybEybEybJIbJIbJIbJIbJIbWybWzbWAbWAbWBbWCbUNbWFbWFbWFbWFbWFbWFbWFbWFbWFbWFbWGbWHbWHbWIbEybURbWJcdDbWKbWLbWMbWNbQibQibWObWPbQibQibWQbWRbWSbPdbWTbWUbWVbWWbPdbWXbWYbWZbSSaadbSTbXabXbbXcbQkaadbRBbXdbMPbMPbMPbXebPebXfbQtbXgbXhbXibXjbXkbXkbXkbXlbPebCxbFabLRbLRbLRbLRbNkbOnbVrbXobXmbLRbLRbLRbLRbLRbXpbXqbThbThbXrbXsbXsbXsbXsbXthOjbScbScbScbScbScbScbVEbNrbSebNraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaactectfctfctfctfctTcuDcuDcuGbXEbXFbXGbXHbXIbXJbXKbEybXLbEybEybEybEybEybXMbEybEybMsbNGbXNbXNbXNbXNbXNbXNbXNbXNbXObXObXObXObXObNEbXPbEybURbWJcdDqyMbXQbXRbXSbXTbTSbXUbXVoQAbTSbXWbXXbXYbXZbYabYbbYccaqbPdbWXbYebYfbUabUbbRxbYgbWcbWcbQkaadbRBbYhbEEbEEbEEbCxbPebYibQtbQtbYjbYkbYlbQpbXkbQpbYmbPebCxbFabUibUjbUjbYnbUlbOnbYobUnbYpbYqbGlbGlbGlbLRbYrbYsbYtbThbYubThbThbThbYvbYwbYxbYybYzbYAbYBbYCdhWbVEbNrbSebNraadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaoBaadaaeaoBaadaoBaoBbNFbNFbNFbJIbYDbYEbYFbYGbYHbEybJIbEybYIbYJbYIbYKbYLbYIbYMbMsbNGbXNbYNbYObYPbYQbYRbYSbYNbYTbYUbYVbYWbXObXObXPbEybYXbWJcdDbYYbYZbZabZabZbbZcbZcbZcbZcbZcbZdbZebOPbOPbOPbZfbPdbWVbZgbZhbZibZjbZkbZlbQkbQkbQkbQkbQkaadbRBbYhbZmwAobCwbCxbQlbZnbZobZpbZqbZrbZsbZtbXkbZtbZubPebCxbFavIdbGlbGlbZwbVqbOnbVrbOnbVsbZxbGlbZviiObLRbZybZzbZAbZBbZCbZDbZEbZEbZFbZGbZHbZIhbpbZJcptbZLdhWbVEbNrbSebNrbNrbNraaeaaeaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaoBaadaaeaaeaaeaaeaaebZMbJIbZNbJIbZObZPbYEbZQbJIbZRbJIbEybYIbZSbYIbZTbZUbYIbZVbMsbNGbXNbYNbZWbZXbZYbZZcaabYNcabcaccadcaecafbXObXPbEybURbWJcdDbNScahbNScaicajbZccakcalcambZccanbVacaobOPcapcaqcarcascatcaubVZcavbRvcawbRxcaxcaycazbQkaadbEEbYhbEEcaAcaBbCxbPecaCcaDcaEcaFcaGcaDcaHbXkcaHrenbRJbCxbFabGlbGlbGlcaIcaJbUnbWmbOnbWncaKbUjbUjbWpbFacaLcaMcaNcaOcaLcaLcaPcaQcaRcaScaTcaUcaVcaWdhWcaYdhWbVEbNrcaZbNrcbabNraadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaoBaadaaeaaeaaeaaeaaebZMbJIbZNbJIbZObZPbYEbZQbJIbZRbJIbEybYIbZSbYIbZTbZUbYIbZVbMsbNGbXNbYNbZWbZXbZYbZZcaabYNcabcaccadcaecafbXObXPbEybURbWJcdDbNScahbNScaicajbZccakcalcambZccanbVacaobOPcapcaqcarcascatcaubVZcavbRvcawbRxcaxcaycazbQkaadbEEbYhbEEcaAcaBbCxbPecaCcaDcaEcaFcaGcaDcaHbXkcaHrenbRJbCxbFabGlbGlbGlcaIcaJbUnbWmbOnbWncaKbUjbUjbWpbFacaLcaMcaNcaOcaLcaLcaPcaQcaRcaScaTcaUcaVcaWdhWcaYdhWbVEbNrcaZbNrbsEbNraadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaoBaaaaoBaoBaoBaadaadbNFbNFbNFcbccbdcbecbfcbgorUbEybEycbhbYIcbicbjbYIcbkcblbYIbMsbNGbXNcbmcbncbobZYcbpcbmcbmcabcbqcbrcbscbtbXObXPbEybURbWJaYncbudlKcbwcbwcbxcbycbzcbAcbBbZcbPdbVacbCcbDcapcbEcarcascbFcbGbVZcbHcbIcbJcbKcbLcbMcbNbQkaadbEEbYhbEEbJZbJZbCxbPebPfcbOcbPbPfcbQbPfbPfbPfbPfbPfbPebCxbFabLRbLRbLRbLRbXmcbRbVrcbSbXmbLRbLRbLRbLRbFabVwcbTbVwcbUbVwcaLcaPcaQcbVcdgdhWccacbZccadhWccbdhWbVEbNrcccccdbQSbPIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaadaadaadbNFcceccfccfccgbYHbNEbEycchccibYIccjcckcclccjccjccmbImbNGbXNcbmcbmccnccoccpccqccrccscctccuccvccwbXObXPbEyccxccycczcbuccAccBccCccDccEccFccGccHbZcccIccJcaobOPcapccKcarcbEccLbWXccMccNbUaccOccPccQcaycaybQkaadbRBbYhccRbEEccSbCxccTbWebWeccUbPfccVccWccXbEEccYccZbEZbCxbFabUibUjbUjcdabUlbOnbYobUncdbcdcbGlbGlbGlbFacddbVwbVwbVwbVwcaLcdecdecdfcdgdhWcftcftcftcftcftdhWbVEbNrcdjbQTcdkbPIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQaaQaaQaaQaaQaaQaaQaaQaaQaaYaaQaaQaaQaaQaaQaaaaaabEybEybEybEybEybEycdlbEybEybEybEycdmcdnbYIccjcbjcdoccjccjccmbImbNGbXNcdpcdqcdrcdsbYNccnapccduaWYcdwcdxcdybXOcdzcdAcdBcdCcdDcbucdEcdFcpucdHcdIcdJcdKcdLcdMbRpcdNbOPbOPbOPcdObPdcdPcdQbWXbWYbPdbSScdRcdSbQkbQkbQkbQkaadbRBcdTcdUbEEcdVcdWcdXbMPcdYcdZbEEceacebcecbEEcedbOibOkceebFavIdbZvbGlcefbVqbOnbVrbOnbVscegbGlbGliiObFacehbVwceicejcekcelcemcenceocdgdhWcftceqwHAcftcftdhWcesbNrcetceubSebPIaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+3
View File
@@ -110,6 +110,9 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
var/list/grind_results //A reagent list containing the reagents this item produces when ground up in a grinder - this can be an empty list to allow for reagent transferring only
var/list/juice_results //A reagent list containing blah blah... but when JUICED in a grinder!
//Hyper economy
var/price = 0
/obj/item/Initialize()
+1
View File
@@ -501,6 +501,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
w_class = WEIGHT_CLASS_TINY
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_BELT
price = 1
var/lit = 0
var/fancy = TRUE
var/overlay_state
+4 -4
View File
@@ -9,7 +9,7 @@
throw_speed = 3
var/mob/living/carbon/subject = null
var/closed = FALSE
price = 10
//Hypnotize someone
@@ -36,7 +36,7 @@
H.drowsyness = max(H.drowsyness, 40)
subject = H
return
//No
H.visible_message("<span class='warning'>[H]'s attention breaks, despite your attempts to hypnotize them! They clearly don't want this</span>", "<span class ='warning'>Your concentration breaks as you realise you have no interest in following [user]'s words!</span>")
@@ -58,7 +58,7 @@
if(get_dist(user, subject) > 1)
to_chat(user, "You must stand in whisper range of [subject].")
return
text = input("What would you like to suggest?", "Hypnotic suggestion", null, null)
text = sanitize(text)
if(!text)
@@ -88,4 +88,4 @@
item_state = "pocketwatch"
desc = "An elaborate pocketwatch, with a captivating gold etching and an enchanting face..."
closed = FALSE
+24 -1
View File
@@ -26,6 +26,7 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \
grind_results = list(/datum/reagent/silicon = 20)
point_value = 1
tableVariant = /obj/structure/table/glass
shard_type = /obj/item/shard
/obj/item/stack/sheet/glass/suicide_act(mob/living/carbon/user)
user.visible_message("<span class='suicide'>[user] begins to slice [user.p_their()] neck with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
@@ -93,6 +94,7 @@ GLOBAL_LIST_INIT(pglass_recipes, list ( \
merge_type = /obj/item/stack/sheet/plasmaglass
grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/toxin/plasma = 10)
tableVariant = /obj/structure/table/plasmaglass
shard_type = /obj/item/shard/plasma
/obj/item/stack/sheet/plasmaglass/fifty
amount = 50
@@ -120,7 +122,9 @@ GLOBAL_LIST_INIT(pglass_recipes, list ( \
else
return ..()
/obj/item/stack/sheet/plasmaglass/on_solar_construction(obj/machinery/power/solar/S)
S.obj_integrity *= 1.2
S.efficiency *= 1.2
/*
* Reinforced glass sheets
@@ -145,11 +149,15 @@ GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \
merge_type = /obj/item/stack/sheet/rglass
grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/iron = 10)
point_value = 4
shard_type = /obj/item/shard
/obj/item/stack/sheet/rglass/attackby(obj/item/W, mob/user, params)
add_fingerprint(user)
..()
/obj/item/stack/sheet/rglass/on_solar_construction(obj/machinery/power/solar/S)
S.obj_integrity *= 2
/obj/item/stack/sheet/rglass/cyborg
materials = list()
var/datum/robot_energy_storage/glasource
@@ -188,6 +196,11 @@ GLOBAL_LIST_INIT(prglass_recipes, list ( \
merge_type = /obj/item/stack/sheet/plasmarglass
grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/toxin/plasma = 10, /datum/reagent/iron = 10)
point_value = 23
shard_type = /obj/item/shard/plasma
/obj/item/stack/sheet/plasmarglass/on_solar_construction(obj/machinery/power/solar/S)
S.obj_integrity *= 2.2
S.efficiency *= 1.2
/obj/item/stack/sheet/plasmarglass/Initialize(mapload, new_amount, merge = TRUE)
recipes = GLOB.prglass_recipes
@@ -207,6 +220,11 @@ GLOBAL_LIST_INIT(titaniumglass_recipes, list(
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100)
resistance_flags = ACID_PROOF
merge_type = /obj/item/stack/sheet/titaniumglass
shard_type = /obj/item/shard
/obj/item/stack/sheet/titaniumglass/on_solar_construction(obj/machinery/power/solar/S)
S.obj_integrity *= 2.5
S.efficiency *= 1.5
/obj/item/stack/sheet/titaniumglass/Initialize(mapload, new_amount, merge = TRUE)
recipes = GLOB.titaniumglass_recipes
@@ -226,11 +244,16 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list(
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100)
resistance_flags = ACID_PROOF
merge_type = /obj/item/stack/sheet/plastitaniumglass
shard_type = /obj/item/shard
/obj/item/stack/sheet/plastitaniumglass/Initialize(mapload, new_amount, merge = TRUE)
recipes = GLOB.plastitaniumglass_recipes
return ..()
/obj/item/stack/sheet/titaniumglass/on_solar_construction(obj/machinery/power/solar/S)
S.obj_integrity *= 2
S.efficiency *= 2
/obj/item/shard
name = "shard"
desc = "A nasty looking shard of glass."
@@ -15,4 +15,15 @@
var/point_value = 0 //turn-in value for the gulag stacker - loosely relative to its rarity
var/is_fabric = FALSE //is this a valid material for the loom?
var/loom_result //result from pulling on the loom
var/pull_effort = 0 //amount of delay when pulling on the loom
var/pull_effort = 0 //amount of delay when pulling on the loom
var/shard_type // the shard debris typepath left over by solar panels and windows etc.
/**
* Called on the glass sheet upon solar construction (duh):
* Different glass sheets can modify different stas/vars, such as obj_integrity or efficiency
* and possibly extra effects if you wish to code them.
* Keep in mind the solars' max_integrity is set equal to the obj_integrity later,
* so you won't have to do so here.
*/
/obj/item/stack/sheet/proc/on_solar_construction(/obj/machinery/power/solar/S)
return
+1
View File
@@ -237,6 +237,7 @@
desc = "Holds a variety of gear for \"alternative\" peacekeeping."
icon_state = "slutbelt"
item_state = "slut"
price = 5
obj/item/storage/belt/slut/ComponentInitialize()
. = ..()
+2
View File
@@ -415,6 +415,7 @@
desc = "<B>Instructions:</B> <I>Heat in microwave. Product will cool if not eaten within seven minutes.</I>"
icon_state = "donkpocketbox"
illustration=null
price = 10
/obj/item/storage/box/donkpockets/ComponentInitialize()
. = ..()
@@ -687,6 +688,7 @@
item_state = "zippo"
w_class = WEIGHT_CLASS_TINY
slot_flags = ITEM_SLOT_BELT
price = 2
/obj/item/storage/box/matches/ComponentInitialize()
. = ..()
+4
View File
@@ -136,6 +136,7 @@
slot_flags = ITEM_SLOT_BELT
icon_type = "cigarette"
spawn_type = /obj/item/clothing/mask/cigarette/space_cigarette
price = 5
/obj/item/storage/fancy/cigarettes/ComponentInitialize()
. = ..()
@@ -230,6 +231,7 @@
desc = "Smoked by the truly robust."
icon_state = "robustg"
spawn_type = /obj/item/clothing/mask/cigarette/robustgold
price = 6
/obj/item/storage/fancy/cigarettes/cigpack_carp
name = "\improper Carp Classic packet"
@@ -281,6 +283,7 @@
icon_state = "cig_paper_pack"
icon_type = "rolling paper"
spawn_type = /obj/item/rollingpaper
price = 2
/obj/item/storage/fancy/rollingpapers/ComponentInitialize()
. = ..()
@@ -305,6 +308,7 @@
w_class = WEIGHT_CLASS_NORMAL
icon_type = "premium cigar"
spawn_type = /obj/item/clothing/mask/cigarette/cigar
price = 8
/obj/item/storage/fancy/cigarettes/cigars/ComponentInitialize()
. = ..()
+2 -2
View File
@@ -324,7 +324,7 @@
/obj/item/storage/pill_bottle/mutarad
name = "radiation treatment deluxe pill bottle"
desc = "The label says 'Med-Co branded pills' and below that 'Contains Mutadone in each pill!`."
desc = "The label says 'Med-Co branded pills' and below that 'Contains Mutadone in each pill!'."
/obj/item/storage/pill_bottle/mutarad/PopulateContents()
for(var/i in 1 to 7)
@@ -340,7 +340,7 @@
/obj/item/storage/pill_bottle/breast_enlargement
name = "breast enlargement pills"
desc = "Made by Fermichem - They have a woman with breasts larger than she is on them. The warming states not to take more than 10u at a time."
desc = "Made by Fermichem - They have a woman with breasts larger than she is on them. The warning states not to take more than 10u at a time."
/obj/item/storage/pill_bottle/breast_enlargement/PopulateContents()
for(var/i in 1 to 7)
+10 -19
View File
@@ -15,7 +15,8 @@
var/decon_speed = 30
var/wtype = "glass"
var/fulltile = FALSE
var/glass_type = /obj/item/stack/sheet/glass
var/obj/item/stack/sheet/glass_type = /obj/item/stack/sheet/glass
var/cleanable_type = /obj/effect/decal/cleanable/glass
var/glass_amount = 1
var/mutable_appearance/crack_overlay
can_be_unanchored = TRUE
@@ -279,12 +280,15 @@
/obj/structure/window/proc/spawnDebris(location)
. = list()
. += new /obj/item/shard(location)
. += new /obj/effect/decal/cleanable/glass(location)
var/shard = initial(glass_type.shard_type)
if(shard)
. += new shard(location)
if (fulltile)
. += new shard(location)
if(cleanable_type)
. += new cleanable_type(location)
if (reinf)
. += new /obj/item/stack/rods(location, (fulltile ? 2 : 1))
if (fulltile)
. += new /obj/item/shard(location)
/obj/structure/window/proc/can_be_rotated(mob/user,rotation_type)
if(anchored)
@@ -411,17 +415,9 @@
max_integrity = 150
explosion_block = 1
glass_type = /obj/item/stack/sheet/plasmaglass
cleanable_type = /obj/effect/decal/cleanable/glass/plasma
rad_insulation = RAD_NO_INSULATION
/obj/structure/window/plasma/spawnDebris(location)
. = list()
. += new /obj/item/shard/plasma(location)
. += new /obj/effect/decal/cleanable/glass/plasma(location)
if (reinf)
. += new /obj/item/stack/rods(location, (fulltile ? 2 : 1))
if (fulltile)
. += new /obj/item/shard/plasma(location)
/obj/structure/window/plasma/spawner/east
dir = EAST
@@ -884,11 +880,6 @@
level = 3
glass_amount = 2
/obj/structure/window/reinforced/clockwork/spawnDebris(location)
. = list()
for(var/i in 1 to 4)
. += new /obj/item/clockwork/alloy_shards/medium/gear_bit(location)
/obj/structure/window/reinforced/clockwork/Initialize(mapload, direct)
made_glow = TRUE
new /obj/effect/temp_visual/ratvar/window(get_turf(src))
@@ -323,7 +323,7 @@
/obj/item/paper/fluff/awaymissions/snowdin/secnotice
name = "Security Notice"
info = {"YOu have been assigned to this Arctic Post with intention of protecting Nanotrasen assets and ensuring vital information is kept secure while the stationed crew obeys protocol. The picked
info = {"You have been assigned to this Arctic Post with intention of protecting Nanotrasen assets and ensuring vital information is kept secure while the stationed crew obeys protocol. The picked
staff for this post have been pre-screened with no prior incidients on record, but incase of an issue you have been given a single holding cell and instructions to contact Central to terminate the
offending crewmember."}
+1 -1
View File
@@ -189,7 +189,7 @@
crate_name = "swat crate"
/datum/supply_pack/security/armory/swattasers //Lesser AEG tbh
name = "SWAT tatical tasers Crate"
name = "SWAT tactical tasers Crate"
desc = "Contains two tactical energy gun, these guns are able to tase, disable and lethal as well as hold a seclight. Requires Armory access to open."
cost = 7000
contains = list(/obj/item/gun/energy/e_gun/stun,
+24
View File
@@ -289,6 +289,30 @@
crate_name = "wizard costume crate"
crate_type = /obj/structure/closet/crate/wooden
/datum/supply_pack/costumes_toys/magicka
name = "Proper Wizard Costume Crate"
desc = "Up to four crewmates take on a grand adventure to save their world from certain doom using the robes in this crate!"
cost = 7000
contraband = TRUE
contains = list(/obj/item/staff,
/obj/item/staff,
/obj/item/staff,
/obj/item/staff,
/obj/item/clothing/shoes/sandal,
/obj/item/clothing/shoes/sandal,
/obj/item/clothing/shoes/sandal,
/obj/item/clothing/shoes/sandal,
/obj/item/clothing/suit/notwizrobe,
/obj/item/clothing/head/notwizard,
/obj/item/clothing/suit/notwizrobe/red,
/obj/item/clothing/head/notwizard/red,
/obj/item/clothing/suit/notwizrobe/yellow,
/obj/item/clothing/head/notwizard/yellow,
/obj/item/clothing/suit/notwizrobe/black,
/obj/item/clothing/head/notwizard/black)
crate_name = "proper wizard costume crate"
crate_type = /obj/structure/closet/crate/wooden
/datum/supply_pack/costumes_toys/randomised/fill(obj/structure/closet/crate/C)
var/list/L = contains.Copy()
for(var/i in 1 to num_contained)
+3
View File
@@ -8,6 +8,7 @@
item_color="yellow"
resistance_flags = NONE
var/can_be_cut = 1
price = 10
/obj/item/clothing/gloves/color/fyellow //Cheap Chinese Crap
desc = "These gloves are cheap knockoffs of the coveted ones - no way this can end badly."
@@ -19,6 +20,7 @@
item_color="yellow"
resistance_flags = NONE
var/can_be_cut = 1
price = 5
/obj/item/clothing/gloves/color/fyellow/New()
..()
@@ -113,6 +115,7 @@
siemens_coefficient = 0
permeability_coefficient = 0.05
resistance_flags = NONE
price = 12
/obj/item/clothing/gloves/color/rainbow
name = "rainbow gloves"
+1
View File
@@ -260,6 +260,7 @@
name = "security's bitch beret"
desc = "A softer beret with the word 'BITCH' embroidered on it in pink thread."
icon_state = "bitchberet"
price = 5
//Curator
/obj/item/clothing/head/fedora/curator
+1
View File
@@ -45,6 +45,7 @@
item_state = "sluthailer"
aggressiveness = 0 //can't have your pets being mean!
actions_types = list(/datum/action/item_action/halt)
price = 5
/obj/item/clothing/mask/gas/sechailer/slut/attack_hand(mob/user)
if(iscarbon(user))
+2 -1
View File
@@ -65,7 +65,7 @@
var/obj/item/organ/heart/heart = M.getorganslot(ORGAN_SLOT_HEART)
var/obj/item/organ/lungs/lungs = M.getorganslot(ORGAN_SLOT_LUNGS)
if (!do_mob(user,M,60)) // Stethoscope should take a moment to listen
return // FAIL
@@ -302,3 +302,4 @@
icon = 'icons/obj/clothing/neck.dmi'
icon_state = "bling"
item_color = "bling"
price = 30
@@ -137,6 +137,7 @@
desc = "A pair of knee-high jackboots, complete with heels. All style, all the time."
icon_state = "jackboots-tall"
item_state = "jackboots-tall"
price = 5
/obj/item/clothing/shoes/jackboots/fast
slowdown = -1
+1
View File
@@ -169,6 +169,7 @@
cold_protection = CHEST|LEGS|ARMS
heat_protection = CHEST|LEGS|ARMS
mutantrace_variation = NO_MUTANTRACE_VARIATION //you don't need it
price = 5
//Surgeon
/obj/item/clothing/suit/apron/surgical
@@ -635,6 +635,7 @@
icon_state = "coatsecuritypink"
item_state = "coatsecuritypink"
hoodtype = /obj/item/clothing/head/hooded/winterhood/security/pink
price = 5
/obj/item/clothing/suit/hooded/wintercoat/security/Initialize()
. = ..()
+60
View File
@@ -226,3 +226,63 @@
W.current_charges += 8
to_chat(user, "<span class='notice'>You charge \the [W]. It can now absorb [W.current_charges] hits.</span>")
qdel(src)
/obj/item/clothing/head/notwizard
name = "wizard hat"
desc = "Strange-looking hat-wear that most certainly belongs to an aspiring magic user."
icon_state = "wizard"
gas_transfer_coefficient = 1
permeability_coefficient = 1
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
strip_delay = 50
equip_delay_other = 50
resistance_flags = FLAMMABLE
dog_fashion = /datum/dog_fashion/head/blue_wizard
/obj/item/clothing/head/notwizard/red
name = "red wizard hat"
desc = "Strange-looking red hat-wear that most certainly belongs to an aspiring magic user."
icon_state = "redwizard"
dog_fashion = /datum/dog_fashion/head/red_wizard
/obj/item/clothing/head/notwizard/yellow
name = "yellow wizard hat"
desc = "Strange-looking yellow hat-wear that most certainly belongs to an aspiring magic user."
icon_state = "yellowwizard"
dog_fashion = null
/obj/item/clothing/head/notwizard/black
name = "black wizard hat"
desc = "Strange-looking black hat-wear that most certainly belongs to an aspiring skeleton. Way cooler than magic." //skeleton gang 4lyfe
icon_state = "blackwizard"
dog_fashion = null
/obj/item/clothing/suit/notwizrobe
name = "wizard robe"
desc = "A decent looking robe that seems to radiate imagination."
icon_state = "wizard"
item_state = "wizrobe"
gas_transfer_coefficient = 1
permeability_coefficient = 1
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
strip_delay = 50
equip_delay_other = 50
resistance_flags = FLAMMABLE
/obj/item/clothing/suit/notwizrobe/red
name = "red wizard robe"
desc = "A decent looking red robe that seems to radiate imagination."
icon_state = "redwizard"
item_state = "redwizrobe"
/obj/item/clothing/suit/notwizrobe/yellow
name = "yellow wizard robe"
desc = "A decent looking yellow robe that seems to radiate imagination."
icon_state = "yellowwizard"
item_state = "yellowwizrobe"
/obj/item/clothing/suit/notwizrobe/black
name = "black wizard robe"
desc = "An unnerving black robe that radiates death and decay."
icon_state = "blackwizard"
item_state = "blackwizrobe"
@@ -381,6 +381,7 @@
item_state = "b_suit"
item_color = "galaxy_blue"
can_adjust = FALSE
price = 10
/obj/item/clothing/under/lawyer/galaxy_red
name = "\improper Pulsar Gonne"
@@ -30,6 +30,7 @@
icon_state = "rsecuritypink"
item_state = "r_suit"
item_color = "rsecuritypink"
price = 3
/obj/item/clothing/under/rank/security/skirt
name = "security jumpskirt"
desc = "A \"tactical\" security jumpsuit with the legs replaced by a skirt."
@@ -46,6 +47,7 @@
item_state = "secslutskirt"
item_color = null //i dont understand what item_color even is, apparently setting it to null means it won't change color in a washing machine?
mutantrace_variation = NO_MUTANTRACE_VARIATION //look at the first two comments in vg_under.dm
price = 3
/obj/item/clothing/under/rank/security/skirt/slut/pink
desc = "A \"\"\"tactical\"\"\" security jumpsuit with the legs replaced by a skirt. No matter how you adjust it, it always feels a little too small. This one seems to have an experimental color scheme."
icon_state = "secslutskirtpink"
@@ -59,6 +61,7 @@
can_adjust = FALSE
body_parts_covered = CHEST|GROIN
mutantrace_variation = NO_MUTANTRACE_VARIATION
price = 5
/obj/item/clothing/under/rank/warden
+6 -6
View File
@@ -21,19 +21,19 @@
/obj/item/clothing/under/syndicate/tacticool
name = "tacticool turtleneck"
desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-."
icon_state = "tactifool"
desc = "A robust looking turtleneck designed to fit tightly against the body while still being comfortable."
icon_state = "syndicate"
item_state = "bl_suit"
item_color = "tactifool"
item_color = "syndicate"
has_sensor = HAS_SENSORS
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40)
/obj/item/clothing/under/syndicate/tacticool/skirt
name = "tacticool skirtleneck"
desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-."
icon_state = "tactifool_skirt"
desc = "A robust looking skirtleneck designed to fit tightly against the body while still being comfortable."
icon_state = "syndicate_skirt"
item_state = "bl_suit"
item_color = "tactifool_skirt"
item_color = "syndicate_skirt"
has_sensor = HAS_SENSORS
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40)
fitted = FEMALE_UNIFORM_TOP
@@ -217,6 +217,7 @@
resistance_flags = FREEZE_PROOF
isGlass = FALSE
foodtype = BREAKFAST
price = 2
//Used by MREs
/obj/item/reagent_containers/food/drinks/coffee/type2
@@ -240,6 +241,7 @@
icon_state = "tea"
item_state = "coffee"
spillable = TRUE
price = 2
/* Doesn't exist lol
/datum/chemical_reaction/catnip_tea
@@ -259,6 +261,7 @@
name = "Duke Purple tea"
desc = "An insult to Duke Purple is an insult to the Space Queen! Any proper gentleman will fight you, if you sully this tea."
list_reagents = list(/datum/reagent/consumable/tea = 30)
price = 2
/obj/item/reagent_containers/food/drinks/mug/coco
name = "Dutch hot coco"
@@ -276,6 +279,7 @@
list_reagents = list(/datum/reagent/consumable/dry_ramen = 30)
foodtype = GRAIN
isGlass = FALSE
price = 3
/obj/item/reagent_containers/food/drinks/beer
name = "space beer"
@@ -414,6 +418,7 @@
reagent_flags = NONE
spillable = FALSE
isGlass = FALSE
price = 2
/obj/item/reagent_containers/food/drinks/soda_cans/suicide_act(mob/living/carbon/user)
user.visible_message("<span class='suicide'>[user] is trying to eat \the [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
@@ -538,3 +543,4 @@
icon_state = "monkey_energy"
list_reagents = list(/datum/reagent/consumable/monkey_energy = 50)
foodtype = SUGAR | JUNKFOOD
price = 3
@@ -406,6 +406,7 @@
isGlass = FALSE
list_reagents = list(/datum/reagent/consumable/cream = 100)
foodtype = DAIRY
price = 3
/obj/item/reagent_containers/food/drinks/bottle/tomatojuice
name = "tomato juice"
@@ -90,6 +90,7 @@
/obj/item/reagent_containers/food/drinks/drinkingglass/filled/nuka_cola
name = "Nuka Cola"
list_reagents = list(/datum/reagent/consumable/nuka_cola = 50)
price = 7
/obj/item/reagent_containers/food/drinks/drinkingglass/filled/syndicatebomb
name = "Syndicat Bomb"
@@ -186,6 +186,7 @@
righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
list_reagents = list(/datum/reagent/consumable/milk = 50)
possible_states = list()
price = 5
/obj/item/reagent_containers/food/condiment/flour
name = "flour sack"
@@ -59,6 +59,8 @@
tastes = list("chocolate" = 1)
foodtype = JUNKFOOD | SUGAR
dunkable = TRUE
price = 2
/obj/item/reagent_containers/food/snacks/hugemushroomslice
name = "huge mushroom slice"
@@ -116,3 +116,12 @@
bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 4)
tastes = list("rice" = 1, "egg" = 1)
foodtype = GRAIN | MEAT //EGG = MEAT -NinjaNomNom 2017
/obj/item/reagent_containers/food/snacks/salad/hellcobb
name = "hell cobb salad"
desc = "If you're being honest with yourself it's just a bowl of mushrooms with chunks of meat and an egg."
icon_state = "hellcobb"
trash = /obj/item/reagent_containers/glass/bowl/mushroom_bowl
bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 4)
tastes = list("fruity cactus" = 5, "ash" = 1, "tough meat" = 3, "your eternal damnation" = 1)
foodtype = FRUIT | MEAT | VEGETABLES //MUSHROOM = VEGETABLE -VladinXXV 2021
@@ -254,3 +254,20 @@
tastes = list("bungo" = 2, "hot curry" = 4, "tropical sweetness" = 1)
filling_color = "#E6A625"
foodtype = VEGETABLES | FRUIT | DAIRY
/obj/item/reagent_containers/food/snacks/soup/creamofwastes
name = "cream of the wastes soup"
desc = "Locals say the bowl gives it a unique flavor each time. That might just be whatever killed the goliath getting in your bowl, though."
icon_state = "wastessoup"
trash = /obj/item/reagent_containers/glass/bowl/mushroom_bowl
var/snowflake_reagent = null
list_reagents = list(/datum/reagent/consumable/nutriment = 6)
tastes = list("a fresh kill" = 3, "creamy mushroom" = 5, "a warm sunset over the scorched landscape of hell" = 1)
/obj/item/reagent_containers/food/snacks/soup/creamofwastes/Initialize()
. = ..()
snowflake_reagent = pick(/datum/reagent/consumable/capsaicin, /datum/reagent/consumable/frostoil,
/datum/reagent/blood, /datum/reagent/oil, /datum/reagent/consumable/honey,
/datum/reagent/carbon, /datum/reagent/drug/mushroomhallucinogen)
bonus_reagents = list(snowflake_reagent = 5, /datum/reagent/consumable/nutriment = 6)
reagents.add_reagent(snowflake_reagent, 5)
@@ -12,6 +12,7 @@
filling_color = "#D2691E"
tastes = list("candy" = 1)
foodtype = JUNKFOOD | SUGAR
price = 2
/obj/item/reagent_containers/food/snacks/sosjerky
name = "\improper Scaredy's Private Reserve Beef Jerky"
@@ -23,6 +24,7 @@
filling_color = "#8B0000"
tastes = list("dried meat" = 1)
foodtype = JUNKFOOD | MEAT | SUGAR
price = 3
/obj/item/reagent_containers/food/snacks/sosjerky/healthy
name = "homemade beef jerky"
@@ -41,6 +43,7 @@
filling_color = "#FFD700"
tastes = list("salt" = 1, "crisps" = 1)
foodtype = JUNKFOOD | FRIED
price = 2
/obj/item/reagent_containers/food/snacks/no_raisin
name = "4no raisins"
@@ -52,6 +55,7 @@
filling_color = "#8B0000"
tastes = list("dried raisins" = 1)
foodtype = JUNKFOOD | FRUIT | SUGAR
price = 2
/obj/item/reagent_containers/food/snacks/no_raisin/healthy
name = "homemade raisins"
@@ -68,6 +72,7 @@
junkiness = 25
filling_color = "#FFD700"
foodtype = JUNKFOOD | GRAIN | SUGAR
price = 4
/obj/item/reagent_containers/food/snacks/cheesiehonkers
name = "cheesie honkers"
@@ -79,6 +84,7 @@
filling_color = "#FFD700"
tastes = list("cheese" = 5, "crisps" = 2)
foodtype = JUNKFOOD | DAIRY | SUGAR
price = 4
/obj/item/reagent_containers/food/snacks/soyfood
name = "Soyfood"
@@ -90,6 +96,7 @@
filling_color = "#FFD700"
tastes = list("nanomachines" = 2, "soybeans" = 5)
foodtype = JUNKFOOD | DAIRY | GRAIN
price = 3
/obj/item/reagent_containers/food/snacks/syndicake
name = "syndi-cakes"
@@ -100,6 +107,7 @@
filling_color = "#F5F5DC"
tastes = list("sweetness" = 3, "cake" = 1)
foodtype = GRAIN | FRUIT | VEGETABLES
price = 5
/obj/item/reagent_containers/food/snacks/carbonnanotube_noodles
name = "carbon nanotube noodles"
@@ -111,3 +119,4 @@
filling_color = "#FFD700"
tastes = list("charcoal" = 1, "spiciness" = 3, "soysauce" = 3)
foodtype = GRAIN | VEGETABLES
price = 3
@@ -94,3 +94,16 @@
)
result = /obj/item/reagent_containers/food/snacks/salad/citrusdelight
subcategory = CAT_SALAD
/datum/crafting_recipe/food/hellcobb
name = "Hell Cobb Salad"
reqs = list(
/obj/item/reagent_containers/glass/bowl/mushroom_bowl = 1,
/obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf = 3,
/obj/item/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit = 2,
/obj/item/reagent_containers/food/snacks/meat/steak/goliath = 1,
/obj/item/reagent_containers/food/snacks/boiledegg = 1
)
result = /obj/item/reagent_containers/food/snacks/salad/hellcobb
subcategory = CAT_SALAD
@@ -247,3 +247,15 @@
)
result = /obj/item/reagent_containers/food/snacks/soup/macaco
subcategory = CAT_SOUP
/datum/crafting_recipe/food/creamofwastes
name = "Cream of the Wastes soup"
reqs = list(
/datum/reagent/consumable/milk = 10,
/obj/item/reagent_containers/glass/bowl/mushroom_bowl = 1,
/obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf = 1,
/obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_stem =2,
/obj/item/reagent_containers/food/snacks/meat/steak/goliath = 2 //wanted to make this three cutlets, but goliath meat doesn't get a unique cutlet
)
result = /obj/item/reagent_containers/food/snacks/soup/creamofwastes
subcategory = CAT_SOUP
+1 -1
View File
@@ -509,7 +509,7 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums
name = "scanner control interface"
icon = 'icons/obj/library.dmi'
icon_state = "bigscanner"
desc = "It servers the purpose of scanning stuff."
desc = "It serves the purpose of scanning stuff."
density = TRUE
var/obj/item/book/cache // Last scanned book
@@ -389,7 +389,10 @@
if(!arrivals_docked)
var/obj/screen/splash/Spl = new(character.client, TRUE)
Spl.Fade(TRUE)
character.playsound_local(get_turf(character), 'sound/voice/ApproachingTG.ogg', 25)
if(!prob(1))
character.playsound_local(get_turf(character), 'sound/voice/Approaching.ogg', 25)
else
character.playsound_local(get_turf(character), 'sound/voice/boat.ogg', 35) //boatbomber easter egg. (love your videos man, thanks for visiting!)
character.update_parallax_teleport()
@@ -470,7 +470,17 @@
/datum/sprite_accessory/hair/quotey
name = "Tail Hair"
icon_state = "hair_tailhair"
ckeys_allowed = list("quotefox")
/datum/sprite_accessory/hair/mommy
name = "Hairfre"
name = "(Hyper) Hairfre"
icon_state = "hair_hairfre"
/datum/sprite_accessory/hair/sidehair
name = "(Hyper) Side Hair"
icon_state = "hair_tailhair2"
ckeys_allowed = list("quotefox")
/datum/sprite_accessory/hair/curtains
name = "(Hyper) Curtains"
icon_state = "hair_curtains"
+34 -29
View File
@@ -19,10 +19,21 @@
var/ndir = SOUTH // target dir
var/turn_angle = 0
var/obj/machinery/power/solar_control/control = null
var/obj/item/solar_assembly/assembly
var/efficiency = 1
/obj/machinery/power/solar/Initialize(mapload, obj/item/solar_assembly/S)
. = ..()
Make(S)
if(!S)
assembly = new /obj/item/solar_assembly
assembly.glass_type = new /obj/item/stack/sheet/glass(null, 2)
assembly.anchored = TRUE
else
S.moveToNullspace()
assembly = S
assembly.glass_type.on_solar_construction(src)
obj_integrity = max_integrity
update_icon()
connect_to_network()
/obj/machinery/power/solar/Destroy()
@@ -43,18 +54,6 @@
control.connected_panels.Remove(src)
control = null
/obj/machinery/power/solar/proc/Make(obj/item/solar_assembly/S)
if(!S)
S = new /obj/item/solar_assembly(src)
S.glass_type = /obj/item/stack/sheet/glass
S.anchored = TRUE
else
S.forceMove(src)
if(S.glass_type == /obj/item/stack/sheet/rglass) //if the panel is in reinforced glass
max_integrity *= 2 //this need to be placed here, because panels already on the map don't have an assembly linked to
obj_integrity = max_integrity
update_icon()
/obj/machinery/power/solar/crowbar_act(mob/user, obj/item/I)
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
user.visible_message("[user] begins to take the glass off [src].", "<span class='notice'>You begin to take the glass off [src]...</span>")
@@ -85,14 +84,14 @@
/obj/machinery/power/solar/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(disassembled)
var/obj/item/solar_assembly/S = locate() in src
if(S)
S.forceMove(loc)
S.give_glass(stat & BROKEN)
if(assembly)
assembly.forceMove(loc)
assembly.give_glass(stat & BROKEN)
else
playsound(src, "shatter", 70, 1)
new /obj/item/shard(src.loc)
new /obj/item/shard(src.loc)
var/shard = assembly?.glass_type ? assembly.glass_type.shard_type : /obj/item/shard
new shard(loc)
new shard(loc)
qdel(src)
@@ -131,7 +130,7 @@
if(powernet == control.powernet)//check if the panel is still connected to the computer
if(obscured) //get no light from the sun, so don't generate power
return
var/sgen = SOLARGENRATE * sunfrac
var/sgen = SOLARGENRATE * sunfrac * efficiency
add_avail(sgen)
control.gen += sgen
else //if we're no longer on the same powernet, remove from control computer
@@ -186,19 +185,23 @@
w_class = WEIGHT_CLASS_BULKY // Pretty big!
anchored = FALSE
var/tracker = 0
var/glass_type = null
var/obj/item/stack/sheet/glass_type
var/static/list/allowed_sheets = typecacheof(list(/obj/item/stack/sheet/glass, /obj/item/stack/sheet/rglass,
/obj/item/stack/sheet/plasmaglass, /obj/item/stack/sheet/plasmarglass,
/obj/item/stack/sheet/titaniumglass, /obj/item/stack/sheet/plastitaniumglass))
// Give back the glass type we were supplied with
/obj/item/solar_assembly/proc/give_glass(device_broken)
var/atom/Tsec = drop_location()
if(device_broken)
new /obj/item/shard(Tsec)
new /obj/item/shard(Tsec)
var/shard = glass_type ? glass_type.shard_type : /obj/item/shard
if(shard)
new shard(Tsec)
new shard(Tsec)
else if(glass_type)
new glass_type(Tsec, 2)
glass_type.forceMove(Tsec)
glass_type = null
/obj/item/solar_assembly/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/wrench) && isturf(loc))
if(isinspace())
@@ -213,14 +216,16 @@
W.play_tool_sound(src, 75)
return 1
if(istype(W, /obj/item/stack/sheet/glass) || istype(W, /obj/item/stack/sheet/rglass))
if(is_type_in_typecache(W, allowed_sheets))
if(!anchored)
to_chat(user, "<span class='warning'>You need to secure the assembly before you can add glass.</span>")
return
var/obj/item/stack/sheet/S = W
if(S.use(2))
glass_type = W.type
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
var/obj/item/stack/sheet/G = S.change_stack(null, 2)
if(G)
glass_type = G
G.moveToNullspace()
playsound(loc, 'sound/machines/click.ogg', 50, 1)
user.visible_message("[user] places the glass on the solar assembly.", "<span class='notice'>You place the glass on the solar assembly.</span>")
if(tracker)
new /obj/machinery/power/tracker(get_turf(src), src)
+16 -16
View File
@@ -16,10 +16,19 @@
var/id = 0
var/sun_angle = 0 // sun angle as set by sun datum
var/obj/machinery/power/solar_control/control = null
var/obj/item/solar_assembly/assembly
/obj/machinery/power/tracker/Initialize(mapload, obj/item/solar_assembly/S)
. = ..()
Make(S)
if(!S)
assembly = new /obj/item/solar_assembly
assembly.glass_type = new /obj/item/stack/sheet/glass(null, 2)
assembly.tracker = TRUE
assembly.anchored = TRUE
else
S.moveToNullspace()
assembly = S
update_icon()
connect_to_network()
/obj/machinery/power/tracker/Destroy()
@@ -40,15 +49,6 @@
control.connected_tracker = null
control = null
/obj/machinery/power/tracker/proc/Make(obj/item/solar_assembly/S)
if(!S)
S = new /obj/item/solar_assembly(src)
S.glass_type = /obj/item/stack/sheet/glass
S.tracker = 1
S.anchored = TRUE
S.forceMove(src)
update_icon()
//updates the tracker icon and the facing angle for the control computer
/obj/machinery/power/tracker/proc/set_angle(angle)
sun_angle = angle
@@ -77,14 +77,14 @@
/obj/machinery/power/solar/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
if(disassembled)
var/obj/item/solar_assembly/S = locate() in src
if(S)
S.forceMove(loc)
S.give_glass(stat & BROKEN)
if(assembly)
assembly.forceMove(loc)
assembly.give_glass(stat & BROKEN)
else
playsound(src, "shatter", 70, 1)
new /obj/item/shard(src.loc)
new /obj/item/shard(src.loc)
var/shard = assembly?.glass_type ? assembly.glass_type.shard_type : /obj/item/shard
new shard(loc)
new shard(loc)
qdel(src)
// Tracker Electronic
@@ -206,7 +206,7 @@
item_state = "combatshotgun"
mag_type = /obj/item/ammo_box/magazine/internal/shot/com
w_class = WEIGHT_CLASS_HUGE
unique_reskin = list("Tatical" = "cshotgun",
unique_reskin = list("Tactical" = "cshotgun",
"Slick" = "cshotgun_slick"
)
@@ -336,6 +336,7 @@
volume = 50
amount_per_transfer_from_this = 10
container_HP = 1
price = 1
/obj/item/reagent_containers/glass/beaker/waterbottle/Initialize()
beaker_weakness_bitflag |= TEMP_WEAK
@@ -251,7 +251,9 @@
/obj/item/reagent_containers/pill/penis_enlargement
name = "penis enlargement pill"
list_reagents = list(/datum/reagent/fermi/penis_enlarger = 10)
price = 4
/obj/item/reagent_containers/pill/breast_enlargement
name = "breast enlargement pill"
list_reagents = list(/datum/reagent/fermi/breast_enlarger = 10)
price = 4
+130 -39
View File
@@ -21,6 +21,8 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
var/product_path = null
var/amount = 0
var/max_amount = 0
var/price = 0
/obj/machinery/vending
name = "\improper Vendomat"
@@ -65,12 +67,20 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
var/scan_id = 1
var/obj/item/coin/coin
var/obj/item/stack/spacecash/bill
var/global/vending_cache = list() //used for storing the icons of items being vended
var/dish_quants = list() //used by the snack machine's custom compartment to count dishes.
var/obj/item/vending_refill/refill_canister = null //The type of refill canisters used by this machine.
var/obj/item/vending_refill/refill_canister = null //The type of refill canisters used by this machine
//hyper economy stuff
var/credits = 0
var/baseprice = 0
var/menu = 1
var/datum/bank_account/bankid
var/datum/data/vending_product/buying
var/free = FALSE //everythings free!
/obj/machinery/vending/Initialize()
var/build_inv = FALSE
@@ -153,9 +163,18 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
amount = 0
var/atom/temp = typepath
var/obj/item/product = typepath
var/datum/data/vending_product/R = new /datum/data/vending_product()
R.name = initial(temp.name)
R.product_path = typepath
R.price = baseprice
if(product) //its a item!
if((initial(product.price)))
R.price = initial(product.price)
else
R.price = baseprice
if(free)
R.price = 0
if(!start_empty)
R.amount = amount
R.max_amount = amount
@@ -228,6 +247,16 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
if(panel_open && is_wire_tool(I))
wires.interact(user)
return
else if(istype(I, /obj/item/stack/credits))
var/obj/item/stack/credits/cred = I
to_chat(usr, "<span class='notice'>You insert [cred] into [src].</span>")
credits = credits+cred.amount
src.ui_interact(usr)
del(cred)
/* we dont use this currency anymore!
else if(istype(I, /obj/item/coin))
if(coin)
to_chat(user, "<span class='warning'>[src] already has [coin] inserted</span>")
@@ -258,6 +287,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
bill = new S.type(src, 1)
to_chat(user, "<span class='notice'>You insert [I] into [src].</span>")
return
*/
else if(refill_canister && istype(I, refill_canister))
if (!panel_open)
to_chat(user, "<span class='notice'>You should probably unscrew the service panel first.</span>")
@@ -320,44 +350,56 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
/obj/machinery/vending/ui_interact(mob/user)
var/dat = ""
dat += "<h3>Select an item</h3>"
dat += "<div class='statusDisplay'>"
if(!product_records.len)
dat += "<font color = 'red'>No product loaded!</font>"
else
var/list/display_records = product_records
if(extended_inventory)
display_records = product_records + hidden_records
if(coin || bill)
display_records = product_records + coin_records
if((coin || bill) && extended_inventory)
display_records = product_records + hidden_records + coin_records
dat += "<table>"
for (var/datum/data/vending_product/R in display_records)
dat += "<tr><td><img src='data:image/jpeg;base64,[GetIconForProduct(R)]'/></td>"
dat += "<td style=\"width: 100%\"><b>[sanitize(R.name)]</b></td>"
if(R.amount > 0)
dat += "<td><b>[R.amount]&nbsp;</b></td><td><a href='byond://?src=[REF(src)];vend=[REF(R)]'>Vend</a></td>"
switch(menu)
if(1)
dat += "<h3>Select an item</h3><p>"
if(!credits)
dat += "<i>Inserted credits: $[credits] </i>&nbsp;&nbsp;<span class='linkOff'>remove</span>"
else
dat += "<td>0&nbsp;</td><td><span class='linkOff'>Vend</span></td>"
dat += "</tr>"
dat += "</table>"
dat += "</div>"
if(premium.len > 0)
dat += "<b>Change Return:</b> "
if (coin || bill)
dat += "[(coin ? coin : "")][(bill ? bill : "")]&nbsp;&nbsp;<a href='byond://?src=[REF(src)];remove_coin=1'>Remove</a>"
else
dat += "<i>No money</i>&nbsp;&nbsp;<span class='linkOff'>Remove</span>"
if(istype(src, /obj/machinery/vending/snack))
dat += "<h3>Chef's Food Selection</h3>"
dat += "<div class='statusDisplay'>"
for (var/O in dish_quants)
if(dish_quants[O] > 0)
var/N = dish_quants[O]
dat += "<a href='byond://?src=[REF(src)];dispense=[sanitize(O)]'>Dispense</A> "
dat += "<B>[capitalize(O)]: [N]</B><br>"
dat += "</div>"
dat += "<i>Inserted credits: $[credits] </i><a href='byond://?src=[REF(src)];removecredits=1'>remove</A>"
dat += "<div class='statusDisplay'>"
if(!product_records.len)
dat += "<font color = 'red'>No product loaded!</font>"
else
var/list/display_records = product_records
if(extended_inventory) //hacking shows all inventory now since coins arent worth anything.
display_records = product_records + hidden_records + coin_records
else
display_records = product_records + coin_records
dat += "<table>"
for (var/datum/data/vending_product/R in display_records)
dat += "<tr><td><img src='data:image/jpeg;base64,[GetIconForProduct(R)]'/></td>"
dat += "<td style=\"width: 10%\"><b>$[R.price]</b></td>"
dat += "<td style=\"width: 100%\">[sanitize(R.name)]</td>"
if(R.amount > 0)
dat += "<td><b>[R.amount]&nbsp;</b></td><td><a href='byond://?src=[REF(src)];vend=[REF(R)]'>[!R.price ? "Vend" : "Buy"]</a></td>"
else
dat += "<td>0&nbsp;</td><td><span class='linkOff'>Vend</span></td>"
dat += "</tr>"
dat += "</table>"
dat += "</div>"
if(istype(src, /obj/machinery/vending/snack))
dat += "<h3>Chef's Food Selection</h3>"
dat += "<div class='statusDisplay'>"
for (var/O in dish_quants)
if(dish_quants[O] > 0)
var/N = dish_quants[O]
dat += "<a href='byond://?src=[REF(src)];dispense=[sanitize(O)]'>Dispense</A> "
dat += "<B>[capitalize(O)]: [N]</B><br>"
dat += "</div>"
if(2) //hyper economy purchase item menu
dat += "<center>"
if(buying)
dat += "<h3>Purchase [buying.name]</h3><p>"
else
dat += "<h3>Purchase Item</h3><p>"
dat += "<i>Inserted credits: $[credits]</i><p>"
dat += "Not enough credits to purchase, please insert credits or swipe your card to purchase!<p>"
dat += "<a href='byond://?src=[REF(src)];idpay=1;vend=[REF(buying)]'>Pay-By-Card</a>"
dat += "<a href='byond://?src=[REF(src)];return=1]'>Return</a>"
dat += "</center>"
var/datum/browser/popup = new(user, "vending", (name))
popup.set_content(dat)
@@ -389,6 +431,12 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
to_chat(usr, "<span class='notice'>You remove [bill] from [src].</span>")
bill = null
if(href_list["removecredits"])
var/obj/item/stack/credits/C = new /obj/item/stack/credits/(loc)
C.amount = credits
credits = 0 //empty the machine
if(usr.put_in_hands(C))
to_chat(usr, "<span class='notice'>You take [C] out of the ATM.</span>")
usr.set_machine(src)
@@ -408,6 +456,22 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
updateUsrDialog()
return
if(href_list["idpay"])
var/obj/item/card/id/I = usr.get_idcard(TRUE)
if(I)
if(I.registered_account)
bankid = I.registered_account
else
to_chat(usr, "<span class='notice'>The vending machine fails to read your bank account!</span>")
else
to_chat(usr, "<span class='notice'>The vending machine fails to read your card!</span>")
if(href_list["return"])
menu = 1
vend_ready = 1
updateUsrDialog()
return
if((href_list["vend"]) && (vend_ready))
if(panel_open)
to_chat(usr, "<span class='notice'>The vending machine cannot dispense products while its service panel is open!</span>")
@@ -421,6 +485,29 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
vend_ready = 0 //One thing at a time!!
var/datum/data/vending_product/R = locate(href_list["vend"])
buying = R
//check if they can afford it, if not open the next menu
if(R.price > credits)
menu = 2 //second menu
updateUsrDialog()
vend_ready = 1
if(bankid && R == buying) //if we have a bank id, and we are trying to buy the same thing!
if(bankid.account_balance >= R.price)
bankid.account_balance -= R.price //take the money from the account.
menu = 1
to_chat(usr, "<span class='notice'>You [R.name] via the provided bank account!</span>")
bankid = null //so noone can buy from your account after youve purchased stuff
else
to_chat(usr, "<span class='notice'>You do not have enough money in the bank account to purchase [R.name]!</span>")
return
else
return
else
credits -= R.price
menu = 1
if(!R || !istype(R) || !R.product_path)
vend_ready = 1
return
@@ -470,9 +557,11 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
last_reply = world.time
use_power(5)
if(icon_vend) //Show the vending animation if needed
flick(icon_vend,src)
var/vended = new R.product_path(get_turf(src))
playsound(src, 'sound/items/vending.ogg', 50, 1, -1)
if(usr.CanReach(src))
if(usr.put_in_hands(vended))
to_chat(usr, "<span class='notice'>You take [R.name] out of the slot.</span>")
@@ -507,8 +596,10 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
speak(slogan)
last_slogan = world.time
/* no freebies
if(shoot_inventory && prob(shoot_inventory_chance))
throw_item()
*/
/obj/machinery/vending/proc/speak(message)
if(stat & (BROKEN|NOPOWER))
+1
View File
@@ -40,6 +40,7 @@
product_ads = "Drink up!;Booze is good for you!;Alcohol is humanity's best friend.;Quite delighted to serve you!;Care for a nice, cold beer?;Nothing cures you like booze!;Have a sip!;Have a drink!;Have a beer!;Beer is good for you!;Only the finest alcohol!;Best quality booze since 2053!;Award-winning wine!;Maximum alcohol!;Man loves beer.;A toast for progress!"
req_access = list(ACCESS_BAR)
refill_canister = /obj/item/vending_refill/boozeomat
free = TRUE
/obj/machinery/vending/boozeomat/all_access
desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one. This model appears to have no access restrictions."
+1
View File
@@ -1,5 +1,6 @@
/obj/machinery/vending/cigarette
name = "\improper ShadyCigs Deluxe"
baseprice = 3
desc = "If you want to get cancer, might as well do it in style."
product_slogans = "Space cigs taste good like a cigarette should.;I'd rather toolbox than switch.;Smoke!;Don't believe the reports - smoke today!"
product_ads = "Probably not bad for you!;Don't believe the scientists!;It's good for you!;Don't quit, buy more!;Smoke!;Nicotine heaven.;Best cigarettes since 2150.;Award-winning cigs."
+1
View File
@@ -146,6 +146,7 @@
/obj/item/bluespace_thread = 3,
/obj/item/clothing/under/lawyer/galaxy_blue = 3)
refill_canister = /obj/item/vending_refill/clothing
baseprice = 2
/obj/item/vending_refill/clothing
machine_name = "ClothesMate"
+6
View File
@@ -19,6 +19,8 @@
refill_canister = /obj/item/vending_refill/snack
var/chef_compartment_access = "28" //ACCESS_KITCHEN
baseprice = 3
/obj/item/vending_refill/snack
machine_name = "Getmore Chocolate Corp"
@@ -103,11 +105,15 @@
/obj/machinery/vending/snack/blue
icon_state = "snackblue"
/obj/machinery/vending/snack/orange
icon_state = "snackorange"
/obj/machinery/vending/snack/green
icon_state = "snackgreen"
/obj/machinery/vending/snack/teal
icon_state = "snackteal"
@@ -0,0 +1,7 @@
/datum/supply_pack/service/stripperpole
name = "Stripper Pole Crate"
desc = "No private bar is complete without a stripper pole, show off the goods! Comes with a ready-to-assemble stripper pole, and a complementary wrench to get things set up!"
cost = 3550
contains = list(/obj/item/polepack/,
/obj/item/wrench/)
crate_name = "stripper pole crate"
+1
View File
@@ -9,6 +9,7 @@
icon_state = "b_condom_wrapped"
var/unwrapped = 0
w_class = WEIGHT_CLASS_TINY
price = 1
obj/item/condom/Initialize()
create_reagents(300, DRAWABLE|NO_REACT)
+22 -1
View File
@@ -6,12 +6,14 @@
icon = 'hyperstation/icons/obj/clothing/gloves.dmi'
alternate_worn_icon = 'hyperstation/icons/mobs/gloves.dmi'
mutantrace_variation = NO_MUTANTRACE_VARIATION
price = 5
/obj/item/clothing/gloves/latexsleeves/security
name = "security sleeves"
desc = "A pair of latex sleeves, with a band of red above the elbows denoting that the wearer is part of the security team."
icon_state = "latexsec"
item_state = "latexsec"
price = 5
/obj/item/clothing/head/dominatrixcap
name = "dominatrix cap"
@@ -34,4 +36,23 @@
/obj/item/clothing/shoes/highheels/Initialize()
. = ..()
AddComponent(/datum/component/squeak, list('sound/effects/footstep/highheel1.ogg' = 1,'sound/effects/footstep/highheel2.ogg' = 1), 20)
//the classic click clack
//the classic click clack
obj/item/clothing/neck/stole
name = "white stole"
desc = "Fluffy neck wear to keep you warm, and attract others."
icon = 'hyperstation/icons/obj/clothing/neck.dmi'
w_class = WEIGHT_CLASS_SMALL
icon_state = "stole"
item_state = "" //no inhands
price = 3
obj/item/clothing/neck/stole/black
name = "black stole"
desc = "Fluffy neck wear to keep you warm, and attract others."
icon = 'hyperstation/icons/obj/clothing/neck.dmi'
w_class = WEIGHT_CLASS_SMALL
icon_state = "stole"
item_state = "" //no inhands
color = "#3d3d3d"
price = 3
+93
View File
@@ -0,0 +1,93 @@
//hyperstation 13 stripper pole! about time?
/obj/structure/pole
name = "stripper pole"
desc = "A pole fastened to the ceiling and floor, used to show of ones goods to company."
icon = 'hyperstation/icons/obj/pole.dmi'
icon_state = "pole"
density = TRUE
anchored = TRUE
var/icon_state_inuse
layer = 4 //make it the same layer as players.
pseudo_z_axis = 9 //stepping onto the pole makes you raise upwards!
density = 0 //easy to step up on
/obj/structure/pole/attack_hand(mob/living/user)
. = ..()
if(.)
return
if(obj_flags & IN_USE)
to_chat(user, "It's already in use - wait a bit.")
return
else
obj_flags |= IN_USE
user.setDir(SOUTH)
user.Stun(100)
user.forceMove(src.loc)
user.visible_message("<B>[user] dances on [src]!</B>")
animatepole(user)
user.layer = layer //set them to the poles layer
obj_flags &= ~IN_USE
user.pixel_y = 0
user.pixel_z = pseudo_z_axis //incase we are off it when we jump on!
icon_state = initial(icon_state)
/obj/structure/pole/proc/animatepole(mob/living/user)
return
/obj/structure/pole/animatepole(mob/living/user)
if (user.loc != src.loc)
return
animate(user,pixel_x = -6, pixel_y = 0, time = 10)
sleep(20)
user.dir = 4
animate(user,pixel_x = -6,pixel_y = 24, time = 10)
sleep(12)
src.layer = 4.01 //move the pole infront for now. better to move the pole, because the character moved behind people sitting above otherwise
animate(user,pixel_x = 6,pixel_y = 12, time = 5)
user.dir = 8
sleep(6)
animate(user,pixel_x = -6,pixel_y = 4, time = 5)
user.dir = 4
src.layer = 4 // move it back.
sleep(6)
user.dir = 1
animate(user,pixel_x = 0, pixel_y = 0, time = 3)
sleep(6)
user.do_jitter_animation()
sleep(6)
user.dir = 2
/obj/item/polepack
name = "stripper pole flatpack"
desc = "A wrench is required to construct."
icon = 'hyperstation/icons/obj/pole_small.dmi'
throwforce = 0
icon_state = "pole_base"
var/unwrapped = 0
w_class = WEIGHT_CLASS_HUGE
/obj/item/polepack/attackby(obj/item/P, mob/user, params) //erecting a pole here.
add_fingerprint(user)
if(istype(P, /obj/item/wrench))
if (!(item_flags & IN_INVENTORY))
to_chat(user, "<span class='notice'>You start to fasten the frame to the floor and celing...</span>")
if(P.use_tool(src, user, 8 SECONDS, volume=50))
to_chat(user, "<span class='notice'>You construct the stripper pole!</span>")
var/obj/structure/pole/C = new
C.loc = loc
del(src)
return
/obj/structure/pole/attackby(obj/item/P, mob/user, params) //un-erecting a pole. :(
add_fingerprint(user)
if(istype(P, /obj/item/wrench))
to_chat(user, "<span class='notice'>You start to unfastening the frame...</span>")
if(P.use_tool(src, user, 8 SECONDS, volume=50))
to_chat(user, "<span class='notice'>You take down the stripper pole!</span>")
var/obj/item/polepack/C = new
C.loc = loc
del(src)
return
+9
View File
@@ -95,3 +95,12 @@
desc = "A handful of blue crystals. They look like they came from some sort of cave."
alternate_worn_icon = 'hyperstation/icons/mobs/rewards.dmi'
icon_state = "crystalline"
/obj/item/clothing/mask/keaton
name = "keaton mask"
desc = "A mask made to look like the mythical Keaton."
icon = 'hyperstation/icons/obj/rewards.dmi'
alternate_worn_icon = 'hyperstation/icons/mobs/rewards.dmi'
icon_state = "keaton"
flags_inv = HIDEFACE|HIDEFACIALHAIR
w_class = WEIGHT_CLASS_SMALL
+1
View File
@@ -10,6 +10,7 @@
item_state = "rope" //This sprite is in restraints.dmi until I figure out how to refrence somewhere else
cuffsound = 'sound/weapons/cablecuff.ogg'
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
price = 2
/mob/living/proc/rope_add(source) //Check to see if the rope is on, and then add effects
var/mob/living/carbon/M = source
+1
View File
@@ -6,6 +6,7 @@
icon_state = "sounding_wrapped"
var/unwrapped = 0
w_class = WEIGHT_CLASS_TINY
price = 1
/obj/item/sounding/attack_self(mob/user)
if(!istype(user))
+4 -1
View File
@@ -13,6 +13,7 @@
var/style = "long"
var/inside = FALSE
var/last = 0
price = 3
/obj/item/electropack/vibrator/Initialize() //give the device its own code
. = ..()
@@ -125,12 +126,14 @@ Code:
U.adjustArousalLoss(intencity) //give pleasure
playsound(U.loc, 'sound/lewd/vibrate.ogg', (intencity+5), 1, -1) //vibe intencity scaled up abit for sound
switch(mode)
if(1) //low, setting for RP, it wont force your character to do anything.
to_chat(U, "<span class='love'>You feel pleasure surge through your [G.name]</span>")
U.do_jitter_animation() //do animation without heartbeat
if(2) //med, can make you cum
to_chat(U, "<span class='love'>You feel intense pleasure surge through your [G.name]</span>")
U.Jitter(3)
U.do_jitter_animation()
if (U.getArousalLoss() >= 100 && ishuman(U) && U.has_dna())
U.mob_climax(forced_climax=TRUE)
if(3) //high, makes you stun
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 817 B

After

Width:  |  Height:  |  Size: 719 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 436 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 B

After

Width:  |  Height:  |  Size: 605 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 171 KiB

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 22 KiB

@@ -121,6 +121,7 @@
cost = 9
item_path = /obj/item/clothing/neck/necklace/dope
/datum/gang_item/clothing/hands
name = "Decorative Brass Knuckles"
id = "hand"
@@ -53,6 +53,8 @@
/obj/item/reagent_containers/pill/breast_enlargement = 3,
/obj/item/clothing/gloves/latexsleeves = 3,
/obj/item/clothing/shoes/highheels = 3,
/obj/item/clothing/neck/stole = 2,
/obj/item/clothing/neck/stole/black = 2,
/obj/item/clothing/under/polychromic/stripper = 3,
/obj/item/clothing/under/polychromic/bikini = 3,
/obj/item/clothing/under/polychromic/shortpants/pantsu = 3,
@@ -81,6 +83,8 @@
/obj/item/clothing/mask/muzzle/ballgag = 3
)
refill_canister = /obj/item/vending_refill/kink
baseprice = 2
/*
/obj/machinery/vending/nazivend
name = "Nazivend"
@@ -11,7 +11,7 @@
strip_delay = 60
equip_delay_other = 60
materials = list(MAT_METAL=5000, MAT_GLASS=2000)
price = 5
var/tagname = null
/datum/design/electropack/shockcollar
@@ -60,7 +60,7 @@
else
return ..()
/obj/item/electropack/shockcollar/ui_interact(mob/user) //on_click calls this
/obj/item/electropack/shockcollar/ui_interact(mob/user) //on_click calls this
var/dat = {"
<TT>
<B>Frequency/Code</B> for shock collar:<BR>
@@ -1,19 +1,16 @@
/obj/item/organ/genital/belly //I know, I know a belly aint a genital. but it is in the sake of code.
name = "belly"
desc = "a belly."
desc = "You see a belly on their midsection."
icon_state = "belly"
icon = 'modular_citadel/icons/obj/genitals/breasts.dmi'
zone = "chest"
slot = "belly"
w_class = 3
size = 1
var/breast_values = list ("a" = 1, "b" = 2, "c" = 3, "d" = 4, "e" = 5, "f" = 6, "g" = 7, "h" = 8, "i" = 9, "j" = 10, "k" = 11, "l" = 12, "m" = 13, "n" = 14, "o" = 15, "huge" = 16, "massive" = 17, "giga" = 25, "impossible" = 30, "flat" = 0) // Note: Do not forget to define new sizes.
var/statuscheck = FALSE
shape = "Pair"
can_masturbate_with = TRUE
masturbation_verb = "massage"
can_climax = TRUE
fluid_transfer_factor = 0.5
can_climax = FALSE
var/sent_full_message = TRUE //defaults to 1 since they're full to start
@@ -27,7 +24,7 @@
var/string
if(owner)
if(owner.dna.species.use_skintones && owner.dna.features["genitals_use_skintone"])
if(ishuman(owner)) .
if(ishuman(owner))
var/mob/living/carbon/human/H = owner
color = "#[skintone2hex(H.skin_tone)]"
else
@@ -429,9 +429,9 @@
genital_overlay.icon_state = "[G.slot]_[S.icon_state]_[size]_[aroused_state]_[layertext]"
colourcode = S.color_src
if(G.slot == "belly")
if(G.slot == "belly") //we have a different size system to the rest of the genitals
genital_overlay.icon = 'hyperstation/icons/obj/genitals/belly.dmi'
genital_overlay.icon_state = "belly"
genital_overlay.icon_state = "belly_[size]"
colourcode = "belly_color"
@@ -19,7 +19,7 @@
masturbation_verb = "massage"
can_climax = TRUE
var/sent_full_message = TRUE //defaults to 1 since they're full to start
dontlist = TRUE
/obj/item/organ/genital/testicles/on_life()
@@ -105,3 +105,9 @@
path = /obj/item/toy/plush/mammal/lyricalpaws
ckeywhitelist = list("lyricalpaws")
/datum/gear/cherostavikmask
name = "Keaton Mask"
category = SLOT_IN_BACKPACK
path = /obj/item/clothing/mask/keaton
ckeywhitelist = list("cherostavik")
@@ -1,41 +1,41 @@
/datum/gear/navyblueuniformhos
name = "Head of Security navyblue uniform"
name = "Head of Security's navyblue uniform"
category = SLOT_W_UNIFORM
path = /obj/item/clothing/under/rank/head_of_security/navyblue
restricted_roles = list("Head of Security")
/datum/gear/navybluehosberet
name = "Head of security's Naviblue beret"
name = "Head of Security's navyblue beret"
category = SLOT_HEAD
path = /obj/item/clothing/head/beret/sec/navyhos
restricted_roles = list("Head of Security")
/datum/gear/navybluejackethos
name = "head of security's navyblue jacket"
name = "Head of Security's navyblue jacket"
category = SLOT_WEAR_SUIT
path = /obj/item/clothing/suit/security/hos
restricted_roles = list("Head of Security")
/datum/gear/navybluejacketofficer
name = "security officer's navyblue jacket"
name = "Security Officer's navyblue jacket"
category = SLOT_WEAR_SUIT
path = /obj/item/clothing/suit/security/officer
restricted_roles = list("Security Officer")
/datum/gear/navyblueofficerberet
name = "Security officer's Navyblue beret"
name = "Security Officer's navyblue beret"
category = SLOT_HEAD
path = /obj/item/clothing/head/beret/sec/navyofficer
restricted_roles = list("Security Officer")
/datum/gear/navyblueuniformofficer
name = "Security officer navyblue uniform"
name = "Security Officer's navyblue uniform"
category = SLOT_W_UNIFORM
path = /obj/item/clothing/under/rank/security/navyblue
restricted_roles = list("Security Officer")
/datum/gear/navybluejacketwarden
name = "warden navyblue jacket"
name = "Warden's navyblue jacket"
category = SLOT_WEAR_SUIT
path = /obj/item/clothing/suit/security/warden
restricted_roles = list("Warden")
@@ -47,7 +47,7 @@
restricted_roles = list("Warden")
/datum/gear/navyblueuniformwarden
name = "Warden navyblue uniform"
name = "Warden's navyblue uniform"
category = SLOT_W_UNIFORM
path = /obj/item/clothing/under/rank/warden/navyblue
restricted_roles = list("Warden")
@@ -59,13 +59,13 @@
restricted_roles = list("Security Officer", "Warden", "Head of Security")
/datum/gear/hosskirt
name = "Head of security's skirt"
name = "Head of Security's skirt"
category = SLOT_W_UNIFORM
path = /obj/item/clothing/under/rank/head_of_security/skirt
restricted_roles = list("Head of Security")
/datum/gear/sechud
name = "Security Hud"
name = "Security HUD"
category = SLOT_GLASSES
path = /obj/item/clothing/glasses/hud/security
restricted_roles = list("Security Officer", "Warden", "Head of Security")
@@ -49,6 +49,7 @@
path = /obj/item/clothing/under/lawyer/galaxy_blue
cost = 3
/datum/gear/galaxy_r
name = "Pulsar Gonne"
category = SLOT_W_UNIFORM
@@ -193,7 +194,7 @@
// Pantsless Sweaters
/datum/gear/turtleneck
name = "Tactitool Turtleneck"
name = "Tactifool Turtleneck"
category = SLOT_W_UNIFORM
path = /obj/item/clothing/under/syndicate/cosmetic
@@ -23,7 +23,7 @@
new /obj/item/clothing/under/rank/chief_medical_officer/turtleneck(src)
/obj/item/clothing/under/syndicate/cosmetic
name = "tactitool turtleneck"
name = "tactifool turtleneck"
desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-."
icon_state = "tactifool"
item_state = "bl_suit"
@@ -32,9 +32,6 @@
mutantrace_variation = NO_MUTANTRACE_VARIATION
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
/obj/item/clothing/under/syndicate/tacticool
has_sensor = TRUE
// Sweaters are good enough for this category too.
/obj/item/clothing/under/bb_sweater
Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
+2
View File
@@ -15,6 +15,7 @@
// BEGIN_INCLUDE
#include "_maps\_basemap.dm"
#include "_maps\boxstation.dm"
#include "code\_compile_options.dm"
#include "code\world.dm"
#include "code\__DEFINES\_globals.dm"
@@ -3072,6 +3073,7 @@
#include "hyperstation\code\obj\lunaritems.dm"
#include "hyperstation\code\obj\milking machine.dm"
#include "hyperstation\code\obj\plushes.dm"
#include "hyperstation\code\obj\pole.dm"
#include "hyperstation\code\obj\pregnancytester.dm"
#include "hyperstation\code\obj\rewards.dm"
#include "hyperstation\code\obj\rope.dm"
@@ -1,17 +1,17 @@
import { toFixed } from 'common/math';
import { Fragment } from 'inferno';
import { useBackend } from '../backend';
import { act } from '../byond';
import { Box, Button, Grid, LabeledList, NumberInput, ProgressBar, Section } from '../components';
export const SolarControl = props => {
const { act, data } = useBackend(props);
const { state } = props;
const { config, data } = state;
const { ref } = config;
const {
generated,
generated_ratio,
azimuth_current,
azimuth_rate,
max_rotation_rate,
angle,
tracking_state,
tracking_rate,
connected_panels,
connected_tracker,
} = data;
@@ -23,7 +23,7 @@ export const SolarControl = props => {
<Button
icon="sync"
content="Scan for new hardware"
onClick={() => act('refresh')} />
onClick={() => act(ref, 'refresh')} />
)}>
<Grid>
<Grid.Column>
@@ -45,13 +45,13 @@ export const SolarControl = props => {
<LabeledList.Item label="Power output">
<ProgressBar
ranges={{
good: [0.66, Infinity],
average: [0.33, 0.66],
bad: [-Infinity, 0.33],
good: [60000, Infinity],
average: [30000, 60000],
bad: [-Infinity, 30000],
}}
minValue={0}
maxValue={1}
value={generated_ratio}
maxValue={90000}
value={generated}
content={generated + ' W'} />
</LabeledList.Item>
</LabeledList>
@@ -65,20 +65,20 @@ export const SolarControl = props => {
icon="times"
content="Off"
selected={tracking_state === 0}
onClick={() => act('tracking', { mode: 0 })} />
onClick={() => act(ref, 'tracking', { mode: 0 })} />
<Button
icon="clock-o"
content="Timed"
selected={tracking_state === 1}
onClick={() => act('tracking', { mode: 1 })} />
onClick={() => act(ref, 'tracking', { mode: 1 })} />
<Button
icon="sync"
content="Auto"
selected={tracking_state === 2}
disabled={!connected_tracker}
onClick={() => act('tracking', { mode: 2 })} />
onClick={() => act(ref, 'tracking', { mode: 2 })} />
</LabeledList.Item>
<LabeledList.Item label="Azimuth">
<LabeledList.Item label="Angle">
{(tracking_state === 0 || tracking_state === 1) && (
<NumberInput
width="52px"
@@ -87,27 +87,28 @@ export const SolarControl = props => {
stepPixelSize={2}
minValue={-360}
maxValue={+720}
value={azimuth_current}
onDrag={(e, value) => act('azimuth', { value })} />
value={angle}
format={angle => Math.round(360 + angle) % 360}
onDrag={(e, value) => act(ref, 'angle', { value })} />
)}
{tracking_state === 1 && (
<NumberInput
width="80px"
unit="°/m"
step={0.01}
stepPixelSize={1}
minValue={-max_rotation_rate-0.01}
maxValue={max_rotation_rate+0.01}
value={azimuth_rate}
unit="°/h"
step={5}
stepPixelSize={2}
minValue={-7200}
maxValue={7200}
value={tracking_rate}
format={rate => {
const sign = Math.sign(rate) > 0 ? '+' : '-';
return sign + Math.abs(rate);
return sign + toFixed(Math.abs(rate));
}}
onDrag={(e, value) => act('azimuth_rate', { value })} />
onDrag={(e, value) => act(ref, 'rate', { value })} />
)}
{tracking_state === 2 && (
<Box inline color="label" mt="3px">
{azimuth_current + ' °'} (auto)
{angle + ' °'} (auto)
</Box>
)}
</LabeledList.Item>
File diff suppressed because one or more lines are too long