diff --git a/.travis.yml b/.travis.yml index edbcca8025f..27190c2f2a7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,7 +7,6 @@ env: - BYOND_MINOR="1247" matrix: - DM_MAPFILE="tgstation2" - - DM_MAPFILE="AsteroidStation" - DM_MAPFILE="ministation" before_install: diff --git a/_maps/RandomZLevels/Academy.dmm b/_maps/RandomZLevels/Academy.dmm index 30a5a965e87..68405d16622 100644 --- a/_maps/RandomZLevels/Academy.dmm +++ b/_maps/RandomZLevels/Academy.dmm @@ -456,35 +456,35 @@ "iN" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/window/reinforced{dir = 5},/turf/simulated/floor/plating,/area/awaymission/academy/academyaft) "iO" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/fancy/carpet,/area/awaymission/academy/academyaft) "iP" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable,/obj/structure/window/reinforced{dir = 5},/turf/simulated/floor/plating,/area/awaymission/academy/academyaft) -"iQ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/airless{tag = "icon-white (EAST)"; icon_state = "white"; dir = 4},/area/awaymission/academy/academyaft) -"iR" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/device/soulstone,/turf/simulated/floor/airless{tag = "icon-whitered (EAST)"; icon_state = "whitered"; dir = 4},/area/awaymission/academy/academyaft) +"iQ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plasteel/airless{tag = "icon-white (EAST)"; icon_state = "white"; dir = 4},/area/awaymission/academy/academyaft) +"iR" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/device/soulstone,/turf/simulated/floor/plasteel/airless{tag = "icon-whitered (EAST)"; icon_state = "whitered"; dir = 4},/area/awaymission/academy/academyaft) "iS" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_l"; icon_state = "propulsion_l"},/turf/space,/area/awaymission/academy/academyaft) "iT" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/awaymission/academy/academyaft) "iU" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_r"; icon_state = "propulsion_r"},/turf/space,/area/awaymission/academy/academyaft) "iV" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced{dir = 5},/turf/simulated/floor/plating,/area/awaymission/academy/academyaft) "iW" = (/obj/effect/landmark{name = "awaystart"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/awaymission/academy/academyaft) "iX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/awaymission/academy/academyaft) -"iY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/airless{tag = "icon-white (EAST)"; icon_state = "white"; dir = 4},/area/awaymission/academy/academyaft) -"iZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/airless{tag = "icon-whitered (EAST)"; icon_state = "whitered"; dir = 4},/area/awaymission/academy/academyaft) +"iY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plasteel/airless{tag = "icon-white (EAST)"; icon_state = "white"; dir = 4},/area/awaymission/academy/academyaft) +"iZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel/airless{tag = "icon-whitered (EAST)"; icon_state = "whitered"; dir = 4},/area/awaymission/academy/academyaft) "ja" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced{dir = 5},/turf/simulated/floor/plating,/area/awaymission/academy/academyaft) "jb" = (/obj/structure/table,/obj/item/clothing/glasses/meson/truesight,/turf/simulated/floor/plasteel,/area/awaymission/academy/academyaft) "jc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/fancy/carpet,/area/awaymission/academy/academyaft) "jd" = (/obj/structure/noticeboard,/turf/simulated/wall,/area/awaymission/academy/academyaft) "je" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/fancy/carpet,/area/awaymission/academy/academyaft) -"jf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/airless{tag = "icon-white (EAST)"; icon_state = "white"; dir = 4},/area/awaymission/academy/academyaft) -"jg" = (/obj/structure/table,/obj/item/organ/brain{name = "The preserved brain of Harry Houdini"},/turf/simulated/floor/airless{tag = "icon-whitered (EAST)"; icon_state = "whitered"; dir = 4},/area/awaymission/academy/academyaft) +"jf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel/airless{tag = "icon-white (EAST)"; icon_state = "white"; dir = 4},/area/awaymission/academy/academyaft) +"jg" = (/obj/structure/table,/obj/item/organ/brain{name = "The preserved brain of Harry Houdini"},/turf/simulated/floor/plasteel/airless{tag = "icon-whitered (EAST)"; icon_state = "whitered"; dir = 4},/area/awaymission/academy/academyaft) "jh" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/awaymission/academy/academyaft) "ji" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "yellow"},/area/awaymission/academy/academyaft) "jj" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellow"},/area/awaymission/academy/academyaft) -"jk" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/airless{tag = "icon-white (EAST)"; icon_state = "white"; dir = 4},/area/awaymission/academy/academyaft) +"jk" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plasteel/airless{tag = "icon-white (EAST)"; icon_state = "white"; dir = 4},/area/awaymission/academy/academyaft) "jl" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/item/weapon/shard,/turf/simulated/floor/plating/airless,/area/awaymission/academy/academyaft) "jm" = (/obj/structure/window/reinforced,/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/golden_cup,/turf/simulated/floor/plasteel{icon_state = "red"},/area/awaymission/academy/academyaft) "jn" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 6},/area/awaymission/academy/academyaft) "jo" = (/obj/structure/cult/pylon,/turf/simulated/floor/plasteel{icon_state = "yellow"; dir = 10},/area/awaymission/academy/academyaft) "jp" = (/turf/simulated/floor/plasteel{icon_state = "yellow"},/area/awaymission/academy/academyaft) "jq" = (/obj/structure/cult/pylon,/turf/simulated/floor/plasteel{dir = 6; icon_state = "yellow"},/area/awaymission/academy/academyaft) -"jr" = (/obj/structure/window/reinforced,/turf/simulated/floor/airless{tag = "icon-white (EAST)"; icon_state = "white"; dir = 4},/area/awaymission/academy/academyaft) -"js" = (/obj/structure/table,/obj/structure/window/reinforced,/obj/item/device/batterer,/turf/simulated/floor/airless{tag = "icon-whitered (EAST)"; icon_state = "whitered"; dir = 4},/area/awaymission/academy/academyaft) +"jr" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless{tag = "icon-white (EAST)"; icon_state = "white"; dir = 4},/area/awaymission/academy/academyaft) +"js" = (/obj/structure/table,/obj/structure/window/reinforced,/obj/item/device/batterer,/turf/simulated/floor/plasteel/airless{tag = "icon-whitered (EAST)"; icon_state = "whitered"; dir = 4},/area/awaymission/academy/academyaft) "jt" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/space,/area/space) "ju" = (/obj/machinery/igniter,/turf/simulated/floor/plating,/area/awaymission/academy/academyaft) "jv" = (/obj/structure/window/reinforced,/turf/simulated/floor/fancy/carpet,/area/awaymission/academy/academyaft) diff --git a/_maps/RandomZLevels/blackmarketpackers.dmm b/_maps/RandomZLevels/blackmarketpackers.dmm index 5d5efb215b0..73c99cd92b1 100644 --- a/_maps/RandomZLevels/blackmarketpackers.dmm +++ b/_maps/RandomZLevels/blackmarketpackers.dmm @@ -212,7 +212,7 @@ "ed" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/awaymission/BMPship/Aft) "ee" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/awaymission/BMPship/Aft) "ef" = (/obj/item/device/multitool,/turf/simulated/floor/engine,/area/awaymission/BMPship/Aft) -"eg" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (EAST)"; icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{tag = "icon-engine"; icon_state = "engine"},/area/awaymission/BMPship/Aft) +"eg" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (EAST)"; icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{tag = "icon-engine"; icon_state = "engine"},/area/awaymission/BMPship/Aft) "eh" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (WEST)"; icon_state = "propulsion"; dir = 8},/turf/space,/area/awaymission/BMPship/Aft) "ei" = (/turf/simulated/floor/plasteel{tag = "icon-carpet15-15 (EAST)"; icon_state = "carpet15-15"; dir = 4},/area/awaymission/BMPship/Fore) "ej" = (/obj/structure/table,/obj/machinery/recharger,/turf/simulated/floor/plasteel{tag = "icon-carpet5-0 (EAST)"; icon_state = "carpet5-0"; dir = 4},/area/awaymission/BMPship/Fore) diff --git a/_maps/RandomZLevels/centcomAway.dmm b/_maps/RandomZLevels/centcomAway.dmm index d20f61df1f3..d0abc744725 100644 --- a/_maps/RandomZLevels/centcomAway.dmm +++ b/_maps/RandomZLevels/centcomAway.dmm @@ -404,7 +404,7 @@ "hN" = (/obj/structure/rack,/obj/item/clothing/ears/earmuffs{pixel_x = -3; pixel_y = -2},/turf/simulated/floor/plating,/area/awaymission/centcomAway/hangar) "hO" = (/obj/structure/closet,/turf/simulated/floor/plating,/area/awaymission/centcomAway/hangar) "hP" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/turf/simulated/floor/plating,/area/awaymission/centcomAway/hangar) -"hQ" = (/obj/machinery/power/solar/fake,/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/awaymission/centcomAway/maint) +"hQ" = (/obj/machinery/power/solar/fake,/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/awaymission/centcomAway/maint) "hR" = (/obj/structure/closet/secure_closet/medical2,/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaymission/centcomAway/courtroom) "hS" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin,/turf/simulated/floor/wood,/area/awaymission/centcomAway/courtroom) "hT" = (/obj/structure/table/wood,/turf/simulated/floor/wood,/area/awaymission/centcomAway/courtroom) diff --git a/_maps/RandomZLevels/challenge.dmm b/_maps/RandomZLevels/challenge.dmm index 5d3f985ac7d..c6e4879db09 100644 --- a/_maps/RandomZLevels/challenge.dmm +++ b/_maps/RandomZLevels/challenge.dmm @@ -2,41 +2,41 @@ "ab" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/awaymission/challenge/start) "ac" = (/obj/structure/girder,/turf/simulated/floor/plating/airless,/area/awaymission/challenge/start) "ad" = (/turf/simulated/floor/plating,/area/awaymission/challenge/start) -"ae" = (/turf/simulated/floor/airless{icon_state = "damaged5"},/area/awaymission/challenge/start) -"af" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/challenge/start) -"ag" = (/obj/item/clothing/suit/space/syndicate/blue,/obj/item/clothing/head/helmet/space/syndicate/blue,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/challenge/start) -"ah" = (/turf/simulated/floor/airless,/area/awaymission/challenge/start) -"ai" = (/obj/item/device/flashlight{icon_state = "flashlight-on"; item_state = "flashlight"; on = 1},/turf/simulated/floor/airless,/area/awaymission/challenge/start) -"aj" = (/obj/effect/landmark{name = "awaystart"},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/awaymission/challenge/start) -"ak" = (/obj/effect/decal/remains/human,/turf/simulated/floor/airless{icon_state = "damaged4"},/area/awaymission/challenge/start) -"al" = (/obj/effect/landmark{name = "awaystart"},/turf/simulated/floor/airless,/area/awaymission/challenge/start) -"am" = (/obj/item/clothing/suit/space/syndicate/green,/obj/item/clothing/head/helmet/space/syndicate/green,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/challenge/start) -"an" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/awaymission/challenge/start) -"ao" = (/obj/item/clothing/suit/space/syndicate/orange,/obj/item/clothing/head/helmet/space/syndicate/orange,/turf/simulated/floor/airless,/area/awaymission/challenge/start) -"ap" = (/obj/item/weapon/gun/energy/laser/retro,/turf/simulated/floor/airless,/area/awaymission/challenge/start) +"ae" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/awaymission/challenge/start) +"af" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/challenge/start) +"ag" = (/obj/item/clothing/suit/space/syndicate/blue,/obj/item/clothing/head/helmet/space/syndicate/blue,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/challenge/start) +"ah" = (/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/start) +"ai" = (/obj/item/device/flashlight{icon_state = "flashlight-on"; item_state = "flashlight"; on = 1},/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/start) +"aj" = (/obj/effect/landmark{name = "awaystart"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/awaymission/challenge/start) +"ak" = (/obj/effect/decal/remains/human,/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/awaymission/challenge/start) +"al" = (/obj/effect/landmark{name = "awaystart"},/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/start) +"am" = (/obj/item/clothing/suit/space/syndicate/green,/obj/item/clothing/head/helmet/space/syndicate/green,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/challenge/start) +"an" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/awaymission/challenge/start) +"ao" = (/obj/item/clothing/suit/space/syndicate/orange,/obj/item/clothing/head/helmet/space/syndicate/orange,/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/start) +"ap" = (/obj/item/weapon/gun/energy/laser/retro,/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/start) "aq" = (/obj/item/stack/rods,/turf/simulated/floor/plasteel,/area/awaymission/challenge/start) -"ar" = (/obj/effect/decal/cleanable/oil,/turf/simulated/floor/airless,/area/awaymission/challenge/start) -"as" = (/obj/effect/decal/remains/robot,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/challenge/start) +"ar" = (/obj/effect/decal/cleanable/oil,/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/start) +"as" = (/obj/effect/decal/remains/robot,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/challenge/start) "at" = (/obj/structure/girder,/turf/simulated/floor/plating,/area/awaymission/challenge/start) "au" = (/turf/simulated/wall,/area/awaymission/challenge/start) -"av" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/awaymission/challenge/start) -"aw" = (/obj/item/stack/rods,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/challenge/start) +"av" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/awaymission/challenge/start) +"aw" = (/obj/item/stack/rods,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/challenge/start) "ax" = (/obj/effect/decal/cleanable/oil,/mob/living/simple_animal/hostile/syndicate,/turf/simulated/floor/plating,/area/awaymission/challenge/start) -"ay" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/airless,/area/awaymission/challenge/start) -"az" = (/obj/item/clothing/suit/space/syndicate/black,/obj/item/clothing/head/helmet/space/syndicate/black,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/challenge/start) +"ay" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/start) +"az" = (/obj/item/clothing/suit/space/syndicate/black,/obj/item/clothing/head/helmet/space/syndicate/black,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/challenge/start) "aA" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/awaymission/challenge/main) "aB" = (/obj/structure/girder,/turf/simulated/floor/plating,/area/awaymission/challenge/main) "aC" = (/turf/simulated/floor/plating,/area/awaymission/challenge/main) -"aD" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/awaymission/challenge/main) +"aD" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/awaymission/challenge/main) "aE" = (/turf/simulated/wall,/area/awaymission/challenge/main) "aF" = (/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main) -"aG" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/challenge/main) -"aH" = (/turf/simulated/floor/airless,/area/awaymission/challenge/main) +"aG" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/challenge/main) +"aH" = (/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/main) "aI" = (/obj/machinery/power/emitter{active = 1; active_power_usage = 0; anchored = 1; dir = 2; idle_power_usage = 0; locked = 1; name = "Energy Cannon"; req_access_txt = "100"; state = 2; use_power = 0},/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main) -"aJ" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/airless,/area/awaymission/challenge/main) -"aK" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/airless,/area/awaymission/challenge/main) -"aL" = (/obj/effect/decal/cleanable/oil,/turf/simulated/floor/airless,/area/awaymission/challenge/main) -"aM" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/airless,/area/awaymission/challenge/main) +"aJ" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/main) +"aK" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/main) +"aL" = (/obj/effect/decal/cleanable/oil,/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/main) +"aM" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/main) "aN" = (/obj/effect/decal/cleanable/oil,/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main) "aO" = (/obj/structure/window/reinforced,/obj/machinery/power/emitter{active = 1; active_power_usage = 0; anchored = 1; dir = 2; idle_power_usage = 0; locked = 1; name = "Energy Cannon"; req_access_txt = "100"; state = 2; use_power = 0},/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main) "aP" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main) @@ -44,15 +44,15 @@ "aR" = (/turf/simulated/floor/plasteel{icon_state = "warning"},/area/awaymission/challenge/main) "aS" = (/obj/machinery/power/emitter{active = 1; active_power_usage = 0; anchored = 1; dir = 4; idle_power_usage = 0; locked = 1; name = "Energy Cannon"; req_access_txt = "100"; state = 2; use_power = 0},/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main) "aT" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main) -"aU" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/airless,/area/awaymission/challenge/main) +"aU" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/main) "aV" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main) "aW" = (/obj/machinery/power/emitter{active = 1; active_power_usage = 0; anchored = 1; dir = 8; idle_power_usage = 0; locked = 1; name = "Energy Cannon"; req_access_txt = "100"; state = 2; use_power = 0},/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main) "aX" = (/obj/machinery/porta_turret{dir = 8; emagged = 1; installation = /obj/item/weapon/gun/energy/lasercannon},/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main) "aY" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main) "aZ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main) "ba" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/awaymission/challenge/main) -"bb" = (/obj/item/device/multitool,/turf/simulated/floor/airless,/area/awaymission/challenge/main) -"bc" = (/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/airless,/area/awaymission/challenge/main) +"bb" = (/obj/item/device/multitool,/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/main) +"bc" = (/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/main) "bd" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHWEST)"; icon_state = "warnplate"; dir = 9},/area/awaymission/challenge/main) "be" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/challenge/main) "bf" = (/obj/machinery/power/emitter{active = 1; active_power_usage = 0; anchored = 1; dir = 1; idle_power_usage = 0; locked = 1; name = "Energy Cannon"; req_access_txt = "100"; state = 2; use_power = 0},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/challenge/main) @@ -62,13 +62,13 @@ "bj" = (/obj/machinery/light,/turf/simulated/floor/plating,/area/awaymission/challenge/main) "bk" = (/obj/machinery/power/emitter{active = 1; active_power_usage = 0; anchored = 1; dir = 1; idle_power_usage = 0; locked = 1; name = "Energy Cannon"; req_access_txt = "100"; state = 2; use_power = 0},/obj/machinery/light,/turf/simulated/floor/plating,/area/awaymission/challenge/main) "bl" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/power/emitter{active = 1; active_power_usage = 0; anchored = 1; dir = 1; idle_power_usage = 0; locked = 1; name = "Energy Cannon"; req_access_txt = "100"; state = 2; use_power = 0},/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/awaymission/challenge/main) -"bm" = (/obj/machinery/door/window,/turf/simulated/floor/airless,/area/awaymission/challenge/main) +"bm" = (/obj/machinery/door/window,/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/main) "bn" = (/obj/machinery/power/emitter{active = 1; active_power_usage = 0; anchored = 1; dir = 2; idle_power_usage = 0; locked = 1; name = "Energy Cannon"; req_access_txt = "100"; state = 2; use_power = 0},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/awaymission/challenge/main) "bo" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plating,/area/awaymission/challenge/main) "bp" = (/obj/machinery/porta_turret{dir = 8; emagged = 1; installation = /obj/item/weapon/gun/energy/lasercannon},/turf/simulated/floor/plating,/area/awaymission/challenge/main) "bq" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/awaymission/challenge/main) "br" = (/obj/structure/window/reinforced{dir = 4},/obj/effect/decal/cleanable/oil,/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main) -"bs" = (/obj/item/weapon/storage/toolbox/electrical,/turf/simulated/floor/airless,/area/awaymission/challenge/main) +"bs" = (/obj/item/weapon/storage/toolbox/electrical,/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/main) "bt" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHWEST)"; icon_state = "warnplate"; dir = 10},/area/awaymission/challenge/main) "bu" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/challenge/main) "bv" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHEAST)"; icon_state = "warnplate"; dir = 6},/area/awaymission/challenge/main) @@ -79,7 +79,7 @@ "bA" = (/obj/item/clothing/gloves/yellow,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/awaymission/challenge/main) "bB" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/power/emitter{active = 1; active_power_usage = 0; anchored = 1; dir = 8; idle_power_usage = 0; locked = 1; name = "Energy Cannon"; req_access_txt = "100"; state = 2; use_power = 0},/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main) "bC" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/power/emitter{active = 1; active_power_usage = 0; anchored = 1; dir = 4; idle_power_usage = 0; locked = 1; name = "Energy Cannon"; req_access_txt = "100"; state = 2; use_power = 0},/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main) -"bD" = (/obj/item/weapon/storage/firstaid/fire,/turf/simulated/floor/airless,/area/awaymission/challenge/main) +"bD" = (/obj/item/weapon/storage/firstaid/fire,/turf/simulated/floor/plasteel/airless,/area/awaymission/challenge/main) "bE" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitecorner"},/area/awaymission/challenge/main) "bF" = (/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/awaymission/challenge/main) "bG" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitecorner"},/area/awaymission/challenge/main) diff --git a/_maps/RandomZLevels/listeningpost.dmm b/_maps/RandomZLevels/listeningpost.dmm index 21aa2dc6865..e4bed560e50 100644 --- a/_maps/RandomZLevels/listeningpost.dmm +++ b/_maps/RandomZLevels/listeningpost.dmm @@ -36,16 +36,16 @@ "J" = (/obj/structure/toilet{tag = "icon-toilet00 (WEST)"; icon_state = "toilet00"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/awaymission/listeningpost) "K" = (/turf/simulated/mineral/clown,/area/mine/unexplored) "L" = (/turf/simulated/shuttle/wall{tag = "icon-wall3"; icon_state = "wall3"},/area/mine/explored) -"M" = (/turf/simulated/floor/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored) -"N" = (/obj/machinery/gateway{tag = "icon-off (NORTHWEST)"; icon_state = "off"; dir = 9},/turf/simulated/floor/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored) -"O" = (/obj/machinery/gateway{tag = "icon-off (NORTH)"; icon_state = "off"; dir = 1},/turf/simulated/floor/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored) -"P" = (/obj/machinery/gateway{tag = "icon-off (NORTHEAST)"; icon_state = "off"; dir = 5},/turf/simulated/floor/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored) -"Q" = (/obj/machinery/gateway{tag = "icon-off (WEST)"; icon_state = "off"; dir = 8},/turf/simulated/floor/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored) -"R" = (/obj/machinery/gateway/centeraway,/turf/simulated/floor/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored) -"S" = (/obj/machinery/gateway{tag = "icon-off (EAST)"; icon_state = "off"; dir = 4},/turf/simulated/floor/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored) -"T" = (/obj/machinery/gateway{tag = "icon-off (SOUTHWEST)"; icon_state = "off"; dir = 10},/turf/simulated/floor/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored) -"U" = (/obj/machinery/gateway,/turf/simulated/floor/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored) -"V" = (/obj/machinery/gateway{tag = "icon-off (SOUTHEAST)"; icon_state = "off"; dir = 6},/turf/simulated/floor/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored) +"M" = (/turf/simulated/floor/plasteel/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored) +"N" = (/obj/machinery/gateway{tag = "icon-off (NORTHWEST)"; icon_state = "off"; dir = 9},/turf/simulated/floor/plasteel/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored) +"O" = (/obj/machinery/gateway{tag = "icon-off (NORTH)"; icon_state = "off"; dir = 1},/turf/simulated/floor/plasteel/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored) +"P" = (/obj/machinery/gateway{tag = "icon-off (NORTHEAST)"; icon_state = "off"; dir = 5},/turf/simulated/floor/plasteel/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored) +"Q" = (/obj/machinery/gateway{tag = "icon-off (WEST)"; icon_state = "off"; dir = 8},/turf/simulated/floor/plasteel/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored) +"R" = (/obj/machinery/gateway/centeraway,/turf/simulated/floor/plasteel/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored) +"S" = (/obj/machinery/gateway{tag = "icon-off (EAST)"; icon_state = "off"; dir = 4},/turf/simulated/floor/plasteel/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored) +"T" = (/obj/machinery/gateway{tag = "icon-off (SOUTHWEST)"; icon_state = "off"; dir = 10},/turf/simulated/floor/plasteel/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored) +"U" = (/obj/machinery/gateway,/turf/simulated/floor/plasteel/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored) +"V" = (/obj/machinery/gateway{tag = "icon-off (SOUTHEAST)"; icon_state = "off"; dir = 6},/turf/simulated/floor/plasteel/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/mine/explored) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/_maps/RandomZLevels/spacebattle.dmm b/_maps/RandomZLevels/spacebattle.dmm index a486d174004..89e204615bb 100644 --- a/_maps/RandomZLevels/spacebattle.dmm +++ b/_maps/RandomZLevels/spacebattle.dmm @@ -445,16 +445,16 @@ "iC" = (/obj/effect/landmark/corpse/syndicatesoldier,/turf/space,/area/space) "iD" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/space) "iE" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/space) -"iF" = (/obj/machinery/sleeper,/turf/simulated/floor/airless{tag = "icon-floor4 (SOUTHWEST)"; icon_state = "floor4"; dir = 10},/area/space) -"iG" = (/turf/simulated/floor/airless{tag = "icon-floor4 (SOUTHWEST)"; icon_state = "floor4"; dir = 10},/area/space) -"iH" = (/obj/effect/landmark/corpse/syndicatesoldier,/turf/simulated/floor/airless{tag = "icon-floor4 (SOUTHWEST)"; icon_state = "floor4"; dir = 10},/area/space) +"iF" = (/obj/machinery/sleeper,/turf/simulated/floor/plasteel/airless{tag = "icon-floor4 (SOUTHWEST)"; icon_state = "floor4"; dir = 10},/area/space) +"iG" = (/turf/simulated/floor/plasteel/airless{tag = "icon-floor4 (SOUTHWEST)"; icon_state = "floor4"; dir = 10},/area/space) +"iH" = (/obj/effect/landmark/corpse/syndicatesoldier,/turf/simulated/floor/plasteel/airless{tag = "icon-floor4 (SOUTHWEST)"; icon_state = "floor4"; dir = 10},/area/space) "iI" = (/turf/simulated/mineral/clown,/area/space) -"iJ" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/airless{tag = "icon-floor4 (SOUTHWEST)"; icon_state = "floor4"; dir = 10},/area/space) -"iK" = (/obj/item/stack/rods,/turf/simulated/floor/airless{tag = "icon-floor4 (SOUTHWEST)"; icon_state = "floor4"; dir = 10},/area/space) +"iJ" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plasteel/airless{tag = "icon-floor4 (SOUTHWEST)"; icon_state = "floor4"; dir = 10},/area/space) +"iK" = (/obj/item/stack/rods,/turf/simulated/floor/plasteel/airless{tag = "icon-floor4 (SOUTHWEST)"; icon_state = "floor4"; dir = 10},/area/space) "iL" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/awaymission/spacebattle/syndicate5) "iM" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/awaymission/spacebattle/syndicate5) "iN" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/awaymission/spacebattle/syndicate5) -"iO" = (/obj/machinery/sleeper,/turf/simulated/floor/airless,/area/space) +"iO" = (/obj/machinery/sleeper,/turf/simulated/floor/plasteel/airless,/area/space) "iP" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate5) "iQ" = (/obj/machinery/computer/shuttle,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate5) "iR" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/space) diff --git a/_maps/RandomZLevels/stationCollision.dmm b/_maps/RandomZLevels/stationCollision.dmm index 4d1cbd867aa..a7826a47eeb 100644 --- a/_maps/RandomZLevels/stationCollision.dmm +++ b/_maps/RandomZLevels/stationCollision.dmm @@ -1,37 +1,37 @@ "aa" = (/turf/space,/area/space) "ab" = (/obj/machinery/power/tracker,/turf/simulated/floor/plating/airless,/area/awaymission/northblock) "ac" = (/obj/machinery/power/tracker,/turf/simulated/floor/plating,/area/awaymission/northblock) -"ad" = (/obj/machinery/power/solar/fake,/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/awaymission/northblock) +"ad" = (/obj/machinery/power/solar/fake,/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/awaymission/northblock) "ae" = (/obj/structure/lattice,/turf/space,/area/awaymission/northblock) "af" = (/turf/space,/area/awaymission/northblock) "ag" = (/turf/simulated/floor/plating/airless,/area/awaymission/northblock) -"ah" = (/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/awaymission/northblock) +"ah" = (/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/awaymission/northblock) "ai" = (/obj/machinery/power/solar/fake,/turf/space,/area/awaymission/northblock) "aj" = (/turf/simulated/wall,/area/awaymission/northblock) "ak" = (/obj/structure/lattice,/turf/space,/area/space) -"al" = (/obj/machinery/door/window/westright,/turf/simulated/floor/airless,/area/awaymission/northblock) -"am" = (/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/northblock) -"an" = (/turf/simulated/floor/airless{icon_state = "damaged5"},/area/awaymission/northblock) -"ao" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless{icon_state = "damaged4"},/area/awaymission/northblock) -"ap" = (/turf/simulated/floor/airless,/area/awaymission/northblock) -"aq" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/awaymission/northblock) -"ar" = (/obj/machinery/door/window/eastleft{name = "Windoor"},/turf/simulated/floor/airless,/area/awaymission/northblock) +"al" = (/obj/machinery/door/window/westright,/turf/simulated/floor/plasteel/airless,/area/awaymission/northblock) +"am" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/awaymission/northblock) +"an" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/awaymission/northblock) +"ao" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/awaymission/northblock) +"ap" = (/turf/simulated/floor/plasteel/airless,/area/awaymission/northblock) +"aq" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/awaymission/northblock) +"ar" = (/obj/machinery/door/window/eastleft{name = "Windoor"},/turf/simulated/floor/plasteel/airless,/area/awaymission/northblock) "as" = (/obj/machinery/power/solar_control{stat = 1},/turf/simulated/floor/plasteel,/area/awaymission/northblock) "at" = (/obj/machinery/power/solar_control,/turf/simulated/floor/plasteel,/area/awaymission/northblock) "au" = (/obj/structure/computerframe{anchored = 1},/turf/simulated/floor/plasteel,/area/awaymission/northblock) -"av" = (/obj/structure/window/reinforced/tinted,/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"; tag = ""},/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass,/obj/item/stack/sheet/plasteel,/turf/simulated/floor/airless,/area/awaymission/northblock) -"aw" = (/obj/structure/window/reinforced/tinted,/turf/simulated/floor/airless,/area/awaymission/northblock) -"ax" = (/obj/structure/window/reinforced/tinted,/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/airless,/area/awaymission/northblock) -"ay" = (/obj/structure/window/reinforced/tinted,/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor/airless,/area/awaymission/northblock) -"az" = (/obj/structure/window/reinforced/tinted,/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor/airless,/area/awaymission/northblock) -"aA" = (/obj/structure/window/reinforced/tinted,/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"; tag = ""},/obj/structure/closet/secure_closet/engineering_electrical,/turf/simulated/floor/airless,/area/awaymission/northblock) -"aB" = (/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/awaymission/northblock) +"av" = (/obj/structure/window/reinforced/tinted,/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"; tag = ""},/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass,/obj/item/stack/sheet/plasteel,/turf/simulated/floor/plasteel/airless,/area/awaymission/northblock) +"aw" = (/obj/structure/window/reinforced/tinted,/turf/simulated/floor/plasteel/airless,/area/awaymission/northblock) +"ax" = (/obj/structure/window/reinforced/tinted,/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plasteel/airless,/area/awaymission/northblock) +"ay" = (/obj/structure/window/reinforced/tinted,/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor/plasteel/airless,/area/awaymission/northblock) +"az" = (/obj/structure/window/reinforced/tinted,/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor/plasteel/airless,/area/awaymission/northblock) +"aA" = (/obj/structure/window/reinforced/tinted,/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"; tag = ""},/obj/structure/closet/secure_closet/engineering_electrical,/turf/simulated/floor/plasteel/airless,/area/awaymission/northblock) +"aB" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/awaymission/northblock) "aC" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/awaymission/syndishuttle) "aD" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/awaymission/syndishuttle) "aE" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor/plating/airless,/area/awaymission/northblock) -"aF" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/awaymission/northblock) -"aG" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/northblock) -"aH" = (/obj/effect/decal/remains/robot,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/awaymission/northblock) +"aF" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/awaymission/northblock) +"aG" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/northblock) +"aH" = (/obj/effect/decal/remains/robot,/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/awaymission/northblock) "aI" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-burst_l (EAST)"; icon_state = "burst_l"; dir = 4},/turf/space,/area/awaymission/syndishuttle) "aJ" = (/turf/simulated/floor/plating/airless,/area/awaymission/syndishuttle) "aK" = (/turf/space,/area/awaymission/syndishuttle) @@ -41,8 +41,8 @@ "aO" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_r (EAST)"; icon_state = "propulsion_r"; dir = 4},/turf/space,/area/awaymission/syndishuttle) "aP" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/turf/simulated/floor/plating/airless,/area/awaymission/syndishuttle) "aQ" = (/turf/simulated/floor/plating/airless,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/awaymission/syndishuttle) -"aR" = (/obj/structure/closet/secure_closet/engineering_personal,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/northblock) -"aS" = (/obj/structure/closet/secure_closet/engineering_personal,/turf/simulated/floor/airless,/area/awaymission/northblock) +"aR" = (/obj/structure/closet/secure_closet/engineering_personal,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/northblock) +"aS" = (/obj/structure/closet/secure_closet/engineering_personal,/turf/simulated/floor/plasteel/airless,/area/awaymission/northblock) "aT" = (/obj/structure/closet/secure_closet/engineering_welding,/obj/machinery/light,/turf/simulated/floor/plasteel,/area/awaymission/northblock) "aU" = (/obj/machinery/mech_bay_recharge_port,/turf/simulated/floor/plasteel,/area/awaymission/northblock) "aV" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/simulated/floor/plasteel,/area/awaymission/northblock) @@ -51,8 +51,8 @@ "aY" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/awaymission/syndishuttle) "aZ" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/space) "ba" = (/turf/simulated/wall,/area/space) -"bb" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor/airless,/area/awaymission/northblock) -"bc" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/awaymission/northblock) +"bb" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor/plasteel/airless,/area/awaymission/northblock) +"bc" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/awaymission/northblock) "bd" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-burst_l (EAST)"; icon_state = "burst_l"; dir = 4},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/awaymission/syndishuttle) "be" = (/obj/structure/shuttle/engine/heater,/turf/simulated/shuttle/plating,/area/awaymission/syndishuttle) "bf" = (/turf/simulated/shuttle/plating,/area/awaymission/syndishuttle) @@ -71,8 +71,8 @@ "bs" = (/obj/structure/lattice,/turf/space,/area/awaymission/syndishuttle) "bt" = (/obj/machinery/door/airlock/centcom,/turf/simulated/shuttle/plating,/area/awaymission/syndishuttle) "bu" = (/obj/machinery/door/airlock/centcom,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/syndishuttle) -"bv" = (/turf/simulated/floor/airless{icon_state = "damaged5"},/area/awaymission/research) -"bw" = (/obj/structure/girder/reinforced,/turf/simulated/floor/airless{icon_state = "damaged4"},/area/awaymission/research) +"bv" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/awaymission/research) +"bw" = (/obj/structure/girder/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/awaymission/research) "bx" = (/turf/simulated/wall/r_wall,/area/awaymission/research) "by" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/shuttle/plating,/area/awaymission/syndishuttle) "bz" = (/obj/machinery/bot/medbot/mysterious{desc = "A dark little medical robot. She looks somewhat underwhelmed."; name = "Nightingale"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/syndishuttle) @@ -81,7 +81,7 @@ "bC" = (/obj/structure/table,/obj/item/weapon/paper/sc_safehint_paper_shuttle,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/syndishuttle) "bD" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/syndishuttle) "bE" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/awaymission/syndishuttle) -"bF" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/awaymission/research) +"bF" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/awaymission/research) "bG" = (/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/awaymission/research) "bH" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/awaymission/research) "bI" = (/obj/item/weapon/shard,/mob/living/carbon/alien/larva{bruteloss = 25; fireloss = 175; stat = 2},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/awaymission/research) @@ -100,7 +100,7 @@ "bV" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (NORTH)"; icon_state = "heater"; dir = 1},/turf/simulated/shuttle/plating,/area/awaymission/syndishuttle) "bW" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/awaymission/syndishuttle) "bX" = (/obj/machinery/sleeper{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/syndishuttle) -"bY" = (/obj/structure/girder/reinforced,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/awaymission/research) +"bY" = (/obj/structure/girder/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/awaymission/research) "bZ" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/awaymission/research) "ca" = (/turf/simulated/floor/plasteel,/area/awaymission/research) "cb" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/awaymission/research) @@ -110,7 +110,7 @@ "cf" = (/obj/machinery/dna_scannernew,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research) "cg" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/fancy/grass,/area/awaymission/research) "ch" = (/obj/machinery/power/emitter{anchored = 1; state = 2},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research) -"ci" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/awaymission/northblock) +"ci" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/awaymission/northblock) "cj" = (/obj/machinery/door/window/southleft,/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/awaymission/research) "ck" = (/obj/item/weapon/shard{icon_state = "small"},/mob/living/carbon/alien/larva{bruteloss = 50; fireloss = 150; stat = 2},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/awaymission/research) "cl" = (/obj/item/weapon/shard{icon_state = "medium"},/obj/item/weapon/shard{icon_state = "small"},/obj/structure/alien/weeds/node,/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/awaymission/research) @@ -132,7 +132,7 @@ "cB" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research) "cC" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_l (EAST)"; icon_state = "propulsion_l"; dir = 4},/turf/space,/area/awaymission/syndishuttle) "cD" = (/turf/simulated/floor/plating/airless,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/awaymission/syndishuttle) -"cE" = (/obj/machinery/portable_atmospherics/canister/toxins{destroyed = 1},/turf/simulated/floor/airless{icon_state = "damaged4"},/area/awaymission/northblock) +"cE" = (/obj/machinery/portable_atmospherics/canister/toxins{destroyed = 1},/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/awaymission/northblock) "cF" = (/obj/machinery/door/window/eastleft,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research) "cG" = (/obj/machinery/power/emitter{anchored = 1; dir = 1; icon_state = "emitter"; state = 2},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research) "cH" = (/obj/item/clothing/mask/facehugger,/mob/living/carbon/alien/humanoid/queen{fireloss = 300; stat = 2},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research) @@ -145,7 +145,7 @@ "cO" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research) "cP" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research) "cQ" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple,/turf/space,/area/awaymission/northblock) -"cR" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/northblock) +"cR" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/northblock) "cS" = (/obj/structure/closet/firecloset,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research) "cT" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research) "cU" = (/mob/living/carbon/alien/humanoid/hunter{fireloss = 200; stat = 2},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research) @@ -167,9 +167,9 @@ "dk" = (/obj/machinery/door_control{id = "Narsiedoor"; name = "Blast Door Control"; pixel_x = -28},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research) "dl" = (/obj/machinery/door/poddoor{id = "Narsiedoor"; name = "Blast Doors"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research) "dm" = (/obj/machinery/power/emitter{anchored = 1; dir = 8; state = 2},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research) -"dn" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/northblock) +"dn" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/northblock) "do" = (/obj/structure/closet/firecloset,/turf/simulated/floor/plasteel,/area/awaymission/northblock) -"dp" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/northblock) +"dp" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/awaymission/northblock) "dq" = (/obj/machinery/door/airlock/highsecurity{name = "Security Airlock"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/awaymission/research) "dr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/awaymission/research) "ds" = (/obj/machinery/door/window/westright{name = "Windoor"},/obj/machinery/door/window/eastright{name = "Windoor"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research) @@ -181,7 +181,7 @@ "dy" = (/obj/machinery/message_server{stat = 1},/turf/simulated/floor/plasteel{dir = 0; icon_state = "blue"},/area/awaymission/northblock) "dz" = (/obj/machinery/computer/message_monitor{stat = 1},/turf/simulated/floor/plasteel{dir = 0; icon_state = "blue"},/area/awaymission/northblock) "dA" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "bluecorner"},/area/awaymission/northblock) -"dB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/awaymission/northblock) +"dB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/awaymission/northblock) "dC" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_y = -10; tag = "icon-shower (EAST)"},/obj/structure/window/reinforced/tinted{dir = 1},/turf/simulated/floor/plasteel,/area/awaymission/research) "dD" = (/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/awaymission/research) "dE" = (/obj/structure/window/reinforced,/obj/structure/cable,/obj/machinery/power/apc{cell_type = 7500; dir = 8; name = "Research APC"; pixel_x = -28},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research) @@ -194,14 +194,14 @@ "dL" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research) "dM" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research) "dN" = (/turf/simulated/floor/plasteel{icon_state = "bluecorner"},/area/awaymission/northblock) -"dO" = (/obj/structure/stool/bed/chair/office/light{dir = 1},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/awaymission/northblock) +"dO" = (/obj/structure/stool/bed/chair/office/light{dir = 1},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/awaymission/northblock) "dP" = (/obj/structure/stool/bed/chair/office/light{dir = 1},/turf/simulated/floor/plasteel,/area/awaymission/northblock) "dQ" = (/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 8},/area/awaymission/northblock) "dR" = (/obj/structure/showcase{icon_state = "showcase_2"},/turf/simulated/floor/plasteel,/area/awaymission/northblock) -"dS" = (/obj/structure/sign/goldenplaque{pixel_y = 31},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/northblock) -"dT" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/northblock) -"dU" = (/obj/structure/sign/atmosplaque{pixel_y = 31},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/northblock) -"dV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/northblock) +"dS" = (/obj/structure/sign/goldenplaque{pixel_y = 31},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/northblock) +"dT" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/awaymission/northblock) +"dU" = (/obj/structure/sign/atmosplaque{pixel_y = 31},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/northblock) +"dV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/awaymission/northblock) "dW" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research) "dX" = (/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research) "dY" = (/obj/structure/table,/obj/item/stack/cable_coil{amount = 5},/obj/item/weapon/screwdriver,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research) @@ -217,7 +217,7 @@ "ei" = (/turf/simulated/floor/plasteel{dir = 9; icon_state = "blue"},/area/awaymission/northblock) "ej" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/awaymission/northblock) "ek" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "blue"},/area/awaymission/northblock) -"el" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/awaymission/northblock) +"el" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/awaymission/northblock) "em" = (/obj/structure/window/reinforced,/obj/machinery/computer/upload/ai,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research) "en" = (/obj/structure/window/reinforced,/obj/machinery/door/window/brigdoor/eastleft,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research) "eo" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{current_temperature = 80},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research) @@ -225,16 +225,16 @@ "eq" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research) "er" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/northblock) "es" = (/obj/structure/computerframe{anchored = 1},/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 4},/area/awaymission/northblock) -"et" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/northblock) +"et" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/awaymission/northblock) "eu" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plasteel,/area/awaymission/northblock) "ev" = (/obj/machinery/door/airlock/command,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/awaymission/northblock) -"ew" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/awaymission/northblock) +"ew" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/awaymission/northblock) "ex" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/awaymission/northblock) -"ey" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/northblock) -"ez" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/northblock) +"ey" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/awaymission/northblock) +"ez" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/northblock) "eA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 4},/area/awaymission/northblock) -"eB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/awaymission/northblock) -"eC" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/northblock) +"eB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/awaymission/northblock) +"eC" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/awaymission/northblock) "eD" = (/obj/structure/AIcore,/turf/simulated/floor/greengrid,/area/awaymission/research) "eE" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/greengrid,/area/awaymission/research) "eF" = (/turf/simulated/floor/greengrid,/area/awaymission/research) @@ -247,7 +247,7 @@ "eM" = (/obj/structure/table,/turf/simulated/floor/plasteel{dir = 4; icon_state = "bluecorner"},/area/awaymission/northblock) "eN" = (/obj/machinery/power/apc{cell_type = 5000; dir = 4; name = "North Block APC"; pixel_x = 28},/obj/structure/cable,/turf/simulated/floor/plasteel{dir = 9; icon_state = "blue"},/area/awaymission/northblock) "eO" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/awaymission/northblock) -"eP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/northblock) +"eP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/northblock) "eQ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/grown/potato,/obj/item/stack/cable_coil{amount = 1},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research) "eR" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research) "eS" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/computerframe{anchored = 1},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research) @@ -259,10 +259,10 @@ "eY" = (/obj/machinery/power/emitter{anchored = 1; dir = 1; icon_state = "emitter"; state = 2},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research) "eZ" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "bluecorner"},/area/awaymission/northblock) "fa" = (/obj/structure/stool/bed/chair/office/light,/turf/simulated/floor/plasteel,/area/awaymission/northblock) -"fb" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/northblock) +"fb" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/awaymission/northblock) "fc" = (/turf/simulated/floor/plasteel,/area/awaymission/northblock) -"fd" = (/obj/machinery/light/small,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/northblock) -"fe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/awaymission/northblock) +"fd" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/awaymission/northblock) +"fe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/awaymission/northblock) "ff" = (/obj/structure/table,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/capacitor{pixel_x = -3},/obj/item/weapon/stock_parts/scanning_module{pixel_x = 3; pixel_y = 3},/obj/item/weapon/stock_parts/scanning_module{pixel_y = -3; step_y = 0},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research) "fg" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research) "fh" = (/obj/structure/table,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stock_parts/micro_laser{pixel_x = -3; pixel_y = -3},/obj/item/weapon/stock_parts/micro_laser{pixel_x = 3; pixel_y = 3},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research) @@ -277,10 +277,10 @@ "fq" = (/obj/structure/target_stake,/obj/item/target/syndicate,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research) "fr" = (/obj/structure/closet/secure_closet/captains,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/northblock) "fs" = (/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/northblock) -"ft" = (/turf/simulated/floor/airless,/area/awaymission/midblock) -"fu" = (/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/midblock) -"fv" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/midblock) -"fw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/midblock) +"ft" = (/turf/simulated/floor/plasteel/airless,/area/awaymission/midblock) +"fu" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/awaymission/midblock) +"fv" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/midblock) +"fw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/awaymission/midblock) "fx" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/weapon/storage/toolbox/mechanical{pixel_y = 5},/obj/item/weapon/stock_parts/console_screen,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research) "fy" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 20; pixel_x = -3; pixel_y = -3},/obj/item/stack/sheet/glass{amount = 10; pixel_x = 3; pixel_y = 3},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research) "fz" = (/obj/machinery/r_n_d/circuit_imprinter,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research) @@ -291,10 +291,10 @@ "fE" = (/obj/structure/target_stake,/obj/item/weapon/grown/sunflower,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research) "fF" = (/obj/item/ammo_casing/c45,/obj/item/ammo_casing/c45{pixel_x = 7},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/northblock) "fG" = (/obj/item/clothing/suit/space/syndicate,/obj/item/clothing/under/syndicate,/obj/item/clothing/head/helmet/space/syndicate,/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/obj/item/clothing/shoes/syndigaloshes,/obj/effect/decal/cleanable/blood/splatter,/obj/item/weapon/gun/projectile/automatic/pistol,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/northblock) -"fH" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/airless,/area/awaymission/midblock) -"fI" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/midblock) -"fJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/awaymission/midblock) -"fK" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/midblock) +"fH" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel/airless,/area/awaymission/midblock) +"fI" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/awaymission/midblock) +"fJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/awaymission/midblock) +"fK" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/midblock) "fL" = (/turf/simulated/wall/cult,/area/awaymission/midblock) "fM" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/midblock) "fN" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/midblock) @@ -306,7 +306,7 @@ "fT" = (/turf/space,/turf/simulated/shuttle/wall{dir = 3; icon_state = "swall_f10"; layer = 2; tag = "icon-swall_f10"},/area/awaymission/arrivalblock) "fU" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_x = -3; pixel_y = 5},/obj/item/weapon/paper{pixel_x = 3},/obj/item/weapon/pen{pixel_x = 10; pixel_y = 10},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/northblock) "fV" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/northblock) -"fW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless,/area/awaymission/midblock) +"fW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel/airless,/area/awaymission/midblock) "fX" = (/turf/simulated/wall,/area/awaymission/midblock) "fY" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/midblock) "fZ" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/midblock) @@ -319,7 +319,7 @@ "gg" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 1},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/northblock) "gh" = (/obj/item/weapon/storage/secure/safe/sc_ssafe{pixel_x = 4; pixel_y = -26},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/northblock) "gi" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/captain,/obj/item/clothing/under/rank/captain,/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/splatter,/obj/item/weapon/gun/energy/laser/retro/sc_retro,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/northblock) -"gj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/awaymission/midblock) +"gj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/awaymission/midblock) "gk" = (/obj/structure/closet/wardrobe,/turf/simulated/floor/plasteel,/area/awaymission/midblock) "gl" = (/turf/simulated/floor/plasteel,/area/awaymission/midblock) "gm" = (/obj/structure/closet/wardrobe/pjs,/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"; tag = ""},/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"; tag = ""},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel,/area/awaymission/midblock) @@ -366,7 +366,7 @@ "hb" = (/obj/structure/closet/wardrobe/red,/obj/machinery/light{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/awaymission/arrivalblock) "hc" = (/obj/structure/closet/secure_closet/security,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/awaymission/arrivalblock) "hd" = (/obj/structure/closet/secure_closet/security,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 5},/area/awaymission/arrivalblock) -"he" = (/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/awaymission/midblock) +"he" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/awaymission/midblock) "hf" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/blue,/obj/structure/window/reinforced/tinted{dir = 1},/turf/simulated/floor/plasteel,/area/awaymission/midblock) "hg" = (/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"; tag = ""},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"; tag = ""},/turf/simulated/floor/plasteel,/area/awaymission/midblock) "hh" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/purple,/obj/structure/window/reinforced/tinted{dir = 1},/obj/effect/decal/remains/human,/turf/simulated/floor/plasteel,/area/awaymission/midblock) @@ -390,8 +390,8 @@ "hz" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/item/clothing/suit/space/syndicate,/obj/item/weapon/paper/sc_safehint_paper_prison,/obj/item/weapon/gun/projectile/shotgun/sc_pump,/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock) "hA" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock) "hB" = (/obj/machinery/door/window/southleft{name = "Windoor"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/awaymission/arrivalblock) -"hC" = (/obj/item/ammo_casing/c10mm{pixel_x = 2; pixel_y = 5},/obj/item/ammo_casing/c10mm{pixel_x = -4; pixel_y = -5},/obj/item/ammo_casing/c10mm,/turf/simulated/floor/airless,/area/awaymission/midblock) -"hD" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless,/area/awaymission/midblock) +"hC" = (/obj/item/ammo_casing/c10mm{pixel_x = 2; pixel_y = 5},/obj/item/ammo_casing/c10mm{pixel_x = -4; pixel_y = -5},/obj/item/ammo_casing/c10mm,/turf/simulated/floor/plasteel/airless,/area/awaymission/midblock) +"hD" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel/airless,/area/awaymission/midblock) "hE" = (/obj/structure/sink/kitchen{pixel_y = 32},/turf/simulated/floor/plasteel,/area/awaymission/midblock) "hF" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/enzyme,/obj/item/weapon/reagent_containers/food/condiment/peppermill,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = 4; pixel_y = 4},/turf/simulated/floor/plasteel,/area/awaymission/midblock) "hG" = (/obj/structure/table,/obj/machinery/reagentgrinder,/turf/simulated/floor/plasteel,/area/awaymission/midblock) @@ -420,8 +420,8 @@ "id" = (/obj/structure/stool/bed/chair{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock) "ie" = (/obj/effect/decal/remains/human,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/awaymission/arrivalblock) "if" = (/obj/machinery/door/airlock/glass_security{name = "Glass Airlock"; req_access_txt = "0"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock) -"ig" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/airless,/area/awaymission/midblock) -"ih" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/midblock) +"ig" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel/airless,/area/awaymission/midblock) +"ih" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/awaymission/midblock) "ii" = (/obj/machinery/microwave{pixel_x = -2; pixel_y = 7},/obj/structure/table,/turf/simulated/floor/plasteel,/area/awaymission/midblock) "ij" = (/obj/structure/stool,/obj/item/ammo_casing/c10mm,/turf/simulated/floor/plasteel,/area/awaymission/midblock) "ik" = (/obj/item/ammo_casing/c10mm,/obj/item/ammo_casing/c10mm,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plasteel,/area/awaymission/midblock) @@ -459,32 +459,32 @@ "iQ" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock) "iR" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 9},/area/awaymission/arrivalblock) "iS" = (/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/awaymission/arrivalblock) -"iT" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/awaymission/arrivalblock) -"iU" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/awaymission/arrivalblock) -"iV" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/airless,/area/awaymission/southblock) -"iW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless,/area/awaymission/southblock) -"iX" = (/turf/simulated/floor/airless,/area/awaymission/southblock) -"iY" = (/obj/item/ammo_casing/c10mm,/turf/simulated/floor/airless,/area/awaymission/southblock) -"iZ" = (/obj/item/ammo_casing/c10mm{pixel_x = -4; pixel_y = 3},/turf/simulated/floor/airless,/area/awaymission/southblock) -"ja" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/airless,/area/awaymission/southblock) -"jb" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/airless,/area/awaymission/southblock) +"iT" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/awaymission/arrivalblock) +"iU" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/arrivalblock) +"iV" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock) +"iW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock) +"iX" = (/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock) +"iY" = (/obj/item/ammo_casing/c10mm,/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock) +"iZ" = (/obj/item/ammo_casing/c10mm{pixel_x = -4; pixel_y = 3},/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock) +"ja" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock) +"jb" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock) "jc" = (/turf/simulated/wall,/area/awaymission/southblock) "jd" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/arrivalblock) "je" = (/obj/structure/closet/wardrobe/orange,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 10},/area/awaymission/arrivalblock) "jf" = (/obj/structure/stool/bed,/turf/simulated/floor/plasteel{icon_state = "red"},/area/awaymission/arrivalblock) "jg" = (/obj/structure/stool,/obj/machinery/light/small,/turf/simulated/floor/plasteel{icon_state = "red"},/area/awaymission/arrivalblock) -"jh" = (/obj/structure/table/reinforced,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/awaymission/arrivalblock) +"jh" = (/obj/structure/table/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/awaymission/arrivalblock) "ji" = (/turf/space,/area/awaymission/arrivalblock) -"jj" = (/obj/structure/girder,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/awaymission/arrivalblock) -"jk" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/awaymission/southblock) -"jl" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/airless,/area/awaymission/southblock) -"jm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/airless,/area/awaymission/southblock) -"jn" = (/obj/item/ammo_casing/c10mm{pixel_y = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/airless,/area/awaymission/southblock) -"jo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/airless,/area/awaymission/southblock) -"jp" = (/obj/structure/sign/bluecross{pixel_y = -32},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/airless,/area/awaymission/southblock) -"jq" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/airless,/area/awaymission/southblock) -"jr" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/airless,/area/awaymission/southblock) -"js" = (/obj/item/clothing/head/helmet/space/syndicate,/turf/simulated/floor/airless,/area/awaymission/southblock) +"jj" = (/obj/structure/girder,/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/awaymission/arrivalblock) +"jk" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/awaymission/southblock) +"jl" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock) +"jm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock) +"jn" = (/obj/item/ammo_casing/c10mm{pixel_y = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock) +"jo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock) +"jp" = (/obj/structure/sign/bluecross{pixel_y = -32},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock) +"jq" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock) +"jr" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock) +"js" = (/obj/item/clothing/head/helmet/space/syndicate,/turf/simulated/floor/plasteel/airless,/area/awaymission/southblock) "jt" = (/obj/structure/girder,/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock) "ju" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock) "jv" = (/obj/machinery/door/airlock/maintenance{name = "Airlock"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel,/area/awaymission/southblock) diff --git a/_maps/map_files/MiniStation/MiniStation.dmm b/_maps/map_files/MiniStation/MiniStation.dmm index dcb29f565dd..c84fde900ee 100644 --- a/_maps/map_files/MiniStation/MiniStation.dmm +++ b/_maps/map_files/MiniStation/MiniStation.dmm @@ -780,7 +780,7 @@ "oZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "pa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "pb" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) -"pc" = (/obj/structure/table,/obj/item/clothing/gloves/latex,/obj/item/clothing/mask/surgical,/obj/item/clothing/suit/apron/surgical,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitehall"},/area/medical/medbay) +"pc" = (/obj/structure/table,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/item/clothing/suit/apron/surgical,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitehall"},/area/medical/medbay) "pd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "pe" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "pf" = (/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) @@ -1287,11 +1287,11 @@ "yM" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; listening = 1; name = "Common Channel"; pixel_y = 25},/turf/simulated/floor/plasteel,/area/engine/engineering) "yN" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/turf/simulated/floor/plasteel{icon_state = "yellow"; dir = 1},/area/engine/engineering) "yO" = (/obj/structure/table,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{dir = 1},/obj/machinery/cell_charger,/turf/simulated/floor/plasteel,/area/engine/engineering) -"yP" = (/obj/structure/table,/obj/machinery/alarm{pixel_y = 23},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/clothing/gloves/yellow,/obj/item/weapon/storage/toolbox/mechanical{pixel_y = 5},/turf/simulated/floor/plasteel,/area/engine/engineering) +"yP" = (/obj/structure/table,/obj/machinery/alarm{pixel_y = 23},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/clothing/gloves/color/yellow,/obj/item/weapon/storage/toolbox/mechanical{pixel_y = 5},/turf/simulated/floor/plasteel,/area/engine/engineering) "yQ" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/engine/engineering) "yR" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/camera/autoname,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/engine/engineering) "yS" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/engine/engineering) -"yT" = (/obj/structure/table,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/clothing/gloves/yellow,/obj/item/weapon/storage/toolbox/electrical{pixel_y = 5},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; listening = 1; name = "Common Channel"; pixel_y = 25},/turf/simulated/floor/plasteel,/area/engine/engineering) +"yT" = (/obj/structure/table,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/clothing/gloves/color/yellow,/obj/item/weapon/storage/toolbox/electrical{pixel_y = 5},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; listening = 1; name = "Common Channel"; pixel_y = 25},/turf/simulated/floor/plasteel,/area/engine/engineering) "yU" = (/obj/structure/closet/crate,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/stack/sheet/mineral/plasma{amount = 30},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 8},/area/engine/engineering) "yV" = (/obj/machinery/power/apc{auto_name = 1; dir = 1; name = "_North APC"; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/engine/engineering) "yW" = (/obj/structure/table,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/module/power_control,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 4},/area/engine/engineering) @@ -1365,7 +1365,7 @@ "Am" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/engine/engineering) "An" = (/obj/machinery/pipedispenser,/turf/simulated/floor/plasteel,/area/engine/engineering) "Ao" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel,/area/engine/engineering) -"Ap" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/gloves/black,/obj/item/weapon/extinguisher{pixel_x = 8},/turf/simulated/floor/plasteel,/area/engine/engineering) +"Ap" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/gloves/color/black,/obj/item/weapon/extinguisher{pixel_x = 8},/turf/simulated/floor/plasteel,/area/engine/engineering) "Aq" = (/obj/structure/closet/secure_closet/engineering_personal,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/engine/engineering) "Ar" = (/obj/machinery/power/port_gen/pacman,/turf/simulated/floor/plasteel,/area/engine/engineering) "As" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor/plasteel,/area/engine/engineering) @@ -1431,7 +1431,7 @@ "BA" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 10},/area/engine/engineering) "BB" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "cyan"; icon_state = "intact-c"},/obj/machinery/meter,/turf/simulated/floor/plating,/area/engine/engineering) "BC" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "cyan"; icon_state = "intact-c"},/obj/machinery/meter,/turf/simulated/floor/plating{icon_state = "warnplatecorner"; dir = 2},/area/engine/engineering) -"BD" = (/obj/item/weapon/paper/generator,/obj/item/device/multitool,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engineering) +"BD" = (/obj/item/device/multitool,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engineering) "BE" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "yellow"; icon_state = "intact-y"; level = 2},/obj/machinery/meter,/turf/simulated/floor/plating{icon_state = "warnplatecorner"; dir = 1},/area/engine/engineering) "BF" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "yellow"; icon_state = "intact-y"; level = 2},/obj/machinery/meter,/turf/simulated/floor/plating,/area/engine/engineering) "BG" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 6},/area/engine/engineering) @@ -1605,108 +1605,104 @@ "ES" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/engine/gravity_generator) "ET" = (/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 4},/area/engine/gravity_generator) "EU" = (/obj/structure/transit_tube{icon_state = "N-S"},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/tcommsat/computer) -"EV" = (/obj/machinery/telecomms/processor/preset_one/ministation,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) -"EW" = (/obj/machinery/telecomms/bus/preset_one/ministation,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) -"EX" = (/obj/machinery/telecomms/server/presets/common/ministation,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) -"EY" = (/obj/machinery/message_server,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) -"EZ" = (/obj/machinery/computer/telecomms/server{network = "tcommsat"},/turf/simulated/floor/plasteel{icon_state = "yellow"; dir = 10},/area/tcommsat/computer) -"Fa" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/simulated/floor/plasteel,/area/tcommsat/computer) -"Fb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/tcommsat/computer) -"Fc" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/item/weapon/pen/blue,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/tcommsat/computer) -"Fd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/tcommsat/computer) -"Fe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/plating,/area/tcommsat/computer) -"Ff" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/gravity_generator) -"Fg" = (/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/engine/gravity_generator) -"Fh" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/gravity_generator) -"Fi" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/tcommsat/computer) -"Fj" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/tcommsat/computer) -"Fk" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plating,/area/tcommsat/computer) -"Fl" = (/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) -"Fm" = (/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) -"Fn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/tcommsat/computer) -"Fo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/tcommsat/computer) -"Fp" = (/obj/machinery/door/airlock/glass_command{name = "Control Room"; req_access_txt = "19; 61"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/tcommsat/computer) -"Fq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/computer) -"Fr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/tcommsat/computer) -"Fs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/gravity_generator) -"Ft" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 4},/area/engine/gravity_generator) -"Fu" = (/obj/machinery/gravity_generator/main/station,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/engine/gravity_generator) -"Fv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 1},/area/engine/gravity_generator) -"Fw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/gravity_generator) -"Fx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/computer) -"Fy" = (/obj/structure/transit_tube/station/reverse{tag = "icon-closed (EAST)"; icon_state = "closed"; dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/tcommsat/computer) -"Fz" = (/turf/simulated/wall/r_wall,/area/tcommsat/computer) -"FA" = (/obj/machinery/power/apc{cell_type = 5000; dir = 8; name = "Telecoms Server APC"; pixel_x = -25; pixel_y = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) -"FB" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) -"FC" = (/obj/machinery/power/terminal{dir = 8},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) -"FD" = (/obj/machinery/door/airlock/glass_engineering{name = "Server Room"; req_access_txt = "61"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/tcommsat/computer) -"FE" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "yellow"},/area/tcommsat/computer) -"FF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/tcommsat/computer) -"FG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/tcommsat/computer) -"FH" = (/obj/structure/closet/emcloset,/obj/machinery/camera/autoname{network = list("SS13")},/turf/simulated/floor/plasteel,/area/tcommsat/computer) -"FI" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/gravity_generator) -"FJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/gravity_generator) -"FK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/gravity_generator) -"FL" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/camera/autoname{dir = 8},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/gravity_generator) -"FM" = (/obj/structure/transit_tube{tag = "icon-Block (NORTH)"; icon_state = "Block"; dir = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/tcommsat/computer) -"FN" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plating,/area/tcommsat/computer) -"FO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/wall/r_wall,/area/tcommsat/computer) -"FP" = (/obj/machinery/camera/autoname{dir = 4; network = list("SS13")},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) -"FQ" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 0},/turf/simulated/wall,/area/tcommsat/computer) -"FR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/start{name = "Cyborg"},/turf/simulated/floor/plasteel,/area/tcommsat/computer) -"FS" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/landmark/start{name = "Cyborg"},/turf/simulated/floor/plasteel,/area/tcommsat/computer) -"FT" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Telecoms Admin"; departmentType = 5; name = "Telecoms RC"; pixel_x = 30; pixel_y = 0},/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/machinery/recharge_station,/turf/simulated/floor/plasteel,/area/tcommsat/computer) -"FU" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/wall/r_wall,/area/tcommsat/computer) -"FV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/tcommsat/computer) -"FW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/engine/gravity_generator) -"FX" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/engine/gravity_generator) -"FY" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor/plating,/area/engine/gravity_generator) -"FZ" = (/obj/machinery/door/airlock/glass_command{name = "Gravity Generator Area"; req_access_txt = "19; 61"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/gravity_generator) -"Ga" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/engine/gravity_generator) -"Gb" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/engine/gravity_generator) -"Gc" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/tcommsat/computer) -"Gd" = (/obj/machinery/telecomms/receiver/preset_left/ministation,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) -"Ge" = (/obj/machinery/telecomms/hub/preset,/obj/structure/sign/nosmoking_2{pixel_y = -32},/obj/machinery/light/small,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) -"Gf" = (/obj/machinery/telecomms/broadcaster/preset_left/ministation,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) -"Gg" = (/obj/machinery/blackbox_recorder,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) -"Gh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/wall,/area/tcommsat/computer) -"Gi" = (/obj/structure/table,/obj/item/device/multitool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "yellow"},/area/tcommsat/computer) -"Gj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/tcommsat/computer) -"Gk" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor/plasteel,/area/tcommsat/computer) -"Gl" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/tcommsat/computer) -"Gm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plating,/area/tcommsat/computer) -"Gn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/engine/gravity_generator) -"Go" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/engine/gravity_generator) -"Gp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/engine/gravity_generator) -"Gq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/engine/gravity_generator) -"Gr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/engine/gravity_generator) -"Gs" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/engine/gravity_generator) -"Gt" = (/turf/space,/area/syndicate_station/southwest) -"Gu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/wall/r_wall,/area/tcommsat/computer) -"Gv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/tcommsat/computer) -"Gw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/simulated/wall/r_wall,/area/tcommsat/computer) -"Gx" = (/obj/structure/table,/turf/simulated/floor/plasteel{dir = 8; icon_state = "yellow"},/area/tcommsat/computer) -"Gy" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel,/area/tcommsat/computer) -"Gz" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor/plasteel,/area/tcommsat/computer) -"GA" = (/obj/machinery/door/airlock/engineering{name = "Telecommunications"; req_access_txt = "61"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/tcommsat/computer) -"GB" = (/obj/machinery/power/apc{dir = 8; name = "Gravity Generator APC"; pixel_x = -25; pixel_y = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plasteel,/area/engine/gravity_generator) -"GC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/engine/gravity_generator) -"GD" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/engine/gravity_generator) -"GE" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel,/area/engine/gravity_generator) -"GF" = (/turf/simulated/floor/plasteel,/area/engine/gravity_generator) -"GG" = (/turf/space,/area/syndicate_station/southeast) -"GH" = (/obj/structure/table,/obj/item/device/radio,/turf/simulated/floor/plasteel{icon_state = "yellow"; dir = 10},/area/tcommsat/computer) -"GI" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -35},/obj/effect/landmark/start{name = "AI"},/turf/simulated/floor/plasteel,/area/tcommsat/computer) -"GJ" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/filingcabinet/chestdrawer,/turf/simulated/floor/plasteel,/area/tcommsat/computer) -"GK" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/machinery/newscaster{pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel,/area/tcommsat/computer) -"GL" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable,/turf/simulated/floor/plasteel,/area/engine/gravity_generator) -"GM" = (/obj/machinery/light,/obj/structure/stool/bed/chair/office/light{dir = 4},/obj/machinery/power/terminal{dir = 8},/turf/simulated/floor/plasteel,/area/engine/gravity_generator) -"GN" = (/obj/structure/table,/obj/item/weapon/paper/gravity_gen{layer = 3},/obj/item/weapon/pen/blue,/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/plasteel,/area/engine/gravity_generator) -"GO" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/turf/simulated/wall/r_wall,/area/engine/gravity_generator) -"GP" = (/obj/machinery/door/airlock/highsecurity{name = "Gravity Generator Room"; req_access_txt = "19;23"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/engine/gravity_generator) -"GQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/computer) -"GR" = (/obj/structure/closet/radiation,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/tcommsat/computer) -"GS" = (/turf/space,/area/syndicate_station/south) +"EV" = (/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) +"EW" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) +"EX" = (/obj/machinery/message_server,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) +"EY" = (/obj/machinery/computer/telecomms/server{network = "tcommsat"},/turf/simulated/floor/plasteel{icon_state = "yellow"; dir = 10},/area/tcommsat/computer) +"EZ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/simulated/floor/plasteel,/area/tcommsat/computer) +"Fa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/tcommsat/computer) +"Fb" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/item/weapon/pen/blue,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/tcommsat/computer) +"Fc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/tcommsat/computer) +"Fd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/plating,/area/tcommsat/computer) +"Fe" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/gravity_generator) +"Ff" = (/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/engine/gravity_generator) +"Fg" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/gravity_generator) +"Fh" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/tcommsat/computer) +"Fi" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/tcommsat/computer) +"Fj" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plating,/area/tcommsat/computer) +"Fk" = (/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) +"Fl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/tcommsat/computer) +"Fm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/tcommsat/computer) +"Fn" = (/obj/machinery/door/airlock/glass_command{name = "Control Room"; req_access_txt = "19; 61"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/tcommsat/computer) +"Fo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/computer) +"Fp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/tcommsat/computer) +"Fq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/gravity_generator) +"Fr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 4},/area/engine/gravity_generator) +"Fs" = (/obj/machinery/gravity_generator/main/station,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/engine/gravity_generator) +"Ft" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 1},/area/engine/gravity_generator) +"Fu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/gravity_generator) +"Fv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/computer) +"Fw" = (/obj/structure/transit_tube/station/reverse{tag = "icon-closed (EAST)"; icon_state = "closed"; dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/tcommsat/computer) +"Fx" = (/turf/simulated/wall/r_wall,/area/tcommsat/computer) +"Fy" = (/obj/machinery/power/apc{cell_type = 5000; dir = 8; name = "Telecoms Server APC"; pixel_x = -25; pixel_y = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) +"Fz" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) +"FA" = (/obj/machinery/power/terminal{dir = 8},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) +"FB" = (/obj/machinery/door/airlock/glass_engineering{name = "Server Room"; req_access_txt = "61"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/tcommsat/computer) +"FC" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "yellow"},/area/tcommsat/computer) +"FD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/tcommsat/computer) +"FE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/tcommsat/computer) +"FF" = (/obj/structure/closet/emcloset,/obj/machinery/camera/autoname{network = list("SS13")},/turf/simulated/floor/plasteel,/area/tcommsat/computer) +"FG" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/gravity_generator) +"FH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/gravity_generator) +"FI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/gravity_generator) +"FJ" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/camera/autoname{dir = 8},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/gravity_generator) +"FK" = (/obj/structure/transit_tube{tag = "icon-Block (NORTH)"; icon_state = "Block"; dir = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/tcommsat/computer) +"FL" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plating,/area/tcommsat/computer) +"FM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/wall/r_wall,/area/tcommsat/computer) +"FN" = (/obj/machinery/camera/autoname{dir = 4; network = list("SS13")},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) +"FO" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 0},/turf/simulated/wall,/area/tcommsat/computer) +"FP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/start{name = "Cyborg"},/turf/simulated/floor/plasteel,/area/tcommsat/computer) +"FQ" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/landmark/start{name = "Cyborg"},/turf/simulated/floor/plasteel,/area/tcommsat/computer) +"FR" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Telecoms Admin"; departmentType = 5; name = "Telecoms RC"; pixel_x = 30; pixel_y = 0},/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/machinery/recharge_station,/turf/simulated/floor/plasteel,/area/tcommsat/computer) +"FS" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/wall/r_wall,/area/tcommsat/computer) +"FT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/tcommsat/computer) +"FU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/engine/gravity_generator) +"FV" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/engine/gravity_generator) +"FW" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor/plating,/area/engine/gravity_generator) +"FX" = (/obj/machinery/door/airlock/glass_command{name = "Gravity Generator Area"; req_access_txt = "19; 61"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/gravity_generator) +"FY" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/engine/gravity_generator) +"FZ" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/engine/gravity_generator) +"Ga" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/tcommsat/computer) +"Gb" = (/obj/machinery/telecomms/hub/preset,/obj/structure/sign/nosmoking_2{pixel_y = -32},/obj/machinery/light/small,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) +"Gc" = (/obj/machinery/blackbox_recorder,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) +"Gd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/wall,/area/tcommsat/computer) +"Ge" = (/obj/structure/table,/obj/item/device/multitool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "yellow"},/area/tcommsat/computer) +"Gf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/tcommsat/computer) +"Gg" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor/plasteel,/area/tcommsat/computer) +"Gh" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/tcommsat/computer) +"Gi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plating,/area/tcommsat/computer) +"Gj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/engine/gravity_generator) +"Gk" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/engine/gravity_generator) +"Gl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/engine/gravity_generator) +"Gm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/engine/gravity_generator) +"Gn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/engine/gravity_generator) +"Go" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/engine/gravity_generator) +"Gp" = (/turf/space,/area/syndicate_station/southwest) +"Gq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/wall/r_wall,/area/tcommsat/computer) +"Gr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/tcommsat/computer) +"Gs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/simulated/wall/r_wall,/area/tcommsat/computer) +"Gt" = (/obj/structure/table,/turf/simulated/floor/plasteel{dir = 8; icon_state = "yellow"},/area/tcommsat/computer) +"Gu" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel,/area/tcommsat/computer) +"Gv" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor/plasteel,/area/tcommsat/computer) +"Gw" = (/obj/machinery/door/airlock/engineering{name = "Telecommunications"; req_access_txt = "61"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/tcommsat/computer) +"Gx" = (/obj/machinery/power/apc{dir = 8; name = "Gravity Generator APC"; pixel_x = -25; pixel_y = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plasteel,/area/engine/gravity_generator) +"Gy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/engine/gravity_generator) +"Gz" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/engine/gravity_generator) +"GA" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel,/area/engine/gravity_generator) +"GB" = (/turf/simulated/floor/plasteel,/area/engine/gravity_generator) +"GC" = (/turf/space,/area/syndicate_station/southeast) +"GD" = (/obj/structure/table,/obj/item/device/radio,/turf/simulated/floor/plasteel{icon_state = "yellow"; dir = 10},/area/tcommsat/computer) +"GE" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -35},/obj/effect/landmark/start{name = "AI"},/turf/simulated/floor/plasteel,/area/tcommsat/computer) +"GF" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/filingcabinet/chestdrawer,/turf/simulated/floor/plasteel,/area/tcommsat/computer) +"GG" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/machinery/newscaster{pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel,/area/tcommsat/computer) +"GH" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable,/turf/simulated/floor/plasteel,/area/engine/gravity_generator) +"GI" = (/obj/machinery/light,/obj/structure/stool/bed/chair/office/light{dir = 4},/obj/machinery/power/terminal{dir = 8},/turf/simulated/floor/plasteel,/area/engine/gravity_generator) +"GJ" = (/obj/structure/table,/obj/item/weapon/paper/gravity_gen{layer = 3},/obj/item/weapon/pen/blue,/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/plasteel,/area/engine/gravity_generator) +"GK" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/turf/simulated/wall/r_wall,/area/engine/gravity_generator) +"GL" = (/obj/machinery/door/airlock/highsecurity{name = "Gravity Generator Room"; req_access_txt = "19;23"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/engine/gravity_generator) +"GM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/computer) +"GN" = (/obj/structure/closet/radiation,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/tcommsat/computer) +"GO" = (/turf/space,/area/syndicate_station/south) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -1902,50 +1898,50 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEpEqCqErCqCqCqCqCqCqErCqCqCqCqErEsEtEfamEaEaEaEaEaEaEaEuEvEwEwEwExEyEzEAEdEaamamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamCoEBEfECEhEhEDEhEhEhEhEEEFEGEGEHEIEhEJEJEJEJEJEJEJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamCoCAEKEhEhEvEwEwEwEwELEMENEOEPEIEhEJEQERESETEQEJamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamEaEUEaEhEhEEEVEWEXEYEaEZFaFbFcFdFeEJFfFgEQFgFhEJamamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamECFiFjEhFkELFlFmFmFmEaFnFoFpFqEIFrEJFsFtFuFvFwEJamamamamamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamFxFyEhEhEhFzFAFBFCFmFDFEFFFGFHEIFrEJFIFJEQFKFLEJamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamEKFMEDEhFNFOFPFmFmFmFQFEFRFSFTFUFVFWFXFYFZGaGbEJamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamEaGcEaEhEhEIGdGeGfGgGhGiGjGkGlFzGmGnGoGpGqGrGsEJamamamamamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtGtGtGtGtGtGtGtGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaECEhEhGuGvGvGvGvGwGxGyEGGzGAEhEJGBGCGDGEGFEJamamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGGGGGGGGGGGGGGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtGtGtGtGtGtGtGtGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEKEhEhFjEhEhEhEhFzGHGIGJGKFzEhEJGFGFGLGMGNEJamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGGGGGGGGGGGGGGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtGtGtGtGtGtGtGtGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEaEaEaEaEaEaEaEuFzFzFzFzFzFzEhGOGPGOEJEJEJEJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGGGGGGGGGGGGGGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtGtGtGtGtGtGtGtGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamambLbLEgEhEgEhEhEhEhEhEhFjEhEhEhGQamamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGGGGGGGGGGGGGGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtGtGtGtGtGtGtGtGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamambLEaEbEaEaEaEaEaEaEaEaEaGRGREaamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGGGGGGGGGGGGGGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtGtGtGtGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamamamamamamamamamamamEaEaEaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGGGGGGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtGtGtGtGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGGGGGGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtGtGtGtGtGtGtGtGtGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGGGGGGGGGGGGGGGGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtGtGtGtGtGtGtGtGtGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGGGGGGGGGGGGGGGGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtGtGtGtGtGtGtGtGtGtGtGtGtGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGGGGGGGGGGGGGGGGGGGGGGGGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtGtGtGtGtGtGtGtGtGtGtGtGtGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGGGGGGGGGGGGGGGGGGGGGGGGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtGtGtGtGtGtGtGtGtGtGtGtGtGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGGGGGGGGGGGGGGGGGGGGGGGGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtGtGtGtGtGtGtGtGtGtGtGtGtGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGGGGGGGGGGGGGGGGGGGGGGGGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGSGSGSGSGSGSGSGSGSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGSGSGSGSGSGSGSGSGSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtGtGtGtGtaaGtGtGtGtGtaaGtGtGtGtGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGSGSGSGSGSGSGSGSGSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGGGGGGGGaaGGGGGGGGGGaaGGGGGGGGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtGtGtGtGtaaGtGtGtGtGtaaGtGtGtGtGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGSGSGSGSGSGSGSGSGSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGGGGGGGGaaGGGGGGGGGGaaGGGGGGGGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtGtGtGtGtaaaaaaaaaaaaaaGtGtGtGtGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGSGSGSGSGSGSGSGSGSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGGGGGGGGaaaaaaaaaaaaaaGGGGGGGGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGSGSGSGSGSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGSGSGSGSGSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGSGSGSGSGSGSGSGSGSGSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGSGSGSGSGSGSGSGSGSGSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGSGSGSGSGSGSGSGSGSGSGSGSGSGSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGSGSGSGSGSGSGSGSGSGSGSGSGSGSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGSGSGSGSGSGSGSGSGSGSGSGSGSGSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGSGSGSGSGSGSGSGSGSGSGSGSGSGSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGSGSGSGSGSGSGSGSGSGSGSGSGSGSGSGSGSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGSGSGSGSGSGSGSGSGSGSGSGSGSGSGSGSGSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGSGSGSGSGSGSGSGSGSGSGSGSGSGSGSGSGSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGSGSGSGSGSGSGSGSGSGSGSGSGSGSGSGSGSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGSGSGSGSGSGSGSGSGSGSGSGSGSGSGSGSGSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGSGSGSGSGSGSGSGSGSGSGSGSGSGSGSGSGSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGSGSGSGSGSaaGSGSGSGSGSaaGSGSGSGSGSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGSGSGSGSGSaaGSGSGSGSGSaaGSGSGSGSGSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGSGSGSGSGSaaaaaaaaaaaaaaGSGSGSGSGSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamEaEUEaEhEhEEEVEWEVEXEaEYEZFaFbFcFdEJFeFfEQFfFgEJamamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamECFhFiEhFjELFkEVEVEVEaFlFmFnFoEIFpEJFqFrFsFtFuEJamamamamamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamFvFwEhEhEhFxFyFzFAEVFBFCFDFEFFEIFpEJFGFHEQFIFJEJamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamEKFKEDEhFLFMFNEVEVEVFOFCFPFQFRFSFTFUFVFWFXFYFZEJamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamEaGaEaEhEhEIEVGbEVGcGdGeGfGgGhFxGiGjGkGlGmGnGoEJamamamamamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGpGpGpGpGpGpGpGpGpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaECEhEhGqGrGrGrGrGsGtGuEGGvGwEhEJGxGyGzGAGBEJamamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGCGCGCGCGCGCGCGCGCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGpGpGpGpGpGpGpGpGpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEKEhEhFiEhEhEhEhFxGDGEGFGGFxEhEJGBGBGHGIGJEJamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGCGCGCGCGCGCGCGCGCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGpGpGpGpGpGpGpGpGpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEaEaEaEaEaEaEaEuFxFxFxFxFxFxEhGKGLGKEJEJEJEJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGCGCGCGCGCGCGCGCGCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGpGpGpGpGpGpGpGpGpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamambLbLEgEhEgEhEhEhEhEhEhFiEhEhEhGMamamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGCGCGCGCGCGCGCGCGCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGpGpGpGpGpGpGpGpGpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamambLEaEbEaEaEaEaEaEaEaEaEaGNGNEaamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGCGCGCGCGCGCGCGCGCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGpGpGpGpGpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamamamamamamamamamamamEaEaEaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGCGCGCGCGCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGpGpGpGpGpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGCGCGCGCGCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGpGpGpGpGpGpGpGpGpGpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGCGCGCGCGCGCGCGCGCGCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGpGpGpGpGpGpGpGpGpGpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGCGCGCGCGCGCGCGCGCGCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGpGpGpGpGpGpGpGpGpGpGpGpGpGpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGCGCGCGCGCGCGCGCGCGCGCGCGCGCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGpGpGpGpGpGpGpGpGpGpGpGpGpGpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGCGCGCGCGCGCGCGCGCGCGCGCGCGCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGpGpGpGpGpGpGpGpGpGpGpGpGpGpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGCGCGCGCGCGCGCGCGCGCGCGCGCGCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGpGpGpGpGpGpGpGpGpGpGpGpGpGpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGCGCGCGCGCGCGCGCGCGCGCGCGCGCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGpGpGpGpGpGpGpGpGpGpGpGpGpGpGpGpGpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGpGpGpGpGpGpGpGpGpGpGpGpGpGpGpGpGpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGpGpGpGpGpGpGpGpGpGpGpGpGpGpGpGpGpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGpGpGpGpGpGpGpGpGpGpGpGpGpGpGpGpGpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGpGpGpGpGpGpGpGpGpGpGpGpGpGpGpGpGpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGOGOGOGOGOGOGOGOGOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGpGpGpGpGpGpGpGpGpGpGpGpGpGpGpGpGpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGOGOGOGOGOGOGOGOGOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGpGpGpGpGpaaGpGpGpGpGpaaGpGpGpGpGpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGOGOGOGOGOGOGOGOGOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGCGCGCGCGCaaGCGCGCGCGCaaGCGCGCGCGCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGpGpGpGpGpaaGpGpGpGpGpaaGpGpGpGpGpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGOGOGOGOGOGOGOGOGOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGCGCGCGCGCaaGCGCGCGCGCaaGCGCGCGCGCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGpGpGpGpGpaaaaaaaaaaaaaaGpGpGpGpGpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGOGOGOGOGOGOGOGOGOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGCGCGCGCGCaaaaaaaaaaaaaaGCGCGCGCGCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGOGOGOGOGOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGOGOGOGOGOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGOGOGOGOGOGOGOGOGOGOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGOGOGOGOGOGOGOGOGOGOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGOGOGOGOGOGOGOGOGOGOGOGOGOGOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGOGOGOGOGOGOGOGOGOGOGOGOGOGOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGOGOGOGOGOGOGOGOGOGOGOGOGOGOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGOGOGOGOGOGOGOGOGOGOGOGOGOGOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGOGOGOGOGOGOGOGOGOGOGOGOGOGOGOGOGOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGOGOGOGOGOGOGOGOGOGOGOGOGOGOGOGOGOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGOGOGOGOGOGOGOGOGOGOGOGOGOGOGOGOGOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGOGOGOGOGOGOGOGOGOGOGOGOGOGOGOGOGOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGOGOGOGOGOGOGOGOGOGOGOGOGOGOGOGOGOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGOGOGOGOGOGOGOGOGOGOGOGOGOGOGOGOGOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGOGOGOGOGOaaGOGOGOGOGOaaGOGOGOGOGOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGOGOGOGOGOaaGOGOGOGOGOaaGOGOGOGOGOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGOGOGOGOGOaaaaaaaaaaaaaaGOGOGOGOGOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/_maps/map_files/MiniStation/z4.dmm b/_maps/map_files/MiniStation/z4.dmm index ce7d5957d29..17ac402ad87 100644 --- a/_maps/map_files/MiniStation/z4.dmm +++ b/_maps/map_files/MiniStation/z4.dmm @@ -6,7 +6,7 @@ "af" = (/turf/simulated/floor/plating/airless,/area/AIsattele) "ag" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/AIsattele) "ah" = (/obj/structure/cable,/turf/simulated/floor/plating/airless,/area/AIsattele) -"ai" = (/obj/structure/rack,/obj/item/clothing/gloves/yellow,/turf/simulated/floor/plating/airless,/area/AIsattele) +"ai" = (/obj/structure/rack,/obj/item/clothing/gloves/color/yellow,/turf/simulated/floor/plating/airless,/area/AIsattele) "aj" = (/obj/structure/girder,/turf/simulated/floor/plating/airless,/area/AIsattele) "ak" = (/obj/item/weapon/stock_parts/cell,/turf/simulated/floor/plating/airless,/area/AIsattele) "al" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating/airless,/area/AIsattele) @@ -16,7 +16,7 @@ "ap" = (/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/turf/simulated/floor/plating/airless,/area/AIsattele) "aq" = (/obj/structure/closet/crate,/obj/item/device/aicard,/obj/item/device/multitool,/turf/simulated/floor/plating/airless,/area/AIsattele) "ar" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/space) -"as" = (/obj/machinery/power/solar/fake,/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/djstation/solars) +"as" = (/obj/machinery/power/solar/fake,/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/djstation/solars) "at" = (/turf/simulated/floor/plating/airless,/area/djstation/solars) "au" = (/turf/simulated/wall,/area/djstation) "av" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/djstation) @@ -86,43 +86,43 @@ "bH" = (/turf/simulated/floor/plating/airless,/area/space) "bI" = (/turf/simulated/wall/r_wall,/area/derelict/teleporter) "bJ" = (/turf/simulated/floor/plating/airless,/area/derelict/teleporter) -"bK" = (/turf/simulated/floor/airless,/area/derelict/teleporter) -"bL" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/teleporter) -"bM" = (/obj/machinery/light_construct/small{dir = 1},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/teleporter) -"bN" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/airless,/area/derelict/teleporter) -"bO" = (/obj/machinery/teleport/station,/turf/simulated/floor/airless,/area/derelict/teleporter) -"bP" = (/obj/machinery/teleport/hub,/turf/simulated/floor/airless,/area/derelict/teleporter) +"bK" = (/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter) +"bL" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/teleporter) +"bM" = (/obj/machinery/light_construct/small{dir = 1},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/teleporter) +"bN" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter) +"bO" = (/obj/machinery/teleport/station,/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter) +"bP" = (/obj/machinery/teleport/hub,/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter) "bQ" = (/obj/machinery/light_construct/small{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/teleporter) -"bR" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell{charge = 100; maxcharge = 15000},/turf/simulated/floor/airless,/area/derelict/teleporter) -"bS" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/derelict/teleporter) -"bT" = (/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/airless,/area/derelict/teleporter) +"bR" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell{charge = 100; maxcharge = 15000},/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter) +"bS" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/teleporter) +"bT" = (/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter) "bU" = (/turf/simulated/mineral,/area/space) "bV" = (/turf/simulated/floor/plating/asteroid/airless,/area/space) "bW" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/space) "bX" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/space) -"bY" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/floor/airless,/area/space) +"bY" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/floor/plasteel/airless,/area/space) "bZ" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/space) "ca" = (/turf/simulated/floor/plating/asteroid/airless,/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/space) -"cb" = (/obj/effect/landmark/corpse/clown,/turf/simulated/floor/airless,/area/space) -"cc" = (/turf/simulated/floor/airless,/area/space) -"cd" = (/obj/structure/closet/crate,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/turf/simulated/floor/airless,/area/space) -"ce" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/weapon/ore/bananium,/turf/simulated/floor/airless,/area/space) +"cb" = (/obj/effect/landmark/corpse/clown,/turf/simulated/floor/plasteel/airless,/area/space) +"cc" = (/turf/simulated/floor/plasteel/airless,/area/space) +"cd" = (/obj/structure/closet/crate,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/turf/simulated/floor/plasteel/airless,/area/space) +"ce" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/weapon/ore/bananium,/turf/simulated/floor/plasteel/airless,/area/space) "cf" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/space) "cg" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 8},/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 8},/turf/space,/area/space) "ch" = (/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/plating/asteroid/airless,/area/space) -"ci" = (/obj/item/weapon/ore/bananium,/turf/simulated/floor/airless,/area/space) +"ci" = (/obj/item/weapon/ore/bananium,/turf/simulated/floor/plasteel/airless,/area/space) "cj" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 8},/turf/space,/area/space) "ck" = (/obj/item/weapon/shard{icon_state = "medium"},/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plating/asteroid/airless,/area/space) -"cl" = (/obj/effect/landmark/corpse/clown{name = "Clown Pilot"},/turf/simulated/floor/airless,/area/space) -"cm" = (/obj/item/weapon/paper{info = "The call has gone out! Our ancestral home has been rediscovered! Not a small patch of land, but a true clown nation, a true Clown Planet! We're on our way home at last!"},/turf/simulated/floor/airless,/area/space) +"cl" = (/obj/effect/landmark/corpse/clown{name = "Clown Pilot"},/turf/simulated/floor/plasteel/airless,/area/space) +"cm" = (/obj/item/weapon/paper{info = "The call has gone out! Our ancestral home has been rediscovered! Not a small patch of land, but a true clown nation, a true Clown Planet! We're on our way home at last!"},/turf/simulated/floor/plasteel/airless,/area/space) "cn" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/space) -"co" = (/obj/item/weapon/shard,/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/airless,/area/space) -"cp" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/airless,/area/space) +"co" = (/obj/item/weapon/shard,/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel/airless,/area/space) +"cp" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plasteel/airless,/area/space) "cq" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/space) -"cr" = (/turf/simulated/floor/airless,/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/space) -"cs" = (/obj/item/weapon/pickaxe,/turf/simulated/floor/airless,/area/space) -"ct" = (/obj/structure/closet/crate,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/turf/simulated/floor/airless,/area/space) -"cu" = (/obj/structure/closet/crate,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/clothing/shoes/clown_shoes{desc = "These shoes appear var-edited!."; name = "uhangi's shoes"; slowdown = -1},/turf/simulated/floor/airless,/area/space) +"cr" = (/turf/simulated/floor/plasteel/airless,/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/space) +"cs" = (/obj/item/weapon/pickaxe,/turf/simulated/floor/plasteel/airless,/area/space) +"ct" = (/obj/structure/closet/crate,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/turf/simulated/floor/plasteel/airless,/area/space) +"cu" = (/obj/structure/closet/crate,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/clothing/shoes/clown_shoes{desc = "These shoes appear var-edited!."; name = "uhangi's shoes"; slowdown = -1},/turf/simulated/floor/plasteel/airless,/area/space) "cv" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 8},/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 8},/turf/space,/area/space) "cw" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/space) "cx" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/space) diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm index b87ff8b21a2..ffb167090cd 100644 --- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm +++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm @@ -140,9 +140,9 @@ "acJ" = (/obj/machinery/deployable/barrier,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory) "acK" = (/obj/machinery/deployable/barrier,/obj/machinery/alarm{pixel_y = 23},/obj/machinery/camera/motion{c_tag = "Armory Motion Sensor"; dir = 2; name = "motion-sensitive security camera"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory) "acL" = (/obj/machinery/suit_storage_unit/security,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory) -"acM" = (/obj/structure/rack,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/gun/energy/ionrifle,/obj/item/clothing/suit/armor/laserproof,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory) +"acM" = (/obj/structure/rack,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/gun/energy/gun/advtaser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/gun/advtaser,/obj/item/weapon/gun/energy/gun/advtaser{pixel_x = 3; pixel_y = -3},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory) "acN" = (/obj/structure/rack,/obj/item/clothing/suit/armor/riot,/obj/item/clothing/suit/armor/riot,/obj/item/clothing/suit/armor/riot,/obj/item/clothing/head/helmet/riot,/obj/item/clothing/head/helmet/riot,/obj/item/clothing/head/helmet/riot,/obj/structure/window/reinforced{dir = 1},/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory) -"acO" = (/obj/structure/rack,/obj/item/weapon/shield/riot{pixel_x = -3; pixel_y = 3},/obj/item/weapon/shield/riot,/obj/item/weapon/shield/riot{pixel_x = 3; pixel_y = -3},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory) +"acO" = (/obj/structure/rack,/obj/item/weapon/gun/energy/ionrifle,/obj/item/clothing/suit/armor/laserproof,/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/ai_monitored/security/armory) "acP" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/closet/ammunitionlocker,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory) "acQ" = (/obj/structure/closet/l3closet/security,/obj/machinery/camera{c_tag = "Brig Equipment Room"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/main) "acR" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/fancy/carpet,/area/security/hos) @@ -150,7 +150,7 @@ "acT" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/fancy/carpet,/area/security/hos) "acU" = (/obj/item/weapon/storage/secure/safe/HoS{pixel_x = 35},/obj/structure/table/wood,/obj/item/device/taperecorder{pixel_y = 0},/obj/item/device/radio/off,/turf/simulated/floor/fancy/carpet,/area/security/hos) "acV" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"acW" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/auxstarboard) +"acW" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/auxstarboard) "acX" = (/obj/structure/cable,/turf/simulated/floor/plating/airless,/area/solar/auxstarboard) "acY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating/airless,/area/solar/auxport) "acZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/security/transfer) @@ -196,8 +196,8 @@ "adN" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/power/apc{dir = 4; name = "Prison Wing APC"; pixel_x = 24; pixel_y = 0; step_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 5},/area/security/prison) "adO" = (/obj/structure/closet/secure_closet{name = "contraband locker"; req_access_txt = "3"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory) "adP" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/ai_monitored/security/armory) -"adQ" = (/obj/structure/rack,/obj/item/weapon/storage/lockbox/loyalty,/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/ai_monitored/security/armory) -"adR" = (/obj/structure/rack,/obj/item/weapon/storage/box/chemimp{pixel_x = 4; pixel_y = 3},/obj/item/weapon/storage/box/trackimp,/obj/item/weapon/storage/box/teargas,/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/ai_monitored/security/armory) +"adQ" = (/obj/structure/rack,/obj/item/weapon/storage/box/chemimp{pixel_x = 4; pixel_y = 3},/obj/item/weapon/storage/box/trackimp,/obj/item/weapon/storage/lockbox/loyalty,/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/ai_monitored/security/armory) +"adR" = (/obj/structure/rack,/obj/item/weapon/shield/riot{pixel_x = -3; pixel_y = 3},/obj/item/weapon/shield/riot,/obj/item/weapon/shield/riot{pixel_x = 3; pixel_y = -3},/obj/structure/window/reinforced{dir = 1},/obj/item/weapon/storage/box/teargas,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory) "adS" = (/obj/structure/rack,/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/box/flashbangs{pixel_x = -2; pixel_y = -2},/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/ai_monitored/security/armory) "adT" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/riot{pixel_x = 3; pixel_y = 3},/obj/item/weapon/gun/projectile/shotgun/riot,/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/ai_monitored/security/armory) "adU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor/plasteel,/area/ai_monitored/security/armory) @@ -214,8 +214,8 @@ "aef" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/shuttle/escape_pod3/station) "aeg" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/escape_pod3/station) "aeh" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/escape_pod3/station) -"aei" = (/obj/structure/cable,/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/auxstarboard) -"aej" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/auxport) +"aei" = (/obj/structure/cable,/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/auxstarboard) +"aej" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/auxport) "aek" = (/obj/structure/cable,/turf/simulated/floor/plating/airless,/area/solar/auxport) "ael" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/security/prison) "aem" = (/obj/machinery/light,/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 10},/area/security/prison) @@ -273,7 +273,7 @@ "afm" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 5},/area/security/prison) "afn" = (/obj/machinery/status_display{density = 0; layer = 3; pixel_x = -32; pixel_y = 0},/obj/structure/window/reinforced,/obj/machinery/flasher/portable,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory) "afo" = (/obj/machinery/flasher/portable,/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory) -"afp" = (/obj/structure/rack,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/item/clothing/suit/armor/bulletproof,/obj/item/clothing/head/helmet/bulletproof,/obj/item/clothing/suit/armor/bulletproof,/obj/item/clothing/head/helmet/bulletproof,/obj/item/clothing/suit/armor/bulletproof,/obj/item/clothing/head/helmet/bulletproof,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory) +"afp" = (/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_x = -30; pixel_y = 0},/obj/machinery/camera{c_tag = "Brig Control Room"; dir = 4},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/rack,/obj/item/clothing/mask/gas/sechailer{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/gas/sechailer,/obj/item/clothing/mask/gas/sechailer{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/gas/sechailer{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/gas/sechailer{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/gas/sechailer{pixel_x = -3; pixel_y = -3},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/warden) "afq" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/laser,/obj/item/weapon/gun/energy/laser{pixel_x = 3; pixel_y = -3},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory) "afr" = (/obj/structure/rack,/obj/item/weapon/gun/energy/gun{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun{pixel_x = 3; pixel_y = -3},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory) "afs" = (/obj/machinery/door/window/southleft{name = "Armory"; req_access_txt = "3"},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/ai_monitored/security/armory) @@ -294,13 +294,13 @@ "afH" = (/obj/structure/closet/emcloset,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "afI" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/shuttle/escape_pod3/station) "afJ" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/shuttle/escape_pod3/station) -"afK" = (/obj/structure/cable,/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/auxport) +"afK" = (/obj/structure/cable,/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/auxport) "afL" = (/obj/machinery/door/airlock/glass_security{name = "Insanity Ward"; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/prison) "afM" = (/turf/simulated/wall,/area/security/brig) "afN" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/machinery/door/poddoor/preopen{id = "Prison Gate"; name = "prison blast door"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/security/brig) "afO" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/preopen{id = "Prison Gate"; name = "prison blast door"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/security/brig) "afP" = (/turf/simulated/wall/r_wall,/area/security/warden) -"afQ" = (/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_x = -30; pixel_y = 0},/obj/machinery/camera{c_tag = "Brig Control Room"; dir = 4},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/rack,/obj/item/clothing/mask/gas/sechailer{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/gas/sechailer,/obj/item/clothing/mask/gas/sechailer{pixel_x = -3; pixel_y = -3},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/warden) +"afQ" = (/obj/structure/rack,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/item/clothing/suit/armor/bulletproof,/obj/item/clothing/head/helmet,/obj/item/clothing/suit/armor/bulletproof,/obj/item/clothing/head/helmet,/obj/item/clothing/suit/armor/bulletproof,/obj/item/clothing/head/helmet,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory) "afR" = (/obj/machinery/computer/prisoner,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/warden) "afS" = (/obj/machinery/computer/security,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/warden) "afT" = (/obj/machinery/computer/secure_data,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/warden) @@ -746,7 +746,7 @@ "aor" = (/obj/structure/closet/wardrobe/mixed,/obj/item/clothing/shoes/jackboots,/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aos" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aot" = (/turf/simulated/floor/plating/airless{dir = 4; icon_state = "warnplate"},/area/space) -"aou" = (/turf/simulated/floor/plating/airless{dir = 8; icon_state = "warnplate"},/area/space) +"aou" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 32},/turf/space,/area/space) "aov" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/fpmaint2) "aow" = (/obj/machinery/atmospherics/unary/portables_connector/visible,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/fpmaint2) "aox" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/fpmaint2) @@ -974,8 +974,8 @@ "asL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/maintenance/fpmaint2) "asM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "asN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/wall,/area/maintenance/fpmaint2) -"asO" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/space) -"asP" = (/obj/item/weapon/paper/crumpled,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/space) +"asO" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/space) +"asP" = (/obj/item/weapon/paper/crumpled,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/space) "asQ" = (/obj/machinery/atmospherics/binary/valve,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "asR" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "asS" = (/obj/structure/grille,/obj/structure/window/fulltile{health = 35},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) @@ -1078,14 +1078,14 @@ "auL" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor/plating,/area/maintenance/electrical) "auM" = (/obj/machinery/power/apc{dir = 1; name = "Electrical Maintenance APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/maintenance/electrical) "auN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/electrical) -"auO" = (/obj/structure/table,/obj/item/clothing/gloves/fyellow,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/item/device/multitool,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/electrical) +"auO" = (/obj/structure/table,/obj/item/clothing/gloves/color/fyellow,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/item/device/multitool,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/electrical) "auP" = (/obj/machinery/door/airlock/external{name = "Escape Pod One"},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "auQ" = (/obj/structure/sign/pods,/turf/simulated/wall,/area/hallway/secondary/entry) "auR" = (/obj/machinery/door/airlock/external{name = "Escape Pod Two"},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "auS" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "auT" = (/obj/item/weapon/wrench,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "auU" = (/obj/structure/optable{name = "Robotics Operating Table"},/obj/item/weapon/surgical_drapes,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) -"auV" = (/turf/simulated/floor/airless{icon_state = "damaged5"},/area/space) +"auV" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/space) "auW" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "auX" = (/obj/machinery/light/small{dir = 4},/obj/structure/stool,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "auY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) @@ -1382,8 +1382,8 @@ "aAD" = (/obj/item/clothing/under/rank/mailman,/obj/item/clothing/head/mailman,/obj/structure/closet,/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aAE" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aAF" = (/obj/structure/stool{pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/fsmaint2) -"aAG" = (/turf/simulated/floor/plating/airless{dir = 2; icon_state = "warnplate"},/area/hallway/secondary/entry) -"aAH" = (/turf/space,/area/hallway/secondary/entry) +"aAG" = (/obj/machinery/camera/emp_proof{c_tag = "Singularity North-West"; dir = 2; network = list("Singularity")},/turf/simulated/floor/plating/airless,/area/engine/engineering) +"aAH" = (/obj/machinery/camera/emp_proof{c_tag = "Singularity North East"; dir = 2; network = list("Singularity")},/turf/simulated/floor/plating/airless,/area/engine/engineering) "aAI" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry) "aAJ" = (/turf/simulated/wall,/area/security/checkpoint2) "aAK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/security/checkpoint2) @@ -1443,8 +1443,8 @@ "aBM" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aBN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/chapel/main) "aBO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) -"aBP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) -"aBQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) +"aBP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) +"aBQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) "aBR" = (/turf/simulated/wall,/area/chapel/main) "aBS" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/shuttle/arrival/station) "aBT" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/arrival/station) @@ -1678,7 +1678,7 @@ "aGn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) "aGo" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (EAST)"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) "aGp" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "chapel"},/area/chapel/main) -"aGq" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/turf/simulated/floor/plasteel{dir = 4; icon_state = "chapel"},/area/chapel/main) +"aGq" = (/obj/structure/table/glass,/turf/simulated/floor/plasteel{dir = 4; icon_state = "chapel"},/area/chapel/main) "aGr" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/chapel/main) "aGs" = (/turf/space,/area/shuttle/escape/station) "aGt" = (/obj/effect/landmark{name = "Marauder Entry"},/turf/space,/area/space) @@ -1746,7 +1746,7 @@ "aHD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office) "aHE" = (/obj/structure/closet/coffin,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) "aHF" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "chapel"},/area/chapel/main) -"aHG" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/food/snacks/grown/poppy,/turf/simulated/floor/plasteel{icon_state = "chapel"},/area/chapel/main) +"aHG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/start{name = "Cook"},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/kitchen) "aHH" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) "aHI" = (/turf/simulated/shuttle/wall{icon_state = "swall2"; dir = 2},/area/shuttle/arrival/station) "aHJ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry) @@ -1764,7 +1764,7 @@ "aHV" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/device/analyzer,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/storage/primary) "aHW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/storage/primary) "aHX" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plasteel,/area/storage/primary) -"aHY" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/gloves/fyellow,/turf/simulated/floor/plasteel,/area/storage/primary) +"aHY" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/gloves/color/fyellow,/turf/simulated/floor/plasteel,/area/storage/primary) "aHZ" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/turf/simulated/floor/plasteel,/area/storage/primary) "aIa" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plasteel,/area/storage/primary) "aIb" = (/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/storage/primary) @@ -1974,7 +1974,7 @@ "aLX" = (/obj/machinery/camera{c_tag = "Chapel North"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) "aLY" = (/turf/simulated/wall,/area/hallway/secondary/exit) "aLZ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/hallway/secondary/exit) -"aMa" = (/turf/simulated/floor/plating/airless{dir = 1; icon_state = "warnplate"},/area/hallway/secondary/entry) +"aMa" = (/obj/effect/landmark/start{name = "Cook"},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/kitchen) "aMb" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel,/area/hallway/secondary/entry) "aMc" = (/obj/structure/table/wood,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/hallway/secondary/entry) "aMd" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/chips,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/simulated/floor/fancy/carpet,/area/hallway/secondary/entry) @@ -2276,7 +2276,6 @@ "aRN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "aRO" = (/obj/machinery/door/airlock/glass{name = "Kitchen"; req_access_txt = "28"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/kitchen) "aRP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"aRQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/kitchen) "aRR" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/kitchen) "aRS" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/kitchen) "aRT" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/kitchen) @@ -2473,7 +2472,7 @@ "aVC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/port) "aVD" = (/obj/machinery/power/apc{dir = 1; name = "Port Emergency Storage APC"; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/storage/emergency2) "aVE" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/port) -"aVF" = (/obj/item/clothing/gloves/rainbow,/obj/item/clothing/shoes/sneakers/rainbow,/obj/item/clothing/under/rainbow,/obj/item/clothing/head/soft/rainbow,/turf/simulated/floor/plating,/area/maintenance/port) +"aVF" = (/obj/item/clothing/gloves/color/rainbow,/obj/item/clothing/shoes/sneakers/rainbow,/obj/item/clothing/under/rainbow,/obj/item/clothing/head/soft/rainbow,/turf/simulated/floor/plating,/area/maintenance/port) "aVG" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plasteel,/area/storage/tools) "aVH" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plasteel,/area/storage/tools) "aVI" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/machinery/light,/obj/item/device/multitool,/turf/simulated/floor/plasteel,/area/storage/tools) @@ -2514,7 +2513,6 @@ "aWr" = (/obj/structure/table/reinforced,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "aWs" = (/obj/machinery/door/window/southright{name = "Bar Door"; req_access_txt = "0"; req_one_access_txt = "25;28"},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "aWt" = (/obj/structure/table/reinforced,/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 32},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) -"aWu" = (/obj/effect/landmark/start{name = "Chef"},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/kitchen) "aWv" = (/obj/structure/table,/obj/machinery/reagentgrinder,/obj/machinery/requests_console{department = "Kitchen"; departmentType = 2; pixel_x = 30; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/kitchen) "aWw" = (/turf/simulated/floor/plasteel{icon_state = "green"; dir = 4},/area/hydroponics) "aWx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 16},/turf/simulated/floor/plasteel,/area/hallway/primary/starboard) @@ -3557,7 +3555,7 @@ "bqu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/assembly/robotics) "bqv" = (/obj/structure/table,/obj/item/weapon/circular_saw,/obj/item/weapon/scalpel{pixel_y = 12},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitecorner"},/area/assembly/robotics) "bqw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/assembly/robotics) -"bqx" = (/obj/structure/table,/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/obj/item/clothing/gloves/latex,/obj/item/weapon/surgical_drapes,/obj/item/weapon/razor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitecorner"},/area/assembly/robotics) +"bqx" = (/obj/structure/table,/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/obj/item/clothing/gloves/color/latex,/obj/item/weapon/surgical_drapes,/obj/item/weapon/razor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitecorner"},/area/assembly/robotics) "bqy" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (EAST)"; dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"},/area/assembly/robotics) "bqz" = (/obj/machinery/door_control{dir = 2; id = "robotics2"; name = "Shutters Control Button"; pixel_x = 24; pixel_y = -24; req_access_txt = "29"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/assembly/robotics) "bqA" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Robotics Desk"; req_access_txt = "29"},/obj/machinery/door/poddoor/shutters/preopen{id = "robotics2"; name = "robotics lab shutters"},/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/simulated/floor/plating,/area/assembly/robotics) @@ -4143,7 +4141,7 @@ "bBI" = (/obj/structure/table,/obj/item/weapon/scalpel{pixel_y = 12},/obj/item/weapon/circular_saw,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/sleeper) "bBJ" = (/obj/structure/table,/obj/item/weapon/retractor,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/medical/sleeper) "bBK" = (/obj/structure/table,/obj/item/weapon/cautery{pixel_x = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/medical/sleeper) -"bBL" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/gun/syringe,/obj/item/weapon/reagent_containers/dropper,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/sleeper) +"bBL" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/gun/syringe,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/soap/nanotrasen,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/sleeper) "bBM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitebluecorner"},/area/medical/sleeper) "bBN" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/medical/sleeper) "bBO" = (/obj/structure/closet/l3closet/general,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/sleeper) @@ -4172,7 +4170,6 @@ "bCl" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bCm" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating/airless,/area/space) "bCn" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/space) -"bCo" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 32},/turf/simulated/floor/plating/airless{dir = 2; icon_state = "warnplate"},/area/space) "bCp" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen,/obj/machinery/requests_console{department = "Mining"; departmentType = 0; pixel_x = -30; pixel_y = 0},/obj/machinery/light{dir = 8},/turf/simulated/floor/plasteel,/area/quartermaster/miningdock) "bCq" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/obj/effect/landmark/start{name = "Shaft Miner"},/turf/simulated/floor/plasteel,/area/quartermaster/miningdock) "bCr" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/quartermaster/miningdock) @@ -4206,7 +4203,7 @@ "bCT" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "Janitor"},/obj/structure/plasticflaps{opacity = 1},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/janitor) "bCU" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bCV" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bCW" = (/obj/structure/disposalpipe/segment,/obj/structure/table,/obj/item/clothing/gloves/latex,/obj/item/clothing/mask/surgical,/obj/item/clothing/suit/apron/surgical,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitehall"},/area/medical/sleeper) +"bCW" = (/obj/structure/disposalpipe/segment,/obj/structure/table,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/item/clothing/suit/apron/surgical,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitehall"},/area/medical/sleeper) "bCX" = (/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/sleeper) "bCY" = (/obj/effect/landmark/start{name = "Medical Doctor"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/sleeper) "bCZ" = (/obj/structure/table,/obj/item/weapon/surgical_drapes,/obj/item/weapon/razor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitehall"},/area/medical/sleeper) @@ -4610,7 +4607,7 @@ "bKH" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/transmitter,/obj/item/weapon/stock_parts/subspace/transmitter,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/turf/simulated/floor/plating,/area/storage/tech) "bKI" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/machinery/light/small,/turf/simulated/floor/plating,/area/storage/tech) "bKJ" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/turf/simulated/floor/plating,/area/storage/tech) -"bKK" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/item/clothing/gloves/yellow,/obj/item/device/t_scanner,/obj/item/device/multitool,/turf/simulated/floor/plating,/area/storage/tech) +"bKK" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/item/clothing/gloves/color/yellow,/obj/item/device/t_scanner,/obj/item/device/multitool,/turf/simulated/floor/plating,/area/storage/tech) "bKL" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/item/device/multitool,/obj/item/clothing/glasses/meson,/obj/machinery/light/small,/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plating,/area/storage/tech) "bKM" = (/obj/machinery/requests_console{department = "Tech storage"; pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/storage/tech) "bKN" = (/obj/machinery/vending/assist,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/storage/tech) @@ -5129,7 +5126,7 @@ "bUG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 4},/turf/simulated/floor/plasteel,/area/atmos) "bUH" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plasteel,/area/atmos) "bUI" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plasteel,/area/atmos) -"bUJ" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/clothing/gloves/black,/obj/item/clothing/gloves/black,/obj/item/clothing/gloves/black,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/simulated/floor/plasteel,/area/atmos) +"bUJ" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/clothing/gloves/color/black,/obj/item/clothing/gloves/color/black,/obj/item/clothing/gloves/color/black,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/simulated/floor/plasteel,/area/atmos) "bUK" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/turf/simulated/floor/plasteel,/area/atmos) "bUL" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/obj/machinery/meter,/turf/simulated/floor/plasteel,/area/atmos) "bUM" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/turf/simulated/floor/plasteel,/area/atmos) @@ -5137,7 +5134,7 @@ "bUO" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/simulated/floor/plasteel{icon_state = "escape"; dir = 6},/area/atmos) "bUP" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "n2o_in"; pixel_y = 1},/turf/simulated/floor/engine/n20,/area/atmos) "bUQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bUR" = (/obj/structure/table/glass,/obj/item/clothing/gloves/latex,/obj/machinery/requests_console{department = "Virology"; name = "Virology Requests Console"; pixel_x = -32},/obj/item/device/healthanalyzer,/obj/item/clothing/glasses/hud/health,/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitegreen"},/area/medical/virology) +"bUR" = (/obj/structure/table/glass,/obj/item/clothing/gloves/color/latex,/obj/machinery/requests_console{department = "Virology"; name = "Virology Requests Console"; pixel_x = -32},/obj/item/device/healthanalyzer,/obj/item/clothing/glasses/hud/health,/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitegreen"},/area/medical/virology) "bUS" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/device/radio/headset/headset_med,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitegreen"},/area/medical/virology) "bUT" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/fulltile,/turf/simulated/floor/plating,/area/medical/virology) "bUU" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/virology) @@ -5426,9 +5423,9 @@ "car" = (/obj/structure/closet/crate,/obj/item/target,/obj/item/target,/obj/item/target,/turf/simulated/floor/plasteel,/area/toxins/misc_lab) "cas" = (/obj/structure/closet/crate,/obj/item/target/alien,/obj/item/target/alien,/obj/item/target/alien,/turf/simulated/floor/plasteel,/area/toxins/misc_lab) "cat" = (/obj/structure/closet/crate,/obj/item/target/syndicate,/obj/item/target/syndicate,/obj/item/target/syndicate,/turf/simulated/floor/plasteel,/area/toxins/misc_lab) -"cau" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/solar{id = "portsolar"; name = "Port Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/port) +"cau" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/solar{id = "portsolar"; name = "Port Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/port) "cav" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating/airless,/area/solar/port) -"caw" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar{id = "portsolar"; name = "Port Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/port) +"caw" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar{id = "portsolar"; name = "Port Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/port) "cax" = (/obj/structure/table,/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/floor/plating,/area/maintenance/aft) "cay" = (/obj/structure/stool,/turf/simulated/floor/plating,/area/maintenance/aft) "caz" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/plating,/area/maintenance/aft) @@ -5875,7 +5872,7 @@ "ciY" = (/obj/machinery/power/emitter,/turf/simulated/floor/plating,/area/engine/engineering) "ciZ" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/engine/engineering) "cja" = (/obj/structure/table,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/module/power_control,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/plasteel,/area/engine/engineering) -"cjb" = (/obj/structure/table,/obj/item/weapon/book/manual/engineering_singularity_safety,/obj/item/clothing/gloves/yellow,/turf/simulated/floor/plasteel,/area/engine/engineering) +"cjb" = (/obj/structure/table,/obj/item/weapon/book/manual/engineering_singularity_safety,/obj/item/clothing/gloves/color/yellow,/turf/simulated/floor/plasteel,/area/engine/engineering) "cjc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/engine/engineering) "cjd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/engine/engineering) "cje" = (/obj/structure/closet/crate{name = "solar pack crate"},/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/weapon/circuitboard/solar_control,/obj/item/weapon/tracker_electronics,/obj/item/weapon/paper/solar,/turf/simulated/floor/plasteel,/area/engine/engineering) @@ -6058,14 +6055,14 @@ "cmz" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/engineering_hacking{pixel_x = 3; pixel_y = 3},/obj/item/weapon/book/manual/wiki/engineering_construction,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/engine/engineering) "cmA" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/engine/engineering) "cmB" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor/plasteel,/area/engine/engineering) -"cmC" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/gloves/black,/obj/item/weapon/extinguisher{pixel_x = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/engine/engineering) +"cmC" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/gloves/color/black,/obj/item/weapon/extinguisher{pixel_x = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/engine/engineering) "cmD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/engine/engineering) "cmE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/engine/engineering) "cmF" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/engine/engineering) "cmG" = (/obj/machinery/camera{c_tag = "Engineering Center"; dir = 2; pixel_x = 23},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/engine/engineering) "cmH" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 5},/area/engine/engineering) "cmI" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/wall/r_wall,/area/engine/engineering) -"cmJ" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/gloves/yellow,/obj/item/weapon/storage/belt/utility,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/engine/engineering) +"cmJ" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/gloves/color/yellow,/obj/item/weapon/storage/belt/utility,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/engine/engineering) "cmK" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/engineering_guide,/obj/item/weapon/book/manual/engineering_particle_accelerator{pixel_y = 6},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/engine/engineering) "cmL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor/plasteel,/area/engine/engineering) "cmM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/engine/engineering) @@ -6089,7 +6086,7 @@ "cne" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plasteel,/area/engine/engineering) "cnf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/engine/engineering) "cng" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/turf/simulated/floor/plasteel,/area/engine/engineering) -"cnh" = (/obj/structure/table,/obj/item/clothing/gloves/yellow,/obj/item/weapon/storage/toolbox/electrical{pixel_y = 5},/turf/simulated/floor/plasteel,/area/engine/engineering) +"cnh" = (/obj/structure/table,/obj/item/clothing/gloves/color/yellow,/obj/item/weapon/storage/toolbox/electrical{pixel_y = 5},/turf/simulated/floor/plasteel,/area/engine/engineering) "cni" = (/obj/effect/landmark/start{name = "Station Engineer"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/engine/engineering) "cnj" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/engine/engineering) "cnk" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/engine/engineering) @@ -6180,7 +6177,7 @@ "coR" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel,/area/engine/engineering) "coS" = (/obj/machinery/camera{c_tag = "Engineering MiniSat Access"; dir = 4; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel,/area/engine/engineering) "coT" = (/obj/structure/transit_tube{tag = "icon-Block"; icon_state = "Block"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/engine/engineering) -"coU" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "starboardsolar"; name = "Starboard Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/starboard) +"coU" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "starboardsolar"; name = "Starboard Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/starboard) "coV" = (/turf/simulated/floor/plating/airless,/area/solar/starboard) "coW" = (/obj/structure/table,/obj/item/device/taperecorder{pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/aft) "coX" = (/obj/structure/table,/obj/item/weapon/storage/box/matches,/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/floor/plating,/area/maintenance/aft) @@ -6206,8 +6203,6 @@ "cpr" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating/airless,/area/solar/starboard) "cps" = (/obj/structure/grille,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating/airless,/area/engine/engineering) "cpt" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating/airless,/area/engine/engineering) -"cpu" = (/obj/machinery/camera/emp_proof{c_tag = "Singularity North-West"; dir = 2; network = list("Singularity")},/turf/simulated/floor/plating/airless,/area/space) -"cpv" = (/obj/machinery/camera/emp_proof{c_tag = "Singularity North East"; dir = 2; network = list("Singularity")},/turf/simulated/floor/plating/airless,/area/space) "cpw" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless,/area/engine/engineering) "cpx" = (/obj/structure/grille,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating/airless,/area/engine/engineering) "cpy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/wall/r_wall,/area/engine/engineering) @@ -6215,7 +6210,7 @@ "cpA" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel,/area/engine/engineering) "cpB" = (/obj/machinery/light,/turf/simulated/floor/plasteel,/area/engine/engineering) "cpC" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/engine/engineering) -"cpD" = (/obj/structure/cable,/obj/machinery/power/solar{id = "starboardsolar"; name = "Starboard Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/starboard) +"cpD" = (/obj/structure/cable,/obj/machinery/power/solar{id = "starboardsolar"; name = "Starboard Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/starboard) "cpE" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/engine/engineering) "cpF" = (/turf/simulated/floor/plating/airless,/area/engine/engineering) "cpG" = (/obj/item/weapon/wrench,/turf/simulated/floor/plating/airless,/area/engine/engineering) @@ -6303,7 +6298,6 @@ "crk" = (/obj/machinery/power/apc{dir = 1; name = "MiniSat External Power APC"; pixel_y = 29},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) "crl" = (/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/obj/machinery/camera{c_tag = "MiniSat Entrance"; dir = 2; network = list("MiniSat"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) "crm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) -"crn" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/turf/simulated/wall/r_wall,/area/space) "cro" = (/obj/machinery/door/airlock/external{name = "MiniSat External Access"; req_access = null; req_access_txt = "65;13"},/turf/simulated/floor/plating,/area/aisat) "crp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (WEST)"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) "crq" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) @@ -6547,17 +6541,17 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHabqabrabqaaHabsaaiabtaasaasabuabvabwaasabxabyabzaasabAabBaaiaafaaaaaaaaaaaaaaaaaaaaaabmabCabDabEabFabnabGabHabIabJabKabnaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafabLaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaabeabeabdabeabeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHabMabNabOabPabQaaiabRabSabRabRabRabTabRabRabRabUabRabRabVaaiaafaaaaafaafaafaafaaaaafablabWabDabXabCabnabYabZacaacaacbabnaaaaafaahaafaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdabdabdabdabdaaaaaaaaaaccaaaaaaaaaabdabdabeabeabeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaafaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacdaceabgacfaaHacgaaiachaasaciabRacjackaclabRacmacnacoabRacpaaiacqacqacqacqacqacqacqacqacqacrabDacsabCaboactacuacvacaacwabnaaaaafacxacyacxaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaafaafaafaaaaaaaccaafaafaaaaafaafaaaaaaabeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaczaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaafaaHacAacBacCaaHacDaaiacEaasacFabRacGackacFabRacHacnacFabRacIaaiacJacKacLacLafpacNacOacPacqacQabDacsabCaboacRacSacTacaacUabnaafaafacxacVacxaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafacWacWacWacWacWaafacXaafacWacWacWacWacWaafabdaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaczaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaafaaHacAacBacCaaHacDaaiacEaasacFabRacGackacFabRacHacnacFabRacIaaiacJacKacLacLafQacNadRacPacqacQabDacsabCaboacRacSacTacaacUabnaafaafacxacVacxaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafacWacWacWacWacWaafacXaafacWacWacWacWacWaafabdaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeabeabeabdabdaaaaaaaaaacYaaaaaaaaaabdabdabeabeabeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHaaHacdacZaaHadaaaiadbadcaddabRadbadeaddabRadbadfaddabRabRaaiacJadgadhadhadhadhadiadjacqadkabDacsabCabnadladmadnadoadpabnabmabladqacyacxacxadraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafadsadtadtadtadtaduadvadwadxadxadxadxadyaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaaaaafaafaaaaaaaaaacYaafaafaaaaafaafaaaaaaabeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadzadAadBadCadDadEadFadGadDadHadIadJadDadKadLadMadNaaiadOadPadQadRadSadTadUadVadWabDadXadYablabnadZabnaeaabnaebabnaecaedablaeeaefaegaegaehaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaeiaeiaeiaeiaeiaafadvaafaeiaeiaeiaeiaeiaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaaaaafaafaaaaaaaaaacYaafaafaaaaafaafaaaaaaabeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadzadAadBadCadDadEadFadGadDadHadIadJadDadKadLadMadNaaiadOadPacOadQadSadTadUadVadWabDadXadYablabnadZabnaeaabnaebabnaecaedablaeeaefaegaegaehaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaeiaeiaeiaeiaeiaafadvaafaeiaeiaeiaeiaeiaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaejaejaejaejaejaafaekaafaejaejaejaejaejaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaelaemaenaeoaepaeqaeoaeraepaeoaeoaeoaepaesaetaeuaevaaiaewaexaeyaezaeAaeBaeCaeDacqaeEaeFaeGablaeHaeIaeJaeKaeLaeMaeJaeNaeOaePaeQaeRaeSaeTaeUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaaaaaaaafaaaaaaaafadvaaaaaaaaaaafaaaaaaaaaabeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaeVaeWaeWaeWaeWaeXaeYaeZafaafaafaafaafbaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcaaiaaiaaiaaiafdafeaffafgafhafiafjafkafkafkabRaflafmaaiafnafoacMafqafrafsaftafuacqafvafwafxablafyafzafAafBafCafDafEafFafGablafHafIaegaegafJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafacWacWacWacWacWaafadvaafacWacWacWacWacWaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafafKafKafKafKafKaafaeYaafafKafKafKafKafKaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaiaaiaddafLadbafMafMafMafMafMafMafMafNafOafPafQafRafSafTafUafVafWafXafPafYafZagaagbagcagdafAageafCagfaggaghabladqacxacxacxadraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafadsadtadtadtadtaduadvadwadxadxadxadxadyaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafafKafKafKafKafKaafaeYaafafKafKafKafKafKaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaiaaiaddafLadbafMafMafMafMafMafMafMafNafOafPafpafRafSafTafUafVafWafXafPafYafZagaagbagcagdafAageafCagfaggaghabladqacxacxacxadraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafadsadtadtadtadtaduadvadwadxadxadxadxadyaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaaaaaaaafaaaaaaaafaeYaaaaaaaaaaafaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaafaaaaaaaaiagiagjagkafMaglagmagnagoagpafMagqagragsagtaguagvagwafVagxafWagyagzagAagBagCagDagEagFagGagHagIagJagKagLagMagNagOagPacxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaeiaeiaeiaeiaeiaafadvaafaeiaeiaeiaeiaeiaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaejaejaejaejaejaafaeYaafaejaejaejaejaejaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaafaafaafaafaafaafaafaaiagQagRagSafMagTagUagVagWagXafMagqagYagZahaahbahcahdaheaheahfahgahhahiahjahkahlahmahnahmahoahpahpahqahrablablaeQahsacxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaaaaaaaafaaaaaaaaaadvaaaaaaaaaaafaaaaaaaaaabeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaeVaeWaeWaeWaeWaeXaeYaeZafaafaafaafaafbaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaiahtagRahtafMagTagUahuagWahvafMahwahxahyahzahAahBahCahDahEahFahGahHahIahJahKahLahMahNahOahPahQahRahSahTahUahVahWahXahYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafacWacWacWacWacWaafadvaafacWacWacWacWacWaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafafKafKafKafKafKaafaeYaafafKafKafKafKafKaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaaaaafaaaaaaaaiahZaiaaibafMaicaidaidaieagXafMaifaigafPaihaiiaijaikaikailaimafPafPainaioadqadqadqablablablablablablablablaipaiqairahYaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaafadsadtadtadtadtaduadvadwadxadxadxadxadyaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaaaaaaaafaaaaaaaaaaeYaaaaaaaaaaafaaaaaaaaaabeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaisaisaisaisaisaagaagaitaitaiuaitaivaiwafMafMafMafMafMafMaixaiyafMaizaiAaiBaiBaiBaiBaiBaiBaiBaiBaiCaiDaiEaiFaiBaigaiwaiGaiHaiIaiJaiKaiLaiMaiNaipaiqairahYaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaeiaeiaeiaeiaeiaafadvaafaeiaeiaeiaeiaeiaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaaaaaaaafaaaaaaaaaaeYaaaaaaaaaaafaaaaaaaaaabeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaitaitaiuaitaivaiwafMafMafMafMafMafMaixaiyafMaizaiAaiBaiBaiBaiBaiBaiBaiBaiBaiCaiDaiEaiFaiBaigaiwaiGaiHaiIaiJaiKaiLaiMaiNaipaiqairahYaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaeiaeiaeiaeiaeiaafadvaafaeiaeiaeiaeiaeiaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaejaejaejaejaejaafaeYaafaejaejaejaejaejaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaafaitaiRaiSaiTaiUaiVaiWaiXaiYaiZajaajbajcajdajeajfajgajhajiajhajhajhajhajhajhajjajhajgajkajiajlajmajnajoajpajqajrajsajtajuaipaiqairacxaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaafaaaaafaafaaaaaaadvaaaaaaaafaaaaaaaafaaaabdaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaeVaeWaeWaeWaeWaeXaeYaeZafaafaafaafaafbaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaiOaiPaiPaiPaiQaaaaafaivajyajzajAajBajCajDajEajFajGajHajIajJajKajLajIajJajMajLajIajJajNajOajOajOajPahxajQajRajSajTajUajVajWajVajVajVajXajYaiLaipaiqairahYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeabeabdaaaaaaaafaaaaaaadvaaaaafaafaafaafabdabdabdaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaafKafKafKafKafKaafaeYaafafKafKafKafKafKaaaabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaajvajwajZajxajvaiuaiuakaakbakcakdakeaiwafMakfafMafMakgakhakiakjakkaklakiakjakkakmaknakjakoakpakjakqakrakjaksaktakuaiwakvakwaiLakxaiLakyakzaiLaipaiqairahYaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaafaaaaaaakAaaaaaaaafaaaaaaaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -6567,9 +6561,9 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafalialiamialialiaaaaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaakCamEamkanOajvaiuaiuaiuamlammamnamoaivaiwaiwaiwaiwampampampamqampampampamrampampampamqampampampamsamsamtamuamuamuamvalZamaalZaiNalZalZambaiNacxaiqamwaeQamxamyamxaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafalFalFalGalFalFaafaaaaaaaafaaaaafaaaaaaaaaaaaaafaafaaaaaaalgamhalgaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaafamzamAamBamCamzamDamDaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaajvanfamkamkbDRamFakGamFakbakHakIakHamGamsamsamsamHamsamsamIamsamsamsamsamsamsamsamJamsamKamsamLamsamsamsamsamsamsamMaiNamNamOamPamQaiNamRaiNamSamTamUamVamVamWacxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafamXamYamZanaamXaafaaaaaaaafaaaaafaaaaafaaaaaaaaaaafalgalgalgamhalgalgalgalgalgalgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamDamDamDamDamDaafaafamzanbancandamzaneamDaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaajvcuxcuxcuxajvaiuaiuanganhanianjankaitanlanlanlanlanlanmannanlanlanlanlanlanlanlanoanpanpanpanqanranpansantanuanvamvanwanxaipaipaipaipaipaipacxanyanzacxanAanBacxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafamXanCanDanEamXaafaaaaaaaafaaaaafaaaaafalgalhalgalhalganFamhamhamhamhamhamhanGalgaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaagaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaamDamDamDamDanHanIanJamDaaaaaaamzanKanLanMamzanNamDaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaoCaoDaoDaoDaoEaaaaafaivaiuanPaitanQanRanRanSanTanSanRanRanUanVanVanVanWanVanVanXanYanZaoaamVaobamVamVamVamVaocamVamVamVamVamVaodaoeaofaogaohaohaoiaojaokaolaomacxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaamXaonaooaopamXaoqaoqaoqaoqaoqalhalhalhalgaoramhanGalgalgamhalgalgalgalgaosalgalgaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaaaaaaaafaaaaaaaaaaouaafaaaaaaaaaaaaaaaaafamDaovaowaoxanNaoyanNamDaozaozamzamzaoAaoBamzanNamDamDaozaozaozamDamDaaaaafaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaafaitaoFakGaitaoGanRaoHaoIaoIaoIaoJanRaoKaoLaoMaoNaoOaoPanVampamsaoQaoRaoSagOagOagOagOagOaoTaoUagOagOagOagOagOaoVaoWaoXaoYaoZapaapbacxapcapdacxaafapeapfapfapgapfapfaphaaaaaaaaaaaaaaaaafalhapialhaaaaoqamXamXapjapkamXaplamhamhamhalgapmamhapnalgamhamhamhapoalgamhalgappapqalgamhapralgaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotapsaptapuaafapvapwapxaouaafaozapyaozaaaaaaaafamDapzapAapBapCapDapEamDapFanNapGapHapIanNanNanNanNanNanNanNanNanNamDaaaapJaaaaaaaaaaaaaaaaaaaafaagaagapKapKapKapKapKaagaagaitaoFapLaitapManRapNapOapPapQapRanRapSanVapTapUapVapWapXampamsamuaoRahsapYapYapYapYapYapZaqaapYapYapYapYapYapYapYapYaqbaqcaqdaqeaqeaqeaqeaqeaqfaqgaqhaqhaqhaqhaqhaqgaqbaaaaaaaaaaaaaafaqiamhalhaaaaoqaqjaqkaqlaqmamhamhamhalgamhalgaqnamhamhalgamhaqoaqpaqqaosamhalgaqraqsalgamhaqtalgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaamDamDamDamDanHanIanJamDaaaaaaamzanKanLanMamzanNamDaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaoCaoDaoDaoDaoEaaaaafaivaiuanPaitanQanRanRanSanTanSanRanRanUanVanVanVanWanVanVanXanYanZaoaamVaobamVamVamVamVaocamVamVamVamVamVaodaoeaofaogaohaohaoiaojaokaolaomacxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaamXaonaooaopamXaoqaoqaoqaoqaoqalhalhalhalgaoramhanGalgalgamhalgalgalgalgaosalgalgaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafamDaovaowaoxanNaoyanNamDaozaozamzamzaoAaoBamzanNamDamDaozaozaozamDamDaaaaafaaaaaaaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaafaitaoFakGaitaoGanRaoHaoIaoIaoIaoJanRaoKaoLaoMaoNaoOaoPanVampamsaoQaoRaoSagOagOagOagOagOaoTaoUagOagOagOagOagOaoVaoWaoXaoYaoZapaapbacxapcapdacxaafapeapfapfapgapfapfaphaaaaaaaaaaaaaaaaafalhapialhaaaaoqamXamXapjapkamXaplamhamhamhalgapmamhapnalgamhamhamhapoalgamhalgappapqalgamhapralgaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapsaptapuaaaapvapwapxaafaafaozapyaozaaaaaaaafamDapzapAapBapCapDapEamDapFanNapGapHapIanNanNanNanNanNanNanNanNanNamDaaaapJaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaafaitaoFapLaitapManRapNapOapPapQapRanRapSanVapTapUapVapWapXampamsamuaoRahsapYapYapYapYapYapZaqaapYapYapYapYapYapYapYapYaqbaqcaqdaqeaqeaqeaqeaqeaqfaqgaqhaqhaqhaqhaqhaqgaqbaaaaaaaaaaaaaafaqiamhalhaaaaoqaqjaqkaqlaqmamhamhamhalgamhalgaqnamhamhalgamhaqoaqpaqqaosamhalgaqraqsalgamhaqtalgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaquaqvaqwaqvaquaqxaqyaqxaquaafaqzanNaozaaaaaaamDamDamDamDamDaqAaqBaqCaqCaqDaqEaqFaqEaqGaqHaqIaqJamDanNamDamDamDanNamDaaaaafaaaaaaaaaaaaaaaaaaaafaaaaafaafaafaafaqKaqKaqKaqKaqKaqKaqKaqKaqLanRaqMapOaqNaqOaqPanRapSaqQaqRaqSaqTaqUapXampamsaqVaoRahsapYaqWaqXaqYaqZaraarbapYarcardareapYarfargarhaqbariarjarkarlarmarnaroarpaqgaqhaqhaqhaqhaqhaqgaqbaafaafaafaafalhalhapialhalhaoqarqamharramhanFamhalgalgarsalgalgartalgalgaqqaruarvamhalgamharwarwarwarwarwarwarwarwarwabsabsabsabsaagabsabsaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarxaqvaryaqvarxaqxarzaqxarxamDaozapyaozaozaozamDarAarBarBarBarBarBarBarCarDamDamDamDamDamDarEamDamDanNarFamDarGanNamDamDamDaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaqKarHarIaqKarJarKarLaqKaqLanRarMarNarOarOarParQarRarSarTarTarUarTapXampamsarVaoRahsapYarWarXarYarZasaasbapYascasdaseapYasdasfasgaqbashasiasjaskaskaskaslasmaqgaqhaqhaqhaqhaqhaqgaqbaqbaqbaaaaaaalhamhamhamhaplaoqasnaqqarramhasoaspasqaosamhamhamhamhasramhamharuassamhastamharwasuasvaswarwasxasyaszarwaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarxasAasBasCarxasDasEasFarxasGanNanNasHasHarFasIasJasKasLasLasLasLasLasLasMasNasOaagasPamDasQasRasSanNasIamDasTanNanNanNaozaaaaaaaaaaaaaaaaafaaaaaaaafaaaaqKaqKaqKasUasUaqKasUasUasUaqKasVanRasWasXasYasZataatbatcatdanVateatfatganVathamsamuaoRahsapYapYapYapYapYatiatjapYatkatlatmapYapYatnatmaqbatoatpatqatratratsattatuatvaqhaqhaqhaqhaqhatwatxatyatzaaaaaaalhamhamhatAamhaoqatBamhatCatDatDatDatDatEatDatFamhamhamhamhamhamhamhamhalgasparwatGatHatHarwatIatJatKarwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -6578,39 +6572,39 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavYavZavZavZawaavZavZavZawbawcawdawbawbawbaweamDawfatUanNawgawhanNawiamDasJawjasLasLasLasLasLasLasNanNawhawkanNanNawlawmawnawoawpawpawpawqawpawrawpawpawsawtawuawvawvawvawvawvawvawwawxawyawzawzawzawzawzawzawzawAawzawBawBawBawBawBawCawDawEawFawGapYapYapYapYapYawHawIawJawKawLawMawNawOawPawQawRawSawTawUawVawVawWawXawYawZaqhaqhaqhaqhaqhaxaaxbaxcatzaaaaaaalgamhamhamhamhamhamhavPatDatDatDatDatDatDatDaxdamhamhamhamhastamhamharraxeaxfaxgaxhaxiaxjatHatHatHaxkarwaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafavYaxlaxmaxlaxnaxmaxmaxoaxlaxmaxpaxqaxraxraxsamDawfatUaxtanNanNaxuaxvamDaxwarBarBarBarBarBarBaxxatUaxyanNamDasGasGaxzapSaqKaxAaxBaxCaxCaxDaxCaxEaxCaxCaxFaxAaxGaxHaxHaxHaxHaxHaxHaxHawlaxIaxJaxKaxLaxMaxNaxOaxPaxQaxRaxSaxTaxUaxVaxWaxXamsaxYacxaeQapYaqWaqXaxZaqZayaaybaycaycaycaydayeayfaygayhauwayiayjaykaylaymaynattayoaypaqhaqhaqhaqhaqhaypaqbaqbaqbalgalgalganFalgalgaosalgalgarralgalgayqalgalgaosalgarravGalgalgaosalgamhavGarraxeayrarwaysavSaytayuayvavSaywarwaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarxavYayxavYayyayzayAayBavYayxavYayCayDaxnayEamDawfawjayFasLasLasNayGayGalgastalgayGayGayGayGayHayIavcauZauZauZauZayJapSarHaxAaaaaafaaaayKaaaayLaaaaafaaaaxAaxGaxHayMayNayOayPayQaxHawlayRaySayTayUayVayWayXayYayYayZazaazaazaazbaxWazcamsazdacxaeQapYarWarYarYazeasaazfazgazhaziazjazkazlazlazmazlaqbaznazoazpazqazrazsaqbaypaqhaqhaqhaqhaqhaypaqbaqtamhaxfaztalgalgalgaqtamhalgaqtarralgazuamhalgazvamhalgazwazxalgazyamhalgaosaosarrazzazAarwazBavSazCazDazCavSazEarwaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafazFaquazGatMavYavYavYavYavYavYatMazGavYaquazHazIamDazJazKazLazMatRazNayGazOazPazQazRazSazTazOayGazUazVazWawpawpawpawpawpazXazYaxAaafazZazZaAaazZaAbazZazZaafaxAaxGaxHaAcaAdaAeaAfaAcaxHaAgaAhaAiaAjaAkaAlaAmaAnaAoaApaAqaArazaazaazaaAsazcamsaAtacxaeQapYapYapYapYapYaAuaAvaAwazlazlazlazlazlaAxaAyaAzazlaqbaqbaqbaqbaAAaABaqbaypaqhaqhaqhaqhaqhaypaqbalgamhaACaztalgaADalgamhamhalgamharralgamhamhalgamhamhalgarraspalgamhamhalgaAEamharraxeaAFarwarwarwarwarwarwarwarwarwabsabsabsabsabsaafaafaaaaaaaaaaaaaafaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaisaisaisaisavYayxavYaAGaAGaAGaAGavYayxavYaAHaquaAIayEaAJaAJaAKaALaAJaAJaAMayGazOazQaANaAOazQazQazOayGaqKaAPaAQaARaARaARaARaARaARaARaASaaaazZaATaAUaAVaAWaAXazZaaaaxAaxGaxHaAcaAYaAZaBaaAcaxHawmazXaxJaBbaBcaBdaBeaBfaAnaBgaBhazaazaaBiazaaAsazcamsazdacxaeQapYaqWaqXaBjaqZayaaBkazlaBlaAyaBmaBmazlaAxaBnaAzazlaBoaBpaBqaBraBsaABaafaBtaBuaBuaBuaBuaBuaBvaaaalgamhaBwaBxalgalgalgalgalgalgaByaBzalgalgalgalgalgalgaBAaBBaBCaBDaBDaBDaBEaBFaBGaBHaBIaBJaBKaBLaBMaBNaBOaBPaBQaBRaBRaBRaisaisaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazFaquazGatMavYavYavYavYavYavYatMazGavYaquazHazIamDazJazKazLazMatRazNayGazOazPazQazRazSazTazOayGazUazVazWawpawpawpawpawpazXazYaxAaafazZazZaAaazZaAbazZazZaafaxAaxGaxHaAcaAdaAeaAfaAcaxHaAgaAhaAiaAjaAkaAlaAmaAnaAoaApaAqaArazaazaazaaAsazcamsaAtacxaeQapYapYapYapYapYaAuaAvaAwazlazlazlazlazlaAxaAyaAzazlaqbaqbaqbaqbaAAaABaqbaypaqhaqhaqhaqhaqhaypaqbalgamhaACaztalgaADalgamhamhalgamharralgamhamhalgamhamhalgarraspalgamhamhalgaAEamharraxeaAFarwarwarwarwarwarwarwarwarwabsabsabsabsabsaafaafaaaaaaaaaaaaaafaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafavYayxavYaaaaaaaafaaaavYayxavYaaaaquaAIayEaAJaAJaAKaALaAJaAJaAMayGazOazQaANaAOazQazQazOayGaqKaAPaAQaARaARaARaARaARaARaARaASaaaazZaATaAUaAVaAWaAXazZaaaaxAaxGaxHaAcaAYaAZaBaaAcaxHawmazXaxJaBbaBcaBdaBeaBfaAnaBgaBhazaazaaBiazaaAsazcamsazdacxaeQapYaqWaqXaBjaqZayaaBkazlaBlaAyaBmaBmazlaAxaBnaAzazlaBoaBpaBqaBraBsaABaafaBtaBuaBuaBuaBuaBuaBvaaaalgamhaBwaBxalgalgalgalgalgalgaByaBzalgalgalgalgalgalgaBAaBBaBCaBDaBDaBDaBEaBFaBGaBHaBIaBJaBKaBLaBMaBNaBOaBQaBPaBRaBRaBRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaBSaBTaBUaBTaBVaBVaBVaBVaBTaBUaBWaBXaquaBYaBZaCaaCbaCcaCdaCeaCfaCgayGazOazQazQaChazQazQazOayGaCiaCjaCkaClaCmaCnaCoaCpaCqaCraASaafazZaCsaCtaCuaCvaCwazZaafaxAaxGaxHaCxaCyaCzaCAaCBaxHapSaCCaxJaCDaCEaCFazaaCFaCGaCHaCIaCJaAsaxWaCKaxWazcamsazdacxaeQapYarWarXarYaCLasaaCMazlaCNaAyaAyaAyazmaCOaCPaCQazlaCRaCSaCTaCUaCVaABaaaaafaaaaafaaaaafaaaaafaaaalgavGaCWaBGaCXaCYalgasoamhavGarramhalgaaaalgaxfaBGaBGaCZaDaaDbaDbaDbaDbaDbaDcaDdaDeaDfaDgaDgaDgaDhaDiaDjaDkaDlaDmaDnaDoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBSaBTaBTaDpaDqaDraDsaDtaDuaDvaDwaDxaDraDyaDzavYaBYaDAaAJaDBaDCaDDaDEaDFaDGayGaDHazQazQazQazQaDIaDJaDKaDLaDMaDNaCqaCqaCqaCqaCqaCqaCqaASaaaazZaDOaDPaDQaDRaDSazZaaaaxAaxGaxHaDTaDUaDVaDWaDXaxHapSaDYaxJaxJaDZaBhaEaaBhaEbaxJaxJaEcaEdaxWaEeaxWazcamsazdacxaeQapYapYapYapYapYaEfaEgaEhaEiaEjaEkaEkaEkaElazlaEmazlaEnaEoaEpaBraBsaABalgalgalgalgalgalgalgalgalgalgalgalgalgaEqalgalgalgalgaxfaBHaEraEsaEtaEsaEuaEvaEwaEwaExaEyaEyaEyaEyaEyaEzaEAaEBaEBaEBaEBaEBaEBaBRaECaEDaEEaBRaBRaBRapKapKaagaafaafaafaafaafaafaagaisaisaisaisaisaisaisaisaisaisaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBVaEFaEFaEGaDraEHaDraEHaDraEHaDraEHaDraDyaEIavYaBYaEJaAJaEKaELaEMaENaEOaEPayGaEQazQaERaESaESaETaEUaEVaEWaEXaEYaEZaEZaEZaEZaEZaFaaFbaASaafazZaFcaDPaFdaFeaFfazZaafaxAaFgaFhaFiaFjaDVaFkaFlaFmaFnaFoaxWaFpaFqaEcaEcaEcaFraFsaxWaFtaFtaxWaEcaxWaFuanYaFvacxaeQaeQaeQaeQaeQamSawHaFwaFxaFyaFzaFxaFAaFxaFBaFxaFCazlaFDaFEaFFaBraFGaFHaFIaFJaFKaFLaFMaFNaFNaFNaFNaFOaFPaFNaFNaFQaFRaFSaFTaBDaFUaFVaFWaFXaFYaFXaFZaGaaEyaEyaGbaEyaGcaGdaGeaEyaEBaGfaEBaGgaGhaGiaGjaGkaGlaGmaGnaGoaGpaGqaGraaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBVaDraDraGuaDraEHaDraEHaGvaEHaDraEHaDraDyaEIavYaBYaGwaAJaAJaGxaGyaGzaGAaAJayGayGayGayGaGBazQazQaGCayGaGDaGEaCqaCqaCqaGFaCqaCqaCqaGGaASaaaazZazZaGHaGIaGHazZazZaaaaxAaxGaxHaGJaGKaGLaGMaGNaxHapSaGOaxWaGPaFqaEcaEcaEcaFraGQaxWaAsaAsaxWaCKaxWaGRaGSaGTacxamSacxacxacxacxacxaGUaGVazlaGWaAyazlaGXazlaGYazlaGZazlaHaaHbaFFaBraHcaHdaHeaHfaHgaHgaHhaHgaHgaHiaHgaHjaHkauHauHauHauHaHlaHmaHnaHoaHpamhaHqaHqaHqaHqaHraEyaHsaHtaHuaHvaHwaHxaEyaHyaHzaEBaHAaHBaHCaHDaGkaHEaECaEDaDlaHFaHGaGraaaaaaaaaaaaaaaaaaaaaaafaaaaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBVaHHaHHaHIaDraEHaDraEHaDraEHaDraEHaDraDyaEIavYaHJaHKaHLaHMaHMaHNaHOaxmaHPaHQaHRaHSayGaHTazQazQaHUayGaHVaHWaCqaHXaHYaHZaIaaIbaIcaIdaASaaaaafaaaaIeaIfaIeaaaaafaaaaxAaxGaxHaDVaIgaIhaIiaIjaxHapSasUaxWaIkaIlaEcaEcaEcaImaInaxWaaaaaaaIoaIpaIqaIraIsaItaIuaIvaIoaaaaaaaIwaIxaIyaIzazlaIAaAyaAyaAyaCPaAyaAyaAyazlaBraIBaICaBraBraABaIDaIEaIEaIFaIGaIHaIEaIIaIEaIJaIKaIJaILaIJaIMaHqaHqaINaHqaHqaHqaHqaIOaIPaHqaHraEyaHtaIQaIRaISaITaIUaEyaIVaIWaIXaIYaIZaJaaJbaJcaJdaBOaJeaGoaGpaJfaGraaaaaaaaaaaaaaaaaaaaaaafaaaaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBSaBTaBTaDpaDqaDraDsaDtaDuaDvaDwaDxaDraDyaDzavYaBYaDAaAJaDBaDCaDDaDEaDFaDGayGaDHazQazQazQazQaDIaDJaDKaDLaDMaDNaCqaCqaCqaCqaCqaCqaCqaASaaaazZaDOaDPaDQaDRaDSazZaaaaxAaxGaxHaDTaDUaDVaDWaDXaxHapSaDYaxJaxJaDZaBhaEaaBhaEbaxJaxJaEcaEdaxWaEeaxWazcamsazdacxaeQapYapYapYapYapYaEfaEgaEhaEiaEjaEkaEkaEkaElazlaEmazlaEnaEoaEpaBraBsaABalgalgalgalgalgalgalgalgalgalgalgalgalgaEqalgalgalgalgaxfaBHaEraEsaEtaEsaEuaEvaEwaEwaExaEyaEyaEyaEyaEyaEzaEAaEBaEBaEBaEBaEBaEBaBRaECaEDaEEaBRaBRaBRaafaafaafaafaafaaaaafaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBVaEFaEFaEGaDraEHaDraEHaDraEHaDraEHaDraDyaEIavYaBYaEJaAJaEKaELaEMaENaEOaEPayGaEQazQaERaESaESaETaEUaEVaEWaEXaEYaEZaEZaEZaEZaEZaFaaFbaASaafazZaFcaDPaFdaFeaFfazZaafaxAaFgaFhaFiaFjaDVaFkaFlaFmaFnaFoaxWaFpaFqaEcaEcaEcaFraFsaxWaFtaFtaxWaEcaxWaFuanYaFvacxaeQaeQaeQaeQaeQamSawHaFwaFxaFyaFzaFxaFAaFxaFBaFxaFCazlaFDaFEaFFaBraFGaFHaFIaFJaFKaFLaFMaFNaFNaFNaFNaFOaFPaFNaFNaFQaFRaFSaFTaBDaFUaFVaFWaFXaFYaFXaFZaGaaEyaEyaGbaEyaGcaGdaGeaEyaEBaGfaEBaGgaGhaGiaGjaGkaGlaGmaGnaGoaGpaJfaGraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBVaDraDraGuaDraEHaDraEHaGvaEHaDraEHaDraDyaEIavYaBYaGwaAJaAJaGxaGyaGzaGAaAJayGayGayGayGaGBazQazQaGCayGaGDaGEaCqaCqaCqaGFaCqaCqaCqaGGaASaaaazZazZaGHaGIaGHazZazZaaaaxAaxGaxHaGJaGKaGLaGMaGNaxHapSaGOaxWaGPaFqaEcaEcaEcaFraGQaxWaAsaAsaxWaCKaxWaGRaGSaGTacxamSacxacxacxacxacxaGUaGVazlaGWaAyazlaGXazlaGYazlaGZazlaHaaHbaFFaBraHcaHdaHeaHfaHgaHgaHhaHgaHgaHiaHgaHjaHkauHauHauHauHaHlaHmaHnaHoaHpamhaHqaHqaHqaHqaHraEyaHsaHtaHuaHvaHwaHxaEyaHyaHzaEBaHAaHBaHCaHDaGkaHEaECaEDaDlaHFaKsaGraafaafaafaaaaafaaaaaaaaaaaaaafaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBVaHHaHHaHIaDraEHaDraEHaDraEHaDraEHaDraDyaEIavYaHJaHKaHLaHMaHMaHNaHOaxmaHPaHQaHRaHSayGaHTazQazQaHUayGaHVaHWaCqaHXaHYaHZaIaaIbaIcaIdaASaaaaafaaaaIeaIfaIeaaaaafaaaaxAaxGaxHaDVaIgaIhaIiaIjaxHapSasUaxWaIkaIlaEcaEcaEcaImaInaxWaaaaaaaIoaIpaIqaIraIsaItaIuaIvaIoaaaaaaaIwaIxaIyaIzazlaIAaAyaAyaAyaCPaAyaAyaAyazlaBraIBaICaBraBraABaIDaIEaIEaIFaIGaIHaIEaIIaIEaIJaIKaIJaILaIJaIMaHqaHqaINaHqaHqaHqaHqaIOaIPaHqaHraEyaHtaIQaIRaISaITaIUaEyaIVaIWaIXaIYaIZaJaaJbaJcaJdaBOaJeaGoaGpaGqaGraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJgaBTaBTaDpaDqaDraDraDraDraDraDraJhaDraDyaJiavYaBYaxmaJjaJkaJkaJkaJkaJkaJkaJkaJlaxmayGaJmaJnaJmayGayGaJoaJpaJqaARaARaARaARaJqaJraJsaASaJtaJuaJuaJvaJwaJvaJuaJuaJxaxAaJyaxHaJzaxHaJAaJAaJBaxHaJCaJDaxWaxWaxWaAsaEaaAsaxWaxWaxWaIoaIoaIoaJEaIsaIsaIsaIsaIsaJFaIoaIoaIoaIwaJGaIyaJHazlazlazlazlazlazlazlazlazlazlaJIaJJaJKaJLaJMaJNaJOaJPaIEaJQaIGaJRaJSaJRaIJaJTaJUaIJaJVaIJaJWaJXaJYaJZaKaaKaaKaaKbaKcaKdaHqaHraEyaKeaIQaKfaISaITaKgaEyaKhaKiaKjaKkaKlaKmaKnaKoaKpaKqaKraDlaHFaKsaGraaaaafaafaafaafaafaafaafaaaaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJgaBTaBUaBTaBVaBVaBVaBVaBTaBUaKtaKuaquaKvaxmaKwaKxaKxaKyaKxaKzarxaKAaKBaxmaKCaKDaKEaKEaKFaKEaKGaKHaKEaKEaKEaKEaKEaKEaKEaKIaKJaKKaKLaKMaKMaKNaKOaKMaKMaKMaKPaKQaKRaKNaKMaKMaKMaKSaGSaKTaIsaKUaKVaItaIuaIuaIuaIraIsaIsaKWaIsaKXaKYaKZaLaaLbaLcaLdaLeaIsaIsaKWaLfaLgaLhaLiaLjaLkaLlaLmaIsaLnaIsaBraLoaLpaLqaJJaLraLsaLtaLuaLvaLwaIEaLxaLyaLzaLAaLBaIJaLCaJUaLDaLEaIJaHqaLFaLGaLHaLIaLJaLKaLLaLMaLNaHqaHraEyaLOaLPaLQaLRaLSaLTaEyaLUaLVaEBaLWaLWaLWaLWaEBaLXaDjaKraDlaBRaBRaBRaLYaLYaLYaLZaLZaLZaafaafaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagapKapKapKapKavYayxavYaMaaMaaMaaMaavYayxavYaAHaquaAIaMbaKwaMcaMdaMeaMeaMfarxaMgaKBaMhaMiaKDaMjaMkaMlaMmaMnaMoaKEaKEaKEaKEaKEaKEaKEaKIaKEaKDaKEaKEaKEaMpaMqaMraMraMraMraMsaMraMtaMraMraMuaKDaGSaIsaIsaIsaIsaIsaIsaIsaIsaIsaIsaIsaKWaIsaMvaMwaMxaMyaMzaMAaMBaMCaIsaIsaKWaIsaIsaIsaIsaIsaIsaIsaIsaIsaMDaIsaBraLqaLqaLqaMEaMFaMGaMHaMIaMJaMKaIEaMLaIGaMMaIEaIEaIJaMNaJUaMOaLEaMPaIJaHqaHqaHqaHqaHqaHqaMQaMRaVmaHqaHraEyaMTaHtaMUaMVaHtaMWaEyaEBaEBaEBaEBaEBaEBaMXaEBaECaRBaEDaDlaMYaMZaBRaNaaNbaNcaNdaNeaLZaafaaaaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafazFaquavYatMavYavYavYavYavYavYatMavYavYaquaBYaxmaKwaNfaNgaMeaMeaMfarxaNhaKBaxmaMiaKDaKEaNiaNjaNjaNjaNkaNlaNmaNjaNnaNjaNjaNjaNoaNjaNpaNjaNjaNjaNqaNraNsaNtaNtaNuaNvaNwaNxaNyaKEaNzaKDaGSaIsaNAaIsaNBaNBaNBaNBaNBaNBaNBaNBaNCaNBaNBaNBaNBaNBaNBaNBaNBaNBaNBaNBaNDaNBaNBaNBaNBaNBaNBaNBaNBaIsaIsaIsaBraNEaNEaNEaNEaNEaNFaNGaJNaLvaNHaIEaNIaNJaNKaIEaNLaIJaNMaNNaNOaLEaNPaIJaHqaNQaNRaNSaNTaNSaNUaNVaNWaHqaHraEyaNXaNXaNYaNZaOaaOaaObaEyaOcaOdaOeaBRaOfaOgaOhaECaECaOiaOjaBRaOkaBRaOlaOmaOnaOnaOoaLZaLZaLZaLZaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafavYayxavYaafaafaaaaaaavYayxavYaafaquaAIaMbaKwaMcaMdaMeaMeaMfarxaMgaKBaMhaMiaKDaMjaMkaMlaMmaMnaMoaKEaKEaKEaKEaKEaKEaKEaKIaKEaKDaKEaKEaKEaMpaMqaMraMraMraMraMsaMraMtaMraMraMuaKDaGSaIsaIsaIsaIsaIsaIsaIsaIsaIsaIsaIsaKWaIsaMvaMwaMxaMyaMzaMAaMBaMCaIsaIsaKWaIsaIsaIsaIsaIsaIsaIsaIsaIsaMDaIsaBraLqaLqaLqaMEaMFaMGaMHaMIaMJaMKaIEaMLaIGaMMaIEaIEaIJaMNaJUaMOaLEaMPaIJaHqaHqaHqaHqaHqaHqaMQaMRaVmaHqaHraEyaMTaHtaMUaMVaHtaMWaEyaEBaEBaEBaEBaEBaEBaMXaEBaECaRBaEDaDlaMYaMZaBRaNaaNbaNcaNdaNeaLZaafaaaaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafazFaquavYatMavYavYavYavYavYavYatMavYavYaquaBYaxmaKwaNfaNgaMeaMeaMfarxaNhaKBaxmaMiaKDaKEaNiaNjaNjaNjaNkaNlaNmaNjaNnaNjaNjaNjaNoaNjaNpaNjaNjaNjaNqaNraNsaNtaNtaNuaNvaNwaNxaNyaKEaNzaKDaGSaIsaNAaIsaNBaNBaNBaNBaNBaNBaNBaNBaNCaNBaNBaNBaNBaNBaNBaNBaNBaNBaNBaNBaNDaNBaNBaNBaNBaNBaNBaNBaNBaIsaIsaIsaBraNEaNEaNEaNEaNEaNFaNGaJNaLvaNHaIEaNIaNJaNKaIEaNLaIJaNMaNNaNOaLEaNPaIJaHqaNQaNRaNSaNTaNSaNUaNVaNWaHqaHraEyaNXaNXaNYaNZaOaaOaaObaEyaOcaOdaOeaBRaOfaOgaOhaECaECaOiaOjaBRaOkaBRaOlaOmaOnaOnaOoaLZaLZaLZaLZaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarxavYayxavYaOpaOqaOraOsavYayxavYaOtaOuaOvaxmaKwaOwaOwaKyaOwaKzarxaOxaKBaxmaOyaOyaOyaOzaOyaOAaOAaOAaOAaOAaOBaOCaOAaODaOAaOAaOAaOEaOFaOGaOFaOHaOIaOJaKEaKEaOKaOLaOMaONaKHaKEaNzaOOaOOaIsaIsaItaIoaIoaIoaIoaIoaIoaIoaIoaOPaOQaORaOSaORaORaORaOTaORaOUaORaOVaOPaIoaIoaIoaIoaIoaIoaIoaIoaIraIsaIsaIEaOWaOXaOYaOYaOYaOYaOYaJNaOZaOYaIEaPaaPbaPcaIJaIJaIJaPdaPeaIJaIJaIJaIJaHqaNSaPfaPgaPgaPgaPhaPiaNSaHqaHraEyaPjaHtaNYaNZaHtaHtaPkaEyaPlaPmaPnaBRaECaPoaPpaPqaPqaPraPsaPtaPuaBRaPvaPwaOnaPxaOnaPyaPzaPzaPyaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafavYaPAaxmavZaOvaxmaxmaPBavZaxmaPAaOvaxmaxmaxmaPCaPDaPDaPDaPDaPDaPDaPDaPEaxmaOyaPFaOyaPGaOAaPHaPIaPJaPKaPLaPIaPMaPNaPOaPPaPQaPRaOEaPSaPTaPUaOHaPVaOJaOJaPWaOJaOJaOOaPXaPYaPZaQaaOOaOOaQbaIsaItaIoaaaaaaaaaaaaaaaaaaaaaaOPaQcaQdaQeaQfaQgaQhaQiaQjaQkaQlaQmaOPaaaaaaaaaaaaaaaaaaaaaaIoaIraIsaQnaIEaQoaOYaOYaOYaOYaOYaQqaJNaOZaQraQsaJNaQtaQuaIJaQvaQwaQxaQyaQzaQAaQBaQCaIJaNSaQDaQEaQEaQEaQFaQGaNSaHqaQHaEyaQIaQIaNYaNZaQJaQJaQKaEyaEyaQLaEyaBRaQMaOgaOhaQNaQNaOiaOjaBRaBRaBRaLZaQOaQPaQQaLZaLZaLZaLZaQRaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaavYaQSaQTaQTaQTaQTaQTaQTaQTaQTaQSaQTaQUaxmaxmaMiaxmaQVaQWaxmaQXaQYaxmaQZaRaaOyaRbaOyaPGaOAaRcaPIaRdaPIaPIaPIaPMaReaPIaPIaPIaPRaOEaRfaPTaPTaOHaPVaOJaRgaRhaRhaRiaOOaRjaRkaRlaRmaRnaRoaIsaIsaItaIoaaaaaaaaaaaaaOPaOPaOPaOPaRpaRqaRraRsaRtaRuaRvaRwaRxaRyaRzaOPaOPaOPaOPaaaaaaaaaaaaaIoaIraIsaIsaRAaOYaRCaRDaREaREaRFaRGaRHaRIaRJaRKaRLaRMaRNaROaRPaRPaRQaRRaRSaRSaRTaRPaRUaRVaRWaRXaRYaRZaSaaQGaNSaHqaHraEyaHtaHtaNYaNZaHtaHtaHtaSbaScaHtaSdaBRaSeaSfaSgaQNaQNaShaSiaSjaBRaSkaSlaPwaOnaSmaOnaSnaPzaPzaSoaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaisaisaquaquavYavYavYavYavYavYavYavYaquaquarxaMiaSpaSqaSqaSraSqaSqaSqaSsaSqaSqaSqaOyaRbaStaSuaOAaSvaPIaSwaSxaSyaSzaSAaSxaPIaPIaPIaSBaOEaSCaSDaSEaOHaPVaOJaSFaSGaSHaSIaOOaSJaSKaSLaSMaSNaRoaIsaIsaItaIoaIoaIwaSOaOPaOPaSPaSQaSRaSSaSTaSUaSVaSWaSUaSXaSUaSUaSYaSZaTaaTbaTcaOPaOPaSOaIwaIoaIoaIraIsaIsaIEaTdaJNaOYaOYaOYaOYaTfaOYaTgaThaTiaTjaTkaTlaTmaTnaToaTpaTqaTraTsaTtaTnaTuaTvaTwaTxaTyaTzaTxaTAaTBaHqaHraEyaTCaTCaNYaNZaTDaHtaHtaTEaHtaTFaTGaBRaTHaTIaTJaQNaQNaTKaTLaECaBRaTMaOnaPwaOnaSmaTNaLZaLZaLZaLZaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaavYaQSaQTaQTaQTaQTaQTaQTaQTaQTaQSaQTaQUaxmaxmaMiaxmaQVaQWaxmaQXaQYaxmaQZaRaaOyaRbaOyaPGaOAaRcaPIaRdaPIaPIaPIaPMaReaPIaPIaPIaPRaOEaRfaPTaPTaOHaPVaOJaRgaRhaRhaRiaOOaRjaRkaRlaRmaRnaRoaIsaIsaItaIoaaaaaaaaaaaaaOPaOPaOPaOPaRpaRqaRraRsaRtaRuaRvaRwaRxaRyaRzaOPaOPaOPaOPaaaaaaaaaaaaaIoaIraIsaIsaRAaOYaRCaRDaREaREaRFaRGaRHaRIaRJaRKaRLaRMaRNaROaRPaRPaHGaRRaRSaRSaRTaRPaRUaRVaRWaRXaRYaRZaSaaQGaNSaHqaHraEyaHtaHtaNYaNZaHtaHtaHtaSbaScaHtaSdaBRaSeaSfaSgaQNaQNaShaSiaSjaBRaSkaSlaPwaOnaSmaOnaSnaPzaPzaSoaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaquaquavYavYavYavYavYavYavYavYaquaquarxaMiaSpaSqaSqaSraSqaSqaSqaSsaSqaSqaSqaOyaRbaStaSuaOAaSvaPIaSwaSxaSyaSzaSAaSxaPIaPIaPIaSBaOEaSCaSDaSEaOHaPVaOJaSFaSGaSHaSIaOOaSJaSKaSLaSMaSNaRoaIsaIsaItaIoaIoaIwaSOaOPaOPaSPaSQaSRaSSaSTaSUaSVaSWaSUaSXaSUaSUaSYaSZaTaaTbaTcaOPaOPaSOaIwaIoaIoaIraIsaIsaIEaTdaJNaOYaOYaOYaOYaTfaOYaTgaThaTiaTjaTkaTlaTmaTnaToaTpaTqaTraTsaTtaTnaTuaTvaTwaTxaTyaTzaTxaTAaTBaHqaHraEyaTCaTCaNYaNZaTDaHtaHtaTEaHtaTFaTGaBRaTHaTIaTJaQNaQNaTKaTLaECaBRaTMaOnaPwaOnaSmaTNaLZaLZaLZaLZaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOavYayyaxnaTPaSqaTQaTRaTSaTTaTSaTUaTQaTSaSqaRbaRbaTVaTWaOAaTXaPIaTYaTZaUaaUbaUcaSxaPIaPIaPIaPRaOEaOEaOEaOEaOHaPVaOJaOJaOJaOJaOJaOOaUdaRlaRlaRlaRlaRoaIsaIsaItaIuaIuaUeaUfaUgaOPaUhaUiaUjaUkaUlaUkaUmaUnaUoaUpaUqaUraUsaUqaUtaUuaUvaOPaUwaUfaUxaUyaIuaIraIsaIsaRAaOYaJNaQpaOYaUzaOYaQpaOYaOZaQraUAaOYaOYaOYaUBaUCaUDaUEaUFaUGaUHaUIaUJaIJaUKaULaUMaQEaUNaQEaUOaUPaHqaUQaEyaEyaEyaNYaNZaURaUSaHtaUTaUUaKfaUVaBRaECaUWaSgaQNaQNaShaUXaUYaBRaUZaOnaPwaVaaVbaVcaLZaaaaafaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaVdavYavYaBYaVeaVfaVgaVhaViaVjaVkaVlaTQaTSaSqaVnaYDaVoaOyaOAaVpaVqaVraVsaVraVtaVuaVtaVtaVtaVvaVwaOAaVxaVyaVzaVAaVBaVCaVDaVEaOyaVFaOOaVGaVHaVIaVJaVJaRoaIsaIsaIsaIsaIsaVKaVLaVMaVNaVOaVPaVQaVRaVSaVTaVUaVVaVWaVXaVYaVZaWaaWbaVQaWcaWdaWeaWfaWgaWhaWiaWjaWkaIsaIsaIEaWlaWmaWnaWoaOYaWpaWqaWoaOZaQraWraWraWsaWtaIJaUCaUCaUCaWuaUCaUCaUIaWvaIJaNSaULaQEaQEaUNaQEaWwaNSaHqaWxaWyaWzaWAaWBaWCaWDaWDaWDaWDaWDaWDaWEaWFaWGaWGaWGaWGaWGaWHaWIaWJaWFaWKaWLaWMaWNaOnaWOaLZaafaafaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaVdavYavYaBYaVeaVfaVgaVhaViaVjaVkaVlaTQaTSaSqaVnaYDaVoaOyaOAaVpaVqaVraVsaVraVtaVuaVtaVtaVtaVvaVwaOAaVxaVyaVzaVAaVBaVCaVDaVEaOyaVFaOOaVGaVHaVIaVJaVJaRoaIsaIsaIsaIsaIsaVKaVLaVMaVNaVOaVPaVQaVRaVSaVTaVUaVVaVWaVXaVYaVZaWaaWbaVQaWcaWdaWeaWfaWgaWhaWiaWjaWkaIsaIsaIEaWlaWmaWnaWoaOYaWpaWqaWoaOZaQraWraWraWsaWtaIJaUCaUCaUCaMaaUCaUCaUIaWvaIJaNSaULaQEaQEaUNaQEaWwaNSaHqaWxaWyaWzaWAaWBaWCaWDaWDaWDaWDaWDaWDaWEaWFaWGaWGaWGaWGaWGaWHaWIaWJaWFaWKaWLaWMaWNaOnaWOaLZaafaafaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaWPatMaWPaxmaxmaSqaWQaWRaWSaWSaWSaWTaWUaWVaSqaWWaRbaVoaWXaWXaWXaWYaWZaWXaXaaXbaXcaXdaXeaXeaXfaXgaOAaXhaXiaXjaXkaXlaXmaXmaXnaXoaXoaXpaXpaXpaXpaXpaXqaOOaIsaIsaXraXsaXtaXuaXvaXwaOPaXxaXyaXzaXAaXBaXCaXCaXDaXEaXFaXGaXHaXIaXJaXzaXKaXxaOPaXwaXvaXLaXMaXsaXNaIsaIsaRAaOYaXOaTeaOYaOYaOYaTeaOYaOZaOYaQraQraOYaOYaXPaXQaXRaUCaUCaUCaUCaXSaXTaIJaXUaXVaQEaXWaXXaXYaXVaXZaHqaYaaYbaYbaYcaYdaYeaYfaYgaYhaYfaYfaYfaYiaYjaYkaYlaYlaYlaYlaYlaYmaYnaYjaYoaYpaYqaYraOnaYsaLZaaaaafaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOavYavYavYaBYaxmaYtaTQaYuaWSaWSaWSaYvaYwaTQaSqaYxaYyaVoaWXaYzaYAaYBaYCaWXaYFaYEbeSaOAaYGaYHaYIaSwaOAaYJaYKaYLaYLaYLaYLaYMaYLaYLaYNaYOaYOaYOaYPaYOaYQaYRaKWaKWaYSaYTaYTaYTaYTaYTaYTaYUaYVaYWaYXaXDaYYaYZaYZaZaaZbaYZaYYaXFaZcaZdaZeaZfaZdaZdaZdaZdaZdaZdaZgaKWaKWaIEaZhaZiaZjaZkaOYaOYaOYaZlaZmaZnaOYaZoaZpaZqaIJaIJaIJaZraZsaZsaZsaIJaIJaIJaZtaQEaQEaMSaZuaZvaZwaMSaHqaZxaYbaZyaEyaZzaZAaZBaZCaZDaZEaTEaUSaZFaBRaZGaECaZHaQNaQNaZHaECaZIaBRaZJaZKaZLaSmaOnaOoaLZaLZaLZaLZaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOavYaZMaOvaZNaSqaTSaZOaTSaTQaZPaZQaZRaTSaSqaZSaZTaZUaWXaWXaWXaZVaZWaWXaZXaZYaZZaOAaYGaYHaYIaSwaOAaYJaYKaYLbaababbabbabbacaYLbadbaebafbagaYRaYRaYRaYRaIsaIsbahbaibajbakbalbambanbaobapbaqbarbasaYZaYZbatbaubataYZaYZbavbawbaxbaybazbaAbaBbaCbaDbaEaZdaXNaIsaIsaIEaIEaIEaIEaIEbaFaRAbaFbaGbaHaIEaIEaIEaIEaIEbaIbaJbaJbaJbaJbaJbaJbaKbaJbaIaMSbaLbaLaMSbaMaYbaYbaYbbaIaZxaYbaZyaEyaEyaEybaNbaObaNaEybaNaEyaEyaBRaBRbaPbaPbaPbaPbaPbaPaBRaBRbaQaOnbaRaSmaOnaOnaSoaPzaPzaSoaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagapKapKaquaquavYavYavYavYavYavYavYavYaquaquarxaQVaxmaSqaSqaSraSqaSqaSqaSsaSqaSqaSqbaSbaTbaUaWXbaVbaWaZVbaXaWXbaYbaZbaYaOAaYGaYHaYIaSwaOAaYJaYKaYLbabbbabbababbbaaYLbadbbbbbcbbcbbdbbebbfaYRbbgaIsaXrbbhbbibbjbbkbblbblbbmbbnbbobarbbpaYZaYZbatbbqbataYZaYZbbrbawbbsbbtbbubbvbbwbbxbaEbbyaZdaXNbbzaIsaGSbbAaYbaYbaYbaYbaYbaYbaYbaYbbbBaYbaYbaYbaYbbbCaYbaYbaYbaYbaYbaYbaYbaYbbbAaYbaYbaYbaYbbaMaYbaYbaYbbbDbbEaYbaYbbbFaYbaYbaYbbbGaYbaYbaYbaYbaYbbbCbbHaYbaYbaYbaYbaYbaYbbbAbbIaSlaOnbbJbbKbbLbbMaLZaLZaLZaQRaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaafaafaquaquavYavYavYavYavYavYavYavYaquaquarxaQVaxmaSqaSqaSraSqaSqaSqaSsaSqaSqaSqbaSbaTbaUaWXbaVbaWaZVbaXaWXbaYbaZbaYaOAaYGaYHaYIaSwaOAaYJaYKaYLbabbbabbababbbaaYLbadbbbbbcbbcbbdbbebbfaYRbbgaIsaXrbbhbbibbjbbkbblbblbbmbbnbbobarbbpaYZaYZbatbbqbataYZaYZbbrbawbbsbbtbbubbvbbwbbxbaEbbyaZdaXNbbzaIsaGSbbAaYbaYbaYbaYbaYbaYbaYbaYbbbBaYbaYbaYbaYbbbCaYbaYbaYbaYbaYbaYbaYbaYbbbAaYbaYbaYbaYbbaMaYbaYbaYbbbDbbEaYbaYbbbFaYbaYbaYbbbGaYbaYbaYbaYbaYbbbCbbHaYbaYbaYbaYbaYbaYbbbAbbIaSlaOnbbJbbKbbLbbMaLZaLZaLZaQRaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavYawcawbawbawbawbawbawbawbawbawcawbbbNbbOaxmbbPaStbbQaXmaXmaXmbbRbbSbbTaOybbUbbVbbWaWXaWXaWXbbXbbYaWXaOAaOAaOAaOAaYGaYHbbZbcaaOAaYJaYKaYLbabbcbbabbbabccaYLbadbcdbbcbbcbbcbcebcfaYRbcgaIsaXrbbhbchbbjbcibcjbckbclbcmbcnbarbcobataYZbcpbcqbcpaYZbatbcrbawbcsbctbcubcvbcwbbxbaEbaEaZdbcxaIsaIsaGSbbAaYbaYbaYbaYbaYbaYbaYbaYbbcyaYbaYbaYbaYbaYbaYbbczbcAbcAbcAbcBaYbaYbbbAaYbaYbaYbaYbbaMaYbaYbbcCaWzbcDaWzaWzaWzaWzaWzaWzbcEaWzaWzaWzaWzaWzaWzaWzaWzaWzaWzaWzaWzbcFbcGbcHbcIbcIbcJaSmaOnaOnbcKaPzaPzbcKaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafavYaxlaxmaxlaxnaxmaxmaxoaxlaxmaxlaxnaxmbcLaHKbcMbcNbcObcMbcMbcMbcPbcQaOyaOyaOybcRaVoaWXaYzbcSbcTbcUaWXbcVbcWbcVaOAaOAaOAbcXbcYaOyaYJaYKaYLbcZbabbbabdabdbaYLbadaYRbdcbbcbbcbddbdebdfbdgaIsaXrbbhbdhbbjbcibdibdjbdkbbnbbjbarbdlbdmaYZbdnbdobdpaYZbdqbdrbawbdsbdtbdubdvbdvbdwbaEbdxaZdbdybdzaIsaGSbbAaYbaYbbdAaYbbdBbdCbdCbdCbdDbdCbdCbdCbdEaYbaYbaYbaYbaYbaYbbdFbdGbdHbbAaYbaYbaYbaYbbaMbdIbdJbdKbdLbdMaYbaYbaYbaYbaYbbdNbdOaYbaYbaYbaYbaYbaYbaYbaYbaYbaYbaYbaYbaYbbbAbdPbdQbdRbdSaSmaOnaOoaLZaLZaLZaLZaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarxavYbdTavYaBYaxmaxmbdUavYbdVavYayCbdWbdXbdXbdYbdZbeabebbecbedbeebefbegbehbehbeibejaWXaWXaWXbekbelaWXaOyaOyaOyaOybemaVzbenbeoaVzbepaYKaYLbeqbabbabberbesaYLbetaYRbeubbcbbcbevbewbexbeyaIsaXraYTbbjbezbbkbbkbeAbbmbbnbeBbeCaXCbeDbeEbeFbeFbeFbeGbeHaXHbeIbeJbeKbeLbeMbaEbeNbaEbeOaZdaXNaIsaIsbePbePbePbePbePbePbePbeQbhcbhcbhdbeTbeTbeQbeUbeUbeUbeUbeUbeVbeVbeWbeXbeVbeVbeVbeVbeYaYbbeZbfabfbbfcbfdaYbaYbaYbbfebfebffbffbffbffbffbfgbfhbfhbfhbfibfhbfjbfkbfhbfhbflbfmbfmbfmbfmbfnbfobfpbfqaLZaafaaaaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafazFaquazGatMavYayyayzbfrbfsavYatMazGavYaquazFarxbdYbftbfubfubfubfvbeebfwbfxbfybfybfzbfAaWXaYzbfBbekbfCaWXbfDbfDaRbaRbbfEbfFbfGbfHbfGbfGbfIaYLbfJbfKbabbabbesbfLbfMaYRbfNbbcbbcbevbfObfPbeyaIsbfQaYTbfRaYWbfSbfTbfUbfVbbnbfWaYTaafbfXbfYbfYbfYbfZbgabgbaafaZdbgcbgdbgebgfbaEbggbaEbghaZdaXNaIsbgibePbgjbgkbglbgmbgnbePbgobgpbgqbgrbgsbgsbgsbgtbgubgvbgwbeUbgxbgybgzbgybgybgAbgBbeVbfbbgCbfbbfbbfbbgDbfdbfdbgEbfdbgFbgFbffbgGbgHbgIbffbgJbgKbgJbffbgLbgMbgLbfmbgNbgObgNbfmbgPbgQbfmbgRbgSaLZaLZaLZaafaafaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafavYbdTavYavYavYavYavYavYbdVavYaafaafaafaaabdYbgTbdYbgUbfubgVbgWbcMaVzbgXbgYbgZbhabhbbhbbhbbhbbhbbhbbimbhebpdbfybhfbhgaYLaYLaYLaYLaYLaYLbhhaYLaYLaYLbhibhjbhkbhlbhmbbcbbcbevbhnbexbeyaIsbhoaYTbhpaYWaYWaYWaYWbfVbbnbhqaYTaafbfXbfYbhrbhsbhtbfYbhuaafaZdbhvbctbhwbhxbaEbeNbaEbaEaZdaXNaIsaIsbePbhybhzbhAbhBbhCbhDbgsbhEbgsbhFbgsbgsbhGbgtbhHbhIbhJbeUbhKbgybhLbgybhKbhMbgybeVbhNbhObhPbhQbfbbhRbfdbhSbhTbhUbhVbhVbffbhWbhXbhYbhZbiabibbicbffbidbiebifbfmbigbihbigbiibijbijbfmbikbgSaaaaafaaaaafaaaaaaaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaafaaabdYbilblfbinbiobiobipbiqaXmbiraOybisbitbiubiubiubivbivbivbivbivbivbivbiwbhibixbiybizbiAbiBbiCbiDbiEaYLbiFbiGbiHbiIbiIbiJbbcbbcbevbbcaYRbeyaIsaXrbiKbiLbiMbiNbiOaYWbiPbbnaYTaYTaafbfXbfYbhsbfYbhsbfYbhuaafaZdaZdbiQbdubiRbaEbiSbiTbiUaZdaXNaIsbiVbiWbiXbiYbiZbjabjbbjcbgsbjdbjebjfbjgbjgbjhbgtbjibhIbjjbeUbhKbgybhLbjkbhKbjlbjmbeVbjnbjobjpbjqbfbbgDbfdbjrbjsbjsbjtbjubjvbjwbjxbjxbjxbjybjzbjAbffbjBbiebjCbfmbjDbjEbjFbjGbjHbjIbfmbikbgSbjJbjJbjJbjJaafaafaagapKapKapKapKapKapKapKapKapKapKaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaafaaabdYbilblfbinbiobiobipbiqaXmbiraOybisbitbiubiubiubivbivbivbivbivbivbivbiwbhibixbiybizbiAbiBbiCbiDbiEaYLbiFbiGbiHbiIbiIbiJbbcbbcbevbbcaYRbeyaIsaXrbiKbiLbiMbiNbiOaYWbiPbbnaYTaYTaafbfXbfYbhsbfYbhsbfYbhuaafaZdaZdbiQbdubiRbaEbiSbiTbiUaZdaXNaIsbiVbiWbiXbiYbiZbjabjbbjcbgsbjdbjebjfbjgbjgbjhbgtbjibhIbjjbeUbhKbgybhLbjkbhKbjlbjmbeVbjnbjobjpbjqbfbbgDbfdbjrbjsbjsbjtbjubjvbjwbjxbjxbjxbjybjzbjAbffbjBbiebjCbfmbjDbjEbjFbjGbjHbjIbfmbikbgSbjJbjJbjJbjJaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaafaaabdYbjKbdYbjLbjMbjMbjNbdYbjObjOaOybjPbjQbjPbjPbjPbjQbjPaOyaOyaYLaYLaYLbjRbhibjSbjSbjTbjSbjSbjSbiDbjSbqEbjVbjWbjXbjYbjZbjZbjZbjZbkabkbbkcbkdbkebkfbkgbkhbkibkjbkkaYWbfVbbnaYTaafaafbfXbfYbhtbklbhrbkmbhuaafaafaZdbknbkoaZdaZdaZdaZdbkpaZdbkqaIsaIsbePbkrbhzbksbhBbhCbktbgsbkubkvbkwbkxbkybkzbeUbkAbkBbkCbeUbhKbgybkDbkEbhKbkFbgybeVbfbbfbbfbbfbbfbbgDbfdbkGbkHbkIbkJbkKbkLbkMbkNbkObkObkPbkQbkRbffbkSbiebkTbfmbkUbkVbkWbkXbkYbkZbfmbikblablbblcbldblcaaaaaaaafaaaaafaaaaafaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaafaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaabdYbleblfblgbjMblhblibdYaaaaaaaaabljbljbljbljbljbljbljaaaaaabjUblkbllblmblnblobloblpbloblobloblqbloblrblsbltblublvbexbexbexblwaYRblxaYRblyblzaKWbiKblAblBblBblBblBblCblDblEaafaaablFblGblHbfYbfYblIbhuaaaaafblJblKblLblMblNblOblJblPblJblQaIsaIsbePblRbhzbksblSblTbePblUbkubkvblVblWbgsblXbeUblYblZbmabeUbmbbmcbmdbmebmfbmgbmhbmibmjbmkbmjbmjbmjbmlbfdbmmbhTbmnbmobmpbkLbmqbmrbmsbmsbmtbmubmvbffbmwbgMbmxbfmbmybmzbmAbkXbijbmBbfmbikbmCbmDbmEbmEbmEbmEbmEbmEbmFaafaaaaafaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaabdYbmGblfblfblfbdYbdYbdYaaaaaaaaabljbljbljbljbljbljbljaaaaaabjUbmHbjSbmIbmJbmKbmJbmJbmJbmJbmJbmLbmJbmMbmNbmObmPbmQbmRbexbmSbbcbmTbmUbmVbeybmWbmXbiKbiKblEbmYbmZbnabnbbncblEaaaaaabfXbndbnebnfbnebngbhuaaaaaablJbnhbnibnjblJbnkblJblPblJblQaIsaIsbePbnlbhzbksbnmbnnbePbnobnpbnqbeRbnrbgsbnsbeUbgtbntbnubeUbeVbnvbeVbeWbnwbnxbnxbnxbnxbnxbnxbnxbnxbgDbfdbnybkHbkIbnzbnAbnBbnCbnDbnDbnDbmtbkQbnEbnFbnGbnHbnIbnJbnKbnLbnKbnMbijbnNbfmbnObnPbnPbnPbnPbnPbnPbnPbnQbgSbjJbjJbjJaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaotaaaaouaaaaaaaaaaaaabsaaaaaaaaabljbljbljbljbljbljbljbnRbjUbjUbnSbjSbjSbjSbnTbnUbnUbnUbjSbjSbjSbjSbqEbnVbevbnWbnXbnYbnZboabobbocbbcbmVbodboebofbogbohboibojbokbolbombonblEaafaaabfXboobopbopbopboqbhuaaaaafblJborbosbotblJboublJblPblJbovaIsaLfbowboxboybozboAboBbePboCbkubhFbeRboDboEbnobnoboFboGboHboIboJboKbgsboLboMboNboOboPboQboRboSboTbnxbgDbfdboUboVboWboXboYbffboZbnDbnDbpabpbbkQbpcbqHbpebpfbpgbnJbphbpibijbpjbpkbplbfmbpmbpnbpnbpnbpnbpnbpnbpnbikbgSbpobppbjJbjJaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaotaaaaouaaaaaaaaaaaaaotaaaaaaaaabljbljbljbljbljbljbljbpqbprbpqbpsbptbjSbjSbiDbjSbjSbjSbjSbjSbpuaYLaYLbpvbpwbjZbpxbpybexbpzbbcbpAbbcbpBblQbmWbpCbpDbpEbpFbpGbpHbpIbpJbpKblEaaaaaabfXbpLbpMbpNbpMbpObhuaaaaaabpPbpQbpRbpPbpPbpPbpPbpSbpPbpTaKWaKWbePbePbpUbpVbpWbpXbePbpYbkubpZbqabqabqabqabqabqbbqcbqdbqebqabqfbqabqgbqhboNbqibqjbqkbqlbqmbqnbnxbqobqpbqqbqrbqrbqsbqtbqubqvbqwbqwbqxbqybkQbqzbqAbqBbqCbqDbnJbnJbsqbqFbqGbtrbnJbfmbpnbpnbqIbqJbqKbqLbqMbpnbqNbqObqPbqQbqRbjJaaaaafaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaagaaaaaaaaaaafaotaaaaaaaaabljbljbljbljbljbljbljbqSbqTbqSbqUbjSbjSbjSbnTbnUbnUbnUbjSbjSbqVbqWaYLbqXbbcbbcbqYbqZbrabrbbbcbbcbbcbpBblQbrcaIsbpDbpEbrdbrebrfbrgbrhbriblEaafaafbrjbrkbrlbrmbrnbrobrpaafaafbrqbrrbrsbrtbrubrvbrwbrxbpPbryaIsaIsbeRbrzbrAbrBbrCbrDbrEbrFbrGbrHbrIbrIbrIbrIbrIbrJbrKbrLbrMbrNbrObrPbrQbrRboNbrSbrTbrUbrVbrWboTbnxbgDbfdbrXbrYbrZbsabsabffbsbbscbsdbnFbsebkQbsfbnFbsgbshbsibsjbskbslbsmbsnbsobspbAFbsrbssbstbsubsubsubsvbswbsxbgSbsybszbjJbjJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaafaaaaaaaaaaaaabsaaaaaaaaabljbljbljbljbljbljbljbnRbjUbjUbnSbjSbjSbjSbnTbnUbnUbnUbjSbjSbjSbjSbqEbnVbevbnWbnXbnYbnZboabobbocbbcbmVbodboebofbogbohboibojbokbolbombonblEaafaaabfXboobopbopbopboqbhuaaaaafblJborbosbotblJboublJblPblJbovaIsaLfbowboxboybozboAboBbePboCbkubhFbeRboDboEbnobnoboFboGboHboIboJboKbgsboLboMboNboOboPboQboRboSboTbnxbgDbfdboUboVboWboXboYbffboZbnDbnDbpabpbbkQbpcbqHbpebpfbpgbnJbphbpibijbpjbpkbplbfmbpmbpnbpnbpnbpnbpnbpnbpnbikbgSbpobppbjJbjJaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaafaaaaaaaaaaaaaagaaaaaaaaabljbljbljbljbljbljbljbpqbprbpqbpsbptbjSbjSbiDbjSbjSbjSbjSbjSbpuaYLaYLbpvbpwbjZbpxbpybexbpzbbcbpAbbcbpBblQbmWbpCbpDbpEbpFbpGbpHbpIbpJbpKblEaaaaaabfXbpLbpMbpNbpMbpObhuaaaaaabpPbpQbpRbpPbpPbpPbpPbpSbpPbpTaKWaKWbePbePbpUbpVbpWbpXbePbpYbkubpZbqabqabqabqabqabqbbqcbqdbqebqabqfbqabqgbqhboNbqibqjbqkbqlbqmbqnbnxbqobqpbqqbqrbqrbqsbqtbqubqvbqwbqwbqxbqybkQbqzbqAbqBbqCbqDbnJbnJbsqbqFbqGbtrbnJbfmbpnbpnbqIbqJbqKbqLbqMbpnbqNbqObqPbqQbqRbjJaaaaafaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaaaafaagaaaaaaaaabljbljbljbljbljbljbljbqSbqTbqSbqUbjSbjSbjSbnTbnUbnUbnUbjSbjSbqVbqWaYLbqXbbcbbcbqYbqZbrabrbbbcbbcbbcbpBblQbrcaIsbpDbpEbrdbrebrfbrgbrhbriblEaafaafbrjbrkbrlbrmbrnbrobrpaafaafbrqbrrbrsbrtbrubrvbrwbrxbpPbryaIsaIsbeRbrzbrAbrBbrCbrDbrEbrFbrGbrHbrIbrIbrIbrIbrIbrJbrKbrLbrMbrNbrObrPbrQbrRboNbrSbrTbrUbrVbrWboTbnxbgDbfdbrXbrYbrZbsabsabffbsbbscbsdbnFbsebkQbsfbnFbsgbshbsibsjbskbslbsmbsnbsobspbAFbsrbssbstbsubsubsubsvbswbsxbgSbsybszbjJbjJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaaaafabsaaaaaaaaabljbljbljbljbljbljbljbnRbjUbjUbsAbjSbjSbjSbiDbjSbjSbjSbjSbjSbqVbsBaYLbsCbsDbjZbsEbsFbsGbevbbcbbcbsHbmVbsIbrcaIsbpDbpEblEbsJbsKbsLbsMbsNblEaaaaaaaafbfXbsObsPbsObhuaafaaaaaabrqbsQbsRbsSbsTbsUbsUbsVbsWbsXaIsaIsbeRbsYbgsbsZbtabtbbtcbtbbtdbtebtfbtgbtfbtfbtfbthbtibgsbhFbtjbtkbtkbtlbtmboNboNbtnbtobtpbqmboTbnxbfcbfdbtqbtqbtqbtqbtqbffbnFbnFbnFbnFbAGbtsbAHbnFbttbtubtvbtwbtwbtwbtwbtxbtybtzbtAbtBbtCbtDbtEbtEbtFbtGbpnbtHbgSbsybszbjJaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaaaafabsaaaaaaaaabljbljbljbljbljbljbljbqSbqTbqSbmHbtIbjSbjSbtJbjSbtIbjSbjSbjSbqVbtKaYLbtLbtMbobbtNbtObexbpwbjZbtPbtQbmVbsIbrcaXrbpDbtRblEbtSbtTbtUbtVbncblEaaaaaaaafbtWbtXbopbtYbtZaafaaaaaabrqbuabubbucbudbuebufbugbpPbuhaIsaIsbnobnobuibujbqbbukbulbumbunbuobupbuqbupbuqbupbuqbupbuqburbusbtkbutbuubuvbuwbuxbuybuzbuAbuBbuCbnxbuDbuEbuFbnHbuGbiebiebuHbiebiebuIbuJbuKbuLbuMbtwbuNbuObuPbuQbuQbuQbuRbuRbuRbuRbuRbuSbuTbuUbuVbuUbuWbuUbpnbtHbgSbsybuXbjJbjJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaaaafaafaaaaaaaaabljbljbljbljbljbljbljbuYbuZbuYbvabvbbvabvabvabvabvabvcbvdbjSbqVbveaYLbvfbbcbvgbvhbvibvjbvkbvkbvkbvjbvjbvlbrcaJFbvmbpEblEbvnbvobvpbvqbvrblEaaaaaaaafbvsbvtbrmbvubvvaafaaaaaabrqbvwbvxbvybvzbuebufbugbpPbvAaIsaIsbvBbvCbvDbvEbvFbvGbuqbvHbvIbvJbvKbvLbvMbvNbvObvNbvPbuqbhFbkubtkbvQbvRbvSbvTbvUbvVbvWbvXbvXbvYbvZbwabwbbwcbwdbwebwfbwgbwfbwfbwhbwfbwfbwibwjbwkbwkbwlbwmbqDbuQbwnbwobwpbwqbwrbwsbuRbwtbwubwvbwwbwxbwubwybpnbtHbgSbwzbqQbwAbjJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -6618,23 +6612,23 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaafaaaaaaaaabljbljbljbljbljbljbljaaaaafaaaaaaaafaaaaaaaafaaabwBbxDbxEbxFbxGbxHbxIbwDbxJbxKbxLbxMbxNbxObxPbxQbxRbvjbsIbrcaIsaIsaIsbxSaLmbxTaKWbxUbxVbxWaWjaWjaWjbxXbxYbxZbyabybaIsaIsaIsaIsaLmaIsaKWaIsaIsaIsbxSaIsbvAaIsbycbuqbydbyebyfbygbyhbuqbyibyjbykbylbwWbwXbwXbymbynbyobwWbhFbypbtkbrVbyqbyrbysbxjbytbyubyvbywbnxbnxbfcbyxbxmbyybyzbyAbyBbyCbyDbxmbyEbyFbyGbyHbyIbxrbyJbyKbyLbyMbyNbyObyPbyQbyRbySbxAbyTbyTbyTbyTbyTbyTbyTbpnbtHbgSbsybszbjJaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaafaaaaafaaaaaaaaaaaaaafaaaaaaaaabljbljbljbljbljbljbljaaaaafaaaaaaaafaaaaaaaafaaabwDbyUbyVbyWbyXbyYbyZbzabzbbzcbzdbzebzfbzgbzhbxQbzibvjbsIbzjaIsaIsaIsaIsaIsaIsaKWaIsbrcaIsaIsaIsaIsaIsbzkbzlbzmaIsaIsaIsaIsaIsaIsaIsaKWbznaIsaIsaIsaIsbvAbzobzpbulbzqbzrbzsbzrbztbuqbzubvIbvJbzvbuqbzwbzxbzybzzbzAbuqbhFbkubtkbtkbtkbtkbtkbnxbnxbnxbnxbnxbnxbzBbgDbzCbxmbzDbzEbzFbzGbzHbzIbxmbzJbzKbzLbzMbzNbxrbyJbzObzPbzQbzRbzSbzSbzSbzTbzUbxAbyTbzVbyTbzWbyTbyTbyTbpnbtHbgSbsybszbjJbjJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaabljbljbljbljbljaaaaaaaafaaaaaaaafaaaaaaaafaaabwBbzXbzYbzZbAabAbbAcbwDbxKbxKbAdbAebvkbAfbAgbAhbAibvjbAjbAkbAlbAlbAlbAmbAlbAlbAnbAlbAoaIsbApbAqbArbArbAsbAtbAubAvbAwbAxaWjaWjbAyaWjbAzbAAaWjbABbACbADbAEaIsaIsbuqbALbAJbEwbupbExbuqbupbAKbHjbuqbuqbuqbuqbuqbuqbuqbuqbhFbkubgsbAMbANbAObAPbAQbARbASbATbAUbAQbzBbgDbAVbxmbAWbAXbAYbAZbBabBbbxmbBcbBdbBebBfbBgbxrbyJbBhbBibuRbBjbBkbBlbBmbBnbBobxAbyTbyTbyTbBpbyTbyTbyTbpnbtHbqObBqbqQbqRbjJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaafaagapKapKapKapKapKapKapKaagaafaafaafaafaaaaaaaafaaabwBbwBbwDbwDbwDbwDbwBbwBbBrbBsbBtbBubvjbvjbvjbvjbvjbvjbBvbBwaIwaIwaIwaIwbBxbBxbBxbBxbBxbBxbBxbBxbBxbBxbBybBzbBAbBBbBBbBBbBBbBBbBCbBBbBBbBDbBBbyxbBEbyxaIxaJGbBFbuqbBGbBHbBIbBJbBKbuqbBLbyjbBMbBNbBObBPbBQbBRbBSbBTbAIbBUbBVbBWbBWbBXbBYbBZbCabCbbCcbCdbCebAQbzBbgDbCfbCfbCfbCfbCfbCfbCfbCfbCfbCgbCgbCgbCgbCgbCgbChbCibCjbuRbuRbuRbuRbuRbuRbuRbxAbpnbpnbpnbpnbpnbpnbpnbpnbtHbgSbCkbClbjJbjJaafaafaafaagaagaagaagaagaagaagaagaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafbCmbCnaafaafaagaafaaaaafaaaaaaaagaisaisbCoaisaisaagaafaaaaaabwEbCpbCqbCrbCsbCtbCubCvbCwbCxbCybCzbCAaaaaaaaafaaabBxbCBbCCbCDbCEbCFbCGbCHbCIbCJbCKbCLbCMbBBbCNbCObCPbCQbCRbCQbCQbCSbCTbCUbCVbyxbyxbyxbyxbuqbCWbCXbCYbCXbCZbuqbDabvIbDbbDcbDdbDebDdbDdbDfbDgbDhbDibDjbDjbDjbDkbDlbvEbDmbDnbDobDpbDqbAQbzBbgDbCfbDrbDrbDrbDsbDrbDrbDrbCfbDtbDtbDubDtbDtbCgbDvbDwbqDbDxbDybDzbDAbDBbDCbDDbDEbDFbDGbDHbDIbDJbDKbDLbDLbDMbDNbDybDybjJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaafaaabwBbwBbwDbwDbwDbwDbwBbwBbBrbBsbBtbBubvjbvjbvjbvjbvjbvjbBvbBwaIwaIwaIwaIwbBxbBxbBxbBxbBxbBxbBxbBxbBxbBxbBybBzbBAbBBbBBbBBbBBbBBbBCbBBbBBbBDbBBbyxbBEbyxaIxaJGbBFbuqbBGbBHbBIbBJbBKbuqbBLbyjbBMbBNbBObBPbBQbBRbBSbBTbAIbBUbBVbBWbBWbBXbBYbBZbCabCbbCcbCdbCebAQbzBbgDbCfbCfbCfbCfbCfbCfbCfbCfbCfbCgbCgbCgbCgbCgbCgbChbCibCjbuRbuRbuRbuRbuRbuRbuRbxAbpnbpnbpnbpnbpnbpnbpnbpnbtHbgSbCkbClbjJbjJaafaafaafaagaagaagaagaagaagaagaagaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafbCmbCnaafaafaagaafaaaaafaaaaaaaaaaafaaaaouaaaaaaaaaaafaaaaaabwEbCpbCqbCrbCsbCtbCubCvbCwbCxbCybCzbCAaaaaaaaafaaabBxbCBbCCbCDbCEbCFbCGbCHbCIbCJbCKbCLbCMbBBbCNbCObCPbCQbCRbCQbCQbCSbCTbCUbCVbyxbyxbyxbyxbuqbCWbCXbCYbCXbCZbuqbDabvIbDbbDcbDdbDebDdbDdbDfbDgbDhbDibDjbDjbDjbDkbDlbvEbDmbDnbDobDpbDqbAQbzBbgDbCfbDrbDrbDrbDsbDrbDrbDrbCfbDtbDtbDubDtbDtbCgbDvbDwbqDbDxbDybDzbDAbDBbDCbDDbDEbDFbDGbDHbDIbDJbDKbDLbDLbDMbDNbDybDybjJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaagaagaagaagaagbDOaagaafaafaaaaaaaaabDPbDQcuybDQbDSaaaaafaaabwEbwEbDTbxKbDUbDVbDWbDXbDYbDYbDZbEabEbbEcaafbEdbEebEfbEgbEhbEibEjbEibEkbEibEibEibBxbElbEmbEnbBBbEobEpbEqbErbEsbCQbEtbBDbBBbEubEvbHkbHlbEybEzbEAbEBbCXbECbCXbyjbEDbEEbEFbEGbuqbEHbEIbCXbCXbEJbEKbnobnobnobnobnobELbEMbqbbENbEObEPbCdbEQbAQbzBbgDbCfbDrbDrbDrbDrbDrbDrbDrbCfbERbESbETbEUbEVbCgbEWbEXbEYbEZbFabFbbFcbFdbFdbFdbFdbFebFfbFgbDIbjJbFhbFibFjbFjbFkbFlbFmaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbFnbFobFnaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaagaafbFpaafaagaagaagaagaagaagaaaaaaaaabFqbFrbFsbFrbFqbFtbFtbFtbwEbFubxKbFvbFwbFxbFybwEbBwbFzbBwbBwbFAbFBaaabFCbFDbFEbFFbEibEibFGbEibFHbFIbFJbEibBxbElbFKbFLbBBbFMbFNbFObFPbFQbCQbFRbBDbzBbFSbFTbFUbFTbFVbFWbuqbFXbDdbFYbDdbFZbulbGabDebGbbuqbGcbCXbCXbCXbGdbGebnobGfbGgbGhbGibBXbGjbvEbGkbCdbCdbGlbGmbGnbGobGpbCfbDrbDrbDrbDrbDrbDrbDrbCfbGqbGrbGsbGtbGubGvbGwbGxbtvbGybGzbFdbGAbFdbFdbFdbFdbFdbFdbFdbDIbGBbGCbGDbGEbGFbGGbGHbFmaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbFobFnbGIbFnbFoaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbCmaagaagaagaagaagaagaagaafaagaagaagaafaaaaaaaaacuybGJbGKbGJcuybFtbGLbGMbwEbGNbxKbGObxKbxKbFybwEbGPbGQbGRbBwbFAbFBaafbFCbGSbGTbGUbGVbGWbGVbGVbGXbGYbGVbGVbGZbHabHbbHcbBBbHdbBBbBBbBBbBBbHebHfbHgbHhbHibHKbHmbKkbKibKibuqbHnbHobHpbHqbHrbuqbHsbHtbHubuqbHvbHwbHxbHybHzbHAbnobHBbHCbqabHDbHEbHFbHGbDmbHHbCdbCdbHIbAQbzBbgDbCfbCfbHJbDrbDrbKDbHJbCfbCfbHLbHMbHNbHObHPbCgbHQbHRbtvbHSbHTbHUbHUbHVbHWbHXbHUbHYbHZbIabIbbIcbIdbIebIfbIgbIhbIibFmaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbIjbFobIkbIlbImbFobIjaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaafaaaaagaagaagbCnaagbInaagaagbIoaagaafaafaaaaaaaaabFqbGJbGJbGJbIpbIqbxKbxKbIrbGNbxKbxKbxKbxKbFybwEbIsbGRbItbBwbFAbFBaaabFCbIubIvbIwbEibEibIxbEibIybIzbIAbIBbBxbICbIDbIEbIFbIGbIHbIHbIHbIHbIHbIIbIHbIJbIKbILbIMbINbIObIPbulbulbulbulbulbulbulbulbulbulbulbulbulbulbulbulbIQbnobnobnobnobnobIRbISbhEbAQbAQbAQbAQbAQbAQbzBbgDbCfbITbIUbIVbIWbIXbIYbITbIZbHLbHMbHNbJabJbbJcbJdbJebuPbJfbDybJgbJgbJhbJibJjbJkbFdbFdbJlbDIbJmbJnbJobDybJpbLQbLQbDyaafaafaisaafaafaafaisaafaafaafaisaafaafaafaisaafaafaafaisaafaafaafbFobFobJqbJrbJrbJrbJsbFobFoaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaagaagaafaafaagaagbJtaagaagaagaagaafaaaaaaaaacuybGKbGKbGKcuybFtbJubJvbJwbJxbxKbxKbJybJzbJAbwEbBwbBwbBwbBwbFAbEcaafbJBbEebJCbEgbJDbEibJEbEibEibEibEibEibBxbElbJFbJGbJHbJIbJIbJIbJIbJIbJIbJJbJKbJLbJMbJNbJObJPbJQbJRbJSbJTbJSbJSbJSbJSbJSbJSbJSbJSbJSbJSbJSbJSbJSbJUbJVbnobHBbJWbBWbJXbBXbJYbJZbKabKbbKbbKcbKdbJMbKebKfbCfbKgbKhbNMbKjbOXbKlbKmbIZbIZbIZbIZbIZbIZbKnbKobKpbKqbKrbDybDIbDIbDIbDIbDIbDIbKsbFdbFdbDIbjJbFhbgSbDybKtbKubKvbKwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbKxbKybKxbJrbKzbJrbKAbKBbFnaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabCmaagaagaagaagaagaagaafaagaafaafaagaagaafaaaaaaaaabFqbKCbVtbKEbFqbFtbFtbFtbwEbwEbFtbFtbFtbwEbwEbwEaaaaaaaaabKFbKGbFBaaaaaaaafaaabBxbKHbKIbKJbEibKKbKLbKMbKNbKObKPbKQbKRbKSbKTbKUbKVbKWbKXbKTbKTbKTbKTbKTbKYbKZbKTbKTbLabKTbLbbKTbKTbKTbKTbKTbyxbyxbyxbyxbyxbyxbyxbyxbLcbLdbnobLebLfbLgbLhbLibLjbLkbLlbLmbLmbLnbLmbLmbLobLpbCfbLqbLrbLsbLrbLtbLrbLubLvbLwbLxbLybLzbLAbXNbyJbHRbqDbLCaafbLDbLEbLFbLGbLHbLGbLIbLJbLKbDIbLLbtHbLMbDybDybDybDybDyaafaafapKaafaafaafapKaafaafaafapKaafaafaafapKaafaafaafapKaafaafaafbFobFobLNbJrbJrbJrbLObFobFoaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaafaagaagaagaagaagabpaaaaafaafaafaaaaaaaaabLPbDQbXQbDQbLRaaaaafaaaaafaagaafaaaaafaagaafaaaaaaaaaaafbKFbFAbFBaafaafaafaafbBxbBxbBxbBxbBxbBxbBxbBxbBxbBxbLSbLTbLUbLVbKTbKUbKVbKWbKXbLWbLWbLXbLYbLZbMabMbbMcbMdbMebMfbMgbMhbMibMjbMkbMlbMmbMmbMmbMmbMmbMmbMnbyxbLcbMobMpbMpbMpbMpbMpbMqbMrbMsbMpbMpbMpbMpbMpbMpbMobMtbMubMvbMwbMxbMwbMybMzbMAbMBbMBbMBbMBbMBbMBbMCbMDbMEbqDbLCaafbLDbMFbMFbMGbMHbMIbMJbMKbMLbDIbMMbtHblabjJbMNbMObjJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaafaafbIjbFobMPbMQbMRbMSbIjaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaagapKapKapKapKapKaagaafaaaaafaagaafaaaaafaagaafaaaaaaaaaaaabKFbFAbFBaaaaaaaaaaafbMTbMUbMUbMVbMWbMXbMXbMYbMYbMTbElbMZbKRbNabKTbNbbNcbNcbNdbNebLWbNfbNgbNhbNibNjbNkbNlbNmbNnbNobNpbNobNqbNrbNsaafbNtbNtbNtbNtbNtbNubyxbLcbNvbNwbNxbNybNzbMpbNAbNBbNCbMpbNDbNEbNFbNEbNDbMobNGbCfbLrbLrbLrbNHbLrbLrbNIbNJbNKbNKbNLbNKbNKbYEbNNbNObNPbLCaafbLDbMFbNQbLGbNRbLGbNSbNTbNUbDIbszbtHblabjJbszbszbjJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbFobFnbNVbFnbMSaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaafaaaaagaagaagbCnaagbInaagaagbIoaagaafaafaaaaaaaaabFqbGJbGJbGJbIpbIqbxKbxKbIrbGNbxKbxKbxKbxKbFybwEbIsbGRbItbBwbFAbFBaaabFCbIubIvbIwbEibEibIxbEibIybIzbIAbIBbBxbICbIDbIEbIFbIGbIHbIHbIHbIHbIHbIIbIHbIJbIKbILbIMbINbIObIPbulbulbulbulbulbulbulbulbulbulbulbulbulbulbulbulbIQbnobnobnobnobnobIRbISbhEbAQbAQbAQbAQbAQbAQbzBbgDbCfbITbIUbIVbIWbIXbIYbITbIZbHLbHMbHNbJabJbbJcbJdbJebuPbJfbDybJgbJgbJhbJibJjbJkbFdbFdbJlbDIbJmbJnbJobDybJpbLQbLQbDyaafaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaafbFobFobJqbJrbJrbJrbJsbFobFoaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaagaagaafaafaagaagbJtaagaagaagaagaafaaaaaaaaacuybGKbGKbGKcuybFtbJubJvbJwbJxbxKbxKbJybJzbJAbwEbBwbBwbBwbBwbFAbEcaafbJBbEebJCbEgbJDbEibJEbEibEibEibEibEibBxbElbJFbJGbJHbJIbJIbJIbJIbJIbJIbJJbJKbJLbJMbJNbJObJPbJQbJRbJSbJTbJSbJSbJSbJSbJSbJSbJSbJSbJSbJSbJSbJSbJSbJUbJVbnobHBbJWbBWbJXbBXbJYbJZbKabKbbKbbKcbKdbJMbKebKfbCfbKgbKhbNMbKjbOXbKlbKmbIZbIZbIZbIZbIZbIZbKnbKobKpbKqbKrbDybDIbDIbDIbDIbDIbDIbKsbFdbFdbDIbjJbFhbgSbDybKtbKubKvbKwaagaagaaaaafaafaafaafaaaaafaafaaaaafaafaafaaaaafaafaafaafaaaaafaafbKxbKybKxbJrbKzbJrbKAbKBbFnaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabCmaagaagaagaagaagaagaafaagaafaafaagaagaafaaaaaaaaabFqbKCbVtbKEbFqbFtbFtbFtbwEbwEbFtbFtbFtbwEbwEbwEaaaaaaaaabKFbKGbFBaaaaaaaafaaabBxbKHbKIbKJbEibKKbKLbKMbKNbKObKPbKQbKRbKSbKTbKUbKVbKWbKXbKTbKTbKTbKTbKTbKYbKZbKTbKTbLabKTbLbbKTbKTbKTbKTbKTbyxbyxbyxbyxbyxbyxbyxbyxbLcbLdbnobLebLfbLgbLhbLibLjbLkbLlbLmbLmbLnbLmbLmbLobLpbCfbLqbLrbLsbLrbLtbLrbLubLvbLwbLxbLybLzbLAbXNbyJbHRbqDbLCaafbLDbLEbLFbLGbLHbLGbLIbLJbLKbDIbLLbtHbLMbDybDybDybDybDyaafaaaaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaafbFobFobLNbJrbJrbJrbLObFobFoaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaafaagaagaagaagaagabpaaaaafaafaafaaaaaaaaabLPbDQbXQbDQbLRaaaaafaaaaafaagaafaaaaafaagaafaaaaaaaaaaafbKFbFAbFBaafaafaafaafbBxbBxbBxbBxbBxbBxbBxbBxbBxbBxbLSbLTbLUbLVbKTbKUbKVbKWbKXbLWbLWbLXbLYbLZbMabMbbMcbMdbMebMfbMgbMhbMibMjbMkbMlbMmbMmbMmbMmbMmbMmbMnbyxbLcbMobMpbMpbMpbMpbMpbMqbMrbMsbMpbMpbMpbMpbMpbMpbMobMtbMubMvbMwbMxbMwbMybMzbMAbMBbMBbMBbMBbMBbMBbMCbMDbMEbqDbLCaafbLDbMFbMFbMGbMHbMIbMJbMKbMLbDIbMMbtHblabjJbMNbMObjJaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaafaafbIjbFobMPbMQbMRbMSbIjaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaafaafaafaafaafaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaaaaafaagaafaaaaafaagaafaaaaaaaaaaaabKFbFAbFBaaaaaaaaaaafbMTbMUbMUbMVbMWbMXbMXbMYbMYbMTbElbMZbKRbNabKTbNbbNcbNcbNdbNebLWbNfbNgbNhbNibNjbNkbNlbNmbNnbNobNpbNobNqbNrbNsaafbNtbNtbNtbNtbNtbNubyxbLcbNvbNwbNxbNybNzbMpbNAbNBbNCbMpbNDbNEbNFbNEbNDbMobNGbCfbLrbLrbLrbNHbLrbLrbNIbNJbNKbNKbNLbNKbNKbYEbNNbNObNPbLCaafbLDbMFbNQbLGbNRbLGbNSbNTbNUbDIbszbtHblabjJbszbszbjJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbFobFnbNVbFnbMSaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaagaagaagaafaafaafaafaafaafaafaafaaaaafaaaaafaaaaafaaaaafaaaaafbBwbBwbKFbKFbKFbBwbBwaaaaaaaaaaaabKFbFAbFBaaaaaaaaaaafbMTbNWbMVbMVbMVbMVbMXbNXbNYbNZbOabKQbObbOcbOdbOebOfbOgbOhbOibOjbOfbOfbOfbOhbOkbOlbOmbOnbOobMkbOpbOqbOrbOsbOtbMmbOubOvbOwbOxbNtbNubOybLcbMobOzbNDbNDbNDbMpbOAbOBbOCbMpbNEbODbNEbOEbOFbOGbOHbCfbOIbOJbOKbOLbOMbONbOObOPbOQbORbOSbOTbOUbIZbZCbOWchdbOYbOYbDIbDIbDIbDIbDIbDIbDybDybDybDIbszbtHbOZbszbszbPabjJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbFnbFobFnaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaagaagaagaagaagaagaagaaaaaaaagaagaagaagaagaagaagaagaafaaaaaabBwbPbbGRbPcbGRbPdbBwaaaaaaaaaaaabKFbKGbFBaaaaafbKFbKFbMTbMVbPebPfbMVbMVbPgbPhbMXbPibElbMZbPjbPkbPlbPmbPnbPobPpbPqcjYbPobPrbPobPsbPtbPubMdbPvbPwbPxbPybPzbPAbPBbPCaafbPDbPEbOxbPFbNtbNubOybLcbMobPGbPHbNDbPIbMpbPJbPKbPLbMpbNDbPMbPNbNDbNDbMobLcbCfbIZbIZbIZbIZbKnbPObPPbPQbKnbIZbIZbIZbIZbIZbPRbPSbPTbPUbPVbPWbPXbPYbPXbPZbOYbQabQbbQcbQdbQebtHblabjJbjJbjJbjJabsaafaafaafaagaagaagaagaagaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaafaafaaaaaaaafaagaafaafaafaafaafaafaafaafaafaafaafaafaafbBwbQfbGRbGRbGRbQgbBwaaaaaaaaaaaabKFbFAbFBaaaaafbKFbQhbQibQjbQkbQlbQlbQlbQlbQlbQmbQnbQobMZbPjbQpbQqbQrbQsbNobQtbQuckabQvbQwbQxbQybQzbQzbQAbQBbMkbQCbQDbQEbQFbQGbQHbQIbOubQJbOxbOxbNtbNubOybLcbMobQKbNDbQLbMqbMpbMpbQMbMpbMpbQNbQObQPbQNbQNbMobLcbCfbQQbQRbQRbQSbQTbLrbQUbQVbQWbQXbDrbDrbDrbIZbQYbQZbRabRbbRcbPWbRdbRebRfbRgbZCbQbbRhbQbbQdbCkbRibRjbjJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBwbQfbGRbGRbRkbRlbBwaaaaafaaaaaabKFbFAbEcbBwbBwbBwbRmbMTbRnbMVbMVbMVbRobRpbRqbRrbMTbElbMZbPjbQpbPlbRsbRtbNobNobRubLWbRvbRwbRxbRybNobNobMdbRzbRAbRBbRCbRDbREbRDbRFaafbNtbNtbNtbNtbNtbNubyxbLcbMobRGbRHbRHbRIbRJbRKbRLbRMbRNbNDbPMbNDbNDbNDbMobLcbCfbDrbDrbDrbRObRPbLrbRQbLrbRRbRSbDrbDrbDrbIZbRTbRUbRVbRWbRXbRYbRZbSabRYbSbbOYbScbQbbSdbQdbjJbSebSfbjJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaisaafaafbSgaafaafaafbBwbBwbBwbBwbBwbBwbBwbBwbBwbBwbShbBwbBwbBwbKFbKFbKFbSibSjbSkbSlbSmbSnbSjbSobQnbQnbQnbQnbQnbQnbQnbQnbQnbSpbSqbSrbPjbSsbKTbStbSuckabSvckabLWbNobNobNobRybSwbSxbSxbSybSzbSAbOpbSBbSCbSDbOtbMmbOubSEbSFbSFbNtbNubyxbLcbSGbSHbSHbSHbSIbSJbNDbSKbNDbNDbNDbPMbNDbNDbNDbMobLcbCfbDrbDrbDrbSLbSMbQVbSNbLrbSObSPbQRbQRbSQbIZbSRbSSbPTbSTbSUbPWbRfbSVbRYbSWbOYbSXbSXbSXbQdbSYbSZbSfbjJaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaagaafaafbSgaafaafaafbBwbBwbBwbBwbBwbBwbBwbBwbBwbBwbShbBwbBwbBwbKFbKFbKFbSibSjbSkbSlbSmbSnbSjbSobQnbQnbQnbQnbQnbQnbQnbQnbQnbSpbSqbSrbPjbSsbKTbStbSuckabSvckabLWbNobNobNobRybSwbSxbSxbSybSzbSAbOpbSBbSCbSDbOtbMmbOubSEbSFbSFbNtbNubyxbLcbSGbSHbSHbSHbSIbSJbNDbSKbNDbNDbNDbPMbNDbNDbNDbMobLcbCfbDrbDrbDrbSLbSMbQVbSNbLrbSObSPbQRbQRbSQbIZbSRbSSbPTbSTbSUbPWbRfbSVbRYbSWbOYbSXbSXbSXbQdbSYbSZbSfbjJaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabTabTbbTbbTbbTbbTcbTdbTdbTebTfbTgbThbTibTjbTkbTlbBwbGRbGRbGRbGRbGRbGRbGRbTmbTnbTobTpbTqbTrbTrbTrbTrbTsbTtbTtbTtbTubTtbTvbDYbDYbTwbEcbElbMZbPjbTxbTybTzbTAbSxbSxbTBbTCbSxbSxbTDbTEbTFbNobTGbTHbTIbTJbNobTKbTLbTMbPCaafbPDbTNbTObTPbNtbNubOybTQbTRbTRbTRbTSbMobTTbRGbTUbTVbTWbTXbTYbTZbTZbUabMobLcbCfbIZbIZbIZbIZbUbbUcbRQbUdbUbbIZbIZbIZbIZbIZbUebUfbUgbUhbUibUjbUjbUjbUjbUkbZCbSXbSXbUlbQdbUmbSZbSfbjJbjJbjJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapKaaaaafaaaaaabUnbUnbKFbGRbUobUpbUqbUrbUsbBwbUtbKFbKFbKFbKFbKFbKFbKFbKFbEcbUubUvbUvbUvbUvbUvbUvbUvbUvbUwbUwbUwbUwbUwbUxbUybEcbElbMZbPjbTxbUzbUAbUBbUCbQzbUDbUEbQzbQzbUFbUGbUHbUIbUJbUKbULbUMbNobTKbUNbUObQHbQIbOubUPbSFbSFbNtbNubOybUQbyxbyxbyxbOHbMobURbNDbNDbUSbUTbUUbUVbUWbUVbUUbMobLcbCfbQQbQRbQRbUXbQTbLrbQUbQVbUYbUZbDrbDrbDrbIZbVabVbbVcbVdbRUbRWbVebVfbVgbVhbOYbSXbSXbSXbQdbUmbSZbSfbszbszbjJaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaaaaafaaaaaabUnbUnbKFbGRbUobUpbUqbUrbUsbBwbUtbKFbKFbKFbKFbKFbKFbKFbKFbEcbUubUvbUvbUvbUvbUvbUvbUvbUvbUwbUwbUwbUwbUwbUxbUybEcbElbMZbPjbTxbUzbUAbUBbUCbQzbUDbUEbQzbQzbUFbUGbUHbUIbUJbUKbULbUMbNobTKbUNbUObQHbQIbOubUPbSFbSFbNtbNubOybUQbyxbyxbyxbOHbMobURbNDbNDbUSbUTbUUbUVbUWbUVbUUbMobLcbCfbQQbQRbQRbUXbQTbLrbQUbQVbUYbUZbDrbDrbDrbIZbVabVbbVcbVdbRUbRWbVebVfbVgbVhbOYbSXbSXbSXbQdbUmbSZbSfbszbszbjJaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaagaagaagaagbVibVjbVkbGRbVlbUpbUpbVmbGRbBwbGRbKFaaaaaaaafaaaaaaaafaaabEcbUubUvbVnbVobVpbVqbVrbVsbVncuebVubVvbVwbUwbUwbUybEcbVxbMZbPjbVybVzbVAbVAbVBbKTbKTbKTbKTbKTbVCbVDbLWbLWbLWbVEbNobTIbNobTKbTLbVFbPCaafbNtbNtbNtbNtbNtbNubOybUQbyxbVGbzBbOHbNvbVHbVIbVJbVKbVLbVMbVNbUWbVNbVObMobLcbCfbDrbVPbDrbVQbRPbLrbRQbLrbRRbVRbDrbVPbDrbIZbVSbVTbVUbVVbVWbVXbVYbVZbWabWbbZCbWcbWdbWebQdbSXbSZbWfbjJbszbjJbjJbjJaagaagaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbUnbUnbKFbWgbWhbWibWjbWkbGRbWlbGRbKFaaaaaaaafaaaaaaaafaaabEcbUubUvbVnbWmbWnbWobWpbWqbVncufbWrbWsbWtbWubUwbUybEcbElbMZbPjbWvbWwbKTbWxbWybKTbWzbWAbWBbKTbWCbRybWDbLWbWEbUMbNobUKbWFbWGbSCbWHbOtbMmbOubWIbWJbWKbNtbNubyxbUQbyxbAVbzBbOHbMobWLbWMbWNbWObUTbWMbWPbUWbWPbOEbOGbLcbCfbDrbDrbDrbWQbWRbQVbSNbLrbSObWSbQRbQRbSQbCfbQdbWTbWUbWUbQdbQdbWVbWWbWXbWYbWZbXabUjbXbbSXbSXbSZbSfbjJbXcbjJbXdbjJaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbKFbXebXfbXfbXgbUsbXhbBwbKFbKFaaaaaaaaaaaaaaaaaaaaabEcbUubUvbXibXjbXkbWobXlbXibXicufbXmbXnbWtbXobUwbUybEcbElbMZbXpbXqbXqbXrbXsbXtbXubXvbXwbXxbKTbNobRybXybXzbWEbXAbNobUKbWFbTKbTLbXBbPCaafbPDbXCbXDbXEbNtbNubyxbUQbyxbKkbKkbOHbMobMpbXFbXGbMpbXHbMpbMpbMpbMpbMpbMobLcbCfbIZbIZbIZbIZbUbbXIbRQbXJbUbbIZbIZbIZbIZbCfbRYbXKbRYbRYbRYbQdbWVbWWbXLbXMcugbXObVdbXPbQdbSXbSZbSfbjJbszbszbszcdKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -6650,19 +6644,19 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafcfZcgacgacgbcgccgccgccgccgccgccgccgccgccgccgccgdcgecgfcgecggcghcgicgjcfacgkcglbPdbBwbKFbKFbKFbKFbKFbKFbKFbKFbKFbBwbBwcgmbTrcgncgocfgcgpcgpcgqcfgcgrcgscgtcgucgvcgwcgxcgycgzcgAcdpcgBcgCcgDcgEcgFcgGcgHcgIcgJcfgaafcgKaafbNuaafcgKaafbNuaafcgLaafcgLaaaaaaaaaaaaaaaaaaaaacdEcgMcgNcgOcgPcgQcgRcgScdEbzBcgTcgUcgVcgWcgXbEzcgYcgZbyxbjJcdKcdKcdKcdKbjJcdKcdKcdKcdKbjJcdKcdKcdKcdKbjJchabszbjJchbchcbjJbjJcdKcdKbjJbjJcusbZycutbjJchfchgbpmbjJbjJbjJbjJbjJaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaafaaaaafaafchhaafaaaaafchhaafaaaaafchhaafaaaaaacdQcdQcdQchichjchkcdRbGRbGRbGRbGRbBwaaaaaaaafaaaaaaaafaaaaaaaafaaabBwchlbBwchmchncfgchochpchqchrchschtcfncfncfnchuchvchwchxchtcdpchychzchAcgEchBcdpchCchDchEcfgbNtchFbPDchFbNtchFbPDchFbNtchGbPDchHbNtaaaaaaaaaaaaaaaaaacdEchIchJchKchLchMchNchOchPchQchQbGochRchSbGochTbyxbyxbyxaaaaaaaafaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaabjJchUbLLbjJchebZybjJaaaaaaaaaaaabjJbszbZychVchWchWchXchYchWaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeabeabdaafaafcauchZcawaaacauchZcawaaacauchZcawaafaafaafaafcdQcdRcdRcdRcdRciabXhbGRbGRbBwaafaafcibcibcibcibcibcibcibaafbBwbBwbBwciccidcfgciechqchqchrcifcigcigcihciicijcikcikcilcfncdpcimcinciocipciqcdpcircefciscfgbNtcitciucivbNtciwcixciybNtcizciAciBbNtaaaaaaaaaaaaaaaaaaciCciDchJciEciFciGciHciIcdEaafbyxccUciJbOybOybyxbyxaaaabsaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjJciKbjJbjJciLbZybjJbjJcdKcdKbjJbjJbszciMciNchWciOciPciQchWaaaaaaaafaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacauchZcawaafcauchZcawaaacauchZcawaaaaaaaaaaaaaaaaaaaaaaaabBwbBwbBwciRbGRbBwaaaaaacibciSciTciUciTciVcibaaabBwbRkbGRciWcidcfgciXciXciYcfgciZcjacjbcjccfocjdcjecjfcjgcjgcdpcjhcjicjjcjkcjlcjmcjncjocjpcfgbNtcjqcjrcjqbNtcjscjtcjsbNtcjucjvcjwbNtaaaaaaaaaaaaaaaaaacdEcjxcjycjzcjAcjBcjCcjDcdEaafaaaaafcjEaaaaaaaafaaaaaaabsaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaacdKcdKcdKbjJcjFbCkbjJcjGcjHcjIceKcjIcjIcjIcjIcjJcjKcjLchWcjMcjNcjOchWaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacauchZcawaafcauchZcawaaacauchZcawaaaaaaaaaaaaaaaaaaaaaaaabBwbBwbBwciRbGRbBwaaaaaacibciSciTciUciTciVcibaaabBwbRkbGRciWcidcfgciXciXciYcfgciZcjacjbcjccfocjdcjecjfcjgcjgcdpcjhcjicjjcjkcjlcjmcjncjocjpcfgbNtcjqcjrcjqbNtcjscjtcjsbNtcjucjvcjwbNtaaaaaaaaaaaaaaaaaacdEcjxcjycjzcjAcjBcjCcjDcdEaafaafaafcjEaaaaaaaafaaaaaaabsaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaacdKcdKcdKbjJcjFbCkbjJcjGcjHcjIceKcjIcjIcjIcjIcjJcjKcjLchWcjMcjNcjOchWaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafcauchZcawaaacauchZcawaaacauchZcawaafaaaaaaaaaaaaaaaaaaaaacjPcjQcjPbGRbGRbBwaaaaaacibcjRcjScjTcjUcjVcibaaabBwcbtbGRciWcidcfgciXciXciYcfgcjWcgycuvcuucjZcuwcuvcgycuvcuvcgyckbckcckdcjdckeckfckgcfockhcfgbNtcjqckicjqbNtcjsckjcjsbNtcjwckkcjwbNtaaaaaaaaaaaaaaaaaacdEcdEcdEcklckmcknckockpckmaafaaaaafckqaaaaaaaaaaaaaaaabsaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafcdKbszckrbjJcksbszbjJcktbmDbmDckubmDbmEbmEbmEckvckvckwchWckxckyckzchWaaaaaaaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafcauchZcawaaacauchZcawaafcauchZcawaafaafaafaafaafaafaafaafbBwbBwbBwbBwbGRbBwaafaafcibckAckBckCckDckAcibaafbBwcfgckEckFckGcfgciXciYciYcfgckHckIckJckKcfockLckMckNckMckMckOckPckQckRckSckTckTckTckUckVcfgbNtbNtbNtbNtbNtbNtbNtbNtbNtbNtbNtbNtbNtaaaaaaaaaaaaaaaaaaaaaaaaaaackWckmckXckYckZckmaafaaaaaaaaaaaaaaaaaaaaaaaaabsaaaaaaaaaaaaaafaafaaaaaaaaaaaaaafaagcdKclabszbXcchabszbjJbjJbjJbjJbjJbszbjJaaaaafaaaaafaaaclbclbclcclbclbaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaafcaucldcawaaacaucldcawaaacaucldcawaafabdaafaaaaaaaaaaaaaaaaaaaaaaaabKFbGRbKFaaaaaacibcleclfclgclhclicibcibcibcfgcljckFclkcfgcfgcfgcfgcfgcllcfnclmcjccfocfncfncfnclncloclpcfocfocjccfnclqcfncfnclrclscfgaafaaaaaaaaaaafaafaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaacltckmckncluckpckmaisaaaaaaaaaaaaaaaaaaaaaaaaabsaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaagcdKbszbuXbjJclvbszbszbszbszbszbszbszbjJaaaaafaaaaafaaaaafclbclwclbaafaaaaaaaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaaaaafaaaaaaaaaaafaafaafaaaaaaaafaafaaaabdaafaafaaaaaaaaaaaaaaaaaaaaabKFbGRbKFaaaaaacibclxclyclzclAclBclCclDclEclCclFclGclHclIclJclKclLclMclNcigclOclPclQclRclSclTclUclTclUclVclWclXcigcigclYcigclZcmacfgcfgcfgcfgcfgcgycgycgycgycfgaisaisaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacltckmcmbcmccmdcmeaaaaaaaaaaaaaaaaaeaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacdKcdKcdKbjJciKbjJbjJcmfcmgbLLbMMbjJbjJaaaaafaaaaaaaaaaafclbclcclbaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeabeabdabeabeabpabdabdabdabdabeabdabdabecmhaaaaafaafaaaaaaaaaaaaaaaaafbKFbGRbKFaafaafcibcmicmjcmkcmlcmmcmncmocmpcmncmqcmrcmscmtcmucmvcmwcmvcmxcmycmzcmAcmBcmCcmDcmEcmFcmGcmFcmHcmIcmJcikcmAcmKcikcmLcmMcikcmNcfncmOcfgcmPcmQcmRcmScmScmTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacltckmckmcmUckmckmapKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcmVaafbjJbjJcdKcdKbjJbjJaafaafaaaaaaaaaaaaaafaaacmWaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaafcaucldcawaaacaucldcawaaacaucldcawaafabdaafaaaaaaaaaaaaaaaaaaaaaaaabKFbGRbKFaaaaaacibcleclfclgclhclicibcibcibcfgcljckFclkcfgcfgcfgcfgcfgcllcfnclmcjccfocfncfncfnclncloclpcfocfocjccfnclqcfncfnclrclscfgaafaaaaaaaaaaafaafaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaacltckmckncluckpckmaaaaafaaaaaaaaaaaaaaaaaaaaaabsaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaagcdKbszbuXbjJclvbszbszbszbszbszbszbszbjJaaaaafaaaaafaaaaafclbclwclbaafaaaaaaaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaaaaafaaaaaaaaaaafaafaafaaaaaaaafaafaaaabdaafaafaaaaaaaaaaaaaaaaaaaaabKFbGRbKFaaaaaacibclxclyclzclAclBclCclDclEclCclFclGclHclIclJclKclLclMclNcigclOclPclQclRclSclTclUclTclUclVclWclXcigcigclYcigclZcmacfgcfgcfgcfgcfgcgycgycgycgycfgaisaisaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacltckmcmbcmccmdcmeaafaafaafaafaafaaeaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacdKcdKcdKbjJciKbjJbjJcmfcmgbLLbMMbjJbjJaaaaafaaaaaaaaaaafclbclcclbaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeabeabdabeabeabpabdabdabdabdabeabdabdabecmhaaaaafaafaaaaaaaaaaaaaaaaafbKFbGRbKFaafaafcibcmicmjcmkcmlcmmcmncmocmpcmncmqcmrcmscmtcmucmvcmwcmvcmxcmycmzcmAcmBcmCcmDcmEcmFcmGcmFcmHcmIcmJcikcmAcmKcikcmLcmMcikcmNcfncmOcfgcmPcmQcmRcmScmScmTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacltckmckmcmUckmckmaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcmVaafbjJbjJcdKcdKbjJbjJaafaafaaaaaaaaaaaaaafaaacmWaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaabKFbGRbKFaaaaaacibcmXcmYcmZcnacnbcibcnccndcibcnecfncnfcjccfocngcuvcnhcjdcnicnjcnkcnkcnkcnlcnmcnncnocnpcnqcnlcnrcnrclpcfnclqcjdcnscntcnucigcnvcnwchqchqcnxcnycnzcnAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacltaagckmcnBckmcnCaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaafcnDaafaaaaafaaaaafaaaaaaaafaafaafaaaaaaaaaaafaaacmWaaaaafaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaabBwbBwbShbBwbBwaaacibcnEcnFcnGcibcibcibcibcibcfgcnHcfncnfcnIcnJcnKcuvcnLcjdcnMcnNcnOcnPcnQcfgcnRcnScnTcnUcnVcfgcnWcnXcnXcnNcnMcjdcnYcnZcfocfncoacfgcobchqcoccmScmScodaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaackqaagcoecofcoeaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaotaaaaouaaaaafaaaaafaaaaaacogcogcogcohaafaafaafaafcmWaafaafaafaafaafabpcogcogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaabBwchlbGRcoibBwaafcibcibcibcibcibaafaaaaaaaafcfgcojcfncokcolcolcomcgycgyconcfgcoocopcopcopcfgcoqcorcoscotcoucfgcopcopcopcoocfgconcgycovcfocfncfgcfgcgycgycgycgycfgapKapKaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaotaaaaouaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaacogaaaaafaaaaafaaaaaaaaacowaaaaafaafaaaaaaaaaaaacogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaabBwbBwbShbBwbBwaaacibcnEcnFcnGcibcibcibcibcibcfgcnHcfncnfcnIcnJcnKcuvcnLcjdcnMcnNcnOcnPcnQcfgcnRcnScnTcnUcnVcfgcnWcnXcnXcnNcnMcjdcnYcnZcfocfncoacfgcobchqcoccmScmScodaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaackqaagcoecofcoeaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcqiaafaaaaafaaaaafaaaaaacogcogcogcohaafaafaafaafcmWaafaafaafaafaafabpcogcogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaabBwchlbGRcoibBwaafcibcibcibcibcibaafaaaaaaaafcfgcojcfncokcolcolcomcgycgyconcfgcoocopcopcopcfgcoqcorcoscotcoucfgcopcopcopcoocfgconcgycovcfocfncfgcfgcgycgycgycgycfgapKapKaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaagaaaaagaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaafaaaaaacogaaaaafaaaaafaaaaaaaaacowaaaaafaafaaaaaaaaaaaacogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaabKFcoxcoycozbBwaafaaaaaaaafaaaaaaaafaaaaaaaafcfgcoAcoBcjdcoCcoDcoEcgycoFcoGcfgcoHcoIcoJcoIcjXcoKcoLcoMcoNcoucjXcoIcoIcoIcoOcfgcoPcoQckFcfocoRcircoScfncoTcjXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaacogaaacoUcoUcoUcoUcoUaafcoVaafcoUcoUcoUcoUcoUaaacogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbKFcoWcoXbIsbBwbBwcoYcoYcoYcoYcoYcoYcoYcoYcgycfgcoZcpacpbcpccoZcfgcfgcfgconcfgcfgcjXcjXcjXcjXcpdcpecpfcpecpgcjXcjXcjXcjXcfgcfgconcfgckFcphcpicpjcpkcfncplcjXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaacogaafcpmcpncpncpncpncpocoVcppcpqcpqcpqcpqcpraafcogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbKFbKFbKFbKFbBwaafaaaaaaaafaaaaaaaafaaaaaaaafaagaagaagaafaaaaafaagcfgcpscptcpuaaaaaaaaacjXcjXcjXcjXcjXcjXcjXcjXcjXaaaaaaaaacpvcpwcpxcpycpzclTclTcpAcpBcpCcjXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaacogaafcpDcpDcpDcpDcpDaaacoVaaacpDcpDcpDcpDcpDaafcogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaagaagaagaagaaaaafaaaaafaafaaaaaaaaaaafcfgcpEcpFaagaaaaaaaafaafaafaafaafaafaafaafaafaafaafaaaaaaaagcpGcpEcfgcpHcpIcfgcgycgycpJcgyaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaacogaaaaafaaaaafaafaafaaacoVaaaaafaaaaafaaaaafaaacogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbKFbKFbKFbKFbBwaafaaaaaaaafaaaaaaaafaaaaaaaafaagaagaagaafaaaaafaagcfgcpscptaAGaaaaaaaaacjXcjXcjXcjXcjXcjXcjXcjXcjXaaaaaaaaaaAHcpwcpxcpycpzclTclTcpAcpBcpCcjXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaacogaafcpDcpDcpDcpDcpDaaacoVaaacpDcpDcpDcpDcpDaafcogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaagaagaagaagaaaaafaaaaafaafaaaaaaaaaaafcfgcpEcpFcpFaaaaaaaafaafaafaafaafaafaafaafaafaafaafaaaaaacpFcpGcpEcfgcpHcpIcfgcgycgycpJcgyaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaacogaaaaafaaaaafaafaafaaacoVaaaaafaaaaafaaaaafaaacogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaacfgcpKcpLcpMaafaafaafcpNaaaaaaaaaaaacpNaaaaaacpNaafaafaafcpOcpPcpQcfgcpRceecgyaafaaacpScpTaafaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacogaaacoUcoUcoUcoUcoUaafcoVaafcoUcoUcoUcoUcoUaafcogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfgcpEcpFcpUaaaaaaaafaaaaaaaaaaaaaaacpVaaaaaaaaaaafaaaaaacpFcpFcpEcfgaagaagaaaaafaaacpWcpXcpYcpZcqacpZcpYcpZcqacpZcpZcpZcqacpZcpYcpZcqacqbcqcaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacogaafcpmcpncpncpncpncpocoVcppcpqcpqcpqcpqcpraafcogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfgcqdcqecpFaaaaaaaafaaaaaaaafaafaafaafaafaaaaaaaafaaaaaacpFcqfcqgcfgaafaafaafaafaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaafaaaaaacpWcqhcpTcqiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacogaafcpDcpDcpDcpDcpDaaacoVaafcpDcpDcpDcpDcpDaaacogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -6675,8 +6669,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqJcqJcqJcqJcqJcqJcqJcqJcqJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfgcqUcpFcpFaaaaaaaafaafaafaafaafaafaafaafaafaafaafaaaaaacpFcpFcqUcfgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaafcqFcqVcqWcqXcqXcqYcqZcracqIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacogaafcrbaafcogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqJcqJcqJcqJcqJcqJcqJcqJcqJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfgcqUcpFcrcaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaacrdcpFcqUcfgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaafcqFcrecqWcqXcqXcrfcrgcrhcqIaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacogaaaaafaaacogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqJcqJcqJcqJcqJcqJcqJcqJcqJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacircfgcfgcfgcpFaafaafaafaafaaaaaaaaaaaaaaaaafaafaafaafcpFcfgcfgcfgciraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafcqFcqFcricqXcqXcqIcrjcqIcqIaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacogcogcogcogcogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqJcqJcqJcqJcqJcqJcqJcqJcqJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaabCncfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgbCnaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaagaagaaaaafaaacqHcrkcqXcqXcrlcrmcqHaafaafaafaagaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqJcqJcqJcqJcqJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabCnbCnbCnbCncrnbCnbCnbCnbCnbCnbCnbCncrnbCnbCnbCnbCnaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdabdcrocroabdabdaaacqHcrpcrqcrrcrscrtcqHaaaabdabdcrocroabdabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqJcqJcqJcqJcqJcqJcqJcqJcqJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaacqUcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcfgcqUaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaagaagaaaaafaaacqHcrkcqXcqXcrlcrmcqHaafaafaafaagaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqJcqJcqJcqJcqJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaacqUcqUcqUcqUcqpcqUcqUcqUcqUcqUcqUcqUcqpcqUcqUcqUcqUaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdabdcrocroabdabdaaacqHcrpcrqcrrcrscrtcqHaaaabdabdcrocroabdabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqJcqJcqJcqJcqJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaafaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdcrucrvcrwcrxabdabdcqHcrycrzcrAcrBcrCcqHabdabdcrDcrEcrFcrGabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqJcqJcqJcqJcqJcqJcqJcqJcqJcqJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdcrucrvcrFcrHcrIcrJcrJcrKcrLcrJcrMcrNcrJcrJcrIcrOcrvcrFcrGabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqJcqJcqJcqJcqJcqJcqJcqJcqJcqJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdcrucrPcrQcrRcrRcrScrTcrUcrVcrWcrWcrXcrYcrZcsacsacsbcsccrGabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/_maps/map_files/generic/z2.dmm b/_maps/map_files/generic/z2.dmm index c8a151f3d79..9decc18a855 100644 --- a/_maps/map_files/generic/z2.dmm +++ b/_maps/map_files/generic/z2.dmm @@ -798,7 +798,7 @@ "pr" = (/obj/structure/table,/obj/item/weapon/grenade/syndieminibomb{pixel_x = 4; pixel_y = 2},/obj/item/weapon/grenade/syndieminibomb{pixel_x = -1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "ps" = (/obj/structure/bookcase,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "pt" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"pu" = (/obj/structure/table/wood,/obj/item/clothing/gloves/white,/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/suit/wizrobe/santa,/obj/item/clothing/head/wizard/santa,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) +"pu" = (/obj/structure/table/wood,/obj/item/clothing/gloves/color/white,/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/suit/wizrobe/santa,/obj/item/clothing/head/wizard/santa,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "pv" = (/obj/structure/table/wood,/obj/item/weapon/dice/d20,/obj/item/weapon/dice,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "pw" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/head/wizard/marisa,/obj/item/weapon/staff/broom,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station) "px" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station) diff --git a/_maps/map_files/generic/z3.dmm b/_maps/map_files/generic/z3.dmm index da3942d1fc4..e4c2e37f137 100644 --- a/_maps/map_files/generic/z3.dmm +++ b/_maps/map_files/generic/z3.dmm @@ -102,30 +102,30 @@ "bX" = (/obj/item/weapon/stock_parts/cell,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber) "bY" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber) "bZ" = (/obj/item/weapon/coin/clown,/turf/simulated/floor/engine,/area/tcommsat/chamber) -"ca" = (/obj/structure/stool/bed,/turf/simulated/floor/airless,/area/tcommsat/chamber) -"cb" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless,/area/tcommsat/chamber) -"cc" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/tcommsat/chamber) -"cd" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/tcommsat/chamber) +"ca" = (/obj/structure/stool/bed,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) +"cb" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) +"cc" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/tcommsat/chamber) +"cd" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/tcommsat/chamber) "ce" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/space) "cf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber) "cg" = (/obj/item/weapon/wrench,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber) "ch" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber) "ci" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/space) -"cj" = (/turf/simulated/floor/airless,/area/tcommsat/chamber) -"ck" = (/obj/structure/table,/obj/item/weapon/paper,/turf/simulated/floor/airless,/area/tcommsat/chamber) -"cl" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen/blue,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless,/area/tcommsat/chamber) -"cm" = (/obj/structure/computerframe,/turf/simulated/floor/airless,/area/tcommsat/chamber) -"cn" = (/obj/structure/table,/turf/simulated/floor/airless,/area/tcommsat/chamber) +"cj" = (/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) +"ck" = (/obj/structure/table,/obj/item/weapon/paper,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) +"cl" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen/blue,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) +"cm" = (/obj/structure/computerframe,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) +"cn" = (/obj/structure/table,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) "co" = (/obj/item/weapon/syntiflesh{name = "Cuban Pete-Meat"},/turf/simulated/floor/engine,/area/tcommsat/chamber) -"cp" = (/obj/structure/grille,/turf/simulated/floor/airless,/area/tcommsat/chamber) -"cq" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/airless,/area/tcommsat/chamber) +"cp" = (/obj/structure/grille,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) +"cq" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) "cr" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber) "cs" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber) "ct" = (/obj/item/stack/cable_coil/cut{amount = 1},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber) "cu" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/closet,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber) "cv" = (/obj/structure/window/reinforced{dir = 8},/turf/space,/area/space) -"cw" = (/obj/item/weapon/folder/yellow,/turf/simulated/floor/airless,/area/tcommsat/chamber) -"cx" = (/obj/structure/stool/bed,/obj/effect/decal/remains/human,/turf/simulated/floor/airless,/area/tcommsat/chamber) +"cw" = (/obj/item/weapon/folder/yellow,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) +"cx" = (/obj/structure/stool/bed,/obj/effect/decal/remains/human,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) "cy" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/space) "cz" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/space) "cA" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber) @@ -133,89 +133,89 @@ "cC" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/space,/area/space) "cD" = (/obj/structure/window/reinforced,/turf/space,/area/space) "cE" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/tcommsat/chamber) -"cF" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/airless,/area/tcommsat/chamber) -"cG" = (/obj/item/weapon/paper/crumpled,/turf/simulated/floor/airless,/area/tcommsat/chamber) +"cF" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) +"cG" = (/obj/item/weapon/paper/crumpled,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) "cH" = (/obj/item/weapon/syntiflesh{name = "Cuban Pete-Meat"},/obj/item/weapon/spacecash,/turf/simulated/floor/engine,/area/tcommsat/chamber) -"cI" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/airless,/area/tcommsat/chamber) -"cJ" = (/obj/structure/table,/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/floor/airless,/area/tcommsat/chamber) -"cK" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/airless,/area/tcommsat/chamber) -"cL" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) -"cM" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) -"cN" = (/obj/structure/window/reinforced,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) -"cO" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/item/weapon/airlock_electronics,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) -"cP" = (/obj/structure/door_assembly/door_assembly_hatch,/turf/simulated/floor/airless,/area/tcommsat/chamber) -"cQ" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/airless,/area/tcommsat/chamber) -"cR" = (/obj/machinery/vending/snack,/turf/simulated/floor/airless,/area/tcommsat/chamber) -"cS" = (/obj/machinery/vending/cola,/turf/simulated/floor/airless,/area/tcommsat/chamber) -"cT" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/airless,/area/tcommsat/chamber) -"cU" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/airless,/area/tcommsat/chamber) +"cI" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) +"cJ" = (/obj/structure/table,/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) +"cK" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) +"cL" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) +"cM" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) +"cN" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) +"cO" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/item/weapon/airlock_electronics,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) +"cP" = (/obj/structure/door_assembly/door_assembly_hatch,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) +"cQ" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) +"cR" = (/obj/machinery/vending/snack,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) +"cS" = (/obj/machinery/vending/cola,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) +"cT" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) +"cU" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) "cV" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/tcommsat/chamber) "cW" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/space) "cX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating/airless,/area/space) "cY" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless,/area/space) "cZ" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/plating/airless,/area/space) -"da" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) +"da" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) "db" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/space) "dc" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/space) "dd" = (/obj/structure/window/reinforced{dir = 1},/turf/space,/area/space) -"de" = (/obj/structure/table,/obj/item/device/radio/off,/turf/simulated/floor/airless,/area/tcommsat/chamber) -"df" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/airless,/area/tcommsat/chamber) -"dg" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) -"dh" = (/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) -"di" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) +"de" = (/obj/structure/table,/obj/item/device/radio/off,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) +"df" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) +"dg" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) +"dh" = (/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) +"di" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) "dj" = (/turf/simulated/floor/plasteel{icon_state = "solarpanel"},/area/space) "dk" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/turf/space,/area/space) -"dl" = (/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) +"dl" = (/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) "dm" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber) "dn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber) "do" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber) "dp" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber) -"dq" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) +"dq" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) "dr" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area/space) -"ds" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/item/stack/rods,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) +"ds" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/item/stack/rods,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) "dt" = (/obj/item/stack/rods,/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber) -"du" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) -"dv" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) +"du" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) +"dv" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) "dw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/tcommsat/chamber) "dx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcommsat/chamber) "dy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcommsat/chamber) -"dz" = (/obj/effect/decal/cleanable/blood,/obj/item/weapon/scalpel{pixel_y = 12},/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) -"dA" = (/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) +"dz" = (/obj/effect/decal/cleanable/blood,/obj/item/weapon/scalpel{pixel_y = 12},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) +"dA" = (/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) "dB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/tcommsat/chamber) -"dC" = (/obj/structure/rack,/obj/item/weapon/circuitboard/teleporter,/turf/simulated/floor/airless,/area/tcommsat/chamber) -"dD" = (/obj/item/device/radio/off,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) +"dC" = (/obj/structure/rack,/obj/item/weapon/circuitboard/teleporter,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) +"dD" = (/obj/item/device/radio/off,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) "dE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcommsat/chamber) "dF" = (/obj/effect/decal/cleanable/oil,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber) "dG" = (/obj/effect/decal/cleanable/blood,/obj/structure/stool/bed/chair,/obj/item/clothing/under/rank/centcom_officer,/obj/item/weapon/restraints/handcuffs,/obj/effect/decal/remains/human,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber) "dH" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber) -"dI" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) -"dJ" = (/obj/structure/door_assembly/door_assembly_mhatch,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) -"dK" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/airless,/area/tcommsat/chamber) +"dI" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) +"dJ" = (/obj/structure/door_assembly/door_assembly_mhatch,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) +"dK" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) "dL" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber) -"dM" = (/obj/effect/decal/cleanable/blood,/obj/item/device/assembly/signaler,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) -"dN" = (/obj/structure/table,/obj/item/weapon/reagent_containers/syringe/lethal/choral,/obj/item/weapon/reagent_containers/syringe/lethal{pixel_y = 4},/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) +"dM" = (/obj/effect/decal/cleanable/blood,/obj/item/device/assembly/signaler,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) +"dN" = (/obj/structure/table,/obj/item/weapon/reagent_containers/syringe/lethal/choral,/obj/item/weapon/reagent_containers/syringe/lethal{pixel_y = 4},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) "dO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/tcommsat/chamber) -"dP" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/floor/airless,/area/tcommsat/chamber) +"dP" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) "dQ" = (/obj/structure/table,/obj/item/device/electropack,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber) -"dR" = (/obj/structure/table,/obj/item/weapon/hemostat,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) -"dS" = (/obj/structure/table,/obj/item/weapon/circular_saw,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) +"dR" = (/obj/structure/table,/obj/item/weapon/hemostat,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) +"dS" = (/obj/structure/table,/obj/item/weapon/circular_saw,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) "dT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcommsat/chamber) -"dU" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/item/stack/rods,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) +"dU" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/item/stack/rods,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) "dV" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/space,/area/space) "dW" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/space) -"dX" = (/turf/simulated/floor/airless{dir = 9; icon_state = "warning"},/area/tcommsat/chamber) -"dY" = (/turf/simulated/floor/airless{icon_state = "warningcorner"; dir = 4},/area/tcommsat/chamber) -"dZ" = (/turf/simulated/floor/airless{icon_state = "warning"; dir = 1},/area/tcommsat/chamber) -"ea" = (/turf/simulated/floor/airless{dir = 5; icon_state = "warning"},/area/tcommsat/chamber) +"dX" = (/turf/simulated/floor/plasteel/airless{dir = 9; icon_state = "warning"},/area/tcommsat/chamber) +"dY" = (/turf/simulated/floor/plasteel/airless{icon_state = "warningcorner"; dir = 4},/area/tcommsat/chamber) +"dZ" = (/turf/simulated/floor/plasteel/airless{icon_state = "warning"; dir = 1},/area/tcommsat/chamber) +"ea" = (/turf/simulated/floor/plasteel/airless{dir = 5; icon_state = "warning"},/area/tcommsat/chamber) "eb" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/space,/area/space) -"ec" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) -"ed" = (/obj/item/weapon/paper/crumpled,/turf/simulated/floor/airless{dir = 8; icon_state = "warning"},/area/tcommsat/chamber) -"ee" = (/obj/item/stack/rods,/turf/simulated/floor/airless,/area/tcommsat/chamber) -"ef" = (/turf/simulated/floor/airless{dir = 4; icon_state = "warning"},/area/tcommsat/chamber) -"eg" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) -"eh" = (/turf/simulated/floor/airless{dir = 10; icon_state = "warning"},/area/tcommsat/chamber) -"ei" = (/obj/machinery/light/small,/obj/item/weapon/paper,/turf/simulated/floor/airless{icon_state = "warningcorner"; dir = 1},/area/tcommsat/chamber) -"ej" = (/turf/simulated/floor/airless{dir = 6; icon_state = "warning"},/area/tcommsat/chamber) +"ec" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) +"ed" = (/obj/item/weapon/paper/crumpled,/turf/simulated/floor/plasteel/airless{dir = 8; icon_state = "warning"},/area/tcommsat/chamber) +"ee" = (/obj/item/stack/rods,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber) +"ef" = (/turf/simulated/floor/plasteel/airless{dir = 4; icon_state = "warning"},/area/tcommsat/chamber) +"eg" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) +"eh" = (/turf/simulated/floor/plasteel/airless{dir = 10; icon_state = "warning"},/area/tcommsat/chamber) +"ei" = (/obj/machinery/light/small,/obj/item/weapon/paper,/turf/simulated/floor/plasteel/airless{icon_state = "warningcorner"; dir = 1},/area/tcommsat/chamber) +"ej" = (/turf/simulated/floor/plasteel/airless{dir = 6; icon_state = "warning"},/area/tcommsat/chamber) "ek" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/space,/area/space) "el" = (/obj/structure/lattice,/obj/item/stack/rods,/obj/item/weapon/shard{icon_state = "medium"},/turf/space,/area/space) "em" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber) @@ -252,7 +252,7 @@ "eR" = (/obj/machinery/teleport/hub,/turf/simulated/floor/plating/airless,/area/AIsattele) "eS" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/AIsattele) "eT" = (/turf/simulated/floor/plating/airless,/area/AIsattele) -"eU" = (/obj/structure/rack,/obj/item/clothing/gloves/yellow,/turf/simulated/floor/plating/airless,/area/AIsattele) +"eU" = (/obj/structure/rack,/obj/item/clothing/gloves/color/yellow,/turf/simulated/floor/plating/airless,/area/AIsattele) "eV" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/AIsattele) "eW" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/AIsattele) "eX" = (/obj/item/weapon/stock_parts/cell{step_x = 0},/turf/simulated/floor/plating/airless,/area/AIsattele) diff --git a/_maps/map_files/generic/z4.dmm b/_maps/map_files/generic/z4.dmm index 982f946219b..156f76d5e93 100644 --- a/_maps/map_files/generic/z4.dmm +++ b/_maps/map_files/generic/z4.dmm @@ -1,6 +1,6 @@ "aa" = (/turf/space,/area/space) "ab" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/space) -"ac" = (/obj/machinery/power/solar/fake,/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/djstation/solars) +"ac" = (/obj/machinery/power/solar/fake,/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/djstation/solars) "ad" = (/turf/simulated/floor/plating/airless,/area/djstation/solars) "ae" = (/obj/structure/lattice,/turf/space,/area/space) "af" = (/turf/simulated/wall,/area/djstation) @@ -60,7 +60,7 @@ "bh" = (/obj/machinery/door/airlock/external{name = "Ruskie DJ Station"; req_access = null; req_access_txt = "0"},/turf/simulated/floor/plating,/area/djstation) "bi" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/disposaloutlet,/turf/simulated/floor/plating/airless,/area/space) "bj" = (/turf/simulated/floor/plating/airless,/area/space) -"bk" = (/turf/simulated/floor/airless,/area/space) +"bk" = (/turf/simulated/floor/plasteel/airless,/area/space) "bl" = (/turf/simulated/wall/r_wall,/area/space) "bm" = (/obj/structure/girder/reinforced,/turf/simulated/floor/plating/airless,/area/space) "bn" = (/turf/simulated/wall/r_wall,/area/derelict/solar_control) @@ -74,9 +74,9 @@ "bv" = (/obj/machinery/door/airlock/external{name = "External Engineering"},/turf/simulated/floor/plating,/area/derelict/solar_control) "bw" = (/turf/simulated/wall,/area/space) "bx" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/solar_control) -"by" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/simulated/floor/airless,/area/solar/derelict_starboard) +"by" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/simulated/floor/plasteel/airless,/area/solar/derelict_starboard) "bz" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating/airless,/area/solar/derelict_starboard) -"bA" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/simulated/floor/airless,/area/solar/derelict_starboard) +"bA" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/simulated/floor/plasteel/airless,/area/solar/derelict_starboard) "bB" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; environ = 0; equipment = 0; lighting = 0; locked = 0; name = "Starboard Solar APC"; pixel_y = 24},/turf/simulated/floor/plasteel,/area/derelict/solar_control) "bC" = (/obj/machinery/power/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plasteel,/area/derelict/solar_control) "bD" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar_control{id = "derelictsolar"; name = "Primary Solar Control"; track = 0},/turf/simulated/floor/plasteel,/area/derelict/solar_control) @@ -130,7 +130,7 @@ "cz" = (/obj/machinery/door/airlock/command{name = "E.V.A."; req_access = null; req_access_txt = "18"},/turf/simulated/floor/plasteel,/area/derelict/bridge/access) "cA" = (/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel,/area/derelict/bridge/access) "cB" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plating/airless,/area/space) -"cC" = (/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/space) +"cC" = (/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/space) "cD" = (/obj/item/stack/cable_coil/cut,/turf/space,/area/space) "cE" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel,/area/derelict/bridge/access) "cF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/derelict/bridge/access) @@ -144,7 +144,7 @@ "cN" = (/obj/structure/sign/electricshock,/turf/simulated/wall/r_wall,/area/derelict/singularity_engine) "cO" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/derelict/singularity_engine) "cP" = (/obj/machinery/door/airlock/engineering{name = "Engineering Access"; req_access_txt = "10"},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) -"cQ" = (/obj/machinery/door/airlock/engineering{name = "Engineering Access"; req_access_txt = "10"},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/derelict/singularity_engine) +"cQ" = (/obj/machinery/door/airlock/engineering{name = "Engineering Access"; req_access_txt = "10"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine) "cR" = (/obj/structure/sign/securearea{name = "ENGINEERING ACCESS"},/turf/simulated/wall/r_wall,/area/derelict/singularity_engine) "cS" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/bridge/access) "cT" = (/obj/structure/computerframe,/turf/simulated/floor/plasteel,/area/derelict/bridge) @@ -155,10 +155,10 @@ "cY" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel,/area/derelict/bridge) "cZ" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/simulated/floor/plasteel,/area/derelict/bridge) "da" = (/obj/item/weapon/grenade/empgrenade,/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/bridge) -"db" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) -"dc" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/derelict/singularity_engine) -"dd" = (/turf/simulated/floor/airless{icon_state = "damaged5"},/area/derelict/singularity_engine) -"de" = (/obj/item/stack/cable_coil/cut,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) +"db" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) +"dc" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/singularity_engine) +"dd" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine) +"de" = (/obj/item/stack/cable_coil/cut,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) "df" = (/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "dg" = (/turf/simulated/wall,/area/derelict/singularity_engine) "dh" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor/plasteel,/area/derelict/bridge) @@ -166,11 +166,11 @@ "dj" = (/turf/simulated/floor/plating,/area/derelict/bridge) "dk" = (/obj/structure/table,/obj/item/weapon/paper/crumpled,/turf/simulated/floor/plasteel,/area/derelict/bridge) "dl" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/bridge) -"dm" = (/obj/structure/window/reinforced,/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) -"dn" = (/obj/structure/window/reinforced,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/derelict/singularity_engine) -"do" = (/obj/structure/window/reinforced,/turf/simulated/floor/airless{icon_state = "damaged4"},/area/derelict/singularity_engine) -"dp" = (/obj/structure/window/reinforced,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) -"dq" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"dm" = (/obj/structure/window/reinforced,/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) +"dn" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine) +"do" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/singularity_engine) +"dp" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) +"dq" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) "dr" = (/obj/machinery/power/emitter{dir = 1; icon_state = "emitter"},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "ds" = (/obj/machinery/field/generator,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "dt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel,/area/derelict/bridge/access) @@ -181,14 +181,14 @@ "dy" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "dz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "dA" = (/obj/structure/noticeboard,/turf/simulated/wall,/area/derelict/singularity_engine) -"dB" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"dB" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) "dC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/derelict/bridge/access) "dD" = (/obj/machinery/door/window/eastleft{name = "Heads of Staff"; req_access_txt = "19"},/turf/simulated/floor/plasteel,/area/derelict/bridge/access) "dE" = (/obj/structure/table,/obj/item/device/paicard,/turf/simulated/floor/plasteel,/area/derelict/bridge) "dF" = (/obj/structure/stool,/turf/simulated/floor/plasteel,/area/derelict/bridge) "dG" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/bridge) -"dH" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) -"dI" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/airless{icon_state = "damaged4"},/area/derelict/singularity_engine) +"dH" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"dI" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/singularity_engine) "dJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel,/area/derelict/bridge/access) "dK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/derelict/bridge/access) "dL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/derelict/bridge/access) @@ -196,7 +196,7 @@ "dN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/derelict/bridge) "dO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/derelict/bridge) "dP" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/derelict/bridge) -"dQ" = (/obj/item/weapon/paper{info = "Objective #1: Destroy the station with a nuclear device."; name = "Objectives of a Nuclear Operative"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"dQ" = (/obj/item/weapon/paper{info = "Objective #1: Destroy the station with a nuclear device."; name = "Objectives of a Nuclear Operative"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) "dR" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/derelict/bridge/access) "dS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/derelict/bridge) "dT" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel,/area/derelict/bridge) @@ -204,10 +204,10 @@ "dV" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/bridge) "dW" = (/obj/item/stack/rods,/turf/space,/area/space) "dX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) -"dY" = (/obj/item/weapon/shard,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"dY" = (/obj/item/weapon/shard,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) "dZ" = (/obj/item/clothing/suit/space/syndicate/black/engie,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "ea" = (/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) -"eb" = (/obj/item/weapon/shard,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/derelict/singularity_engine) +"eb" = (/obj/item/weapon/shard,/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine) "ec" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "ed" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "ee" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) @@ -216,7 +216,7 @@ "eh" = (/obj/structure/window/fulltile,/turf/simulated/floor/plasteel,/area/derelict/bridge) "ei" = (/obj/structure/table,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor/plasteel,/area/derelict/bridge) "ej" = (/obj/structure/table,/obj/machinery/light/small,/turf/simulated/floor/plasteel,/area/derelict/bridge) -"ek" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"ek" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) "el" = (/obj/item/clothing/head/helmet/space/syndicate/black/engie,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "em" = (/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "en" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) @@ -225,74 +225,74 @@ "eq" = (/turf/simulated/wall/r_wall,/area/derelict/bridge) "er" = (/obj/machinery/door/window{dir = 2; name = "Captain's Quarters"; req_access_txt = "20"},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/derelict/bridge) "es" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) -"et" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"et" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) "eu" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "ev" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) -"ew" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/derelict/singularity_engine) -"ex" = (/turf/simulated/floor/airless,/area/derelict/bridge/access) -"ey" = (/obj/structure/table,/obj/item/device/aicard,/turf/simulated/floor/airless,/area/derelict/bridge/access) -"ez" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless,/area/derelict/bridge/access) -"eA" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/turf/simulated/floor/airless,/area/derelict/bridge/access) -"eB" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell{charge = 100; maxcharge = 15000},/turf/simulated/floor/airless,/area/derelict/bridge/access) -"eC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/derelict/bridge/access) +"ew" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine) +"ex" = (/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access) +"ey" = (/obj/structure/table,/obj/item/device/aicard,/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access) +"ez" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access) +"eA" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access) +"eB" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell{charge = 100; maxcharge = 15000},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access) +"eC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access) "eD" = (/obj/structure/girder,/turf/simulated/floor/plating/airless,/area/space) "eE" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) -"eF" = (/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/airless,/area/derelict/bridge/access) -"eG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/airless,/area/derelict/bridge/access) +"eF" = (/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access) +"eG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access) "eH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating/airless,/area/derelict/bridge/access) -"eI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/airless,/area/derelict/bridge/access) -"eJ" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/airless,/area/derelict/bridge/access) -"eK" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) -"eL" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) -"eM" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) -"eN" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) -"eO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/airless,/area/derelict/bridge/access) +"eI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access) +"eJ" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access) +"eK" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) +"eL" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"eM" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"eN" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) +"eO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access) "eP" = (/turf/simulated/floor/plating/airless,/area/derelict/bridge/access) -"eQ" = (/obj/structure/table,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"eQ" = (/obj/structure/table,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) "eR" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) -"eS" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/derelict/singularity_engine) -"eT" = (/obj/structure/grille,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) -"eU" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "damaged4"},/area/derelict/singularity_engine) -"eV" = (/obj/machinery/door/airlock/maintenance{name = "Tech Storage"; req_access_txt = "23"},/turf/simulated/floor/airless,/area/derelict/bridge/access) +"eS" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine) +"eT" = (/obj/structure/grille,/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) +"eU" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/singularity_engine) +"eV" = (/obj/machinery/door/airlock/maintenance{name = "Tech Storage"; req_access_txt = "23"},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access) "eW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/derelict/bridge/access) -"eX" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/airless,/area/derelict/bridge/access) -"eY" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) +"eX" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access) +"eY" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) "eZ" = (/obj/item/weapon/screwdriver,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) -"fa" = (/obj/item/stack/rods,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"fa" = (/obj/item/stack/rods,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) "fb" = (/obj/item/weapon/shard{icon_state = "medium"},/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) -"fc" = (/obj/structure/table,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"fc" = (/obj/structure/table,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) "fd" = (/turf/simulated/wall,/area/derelict/hallway/primary) -"fe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/hallway/primary) -"ff" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/hallway/primary) -"fg" = (/turf/simulated/floor/airless,/area/derelict/hallway/primary) +"fe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/hallway/primary) +"ff" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/hallway/primary) +"fg" = (/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) "fh" = (/obj/item/weapon/ore/slag,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "fi" = (/obj/item/weapon/shard,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "fj" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "fk" = (/turf/simulated/wall/r_wall,/area/derelict/hallway/primary) "fl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary) -"fm" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/hallway/primary) -"fn" = (/obj/structure/window/fulltile{dir = 4},/turf/simulated/floor/airless,/area/derelict/hallway/primary) -"fo" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"fm" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/hallway/primary) +"fn" = (/obj/structure/window/fulltile{dir = 4},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) +"fo" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) "fp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "fq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "fr" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary) "fs" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary) -"ft" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/hallway/primary) -"fu" = (/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/derelict/hallway/primary) -"fv" = (/obj/machinery/light/small,/turf/simulated/floor/airless,/area/derelict/hallway/primary) +"ft" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/hallway/primary) +"fu" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/derelict/hallway/primary) +"fv" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) "fw" = (/obj/structure/grille,/obj/structure/window/fulltile{dir = 8},/turf/simulated/floor/plating/airless,/area/space) -"fx" = (/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/space) -"fy" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/space) +"fx" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/space) +"fy" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/space) "fz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "fA" = (/obj/machinery/door/window,/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary) -"fB" = (/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/space) -"fC" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"fB" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/space) +"fC" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) "fD" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) -"fE" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) +"fE" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) "fF" = (/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary) -"fG" = (/obj/item/weapon/crowbar,/turf/simulated/floor/airless,/area/derelict/hallway/primary) -"fH" = (/obj/structure/grille,/turf/simulated/floor/airless,/area/derelict/hallway/primary) -"fI" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/space) +"fG" = (/obj/item/weapon/crowbar,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) +"fH" = (/obj/structure/grille,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) +"fI" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/space) "fJ" = (/obj/item/weapon/shard{icon_state = "small"},/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "fK" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "fL" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) @@ -300,7 +300,7 @@ "fN" = (/turf/simulated/wall/r_wall,/area/derelict/arrival) "fO" = (/turf/simulated/wall,/area/derelict/arrival) "fP" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) -"fQ" = (/obj/machinery/light/small,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/hallway/primary) +"fQ" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/hallway/primary) "fR" = (/obj/structure/window/fulltile{dir = 5},/turf/space,/area/space) "fS" = (/obj/structure/table,/turf/simulated/floor/plasteel,/area/derelict/arrival) "fT" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel,/area/derelict/arrival) @@ -311,11 +311,11 @@ "fY" = (/turf/simulated/wall,/area/derelict/medical/chapel) "fZ" = (/obj/item/weapon/shard,/turf/space,/area/space) "ga" = (/obj/structure/grille,/turf/space,/area/derelict/singularity_engine) -"gb" = (/obj/item/weapon/shard,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"gb" = (/obj/item/weapon/shard,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) "gc" = (/obj/structure/lattice,/obj/structure/window/fulltile,/turf/space,/area/space) -"gd" = (/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/derelict/arrival) +"gd" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/derelict/arrival) "ge" = (/turf/simulated/floor/plating/airless,/area/derelict/arrival) -"gf" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/arrival) +"gf" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/arrival) "gg" = (/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel) "gh" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel) "gi" = (/obj/structure/closet/coffin,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel) @@ -327,54 +327,54 @@ "go" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/derelict/medical) "gp" = (/obj/machinery/door/airlock/external{name = "External Engineering"},/turf/simulated/floor/plating/airless,/area/space) "gq" = (/obj/structure/grille,/turf/space,/area/space) -"gr" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/derelict/hallway/primary) +"gr" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/hallway/primary) "gs" = (/obj/machinery/door/window{dir = 8},/turf/simulated/floor/plasteel,/area/derelict/arrival) -"gt" = (/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical) -"gu" = (/obj/item/weapon/firstaid_arm_assembly,/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical) -"gv" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/medical) -"gw" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/medical) +"gt" = (/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical) +"gu" = (/obj/item/weapon/firstaid_arm_assembly,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical) +"gv" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/medical) +"gw" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/medical) "gx" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/medical) -"gy" = (/obj/machinery/light/small,/turf/simulated/floor/airless{icon_state = "damaged4"},/area/derelict/singularity_engine) +"gy" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/singularity_engine) "gz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary) "gA" = (/obj/structure/window/fulltile{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary) "gB" = (/obj/structure/lattice,/obj/structure/window/fulltile{dir = 1},/turf/space,/area/space) "gC" = (/obj/structure/lattice,/obj/structure/lattice,/obj/structure/window/fulltile{dir = 1},/turf/space,/area/space) "gD" = (/turf/simulated/floor/plating,/area/derelict/arrival) "gE" = (/obj/machinery/door/airlock/medical{name = "Morgue"; req_access_txt = "6"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel) -"gF" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical) -"gG" = (/obj/item/stack/medical/bruise_pack,/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical) -"gH" = (/turf/simulated/floor/airless{icon_state = "damaged5"},/area/space) +"gF" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical) +"gG" = (/obj/item/stack/medical/bruise_pack,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical) +"gH" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/space) "gI" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/arrival) "gJ" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/arrival) "gK" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel) "gL" = (/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) -"gM" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/space) +"gM" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/space) "gN" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel,/area/derelict/arrival) "gO" = (/obj/structure/stool/bed/chair{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/arrival) "gP" = (/obj/machinery/door/morgue{name = "coffin storage"; req_access_txt = "22"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel) "gQ" = (/obj/structure/bodycontainer/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel) -"gR" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical) +"gR" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical) "gS" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/space) -"gT" = (/obj/structure/window/reinforced,/turf/simulated/floor/airless{icon_state = "white"},/area/space) -"gU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/hallway/primary) +"gT" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/space) +"gU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/hallway/primary) "gV" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/arrival) "gW" = (/obj/structure/window/reinforced{dir = 4},/turf/space,/area/space) "gX" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{dir = 1; icon_state = "chapel"},/area/derelict/medical/chapel) "gY" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "chapel"},/area/derelict/medical/chapel) "gZ" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "chapel"},/area/derelict/medical/chapel) -"ha" = (/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical) -"hb" = (/obj/item/stack/medical/bruise_pack,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/medical) -"hc" = (/obj/item/stack/medical/ointment,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/medical) +"ha" = (/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical) +"hb" = (/obj/item/stack/medical/bruise_pack,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/medical) +"hc" = (/obj/item/stack/medical/ointment,/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/medical) "hd" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/medical) "he" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/space) "hf" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/space,/area/space) "hg" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "chapel"},/area/derelict/medical/chapel) "hh" = (/turf/simulated/floor/plasteel{icon_state = "chapel"},/area/derelict/medical/chapel) "hi" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "chapel"},/area/derelict/medical/chapel) -"hj" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical) -"hk" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical) +"hj" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical) +"hk" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical) "hl" = (/obj/machinery/door/airlock/glass{name = "Med-Sci"; req_access_txt = "9"},/turf/simulated/floor/plating/airless,/area/derelict/medical) -"hm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/airless,/area/derelict/hallway/primary) +"hm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) "hn" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel,/area/derelict/arrival) "ho" = (/obj/structure/window/reinforced,/turf/space,/area/space) "hp" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/space,/area/space) @@ -383,32 +383,32 @@ "hs" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{dir = 1; icon_state = "chapel"},/area/derelict/medical/chapel) "ht" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/wall,/area/derelict/medical/chapel) "hu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/wall,/area/derelict/medical/chapel) -"hv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical) -"hw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical) -"hx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical) -"hy" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical) -"hz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical) -"hA" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/medical) -"hB" = (/obj/structure/closet/wardrobe/genetics_white,/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical) +"hv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical) +"hw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical) +"hx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical) +"hy" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical) +"hz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical) +"hA" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/medical) +"hB" = (/obj/structure/closet/wardrobe/genetics_white,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical) "hC" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/space) "hD" = (/obj/item/weapon/shard,/turf/simulated/floor/plating/airless,/area/space) "hE" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/space) -"hF" = (/turf/simulated/floor/airless{icon_state = "white"},/area/space) -"hG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/derelict/hallway/primary) -"hH" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/airless,/area/derelict/hallway/primary) +"hF" = (/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/space) +"hG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) +"hH" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) "hI" = (/obj/item/weapon/pen,/turf/simulated/floor/plasteel,/area/derelict/arrival) "hJ" = (/obj/machinery/door/poddoor{id = "derelict_gun"; name = "Derelict Mass Driver"},/turf/simulated/floor/plating,/area/derelict/medical/chapel) "hK" = (/turf/simulated/floor/plating,/area/derelict/medical/chapel) "hL" = (/obj/machinery/mass_driver{dir = 8; icon_state = "mass_driver"; id = "derelict_gun"},/obj/machinery/door/window{dir = 4; req_access_txt = "25"},/obj/structure/closet/coffin,/turf/simulated/floor/plating,/area/derelict/medical/chapel) -"hM" = (/obj/machinery/door/window{dir = 8},/turf/simulated/floor/airless,/area/derelict/medical/chapel) -"hN" = (/turf/simulated/floor/airless,/area/derelict/medical/chapel) -"hO" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless,/area/derelict/medical/chapel) -"hP" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 4; name = "Worn-out APC"; pixel_x = 24; pixel_y = 0},/turf/simulated/floor/airless,/area/derelict/medical/chapel) -"hQ" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical) -"hR" = (/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical) -"hS" = (/obj/item/stack/medical/ointment,/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical) -"hT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical) -"hU" = (/obj/structure/closet/l3closet/general,/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical) +"hM" = (/obj/machinery/door/window{dir = 8},/turf/simulated/floor/plasteel/airless,/area/derelict/medical/chapel) +"hN" = (/turf/simulated/floor/plasteel/airless,/area/derelict/medical/chapel) +"hO" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless,/area/derelict/medical/chapel) +"hP" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 4; name = "Worn-out APC"; pixel_x = 24; pixel_y = 0},/turf/simulated/floor/plasteel/airless,/area/derelict/medical/chapel) +"hQ" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical) +"hR" = (/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical) +"hS" = (/obj/item/stack/medical/ointment,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical) +"hT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical) +"hU" = (/obj/structure/closet/l3closet/general,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical) "hV" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/space) "hW" = (/obj/structure/window/fulltile,/turf/space,/area/space) "hX" = (/obj/structure/window/fulltile{dir = 8},/turf/space,/area/space) @@ -421,34 +421,34 @@ "ie" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "chapel"},/area/derelict/medical/chapel) "if" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{dir = 4; icon_state = "chapel"},/area/derelict/medical/chapel) "ig" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "chapel"},/area/derelict/medical/chapel) -"ih" = (/obj/machinery/door/window,/turf/simulated/floor/airless,/area/derelict/medical/chapel) -"ii" = (/obj/machinery/door/window/southleft,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical) -"ij" = (/obj/machinery/door/window/southright,/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical) -"ik" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/airless,/area/derelict/hallway/primary) -"il" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/derelict/hallway/primary) -"im" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/hallway/primary) -"in" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/research{name = "Toxins Research"; req_access_txt = "7"},/turf/simulated/floor/airless,/area/derelict/hallway/primary) +"ih" = (/obj/machinery/door/window,/turf/simulated/floor/plasteel/airless,/area/derelict/medical/chapel) +"ii" = (/obj/machinery/door/window/southleft,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical) +"ij" = (/obj/machinery/door/window/southright,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical) +"ik" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) +"il" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) +"im" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/hallway/primary) +"in" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/research{name = "Toxins Research"; req_access_txt = "7"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) "io" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area/space) "ip" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating/airless,/area/space) "iq" = (/obj/structure/window/fulltile{dir = 8},/obj/structure/window/fulltile,/turf/space,/area/space) "ir" = (/obj/structure/lattice,/obj/structure/grille,/turf/space,/area/space) "is" = (/obj/machinery/door/airlock/external{name = "Arrivals Docking Bay 1"},/turf/simulated/floor/plating,/area/derelict/arrival) -"it" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless,/area/derelict/hallway/primary) -"iu" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/airless,/area/space) -"iv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/space) -"iw" = (/obj/structure/window/fulltile{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/space) +"it" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) +"iu" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel/airless,/area/space) +"iv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless,/area/space) +"iw" = (/obj/structure/window/fulltile{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless,/area/space) "ix" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area/space) -"iy" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/space) +"iy" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless,/area/space) "iz" = (/obj/structure/window/fulltile,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area/space) -"iA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/research{name = "Toxins Research"; req_access_txt = "7"},/turf/simulated/floor/airless,/area/derelict/arrival) +"iA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/research{name = "Toxins Research"; req_access_txt = "7"},/turf/simulated/floor/plasteel/airless,/area/derelict/arrival) "iB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/derelict/arrival) "iC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/derelict/arrival) "iD" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/derelict/arrival) "iE" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel{dir = 4; icon_state = "chapel"},/area/derelict/medical/chapel) -"iF" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/airless,/area/derelict/hallway/primary) -"iG" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/derelict/hallway/primary) -"iH" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless,/area/derelict/hallway/primary) -"iI" = (/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/turf/simulated/floor/airless,/area/derelict/hallway/primary) +"iF" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) +"iG" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) +"iH" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) +"iI" = (/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) "iJ" = (/obj/structure/window/fulltile{dir = 1},/turf/space,/area/space) "iK" = (/obj/structure/window/fulltile{dir = 5},/turf/simulated/floor/plating/airless,/area/space) "iL" = (/obj/structure/grille,/obj/structure/window/fulltile{dir = 1},/turf/space,/area/space) @@ -456,51 +456,51 @@ "iN" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/plasteel,/area/derelict/arrival) "iO" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor/plasteel,/area/derelict/arrival) "iP" = (/obj/structure/table,/obj/machinery/computer/pod/old{name = "ProComp IIe"; pixel_y = 7; id = "derelict_gun"},/turf/simulated/floor/plasteel{icon_state = "chapel"},/area/derelict/medical/chapel) -"iQ" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/simulated/floor/airless,/area/derelict/hallway/primary) -"iR" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/airless,/area/derelict/hallway/primary) -"iS" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/airless,/area/derelict/hallway/primary) -"iT" = (/obj/structure/girder,/turf/simulated/floor/airless,/area/derelict/hallway/primary) +"iQ" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) +"iR" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) +"iS" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) +"iT" = (/obj/structure/girder,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) "iU" = (/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor/plasteel,/area/derelict/arrival) -"iV" = (/obj/machinery/door/window,/turf/simulated/floor/airless,/area/derelict/hallway/primary) -"iW" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/airless,/area/derelict/hallway/primary) -"iX" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/derelict/hallway/primary) -"iY" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/airless,/area/derelict/hallway/primary) +"iV" = (/obj/machinery/door/window,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) +"iW" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) +"iX" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) +"iY" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) "iZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/derelict/hallway/primary) "ja" = (/obj/machinery/door/airlock/security{name = "Gas Storage"; req_access = null; req_access_txt = "3"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary) "jb" = (/obj/structure/lattice,/obj/structure/window/fulltile{dir = 4},/turf/space,/area/space) "jc" = (/obj/structure/girder,/obj/structure/window/fulltile,/turf/simulated/floor/plating/airless,/area/derelict/arrival) -"jd" = (/obj/structure/stool/bed,/turf/simulated/floor/airless,/area/derelict/hallway/primary) +"jd" = (/obj/structure/stool/bed,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) "je" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary) "jf" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary) "jg" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary) -"jh" = (/obj/machinery/door/airlock/security{name = "Security"; req_access = null; req_access_txt = "1"},/turf/simulated/floor/airless,/area/derelict/hallway/primary) +"jh" = (/obj/machinery/door/airlock/security{name = "Security"; req_access = null; req_access_txt = "1"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) "ji" = (/obj/item/weapon/cigbutt,/turf/space,/area/space) "jj" = (/obj/structure/window/fulltile{dir = 1},/turf/simulated/floor/plating,/area/derelict/arrival) "jk" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel,/area/derelict/arrival) -"jl" = (/obj/structure/table,/turf/simulated/floor/airless,/area/derelict/hallway/primary) -"jm" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell,/turf/simulated/floor/airless,/area/derelict/hallway/primary) -"jn" = (/obj/machinery/vending/sovietsoda,/turf/simulated/floor/airless,/area/derelict/hallway/primary) -"jo" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/airless,/area/derelict/hallway/primary) -"jp" = (/obj/structure/table,/turf/simulated/floor/airless,/area/space) -"jq" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless,/area/space) -"jr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/space) +"jl" = (/obj/structure/table,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) +"jm" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) +"jn" = (/obj/machinery/vending/sovietsoda,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) +"jo" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) +"jp" = (/obj/structure/table,/turf/simulated/floor/plasteel/airless,/area/space) +"jq" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless,/area/space) +"jr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless,/area/space) "js" = (/obj/structure/lattice,/obj/item/stack/cable_coil/cut,/turf/space,/area/space) "jt" = (/obj/structure/girder,/turf/simulated/floor/plating,/area/derelict/arrival) -"ju" = (/obj/structure/stool,/turf/simulated/floor/airless,/area/derelict/hallway/primary) +"ju" = (/obj/structure/stool,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) "jv" = (/obj/machinery/door/airlock/maintenance{name = "Atmospherics Access"; req_access_txt = "24"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary) -"jw" = (/obj/structure/closet/wardrobe/orange,/turf/simulated/floor/airless,/area/space) +"jw" = (/obj/structure/closet/wardrobe/orange,/turf/simulated/floor/plasteel/airless,/area/space) "jx" = (/obj/structure/window/fulltile{dir = 4},/turf/space,/area/space) "jy" = (/obj/structure/grille,/turf/simulated/floor/plating,/area/derelict/arrival) "jz" = (/obj/structure/closet/wardrobe,/turf/simulated/floor/plasteel,/area/derelict/arrival) -"jA" = (/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/derelict/hallway/primary) -"jB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced,/turf/simulated/floor/airless,/area/space) -"jC" = (/obj/structure/window/reinforced,/turf/simulated/floor/airless,/area/space) +"jA" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/derelict/hallway/primary) +"jB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless,/area/space) +"jC" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless,/area/space) "jD" = (/obj/structure/grille,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/space) -"jE" = (/obj/structure/stool/bed,/turf/simulated/floor/airless,/area/space) +"jE" = (/obj/structure/stool/bed,/turf/simulated/floor/plasteel/airless,/area/space) "jF" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel,/area/derelict/arrival) -"jG" = (/turf/simulated/floor/airless{icon_state = "floorgrime"},/area/derelict/hallway/primary) -"jH" = (/turf/simulated/floor/airless{icon_state = "damaged5"},/area/derelict/hallway/primary) -"jI" = (/obj/structure/table,/obj/item/device/healthanalyzer,/turf/simulated/floor/airless,/area/derelict/hallway/primary) +"jG" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorgrime"},/area/derelict/hallway/primary) +"jH" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/hallway/primary) +"jI" = (/obj/structure/table,/obj/item/device/healthanalyzer,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary) "jJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/space) "jK" = (/obj/structure/closet/wardrobe/mixed,/turf/simulated/floor/plasteel,/area/derelict/arrival) "jL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/space) @@ -518,77 +518,77 @@ "jX" = (/obj/structure/grille,/obj/item/weapon/shard,/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/space) "jY" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating/airless,/area/space) "jZ" = (/obj/structure/girder,/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary) -"ka" = (/obj/item/stack/rods,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/derelict/hallway/secondary) +"ka" = (/obj/item/stack/rods,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary) "kb" = (/obj/item/weapon/shard{icon_state = "small"},/turf/space,/area/space) -"kc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/wirecutters,/turf/simulated/floor/airless,/area/derelict/hallway/secondary) +"kc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/wirecutters,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary) "kd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) -"ke" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/derelict/hallway/secondary) +"ke" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary) "kf" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary) -"kg" = (/turf/simulated/floor/airless,/area/derelict/hallway/secondary) -"kh" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/airless,/area/derelict/hallway/secondary) +"kg" = (/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary) +"kh" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary) "ki" = (/obj/machinery/door/airlock/maintenance{name = "Aux Storage"; req_access_txt = "23"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) -"kj" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/machinery/power/apc{dir = 8; name = "Worn-out APC"; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/airless,/area/derelict/hallway/secondary) +"kj" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/machinery/power/apc{dir = 8; name = "Worn-out APC"; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary) "kk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) "kl" = (/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) -"km" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless,/area/derelict/hallway/secondary) -"kn" = (/turf/simulated/floor/airless{icon_state = "derelict9"},/area/derelict/hallway/secondary) -"ko" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless{icon_state = "derelict10"},/area/derelict/hallway/secondary) -"kp" = (/turf/simulated/floor/airless{icon_state = "derelict11"},/area/derelict/hallway/secondary) -"kq" = (/turf/simulated/floor/airless{icon_state = "derelict12"},/area/derelict/hallway/secondary) -"kr" = (/turf/simulated/floor/airless{icon_state = "derelict13"},/area/derelict/hallway/secondary) -"ks" = (/turf/simulated/floor/airless{icon_state = "derelict14"},/area/derelict/hallway/secondary) -"kt" = (/turf/simulated/floor/airless{icon_state = "derelict15"},/area/derelict/hallway/secondary) -"ku" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless{icon_state = "derelict16"},/area/derelict/hallway/secondary) -"kv" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/airless,/area/derelict/hallway/secondary) -"kw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/derelict/hallway/secondary) -"kx" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/airless,/area/derelict/hallway/secondary) -"ky" = (/turf/simulated/floor/airless{icon_state = "derelict1"},/area/derelict/hallway/secondary) -"kz" = (/turf/simulated/floor/airless{icon_state = "derelict2"},/area/derelict/hallway/secondary) -"kA" = (/turf/simulated/floor/airless{icon_state = "derelict3"},/area/derelict/hallway/secondary) -"kB" = (/turf/simulated/floor/airless{icon_state = "derelict4"},/area/derelict/hallway/secondary) -"kC" = (/turf/simulated/floor/airless{icon_state = "derelict5"},/area/derelict/hallway/secondary) -"kD" = (/turf/simulated/floor/airless{icon_state = "derelict6"},/area/derelict/hallway/secondary) -"kE" = (/turf/simulated/floor/airless{icon_state = "derelict7"},/area/derelict/hallway/secondary) -"kF" = (/turf/simulated/floor/airless{icon_state = "derelict8"},/area/derelict/hallway/secondary) +"km" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary) +"kn" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict9"},/area/derelict/hallway/secondary) +"ko" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless{icon_state = "derelict10"},/area/derelict/hallway/secondary) +"kp" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict11"},/area/derelict/hallway/secondary) +"kq" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict12"},/area/derelict/hallway/secondary) +"kr" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict13"},/area/derelict/hallway/secondary) +"ks" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict14"},/area/derelict/hallway/secondary) +"kt" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict15"},/area/derelict/hallway/secondary) +"ku" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless{icon_state = "derelict16"},/area/derelict/hallway/secondary) +"kv" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary) +"kw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary) +"kx" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary) +"ky" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict1"},/area/derelict/hallway/secondary) +"kz" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict2"},/area/derelict/hallway/secondary) +"kA" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict3"},/area/derelict/hallway/secondary) +"kB" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict4"},/area/derelict/hallway/secondary) +"kC" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict5"},/area/derelict/hallway/secondary) +"kD" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict6"},/area/derelict/hallway/secondary) +"kE" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict7"},/area/derelict/hallway/secondary) +"kF" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict8"},/area/derelict/hallway/secondary) "kG" = (/obj/structure/lattice,/turf/space,/area/derelict/hallway/secondary) "kH" = (/obj/structure/grille,/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) "kI" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) "kJ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) "kK" = (/turf/simulated/wall/r_wall,/area/derelict/bridge/ai_upload) -"kL" = (/obj/machinery/door/airlock/command{name = "AI Upload"; req_access_txt = "16"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) +"kL" = (/obj/machinery/door/airlock/command{name = "AI Upload"; req_access_txt = "16"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload) "kM" = (/obj/machinery/door/airlock/external{name = "Escape Airlock"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) "kN" = (/obj/machinery/door/firedoor,/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) "kO" = (/obj/structure/window/fulltile{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) "kP" = (/obj/structure/window/fulltile{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) -"kQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) -"kR" = (/obj/structure/closet/emcloset,/turf/simulated/floor/airless,/area/derelict/hallway/secondary) +"kQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"kR" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary) "kS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) "kT" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/wall/r_wall,/area/derelict/bridge/ai_upload) "kU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/wall/r_wall,/area/derelict/bridge/ai_upload) -"kV" = (/obj/machinery/door/airlock/command{name = "AI Upload"; req_access_txt = "16"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) +"kV" = (/obj/machinery/door/airlock/command{name = "AI Upload"; req_access_txt = "16"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload) "kW" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/bridge/ai_upload) "kX" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) -"kY" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) -"kZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) -"la" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/derelict/bridge/ai_upload) -"lb" = (/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) -"lc" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) +"kY" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"kZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"la" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/bridge/ai_upload) +"lb" = (/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"lc" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload) "ld" = (/turf/simulated/floor/plating/airless,/area/derelict/bridge/ai_upload) -"le" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) -"lf" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/machinery/power/solar_control{id = "derelictsolar"; name = "Primary Solar Control"; track = 0},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) +"le" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"lf" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/machinery/power/solar_control{id = "derelictsolar"; name = "Primary Solar Control"; track = 0},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload) "lg" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 8; environ = 0; equipment = 0; lighting = 0; locked = 0; name = "Worn-out APC"; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/plating/airless,/area/derelict/bridge/ai_upload) -"lh" = (/obj/item/weapon/paper{desc = ""; info = "The Syndicate have cunningly disguised a Syndicate Uplink as your PDA. Simply enter the code \"678 Bravo\" into the ringtone select to unlock its hidden features.

Objective #1. Kill the God damn AI in a fire blast that it rocks the station. Success!
Objective #2. Escape alive. Failed."; name = "Mission Objectives"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/bridge/ai_upload) -"li" = (/obj/machinery/light/small{dir = 4},/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) +"lh" = (/obj/item/weapon/paper{desc = ""; info = "The Syndicate have cunningly disguised a Syndicate Uplink as your PDA. Simply enter the code \"678 Bravo\" into the ringtone select to unlock its hidden features.

Objective #1. Kill the God damn AI in a fire blast that it rocks the station. Success!
Objective #2. Escape alive. Failed."; name = "Mission Objectives"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/bridge/ai_upload) +"li" = (/obj/machinery/light/small{dir = 4},/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload) "lj" = (/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) -"lk" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/simulated/floor/airless,/area/space) -"ll" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small,/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) -"lm" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) -"ln" = (/obj/item/clothing/suit/space/syndicate/black/red,/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) -"lo" = (/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) +"lk" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/simulated/floor/plasteel/airless,/area/space) +"ll" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small,/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"lm" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"ln" = (/obj/item/clothing/suit/space/syndicate/black/red,/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"lo" = (/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload) "lp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/derelict/bridge/ai_upload) "lq" = (/obj/structure/cable,/turf/simulated/floor/plating/airless,/area/solar/derelict_aft) "lr" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating/airless,/area/solar/derelict_aft) -"ls" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/simulated/floor/airless,/area/solar/derelict_aft) +"ls" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/simulated/floor/plasteel/airless,/area/solar/derelict_aft) "lt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/solar/derelict_aft) "lu" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/simulated/floor/plating/airless,/area/solar/derelict_aft) "lv" = (/turf/simulated/floor/plating/airless,/area/solar/derelict_aft) @@ -596,21 +596,21 @@ "lx" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/solar/derelict_aft) "ly" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/solar/derelict_aft) "lz" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/simulated/floor/plating/airless,/area/solar/derelict_aft) -"lA" = (/obj/structure/cable,/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/simulated/floor/airless,/area/solar/derelict_aft) +"lA" = (/obj/structure/cable,/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/simulated/floor/plasteel/airless,/area/solar/derelict_aft) "lB" = (/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/solar/derelict_aft) "lC" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/solar/derelict_aft) "lD" = (/turf/simulated/wall/r_wall,/area/derelict/teleporter) "lE" = (/turf/simulated/floor/plating/airless,/area/derelict/teleporter) -"lF" = (/turf/simulated/floor/airless,/area/derelict/teleporter) -"lG" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/teleporter) -"lH" = (/obj/machinery/light_construct/small{dir = 1},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/teleporter) -"lI" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/airless,/area/derelict/teleporter) -"lJ" = (/obj/machinery/teleport/station,/turf/simulated/floor/airless,/area/derelict/teleporter) -"lK" = (/obj/machinery/teleport/hub,/turf/simulated/floor/airless,/area/derelict/teleporter) +"lF" = (/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter) +"lG" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/teleporter) +"lH" = (/obj/machinery/light_construct/small{dir = 1},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/teleporter) +"lI" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter) +"lJ" = (/obj/machinery/teleport/station,/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter) +"lK" = (/obj/machinery/teleport/hub,/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter) "lL" = (/obj/machinery/light_construct/small{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/teleporter) -"lM" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell{charge = 100; maxcharge = 15000},/turf/simulated/floor/airless,/area/derelict/teleporter) -"lN" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/derelict/teleporter) -"lO" = (/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/airless,/area/derelict/teleporter) +"lM" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell{charge = 100; maxcharge = 15000},/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter) +"lN" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/teleporter) +"lO" = (/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter) "lP" = (/turf/simulated/mineral/random,/area/space) "lQ" = (/turf/simulated/floor/plating/asteroid/airless,/area/space) "lR" = (/turf/simulated/wall/mineral/clown,/area/space) diff --git a/_maps/map_files/generic/z5.dmm b/_maps/map_files/generic/z5.dmm index 6b9cce0b5cf..b613f4f8a90 100644 --- a/_maps/map_files/generic/z5.dmm +++ b/_maps/map_files/generic/z5.dmm @@ -2,87 +2,87 @@ "ab" = (/turf/simulated/mineral,/area/mine/unexplored) "ac" = (/turf/space,/area/syndicate_station/mining) "ad" = (/turf/simulated/mineral/random,/area/mine/unexplored) -"ae" = (/turf/simulated/mineral/random/high_chance,/area/mine/unexplored) -"af" = (/turf/simulated/mineral,/area/mine/explored) -"ag" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/abandoned) -"ah" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/airless,/area/mine/abandoned) -"ai" = (/obj/structure/stool/bed/chair/comfy/black,/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/wood,/area/library) +"ae" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/mineral/random,/area/mine/unexplored) +"af" = (/turf/simulated/mineral/random/high_chance,/area/mine/unexplored) +"ag" = (/turf/simulated/mineral,/area/mine/explored) +"ah" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/abandoned) +"ai" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned) "aj" = (/turf/simulated/mineral/random/low_chance,/area/mine/explored) "ak" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/abandoned) -"al" = (/turf/simulated/floor/airless,/area/mine/abandoned) +"al" = (/turf/simulated/floor/plasteel/airless,/area/mine/abandoned) "am" = (/obj/structure/lattice,/turf/space,/area/space) "an" = (/turf/simulated/floor/plating/asteroid/airless/cave,/area/mine/unexplored) "ao" = (/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/plating/airless,/area/mine/abandoned) -"ap" = (/obj/item/stack/rods,/obj/structure/door_assembly/door_assembly_ext{name = "Broken External Airlock"},/turf/simulated/floor/airless,/area/mine/abandoned) +"ap" = (/obj/item/stack/rods,/obj/structure/door_assembly/door_assembly_ext{name = "Broken External Airlock"},/turf/simulated/floor/plasteel/airless,/area/mine/abandoned) "aq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/mine/abandoned) "ar" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/mine/abandoned) "as" = (/turf/simulated/floor/plating/airless,/area/mine/abandoned) -"at" = (/obj/item/stack/rods,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned) -"au" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/airless,/area/mine/abandoned) -"av" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned) +"at" = (/obj/item/stack/rods,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/mine/abandoned) +"au" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plasteel/airless,/area/mine/abandoned) +"av" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/mine/abandoned) "aw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/mine/abandoned) -"ax" = (/obj/item/weapon/shard,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned) +"ax" = (/obj/item/weapon/shard,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/mine/abandoned) "ay" = (/turf/simulated/wall,/area/mine/abandoned) "az" = (/turf/simulated/floor/plating/airless,/area/space) "aA" = (/obj/item/stack/rods,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard,/turf/simulated/floor/plating/airless,/area/mine/abandoned) -"aB" = (/obj/item/stack/rods,/turf/simulated/floor/airless,/area/mine/abandoned) +"aB" = (/obj/item/stack/rods,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned) "aC" = (/obj/structure/lattice,/obj/structure/lattice,/turf/space,/area/space) "aD" = (/obj/structure/lattice,/obj/item/weapon/shard{icon_state = "medium"},/turf/space,/area/space) "aE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/mine/abandoned) -"aF" = (/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/turf/simulated/floor/airless,/area/mine/abandoned) -"aG" = (/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned) +"aF" = (/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/turf/simulated/floor/plasteel/airless,/area/mine/abandoned) +"aG" = (/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/mine/abandoned) "aH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/mine/abandoned) "aI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/mine/abandoned) "aJ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/mine/abandoned) -"aK" = (/obj/structure/alien/weeds,/turf/simulated/floor/airless,/area/mine/abandoned) -"aL" = (/obj/effect/decal/remains/xeno,/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned) +"aK" = (/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned) +"aL" = (/obj/effect/decal/remains/xeno,/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/mine/abandoned) "aM" = (/obj/item/stack/rods,/obj/structure/lattice,/turf/space,/area/space) "aN" = (/obj/item/weapon/shard,/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/mine/abandoned) "aO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/mine/abandoned) -"aP" = (/obj/structure/table,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned) -"aQ" = (/obj/structure/table,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned) -"aR" = (/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned) +"aP" = (/obj/structure/table,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/mine/abandoned) +"aQ" = (/obj/structure/table,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/mine/abandoned) +"aR" = (/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/mine/abandoned) "aS" = (/obj/structure/alien/weeds,/turf/simulated/floor/plating/airless,/area/mine/abandoned) "aT" = (/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/mine/abandoned) "aU" = (/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/plating/airless,/area/mine/abandoned) -"aV" = (/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned) -"aW" = (/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned) +"aV" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/mine/abandoned) +"aW" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/mine/abandoned) "aX" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/abandoned) "aY" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/plating/airless,/area/mine/abandoned) "aZ" = (/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/obj/structure/alien/weeds,/turf/simulated/floor/plating/airless,/area/mine/abandoned) "ba" = (/obj/item/weapon/shard,/obj/structure/lattice,/turf/space,/area/space) -"bb" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned) -"bc" = (/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned) +"bb" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/mine/abandoned) +"bc" = (/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/mine/abandoned) "bd" = (/obj/effect/decal/remains/xeno,/obj/structure/alien/weeds,/turf/simulated/floor/plating/airless,/area/mine/abandoned) "be" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/abandoned) "bf" = (/obj/item/weapon/shard,/turf/simulated/floor/plating/airless,/area/mine/abandoned) "bg" = (/obj/structure/lattice,/obj/item/weapon/shard{icon_state = "small"},/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/turf/space,/area/mine/abandoned) "bh" = (/obj/structure/lattice,/turf/space,/area/mine/abandoned) -"bi" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/airless,/area/mine/abandoned) +"bi" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned) "bj" = (/turf/simulated/wall,/area/mine/north_outpost) "bk" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/north_outpost) "bl" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/mine/abandoned) "bm" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/mine/abandoned) -"bn" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/mine/abandoned) -"bo" = (/obj/effect/decal/remains/xeno,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned) -"bp" = (/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned) -"bq" = (/obj/effect/decal/remains/xeno,/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "damaged4"},/area/mine/abandoned) -"br" = (/obj/structure/table,/turf/simulated/floor/airless,/area/mine/abandoned) -"bs" = (/obj/structure/rack,/turf/simulated/floor/airless,/area/mine/abandoned) +"bn" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/mine/abandoned) +"bo" = (/obj/effect/decal/remains/xeno,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/mine/abandoned) +"bp" = (/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/mine/abandoned) +"bq" = (/obj/effect/decal/remains/xeno,/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/mine/abandoned) +"br" = (/obj/structure/table,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned) +"bs" = (/obj/structure/rack,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned) "bt" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/port_gen/pacman{anchored = 1},/turf/simulated/floor/plating,/area/mine/north_outpost) "bu" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/mine/north_outpost) "bv" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/mine/north_outpost) "bw" = (/obj/machinery/atmospherics/unary/tank/air,/turf/simulated/floor/plating,/area/mine/north_outpost) -"bx" = (/obj/effect/decal/remains/human,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned) -"by" = (/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned) -"bz" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned) -"bA" = (/obj/structure/table,/obj/structure/alien/weeds,/turf/simulated/floor/airless,/area/mine/abandoned) +"bx" = (/obj/effect/decal/remains/human,/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/mine/abandoned) +"by" = (/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/mine/abandoned) +"bz" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/mine/abandoned) +"bA" = (/obj/structure/table,/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned) "bB" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/mine/north_outpost) "bC" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/mine/north_outpost) "bD" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/item/weapon/storage/box/lights/bulbs,/obj/machinery/atmospherics/pipe/simple{dir = 6},/turf/simulated/floor/plating,/area/mine/north_outpost) "bE" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/obj/machinery/meter,/turf/simulated/floor/plating,/area/mine/north_outpost) -"bF" = (/obj/item/weapon/shard,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned) -"bG" = (/obj/item/weapon/shard{icon_state = "small"},/obj/structure/alien/weeds,/turf/simulated/floor/airless,/area/mine/abandoned) +"bF" = (/obj/item/weapon/shard,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/mine/abandoned) +"bG" = (/obj/item/weapon/shard{icon_state = "small"},/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned) "bH" = (/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored) "bI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "54"},/turf/simulated/floor/plating,/area/mine/north_outpost) "bJ" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/north_outpost) @@ -92,7 +92,7 @@ "bN" = (/obj/structure/table,/obj/item/weapon/paper/crumpled,/obj/item/seeds/cherryseed,/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez,/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/abandoned) "bO" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/mine/abandoned) "bP" = (/obj/structure/alien/resin/membrane,/obj/structure/alien/weeds,/turf/simulated/floor/plating/airless,/area/mine/abandoned) -"bQ" = (/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/obj/structure/alien/weeds,/turf/simulated/floor/airless,/area/mine/abandoned) +"bQ" = (/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned) "bR" = (/obj/structure/table,/obj/item/weapon/pickaxe,/turf/simulated/floor/plasteel,/area/mine/north_outpost) "bS" = (/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/plasteel,/area/mine/north_outpost) "bT" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/floor/plasteel,/area/mine/north_outpost) @@ -108,606 +108,609 @@ "cd" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/abandoned) "ce" = (/turf/simulated/floor/plasteel{icon_state = "damaged2"},/area/mine/abandoned) "cf" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/abandoned) -"cg" = (/obj/structure/alien/weeds,/obj/structure/alien/weeds,/turf/simulated/floor/airless,/area/mine/abandoned) -"ch" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/airless,/area/mine/abandoned) -"ci" = (/obj/effect/decal/remains/xeno,/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned) +"cg" = (/obj/structure/alien/weeds,/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned) +"ch" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned) +"ci" = (/obj/effect/decal/remains/xeno,/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/mine/abandoned) "cj" = (/obj/structure/table,/obj/item/weapon/shovel,/turf/simulated/floor/plasteel,/area/mine/north_outpost) "ck" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor/plasteel,/area/mine/north_outpost) -"cl" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/explored) -"cm" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/mine/north_outpost) -"cn" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/mine/north_outpost) -"co" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "Mining North Outpost APC"; pixel_x = 26; pixel_y = 0},/obj/machinery/conveyor_switch{id = "mining_north"},/obj/machinery/camera{c_tag = "North Outpost"; dir = 8; network = list("MINE")},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/north_outpost) -"cp" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/north_outpost) -"cq" = (/obj/machinery/conveyor{backwards = 2; dir = 2; forwards = 1; id = "mining_north"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plasteel,/area/mine/north_outpost) -"cr" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/mine/north_outpost) -"cs" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/north_outpost) -"ct" = (/turf/simulated/floor/plasteel{icon_state = "damaged3"},/area/mine/abandoned) -"cu" = (/obj/structure/ore_box,/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored) -"cv" = (/obj/structure/table,/obj/item/weapon/storage/backpack/satchel,/obj/item/clothing/glasses/meson,/obj/machinery/light/small{dir = 8},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor/plasteel,/area/mine/north_outpost) -"cw" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor/plasteel,/area/mine/north_outpost) -"cx" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/north_outpost) -"cy" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/door/airlock/glass_mining{name = "Break Room"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/north_outpost) -"cz" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/turf/simulated/floor/plasteel,/area/mine/north_outpost) -"cA" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/north_outpost) -"cB" = (/obj/machinery/door/window/northleft{dir = 8; name = "Pneumatic Tube Access"},/obj/machinery/disposal/deliveryChute{dir = 8; pixel_x = 8; pixel_y = 0},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/north_outpost) -"cC" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/north_outpost) -"cD" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/mine/explored) -"cE" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/north_outpost) -"cF" = (/obj/machinery/conveyor_switch{id = "mining_north"},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/north_outpost) -"cG" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/north_outpost) -"cH" = (/obj/effect/decal/remains/human,/obj/item/clothing/suit/xenos,/obj/item/clothing/head/xenos,/turf/simulated/floor/plasteel{icon_state = "damaged2"},/area/mine/abandoned) -"cI" = (/obj/structure/table,/obj/item/stack/sheet/mineral/sandstone{amount = 30},/turf/simulated/floor/plasteel{icon_state = "damaged3"},/area/mine/abandoned) -"cJ" = (/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "floorgrime"},/area/mine/abandoned) -"cK" = (/obj/structure/alien/resin/wall,/turf/simulated/floor/plating/airless,/area/mine/abandoned) -"cL" = (/obj/effect/decal/remains/xeno,/turf/simulated/floor/airless,/area/mine/abandoned) -"cM" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/plasteel,/area/mine/north_outpost) -"cN" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel,/area/mine/north_outpost) -"cO" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/mine/north_outpost) -"cP" = (/obj/structure/rack,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/north_outpost) -"cQ" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/mine/north_outpost) -"cR" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/airless{icon_state = "floorgrime"},/area/mine/abandoned) -"cS" = (/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "damaged4"},/area/mine/abandoned) -"cT" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/abandoned) -"cU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard,/turf/simulated/floor/plating/airless,/area/mine/abandoned) -"cV" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/abandoned) -"cW" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/mine/abandoned) -"cX" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plasteel,/area/mine/north_outpost) -"cY" = (/obj/machinery/recharge_station,/turf/simulated/floor/plasteel,/area/mine/north_outpost) -"cZ" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor/plasteel,/area/mine/north_outpost) -"da" = (/obj/effect/decal/remains/human,/obj/structure/alien/weeds,/turf/simulated/floor/airless,/area/mine/abandoned) -"db" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned) -"dc" = (/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/abandoned) -"dd" = (/obj/structure/rack,/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/abandoned) -"de" = (/turf/simulated/floor/plating/asteroid/airless,/area/mine/unexplored) -"df" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp) -"dg" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp) -"dh" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp/security) -"di" = (/obj/machinery/door/airlock/external{name = "Mining North Outpost Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/north_outpost) -"dj" = (/turf/simulated/mineral/random/labormineral,/area/mine/unexplored) -"dk" = (/obj/item/weapon/rack_parts,/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/abandoned) -"dl" = (/obj/structure/girder/displaced,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/abandoned) -"dm" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp/security) -"dn" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp/security) -"do" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/mine/explored) -"dp" = (/obj/structure/lattice,/obj/structure/window/reinforced,/turf/space,/area/mine/explored) -"dq" = (/obj/structure/lattice,/obj/structure/window/reinforced,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/space,/area/mine/north_outpost) -"dr" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/north_outpost) -"ds" = (/turf/simulated/floor/mech_bay_recharge_floor/airless,/area/mine/north_outpost) -"dt" = (/obj/machinery/computer/mech_bay_power_console,/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/north_outpost) -"du" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel,/area/mine/north_outpost) -"dv" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel,/area/mine/north_outpost) -"dw" = (/turf/simulated/wall/r_wall,/area/mine/laborcamp) -"dx" = (/obj/structure/alien/resin/wall,/turf/simulated/floor/airless{icon_state = "floorgrime"},/area/mine/abandoned) -"dy" = (/turf/simulated/floor/airless{icon_state = "floorgrime"},/area/mine/abandoned) -"dz" = (/obj/structure/girder,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/abandoned) -"dA" = (/obj/machinery/door/airlock/external{name = "Mining Bridge"; req_access_txt = "54"},/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/north_outpost) -"dB" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/mine/explored) -"dC" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/north_outpost) -"dD" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/north_outpost) -"dE" = (/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/north_outpost) -"dF" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/north_outpost) -"dG" = (/obj/structure/rack{dir = 1},/obj/item/clothing/glasses/meson,/obj/item/device/flashlight,/obj/item/weapon/storage/bag/ore,/obj/machinery/atmospherics/pipe/simple{dir = 9},/obj/item/weapon/shovel{attack_verb = list("ineffectively hit"); desc = "A large tool for digging and moving dirt. Was modified with extra safety, making it ineffective as a weapon."; force = 1; name = "safety shovel"; pixel_x = -5; throwforce = 1},/obj/item/weapon/pickaxe{attack_verb = list("ineffectively hit"); desc = "A pickaxe designed to be only effective at digging rock and ore, very ineffective as a weapon."; force = 1; name = "safety pickaxe"; pixel_x = 5; throwforce = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"dH" = (/obj/structure/rack{dir = 1},/obj/item/clothing/glasses/meson,/obj/item/device/flashlight,/obj/item/weapon/storage/bag/ore,/obj/machinery/atmospherics/pipe/simple{dir = 9},/obj/item/weapon/shovel{attack_verb = list("ineffectively hit"); desc = "A large tool for digging and moving dirt. Was modified with extra safety, making it ineffective as a weapon."; force = 1; name = "safety shovel"; pixel_x = -5; throwforce = 1},/obj/item/weapon/pickaxe{attack_verb = list("ineffectively hit"); desc = "A pickaxe designed to be only effective at digging rock and ore, very ineffective as a weapon."; force = 1; name = "safety pickaxe"; pixel_x = 5; throwforce = 1},/obj/machinery/camera{c_tag = "Labor Camp Storage"; dir = 8; network = list("Labor")},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"dI" = (/turf/simulated/mineral/random/labormineral,/area/mine/explored) -"dJ" = (/obj/item/weapon/storage/toolbox/syndicate,/obj/structure/alien/weeds/node,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned) -"dK" = (/obj/effect/decal/remains/xeno,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/head/helmet/space/syndicate/black/red,/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "damaged4"},/area/mine/abandoned) -"dL" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/space,/area/mine/north_outpost) -"dM" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/turf/space,/area/mine/explored) -"dN" = (/obj/machinery/door/airlock/external{name = "Mining North Outpost Airlock"; req_access_txt = "54"},/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/north_outpost) -"dO" = (/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/explored) -"dP" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/o2{pixel_x = 2; pixel_y = 2},/turf/simulated/floor/plasteel{icon_state = "white"; temperature = 273.15},/area/mine/laborcamp) -"dQ" = (/obj/structure/table,/obj/item/device/healthanalyzer,/obj/item/stack/medical/bruise_pack,/turf/simulated/floor/plasteel{icon_state = "white"; temperature = 273.15},/area/mine/laborcamp) -"dR" = (/obj/structure/sign/bluecross_2{pixel_y = 32},/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{icon_state = "white"; temperature = 273.15},/area/mine/laborcamp) -"dS" = (/obj/machinery/camera{c_tag = "Labor Camp Medical"; dir = 8; network = list("Labor")},/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/turf/simulated/floor/plasteel{icon_state = "white"; temperature = 273.15},/area/mine/laborcamp) -"dT" = (/turf/simulated/wall,/area/mine/laborcamp) -"dU" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"dV" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"dW" = (/turf/simulated/wall,/area/mine/explored) -"dX" = (/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored) -"dY" = (/obj/machinery/door/airlock/external{name = "External Airlock"; req_access_txt = "0"},/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/abandoned) -"dZ" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/item/weapon/shard{icon_state = "small"},/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/mine/abandoned) -"ea" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 10},/area/mine/explored) -"eb" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/explored) -"ec" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 6},/area/mine/explored) -"ed" = (/obj/machinery/light{dir = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/north_outpost) -"ee" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/explored) -"ef" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 5},/area/mine/explored) -"eg" = (/turf/space,/area) -"eh" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/mine/laborcamp) -"ei" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/mine/laborcamp) -"ej" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=1-Storage"; location = "Sleeper"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/mine/laborcamp) -"ek" = (/obj/machinery/light/small{dir = 4},/obj/structure/stool/bed/roller,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/mine/laborcamp) -"el" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/closet/crate/internals,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"em" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"en" = (/obj/machinery/bot/secbot/beepsky{desc = "Powered by tears and swet of laborer."; name = "Prison Ofitser"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=2-NMine"; location = "1-Storage"},/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/laborcamp) -"eo" = (/obj/structure/plasticflaps/mining,/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/laborcamp) -"ep" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=3-SMine"; location = "2-NMine"},/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/laborcamp) -"eq" = (/turf/simulated/floor/plating{icon_plating = "asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/explored) -"er" = (/obj/effect/decal/remains/human,/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored) -"es" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/explored) -"et" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp/security) -"eu" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Infirmary"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "whitebluefull"},/area/mine/laborcamp) -"ev" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/living_quarters) -"ew" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/laborcamp) -"ex" = (/obj/machinery/door/airlock{name = "Labor Camp Storage"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"ey" = (/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating{icon_plating = "asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/explored) -"ez" = (/turf/simulated/wall/r_wall,/area/mine/explored) -"eA" = (/obj/structure/girder/reinforced,/turf/simulated/floor/plating{icon_plating = "asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/explored) -"eB" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/abandoned) -"eC" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/abandoned) -"eD" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) -"eE" = (/obj/structure/table,/obj/item/trash/plate,/obj/item/weapon/kitchen/utensil/fork,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"eF" = (/obj/effect/decal/cleanable/cobweb2,/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"eG" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"eH" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"eI" = (/obj/machinery/atmospherics/pipe/simple,/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = 0; pixel_y = 24; prison_radio = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"eJ" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"eK" = (/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/explored) -"eL" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/item/stack/rods,/obj/item/weapon/shard,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/abandoned) -"eM" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/abandoned) -"eN" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"eO" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=7-Sleeper"; location = "6-Vending"},/mob/living/simple_animal/mouse,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"eP" = (/obj/machinery/door/airlock{name = "Vending"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"eQ" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 5},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"eR" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"eS" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"eT" = (/obj/machinery/door/poddoor/preopen{id = "Labor"; name = "labor camp blast door"},/obj/machinery/door/airlock{name = "Labor Camp External Access"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/laborcamp) -"eU" = (/obj/structure/ore_box,/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored) -"eV" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 10},/area/mine/unexplored) -"eW" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/unexplored) -"eX" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 6},/area/mine/unexplored) -"eY" = (/turf/space,/area/shuttle/laborcamp/outpost) -"eZ" = (/obj/machinery/vending/sustenance,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"fa" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"fb" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/wall,/area/mine/laborcamp) -"fc" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"fd" = (/obj/machinery/flasher{id = "Labor"; pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold{dir = 4},/turf/simulated/wall,/area/mine/laborcamp) -"fe" = (/obj/machinery/conveyor_switch/oneway{id = "gulag"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"ff" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning"; icon_state = "asteroidwarning"; temperature = 273.15},/area/mine/laborcamp) -"fg" = (/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning"; icon_state = "asteroidwarning"; temperature = 273.15},/area/mine/explored) -"fh" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/unexplored) -"fi" = (/obj/machinery/light_switch{pixel_x = -27; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"fj" = (/obj/machinery/camera{c_tag = "Labor Camp Central"; network = list("Labor")},/obj/machinery/atmospherics/pipe/manifold{dir = 8},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"fk" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"fl" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/west_outpost) -"fm" = (/obj/machinery/conveyor{dir = 2; id = "gulag"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"fn" = (/obj/machinery/conveyor{dir = 8; id = "gulag"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/laborcamp) -"fo" = (/obj/machinery/conveyor{dir = 8; id = "gulag"},/turf/simulated/floor/plasteel{tag = "icon-asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/laborcamp) -"fp" = (/obj/machinery/mineral/unloading_machine{dir = 1; input_dir = 4; output_dir = 8},/turf/simulated/floor/plasteel{tag = "icon-asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/laborcamp) -"fq" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning (WEST)"; icon_state = "asteroidwarning"; dir = 8; temperature = 273.15},/area/mine/explored) -"fr" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored) -"fs" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) -"ft" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) -"fu" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Security Airlock"; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"fv" = (/obj/machinery/light/small{dir = 1},/obj/machinery/door_control{id = "Labor"; name = "Labor Camp Lockdown"; pixel_x = 0; pixel_y = 28; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"fw" = (/obj/machinery/door/poddoor/preopen{id = "Labor"; name = "labor camp blast door"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"fx" = (/turf/simulated/floor/plasteel,/area/mine/laborcamp) -"fy" = (/obj/machinery/mineral/processing_unit_console{machinedir = 6},/turf/simulated/wall,/area/mine/laborcamp) -"fz" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 2; id = "gulag"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"fA" = (/obj/machinery/camera{c_tag = "Labor Camp External"; dir = 4; network = list("Labor")},/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored) -"fB" = (/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored) -"fC" = (/obj/machinery/conveyor_switch/oneway{id = "gulag"},/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored) -"fD" = (/obj/effect/decal/cleanable/blood/old,/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored) -"fE" = (/obj/machinery/mineral/stacking_unit_console{machinedir = 2},/turf/simulated/wall,/area/mine/laborcamp) -"fF" = (/obj/machinery/mineral/processing_unit{dir = 1; output_dir = 2},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"fG" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/laborcamp) -"fH" = (/obj/machinery/computer/shuttle/labor/one_way,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"fI" = (/obj/machinery/conveyor{dir = 8; id = "gulag"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=6-Vending"; location = "5-Central"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"fJ" = (/obj/machinery/mineral/stacking_machine{dir = 1; input_dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"fK" = (/obj/machinery/conveyor{dir = 8; id = "gulag"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"fL" = (/obj/machinery/conveyor{dir = 10; icon_state = "conveyor0"; id = "gulag"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"fM" = (/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/explored) -"fN" = (/obj/item/stack/sheet/metal{amount = 5},/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/explored) -"fO" = (/turf/simulated/wall/r_wall,/area/mine/laborcamp/security) -"fP" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp/security) -"fQ" = (/obj/machinery/camera{c_tag = "Labor Camp Security Hallway"; dir = 8; network = list("Labor"); pixel_x = 0; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/laborcamp/security) -"fR" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/laborcamp/security) -"fS" = (/obj/structure/plasticflaps/mining,/turf/simulated/wall,/area/mine/laborcamp/security) -"fT" = (/turf/simulated/wall,/area/mine/laborcamp/security) -"fU" = (/obj/structure/girder,/turf/simulated/floor/plating{icon_plating = "asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/laborcamp/security) -"fV" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Prisoner Airlock"; req_access_txt = "0"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) -"fW" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Prisoner Airlock"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp/security) -"fX" = (/obj/machinery/atmospherics/pipe/simple{dir = 6},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp/security) -"fY" = (/obj/machinery/atmospherics/pipe/manifold,/obj/machinery/door/airlock/glass_security{name = "Labor Camp Backroom"; req_access_txt = "2"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) -"fZ" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/mine/laborcamp/security) -"ga" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/mine/laborcamp/security) -"gb" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/mine/laborcamp/security) -"gc" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Labor Camp APC"; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple{dir = 10},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=5-Central"; location = "4-Maint"},/turf/simulated/floor/plating,/area/mine/laborcamp) -"gd" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/mine/laborcamp/security) -"ge" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp External Access"; req_access_txt = "2"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) -"gf" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Monitoring"; req_access_txt = "2"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) -"gg" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/laborcamp/security) -"gh" = (/obj/machinery/door/airlock/maintenance{name = "Labor Camp Maintenance"; req_access_txt = "2"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) -"gi" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/explored) -"gj" = (/obj/machinery/vending/coffee,/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) -"gk" = (/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) -"gl" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) -"gm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) -"gn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 4; name = "Labor Camp Security APC"; pixel_x = 24; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple,/obj/machinery/camera{c_tag = "Labor Camp Monitoring"; network = list("Labor")},/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) -"go" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/wall,/area/mine/laborcamp/security) -"gp" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) -"gq" = (/obj/machinery/light/small{dir = 1},/obj/item/weapon/storage/box/lights/mixed,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) -"gr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/mine/laborcamp/security) -"gs" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) -"gt" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plating,/area/mine/laborcamp/security) -"gu" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=4-Maint"; location = "3-SMine"},/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/laborcamp) -"gv" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/explored) -"gw" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/closet/crate,/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored) -"gx" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) -"gy" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/mine/laborcamp/security) -"gz" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) -"gA" = (/obj/structure/stool/bed/chair/office/dark,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) -"gB" = (/obj/machinery/door_control{id = "Labor"; name = "Labor Camp Lockdown"; pixel_x = 28; pixel_y = 7; req_access_txt = "2"},/obj/machinery/flasher_button{id = "Labor"; pixel_x = 26; pixel_y = -3},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) -"gC" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/mine/laborcamp/security) -"gD" = (/turf/simulated/floor/plating,/area/mine/laborcamp/security) -"gE" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/obj/machinery/meter,/turf/simulated/floor/plating,/area/mine/laborcamp/security) -"gF" = (/obj/machinery/atmospherics/unary/tank/air{dir = 8},/turf/simulated/floor/plating,/area/mine/laborcamp/security) -"gG" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/west_outpost) -"gH" = (/obj/structure/table,/obj/machinery/recharger,/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) -"gI" = (/obj/machinery/computer/secure_data,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) -"gJ" = (/obj/machinery/computer/security{name = "Labor Camp Monitoring"; network = list("Labor")},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) -"gK" = (/obj/machinery/computer/prisoner,/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) -"gL" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) -"gM" = (/obj/machinery/space_heater,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) -"gN" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) -"gO" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/mine/laborcamp/security) -"gP" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 5},/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/mine/laborcamp/security) -"gQ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/eva) -"gR" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/production) -"gS" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/west_outpost) -"gT" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 9},/area/mine/explored) -"gU" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) -"gV" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) -"gW" = (/turf/simulated/floor/plasteel{icon_plating = "asteroid"; icon_state = "asteroid"; name = "Asteroid"},/area/mine/explored) -"gX" = (/obj/item/clothing/under/soviet,/obj/item/clothing/head/ushanka,/turf/simulated/floor/plasteel{icon_plating = "asteroid"; icon_state = "asteroid"; name = "Asteroid"},/area/mine/explored) -"gY" = (/obj/effect/decal/remains/human,/turf/simulated/floor/plasteel{icon_plating = "asteroid"; icon_state = "asteroid"; name = "Asteroid"},/area/mine/explored) -"gZ" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 8},/area/mine/explored) -"ha" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 4},/area/mine/explored) -"hb" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/living_quarters) -"hc" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/eva) -"hd" = (/obj/machinery/door/airlock/external{name = "Mining Bridge"; req_access_txt = "54"},/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/west_outpost) -"he" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/mine/explored) -"hf" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless,/area/mine/explored) -"hg" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 1},/turf/space,/area/mine/west_outpost) -"hh" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/mine/explored) -"hi" = (/obj/structure/lattice,/obj/structure/window/reinforced,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/space,/area/mine/west_outpost) -"hj" = (/obj/structure/lattice,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/mine/explored) -"hk" = (/turf/simulated/wall/r_wall,/area/mine/maintenance) -"hl" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/airless,/area/mine/explored) -"hm" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/mine/explored) -"hn" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless,/area/mine/explored) -"ho" = (/turf/simulated/floor/bluegrid,/area/mine/maintenance) -"hp" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Mining Communications APC"; pixel_x = 1; pixel_y = 25},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/mine/maintenance) -"hq" = (/obj/machinery/telecomms/relay/preset/mining,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 1},/area/mine/maintenance) -"hr" = (/obj/machinery/alarm{pixel_y = 24},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/mine/maintenance) -"hs" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/west_outpost) -"ht" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/space,/area/mine/explored) -"hu" = (/obj/structure/lattice,/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/mine/explored) -"hv" = (/obj/structure/lattice,/turf/space,/area/mine/explored) -"hw" = (/turf/space,/area/mine/unexplored) -"hx" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/bluegrid,/area/mine/maintenance) -"hy" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple{dir = 6},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/mine/maintenance) -"hz" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor/bluegrid,/area/mine/maintenance) -"hA" = (/obj/machinery/camera{c_tag = "Communications Relay"; dir = 8; network = list("MINE")},/turf/simulated/floor/bluegrid,/area/mine/maintenance) -"hB" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) -"hC" = (/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris,/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) -"hD" = (/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) -"hE" = (/turf/simulated/wall,/area/mine/living_quarters) -"hF" = (/obj/machinery/door/airlock/maintenance{name = "Mining Station Communications"; req_access_txt = "48"},/obj/machinery/atmospherics/pipe/simple,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "vault"},/area/mine/maintenance) -"hG" = (/obj/item/clothing/under/rank/miner,/obj/effect/decal/remains/human,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) -"hH" = (/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris,/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/explored) -"hI" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/brown,/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters) -"hJ" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm1"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters) -"hK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"hL" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/obj/machinery/light,/turf/space,/area/mine/west_outpost) -"hM" = (/obj/structure/table,/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters) -"hN" = (/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters) -"hO" = (/obj/machinery/door/airlock{id_tag = "miningdorm1"; name = "Room 1"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/mine/living_quarters) -"hP" = (/obj/structure/disposalpipe/trunk,/obj/structure/disposaloutlet{dir = 1},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) -"hQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"hR" = (/obj/structure/disposalpipe/segment,/turf/simulated/mineral/random,/area/mine/unexplored) -"hS" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm2"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters) -"hT" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/living_quarters) -"hU" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/west_outpost) -"hV" = (/obj/machinery/door/airlock{id_tag = "miningdorm2"; name = "Room 2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/mine/living_quarters) -"hW" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/production) -"hX" = (/turf/space,/area/mine/explored) -"hY" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/west_outpost) -"hZ" = (/turf/simulated/floor/mech_bay_recharge_floor/airless,/area/mine/west_outpost) -"ia" = (/obj/machinery/computer/mech_bay_power_console,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/west_outpost) -"ib" = (/obj/structure/disposalpipe/segment,/obj/structure/sign/deathsposal,/turf/simulated/wall,/area/mine/living_quarters) -"ic" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/production) -"id" = (/turf/simulated/wall,/area/mine/west_outpost) -"ie" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/production) -"ih" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating/asteroid/airless,/area/mine/west_outpost) -"ii" = (/obj/machinery/computer/arcade,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) -"ij" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) -"ik" = (/obj/machinery/vending/cigarette,/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) -"il" = (/obj/machinery/vending/snack,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) -"im" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm3"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters) -"iq" = (/obj/structure/table,/obj/item/weapon/pickaxe,/turf/simulated/floor/plasteel,/area/mine/west_outpost) -"ir" = (/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/plasteel,/area/mine/west_outpost) -"is" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/floor/plasteel,/area/mine/west_outpost) -"iu" = (/obj/machinery/recharge_station,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/west_outpost) -"iv" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/west_outpost) -"iw" = (/obj/structure/rack,/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/west_outpost) -"ix" = (/obj/structure/rack,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/west_outpost) -"iy" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/trunk,/obj/machinery/door/window/northleft{dir = 2; name = "Pneumatic Tube Access"},/obj/machinery/disposal/deliveryChute{pixel_y = 5},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/west_outpost) -"iA" = (/turf/simulated/floor/plasteel,/area/mine/west_outpost) -"iB" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/west_outpost) -"iD" = (/obj/structure/table,/obj/machinery/microwave{pixel_y = 6},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) -"iE" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) -"iF" = (/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) -"iG" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) -"iH" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 31},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) -"iI" = (/obj/machinery/door/airlock{id_tag = "miningdorm3"; name = "Room 3"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/mine/living_quarters) -"iJ" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"iK" = (/obj/machinery/recharge_station,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"iL" = (/obj/structure/closet/secure_closet/miner,/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"iM" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/eva) -"iN" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/eva) -"iQ" = (/turf/simulated/wall,/area/mine/eva) -"iR" = (/obj/structure/table,/obj/item/weapon/shovel,/turf/simulated/floor/plasteel,/area/mine/west_outpost) -"iS" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor/plasteel,/area/mine/west_outpost) -"iU" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/mine/west_outpost) -"iV" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/mine/west_outpost) -"iW" = (/obj/machinery/door/airlock/external{name = "Mining West Outpost Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/west_outpost) -"iX" = (/obj/machinery/door/airlock/external{name = "Mining West Outpost Airlock"; req_access_txt = "54"},/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/west_outpost) -"iY" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 4},/area/mine/explored) -"iZ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) -"ja" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) -"jb" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) -"jc" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) -"jd" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) -"je" = (/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"jf" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"jg" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/table,/obj/item/weapon/pickaxe,/turf/simulated/floor/plasteel,/area/mine/eva) -"jh" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/suit_storage_unit/mining,/turf/simulated/floor/plasteel,/area/mine/eva) -"ji" = (/obj/machinery/suit_storage_unit/mining,/turf/simulated/floor/plasteel,/area/mine/eva) -"jj" = (/obj/machinery/light,/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored) -"jk" = (/obj/structure/table,/obj/item/weapon/storage/backpack/satchel,/obj/item/clothing/glasses/meson,/obj/machinery/light/small{dir = 8},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor/plasteel,/area/mine/west_outpost) -"jl" = (/obj/machinery/door/airlock/glass_mining{name = "Break Room"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/west_outpost) -"jm" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/west_outpost) -"jn" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel,/area/mine/west_outpost) -"jo" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/west_outpost) -"jp" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) -"jq" = (/obj/machinery/camera{c_tag = "Crew Area"; dir = 1; network = list("MINE")},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) -"jr" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) -"js" = (/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"jt" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"ju" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"jv" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"jw" = (/obj/machinery/mineral/equipment_vendor,/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"jx" = (/obj/machinery/camera{c_tag = "Storage Room"; dir = 1; network = list("MINE")},/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"jy" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"jz" = (/turf/simulated/wall,/area/mine/production) -"jA" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/mine/production) -"jD" = (/obj/machinery/atmospherics/pipe/simple{dir = 6},/obj/machinery/camera{c_tag = "EVA"; dir = 4; network = list("MINE")},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/table,/obj/item/device/gps/mining,/obj/item/device/gps/mining,/obj/item/device/gps/mining,/obj/item/device/gps/mining,/turf/simulated/floor/plasteel,/area/mine/eva) -"jE" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/eva) -"jF" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/eva) -"jG" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor/plasteel,/area/mine/eva) -"jH" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/plasteel,/area/mine/west_outpost) -"jI" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor/plasteel,/area/mine/west_outpost) -"jK" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1},/turf/simulated/floor/plasteel,/area/mine/west_outpost) -"jL" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/west_outpost) -"jM" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel,/area/mine/west_outpost) -"jN" = (/obj/machinery/conveyor_switch{id = "mining_west"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/west_outpost) -"jQ" = (/obj/machinery/door/airlock/glass{name = "Crew Area"; req_access_txt = "48"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"jR" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/door/airlock/mining{name = "Mining Station Storage"; req_access_txt = "48"},/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"jV" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/northleft{dir = 2; name = "Pneumatic Tube Access"},/obj/machinery/disposal/deliveryChute{pixel_y = 5},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production) -"jW" = (/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production) -"jX" = (/obj/machinery/atmospherics/pipe/simple{dir = 6},/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production) -"jZ" = (/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/turf/simulated/floor/plasteel,/area/mine/eva) -"ka" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/eva) -"kb" = (/turf/simulated/floor/plasteel,/area/mine/eva) -"kc" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor/plasteel,/area/mine/eva) -"ke" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/eva) -"kf" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/eva) -"kh" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plasteel,/area/mine/west_outpost) -"ki" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel,/area/mine/west_outpost) -"kj" = (/obj/machinery/power/apc{dir = 2; name = "Mining West Outpost APC"; pixel_x = 1; pixel_y = -23},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/west_outpost) -"kk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/camera{c_tag = "West Outpost"; dir = 1; network = list("MINE")},/turf/simulated/floor/plasteel,/area/mine/west_outpost) -"kl" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/mine/west_outpost) -"km" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/mine/west_outpost) -"kn" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "loadingarea"},/area/mine/west_outpost) -"ko" = (/obj/machinery/mineral/unloading_machine{dir = 2; output_dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/west_outpost) -"kp" = (/obj/machinery/conveyor{dir = 4; id = "mining_west"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/west_outpost) -"kq" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal/deliveryChute{dir = 8},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/west_outpost) -"ks" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/mine/living_quarters) -"kt" = (/obj/structure/sink{pixel_y = 30},/obj/machinery/light/small,/obj/structure/mirror{pixel_y = -32},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/mine/living_quarters) -"ku" = (/obj/machinery/door/airlock{name = "Toilet"},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/mine/living_quarters) -"kv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"kw" = (/obj/machinery/power/apc{dir = 1; name = "Mining Station Port Wing APC"; pixel_x = 1; pixel_y = 25},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"kx" = (/obj/machinery/camera{c_tag = "Crew Area Hallway"; network = list("MINE")},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"ky" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/mine/living_quarters) -"kA" = (/obj/structure/window/reinforced,/obj/structure/lattice,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/space,/area/mine/living_quarters) -"kB" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/mine/living_quarters) -"kC" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/mine/production) -"kF" = (/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/mine/production) -"kG" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/mine/production) -"kH" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/mine/production) -"kI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/mine/production) -"kJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/glass_mining{name = "Mining Station EVA"; req_access_txt = "54"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/eva) -"kK" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/mine/eva) -"kL" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/eva) -"kM" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/eva) -"kN" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/eva) -"kO" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "54"},/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/eva) -"kP" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/west_outpost) -"kQ" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/west_outpost) -"kR" = (/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "54"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/mine/west_outpost) -"kS" = (/obj/machinery/conveyor{backwards = 2; dir = 2; forwards = 1; id = "mining_west"},/obj/structure/plasticflaps/mining,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/mine/west_outpost) -"kT" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/mine/west_outpost) -"kU" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"kV" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"kW" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"kX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"kY" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"kZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"la" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"lb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/living_quarters) -"lc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/glass_mining{name = "Mining Station Bridge"; req_access_txt = "48"},/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"ld" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"le" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/production) -"lf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/glass_mining{name = "Mining Station Bridge"; req_access_txt = "48"},/turf/simulated/floor/plasteel,/area/mine/production) -"lg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/mine/production) -"lh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor/plasteel,/area/mine/production) -"li" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/production) -"lj" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production) -"lk" = (/obj/machinery/power/apc{dir = 2; name = "Mining EVA APC"; pixel_x = 1; pixel_y = -23},/obj/structure/cable,/obj/structure/table,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/weapon/hand_labeler,/turf/simulated/floor/plasteel,/area/mine/eva) -"ll" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/mine/eva) -"lm" = (/turf/simulated/floor/mech_bay_recharge_floor,/area/mine/eva) -"ln" = (/obj/machinery/computer/mech_bay_power_console,/turf/simulated/floor/plasteel,/area/mine/eva) -"lo" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel,/area/mine/eva) -"lp" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/eva) -"lq" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/meter,/turf/simulated/floor/plating,/area/mine/west_outpost) -"lr" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/mine/west_outpost) -"ls" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/mine/west_outpost) -"lt" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/item/weapon/storage/box/lights/bulbs,/turf/simulated/floor/plating,/area/mine/west_outpost) -"lu" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/west_outpost) -"lv" = (/obj/machinery/conveyor_switch{id = "mining_west"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/west_outpost) -"lw" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"lx" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"ly" = (/obj/machinery/atmospherics/pipe/manifold,/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"lz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"lA" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1},/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"lB" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/light,/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"lC" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/mine/living_quarters) -"lG" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/space,/area/mine/living_quarters) -"lH" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/space,/area/mine/production) -"lI" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/light{dir = 4},/turf/space,/area/mine/production) -"lM" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/mine/production) -"lN" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 1},/area/mine/production) -"lO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/production) -"lP" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production) -"lQ" = (/obj/machinery/camera{c_tag = "Production Line External"; dir = 4; network = list("MINE")},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/production) -"lR" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/production) -"lS" = (/obj/machinery/conveyor_switch{id = "mining_external"},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/production) -"lT" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/production) -"lU" = (/obj/machinery/atmospherics/unary/tank/air{dir = 1; initialize_directions = 0; level = 1},/turf/simulated/floor/plating,/area/mine/west_outpost) -"lV" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/mine/west_outpost) -"lW" = (/obj/machinery/power/terminal{dir = 4},/obj/machinery/light/small,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/west_outpost) -"lX" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/simulated/floor/plating,/area/mine/west_outpost) -"lZ" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Infirmary"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "whitebluefull"},/area/mine/living_quarters) -"ma" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/living_quarters) -"mb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "48"},/turf/simulated/floor/plating,/area/mine/living_quarters) -"mc" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/living_quarters) -"md" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"mg" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/mine/production) -"mh" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/production) -"mi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production) -"mj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock{name = "Closet"; req_access_txt = "0"},/turf/simulated/floor/plating,/area/mine/production) -"mk" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/mine/production) -"ml" = (/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j1"; tag = "icon-pipe-j1 (EAST)"},/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/mine/production) -"mm" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/mine/production) -"mn" = (/obj/machinery/disposal/deliveryChute{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/mine/production) -"mo" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/turf/simulated/floor/plating,/area/mine/production) -"mp" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/mine/production) -"mq" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/production) -"mr" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/production) -"ms" = (/obj/machinery/light/small{dir = 8},/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/mine/living_quarters) -"mt" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/mine/living_quarters) -"mu" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/mine/living_quarters) -"mv" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "whiteblue"},/area/mine/living_quarters) -"mw" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/mine/living_quarters) -"mx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/light/small{dir = 1},/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/mine/living_quarters) -"my" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/mine/living_quarters) -"mz" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plating,/area/mine/living_quarters) -"mA" = (/turf/simulated/floor/plating,/area/mine/living_quarters) -"mB" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/living_quarters) -"mC" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/living_quarters) -"mD" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"mE" = (/obj/structure/sign/xeno_warning_mining,/turf/simulated/wall,/area/mine/living_quarters) -"mF" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/mine/production) -"mG" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/production) -"mH" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production) -"mI" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/production) -"mJ" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "warnwhite"; dir = 1},/area/mine/living_quarters) -"mK" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"},/area/mine/living_quarters) -"mL" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/camera{c_tag = "Sleeper Room"; dir = 1; network = list("MINE")},/turf/simulated/floor/plasteel{icon_state = "white"; temperature = 273.15},/area/mine/living_quarters) -"mM" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/o2{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/firstaid/regular,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/mine/living_quarters) -"mN" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) -"mO" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/obj/machinery/meter,/turf/simulated/floor/plating,/area/mine/living_quarters) -"mP" = (/obj/machinery/atmospherics/unary/tank/air{dir = 8},/turf/simulated/floor/plating,/area/mine/living_quarters) -"mQ" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/living_quarters) -"mR" = (/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/living_quarters) -"mS" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/living_quarters) -"mT" = (/turf/space,/area/shuttle/mining/outpost) -"mU" = (/obj/machinery/power/apc{dir = 8; name = "Mining Station Starboard Wing APC"; pixel_x = -27; pixel_y = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/mine/production) -"mV" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel,/area/mine/production) -"mW" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production) -"mX" = (/obj/machinery/mineral/equipment_vendor,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production) -"mY" = (/obj/machinery/mineral/mint{input_dir = 4},/turf/simulated/floor/plasteel,/area/mine/production) -"mZ" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "loadingarea"},/area/mine/production) -"na" = (/obj/structure/closet/crate,/obj/machinery/alarm{pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production) -"nb" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/structure/table,/obj/item/weapon/paper{anchored = 0; info = "A hastily written note has been scribbled here...

Please use the ore redemption machine in the science wing for smelting. PLEASE!

--The Research Staff"; name = "URGENT!"},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production) -"nd" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/mine/production) -"ne" = (/obj/structure/cable,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/power/port_gen/pacman{anchored = 1},/turf/simulated/floor/plating,/area/mine/living_quarters) -"nf" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/living_quarters) -"ng" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/mine/living_quarters) -"nh" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 5},/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/mine/living_quarters) -"ni" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "54"},/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/living_quarters) -"nj" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/production) -"nl" = (/turf/simulated/floor/plasteel{icon_state = "loadingarea"},/area/mine/production) -"nm" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/mine/production) -"nn" = (/obj/machinery/door/airlock/glass_mining{name = "Conveyor Access"; req_access_txt = "48"},/obj/structure/barricade/wooden,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production) -"no" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/mine/production) -"np" = (/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/explored) -"nq" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plating/asteroid/airless,/area/mine/living_quarters) -"nt" = (/obj/item/device/radio/beacon,/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/mine/production) -"nu" = (/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 4},/area/mine/production) -"nv" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/computer/shuttle/mining{req_access = "0"},/obj/machinery/light{dir = 4},/obj/machinery/camera{c_tag = "Shuttle Docking Foyer"; dir = 8; network = list("MINE")},/obj/machinery/newscaster{pixel_x = 30; pixel_y = 1},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production) -"nw" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production) -"nx" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor/plasteel,/area/mine/production) -"ny" = (/obj/machinery/camera{c_tag = "Processing Area Room"; dir = 8; network = list("MINE")},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = 28},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production) -"nz" = (/obj/machinery/mineral/unloading_machine{dir = 1; icon_state = "unloader-corner"; input_dir = 4; output_dir = 8},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/mine/production) -"nA" = (/obj/machinery/door/airlock/external{name = "Mining Shuttle Airlock"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production) -"nB" = (/turf/simulated/floor/plasteel,/area/mine/production) -"nC" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/mine/production) -"nD" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 8},/area/mine/production) -"nE" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/production) -"nF" = (/obj/machinery/conveyor_switch/oneway{id = "mining_internal"; name = "mining conveyor"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production) -"nG" = (/obj/effect/decal/remains/human{desc = "Seems to be all that remains of a poor miner that didn't heed the warning signs."},/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored) -"nI" = (/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/mine/production) -"nJ" = (/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 1},/area/mine/production) -"nK" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/mine/production) -"nL" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/obj/structure/disposalpipe/junction{dir = 4; icon_state = "pipe-j2"; tag = "icon-pipe-j1 (WEST)"},/turf/simulated/floor/plasteel,/area/mine/production) -"nM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production) -"nN" = (/obj/machinery/door/airlock/glass_mining{name = "Processing Area"; req_access_txt = "48"},/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production) -"nO" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/mine/production) -"nP" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 4},/area/mine/production) -"nQ" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/turf/simulated/floor/plasteel,/area/mine/production) -"nR" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production) -"nS" = (/obj/machinery/mineral/processing_unit_console,/turf/simulated/wall/r_wall,/area/mine/production) -"nT" = (/obj/machinery/mineral/processing_unit{dir = 1; output_dir = 2},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/mine/production) -"nU" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/mine/production) -"nV" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production) -"nW" = (/obj/machinery/door/airlock/glass_mining{name = "Processing Area"; req_access_txt = "48"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production) -"nX" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/mine/production) -"nY" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/mine/production) -"nZ" = (/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/mine/production) -"ob" = (/obj/structure/lattice,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/space,/area/space) -"oc" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/mine/production) -"od" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/mine/production) -"oe" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/window/northleft{name = "Output Access"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production) -"of" = (/obj/machinery/door/window/northleft{base_state = "right"; icon_state = "right"; name = "Output Access"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production) -"og" = (/obj/machinery/mineral/stacking_unit_console,/turf/simulated/wall/r_wall,/area/mine/production) -"oj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/mine/explored) -"ok" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/mine/explored) -"ol" = (/obj/structure/lattice,/obj/structure/disposalpipe/segment{dir = 4},/turf/space,/area/space) -"om" = (/obj/structure/lattice,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/space,/area/space) -"on" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/trunk,/obj/machinery/door/window/northleft{name = "Pneumatic Tube Access"},/obj/machinery/disposal/deliveryChute{dir = 1; pixel_y = -1},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production) -"oo" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/machinery/light,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production) -"op" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production) -"oq" = (/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production) -"or" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/obj/structure/plasticflaps,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/mine/production) -"os" = (/obj/machinery/mineral/stacking_machine{dir = 1; input_dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/mine/production) -"ot" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/mine/production) -"ou" = (/obj/machinery/conveyor{icon_state = "conveyor0"; dir = 10; id = "mining_internal"},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating{tag = "icon-warnplatecorner (EAST)"; icon_state = "warnplatecorner"; dir = 4},/area/mine/production) -"ov" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/mine/explored) -"ow" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/production) -"ox" = (/obj/structure/disposaloutlet{dir = 1; eject_range = 1},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/mine/production) - +"cl" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/mine/north_outpost) +"cm" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/mine/north_outpost) +"cn" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "Mining North Outpost APC"; pixel_x = 26; pixel_y = 0},/obj/machinery/conveyor_switch{id = "mining_north"},/obj/machinery/camera{c_tag = "North Outpost"; dir = 8; network = list("MINE")},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/north_outpost) +"co" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/north_outpost) +"cp" = (/obj/machinery/conveyor{backwards = 2; dir = 2; forwards = 1; id = "mining_north"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plasteel,/area/mine/north_outpost) +"cq" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/mine/north_outpost) +"cr" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/north_outpost) +"cs" = (/turf/simulated/floor/plasteel{icon_state = "damaged3"},/area/mine/abandoned) +"ct" = (/obj/structure/ore_box,/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored) +"cu" = (/obj/structure/table,/obj/item/weapon/storage/backpack/satchel,/obj/item/clothing/glasses/meson,/obj/machinery/light/small{dir = 8},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor/plasteel,/area/mine/north_outpost) +"cv" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor/plasteel,/area/mine/north_outpost) +"cw" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/north_outpost) +"cx" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/door/airlock/glass_mining{name = "Break Room"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/north_outpost) +"cy" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/turf/simulated/floor/plasteel,/area/mine/north_outpost) +"cz" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/north_outpost) +"cA" = (/obj/machinery/door/window/northleft{dir = 8; name = "Pneumatic Tube Access"},/obj/machinery/disposal/deliveryChute{dir = 8; pixel_x = 8; pixel_y = 0},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/north_outpost) +"cB" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/north_outpost) +"cC" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/mine/explored) +"cD" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/north_outpost) +"cE" = (/obj/machinery/conveyor_switch{id = "mining_north"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/north_outpost) +"cF" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/north_outpost) +"cG" = (/obj/effect/decal/remains/human,/obj/item/clothing/suit/xenos,/obj/item/clothing/head/xenos,/turf/simulated/floor/plasteel{icon_state = "damaged2"},/area/mine/abandoned) +"cH" = (/obj/structure/table,/obj/item/stack/sheet/mineral/sandstone{amount = 30},/turf/simulated/floor/plasteel{icon_state = "damaged3"},/area/mine/abandoned) +"cI" = (/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "floorgrime"},/area/mine/abandoned) +"cJ" = (/obj/structure/alien/resin/wall,/turf/simulated/floor/plating/airless,/area/mine/abandoned) +"cK" = (/obj/effect/decal/remains/xeno,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned) +"cL" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/plasteel,/area/mine/north_outpost) +"cM" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel,/area/mine/north_outpost) +"cN" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/mine/north_outpost) +"cO" = (/obj/structure/rack,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/north_outpost) +"cP" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/mine/north_outpost) +"cQ" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/plasteel/airless{icon_state = "floorgrime"},/area/mine/abandoned) +"cR" = (/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/mine/abandoned) +"cS" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/abandoned) +"cT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard,/turf/simulated/floor/plating/airless,/area/mine/abandoned) +"cU" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/abandoned) +"cV" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/mine/abandoned) +"cW" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plasteel,/area/mine/north_outpost) +"cX" = (/obj/machinery/recharge_station,/turf/simulated/floor/plasteel,/area/mine/north_outpost) +"cY" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor/plasteel,/area/mine/north_outpost) +"cZ" = (/obj/effect/decal/remains/human,/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned) +"da" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/mine/abandoned) +"db" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/abandoned) +"dc" = (/obj/structure/rack,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/abandoned) +"dd" = (/turf/simulated/floor/plating/asteroid/airless,/area/mine/unexplored) +"de" = (/obj/machinery/door/airlock/external{name = "Mining North Outpost Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/north_outpost) +"df" = (/turf/simulated/mineral/random/labormineral,/area/mine/unexplored) +"dg" = (/obj/item/weapon/rack_parts,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/abandoned) +"dh" = (/obj/structure/girder/displaced,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/abandoned) +"di" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/explored) +"dj" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/mine/explored) +"dk" = (/obj/structure/lattice,/obj/structure/window/reinforced,/turf/space,/area/mine/explored) +"dl" = (/obj/structure/lattice,/obj/structure/window/reinforced,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/space,/area/mine/north_outpost) +"dm" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/north_outpost) +"dn" = (/turf/simulated/floor/mech_bay_recharge_floor/airless,/area/mine/north_outpost) +"do" = (/obj/machinery/computer/mech_bay_power_console,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/north_outpost) +"dp" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel,/area/mine/north_outpost) +"dq" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel,/area/mine/north_outpost) +"dr" = (/turf/simulated/wall/r_wall,/area/mine/laborcamp) +"ds" = (/obj/structure/alien/resin/wall,/turf/simulated/floor/plasteel/airless{icon_state = "floorgrime"},/area/mine/abandoned) +"dt" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorgrime"},/area/mine/abandoned) +"du" = (/obj/structure/girder,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/abandoned) +"dv" = (/obj/machinery/door/airlock/external{name = "Mining Bridge"; req_access_txt = "54"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/north_outpost) +"dw" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel/airless,/area/mine/explored) +"dx" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/north_outpost) +"dy" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/north_outpost) +"dz" = (/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/north_outpost) +"dA" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/north_outpost) +"dB" = (/obj/structure/rack{dir = 1},/obj/item/clothing/glasses/meson,/obj/item/device/flashlight,/obj/item/weapon/storage/bag/ore,/obj/machinery/atmospherics/pipe/simple{dir = 9},/obj/item/weapon/shovel{attack_verb = list("ineffectively hit"); desc = "A large tool for digging and moving dirt. Was modified with extra safety, making it ineffective as a weapon."; force = 1; name = "safety shovel"; pixel_x = -5; throwforce = 1},/obj/item/weapon/pickaxe{attack_verb = list("ineffectively hit"); desc = "A pickaxe designed to be only effective at digging rock and ore, very ineffective as a weapon."; force = 1; name = "safety pickaxe"; pixel_x = 5; throwforce = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"dC" = (/obj/structure/rack{dir = 1},/obj/item/clothing/glasses/meson,/obj/item/device/flashlight,/obj/item/weapon/storage/bag/ore,/obj/machinery/atmospherics/pipe/simple{dir = 9},/obj/item/weapon/shovel{attack_verb = list("ineffectively hit"); desc = "A large tool for digging and moving dirt. Was modified with extra safety, making it ineffective as a weapon."; force = 1; name = "safety shovel"; pixel_x = -5; throwforce = 1},/obj/item/weapon/pickaxe{attack_verb = list("ineffectively hit"); desc = "A pickaxe designed to be only effective at digging rock and ore, very ineffective as a weapon."; force = 1; name = "safety pickaxe"; pixel_x = 5; throwforce = 1},/obj/machinery/camera{c_tag = "Labor Camp Storage"; dir = 8; network = list("Labor")},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"dD" = (/turf/simulated/mineral/random/labormineral,/area/mine/explored) +"dE" = (/obj/item/weapon/storage/toolbox/syndicate,/obj/structure/alien/weeds/node,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/mine/abandoned) +"dF" = (/obj/effect/decal/remains/xeno,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/head/helmet/space/syndicate/black/red,/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/mine/abandoned) +"dG" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/space,/area/mine/north_outpost) +"dH" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/turf/space,/area/mine/explored) +"dI" = (/obj/machinery/door/airlock/external{name = "Mining North Outpost Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/north_outpost) +"dJ" = (/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/explored) +"dK" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/o2{pixel_x = 2; pixel_y = 2},/turf/simulated/floor/plasteel{icon_state = "white"; temperature = 273.15},/area/mine/laborcamp) +"dL" = (/obj/structure/table,/obj/item/device/healthanalyzer,/obj/item/stack/medical/bruise_pack,/turf/simulated/floor/plasteel{icon_state = "white"; temperature = 273.15},/area/mine/laborcamp) +"dM" = (/obj/structure/sign/bluecross_2{pixel_y = 32},/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{icon_state = "white"; temperature = 273.15},/area/mine/laborcamp) +"dN" = (/obj/machinery/camera{c_tag = "Labor Camp Medical"; dir = 8; network = list("Labor")},/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/turf/simulated/floor/plasteel{icon_state = "white"; temperature = 273.15},/area/mine/laborcamp) +"dO" = (/turf/simulated/wall,/area/mine/laborcamp) +"dP" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"dQ" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"dR" = (/turf/simulated/wall,/area/mine/explored) +"dS" = (/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored) +"dT" = (/obj/machinery/door/airlock/external{name = "External Airlock"; req_access_txt = "0"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/abandoned) +"dU" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/item/weapon/shard{icon_state = "small"},/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/mine/abandoned) +"dV" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 10},/area/mine/explored) +"dW" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/explored) +"dX" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 6},/area/mine/explored) +"dY" = (/obj/machinery/light{dir = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/north_outpost) +"dZ" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/explored) +"ea" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 5},/area/mine/explored) +"eb" = (/turf/space,/area) +"ec" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/mine/laborcamp) +"ed" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/mine/laborcamp) +"ee" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=1-Storage"; location = "Sleeper"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/mine/laborcamp) +"ef" = (/obj/machinery/light/small{dir = 4},/obj/structure/stool/bed/roller,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/mine/laborcamp) +"eg" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/closet/crate/internals,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"eh" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"ei" = (/obj/machinery/bot/secbot/beepsky{desc = "Powered by tears and swet of laborer."; name = "Prison Ofitser"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=2-NMine"; location = "1-Storage"},/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/laborcamp) +"ej" = (/obj/structure/plasticflaps/mining,/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/laborcamp) +"ek" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=3-SMine"; location = "2-NMine"},/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/laborcamp) +"el" = (/turf/simulated/floor/plating{icon_plating = "asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/explored) +"em" = (/obj/effect/decal/remains/human,/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored) +"en" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/explored) +"eo" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp) +"ep" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Infirmary"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "whitebluefull"},/area/mine/laborcamp) +"eq" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp) +"er" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/laborcamp) +"es" = (/obj/machinery/door/airlock{name = "Labor Camp Storage"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"et" = (/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating{icon_plating = "asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/explored) +"eu" = (/turf/simulated/wall/r_wall,/area/mine/explored) +"ev" = (/obj/structure/girder/reinforced,/turf/simulated/floor/plating{icon_plating = "asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/explored) +"ew" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/abandoned) +"ex" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/abandoned) +"ey" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) +"ez" = (/obj/structure/table,/obj/item/trash/plate,/obj/item/weapon/kitchen/utensil/fork,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"eA" = (/obj/effect/decal/cleanable/cobweb2,/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"eB" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"eC" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"eD" = (/obj/machinery/atmospherics/pipe/simple,/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = 0; pixel_y = 24; prison_radio = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"eE" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"eF" = (/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/explored) +"eG" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/mineral/random/labormineral,/area/mine/unexplored) +"eH" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/item/stack/rods,/obj/item/weapon/shard,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/abandoned) +"eI" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/abandoned) +"eJ" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"eK" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=7-Sleeper"; location = "6-Vending"},/mob/living/simple_animal/mouse,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"eL" = (/obj/machinery/door/airlock{name = "Vending"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"eM" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 5},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"eN" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"eO" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"eP" = (/obj/machinery/door/poddoor/preopen{id = "Labor"; name = "labor camp blast door"},/obj/machinery/door/airlock{name = "Labor Camp External Access"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/laborcamp) +"eQ" = (/obj/structure/ore_box,/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored) +"eR" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 10},/area/mine/unexplored) +"eS" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/unexplored) +"eT" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 6},/area/mine/unexplored) +"eU" = (/turf/space,/area/shuttle/laborcamp/outpost) +"eV" = (/obj/machinery/vending/sustenance,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"eW" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"eX" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/wall,/area/mine/laborcamp) +"eY" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"eZ" = (/obj/machinery/flasher{id = "Labor"; pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold{dir = 4},/turf/simulated/wall,/area/mine/laborcamp) +"fa" = (/obj/machinery/conveyor_switch/oneway{id = "gulag"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"fb" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning"; icon_state = "asteroidwarning"; temperature = 273.15},/area/mine/laborcamp) +"fc" = (/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning"; icon_state = "asteroidwarning"; temperature = 273.15},/area/mine/explored) +"fd" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/unexplored) +"fe" = (/obj/machinery/light_switch{pixel_x = -27; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"ff" = (/obj/machinery/camera{c_tag = "Labor Camp Central"; network = list("Labor")},/obj/machinery/atmospherics/pipe/manifold{dir = 8},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"fg" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"fh" = (/obj/machinery/conveyor{dir = 2; id = "gulag"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"fi" = (/obj/machinery/conveyor{dir = 8; id = "gulag"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/laborcamp) +"fj" = (/obj/machinery/conveyor{dir = 8; id = "gulag"},/turf/simulated/floor/plasteel{tag = "icon-asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/laborcamp) +"fk" = (/obj/machinery/mineral/unloading_machine{dir = 1; input_dir = 4; output_dir = 8},/turf/simulated/floor/plasteel{tag = "icon-asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/laborcamp) +"fl" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning (WEST)"; icon_state = "asteroidwarning"; dir = 8; temperature = 273.15},/area/mine/explored) +"fm" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored) +"fn" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) +"fo" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) +"fp" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Security Airlock"; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"fq" = (/obj/machinery/light/small{dir = 1},/obj/machinery/door_control{id = "Labor"; name = "Labor Camp Lockdown"; pixel_x = 0; pixel_y = 28; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"fr" = (/obj/machinery/door/poddoor/preopen{id = "Labor"; name = "labor camp blast door"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"fs" = (/turf/simulated/floor/plasteel,/area/mine/laborcamp) +"ft" = (/obj/machinery/mineral/processing_unit_console{machinedir = 6},/turf/simulated/wall,/area/mine/laborcamp) +"fu" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 2; id = "gulag"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"fv" = (/obj/machinery/camera{c_tag = "Labor Camp External"; dir = 4; network = list("Labor")},/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored) +"fw" = (/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored) +"fx" = (/obj/machinery/conveyor_switch/oneway{id = "gulag"},/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored) +"fy" = (/obj/effect/decal/cleanable/blood/old,/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored) +"fz" = (/obj/machinery/mineral/stacking_unit_console{machinedir = 2},/turf/simulated/wall,/area/mine/laborcamp) +"fA" = (/obj/machinery/mineral/processing_unit{dir = 1; output_dir = 2},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"fB" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/laborcamp) +"fC" = (/obj/machinery/computer/shuttle/labor/one_way,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"fD" = (/obj/machinery/conveyor{dir = 8; id = "gulag"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=6-Vending"; location = "5-Central"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"fE" = (/obj/machinery/mineral/stacking_machine{dir = 1; input_dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"fF" = (/obj/machinery/conveyor{dir = 8; id = "gulag"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"fG" = (/obj/machinery/conveyor{dir = 10; icon_state = "conveyor0"; id = "gulag"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"fH" = (/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/explored) +"fI" = (/obj/item/stack/sheet/metal{amount = 5},/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/explored) +"fJ" = (/turf/simulated/wall/r_wall,/area/mine/laborcamp/security) +"fK" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp/security) +"fL" = (/obj/machinery/camera{c_tag = "Labor Camp Security Hallway"; dir = 8; network = list("Labor"); pixel_x = 0; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/laborcamp/security) +"fM" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/laborcamp/security) +"fN" = (/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating,/area/mine/laborcamp/security) +"fO" = (/turf/simulated/wall,/area/mine/laborcamp/security) +"fP" = (/obj/structure/girder,/turf/simulated/floor/plating{icon_plating = "asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/laborcamp/security) +"fQ" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Prisoner Airlock"; req_access_txt = "0"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) +"fR" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Prisoner Airlock"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp/security) +"fS" = (/obj/machinery/atmospherics/pipe/simple{dir = 6},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp/security) +"fT" = (/obj/machinery/atmospherics/pipe/manifold,/obj/machinery/door/airlock/glass_security{name = "Labor Camp Backroom"; req_access_txt = "2"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) +"fU" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/mine/laborcamp/security) +"fV" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/mine/laborcamp/security) +"fW" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/mine/laborcamp/security) +"fX" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Labor Camp APC"; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple{dir = 10},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=5-Central"; location = "4-Maint"},/turf/simulated/floor/plating,/area/mine/laborcamp) +"fY" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/mine/laborcamp/security) +"fZ" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp External Access"; req_access_txt = "2"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) +"ga" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Monitoring"; req_access_txt = "2"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) +"gb" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/laborcamp/security) +"gc" = (/obj/machinery/door/airlock/maintenance{name = "Labor Camp Maintenance"; req_access_txt = "2"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) +"gd" = (/obj/structure/plasticflaps/mining,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plating,/area/mine/laborcamp/security) +"ge" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/explored) +"gf" = (/obj/machinery/vending/coffee,/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) +"gg" = (/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) +"gh" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) +"gi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) +"gj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 4; name = "Labor Camp Security APC"; pixel_x = 24; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple,/obj/machinery/camera{c_tag = "Labor Camp Monitoring"; network = list("Labor")},/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) +"gk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/wall,/area/mine/laborcamp/security) +"gl" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) +"gm" = (/obj/machinery/light/small{dir = 1},/obj/item/weapon/storage/box/lights/mixed,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) +"gn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/mine/laborcamp/security) +"go" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) +"gp" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plating,/area/mine/laborcamp/security) +"gq" = (/obj/structure/plasticflaps/mining,/turf/simulated/wall,/area/mine/laborcamp/security) +"gr" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=4-Maint"; location = "3-SMine"},/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/laborcamp) +"gs" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/explored) +"gt" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/closet/crate,/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored) +"gu" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) +"gv" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/mine/laborcamp/security) +"gw" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) +"gx" = (/obj/structure/stool/bed/chair/office/dark,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) +"gy" = (/obj/machinery/door_control{id = "Labor"; name = "Labor Camp Lockdown"; pixel_x = 28; pixel_y = 7; req_access_txt = "2"},/obj/machinery/flasher_button{id = "Labor"; pixel_x = 26; pixel_y = -3},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) +"gz" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/mine/laborcamp/security) +"gA" = (/turf/simulated/floor/plating,/area/mine/laborcamp/security) +"gB" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/obj/machinery/meter,/turf/simulated/floor/plating,/area/mine/laborcamp/security) +"gC" = (/obj/machinery/atmospherics/unary/tank/air{dir = 8},/turf/simulated/floor/plating,/area/mine/laborcamp/security) +"gD" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp/security) +"gE" = (/obj/structure/table,/obj/machinery/recharger,/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) +"gF" = (/obj/machinery/computer/secure_data,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) +"gG" = (/obj/machinery/computer/security{name = "Labor Camp Monitoring"; network = list("Labor")},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) +"gH" = (/obj/machinery/computer/prisoner,/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) +"gI" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) +"gJ" = (/obj/machinery/space_heater,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) +"gK" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) +"gL" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/mine/laborcamp/security) +"gM" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 5},/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/mine/laborcamp/security) +"gN" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp/security) +"gO" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp/security) +"gP" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp/security) +"gQ" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 9},/area/mine/explored) +"gR" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) +"gS" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) +"gT" = (/turf/simulated/floor/plasteel{icon_plating = "asteroid"; icon_state = "asteroid"; name = "Asteroid"},/area/mine/explored) +"gU" = (/obj/item/clothing/under/soviet,/obj/item/clothing/head/ushanka,/turf/simulated/floor/plasteel{icon_plating = "asteroid"; icon_state = "asteroid"; name = "Asteroid"},/area/mine/explored) +"gV" = (/obj/effect/decal/remains/human,/turf/simulated/floor/plasteel{icon_plating = "asteroid"; icon_state = "asteroid"; name = "Asteroid"},/area/mine/explored) +"gW" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 8},/area/mine/explored) +"gX" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 4},/area/mine/explored) +"gY" = (/obj/machinery/door/airlock/external{name = "Mining Bridge"; req_access_txt = "54"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/west_outpost) +"gZ" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/mine/explored) +"ha" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless,/area/mine/explored) +"hb" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 1},/turf/space,/area/mine/west_outpost) +"hc" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/mine/explored) +"hd" = (/obj/structure/lattice,/obj/structure/window/reinforced,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/space,/area/mine/west_outpost) +"he" = (/obj/structure/lattice,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/mine/explored) +"hf" = (/turf/simulated/wall/r_wall,/area/mine/maintenance) +"hg" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless,/area/mine/explored) +"hh" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel/airless,/area/mine/explored) +"hi" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel/airless,/area/mine/explored) +"hj" = (/turf/simulated/floor/bluegrid,/area/mine/maintenance) +"hk" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Mining Communications APC"; pixel_x = 1; pixel_y = 25},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/mine/maintenance) +"hl" = (/obj/machinery/telecomms/relay/preset/mining,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 1},/area/mine/maintenance) +"hm" = (/obj/machinery/alarm{pixel_y = 24},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/mine/maintenance) +"hn" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/space,/area/mine/explored) +"ho" = (/obj/structure/lattice,/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/mine/explored) +"hp" = (/obj/structure/lattice,/turf/space,/area/mine/explored) +"hq" = (/turf/space,/area/mine/unexplored) +"hr" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/bluegrid,/area/mine/maintenance) +"hs" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple{dir = 6},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/mine/maintenance) +"ht" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor/bluegrid,/area/mine/maintenance) +"hu" = (/obj/machinery/camera{c_tag = "Communications Relay"; dir = 8; network = list("MINE")},/turf/simulated/floor/bluegrid,/area/mine/maintenance) +"hv" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) +"hw" = (/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris,/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) +"hx" = (/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) +"hy" = (/turf/simulated/wall,/area/mine/living_quarters) +"hz" = (/obj/machinery/door/airlock/maintenance{name = "Mining Station Communications"; req_access_txt = "48"},/obj/machinery/atmospherics/pipe/simple,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "vault"},/area/mine/maintenance) +"hA" = (/obj/item/clothing/under/rank/miner,/obj/effect/decal/remains/human,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) +"hB" = (/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/explored) +"hC" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/brown,/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters) +"hD" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm1"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters) +"hE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"hF" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/obj/machinery/light,/turf/space,/area/mine/west_outpost) +"hG" = (/obj/structure/table,/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters) +"hH" = (/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters) +"hI" = (/obj/machinery/door/airlock{id_tag = "miningdorm1"; name = "Room 1"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/mine/living_quarters) +"hJ" = (/obj/structure/disposalpipe/trunk,/obj/structure/disposaloutlet{dir = 1},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) +"hK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"hL" = (/obj/structure/disposalpipe/segment,/turf/simulated/mineral/random,/area/mine/unexplored) +"hM" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm2"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters) +"hN" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/living_quarters) +"hO" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/west_outpost) +"hP" = (/obj/machinery/door/airlock{id_tag = "miningdorm2"; name = "Room 2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/mine/living_quarters) +"hQ" = (/turf/space,/area/mine/explored) +"hR" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/west_outpost) +"hS" = (/turf/simulated/floor/mech_bay_recharge_floor/airless,/area/mine/west_outpost) +"hT" = (/obj/machinery/computer/mech_bay_power_console,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/west_outpost) +"hU" = (/obj/structure/disposalpipe/segment,/obj/structure/sign/deathsposal,/turf/simulated/wall,/area/mine/living_quarters) +"hV" = (/turf/simulated/wall,/area/mine/west_outpost) +"hW" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/west_outpost) +"hX" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating/asteroid/airless,/area/mine/west_outpost) +"hY" = (/obj/machinery/computer/arcade,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) +"hZ" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) +"ia" = (/obj/machinery/vending/cigarette,/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) +"ib" = (/obj/machinery/vending/snack,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) +"ic" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm3"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters) +"id" = (/obj/structure/table,/obj/item/weapon/pickaxe,/turf/simulated/floor/plasteel,/area/mine/west_outpost) +"ie" = (/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/plasteel,/area/mine/west_outpost) +"if" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/floor/plasteel,/area/mine/west_outpost) +"ig" = (/obj/machinery/recharge_station,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/west_outpost) +"ih" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/west_outpost) +"ii" = (/obj/structure/rack,/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/west_outpost) +"ij" = (/obj/structure/rack,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/west_outpost) +"ik" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/trunk,/obj/machinery/door/window/northleft{dir = 2; name = "Pneumatic Tube Access"},/obj/machinery/disposal/deliveryChute{pixel_y = 5},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/west_outpost) +"il" = (/turf/simulated/floor/plasteel,/area/mine/west_outpost) +"im" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/west_outpost) +"in" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/west_outpost) +"io" = (/obj/structure/table,/obj/machinery/microwave{pixel_y = 6},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) +"ip" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) +"iq" = (/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) +"ir" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) +"is" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 31},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) +"it" = (/obj/machinery/door/airlock{id_tag = "miningdorm3"; name = "Room 3"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/mine/living_quarters) +"iu" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"iv" = (/obj/machinery/recharge_station,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"iw" = (/obj/structure/closet/secure_closet/miner,/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"ix" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/eva) +"iy" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/eva) +"iz" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/eva) +"iA" = (/turf/simulated/wall,/area/mine/eva) +"iB" = (/obj/structure/table,/obj/item/weapon/shovel,/turf/simulated/floor/plasteel,/area/mine/west_outpost) +"iC" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor/plasteel,/area/mine/west_outpost) +"iD" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/mine/west_outpost) +"iE" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/mine/west_outpost) +"iF" = (/obj/machinery/door/airlock/external{name = "Mining West Outpost Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/west_outpost) +"iG" = (/obj/machinery/door/airlock/external{name = "Mining West Outpost Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/west_outpost) +"iH" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 4},/area/mine/explored) +"iI" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) +"iJ" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) +"iK" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) +"iL" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) +"iM" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) +"iN" = (/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"iO" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"iP" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/table,/obj/item/weapon/pickaxe,/turf/simulated/floor/plasteel,/area/mine/eva) +"iQ" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/suit_storage_unit/mining,/turf/simulated/floor/plasteel,/area/mine/eva) +"iR" = (/obj/machinery/suit_storage_unit/mining,/turf/simulated/floor/plasteel,/area/mine/eva) +"iS" = (/obj/machinery/light,/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored) +"iT" = (/obj/structure/table,/obj/item/weapon/storage/backpack/satchel,/obj/item/clothing/glasses/meson,/obj/machinery/light/small{dir = 8},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor/plasteel,/area/mine/west_outpost) +"iU" = (/obj/machinery/door/airlock/glass_mining{name = "Break Room"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/west_outpost) +"iV" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/west_outpost) +"iW" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel,/area/mine/west_outpost) +"iX" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/west_outpost) +"iY" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) +"iZ" = (/obj/machinery/camera{c_tag = "Crew Area"; dir = 1; network = list("MINE")},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) +"ja" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) +"jb" = (/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"jc" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"jd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"je" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"jf" = (/obj/machinery/mineral/equipment_vendor,/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"jg" = (/obj/machinery/camera{c_tag = "Storage Room"; dir = 1; network = list("MINE")},/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"jh" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"ji" = (/turf/simulated/wall,/area/mine/production) +"jj" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/mine/production) +"jk" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/production) +"jl" = (/obj/machinery/atmospherics/pipe/simple{dir = 6},/obj/machinery/camera{c_tag = "EVA"; dir = 4; network = list("MINE")},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/table,/obj/item/device/gps/mining,/obj/item/device/gps/mining,/obj/item/device/gps/mining,/obj/item/device/gps/mining,/turf/simulated/floor/plasteel,/area/mine/eva) +"jm" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/eva) +"jn" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/eva) +"jo" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor/plasteel,/area/mine/eva) +"jp" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/plasteel,/area/mine/west_outpost) +"jq" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor/plasteel,/area/mine/west_outpost) +"jr" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/west_outpost) +"js" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1},/turf/simulated/floor/plasteel,/area/mine/west_outpost) +"jt" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/west_outpost) +"ju" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel,/area/mine/west_outpost) +"jv" = (/obj/machinery/conveyor_switch{id = "mining_west"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/west_outpost) +"jw" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/living_quarters) +"jx" = (/obj/machinery/door/airlock/glass{name = "Crew Area"; req_access_txt = "48"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"jy" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/door/airlock/mining{name = "Mining Station Storage"; req_access_txt = "48"},/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"jz" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/northleft{dir = 2; name = "Pneumatic Tube Access"},/obj/machinery/disposal/deliveryChute{pixel_y = 5},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production) +"jA" = (/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production) +"jB" = (/obj/machinery/atmospherics/pipe/simple{dir = 6},/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production) +"jC" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/eva) +"jD" = (/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/turf/simulated/floor/plasteel,/area/mine/eva) +"jE" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/eva) +"jF" = (/turf/simulated/floor/plasteel,/area/mine/eva) +"jG" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor/plasteel,/area/mine/eva) +"jH" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/eva) +"jI" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/eva) +"jJ" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plasteel,/area/mine/west_outpost) +"jK" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel,/area/mine/west_outpost) +"jL" = (/obj/machinery/power/apc{dir = 2; name = "Mining West Outpost APC"; pixel_x = 1; pixel_y = -23},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/west_outpost) +"jM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/camera{c_tag = "West Outpost"; dir = 1; network = list("MINE")},/turf/simulated/floor/plasteel,/area/mine/west_outpost) +"jN" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/mine/west_outpost) +"jO" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/mine/west_outpost) +"jP" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "loadingarea"},/area/mine/west_outpost) +"jQ" = (/obj/machinery/mineral/unloading_machine{dir = 2; output_dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/west_outpost) +"jR" = (/obj/machinery/conveyor{dir = 4; id = "mining_west"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/west_outpost) +"jS" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal/deliveryChute{dir = 8},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/west_outpost) +"jT" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/west_outpost) +"jU" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/mine/living_quarters) +"jV" = (/obj/structure/sink{pixel_y = 30},/obj/machinery/light/small,/obj/structure/mirror{pixel_y = -32},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/mine/living_quarters) +"jW" = (/obj/machinery/door/airlock{name = "Toilet"},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/mine/living_quarters) +"jX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"jY" = (/obj/machinery/power/apc{dir = 1; name = "Mining Station Port Wing APC"; pixel_x = 1; pixel_y = 25},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"jZ" = (/obj/machinery/camera{c_tag = "Crew Area Hallway"; network = list("MINE")},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"ka" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/mine/living_quarters) +"kb" = (/obj/structure/window/reinforced,/obj/structure/lattice,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/space,/area/mine/living_quarters) +"kc" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/mine/living_quarters) +"kd" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/mine/production) +"ke" = (/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/mine/production) +"kf" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/mine/production) +"kg" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/mine/production) +"kh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/mine/production) +"ki" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/glass_mining{name = "Mining Station EVA"; req_access_txt = "54"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/eva) +"kj" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/mine/eva) +"kk" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/eva) +"kl" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/eva) +"km" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/eva) +"kn" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/eva) +"ko" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/west_outpost) +"kp" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/west_outpost) +"kq" = (/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "54"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/mine/west_outpost) +"kr" = (/obj/machinery/conveyor{backwards = 2; dir = 2; forwards = 1; id = "mining_west"},/obj/structure/plasticflaps/mining,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/mine/west_outpost) +"ks" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/mine/west_outpost) +"kt" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"ku" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"kv" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"kw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"kx" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"ky" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"kz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"kA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/living_quarters) +"kB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/glass_mining{name = "Mining Station Bridge"; req_access_txt = "48"},/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"kC" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"kD" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/production) +"kE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/glass_mining{name = "Mining Station Bridge"; req_access_txt = "48"},/turf/simulated/floor/plasteel,/area/mine/production) +"kF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/mine/production) +"kG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor/plasteel,/area/mine/production) +"kH" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/production) +"kI" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production) +"kJ" = (/obj/machinery/power/apc{dir = 2; name = "Mining EVA APC"; pixel_x = 1; pixel_y = -23},/obj/structure/cable,/obj/structure/table,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/weapon/hand_labeler,/turf/simulated/floor/plasteel,/area/mine/eva) +"kK" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/mine/eva) +"kL" = (/turf/simulated/floor/mech_bay_recharge_floor,/area/mine/eva) +"kM" = (/obj/machinery/computer/mech_bay_power_console,/turf/simulated/floor/plasteel,/area/mine/eva) +"kN" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel,/area/mine/eva) +"kO" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/eva) +"kP" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/meter,/turf/simulated/floor/plating,/area/mine/west_outpost) +"kQ" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/mine/west_outpost) +"kR" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/mine/west_outpost) +"kS" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/item/weapon/storage/box/lights/bulbs,/turf/simulated/floor/plating,/area/mine/west_outpost) +"kT" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/west_outpost) +"kU" = (/obj/machinery/conveyor_switch{id = "mining_west"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/west_outpost) +"kV" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"kW" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"kX" = (/obj/machinery/atmospherics/pipe/manifold,/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"kY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"kZ" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1},/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"la" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/light,/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"lb" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/mine/living_quarters) +"lc" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/living_quarters) +"ld" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/space,/area/mine/living_quarters) +"le" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/space,/area/mine/production) +"lf" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/light{dir = 4},/turf/space,/area/mine/production) +"lg" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/production) +"lh" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/mine/production) +"li" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 1},/area/mine/production) +"lj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/production) +"lk" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production) +"ll" = (/obj/machinery/camera{c_tag = "Production Line External"; dir = 4; network = list("MINE")},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/production) +"lm" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/production) +"ln" = (/obj/machinery/conveyor_switch{id = "mining_external"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/production) +"lo" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/production) +"lp" = (/obj/machinery/atmospherics/unary/tank/air{dir = 1; initialize_directions = 0; level = 1},/turf/simulated/floor/plating,/area/mine/west_outpost) +"lq" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/mine/west_outpost) +"lr" = (/obj/machinery/power/terminal{dir = 4},/obj/machinery/light/small,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/west_outpost) +"ls" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/simulated/floor/plating,/area/mine/west_outpost) +"lt" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Infirmary"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "whitebluefull"},/area/mine/living_quarters) +"lu" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/living_quarters) +"lv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "48"},/turf/simulated/floor/plating,/area/mine/living_quarters) +"lw" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/living_quarters) +"lx" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"ly" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/mine/production) +"lz" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/production) +"lA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production) +"lB" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock{name = "Closet"; req_access_txt = "0"},/turf/simulated/floor/plating,/area/mine/production) +"lC" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/mine/production) +"lD" = (/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j1"; tag = "icon-pipe-j1 (EAST)"},/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/mine/production) +"lE" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/mine/production) +"lF" = (/obj/machinery/disposal/deliveryChute{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/mine/production) +"lG" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/turf/simulated/floor/plating,/area/mine/production) +"lH" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/mine/production) +"lI" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/production) +"lJ" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/production) +"lK" = (/obj/machinery/light/small{dir = 8},/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/mine/living_quarters) +"lL" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/mine/living_quarters) +"lM" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/mine/living_quarters) +"lN" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "whiteblue"},/area/mine/living_quarters) +"lO" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/mine/living_quarters) +"lP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/light/small{dir = 1},/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/mine/living_quarters) +"lQ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/mine/living_quarters) +"lR" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plating,/area/mine/living_quarters) +"lS" = (/turf/simulated/floor/plating,/area/mine/living_quarters) +"lT" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/living_quarters) +"lU" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/living_quarters) +"lV" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"lW" = (/obj/structure/sign/xeno_warning_mining,/turf/simulated/wall,/area/mine/living_quarters) +"lX" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/mine/production) +"lY" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/production) +"lZ" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production) +"ma" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/production) +"mb" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "warnwhite"; dir = 1},/area/mine/living_quarters) +"mc" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"},/area/mine/living_quarters) +"md" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/camera{c_tag = "Sleeper Room"; dir = 1; network = list("MINE")},/turf/simulated/floor/plasteel{icon_state = "white"; temperature = 273.15},/area/mine/living_quarters) +"me" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/o2{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/firstaid/regular,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/mine/living_quarters) +"mf" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) +"mg" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/obj/machinery/meter,/turf/simulated/floor/plating,/area/mine/living_quarters) +"mh" = (/obj/machinery/atmospherics/unary/tank/air{dir = 8},/turf/simulated/floor/plating,/area/mine/living_quarters) +"mi" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/living_quarters) +"mj" = (/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/living_quarters) +"mk" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/living_quarters) +"ml" = (/turf/space,/area/shuttle/mining/outpost) +"mm" = (/obj/machinery/power/apc{dir = 8; name = "Mining Station Starboard Wing APC"; pixel_x = -27; pixel_y = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/mine/production) +"mn" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel,/area/mine/production) +"mo" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production) +"mp" = (/obj/machinery/mineral/equipment_vendor,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production) +"mq" = (/obj/machinery/mineral/mint{input_dir = 4},/turf/simulated/floor/plasteel,/area/mine/production) +"mr" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "loadingarea"},/area/mine/production) +"ms" = (/obj/structure/closet/crate,/obj/machinery/alarm{pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production) +"mt" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/structure/table,/obj/item/weapon/paper{anchored = 0; info = "A hastily written note has been scribbled here...

Please use the ore redemption machine in the science wing for smelting. PLEASE!

--The Research Staff"; name = "URGENT!"},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production) +"mu" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/mine/production) +"mv" = (/obj/structure/cable,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/power/port_gen/pacman{anchored = 1},/turf/simulated/floor/plating,/area/mine/living_quarters) +"mw" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/living_quarters) +"mx" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/mine/living_quarters) +"my" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 5},/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/mine/living_quarters) +"mz" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/living_quarters) +"mA" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/production) +"mB" = (/turf/simulated/floor/plasteel{icon_state = "loadingarea"},/area/mine/production) +"mC" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/mine/production) +"mD" = (/obj/machinery/door/airlock/glass_mining{name = "Conveyor Access"; req_access_txt = "48"},/obj/structure/barricade/wooden,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production) +"mE" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/mine/production) +"mF" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/explored) +"mG" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plating/asteroid/airless,/area/mine/living_quarters) +"mH" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/production) +"mI" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/production) +"mJ" = (/obj/item/device/radio/beacon,/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/mine/production) +"mK" = (/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 4},/area/mine/production) +"mL" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/computer/shuttle/mining{req_access = "0"},/obj/machinery/light{dir = 4},/obj/machinery/camera{c_tag = "Shuttle Docking Foyer"; dir = 8; network = list("MINE")},/obj/machinery/newscaster{pixel_x = 30; pixel_y = 1},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production) +"mM" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production) +"mN" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor/plasteel,/area/mine/production) +"mO" = (/obj/machinery/camera{c_tag = "Processing Area Room"; dir = 8; network = list("MINE")},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = 28},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production) +"mP" = (/obj/machinery/mineral/unloading_machine{dir = 1; icon_state = "unloader-corner"; input_dir = 4; output_dir = 8},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/mine/production) +"mQ" = (/obj/machinery/door/airlock/external{name = "Mining Shuttle Airlock"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production) +"mR" = (/turf/simulated/floor/plasteel,/area/mine/production) +"mS" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/mine/production) +"mT" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 8},/area/mine/production) +"mU" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/production) +"mV" = (/obj/machinery/conveyor_switch/oneway{id = "mining_internal"; name = "mining conveyor"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production) +"mW" = (/obj/effect/decal/remains/human{desc = "Seems to be all that remains of a poor miner that didn't heed the warning signs."},/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored) +"mX" = (/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/mine/production) +"mY" = (/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 1},/area/mine/production) +"mZ" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/mine/production) +"na" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/obj/structure/disposalpipe/junction{dir = 4; icon_state = "pipe-j2"; tag = "icon-pipe-j1 (WEST)"},/turf/simulated/floor/plasteel,/area/mine/production) +"nb" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production) +"nc" = (/obj/machinery/door/airlock/glass_mining{name = "Processing Area"; req_access_txt = "48"},/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production) +"nd" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/mine/production) +"ne" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 4},/area/mine/production) +"nf" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/turf/simulated/floor/plasteel,/area/mine/production) +"ng" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production) +"nh" = (/obj/machinery/mineral/processing_unit_console,/turf/simulated/wall/r_wall,/area/mine/production) +"ni" = (/obj/machinery/mineral/processing_unit{dir = 1; output_dir = 2},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/mine/production) +"nj" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/mine/production) +"nk" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production) +"nl" = (/obj/machinery/door/airlock/glass_mining{name = "Processing Area"; req_access_txt = "48"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production) +"nm" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/mine/production) +"nn" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/mine/production) +"no" = (/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/mine/production) +"np" = (/obj/structure/lattice,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/space,/area/space) +"nq" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/mine/production) +"nr" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/mine/production) +"ns" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/window/northleft{name = "Output Access"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production) +"nt" = (/obj/machinery/door/window/northleft{base_state = "right"; icon_state = "right"; name = "Output Access"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production) +"nu" = (/obj/machinery/mineral/stacking_unit_console,/turf/simulated/wall/r_wall,/area/mine/production) +"nv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/mine/explored) +"nw" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/mine/explored) +"nx" = (/obj/structure/lattice,/obj/structure/disposalpipe/segment{dir = 4},/turf/space,/area/space) +"ny" = (/obj/structure/lattice,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/space,/area/space) +"nz" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/trunk,/obj/machinery/door/window/northleft{name = "Pneumatic Tube Access"},/obj/machinery/disposal/deliveryChute{dir = 1; pixel_y = -1},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production) +"nA" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/machinery/light,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production) +"nB" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production) +"nC" = (/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production) +"nD" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/obj/structure/plasticflaps,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/mine/production) +"nE" = (/obj/machinery/mineral/stacking_machine{dir = 1; input_dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/mine/production) +"nF" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/mine/production) +"nG" = (/obj/machinery/conveyor{icon_state = "conveyor0"; dir = 10; id = "mining_internal"},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating{tag = "icon-warnplatecorner (EAST)"; icon_state = "warnplatecorner"; dir = 4},/area/mine/production) +"nH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/mine/explored) +"nI" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/production) +"nJ" = (/obj/structure/disposaloutlet{dir = 1; eject_range = 1},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/mine/production) + (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -747,175 +750,175 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababadadadadadababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadaeadadadadadadadadadadadadadadadabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadaeadadadadabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadaeadadadadadadababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadafadadadadadadadadadadadadadadadabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaabababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafafafafafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafafafafafafafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagahagaaaaaaaaaiabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafajajajajajajafafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakalakamaaaaaiababababadadadadadadaeadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoapaqaramaaaiabababadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaafafafafafafafajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasatalakamaaaiabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaafafafafafafajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasauavawamamababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababamamamamamamamamamamafafafafafafajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaacacacacacaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxalayabababababadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadaeadadadadadadadadadabababazazazazazazazazazazafafafafafafajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaacacacacacaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamaAaBalayabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababamamamamamaCamamamafafafafafajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamaDaEaFaGayabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaafafafafafajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamaHaIaJayaKaLayayayayadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaMaNasaOaPaQagaRaGayaSaSayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaTaUaNavaVaWaWaXaGaKaYaZaSayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafafajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaTaUaTasasbbaVaVayaKbcayaSbdayadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaamafafafafafafafafajajajajajajajajajajajajajajajajajajajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamambebfasbgbhasbbbcbcbibbaKayayayayayayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababadadadadadababaaaaaaaaaaaaaaaaaaaaaaambjbjbkbjbjbjafafafafafajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamblbmbnasbhasavbobpaKayaWbqaybralaVbsayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababababababadadadababaaaaaaaaaaaaaaaaaaaaamambjbtbubvbwbjafafafafafafafafafafajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamamadadayaQbbbxasbnaVbybzbAagaWaVaybralalbsayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababafafafafafafababadadadababaaaaaaaaaaaaaaaaamamambjbBbCbDbEbjafafafafafafafafafafajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamayayayayayayaPaVbFbbaVbcbGbAbAaXalalaybravaKbsayadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadababafafafbHbHbHbHafafafababadababaaaaaaaaaaaaaaambjbjbjbjbjbIbJbjbjbjbjbjbjbjbjbjbHafafafafajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaybKbLbMbNayblbObmaybiaybPbPbPayaValalalalbQbpayadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadababafafbHbHbHbHbHbHbHbHafafababababaaaaaaaaaaaaaaambjbRbSbTbUbVbWbXbYbYbYbZcacbccbjbHbHafafafafafajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaybKcdcecdcfaKcgbQaKchbpaRciaKbpaRbbayalbcaKaKayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabafafbHbHbHbHbHbHbHbHbHbHafafababababaaaaaaaaaaaaambjcjbYckbUcmcncobjbjcpcqcrcrcsbjbHbHafafafafafajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaybKcdctctcfbcaKaKaRaGaKaKaKbQaKaKaKayaKbpchaKayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabafafbHbHbHbHbHbHbHbHbHbHbHcuafafafafafaaaaaaaaaaaaambjcvcwcxcycxczcAcBcCcDcEcFcGbHbHbHafafafafafajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaybKcHctcIaycJcKbPbPcKbccKbPbPbPaKaKaycLbQaKbcayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabafcubHbHbHbHbHbHbHbHbHbHbHbHafafafafaaaaaaaaaaaaaaambjcMbYcNbUbYcOcAcPcQcDbHbHbHbHbHafafafafafafajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababayayayayayaycRcKaKaKaKaKbQaKcSbPchbpaycTcUcVcWayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabafcubHbHbHbHbHbHbHbHbHbHbHbHafafafaaaaaaaaaaaaaaamambjcXbYcYbUcZbYcAcPcQcDbHbHbHbHbHbHafafafafafajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadaycJcKaKbcdadbaGbpaKbPaKaKayaldcdcddaydeadadadadadadadadadadadadadadadadadadadadadadadadadadadadababafafbHbHbHbHbHbHbHbHbHbHbHbHafafafaaaaaaaaaaaaamamambjbjbUbUbjbjbUdibUcQcDbHbHbHbHbHbHafafafafafajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadaycJcKaKbpaKaKcSaKbccKcJayaybraldcdkdldedeadadadadadadadadadadadadadaeadadadadadadadadadadadadadababafafbHbHbHbHbHbHbHbHbHbHbHbHclcldodpdpdpdpdpdpdqclclbHbHdrdsdtbjdubYdvcQcDbHbHbHbHbHbHbHafafafafajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadwdwdwdwdwdwdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadaydxcKcKcKcKcKcKcKcKcKcJaybraldyaldddzdedeadadadadadadadadadadadadadadadadadadadadadadadadadadabababafbHbHbHbHbHbHbHbHbHbHbHbHbHbHdAdBdBdBdBdBdBdBdBdAbHbHbHdCdCdCbjdDdEdFcQcDbHbHbHbHbHbHbHafafafafajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadwdwdwdwdwdwdGdGdGdHdwdjdjdjdIdIdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadaydxcJcJcJdJdKcJcJcJdxdxaybrdydydybsaydededeadadadadadadadadadadadadadadadadadadadadadadadadadabababafbHbHbHbHbHbHbHbHbHbHbHbHbHclcldLdMdMdMdMdMdMdMclclbHbHbHbHbHbjbUdNbUcQdObHbHbHbHbHbHbHafafafafajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadwdPdQdRdSdTdUdVdVdVdwdWdWdWdWdXdIdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababadadadadadadadadadayayayayayayayayayayayayayaycWdYdZayaydedededeadadadadadadadadadadadadadadadadadadadadadadadadabababafbHbHbHbHbHbHbHbHbHbHbHbHbHafaaaaaaaaaaaaaaaaafafafbHbHbHbHbHbHeaebecedeeefbHbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaegaaaaaaaaaaaaaadweheiejekdTeldVemeneoepeqeqdWdXerdIdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadaddededeaydcdcdyaydededededeadadadadadadadadadadadadadadadadadadadadadadadadabababafbHbHbHbHbHbHbHbHbHbHbHbHafaaaaaaaaaaaaaaafafafafafafafafbHbHbHbHbHeaesesecbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaegaaaaaaaaaadwdwdwdTdfeudgdTewexdTdTdwdwdweyezeAdIdIdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadaddededeayeBeCeBaydededededeadadadadadadadadadadadadadadadadadadadadadadadadadababafbHbHbHbHbHbHbHbHbHbHbHbHafaaaaaaaaaaaaaaafafafafafafafafafafbHbHbHbHeDeDbHbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaegamegegegegegdweEeFdTeGdVdUeHeIdVeJdTeKeKeKdXeqeqdIdIdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadaddedeayeLdYeMaydedededeadadadadadadadadadadadadadadadadadadadadadadadadadadababafafbHbHbHbHbHbHbHbHafafafafaaaaaaaaaaaaaaaaafafafafafafafafafafafbHbHeDeDbHbHafafafafafafajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaCaCamamamamamdweNeOePeQeReSdVeGdVdVeTeKeKeqeqeqeqeUdIdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaabababababadadadadadadadaeadadadadadadadadadadadadadadadadaddededeeVeWeXdedededeadadadadadadadadadadadadadadadadadadadadadaeadadadadadabababafafafafafbHbHcucuafababaaaaaaaaaaaaaaaaaaafafafafafafafafafafafafbHeDeDbHbHafafafafafafajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaegegegegegegegameYeYeYeYeYdweZfafbfceRfddVeGfedVdTfffgfgeqeqdXdXdIdIdjdjdjdjdjdjdjdjaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadaddededededefhdedededeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababafafafafafafababaaaaaaaaaaaaaaaaaaafafafajajajafafafafafafbHeDeDbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaegegegegegegegameYeYeYeYeYdwdTdTdTfidVfjeRfkdgfmfnfofofpfqeqdXdXfrdIdjdjdjdjdjdjdjdjaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadaddededededededefhdedeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababababababababaaaaaaaaaaaaaaaaaaaaafafafajajajafafafafafbHeDfsftbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaegegegegegegegameYeYeYeYeYfufvfufwfxdVeGdVdVfyfzdTfAfBfCeqeqdXdXfDdIdjdjdjdjdjdjdjdjdjaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadaddedededefhdededededeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababababaaaaaaaaaaaaaaaaaaaaafafafajajajajajafafafbHfsfteDbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaegegegegegegegameYeYeYeYeYdwdwdwdwdVdVeGdgfEdTfFdTeKeKeKdXdXdXdXfGdTdjdjdjdjdjdjdjdjdjdjaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadaddedededededededededeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaafafafafajajajajafafafbHbHeDeDbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaegegegegegegegameYeYeYeYeYaaaadwfHdVdVeGfIfJfKfLdTfMfNdXdXdXdXeUdIdIdjdjdjdjdjdjdjdjdjdjamamabababababadadadadadadadadadadadadadadadadadadadadadadadaddededededededededeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaafafafajajajajafafafbHbHeDeDbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaegegegegegegegameYeYeYeYeYfOfOfOfPfPfQfRfSfTfTdTfTfTfUdXeqdXdXeUdIdjdjdjdjdjdjdjdjdjdjdjaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadaddedededededeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaafafafafajajajafafafbHbHeDeDbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaegegegegegegegameYeYeYeYeYfVfPfWfPfPfXfYfZgagbgcgdgeeKeKdXdXdXdIdIdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadaddededeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaafafafafajajajajafafafbHeDeDbHbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaegegegegegegegameYeYeYeYeYfOfTfTfTgffRfTfTggghfSfTfTgieKdXdXdIdIdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaafafafafajajajajafafafbHeDeDbHbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaegegegegegegegameYeYeYeYeYfOgjgkglgmgngogpgqgrgsgtfSgugvgwdIdIdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaafafafafajajajajafafafbHeDfsgxftbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaegamamamamamamamgygzgkgAgkgBfTgCgDgDgEgFfTdIdIdIdIdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaafafafajajajajafafafbHfsgxfteDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaegegamegegegegegdhgHgIgJgKgLfTgMgNgOgPgFfTdIdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaabababadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaafafafajajajajafafafbHbHbHeDeDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaegaaaaaaaaaadmetdnfOfOfOfTfTfTfTfTfTfTdIdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaafafafajajajajafafafbHgTeeeeefbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadIdIdIdIdIdIdIdIdIdIdIdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjamamababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaafafafafajajajafafafbHeaesesecbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaafafafafajajajafafafbHbHeDeDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaabababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadabababababaaaaaaaaaaaaaaafafafafajajajafafafbHbHeDeDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaababababababadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaafafafafafajafafafbHbHeDeDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaafafafafajajafafafbHeDeDbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaafafajajafafafbHeDeDbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaafajajafafafbHeDeDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaafajajafafafbHeDeDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaafajajafafafbHeDfsftbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaafajajafafafbHfsfteDbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababamamamamamamamamafafajajafafafbHbHeDeDbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababazazazazazazazazafafajajafafafbHbHeDeDbHafafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababamamamamamamamamafafajajafafafbHbHeDeDbHafafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaafafajajafafafbHgTeeeeefbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaafafajajafafafbHeaesesecbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaadjdjdjaaaaaaaaaaaaaaaaaaaaaaaaababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaafafafajajafafafbHbHeDeDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaadjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaafafafajajafafafbHbHeDeDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaadjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaababadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaafafafajajafafafbHgUgVeDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaadjdjdjdjdjdjamamamamamamamamamababababadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafajajafafafbHeDgUgVbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaadjdjdjdjdjazazazazazazazazazababababadadadaeadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafajafafafbHeDeDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjamamamamamamamamamababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafbHbHeDeDbHafafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafbHgUgVeDbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafbHeDgUgVbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjgWdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaadjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafbHeDeDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjgXgYdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbHbHbHeDeDbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHeDeDbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHeDeDbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadaeadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHeDeDbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHeDeDbHbHbHafafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHeDeDbHbHbHafafafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaadjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHeDeDbHbHbHbHafafafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaaaaaadjdjaaaaaaaaaaaaaaaaaaaaaaaaaaabababaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHeDeDbHbHbHbHbHbHbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaadjdjdjdjdjamamamamamamamamamamamabababababaaabababadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHeDeDbHgTefbHbHbHbHbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjaadjdjdjdjdjazazazazazazazazazazazabababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHeDfsgxgZhagxgxgxftbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjdjabababababababababababababababababababababababababababamamamamamamamamamamamababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHfsgxgxgZhagxgxfteDbHbHbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjdjdjdjdjdjdjdjababadadadadadadadadadadadadadadadadadadadabababababababababababababababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaafafbHbHbHbHbHeaecbHbHeDfsgxftbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjababababababababababadadadadadadadadadadadadadadadadadadadadadadadabababababababababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaafafafafafafbHbHbHbHbHfsgxfteDbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadaeadadadadanadadadadadadadadadaeadadadadadadababababababaaaaaaaaaaaaaaaaaaaaaaafafafafafafafafafbHbHbHeDeDbHbHbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababamamamamamamamamamamamafafafafafafafafafafafbHeDfsgxgxftbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjabababadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababazazazazazazazazazazazazazazafafafafafafafafafbHfsgxgxfteDbHbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababamamamamamamamamamamamamamamamamafafafafafafafafbHbHbHbHeDfsgxgxftbHbHafafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafafafafbHfsgxgxfteDbHbHafafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafafafafbHbHbHbHeDeDbHbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaadeadadadaddedeaaaaaaaaaaaaaaafafafajajajafafafafafafafbHeDfsgxftbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadabababaaaaaaaaaaaadedeadadaddededeaaaaaaaaaaaaaaafafafajajajajafafafafafafbHfsgxfteDbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaadedeadadaddedeaaaaaaaaaaaaaaaaafafafajajajajafafafafafafbHbHbHeDeDbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjdjabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaadedeadadaddedeaaaaaaaaaaaaaaafafafafafajajajajafafafafafbHbHgTeeeeefbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjdjaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaadadaddedeaaaaaaaaaaaaafafafafafafafajajajajafafafafafbHbHeaesesecbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafajajajajajajafafafafbHbHbHbHeDeDbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafajajajajajafafafbHbHbHbHbHbHeDeDbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafajajajajajafafafbHgUgxgxgxgxgVeDbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababaaaaaaaaaaaaaaaaaaaaaaafafafafafafafajajajajajafafafbHeDgUgxgxgxgxgVbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaafafafafafafafajajajajajafafafbHeDeDbHbHbHbHbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaafafafafafafafajajajajajafafafbHeDeDbHbHbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaafafafafafafafajajajajafafafbHeDeDbHbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaafafafafafafajajajajafafafbHeDeDbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaafafafafafajajafafafafbHeDeDbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaabababadadadadaeadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaafafafafajajafafafbHbHeDeDbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaababababadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaafafafajajafafafbHgUgVeDbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaafafafajajafafafbHeDgUgVbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaafafafajajafafbHbHeDeDbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaafafafajajafafbHgTeeeeefbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaafafafajajafafbHeaesesecbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabafafafabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaafafafafafajajafafbHbHeDeDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabababadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadababafbHbHafababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababamamamamamamamamamamafafafafafajajafafafbHeDeDbHbHafafafafafajajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabafbHbHbHbHafabadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababazazazazazazazazazafafafafafafajajafafafbHeDeDbHbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadabafafbHbHbHbHafabadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababamamamamamamamamamamafafafafafafajajafafafbHeDeDbHbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadabafbHbHbHbHafafabadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaafafafafajajajajafafafbHeDeDbHbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabafbHbHbHbHbHafabadadadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafajajafafafafafbHeDeDbHbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabafbHbHbHbHbHafabadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafajajafafafafafbHeDeDbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabafclbHclbHafababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafajajafafafafbHbHeDeDbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadaeadadadadadadadadadadadadadadadadadadadadadadadafclhdclbHafababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafajajafafafafbHbHeDeDbHbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadababababadadadadadadadafhehfhgafababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafajajafafafbHbHbHeDeDbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababadadadadadadadadadadadadadadadadadabababafafafafafafafafafafafhehfhhafababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafajajafafafbHbHbHeDeDbHafafafafajajajajajajajajajajajajajajajajajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaabababadadadadadadadadadadadadadadadadadababafbHbHclclhidpdpdpdpdpdphjhfhhafabababadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhkhkhkhkhkhkhkadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafajajafafafbHbHbHeDeDbHafafafafajajajajajajajajajajajajajajajajajajajajajajafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadabafbHbHbHbHhdhlhlhlhlhlhlhlhmhnhhafababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhkhohphqhrhohkadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafajajafafafafbHbHeDeDbHafafafafajajajajajajajajajajajajajajajajajajajajafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadabafbHbHbHclcldMdMdMdMdMdMhthfhuhvhwafafafafabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhkhohxhyhzhAhkadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafajajafafafafbHbHeDeDbHafafafafajajajajajajajajajajajajajajajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadababafbHbHbHafhwhwhwhwhwhwhehfhhhwhwhwbHbHbHafababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhBhChDadhEhkhkhkhFhkhkhkadadabababaaaaaaaaaaaaaaaaaaaaaaaaafafafafafajajafafafafbHbHeDeDbHafafafafafafajajajajajajajajajajajajajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadabafbHbHafhwhwhwhwhwhwhwhehfhhhwbHbHbHbHbHafafabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhGhDhHadhEhIhJhEhKhEafafabadabababaaaaaaaaaaaaaaaaaaaaaaafafafafafafajajafafafafafbHeDeDbHbHafafafafafafafajajajajajajajajajajajajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadaeadadadadadadadadababafbHafhwhwhwhwhwhwhwhLhfhhbHbHbHbHbHbHbHafabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhBdWadhEhMhNhOhKhEbHafafababababaaaaaaaaaaaaaaaaaaaaafafafafafafafajajafafafafafbHeDeDbHbHbHbHafafafafafajajajajajajajajajajajajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababadadadadadadadadadadadadadadadababafafafafafhwhwhwhwclhdclbHbHbHbHbHbHbHafafababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhPadadhEhEhEhEhQhEbHbHafafafafafaaaaaaaaaaaaaaaaaaaaaaafafafafafafajajafafafafafbHeDeDbHbHbHbHbHbHafafafafajajajajajajajajajajajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadabababababababafhwbHbHclbHclbHbHbHbHbHbHbHbHafababadadadadadadadadadadadadadaeadadadadadadadadadadadadadadababababababadadadadadadadadadadadadadadadadadadadadhRadadhEhIhShEhKevbHbHbHbHbHbHafafaaaaaaaaaaaaaaaaaaaaafafafafafafafafafafafafafbHeDeDbHbHbHbHbHbHbHafafafafafajajajajajajajajajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababadadadadadadadadadadadadadadababababababafbHbHbHbHbHbHbHbHhUhUhUbHbHbHafababadadadadadadadadadadadadadadadadadadadadadadadadadadababababababababababababadadadadadadadadadadadadadadadadhRadadhEhMhNhVhKevbHbHbHbHbHbHbHbHbHaaaaaaaaaaaaaaaaaahXafafafafafafafafafafafbHbHeDeDbHbHbHbHbHbHbHbHbHafafafafajajajajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababadadadadadadadadadadadadadababafafafafafafbHbHbHbHbHbHbHbHhYhZiabHbHbHafababababadadadadadadadadadadadadadadadadadadadadadabababababafafafafafafafabababababababadadadadadadadadadadhEhEibhEhEhEhEhEhEhKevbHbHbHbHbHbHbHbHbHbHbHaaaaaaaaaaaaaaaaaaafafafafafafafbHbHbHbHgTeeeeefbHbHbHbHbHbHbHbHbHafafafafafajajajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababadadadadadadadadadadadadabafafbHbHididididididflflflflididididihbHbHafababababadadadadadadadadadadadadadadadadadadadadadababababafafbHbHbHbHbHafafafafafabababababababadadadadhEhEhEiiijikilhEhIimhEhQhEhEhEevevevhEbHbHbHbHbHbHaaaaaaaaaaaaaaaaaaafafafafafbHbHbHbHbHeaesesecbHbHbHbHbHbHbHbHbHafafafafafajajajajajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababadadadadadadadababafbHbHbHidiqirisfliuiviwixiyfliAiBgGefbHbHafafafafababababababadadadadadadadadadadadadadadabababababafafbHbHbHbHbHbHbHbHbHbHafafafafafabababababadadhEiDiEiFiGiFiHhEhMhNiIhKhEiJiKiLiLiLevbHbHbHbHbHbHbHaaaaaaaaaaaaaaaaaaafafafbHbHbHbHbHbHbHeDiMiNgQgQiQiQbHbHbHbHbHbHafafafafafajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababadadadadadadababafbHbHbHidiRiAiSfliUiUiUiUiViWiAiBiXiYbHbHbHbHbHafafafabababababababadadadadadadadadadadadabababafafafbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHafafabababababadhEiZiFjajbjcjdhEhEhEhEhKhEiJjejejejfevbHbHbHbHbHbHbHaaaaaaaaaaaaaaaaaabHbHbHbHbHbHbHbHgUgxgViQjgjhjijiiQbHjjbHbHbHbHafafafafafajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaaababababababababadadadababafbHbHbHidjkiAiAjliAiAiAiAjmfljnjoflecbHbHbHbHbHbHbHafafafafabababababadadadadadadadadababababafafbHbHbHbHbHbHbHbHbHbHgTefbHbHbHbHbHbHafafafafababadhEjpiFjqiFjriFjsjfjtjujvhEjwjejxjejyevbHbHbHbHbHbHaaaaaaaaaaaaaaaaaaaaamaabHbHbHbHbHjzjAgRgRiQjDjEjFjGiQiQiQiQbHbHbHbHafafafafajajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababafafbHbHidjHiAjIgSjKjLjMiAjNidididididgTefbHbHbHbHbHbHbHbHafafafabababadadadadadadadadabababafafbHbHgUgxgxgxgxgxgxgxgxgZhagxgxgxgxftbHbHbHbHafafababhEhEhEhEhEhEhEevhbjQevhbhEhEhEhEhEjRhEhEevevbHbHaaaaaaaaaaaaaaaaaaaaaaamaaaaaabHbHgRgRjVjWjXhcjZkakbkcgQkekfgQefbHbHbHcuafafafafafajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababafbHbHidkhiAkiflkjkkkliAkmknkokpkqhsgZhagxgxgxgxgxftbHbHbHbHafafafababadadadadadadabababafafbHbHgUgVgUgxgxgxgxgxgxgxgZhagxgxgxftfsgxftbHbHbHafabababababhEksktkujejykvjfjyjskwkxjejfjyjejekyevevevkAkBkBkBkBkBkBkBkCkCkCkCkCkCkCgRgRgRkFkGkHkIkJkKkakbkbkLkMkNkOiYbHbHbHcuafafafafafajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababafbHbHidididididkPkQkRididkSkTkTkTkTgZhagxgxgxgxftfsgxgxftbHbHbHafafabababadadababababafafbHbHgUgVgUgVbHbHbHbHbHbHbHeaecbHbHbHfsgxfteDbHbHbHbHafafafafabhEhEhEhEkUjykVkWkXjukYkZkZlalakZkZlblclblcldldldldldldldldlelelelelelelelflglflglhliljgQlklllmlngQlolpgQecbHbHbHbHafafafafafajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababafafbHbHbHbHbHidlqlrlsltidlulvhUbHbHeaecbHbHbHbHfsgxgxfteDbHbHbHbHafafafababababababafafbHbHgUgVgUgVbHbHbHbHafbHbHbHbHbHbHbHbHbHbHeDeDbHbHbHbHbHbHbHafafafafafhEjelwlxlylylxlzlAlBlylylxlxlChThThTlGlGlGlGlGlGlGlGlHlHlHlHlHlHlIhWhWhWlMlNlOlPjzjzjAjzjzjzjzjzjzlQlRlSlRlTcuafafafafafajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababafafbHbHbHbHidlUlVlWlXidbHbHbHbHbHbHbHbHbHbHbHbHbHbHeDfsftbHbHbHbHbHafafafafafafafafbHbHgUgVgUgVbHbHafafafafafafafbHbHbHbHbHbHbHeDeDbHgTefbHbHbHbHbHbHafafhEhEevlZevhEhEmambmchEhEevmdevhEevbHbHbHaaaaaaaaamaaaaaaamaaaaaaaaaaamaagRgRmgmhmimjmkmlmmmnmomompmqmrmrmrmrlTbHafafafafafajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababafafbHbHbHididididididbHbHafafafafafafafafafbHbHbHfsftfsgxgxgxftbHbHbHbHbHbHbHbHbHbHbHeDgUgVbHbHafafabababababafbHbHbHbHbHbHbHeDfsgxgZhagxgxgxgxftbHbHafhEmsmtmumvhEmwmxmymzmAhEmBmCmDmEbHbHbHbHbHbHaaaaamaaaaaaamamamamamamamamamjzmFmGmHjzjzjzjzjzjzjzjzjzmIlTlTlTlTbHafafafafafajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababafbHbHbHbHbHbHbHbHbHbHbHafabababababababafafbHbHbHfsgxgxgxftfsftbHgTefbHbHgUgxgxgxgxgVeDbHbHafafababababababafafbHbHbHbHbHbHfsgxgxgZhagxgxgxfteDbHbHbHhEmJmKmLmMhEmNmAmAmOmPhEmQmRmShEbHbHbHbHbHbHamamamamamamammTmTmTmTmTamaaamjzmUmVmWmXjzmYmZnanbgRndjzbHbHbHbHbHafafafafajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababafbHbHbHbHbHbHbHbHbHafafafabababadadabababafafafbHbHbHbHbHfsftfsgxgZhagxgxgVgUgxgxgxgxgVbHafafababababababababafafafbHbHbHbHbHbHbHeaecbHbHbHeDeDbHbHbHmEhEhEhEhEhEnenfngnhmPhEevnievhEbHbHbHbHbHbHaaaaamaaaaaaammTmTmTmTmTamaagRgRmgnjmWmXhWnlkFkGnmnnnojzbHbHbHbHbHafafafafajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababafafafafbHbHbHbHafafafababadadadadadadadabababafafafbHbHbHbHfsgxgxgZhagxgxgxgVbHbHbHbHbHbHafababababababadadabababafafafafbHbHbHbHbHbHbHbHbHeDfsgxftbHbHbHbHbHbHmEhEhEhEhEhEmEnpnpiYnqbHbHbHbHbHaaaaaaamaaaaaaammTmTmTmTmTicgRientnunjmWnvjznwmgnxnyjznzjzbHbHbHbHafafafafafajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababafafafafafafababababadadadadadadadadababababafafafafbHbHbHbHeaecbHbHbHbHbHbHafafafafafababababababadadadabababababafafafafafafafafbHbHfsgxftfsftbHbHbHbHbHbHbHeaebebebebebebecbHbHbHbHbHbHamamamamamamamammTmTmTmTmTnAmgnAmgnBnCnDnmhWjWmgnEnFgRnojzbHbHbHbHafafafafajajajajajajajafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababadadadadadadadadadadadadabababababafafbHbHbHbHbHbHbHbHbHafafafabababababababadadadadadadadabababababababababababafafbHbHbHfsftfsftnGbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHaaaaaaaaaaaaammTmTmTmTmTgRgRgRnInJnKnLnMnNnOnPnQnRnSnTjzbHbHbHbHafafafafajajajajajajajafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababadadadadadadadadadadadadadadadadadababababafafafbHbHbHafafafafafabababababadadadadadadadadadadadadadababababababababababafbHbHbHbHfsftfsgxgxgxgxgxgxgxgxgxgxgxgxgxgxgxftbHbHbHbHbHbHaaaaaaaaaaammTmTmTmTmTamaagRgRmgnjnUnVnWnXnYnYnZgRnojzbHbHbHbHafafafafajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadabababafafafafafababababababababadadadadadadadadadadadadadadadabababababababababafafafbHbHbHfsgxgxgxgxgxgxgxgxgxgxgxgxgxgxgxfteDbHgTefbHbHbHezezamaaaaammTmTmTmTmTamaaobmmocodnYnZhWoeofoggRgRnojzbHbHbHbHafafafafajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadababababababababababababadadadadadadadadadadadadadadadadadadadadadadadadadababababafafafbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHeDfsgxgZhagxgxgxojokolololololololololololomjzonoojWnwjzopoqorosotoujzbHbHafafafafajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababafafafbHbHbHbHbHbHbHafafbHbHbHbHbHbHfsgxgxgZhagxgxgxovokololololololololololololmmowjzgRgRjzoxjzjzjzjzjzjzbHbHafafafafajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababafafafafafafafafafafafbHbHbHbHbHbHbHbHeaecbHbHbHezezamaaaaaaaaaaaaaaaaaaaaamambHbHbHbHjzjzjzbHbHbHbHbHbHbHafafafafajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababababababababababafbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHbHbHbHbHbHbHbHafafafajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababababababafbHbHbHbHbHbHbHbHbHbHbHbHafafafafaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHbHbHbHbHbHafafafafajajajajajajafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababababafafbHbHbHbHbHbHbHbHbHafababababafaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHbHbHbHbHbHafafafafajajajajajafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababababababafafafafafafafafafafafabababababafaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHbHbHbHbHafafafajajajajajajajafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHbHafafafafafafajajajajajajafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababababababababababadadababababaaaaaaaaaaaaaaaaaaaaaabHbHafafafafafafafafafafajajajajajajajafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaafafafafafafafafajajajajajajajajafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafajajajajajajajajajafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafajajajajajajajafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafajajajajafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadaeadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaabababababababadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadaeadaeadafadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagagagagagagagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagagagagagagagagagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaiahaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagagajajajajajajagagagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakalakamaaaaabababababadadadadadadafadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoapaqaramaaababababadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaagagagagagagagajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasatalakamaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadaeadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaagagagagagagajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasauavawamamababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaeadadadadadadadadadadadadadadabababamamamamamamamamamamagagagagagagajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaacacacacacaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxalayabababababadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadafadadadadadadadadadabababazazazazazazazazazazagagagagagagajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaacacacacacaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamaAaBalayabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababamamamamamaCamamamagagagagagajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamaDaEaFaGayabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaagagagagagajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamaHaIaJayaKaLayayayayadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaMaNasaOaPaQahaRaGayaSaSayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaTaUaNavaVaWaWaXaGaKaYaZaSayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagagagajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaTaUaTasasbbaVaVayaKbcayaSbdayadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaamagagagagagagagagajajajajajajajajajajajajajajajajajajajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamambebfasbgbhasbbbcbcbibbaKayayayayayayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababadadadadadababaaaaaaaaaaaaaaaaaaaaaaambjbjbkbjbjbjagagagagagajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamblbmbnasbhasavbobpaKayaWbqaybralaVbsayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababababababadadadababaaaaaaaaaaaaaaaaaaaaamambjbtbubvbwbjagagagagagagagagagagajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamamadadayaQbbbxasbnaVbybzbAahaWaVaybralalbsayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababagagagagagagababadadadababaaaaaaaaaaaaaaaaamamambjbBbCbDbEbjagagagagagagagagagagajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamayayayayayayaPaVbFbbaVbcbGbAbAaXalalaybravaKbsayadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadababagagagbHbHbHbHagagagababadababaaaaaaaaaaaaaaambjbjbjbjbjbIbJbjbjbjbjbjbjbjbjbjbHagagagagajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaybKbLbMbNayblbObmaybiaybPbPbPayaValalalalbQbpayadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadababagagbHbHbHbHbHbHbHbHagagababababaaaaaaaaaaaaaaambjbRbSbTbUbVbWbXbYbYbYbZcacbccbjbHbHagagagagagajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaybKcdcecdcfaKcgbQaKchbpaRciaKbpaRbbayalbcaKaKayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabagagbHbHbHbHbHbHbHbHbHbHagagababababaaaaaaaaaaaaambjcjbYckbUclcmcnbjbjcocpcqcqcrbjbHbHagagagagagajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaybKcdcscscfbcaKaKaRaGaKaKaKbQaKaKaKayaKbpchaKayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabagagbHbHbHbHbHbHbHbHbHbHbHctagagagagagaaaaaaaaaaaaambjcucvcwcxcwcyczcAcBcCcDcEcFbHbHbHagagagagagajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaybKcGcscHaycIcJbPbPcJbccJbPbPbPaKaKaycKbQaKbcayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabagctbHbHbHbHbHbHbHbHbHbHbHbHagagagagaaaaaaaaaaaaaaambjcLbYcMbUbYcNczcOcPcCbHbHbHbHbHagagagagagagajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababayayayayayaycQcJaKaKaKaKbQaKcRbPchbpaycScTcUcVayadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabagctbHbHbHbHbHbHbHbHbHbHbHbHagagagaaaaaaaaaaaaaaamambjcWbYcXbUcYbYczcOcPcCbHbHbHbHbHbHagagagagagajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadaycIcJaKbccZdaaGbpaKbPaKaKayaldbdbdcayddadadadadadadadadadadadadadadadadadadadadadadadadadadadadababagagbHbHbHbHbHbHbHbHbHbHbHbHagagagaaaaaaaaaaaaamamambjbjbUbUbjbjbUdebUcPcCbHbHbHbHbHbHagagagagagajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadaycIcJaKbpaKaKcRaKbccJcIayaybraldbdgdhddddadadadadadadadadadadadadadafadadadadadadadadadadadadadababagagbHbHbHbHbHbHbHbHbHbHbHbHdididjdkdkdkdkdkdkdldidibHbHdmdndobjdpbYdqcPcCbHbHbHbHbHbHbHagagagagajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrdrdrdrdrdrdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadaydscJcJcJcJcJcJcJcJcJcIaybraldtaldcduddddadadadadadadadadadadadadadadadadadadadadadadadadadadabababagbHbHbHbHbHbHbHbHbHbHbHbHbHbHdvdwdwdwdwdwdwdwdwdvbHbHbHdxdxdxbjdydzdAcPcCbHbHbHbHbHbHbHagagagagajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrdrdrdrdrdrdBdBdBdCdrdfdfdfdDdDdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadaydscIcIcIdEdFcIcIcIdsdsaybrdtdtdtbsayddddddadadadadadadadadadadadadadadadadadadadadadadadadadabababagbHbHbHbHbHbHbHbHbHbHbHbHbHdididGdHdHdHdHdHdHdHdidibHbHbHbHbHbjbUdIbUcPdJbHbHbHbHbHbHbHagagagagajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrdKdLdMdNdOdPdQdQdQdrdRdRdRdRdSdDdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababadadadadadadadadadayayayayayayayayayayayayayaycVdTdUayayddddddddadadadadadadadadadadadadadadadadadadadadadadadadabababagbHbHbHbHbHbHbHbHbHbHbHbHbHagaaaaaaaaaaaaaaaaagagagbHbHbHbHbHbHdVdWdXdYdZeabHbHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaebaaaaaaaaaaaaaadrecedeeefdOegdQeheiejekeleldRdSemdDdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadddddddaydbdbdtayddddddddddadadadadadadadadadadadadadadadadadadadadadadadadabababagbHbHbHbHbHbHbHbHbHbHbHbHagaaaaaaaaaaaaaaagagagagagagagagbHbHbHbHbHdVenendXbHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaebaaaaaaaaaadrdrdrdOeoepeqdOeresdOdOdrdrdreteuevdDdDdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadddddddayewexewayddddddddddadadadadadadadadadadadadadadadadadadadadadadadadadababagbHbHbHbHbHbHbHbHbHbHbHbHagaaaaaaaaaaaaaaagagagagagagagagagagbHbHbHbHeyeybHbHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaebamebebebebebdrezeAdOeBdQdPeCeDdQeEdOeFeFeFdSeleldDdDdfdfdfeGdfdfdfaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadddddayeHdTeIayddddddddadadadadadadadadadadadadadadadadadadadadadadadadadadababagagbHbHbHbHbHbHbHbHagagagagaaaaaaaaaaaaaaaaagagagagagagagagagagagbHbHeyeybHbHagagagagagagajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaCaCamamamamamdreJeKeLeMeNeOdQeBdQdQePeFeFeleleleleQdDdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaabababababadadadadadadadafadadadadadadadadadadadadadadadadadddddddeReSeTddddddddadadadadadadadadadadadadadadadadadadadadadafadadadadadabababagagagagagbHbHctctagababaaaaaaaaaaaaaaaaaaagagagagagagagagagagagagbHeyeybHbHagagagagagagajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaebebebebebebebameUeUeUeUeUdreVeWeXeYeNeZdQeBfadQdOfbfcfceleldSdSdDdDdfdfdfdfdfdfdfdfaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadddddddddddfdddddddddadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababagagagagagagababaaaaaaaaaaaaaaaaaaagagagajajajagagagagagagbHeyeybHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaebebebebebebebameUeUeUeUeUdrdOdOdOfedQffeNfgeqfhfifjfjfkfleldSdSfmdDdfdfdfdfdfdfdfdfaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadddddddddddddddfdddddadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababababababababaaaaaaaaaaaaaaaaaaaaagagagajajajagagagagagbHeyfnfobHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaebebebebebebebameUeUeUeUeUfpfqfpfrfsdQeBdQdQftfudOfvfwfxeleldSdSfydDdfdfdfdfdfdfdfdfdfaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadddddddddfdddddddddddadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababababaaaaaaaaaaaaaaaaaaaaagagagajajajajajagagagbHfnfoeybHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaebebebebebebebameUeUeUeUeUdrdrdrdrdQdQeBeqfzdOfAdOeFeFeFdSdSdSdSfBdOdfdfdfdfdfdfdfdfdfdfaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadddddddddddddddddddddadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaagagagagajajajajagagagbHbHeyeybHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaebebebebebebebameUeUeUeUeUaaaadrfCdQdQeBfDfEfFfGdOfHfIdSdSdSdSeQdDdDdfdfdfdfdfdfdfdfdfdfamamabababababadadadadadadadadadadadadadadadadadadadadadadadadddddddddddddddddddadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaagagagajajajajagagagbHbHeyeybHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaebebebebebebebameUeUeUeUeUfJfJfJfKfKfLfMfNfOfOdOfOfOfPdSeldSdSeQdDdfdfdfdfdfdfdfdfdfdfdfaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadddddddddddddadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaagagagagajajajagagagbHbHeyeybHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaebebebebebebebameUeUeUeUeUfQfKfRfKfKfSfTfUfVfWfXfYfZeFeFdSdSdSdDdDdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadddddddadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaagagagagajajajajagagagbHeyeybHbHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaebebebebebebebameUeUeUeUeUfJfOfOfOgafMfOfOgbgcgdfOfOgeeFdSdSdDdDdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaagagagagajajajajagagagbHeyeybHbHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaebebebebebebebameUeUeUeUeUfJgfggghgigjgkglgmgngogpgqgrgsgtdDdDdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaagagagagajajajajagagagbHeyfngufobHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaebamamamamamamamgvgwgggxgggyfOgzgAgAgBgCfOdDdDdDdDdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaagagagajajajajagagagbHfngufoeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaebebamebebebebebgDgEgFgGgHgIfOgJgKgLgMgCfOdDdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaabababadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaagagagajajajajagagagbHbHbHeyeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaebaaaaaaaaaagNgOgPfJfJfJfOfOfOfOfOfOfOdDdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaagagagajajajajagagagbHgQdZdZeabHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadDdDdDdDdDdDdDdDdDdDdDdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfamamababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaagagagagajajajagagagbHdVenendXbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaagagagagajajajagagagbHbHeyeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaabababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadabababababaaaaaaaaaaaaaaagagagagajajajagagagbHbHeyeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaababababababadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaagagagagagajagagagbHbHeyeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaagagagagajajagagagbHeyeybHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaagagajajagagagbHeyeybHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaagajajagagagbHeyeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaagajajagagagbHeyeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaagajajagagagbHeyfnfobHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaagajajagagagbHfnfoeybHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababamamamamamamamamagagajajagagagbHbHeyeybHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababazazazazazazazazagagajajagagagbHbHeyeybHagagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababamamamamamamamamagagajajagagagbHbHeyeybHagagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaagagajajagagagbHgQdZdZeabHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaagagajajagagagbHdVenendXbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaadfdfdfaaaaaaaaaaaaaaaaaaaaaaaaababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaagagagajajagagagbHbHeyeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaadfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaagagagajajagagagbHbHeyeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaadfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaababadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaagagagajajagagagbHgRgSeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaadfdfdfdfdfdfamamamamamamamamamababababadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagajajagagagbHeygRgSbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaadfdfdfdfdfazazazazazazazazazababababadadadafadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagajagagagbHeyeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfamamamamamamamamamababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagbHbHeyeybHagagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagbHgRgSeybHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagbHeygRgSbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfgTdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaadfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagbHeyeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfgUgVdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagbHbHbHeyeybHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHeyeybHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHeyeybHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadafadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHeyeybHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHeyeybHbHbHagagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHeyeybHbHbHagagagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaadfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHeyeybHbHbHbHagagagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaaaaaadfdfaaaaaaaaaaaaaaaaaaaaaaaaaaabababaaaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHeyeybHbHbHbHbHbHbHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaadfdfdfdfdfamamamamamamamamamamamabababababaaabababadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHeyeybHgQeabHbHbHbHbHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfaadfdfdfdfdfazazazazazazazazazazazabababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHeyfngugWgXgugugufobHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfdfabababababababababababababababababababababababababababamamamamamamamamamamamababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHfngugugWgXgugufoeybHbHbHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfdfdfdfdfdfdfdfababadadadadadadadadadadadadadadadadadadadabababababababababababababababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaagagbHbHbHbHbHdVdXbHbHeyfngufobHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfababababababababababadadadadadadadadadadadadadadadadadadadadadadadabababababababababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaagagagagagagbHbHbHbHbHfngufoeybHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadafadadadadanadadadadadadadadadafadadadadadadababababababaaaaaaaaaaaaaaaaaaaaaaagagagagagagagagagbHbHbHeyeybHbHbHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababamamamamamamamamamamamagagagagagagagagagagagbHeyfngugufobHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfabababadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababazazazazazazazazazazazazazazagagagagagagagagagbHfngugufoeybHbHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababamamamamamamamamamamamamamamamamagagagagagagagagbHbHbHbHeyfngugufobHbHagagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagagagagagbHfngugufoeybHbHagagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagagagagagbHbHbHbHeyeybHbHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaddadadadadddddaaaaaaaaaaaaaaagagagajajajagagagagagagagbHeyfngufobHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadabababaaaaaaaaaaaaddddadadadddddddaaaaaaaaaaaaaaagagagajajajajagagagagagagbHfngufoeybHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaddddadadadddddaaaaaaaaaaaaaaaaagagagajajajajagagagagagagbHbHbHeyeybHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfdfabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaddddadadadddddaaaaaaaaaaaaaaagagagagagajajajajagagagagagbHbHgQdZdZeabHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfdfaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaadadadddddaaaaaaaaaaaaagagagagagagagajajajajagagagagagbHbHdVenendXbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagajajajajajajagagagagbHbHbHbHeyeybHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagagajajajajajagagagbHbHbHbHbHbHeyeybHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagagajajajajajagagagbHgRgugugugugSeybHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababaaaaaaaaaaaaaaaaaaaaaaagagagagagagagajajajajajagagagbHeygRgugugugugSbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaagagagagagagagajajajajajagagagbHeyeybHbHbHbHbHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaagagagagagagagajajajajajagagagbHeyeybHbHbHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaagagagagagagagajajajajagagagbHeyeybHbHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaagagagagagagajajajajagagagbHeyeybHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaaabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaagagagagagajajagagagagbHeyeybHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaabababadadadadafadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaagagagagajajagagagbHbHeyeybHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaababababadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaagagagajajagagagbHgRgSeybHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaagagagajajagagagbHeygRgSbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaagagagajajagagbHbHeyeybHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaagagagajajagagbHgQdZdZeabHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaagagagajajagagbHdVenendXbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabagagagabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaagagagagagajajagagbHbHeyeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabababadadadadadadadadafadadadadadadadadadadadadadadadadadadadadababagbHbHagababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababamamamamamamamamamamagagagagagajajagagagbHeyeybHbHagagagagagajajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabagbHbHbHbHagabadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababazazazazazazazazazagagagagagagajajagagagbHeyeybHbHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadabagagbHbHbHbHagabadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababamamamamamamamamamamagagagagagagajajagagagbHeyeybHbHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadabagbHbHbHbHagagabadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaagagagagajajajajagagagbHeyeybHbHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabagbHbHbHbHbHagabadadadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagajajagagagagagbHeyeybHbHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabagbHbHbHbHbHagabadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagajajagagagagagbHeyeybHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabagdibHdibHagababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagajajagagagagbHbHeyeybHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadafadadadadadadadadadadadadadadadadadadadadadadadagdigYdibHagababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagajajagagagagbHbHeyeybHbHagagagagajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadababababadadadadadadadaggZhahbagababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagajajagagagbHbHbHeyeybHagagagagajajajajajajajajajajajajajajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababadadadadadadadadadadadadadadadadadabababagagagagagagagagagagaggZhahcagababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagajajagagagbHbHbHeyeybHagagagagajajajajajajajajajajajajajajajajajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaabababadadadadadadadadadadadadadadadadadababagbHbHdidihddkdkdkdkdkdkhehahcagabababadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhfhfhfhfhfhfhfadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagajajagagagbHbHbHeyeybHagagagagajajajajajajajajajajajajajajajajajajajajajajagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababadadadadadadadadadadadadadadadadadabagbHbHbHbHgYhghghghghghghghhhihcagababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhfhjhkhlhmhjhfadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagajajagagagagbHbHeyeybHagagagagajajajajajajajajajajajajajajajajajajajajagagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadabagbHbHbHdididHdHdHdHdHdHhnhahohphqagagagagabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhfhjhrhshthuhfadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagajajagagagagbHbHeyeybHagagagagajajajajajajajajajajajajajajajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadababagbHbHbHaghqhqhqhqhqhqgZhahchqhqhqbHbHbHagababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhvhwhxadhyhfhfhfhzhfhfhfadadabababaaaaaaaaaaaaaaaaaaaaaaaaagagagagagajajagagagagbHbHeyeybHagagagagagagajajajajajajajajajajajajajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadabagbHbHaghqhqhqhqhqhqhqgZhahchqbHbHbHbHbHagagabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhAhxhBadhyhChDhyhEhyagagabadabababaaaaaaaaaaaaaaaaaaaaaaagagagagagagajajagagagagagbHeyeybHbHagagagagagagagajajajajajajajajajajajajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadafadadadadadadadadababagbHaghqhqhqhqhqhqhqhFhahcbHbHbHbHbHbHbHagabababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhvdRadhyhGhHhIhEhybHagagababababaaaaaaaaaaaaaaaaaaaaagagagagagagagajajagagagagagbHeyeybHbHbHbHagagagagagajajajajajajajajajajajajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababadadadadadadadadadadadadadadadababagagagagaghqhqhqhqdigYdibHbHbHbHbHbHbHagagababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadhJadadhyhyhyhyhKhybHbHagagagagagaaaaaaaaaaaaaaaaaaaaaaagagagagagagajajagagagagagbHeyeybHbHbHbHbHbHagagagagajajajajajajajajajajajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadabababababababaghqbHbHdibHdibHbHbHbHbHbHbHbHagababadadadadadadadadadadadadadafadadadadadadadadadadadadadadababababababadadadadadadadadadadadadadadadadadadadadhLadadhyhChMhyhEhNbHbHbHbHbHbHagagaaaaaaaaaaaaaaaaaaaaagagagagagagagagagagagagagbHeyeybHbHbHbHbHbHbHagagagagagajajajajajajajajajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababadadadadadadadadadadadadadadababababababagbHbHbHbHbHbHbHbHhOhOhObHbHbHagababadadadadadadadadadadadadadadadadadadadadadadadadadadababababababababababababadadadadadadadadadadadadadadadadhLadadhyhGhHhPhEhNbHbHbHbHbHbHbHbHbHaaaaaaaaaaaaaaaaaahQagagagagagagagagagagagbHbHeyeybHbHbHbHbHbHbHbHbHagagagagajajajajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababadadadadadadadadadadadadadababagagagagagagbHbHbHbHbHbHbHbHhRhShTbHbHbHagababababadadadadadadadadadadadadadadadadadadadadadabababababagagagagagagagabababababababadadadadadadadadadadhyhyhUhyhyhyhyhyhyhEhNbHbHbHbHbHbHbHbHbHbHbHaaaaaaaaaaaaaaaaaaagagagagagagagbHbHbHbHgQdZdZeabHbHbHbHbHbHbHbHbHagagagagagajajajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababadadadadadadadadadadadadabagagbHbHhVhVhVhVhVhVhWhWhWhWhVhVhVhVhXbHbHagababababadadadadadadadadadadadadadadadadadadadadadababababagagbHbHbHbHbHagagagagagabababababababadadadadhyhyhyhYhZiaibhyhCichyhKhyhyhyhNhNhNhybHbHbHbHbHbHaaaaaaaaaaaaaaaaaaagagagagagbHbHbHbHbHdVenendXbHbHbHbHbHbHbHbHbHagagagagagajajajajajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababadadadadadadadababagbHbHbHhVidieifhWigihiiijikhWilimineabHbHagagagagababababababadadadadadadadadadadadadadadabababababagagbHbHbHbHbHbHbHbHbHbHagagagagagabababababadadhyioipiqiriqishyhGhHithEhyiuiviwiwiwhNbHbHbHbHbHbHbHaaaaaaaaaaaaaaaaaaagagagbHbHbHbHbHbHbHeyixiyiziziAiAbHbHbHbHbHbHagagagagagajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababadadadadadadababagbHbHbHhViBiliChWiDiDiDiDiEiFilimiGiHbHbHbHbHbHagagagabababababababadadadadadadadadadadadabababagagagbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHagagabababababadhyiIiqiJiKiLiMhyhyhyhyhEhyiuiNiNiNiOhNbHbHbHbHbHbHbHaaaaaaaaaaaaaaaaaabHbHbHbHbHbHbHbHgRgugSiAiPiQiRiRiAbHiSbHbHbHbHagagagagagajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaaababababababababadadadababagbHbHbHhViTililiUililililiVhWiWiXhWdXbHbHbHbHbHbHbHagagagagabababababadadadadadadadadababababagagbHbHbHbHbHbHbHbHbHbHgQeabHbHbHbHbHbHagagagagababadhyiYiqiZiqjaiqjbiOjcjdjehyjfiNjgiNjhhNbHbHbHbHbHbHaaaaaaaaaaaaaaaaaaaaamaabHbHbHbHbHjijjjkjkiAjljmjnjoiAiAiAiAbHbHbHbHagagagagajajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababagagbHbHhVjpiljqjrjsjtjuiljvhVhVhVhVhVgQeabHbHbHbHbHbHbHbHagagagabababadadadadadadadadabababagagbHbHgRgugugugugugugugugWgXgugugugufobHbHbHbHagagababhyhyhyhyhyhyhyhNjwjxhNjwhyhyhyhyhyjyhyhyhNhNbHbHaaaaaaaaaaaaaaaaaaaaaaamaaaaaabHbHjkjkjzjAjBjCjDjEjFjGizjHjIizeabHbHbHctagagagagagajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababagbHbHhVjJiljKhWjLjMjNiljOjPjQjRjSjTgWgXgugugugugufobHbHbHbHagagagababadadadadadadabababagagbHbHgRgSgRgugugugugugugugWgXgugugufofngufobHbHbHagabababababhyjUjVjWiNjhjXiOjhjbjYjZiNiOjhiNiNkahNhNhNkbkckckckckckckckdkdkdkdkdkdkdjkjkjkkekfkgkhkikjjEjFjFkkklkmkniHbHbHbHctagagagagagajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababagbHbHhVhVhVhVhVkokpkqhVhVkrksksksksgWgXgugugugufofngugufobHbHbHagagabababadadababababagagbHbHgRgSgRgSbHbHbHbHbHbHbHdVdXbHbHbHfngufoeybHbHbHbHagagagagabhyhyhyhyktjhkukvkwjdkxkykykzkzkykykAkBkAkBkCkCkCkCkCkCkCkCkDkDkDkDkDkDkDkEkFkEkFkGkHkIizkJkKkLkMizkNkOizdXbHbHbHbHagagagagagajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababagagbHbHbHbHbHhVkPkQkRkShVkTkUhObHbHdVdXbHbHbHbHfngugufoeybHbHbHbHagagagababababababagagbHbHgRgSgRgSbHbHbHbHagbHbHbHbHbHbHbHbHbHbHeyeybHbHbHbHbHbHbHagagagagaghyiNkVkWkXkXkWkYkZlakXkXkWkWlblclclcldldldldldldldldlelelelelelelflglglglhliljlkjijijjjijijijijijilllmlnlmloctagagagagagajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababagagbHbHbHbHhVlplqlrlshVbHbHbHbHbHbHbHbHbHbHbHbHbHbHeyfnfobHbHbHbHbHagagagagagagagagbHbHgRgSgRgSbHbHagagagagagagagbHbHbHbHbHbHbHeyeybHgQeabHbHbHbHbHbHagaghyhyhNlthNhyhylulvlwhyhyhNlxhNhyhNbHbHbHaaaaaaaaamaaaaaaamaaaaaaaaaaamaajkjklylzlAlBlClDlElFlGlGlHlIlJlJlJlJlobHagagagagagajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababagagbHbHbHhVhVhVhVhVhVbHbHagagagagagagagagagbHbHbHfnfofngugugufobHbHbHbHbHbHbHbHbHbHbHeygRgSbHbHagagabababababagbHbHbHbHbHbHbHeyfngugWgXgugugugufobHbHaghylKlLlMlNhylOlPlQlRlShylTlUlVlWbHbHbHbHbHbHaaaaamaaaaaaamamamamamamamamamjilXlYlZjijijijijijijijijimalolololobHagagagagagajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababagbHbHbHbHbHbHbHbHbHbHbHagabababababababagagbHbHbHfngugugufofnfobHgQeabHbHgRgugugugugSeybHbHagagababababababagagbHbHbHbHbHbHfngugugWgXgugugufoeybHbHbHhymbmcmdmehymflSlSmgmhhymimjmkhybHbHbHbHbHbHamamamamamamammlmlmlmlmlamaaamjimmmnmompjimqmrmsmtjkmujibHbHbHbHbHagagagagajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababagbHbHbHbHbHbHbHbHbHagagagabababadadabababagagagbHbHbHbHbHfnfofngugWgXgugugSgRgugugugugSbHagagababababababababagagagbHbHbHbHbHbHbHdVdXbHbHbHeyeybHbHbHlWhyhyhyhyhymvmwmxmymhhyhNmzhNhybHbHbHbHbHbHaaaaamaaaaaaammlmlmlmlmlamaajkjklymAmomplgmBkekfmCmDmEjibHbHbHbHbHagagagagajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababagagagagbHbHbHbHagagagababadadadadadadadabababagagagbHbHbHbHfngugugWgXgugugugSbHbHbHbHbHbHagababababababadadabababagagagagbHbHbHbHbHbHbHbHbHeyfngufobHbHbHbHbHbHlWhyhyhyhyhylWmFmFiHmGbHbHbHbHbHaaaaaaamaaaaaaammlmlmlmlmlmHjkmImJmKmAmomLjimMlymNmOjimPjibHbHbHbHagagagagagajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababagagagagagagababababadadadadadadadadababababagagagagbHbHbHbHdVdXbHbHbHbHbHbHagagagagagababababababadadadabababababagagagagagagagagbHbHfngufofnfobHbHbHbHbHbHbHdVdWdWdWdWdWdWdXbHbHbHbHbHbHamamamamamamamammlmlmlmlmlmQlymQlymRmSmTmClgjAlymUmVjkmEjibHbHbHbHagagagagajajajajajajajagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababadadadadadadadadadadadadabababababagagbHbHbHbHbHbHbHbHbHagagagabababababababadadadadadadadabababababababababababagagbHbHbHfnfofnfomWbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHaaaaaaaaaaaaammlmlmlmlmljkjkjkmXmYmZnanbncndnenfngnhnijibHbHbHbHagagagagajajajajajajajagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababadadadadadadadadadadadadadadadadadababababagagagbHbHbHagagagagagabababababadadadadadadadadadadadadadababababababababababagbHbHbHbHfnfofngugugugugugugugugugugugugugugufobHbHbHbHbHbHaaaaaaaaaaammlmlmlmlmlamaajkjklymAnjnknlnmnnnnnojkmEjibHbHbHbHagagagagajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadabababagagagagagababababababababadadadadadadadadadadadadadadadabababababababababagagagbHbHbHfngugugugugugugugugugugugugugugufoeybHgQeabHbHbHeueuamaaaaammlmlmlmlmlamaanplEnqnrnnnolgnsntnujkjkmEjibHbHbHbHagagagagajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadababababababababababababadadadadadadadadadadadadadadadadadadadadadadadadadababababagagagbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHeyfngugWgXgugugunvnwnxnxnxnxnxnxnxnxnxnxnxnyjinznAjAmMjinBnCnDnEnFnGjibHbHagagagagajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababagagagbHbHbHbHbHbHbHagagbHbHbHbHbHbHfngugugWgXgugugunHnwnxnxnxnxnxnxnxnxnxnxnxnxlEnIjijkjkjinJjijijijijijibHbHagagagagajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababagagagagagagagagagagagbHbHbHbHbHbHbHbHdVdXbHbHbHeueuamaaaaaaaaaaaaaaaaaaaaamambHbHbHbHjijijibHbHbHbHbHbHbHagagagagajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababababababababababagbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHbHaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHbHbHbHbHbHbHbHagagagajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababababababagbHbHbHbHbHbHbHbHbHbHbHbHagagagagaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHbHbHbHbHbHagagagagajajajajajajagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababababagagbHbHbHbHbHbHbHbHbHagababababagaaaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHbHbHbHbHbHagagagagajajajajajagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababababababagagagagagagagagagagagabababababagaaaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHbHbHbHbHagagagajajajajajajajagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaabHbHbHbHbHbHbHagagagagagagajajajajajajagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababababababababababababadadababababaaaaaaaaaaaaaaaaaaaaaabHbHagagagagagagagagagagajajajajajajajagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababaaaaaaaaaaaaaaaaaaaaaaagagagagagagagagajajajajajajajajagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagajajajajajajajajajagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagajajajajajajajagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagajajajajagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaaaaaababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadanadadadadadadadadadadadadadadadadababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -965,4 +968,3 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} - diff --git a/code/ATMOSPHERICS/atmospherics.dm b/code/ATMOSPHERICS/atmospherics.dm index f7098594a93..abf71c4ea0d 100644 --- a/code/ATMOSPHERICS/atmospherics.dm +++ b/code/ATMOSPHERICS/atmospherics.dm @@ -93,14 +93,11 @@ Pipelines + Other Objects -> Pipe network return ..() /obj/machinery/atmospherics/Deconstruct() - var/turf/T = loc - stored.loc = T - transfer_fingerprints_to(stored) - if(istype(src, /obj/machinery/atmospherics/pipe)) - for(var/obj/machinery/meter/meter in T) - if(meter.target == src) - new /obj/item/pipe_meter(T) - qdel(meter) + if(can_unwrench) + var/turf/T = loc + stored.loc = T + transfer_fingerprints_to(stored) + qdel(src) /obj/machinery/atmospherics/proc/nullifyPipenet(datum/pipeline/P) @@ -127,7 +124,7 @@ Pipelines + Other Objects -> Pipe network return img -/obj/machinery/atmospherics/proc/construction(D, P) +/obj/machinery/atmospherics/construction(D, P) dir = D initialize_directions = P var/turf/T = loc diff --git a/code/ATMOSPHERICS/pipes.dm b/code/ATMOSPHERICS/pipes.dm index 7884a5ad12c..571b32cbc48 100644 --- a/code/ATMOSPHERICS/pipes.dm +++ b/code/ATMOSPHERICS/pipes.dm @@ -34,10 +34,19 @@ if(istype(W, /obj/item/device/analyzer)) atmosanalyzer_scan(parent.air, user) - if(istype(W,/obj/item/device/pipe_painter)) + if(istype(W,/obj/item/device/pipe_painter) || istype(W,/obj/item/weapon/pipe_dispenser)) return return ..() /obj/machinery/atmospherics/pipe/setPipenet(datum/pipeline/P) - parent = P \ No newline at end of file + parent = P + +/obj/machinery/atmospherics/pipe/Destroy() + var/turf/T = loc + for(var/obj/machinery/meter/meter in T) + if(meter.target == src) + var/obj/item/pipe_meter/PM = new (T) + meter.transfer_fingerprints_to(PM) + qdel(meter) + ..() diff --git a/code/ATMOSPHERICS/pipes/manifold.dm b/code/ATMOSPHERICS/pipes/manifold.dm index 29f16311b63..434a4b3c9e7 100644 --- a/code/ATMOSPHERICS/pipes/manifold.dm +++ b/code/ATMOSPHERICS/pipes/manifold.dm @@ -25,6 +25,8 @@ /obj/machinery/atmospherics/pipe/manifold/New() color = pipe_color + ..() + switch(dir) if(NORTH) initialize_directions = EAST|SOUTH|WEST @@ -34,7 +36,6 @@ initialize_directions = SOUTH|WEST|NORTH if(WEST) initialize_directions = NORTH|EAST|SOUTH - ..() /obj/machinery/atmospherics/pipe/manifold/initialize() for(var/D in cardinal) diff --git a/code/ATMOSPHERICS/pipes/simple.dm b/code/ATMOSPHERICS/pipes/simple.dm index da6fce0c263..eabf5a2badb 100644 --- a/code/ATMOSPHERICS/pipes/simple.dm +++ b/code/ATMOSPHERICS/pipes/simple.dm @@ -102,7 +102,7 @@ The regular pipe you see everywhere, including bent ones. else return 1 /obj/machinery/atmospherics/pipe/simple/proc/burst() - src.visible_message("[src] bursts!"); + visible_message("[src] bursts!"); playsound(src.loc, 'sound/effects/bang.ogg', 25, 1) var/datum/effect/effect/system/harmless_smoke_spread/smoke = new smoke.set_up(1,0, src.loc, 0) diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index 9875fd0a84c..206536abb4a 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -14,6 +14,7 @@ #define STUTTER "stutter" #define EYE_BLUR "eye_blur" #define DROWSY "drowsy" +#define JITTER "jitter" //I hate adding defines like this but I'd much rather deal with bitflags than lists and string searches #define BRUTELOSS 1 diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index a6ecae8b300..1c7035ad664 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1207,12 +1207,64 @@ Turf and target are seperate in case you want to teleport some distance from a t else return zone +//Gets the turf this atom inhabits /proc/get_turf(atom/movable/AM) if(istype(AM)) return locate(/turf) in AM.locs else if(isturf(AM)) return AM +//Gets the turf this atom's *ICON* appears to inhabit +//Uses half the width/height respectively to work out +//A minimum pixel amt this icon needs to be pixel'd by +//to be considered to be in another turf + +//division = world.icon_size - icon-width/2; DX = pixel_x/division +//division = world.icon_size - icon-height/2; DY = pixel_y/division + +//Eg: Humans +//32 - 16; 16/16 = 1, DX = 1 +//32 - 16; 15/16 = 0.9375 = 0 when round()'d, DX = 0 + +//NOTE: if your atom has non-standard bounds then this proc +//will handle it, but it'll be a bit slower. + +/proc/get_turf_pixel(atom/movable/AM) + if(istype(AM)) + var/rough_x = 0 + var/rough_y = 0 + var/final_x = 0 + var/final_y = 0 + + //Assume standards + var/i_width = world.icon_size + var/i_height = world.icon_size + + //Handle snowflake objects only if necessary + if(AM.bound_height != world.icon_size || AM.bound_width != world.icon_size) + var/icon/AMicon = icon(AM.icon, AM.icon_state) + i_width = AMicon.Width() + i_height = AMicon.Height() + qdel(AMicon) + + //Find a value to divide pixel_ by + var/n_width = (world.icon_size - (i_width/2)) + var/n_height = (world.icon_size - (i_height/2)) + + //DY and DX + rough_x = round(AM.pixel_x/n_width) + rough_y = round(AM.pixel_y/n_height) + + //Find coordinates + final_x = AM.x + rough_x + final_y = AM.y + rough_y + + if(final_x || final_y) + var/turf/T = locate(final_x, final_y, AM.z) + if(T) + return T + + /proc/get(atom/loc, type) while(loc) if(istype(loc, type)) @@ -1260,6 +1312,18 @@ var/global/list/common_tools = list( return 1000 else return 0 + if(istype(W, /obj/item/candle)) + var/obj/item/candle/O = W + if(O.lit) + return 1000 + else + return 0 + if(istype(W, /obj/item/device/flashlight/flare)) + var/obj/item/device/flashlight/flare/O = W + if(O.on) + return 1000 + else + return 0 if(istype(W, /obj/item/weapon/pickaxe/plasmacutter)) return 3800 if(istype(W, /obj/item/weapon/melee/energy)) @@ -1302,44 +1366,32 @@ var/global/list/common_tools = list( Checks if that loc and dir has a item on the wall */ var/list/WALLITEMS = list( - "/obj/machinery/power/apc", "/obj/machinery/alarm", "/obj/item/device/radio/intercom", - "/obj/structure/extinguisher_cabinet", "/obj/structure/reagent_dispensers/peppertank", - "/obj/machinery/status_display", "/obj/machinery/requests_console", "/obj/machinery/light_switch", "/obj/effect/sign", - "/obj/machinery/newscaster", "/obj/machinery/firealarm", "/obj/structure/noticeboard", "/obj/machinery/door_control", - "/obj/machinery/computer/security/telescreen", "/obj/machinery/embedded_controller/radio/simple_vent_controller", - "/obj/item/weapon/storage/secure/safe", "/obj/machinery/door_timer", "/obj/machinery/flasher", "/obj/machinery/keycard_auth", - "/obj/structure/mirror", "/obj/structure/closet/fireaxecabinet", "/obj/machinery/computer/security/telescreen/entertainment" + /obj/machinery/power/apc, /obj/machinery/alarm, /obj/item/device/radio/intercom, + /obj/structure/extinguisher_cabinet, /obj/structure/reagent_dispensers/peppertank, + /obj/machinery/status_display, /obj/machinery/requests_console, /obj/machinery/light_switch, /obj/structure/sign, + /obj/machinery/newscaster, /obj/machinery/firealarm, /obj/structure/noticeboard, /obj/machinery/door_control, + /obj/machinery/computer/security/telescreen, /obj/machinery/embedded_controller/radio/simple_vent_controller, + /obj/item/weapon/storage/secure/safe, /obj/machinery/door_timer, /obj/machinery/flasher, /obj/machinery/keycard_auth, + /obj/structure/mirror, /obj/structure/closet/fireaxecabinet, /obj/machinery/computer/security/telescreen/entertainment ) /proc/gotwallitem(loc, dir) + var/locdir = get_step(loc, dir) for(var/obj/O in loc) - for(var/item in WALLITEMS) - if(istype(O, text2path(item))) - //Direction works sometimes - if(O.dir == dir) - return 1 - - //Some stuff doesn't use dir properly, so we need to check pixel instead - switch(dir) - if(SOUTH) - if(O.pixel_y > 10) - return 1 - if(NORTH) - if(O.pixel_y < -10) - return 1 - if(WEST) - if(O.pixel_x > 10) - return 1 - if(EAST) - if(O.pixel_x < -10) - return 1 + if(is_type_in_list(O, WALLITEMS)) + //Direction works sometimes + if(O.dir == dir) + return 1 + //Some stuff doesn't use dir properly, so we need to check pixel instead + //That's exactly what get_turf_pixel() does + if(get_turf_pixel(O) == locdir) + return 1 //Some stuff is placed directly on the wallturf (signs) - for(var/obj/O in get_step(loc, dir)) - for(var/item in WALLITEMS) - if(istype(O, text2path(item))) - if(O.pixel_x == 0 && O.pixel_y == 0) - return 1 + for(var/obj/O in locdir) + if(is_type_in_list(O, WALLITEMS)) + if(O.pixel_x == 0 && O.pixel_y == 0) + return 1 return 0 /proc/format_text(text) @@ -1393,3 +1445,4 @@ var/list/WALLITEMS = list( step(AM, pick(alldirs)) chance = max(chance - (initial_chance / steps), 0) steps-- + diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index 0501caf3db1..bfe36cad194 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -64,6 +64,7 @@ var/admin_legacy_system = 0 //Defines whether the server uses the legacy admin system with admins.txt or the SQL system. Config option in config.txt var/ban_legacy_system = 0 //Defines whether the server uses the legacy banning system with the files in /data or the SQL system. Config option in config.txt var/use_age_restriction_for_jobs = 0 //Do jobs use account age restrictions? --requires database + var/see_own_notes = 0 //Can players see their own admin notes (read-only)? Config option in config.txt //game_options.txt configs var/force_random_names = 0 @@ -109,6 +110,7 @@ var/rename_cyborg = 0 var/ooc_during_round = 0 + var/emojis = 0 //Used for modifying movement speed for mobs. //Unversal modifiers @@ -281,6 +283,8 @@ global.comms_key = value if(value != "default_pwd" && length(value) > 6) //It's the default value or less than 6 characters long, warn badmins global.comms_allowed = 1 + if("see_own_notes") + config.see_own_notes = 1 else diary << "Unknown setting in configuration: '[name]'" @@ -300,6 +304,8 @@ config.rename_cyborg = 1 if("ooc_during_round") config.ooc_during_round = 1 + if("emojis") + config.emojis = 1 if("run_delay") config.run_speed = text2num(value) if("walk_delay") diff --git a/code/controllers/lighting_controller.dm b/code/controllers/lighting_controller.dm index d4f46b104fe..0ffa34b54f0 100644 --- a/code/controllers/lighting_controller.dm +++ b/code/controllers/lighting_controller.dm @@ -65,7 +65,7 @@ var/datum/controller/lighting/lighting_controller = new () //Does not loop. Should be run prior to process() being called for the first time. //Note: if we get additional z-levels at runtime (e.g. if the gateway thin ever gets finished) we can initialize specific //z-levels with the z_level argument -/datum/controller/lighting/proc/Initialize(var/z_level) +/datum/controller/lighting/proc/initializeLighting(var/z_level) processing = 0 spawn(-1) set background = BACKGROUND_ENABLED diff --git a/code/controllers/voting.dm b/code/controllers/voting.dm index 1af635b5d18..c9754a87c48 100644 --- a/code/controllers/voting.dm +++ b/code/controllers/voting.dm @@ -176,7 +176,7 @@ var/datum/controller/vote/vote = new() if(mode == "custom") text += "\n[question]" log_vote(text) - world << "\n[text]\nType vote to place your votes.\nYou have [config.vote_period/10] seconds to vote." + world << "\n[text]\nType vote or click here to place your votes.\nYou have [config.vote_period/10] seconds to vote." time_remaining = round(config.vote_period/10) return 1 return 0 diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index e98fec043ed..368a3e69c93 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -79,6 +79,105 @@ if(foundrecord) foundrecord.fields["rank"] = assignment +/obj/effect/datacore/proc/get_manifest(monochrome, OOC) + var/list/heads = list() + var/list/sec = list() + var/list/eng = list() + var/list/med = list() + var/list/sci = list() + var/list/civ = list() + var/list/bot = list() + var/list/misc = list() + var/dat = {" + + + + "} + var/even = 0 + // sort mobs + for(var/datum/data/record/t in data_core.general) + var/name = t.fields["name"] + var/rank = t.fields["rank"] + var/department = 0 + if(rank in command_positions) + heads[name] = rank + department = 1 + if(rank in security_positions) + sec[name] = rank + department = 1 + if(rank in engineering_positions) + eng[name] = rank + department = 1 + if(rank in medical_positions) + med[name] = rank + department = 1 + if(rank in science_positions) + sci[name] = rank + department = 1 + if(rank in civilian_positions) + civ[name] = rank + department = 1 + if(rank in nonhuman_positions) + bot[name] = rank + department = 1 + if(!department && !(name in heads)) + misc[name] = rank + if(heads.len > 0) + dat += "" + for(name in heads) + dat += "" + even = !even + if(sec.len > 0) + dat += "" + for(name in sec) + dat += "" + even = !even + if(eng.len > 0) + dat += "" + for(name in eng) + dat += "" + even = !even + if(med.len > 0) + dat += "" + for(name in med) + dat += "" + even = !even + if(sci.len > 0) + dat += "" + for(name in sci) + dat += "" + even = !even + if(civ.len > 0) + dat += "" + for(name in civ) + dat += "" + even = !even + // in case somebody is insane and added them to the manifest, why not + if(bot.len > 0) + dat += "" + for(name in bot) + dat += "" + even = !even + // misc guys + if(misc.len > 0) + dat += "" + for(name in misc) + dat += "" + even = !even + + dat += "
NameRank
Heads
[name][heads[name]]
Security
[name][sec[name]]
Engineering
[name][eng[name]]
Medical
[name][med[name]]
Science
[name][sci[name]]
Civilian
[name][civ[name]]
Silicon
[name][bot[name]]
Miscellaneous
[name][misc[name]]
" + dat = replacetext(dat, "\n", "") + dat = replacetext(dat, "\t", "") + return dat + + var/record_id_num = 1001 /obj/effect/datacore/proc/manifest_inject(var/mob/living/carbon/human/H) if(H.mind && (H.mind.assigned_role != "MODE")) diff --git a/code/datums/helper_datums/teleport.dm b/code/datums/helper_datums/teleport.dm index c5bff0660e2..4a041256d06 100644 --- a/code/datums/helper_datums/teleport.dm +++ b/code/datums/helper_datums/teleport.dm @@ -17,11 +17,11 @@ /datum/teleport/proc/start(ateleatom, adestination, aprecision=0, afteleport=1, aeffectin=null, aeffectout=null, asoundin=null, asoundout=null) - if(!Init(arglist(args))) + if(!initTeleport(arglist(args))) return 0 return 1 -/datum/teleport/proc/Init(ateleatom,adestination,aprecision,afteleport,aeffectin,aeffectout,asoundin,asoundout) +/datum/teleport/proc/initTeleport(ateleatom,adestination,aprecision,afteleport,aeffectin,aeffectout,asoundin,asoundout) if(!setTeleatom(ateleatom)) return 0 if(!setDestination(adestination)) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 81c87a7413a..156984be285 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -77,9 +77,9 @@ if(new_character.mind) //disassociate any mind currently in our new body's mind variable new_character.mind.current = null - transfer_antag_huds(new_character) //inherit the antag HUDs from this mind (TODO: move this to the antag datum) current = new_character //associate ourself with our new body new_character.mind = src //and associate our new body with ourself + transfer_antag_huds(new_character) //inherit the antag HUDs from this mind (TODO: move this to a possible antag datum) if(active) new_character.key = key //now transfer the key to link the client to our new body diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index d6cd804fe4f..13ebd0e529f 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -219,9 +219,9 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine /datum/supply_packs/security/taser name = "Stun Guns Crate" - contains = list(/obj/item/weapon/gun/energy/taser, - /obj/item/weapon/gun/energy/taser, - /obj/item/weapon/gun/energy/taser) + contains = list(/obj/item/weapon/gun/energy/gun/advtaser, + /obj/item/weapon/gun/energy/gun/advtaser, + /obj/item/weapon/gun/energy/gun/advtaser) cost = 15 containername = "stun gun crate" @@ -266,16 +266,8 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine cost = 20 containername = "riot shields crate" -/datum/supply_packs/security/armory/bullethelmet - name = "Tactical Helmets Crate" - contains = list(/obj/item/clothing/head/helmet/bulletproof, - /obj/item/clothing/head/helmet/bulletproof, - /obj/item/clothing/head/helmet/bulletproof) - cost = 15 - containername = "tactical helmets crate" - /datum/supply_packs/security/armory/bulletarmor - name = "Tactical Armor Crate" + name = "Bulletproof Armor Crate" contains = list(/obj/item/clothing/suit/armor/bulletproof, /obj/item/clothing/suit/armor/bulletproof, /obj/item/clothing/suit/armor/bulletproof) @@ -404,9 +396,9 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine /datum/supply_packs/engineering/powergamermitts name = "Insulated Gloves Crate" - contains = list(/obj/item/clothing/gloves/yellow, - /obj/item/clothing/gloves/yellow, - /obj/item/clothing/gloves/yellow) + contains = list(/obj/item/clothing/gloves/color/yellow, + /obj/item/clothing/gloves/color/yellow, + /obj/item/clothing/gloves/color/yellow) cost = 20 //Made of pure-grade bullshittinium containername = "insulated gloves crate" @@ -1088,7 +1080,7 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine /obj/item/weapon/bikehorn, /obj/item/clothing/under/rank/mime, /obj/item/clothing/shoes/sneakers/black, - /obj/item/clothing/gloves/white, + /obj/item/clothing/gloves/color/white, /obj/item/clothing/mask/gas/mime, /obj/item/clothing/head/beret, /obj/item/clothing/suit/suspenders, diff --git a/code/datums/wires/autolathe.dm b/code/datums/wires/autolathe.dm index ccfa7f10221..80f5b4ace97 100644 --- a/code/datums/wires/autolathe.dm +++ b/code/datums/wires/autolathe.dm @@ -27,7 +27,7 @@ var/const/AUTOLATHE_DISABLE_WIRE = 4 var/obj/machinery/autolathe/A = holder switch(index) if(AUTOLATHE_HACK_WIRE) - A.hacked = !mended + A.adjust_hacked(!mended) if(AUTOLATHE_SHOCK_WIRE) A.shocked = !mended if(AUTOLATHE_DISABLE_WIRE) @@ -39,10 +39,10 @@ var/const/AUTOLATHE_DISABLE_WIRE = 4 var/obj/machinery/autolathe/A = holder switch(index) if(AUTOLATHE_HACK_WIRE) - A.hacked = !A.hacked + A.adjust_hacked(!A.hacked) spawn(50) if(A && !IsIndexCut(index)) - A.hacked = 0 + A.adjust_hacked(0) Interact(usr) if(AUTOLATHE_SHOCK_WIRE) A.shocked = !A.shocked diff --git a/code/game/atoms.dm b/code/game/atoms.dm index b1ae4c99fd7..f0443ee1683 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -395,4 +395,7 @@ var/list/blood_splatter_icons = list() return /atom/proc/emag_act() - return + return + +/atom/proc/narsie_act() + return \ No newline at end of file diff --git a/code/game/gamemodes/nuclear/pinpointer.dm b/code/game/gamemodes/nuclear/pinpointer.dm index 16d32663163..84f5828ea77 100644 --- a/code/game/gamemodes/nuclear/pinpointer.dm +++ b/code/game/gamemodes/nuclear/pinpointer.dm @@ -23,7 +23,11 @@ icon_state = "pinoff" usr << "You deactivate the pinpointer." -/obj/item/weapon/pinpointer/proc/point_at(atom/target) +/obj/item/weapon/pinpointer/proc/scandisk() + if(!the_disk) + the_disk = locate() + +/obj/item/weapon/pinpointer/proc/point_at(atom/target, spawnself = 1) if(!active) return if(!target) @@ -46,13 +50,15 @@ icon_state = "pinonmedium" if(16 to INFINITY) icon_state = "pinonfar" - spawn(5) - .() + if(spawnself) + spawn(5) + .() /obj/item/weapon/pinpointer/proc/workdisk() - if(!the_disk) - the_disk = locate() - point_at(the_disk) + scandisk() + point_at(the_disk, 0) + spawn(5) + .() /obj/item/weapon/pinpointer/examine(mob/user) ..() @@ -183,14 +189,10 @@ playsound(loc, 'sound/machines/twobeep.ogg', 50, 1) //Plays a beep visible_message("Shuttle Locator active.") //Lets the mob holding it know that the mode has changed return //Get outta here + scandisk() if(!the_disk) - the_disk = locate() - if(!the_disk) - icon_state = "pinonnull" - return -// if(loc.z != the_disk.z) //If you are on a different z-level from the disk -// icon_state = "pinonnull" -// else + icon_state = "pinonnull" + return dir = get_dir(src, the_disk) switch(get_dist(src, the_disk)) if(0) diff --git a/code/game/gamemodes/wizard/rightandwrong.dm b/code/game/gamemodes/wizard/rightandwrong.dm index 75a07818aa2..8672a86d5a8 100644 --- a/code/game/gamemodes/wizard/rightandwrong.dm +++ b/code/game/gamemodes/wizard/rightandwrong.dm @@ -1,6 +1,6 @@ //In this file: Summon Magic/Summon Guns/Summon Events -/proc/rightandwrong(var/summon_type, var/mob/user) //0 = Summon Guns, 1 = Summon Magic +/proc/rightandwrong(var/summon_type, var/mob/user, var/survivor_probability) //0 = Summon Guns, 1 = Summon Magic var/list/gunslist = list("taser","egun","laser","revolver","detective","c20r","nuclear","deagle","gyrojet","pulse","suppressed","cannon","doublebarrel","shotgun","combatshotgun","bulldog","mateba","sabr","uzi","crossbow","saw","car") var/list/magiclist = list("fireball","smoke","blind","mindswap","forcewall","knock","horsemask","charge","wandnothing", "wanddeath", "wandresurrection", "wandpolymorph", "wandteleport", "wanddoor", "wandfireball", "staffchange", "staffhealing", "armor", "scrying", "staffdoor", "special") var/list/magicspeciallist = list("staffchange","staffanimation", "wandbelt", "contract", "staffchaos") @@ -13,7 +13,7 @@ if(H.stat == 2 || !(H.client)) continue if(H.mind) if(H.mind.special_role == "Wizard" || H.mind.special_role == "apprentice") continue - if(prob(25) && !(H.mind in ticker.mode.traitors)) + if(prob(survivor_probability) && !(H.mind in ticker.mode.traitors)) ticker.mode.traitors += H.mind H.mind.special_role = "traitor" var/datum/objective/survive/survive = new @@ -31,7 +31,7 @@ if(!summon_type) switch (randomizeguns) if("taser") - new /obj/item/weapon/gun/energy/taser(get_turf(H)) + new /obj/item/weapon/gun/energy/gun/advtaser(get_turf(H)) if("egun") new /obj/item/weapon/gun/energy/gun(get_turf(H)) if("laser") @@ -45,7 +45,7 @@ if("nuclear") new /obj/item/weapon/gun/energy/gun/nuclear(get_turf(H)) if("deagle") - new /obj/item/weapon/gun/projectile/automatic/deagle/camo(get_turf(H)) + new /obj/item/weapon/gun/projectile/automatic/pistol/deagle/camo(get_turf(H)) if("gyrojet") new /obj/item/weapon/gun/projectile/automatic/gyropistol(get_turf(H)) if("pulse") @@ -62,7 +62,7 @@ if("combatshotgun") new /obj/item/weapon/gun/projectile/shotgun/combat(get_turf(H)) if("bulldog") - new /obj/item/weapon/gun/projectile/automatic/bulldog(get_turf(H)) + new /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog(get_turf(H)) if("mateba") new /obj/item/weapon/gun/projectile/revolver/mateba(get_turf(H)) if("sabr") diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index 09cad46c59b..c18045cbfa5 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -11,6 +11,7 @@ var/max_uses = 5 var/op = 1 var/activepage + var/list/active_challenges = list() /obj/item/weapon/spellbook/attackby(obj/item/O as obj, mob/user as mob) if(istype(O, /obj/item/weapon/antag_spawner/contract)) @@ -37,7 +38,7 @@ dat += "
" dat += "Learn and Improve Magical Abilities
" dat += "Summon Magical Tools and Weapons
" - dat += "Cast Powerful One Time Spells
" + dat += "Raise The Stakes For More Power
" dat += "
" dat += "Re-memorize Spells
" @@ -94,26 +95,28 @@ dat += "Flesh to Stone (60)
" dat += "This spell will curse a person to immediately turn into an unmoving statue. The effect will eventually wear off if the statue is not destroyed.
" + dat += "Summon Events (One time use, persistent global spell)
" + dat += "Give Murphy's law a little push and replace all events with special wizard ones that will confound and confuse everyone. Multiple castings increase the rate of these events.
" + dat += "
" dat += "Return
" - else if (activepage == "oneuse") + else if (activepage == "challenge") - dat += "One Time Spells:
" - dat += "These potent spells can only be used once and will be used automatically upon purchase.
" - dat += "The effects are global and irreversable, these spells cannot be unlearned, but they can be bought multiple times.
" + dat += "Challenges:
" + dat += "The Wizard Federation typically has hard limits on the potency and number of spells brought to the station based on risk.
" + dat += "Arming the station against you will increases the risk, but will grant you one more charge for your spellbook.
" dat += "
" - dat += "Summon Guns (One time use, global spell)
" - dat += "Nothing could possibly go wrong with arming a crew of lunatics just itching for an excuse to kill eachother. Just be careful not to get hit in the crossfire!
" + if(!("summon guns" in active_challenges)) + dat += "Summon Guns (Single use only, global spell)
" + dat += "Nothing could possibly go wrong with arming a crew of lunatics just itching for an excuse to kill you. Just be careful not to stand still too long!
" - dat += "Summon Magic (One time use, global spell)
" - dat += "Share the wonders of magic with the crew and show them why they aren't to be trusted with it at the same time.
" - - dat += "Summon Events (One time use, persistent global spell)
" - dat += "Give Murphy's law a little push and replace all events with special wizard ones that will confound and confuse everyone. Multiple castings increase the rate of these events.
" + if(!("summon magic" in active_challenges)) + dat += "Summon Magic (Single use only, global spell)
" + dat += "Share the wonders of magic with the crew and show them why they aren't to be trusted with it at the same time.
" dat += "
" @@ -193,7 +196,7 @@ feedback_add_details("wizard_spell_learned","UM") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells else temp = "You may only re-memorize spells whilst located inside the wizard sanctuary." - else if(href_list["spell_choice"] == "spells" || href_list["spell_choice"] == "artifacts" || href_list["spell_choice"] == "oneuse" || href_list["spell_choice"] == "return") + else if(href_list["spell_choice"] == "spells" || href_list["spell_choice"] == "artifacts" || href_list["spell_choice"] == "challenge" || href_list["spell_choice"] == "return") activepage = href_list["spell_choice"] else if(uses >= 1 && max_uses >=1) uses-- @@ -295,14 +298,18 @@ temp = "You have learned flesh to stone." if("summonguns") feedback_add_details("wizard_spell_learned","SG") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - rightandwrong(0, H) - max_uses-- - temp = "You have cast summon guns." + rightandwrong(0, H, 0) + uses++ + max_uses++ + active_challenges += "summon guns" + temp = "You have cast summon guns and gained an extra charge for your spellbook." if("summonmagic") feedback_add_details("wizard_spell_learned","SU") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - rightandwrong(1, H) - max_uses-- - temp = "You have cast summon magic." + rightandwrong(1, H, 0) + uses++ + max_uses++ + active_challenges += "summon magic" + temp = "You have cast summon magic and gained an extra charge for your spellbook." if("summonevents") feedback_add_details("wizard_spell_learned","SE") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells summonevents() @@ -322,7 +329,7 @@ if("armor") feedback_add_details("wizard_spell_learned","HS") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells new /obj/item/clothing/shoes/sandal(get_turf(H)) //In case they've lost them. - new /obj/item/clothing/gloves/purple(get_turf(H))//To complete the outfit + new /obj/item/clothing/gloves/color/purple(get_turf(H))//To complete the outfit new /obj/item/clothing/suit/space/hardsuit/wizard(get_turf(H)) new /obj/item/clothing/head/helmet/space/hardsuit/wizard(get_turf(H)) temp = "You have purchased a suit of wizard armor." diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm index cd7cb743573..fdd010fd10f 100644 --- a/code/game/jobs/access.dm +++ b/code/game/jobs/access.dm @@ -402,7 +402,7 @@ return "Code Gold" /proc/get_all_jobs() - return list("Assistant", "Captain", "Head of Personnel", "Bartender", "Chef", "Botanist", "Quartermaster", "Cargo Technician", + return list("Assistant", "Captain", "Head of Personnel", "Bartender", "Cook", "Botanist", "Quartermaster", "Cargo Technician", "Shaft Miner", "Clown", "Mime", "Janitor", "Librarian", "Lawyer", "Chaplain", "Chief Engineer", "Station Engineer", "Atmospheric Technician", "Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Virologist", "Research Director", "Scientist", "Roboticist", "Head of Security", "Warden", "Detective", "Security Officer") diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index c476753d82b..c65cde3f6be 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -40,7 +40,7 @@ Bartender /datum/job/bartender/equip_items(var/mob/living/carbon/human/H) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(H), slot_shoes) - H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(H), slot_wear_suit) + H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/alt(H), slot_wear_suit) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/bartender(H), slot_w_uniform) if(H.backbag != 1) @@ -50,26 +50,26 @@ Bartender H.equip_to_slot_or_del(new /obj/item/ammo_casing/shotgun/beanbag(H), slot_in_backpack) /* -Chef +Cook */ -/datum/job/chef - title = "Chef" - flag = CHEF +/datum/job/cook + title = "Cook" + flag = COOK department_head = list("Head of Personnel") department_flag = CIVILIAN faction = "Station" - total_positions = 1 + total_positions = 2 spawn_positions = 1 supervisors = "the head of personnel" selection_color = "#dddddd" - default_pda = /obj/item/device/pda/chef + default_pda = /obj/item/device/pda/cook default_headset = /obj/item/device/radio/headset/headset_srv access = list(access_hydroponics, access_bar, access_kitchen, access_morgue) minimal_access = list(access_kitchen, access_morgue) -/datum/job/chef/equip_items(var/mob/living/carbon/human/H) +/datum/job/cook/equip_items(var/mob/living/carbon/human/H) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chef(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/suit/chef(H), slot_wear_suit) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(H), slot_shoes) @@ -262,7 +262,7 @@ Mime /datum/job/mime/equip_items(var/mob/living/carbon/human/H) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/mime(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(H), slot_shoes) - H.equip_to_slot_or_del(new /obj/item/clothing/gloves/white(H), slot_gloves) + H.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/white(H), slot_gloves) H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/mime(H), slot_wear_mask) H.equip_to_slot_or_del(new /obj/item/clothing/head/beret(H), slot_head) H.equip_to_slot_or_del(new /obj/item/clothing/suit/suspenders(H), slot_wear_suit) @@ -283,7 +283,7 @@ Janitor department_head = list("Head of Personnel") department_flag = CIVILIAN faction = "Station" - total_positions = 1 + total_positions = 2 spawn_positions = 1 supervisors = "the head of personnel" selection_color = "#dddddd" diff --git a/code/game/jobs/job/engineering.dm b/code/game/jobs/job/engineering.dm index a65af4f68dc..4e2a3717a0e 100644 --- a/code/game/jobs/job/engineering.dm +++ b/code/game/jobs/job/engineering.dm @@ -36,7 +36,7 @@ Chief Engineer H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/brown(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/white(H), slot_head) H.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/full(H), slot_belt) - H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves) + H.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black/ce(H), slot_gloves) //Equip telebaton if(H.backbag == 2 || H.backbag == 3) diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index 4610ea3bafe..f956d5edb11 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -38,9 +38,9 @@ Head of Security /datum/job/hos/equip_items(var/mob/living/carbon/human/H) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/head_of_security(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes) - H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/hos(H), slot_wear_suit) - H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves) - H.equip_to_slot_or_del(new /obj/item/clothing/head/HoS(H), slot_head) + H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/hos/trenchcoat(H), slot_wear_suit) + H.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black/hos(H), slot_gloves) + H.equip_to_slot_or_del(new /obj/item/clothing/head/HoS/beret(H), slot_head) H.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/security/sunglasses(H), slot_glasses) H.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(H), slot_s_store) @@ -83,9 +83,10 @@ Warden H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/warden(H), slot_wear_suit) H.equip_to_slot_or_del(new /obj/item/clothing/head/warden(H), slot_head) - H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves) + H.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black(H), slot_gloves) H.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/security/sunglasses(H), slot_glasses) H.equip_to_slot_or_del(new /obj/item/device/flash/handheld(H), slot_l_store) + H.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun/advtaser(H), slot_s_store) if(H.backbag == 1) H.equip_to_slot_or_del(new /obj/item/weapon/restraints/handcuffs(H), slot_l_hand) @@ -127,7 +128,7 @@ Detective H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/det(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/brown(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/clothing/head/det_hat(H), slot_head) - H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves) + H.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black(H), slot_gloves) H.equip_to_slot_or_del(new /obj/item/clothing/suit/det_suit(H), slot_wear_suit) H.equip_to_slot_or_del(new /obj/item/weapon/lighter/zippo(H), slot_l_store) @@ -164,7 +165,7 @@ Security Officer var/list/dep_access = null default_pda = /obj/item/device/pda/security - default_headset = /obj/item/device/radio/headset/headset_sec + default_headset = /obj/item/device/radio/headset/headset_sec/alt default_backpack = /obj/item/weapon/storage/backpack/security default_satchel = /obj/item/weapon/storage/backpack/satchel_sec @@ -176,9 +177,9 @@ Security Officer H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(H), slot_wear_suit) - H.equip_to_slot_or_del(new /obj/item/clothing/head/helmet(H), slot_head) - H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves) - H.equip_to_slot_or_del(new /obj/item/weapon/restraints/handcuffs(H), slot_s_store) + H.equip_to_slot_or_del(new /obj/item/clothing/head/beret/sec(H), slot_head) + H.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black(H), slot_gloves) + H.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun/advtaser(H), slot_s_store) H.equip_to_slot_or_del(new /obj/item/device/flash/handheld(H), slot_l_store) if(H.backbag == 1) @@ -213,22 +214,22 @@ var/list/sec_departments = list("engineering", "supply", "medical", "science") var/obj/item/clothing/under/U = new /obj/item/clothing/under/rank/security(H) switch(department) if("supply") - default_headset = /obj/item/device/radio/headset/headset_sec/department/supply + default_headset = /obj/item/device/radio/headset/headset_sec/alt/department/supply dep_access = list(access_mailsorting, access_mining) destination = /area/security/checkpoint/supply U.attachTie(new /obj/item/clothing/tie/armband/cargo()) if("engineering") - default_headset = /obj/item/device/radio/headset/headset_sec/department/engi + default_headset = /obj/item/device/radio/headset/headset_sec/alt/department/engi dep_access = list(access_construction, access_engine) destination = /area/security/checkpoint/engineering U.attachTie(new /obj/item/clothing/tie/armband/engine()) if("medical") - default_headset = /obj/item/device/radio/headset/headset_sec/department/med + default_headset = /obj/item/device/radio/headset/headset_sec/alt/department/med dep_access = list(access_medical) destination = /area/security/checkpoint/medical U.attachTie(new /obj/item/clothing/tie/armband/medblue()) if("science") - default_headset = /obj/item/device/radio/headset/headset_sec/department/sci + default_headset = /obj/item/device/radio/headset/headset_sec/alt/department/sci dep_access = list(access_research) destination = /area/security/checkpoint/science U.attachTie(new /obj/item/clothing/tie/armband/science()) @@ -258,18 +259,18 @@ var/list/sec_departments = list("engineering", "supply", "medical", "science") initialize() recalculateChannels() -/obj/item/device/radio/headset/headset_sec/department/engi +/obj/item/device/radio/headset/headset_sec/alt/department/engi keyslot = new /obj/item/device/encryptionkey/headset_sec keyslot2 = new /obj/item/device/encryptionkey/headset_eng -/obj/item/device/radio/headset/headset_sec/department/supply +/obj/item/device/radio/headset/headset_sec/alt/department/supply keyslot = new /obj/item/device/encryptionkey/headset_sec keyslot2 = new /obj/item/device/encryptionkey/headset_cargo -/obj/item/device/radio/headset/headset_sec/department/med +/obj/item/device/radio/headset/headset_sec/alt/department/med keyslot = new /obj/item/device/encryptionkey/headset_sec keyslot2 = new /obj/item/device/encryptionkey/headset_med -/obj/item/device/radio/headset/headset_sec/department/sci +/obj/item/device/radio/headset/headset_sec/alt/department/sci keyslot = new /obj/item/device/encryptionkey/headset_sec keyslot2 = new /obj/item/device/encryptionkey/headset_sci diff --git a/code/game/jobs/jobs.dm b/code/game/jobs/jobs.dm index 14bf5181d8f..4b185dfd7fc 100644 --- a/code/game/jobs/jobs.dm +++ b/code/game/jobs/jobs.dm @@ -30,7 +30,7 @@ var/const/CIVILIAN =(1<<2) var/const/HOP =(1<<0) var/const/BARTENDER =(1<<1) var/const/BOTANIST =(1<<2) -var/const/CHEF =(1<<3) +var/const/COOK =(1<<3) var/const/JANITOR =(1<<4) var/const/LIBRARIAN =(1<<5) var/const/QUARTERMASTER =(1<<6) @@ -90,7 +90,7 @@ var/list/civilian_positions = list( "Head of Personnel", "Bartender", "Botanist", - "Chef", + "Cook", "Janitor", "Librarian", "Quartermaster", diff --git a/code/game/machinery/Freezer.dm b/code/game/machinery/Freezer.dm index f8974fd36c8..78a56a386f0 100644 --- a/code/game/machinery/Freezer.dm +++ b/code/game/machinery/Freezer.dm @@ -21,6 +21,9 @@ component_parts += new /obj/item/stack/cable_coil(null, 1) RefreshParts() +/obj/machinery/atmospherics/unary/cold_sink/freezer/construction() + ..(dir,dir) + /obj/machinery/atmospherics/unary/cold_sink/freezer/RefreshParts() var/H var/T @@ -141,6 +144,9 @@ component_parts += new /obj/item/stack/cable_coil(null, 1) RefreshParts() +/obj/machinery/atmospherics/unary/heat_reservoir/heater/construction() + ..(dir,dir) + /obj/machinery/atmospherics/unary/heat_reservoir/heater/RefreshParts() var/H var/T @@ -204,7 +210,7 @@ //user << browse(dat, "window=freezer;size=400x500") //onclose(user, "freezer") - var/datum/browser/popup = new(user, "freezer", "Cryo Gas Cooling System", 400, 240) // Set up the popup browser window + var/datum/browser/popup = new(user, "freezer", "Cryo Gas Heating System", 400, 240) // Set up the popup browser window popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) popup.set_content(dat) popup.open() diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm index 7e787e9e0b4..a097f9090ab 100644 --- a/code/game/machinery/atmoalter/canister.dm +++ b/code/game/machinery/atmoalter/canister.dm @@ -228,7 +228,7 @@ update_flag /obj/machinery/portable_atmospherics/canister/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) if(!istype(W, /obj/item/weapon/wrench) && !istype(W, /obj/item/weapon/tank) && !istype(W, /obj/item/device/analyzer) && !istype(W, /obj/item/device/pda)) - visible_message("[user] hits the [src] with a [W]!") + visible_message("[user] hits \the [src] with a [W]!") src.health -= W.force src.add_fingerprint(user) healthcheck() diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index ca428f7c6c2..b94220d792b 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -1,74 +1,3 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 - -var/global/list/autolathe_recipes = list( \ - /* screwdriver removed*/ \ - new /obj/item/weapon/reagent_containers/glass/bucket(), \ - new /obj/item/weapon/crowbar(), \ - new /obj/item/device/flashlight(), \ - new /obj/item/weapon/extinguisher(), \ - new /obj/item/device/multitool(), \ - new /obj/item/device/analyzer(), \ - new /obj/item/device/t_scanner(), \ - new /obj/item/weapon/weldingtool(), \ - new /obj/item/weapon/screwdriver(), \ - new /obj/item/weapon/wirecutters(), \ - new /obj/item/weapon/wrench(), \ - new /obj/item/clothing/head/welding(), \ - new /obj/item/weapon/stock_parts/console_screen(), \ - new /obj/item/weapon/airlock_electronics(), \ - new /obj/item/weapon/airalarm_electronics(), \ - new /obj/item/weapon/firealarm_electronics(), \ - new /obj/item/device/pipe_painter(), \ - new /obj/item/stack/sheet/metal(), \ - new /obj/item/stack/sheet/glass(), \ - new /obj/item/stack/sheet/rglass(), \ - new /obj/item/stack/rods(), \ - new /obj/item/weapon/rcd_ammo(), \ - new /obj/item/weapon/kitchenknife(), \ - new /obj/item/weapon/scalpel(), \ - new /obj/item/weapon/circular_saw(), \ - new /obj/item/weapon/surgicaldrill(),\ - new /obj/item/weapon/retractor(),\ - new /obj/item/weapon/cautery(),\ - new /obj/item/weapon/hemostat(),\ - new /obj/item/weapon/reagent_containers/glass/beaker(), \ - new /obj/item/weapon/reagent_containers/glass/beaker/large(), \ - new /obj/item/ammo_casing/shotgun/beanbag(), \ - new /obj/item/ammo_box/c38(), \ - new /obj/item/device/taperecorder/empty(), \ - new /obj/item/device/tape(), \ - new /obj/item/device/assembly/igniter(), \ - new /obj/item/device/assembly/signaler(), \ - new /obj/item/device/radio/headset(), \ - new /obj/item/device/radio/off(), \ - new /obj/item/device/assembly/infra(), \ - new /obj/item/device/assembly/timer(), \ - new /obj/item/device/assembly/voice(), \ - new /obj/item/weapon/light/tube(), \ - new /obj/item/weapon/light/bulb(), \ - new /obj/item/weapon/camera_assembly(), \ - new /obj/item/newscaster_frame(), \ - new /obj/item/weapon/reagent_containers/syringe(), \ - new /obj/item/device/assembly/prox_sensor(), \ - ) - -var/global/list/autolathe_recipes_hidden = list( \ - new /obj/item/weapon/flamethrower/full(), \ - new /obj/item/weapon/rcd(), \ - new /obj/item/device/electropack(), \ - new /obj/item/weapon/weldingtool/largetank(), \ - new /obj/item/weapon/restraints/handcuffs(), \ - new /obj/item/ammo_box/a357(), \ - new /obj/item/ammo_box/c10mm(), \ - new /obj/item/ammo_box/c45(), \ - new /obj/item/ammo_box/c9mm(), \ - new /obj/item/ammo_casing/shotgun(), \ - new /obj/item/ammo_casing/shotgun/buckshot(), \ - new /obj/item/ammo_casing/shotgun/dart(), \ - new /obj/item/ammo_casing/shotgun/incendiary(), \ - /* new /obj/item/weapon/shield/riot(), */ \ - ) - /obj/machinery/autolathe name = "autolathe" desc = "It produces items using metal and glass." @@ -98,6 +27,21 @@ var/global/list/autolathe_recipes_hidden = list( \ var/prod_coeff var/datum/wires/autolathe/wires = null + var/datum/design/being_built + var/datum/research/files + var/selected_category + var/screen = 1 + + var/list/categories = list( + "Tools", + "Electronics", + "Construction", + "T-Comm", + "Security", + "Medical", + "Misc" + ) + /obj/machinery/autolathe/New() ..() component_parts = list() @@ -110,13 +54,30 @@ var/global/list/autolathe_recipes_hidden = list( \ RefreshParts() wires = new(src) - src.L = autolathe_recipes - src.LL = autolathe_recipes_hidden + files = new /datum/research/autolathe(src) /obj/machinery/autolathe/interact(mob/user) + if(!is_operational()) + return + if(shocked && !(stat & NOPOWER)) shock(user,50) - regular_win(user) + + var/dat + + if(panel_open) + dat = wires.GetInteractWindow() + + else + if(screen == 1) + dat = main_win(user) + else + dat += category_win(user,selected_category) + + var/datum/browser/popup = new(user, "autolathe", name, 400, 500) + popup.set_content(dat) + popup.open() + return /obj/machinery/autolathe/attackby(obj/item/O, mob/user) @@ -198,73 +159,68 @@ var/global/list/autolathe_recipes_hidden = list( \ if(..()) return if (!busy) + if(href_list["menu"]) + screen = text2num(href_list["menu"]) + + if(href_list["category"]) + selected_category = href_list["category"] + if(href_list["make"]) - var/coeff = 2 ** prod_coeff + var/turf/T = get_step(src.loc, get_dir(src,usr)) - // critical exploit fix start -walter0o - var/obj/item/template = null - var/attempting_to_build = locate(href_list["make"]) - - if(!attempting_to_build) + ///////////////// + //href protection + being_built = files.FindDesignByID(href_list["make"]) //check if it's a valid design + if(!being_built) return - if(locate(attempting_to_build, src.L) || locate(attempting_to_build, src.LL)) // see if the requested object is in one of the construction lists, if so, it is legit -walter0o - template = attempting_to_build - - else // somebody is trying to exploit, alert admins -walter0o - - var/turf/LOC = get_turf(usr) - message_admins("[key_name_admin(usr)] tried to exploit an autolathe to duplicate [attempting_to_build] ! ([LOC ? "JMP" : "null"])", 0) - log_admin("EXPLOIT : [key_name(usr)] tried to exploit an autolathe to duplicate [attempting_to_build] !") - return - - // now check for legit multiplier, also only stacks should pass with one to prevent raw-materials-manipulation -walter0o - + //multiplier checks : only stacks can have one and its value is 1, 10 ,25 or max_multiplier var/multiplier = text2num(href_list["multiplier"]) + var/max_multiplier = min(50, being_built.materials["$metal"] ?round(m_amount/being_built.materials["$metal"]):INFINITY,being_built.materials["$glass"]?round(g_amount/being_built.materials["$glass"]):INFINITY) + var/is_stack = ispath(being_built.build_path, /obj/item/stack) - if (!multiplier) multiplier = 1 - var/max_multiplier = 1 - - if(istype(template, /obj/item/stack)) // stacks are the only items which can have a multiplier higher than 1 -walter0o - var/obj/item/stack/S = template - max_multiplier = min(S.max_amount, S.m_amt?round(m_amount/S.m_amt):INFINITY, S.g_amt?round(g_amount/S.g_amt):INFINITY) // pasta from regular_win() to make sure the numbers match -walter0o - - if( (multiplier > max_multiplier) || (multiplier <= 0) ) // somebody is trying to exploit, alert admins-walter0o - - var/turf/LOC = get_turf(usr) - message_admins("[key_name_admin(usr)] tried to exploit an autolathe with multiplier set to [multiplier] on [template] ! ([LOC ? "JMP" : "null"])" , 0) - log_admin("EXPLOIT : [key_name(usr)] tried to exploit an autolathe with multiplier set to [multiplier] on [template] !") + if(!is_stack && (multiplier > 1)) return + if (!(multiplier in list(1,10,25,max_multiplier))) //"enough materials ?" is checked further down + return + ///////////////// - var/power = max(2000, (template.m_amt+template.g_amt)*multiplier/5) - if(src.m_amount >= template.m_amt*multiplier/coeff && src.g_amount >= template.g_amt*multiplier/coeff) + var/coeff = (is_stack ? 1 : 2 ** prod_coeff) //stacks are unaffected by production coefficient + var/metal_cost = being_built.materials["$metal"] + var/glass_cost = being_built.materials["$glass"] + + var/power = max(2000, (metal_cost+glass_cost)*multiplier/5) + + if((m_amount >= metal_cost*multiplier/coeff) && (g_amount >= glass_cost*multiplier/coeff)) busy = 1 use_power(power) icon_state = "autolathe" flick("autolathe_n",src) spawn(32/coeff) use_power(power) - if(istype(template, /obj/item/stack)) - src.m_amount -= template.m_amt*multiplier - src.g_amount -= template.g_amt*multiplier - var/obj/item/new_item = new template.type(T) - var/obj/item/stack/S = new_item + if(is_stack) + m_amount -= metal_cost*multiplier + g_amount -= glass_cost*multiplier + var/obj/item/stack/S = new being_built.build_path(T) S.amount = multiplier else - src.m_amount -= template.m_amt/coeff - src.g_amount -= template.g_amt/coeff - var/obj/item/new_item = new template.type(T) + m_amount -= metal_cost/coeff + g_amount -= glass_cost/coeff + var/obj/item/new_item = new being_built.build_path(T) new_item.m_amt /= coeff new_item.g_amt /= coeff - if(src.m_amount < 0) - src.m_amount = 0 - if(src.g_amount < 0) - src.g_amount = 0 + if(m_amount < 0) + m_amount = 0 + if(g_amount < 0) + g_amount = 0 busy = 0 + src.updateUsrDialog() else usr << "The autolathe is busy. Please wait for completion of previous operation." + src.updateUsrDialog() + return /obj/machinery/autolathe/RefreshParts() @@ -278,45 +234,71 @@ var/global/list/autolathe_recipes_hidden = list( \ for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) prod_coeff += M.rating - 1 -/obj/machinery/autolathe/proc/regular_win(mob/user) +/obj/machinery/autolathe/proc/main_win(mob/user) + var/dat = "

Autolathe Menu:


" + dat += "Metal amount: [src.m_amount] / [max_m_amount] cm3
" + dat += "Glass amount: [src.g_amount] / [max_g_amount] cm3
" + + var/line_length = 1 + dat += "" + + for(var/C in categories) + if(line_length > 2) + dat += "" + line_length = 1 + + dat += "" + line_length++ + + dat += "
[C]
" + return dat + +/obj/machinery/autolathe/proc/category_win(mob/user,var/selected_category) + var/dat = "Return to category screen" + dat += "

Browsing [selected_category]:


" + dat += "Metal amount: [src.m_amount] / [max_m_amount] cm3
" + dat += "Glass amount: [src.g_amount] / [max_g_amount] cm3
" + + for(var/datum/design/D in files.known_designs) + if(!(selected_category in D.category)) + continue + + if(disabled || !can_build(D)) + dat += "[D.name]" + else + dat += "[D.name]" + + if(ispath(D.build_path, /obj/item/stack)) + var/max_multiplier = min(50, D.materials["$metal"] ?round(m_amount/D.materials["$metal"]):INFINITY,D.materials["$glass"]?round(g_amount/D.materials["$glass"]):INFINITY) + if (max_multiplier>10 && !disabled) + dat += " x10" + if (max_multiplier>25 && !disabled) + dat += " x25" + if(max_multiplier > 0 && !disabled) + dat += " x[max_multiplier]" + + dat += "[get_design_cost(D)]
" + + dat += "
" + return dat + +/obj/machinery/autolathe/proc/can_build(var/datum/design/D) + var/coeff = (ispath(D.build_path,/obj/item/stack) ? 1 : 2 ** prod_coeff) + + if(D.materials["$metal"] && (m_amount < (D.materials["$metal"] / coeff))) + return 0 + if(D.materials["$glass"] && (g_amount < (D.materials["$glass"] / coeff))) + return 0 + return 1 + +/obj/machinery/autolathe/proc/get_design_cost(var/datum/design/D) + var/coeff = (ispath(D.build_path,/obj/item/stack) ? 1 : 2 ** prod_coeff) var/dat - if(!panel_open) - if(stat) - return - var/coeff = 2 ** prod_coeff - dat = "
Metal amount: [src.m_amount] / [max_m_amount] cm3
" - dat += "Glass amount: [src.g_amount] / [max_g_amount] cm3
" - var/list/objs = list() - objs += src.L - if(src.hacked) - objs += src.LL - for(var/obj/item/t in objs) - if(disabled || m_amount[t]", "The ", "") - else - dat += replacetext("[t]", "The ", "") - - if(istype(t, /obj/item/stack)) - var/obj/item/stack/S = t - var/max_multiplier = min(S.max_amount, S.m_amt?round(m_amount/S.m_amt):INFINITY, S.g_amt?round(g_amount/S.g_amt):INFINITY) - if (max_multiplier>10 && !disabled) - dat += " x[10]" - if (max_multiplier>25 && !disabled) - dat += " x[25]" - if (max_multiplier>1 && !disabled) - dat += " x[max_multiplier]" - dat += " [t.m_amt] m / [t.g_amt] g" - else - dat += " [t.m_amt/coeff] m / [t.g_amt/coeff] g" - dat += "
" - dat += "" - else - dat = wires.GetInteractWindow() - - var/datum/browser/popup = new(user, "autolathe", name, 400, 500) - popup.set_content(dat) - popup.open() - return + if(D.materials["$metal"]) + dat += "[D.materials["$metal"] / coeff] metal " + if(D.materials["$glass"]) + dat += "[D.materials["$glass"] / coeff] glass" + return dat /obj/machinery/autolathe/proc/shock(mob/user, prb) if(stat & (BROKEN|NOPOWER)) // unpowered, no shock @@ -330,3 +312,15 @@ var/global/list/autolathe_recipes_hidden = list( \ return 1 else return 0 + +/obj/machinery/autolathe/proc/adjust_hacked(var/hack) + hacked = hack + + if(hack) + for(var/datum/design/D in files.possible_designs) + if((D.build_type & 4) && ("hacked" in D.category)) + files.known_designs += D + else + for(var/datum/design/D in files.known_designs) + if("hacked" in D.category) + files.known_designs -= D diff --git a/code/game/machinery/bots/cleanbot.dm b/code/game/machinery/bots/cleanbot.dm index ef1fcd654cf..45c7aad316d 100644 --- a/code/game/machinery/bots/cleanbot.dm +++ b/code/game/machinery/bots/cleanbot.dm @@ -117,16 +117,16 @@ text("[on ? "On" : "Off"]")) /obj/machinery/bot/cleanbot/attackby(obj/item/weapon/W, mob/user as mob) if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda)) - if(allowed(usr) && !open && !emagged) + if(allowed(user) && !open && !emagged) locked = !locked - user << "You [ locked ? "lock" : "unlock"] the [src] behaviour controls." + user << "You [ locked ? "lock" : "unlock"] \the [src] behaviour controls." else if(emagged) user << "ERROR" if(open) user << "Please close the access panel before locking it." else - user << "This [src] doesn't seem to respect your authority." + user << "\The [src] doesn't seem to respect your authority." else return ..() diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm index b5de2fb95a7..3c83caa461d 100644 --- a/code/game/machinery/bots/ed209bot.dm +++ b/code/game/machinery/bots/ed209bot.dm @@ -418,7 +418,7 @@ Auto Patrol[]"}, new /obj/item/device/assembly/prox_sensor(Tsec) if(!lasercolor) - var/obj/item/weapon/gun/energy/taser/G = new /obj/item/weapon/gun/energy/taser(Tsec) + var/obj/item/weapon/gun/energy/gun/advtaser/G = new /obj/item/weapon/gun/energy/gun/advtaser(Tsec) G.power_supply.charge = 0 G.update_icon() else if(lasercolor == "b") @@ -645,7 +645,7 @@ Auto Patrol[]"}, return name = "redtag ED-209 assembly" if("") - if(!istype(W, /obj/item/weapon/gun/energy/taser)) + if(!istype(W, /obj/item/weapon/gun/energy/gun/advtaser)) return name = "taser ED-209 assembly" else diff --git a/code/game/machinery/bots/floorbot.dm b/code/game/machinery/bots/floorbot.dm index 01d94d68bab..c740b26f02f 100644 --- a/code/game/machinery/bots/floorbot.dm +++ b/code/game/machinery/bots/floorbot.dm @@ -343,7 +343,7 @@ obj/machinery/bot/floorbot/process_scan(var/scan_target) result = F if(FIX_TILE) //Selects only damaged floors. F = scan_target - if(F.broken || F.burnt) + if(istype(F) && (F.broken || F.burnt)) result = F if(TILE_EMAG) //Emag mode! Rip up the floor and cause breaches to space! F = scan_target diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 22d472812f9..ca16ad5dbc3 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -269,7 +269,7 @@ /obj/machinery/camera/proc/cancelCameraAlarm() alarm_on = 0 for(var/mob/living/silicon/S in mob_list) - S.cancelAlarm("Camera", get_area(src), list(src), src) + S.cancelAlarm("Camera", get_area(src), src) /obj/machinery/camera/proc/can_use() if(!status) diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm index a6e179c1050..cdd9cda8520 100644 --- a/code/game/machinery/camera/camera_assembly.dm +++ b/code/game/machinery/camera/camera_assembly.dm @@ -121,7 +121,7 @@ // Upgrades! if(is_type_in_list(W, possible_upgrades) && !is_type_in_list(W, upgrades)) // Is a possible upgrade and isn't in the camera already. - user << "You attach the [W] into the assembly inner circuits." + user << "You attach \the [W] into the assembly inner circuits." upgrades += W user.drop_item() W.loc = src @@ -156,7 +156,7 @@ if(!WT.isOn()) return 0 - user << "You start to weld the [src].." + user << "You start to weld \the [src].." playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) WT.eyecheck(user) busy = 1 diff --git a/code/game/machinery/camera/motion.dm b/code/game/machinery/camera/motion.dm index e80f0799943..4454d5a89cb 100644 --- a/code/game/machinery/camera/motion.dm +++ b/code/game/machinery/camera/motion.dm @@ -42,7 +42,8 @@ /obj/machinery/camera/proc/cancelAlarm() if (detectTime == -1) for (var/mob/living/silicon/aiPlayer in player_list) - if (status) aiPlayer.cancelAlarm("Motion", src.loc.loc) + if (status) + aiPlayer.cancelAlarm("Motion", get_area(src), src) detectTime = 0 return 1 diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 6513c71ab6b..88e83f4127e 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -122,7 +122,7 @@ //Clonepod //Start growing a human clone in the pod! -/obj/machinery/clonepod/proc/growclone(var/ckey, var/clonename, var/ui, var/se, var/mindref, var/datum/species/mrace, var/mcolor) +/obj/machinery/clonepod/proc/growclone(var/ckey, var/clonename, var/ui, var/se, var/mindref, var/datum/species/mrace, var/mcolor, var/factions) if(panel_open) return 0 if(mess || attempting) @@ -173,6 +173,7 @@ H << "Consciousness slowly creeps over you as your body regenerates.
So this is what cloning feels like?
" hardset_dna(H, ui, se, null, null, mrace, mcolor) + H.faction |= factions if(efficiency > 2) for(var/A in bad_se_blocks) diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm index 5932d7a2420..5badb4c9f9f 100644 --- a/code/game/machinery/computer/HolodeckControl.dm +++ b/code/game/machinery/computer/HolodeckControl.dm @@ -437,12 +437,12 @@ return G.affecting.loc = src.loc G.affecting.Weaken(5) - visible_message("[G.assailant] dunks [G.affecting] into the [src]!", 3) + visible_message("[G.assailant] dunks [G.affecting] into \the [src]!", 3) qdel(W) return else if (istype(W, /obj/item) && get_dist(src,user)<2) user.drop_item(src) - visible_message(" [user] dunks [W] into the [src]!", 3) + visible_message(" [user] dunks [W] into \the [src]!", 3) return /obj/structure/holohoop/CanPass(atom/movable/mover, turf/target, height=0) diff --git a/code/game/machinery/computer/ai_core.dm b/code/game/machinery/computer/ai_core.dm index dbb47efeab8..8cd861754a4 100644 --- a/code/game/machinery/computer/ai_core.dm +++ b/code/game/machinery/computer/ai_core.dm @@ -211,207 +211,104 @@ That prevents a few funky behaviors. */ //What operation to perform based on target, what ineraction to perform based on object used, target itself, user. The object used is src and calls this proc. /obj/item/proc/transfer_ai(var/choice as text, var/interaction as text, var/target, var/mob/U as mob) - if(!src:flush) - switch(choice) - if("AICORE")//AI mob. - var/mob/living/silicon/ai/T = target - if(!T.mind) - U << "No intelligence patterns detected." //No more magical carding of empty cores, AI RETURN TO BODY!!!11 - return - switch(interaction) - if("AICARD") - var/obj/item/device/aicard/C = src - if(C.contents.len)//If there is an AI on card. - U << "Transfer failed: \black Existing AI found on this terminal. Remove existing AI to install a new one." + if(istype(src, /obj/item/device/aicard)) + var/obj/item/device/aicard/icard = src + if(icard.flush) + U << "ERROR: AI flush is in progress, cannot execute transfer protocol." + return + + switch(choice) + if("AICORE")//AI mob. + var/mob/living/silicon/ai/T = target + if(!T.mind) + U << "No intelligence patterns detected." //No more magical carding of empty cores, AI RETURN TO BODY!!!11 + return + switch(interaction) + if("AICARD") + var/obj/item/device/aicard/C = src + if(C.contents.len)//If there is an AI on card. + U << "Transfer failed: Existing AI found on this terminal. Remove existing AI to install a new one." + else + if (ticker.mode.name == "AI malfunction") + var/datum/game_mode/malfunction/malf = ticker.mode + for (var/datum/mind/malfai in malf.malf_ai) + if (T.mind == malfai) + U << "ERROR: Remote transfer interface disabled."//Do ho ho ho~ + return + new /obj/structure/AIcore/deactivated(T.loc)//Spawns a deactivated terminal at AI location. + T.aiRestorePowerRoutine = 0//So the AI initially has power. + T.control_disabled = 1//Can't control things remotely if you're stuck in a card! + T.radio_enabled = 0 //No talking on the built-in radio for you either! + T.loc = C//Throw AI into the card. + C.name = "intelliCard - [T.name]" + if (T.stat == 2) + C.icon_state = "aicard-404" else - if (ticker.mode.name == "AI malfunction") - var/datum/game_mode/malfunction/malf = ticker.mode - for (var/datum/mind/malfai in malf.malf_ai) - if (T.mind == malfai) - U << "ERROR: \black Remote transfer interface disabled."//Do ho ho ho~ - return - new /obj/structure/AIcore/deactivated(T.loc)//Spawns a deactivated terminal at AI location. - T.aiRestorePowerRoutine = 0//So the AI initially has power. - T.control_disabled = 1//Can't control things remotely if you're stuck in a card! - T.radio_enabled = 0 //No talking on the built-in radio for you either! - T.loc = C//Throw AI into the card. - C.name = "inteliCard - [T.name]" - if (T.stat == 2) + C.icon_state = "aicard-full" + T.cancel_camera() + T << "You have been downloaded to a mobile storage device. Remote device connection severed." + U << "Transfer successful: [T.name] ([rand(1000,9999)].exe) removed from host terminal and stored within local memory." + + if("INACTIVE")//Inactive AI object. + var/obj/structure/AIcore/deactivated/T = target + switch(interaction) + if("AICARD") + var/obj/item/device/aicard/C = src + var/mob/living/silicon/ai/A = locate() in C//I love locate(). Best proc ever. + if(A)//If AI exists on the card. Else nothing since both are empty. + A.control_disabled = 0 + A.radio_enabled = 1 + A.loc = T.loc//To replace the terminal. + C.icon_state = "aicard" + C.name = "intelliCard" + C.overlays.Cut() + A.cancel_camera() + A << "You have been uploaded to a stationary terminal. Remote device connection restored." + U << "Transfer successful: [A.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed." + qdel(T) + + if("AIFIXER")//AI Fixer terminal. + var/obj/machinery/computer/aifixer/T = target + switch(interaction) + if("AICARD") + var/obj/item/device/aicard/C = src + if(!T.contents.len) + if (!C.contents.len) + U << "No AI to copy over!"//Well duh + else for(var/mob/living/silicon/ai/A in C) + C.icon_state = "aicard" + C.name = "intelliCard" + C.overlays.Cut() + A.loc = T + T.occupier = A + A.control_disabled = 1 + A.radio_enabled = 0 + if (A.stat == 2) + T.overlays += image('icons/obj/computer.dmi', "ai-fixer-404") + else + T.overlays += image('icons/obj/computer.dmi', "ai-fixer-full") + T.overlays -= image('icons/obj/computer.dmi', "ai-fixer-empty") + A.cancel_camera() + A << "You have been uploaded to a stationary terminal. Sadly, there is no remote access from here." + U << "Transfer successful: [A.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed." + else + if(!C.contents.len && T.occupier && !T.active) + C.name = "intelliCard - [T.occupier.name]" + T.overlays += image('icons/obj/computer.dmi', "ai-fixer-empty") + if (T.occupier.stat == 2) C.icon_state = "aicard-404" + T.overlays -= image('icons/obj/computer.dmi', "ai-fixer-404") else C.icon_state = "aicard-full" - T.cancel_camera() - T << "You have been downloaded to a mobile storage device. Remote device connection severed." - U << "Transfer successful: \black [T.name] ([rand(1000,9999)].exe) removed from host terminal and stored within local memory." - if("NINJASUIT") - var/obj/item/clothing/suit/space/space_ninja/C = src - if(C.AI)//If there is an AI on card. - U << "Transfer failed: \black Existing AI found on this terminal. Remove existing AI to install a new one." - else - if (ticker.mode.name == "AI malfunction") - var/datum/game_mode/malfunction/malf = ticker.mode - for (var/datum/mind/malfai in malf.malf_ai) - if (T.mind == malfai) - U << "ERROR: \black Remote transfer interface disabled." - return - if(T.stat)//If the ai is dead/dying. - U << "ERROR: \black [T.name] data core is corrupted. Unable to install." - else - new /obj/structure/AIcore/deactivated(T.loc) - T.aiRestorePowerRoutine = 0 - T.control_disabled = 1 - T.radio_enabled = 0 - T.loc = C - C.AI = T - T.cancel_camera() - T << "You have been downloaded to a mobile storage device. Remote device connection severed." - U << "Transfer successful: \black [T.name] ([rand(1000,9999)].exe) removed from host terminal and stored within local memory." - - if("INACTIVE")//Inactive AI object. - var/obj/structure/AIcore/deactivated/T = target - switch(interaction) - if("AICARD") - var/obj/item/device/aicard/C = src - var/mob/living/silicon/ai/A = locate() in C//I love locate(). Best proc ever. - if(A)//If AI exists on the card. Else nothing since both are empty. - A.control_disabled = 0 - A.radio_enabled = 1 - A.loc = T.loc//To replace the terminal. - C.icon_state = "aicard" - C.name = "inteliCard" - C.overlays.Cut() - A.cancel_camera() - A << "You have been uploaded to a stationary terminal. Remote device connection restored." - U << "Transfer successful: \black [A.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed." - qdel(T) - if("NINJASUIT") - var/obj/item/clothing/suit/space/space_ninja/C = src - var/mob/living/silicon/ai/A = C.AI - if(A) - A.control_disabled = 0 - A.radio_enabled = 1 - C.AI = null - A.loc = T.loc - A.cancel_camera() - A << "You have been uploaded to a stationary terminal. Remote device connection restored." - U << "Transfer successful: \black [A.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed." - qdel(T) - if("AIFIXER")//AI Fixer terminal. - var/obj/machinery/computer/aifixer/T = target - switch(interaction) - if("AICARD") - var/obj/item/device/aicard/C = src - if(!T.contents.len) - if (!C.contents.len) - U << "No AI to copy over!"//Well duh - else for(var/mob/living/silicon/ai/A in C) - C.icon_state = "aicard" - C.name = "inteliCard" - C.overlays.Cut() - A.loc = T - T.occupier = A - A.control_disabled = 1 - A.radio_enabled = 0 - if (A.stat == 2) - T.overlays += image('icons/obj/computer.dmi', "ai-fixer-404") - else - T.overlays += image('icons/obj/computer.dmi', "ai-fixer-full") - T.overlays -= image('icons/obj/computer.dmi', "ai-fixer-empty") - A.cancel_camera() - A << "You have been uploaded to a stationary terminal. Sadly, there is no remote access from here." - U << "Transfer successful: \black [A.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed." - else - if(!C.contents.len && T.occupier && !T.active) - C.name = "inteliCard - [T.occupier.name]" - T.overlays += image('icons/obj/computer.dmi', "ai-fixer-empty") - if (T.occupier.stat == 2) - C.icon_state = "aicard-404" - T.overlays -= image('icons/obj/computer.dmi', "ai-fixer-404") - else - C.icon_state = "aicard-full" - T.overlays -= image('icons/obj/computer.dmi', "ai-fixer-full") - T.occupier << "You have been downloaded to a mobile storage device. Still no remote access." - U << "Transfer successful: \black [T.occupier.name] ([rand(1000,9999)].exe) removed from host terminal and stored within local memory." - T.occupier.loc = C - T.occupier.cancel_camera() - T.occupier = null - else if (C.contents.len) - U << "ERROR: \black Artificial intelligence detected on terminal." - else if (T.active) - U << "ERROR: \black Reconstruction in progress." - else if (!T.occupier) - U << "ERROR: \black Unable to locate artificial intelligence." - if("NINJASUIT") - var/obj/item/clothing/suit/space/space_ninja/C = src - if(!T.contents.len) - if (!C.AI) - U << "No AI to copy over!" - else - var/mob/living/silicon/ai/A = C.AI - A.loc = T - T.occupier = A - C.AI = null - A.control_disabled = 1 - A.radio_enabled = 0 - T.overlays += image('icons/obj/computer.dmi', "ai-fixer-full") - T.overlays -= image('icons/obj/computer.dmi', "ai-fixer-empty") - A.cancel_camera() - A << "You have been uploaded to a stationary terminal. Sadly, there is no remote access from here." - U << "Transfer successful: \black [A.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed." - else - if(!C.AI && T.occupier && !T.active) - if (T.occupier.stat) - U << "ERROR: \black [T.occupier.name] data core is corrupted. Unable to install." - else - T.overlays += image('icons/obj/computer.dmi', "ai-fixer-empty") - T.overlays -= image('icons/obj/computer.dmi', "ai-fixer-full") - T.occupier << "You have been downloaded to a mobile storage device. Still no remote access." - U << "Transfer successful: \black [T.occupier.name] ([rand(1000,9999)].exe) removed from host terminal and stored within local memory." - T.occupier.loc = C - T.occupier.cancel_camera() - T.occupier = null - else if (C.AI) - U << "ERROR: \black Artificial intelligence detected on terminal." - else if (T.active) - U << "ERROR: \black Reconstruction in progress." - else if (!T.occupier) - U << "ERROR: \black Unable to locate artificial intelligence." - if("NINJASUIT")//Ninjasuit - var/obj/item/clothing/suit/space/space_ninja/T = target - switch(interaction) - if("AICARD") - var/obj/item/device/aicard/C = src - if(T.s_initialized&&U==T.affecting)//If the suit is initialized and the actor is the user. - - var/mob/living/silicon/ai/A_T = locate() in C//Determine if there is an AI on target card. Saves time when checking later. - var/mob/living/silicon/ai/A = T.AI//Deterine if there is an AI in suit. - - if(A)//If the host AI card is not empty. - if(A_T)//If there is an AI on the target card. - U << "ERROR: \black [A_T.name] already installed. Remove [A_T.name] to install a new one." - else - A.loc = C//Throw them into the target card. Since they are already on a card, transfer is easy. - C.name = "inteliCard - [A.name]" - C.icon_state = "aicard-full" - T.AI = null - A.cancel_camera() - A << "You have been uploaded to a mobile storage device." - U << "SUCCESS: \black [A.name] ([rand(1000,9999)].exe) removed from host and stored within local memory." - else//If host AI is empty. - if(C.flush)//If the other card is flushing. - U << "ERROR: \black AI flush is in progress, cannot execute transfer protocol." - else - if(A_T&&!A_T.stat)//If there is an AI on the target card and it's not inactive. - A_T.loc = T//Throw them into suit. - C.icon_state = "aicard" - C.name = "inteliCard" - C.overlays.Cut() - T.AI = A_T - A_T.cancel_camera() - A_T << "You have been uploaded to a mobile storage device." - U << "SUCCESS: \black [A_T.name] ([rand(1000,9999)].exe) removed from local memory and installed to host." - else if(A_T)//If the target AI is dead. Else just go to return since nothing would happen if both are empty. - U << "ERROR: \black [A_T.name] data core is corrupted. Unable to install." - else - U << "ERROR: \black AI flush is in progress, cannot execute transfer protocol." - return \ No newline at end of file + T.overlays -= image('icons/obj/computer.dmi', "ai-fixer-full") + T.occupier << "You have been downloaded to a mobile storage device. Still no remote access." + U << "Transfer successful: [T.occupier.name] ([rand(1000,9999)].exe) removed from host terminal and stored within local memory." + T.occupier.loc = C + T.occupier.cancel_camera() + T.occupier = null + else if (C.contents.len) + U << "ERROR: Artificial intelligence detected on terminal." + else if (T.active) + U << "ERROR: Reconstruction in progress." + else if (!T.occupier) + U << "ERROR: Unable to locate artificial intelligence." \ No newline at end of file diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm index 2b3f208b9fe..44943554a88 100644 --- a/code/game/machinery/computer/aifixer.dm +++ b/code/game/machinery/computer/aifixer.dm @@ -1,6 +1,6 @@ /obj/machinery/computer/aifixer name = "\improper AI system integrity restorer" - desc = "Used with inteliCards containing nonfunctioning AIs to restore them to working order." + desc = "Used with intelliCards containing nonfunctioning AIs to restore them to working order." icon = 'icons/obj/computer.dmi' icon_state = "ai-fixer" req_access = list(access_captain, access_robotics, access_heads) diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 5d49b12a1e5..2c68d334bd1 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -35,7 +35,7 @@ if(!(pod1.occupant || pod1.mess) && (pod1.efficiency > 5)) for(var/datum/data/record/R in records) if(!(pod1.occupant || pod1.mess)) - if(pod1.growclone(R.fields["ckey"], R.fields["name"], R.fields["UI"], R.fields["SE"], R.fields["mind"], R.fields["mrace"], R.fields["mcolor"])) + if(pod1.growclone(R.fields["ckey"], R.fields["name"], R.fields["UI"], R.fields["SE"], R.fields["mind"], R.fields["mrace"], R.fields["mcolor"], R.fields["factions"])) records -= R /obj/machinery/computer/cloning/proc/updatemodules() @@ -329,7 +329,7 @@ temp = "Clonepod malfunction." else if(!config.revival_cloning) temp = "Unable to initiate cloning cycle." - else if(pod1.growclone(C.fields["ckey"], C.fields["name"], C.fields["UI"], C.fields["SE"], C.fields["mind"], C.fields["mrace"], C.fields["mcolor"])) + else if(pod1.growclone(C.fields["ckey"], C.fields["name"], C.fields["UI"], C.fields["SE"], C.fields["mind"], C.fields["mrace"], C.fields["mcolor"], C.fields["factions"])) temp = "[C.fields["name"]] => Cloning cycle in progress..." records.Remove(C) if(active_record == C) @@ -381,7 +381,7 @@ R.fields["SE"] = subject.dna.struc_enzymes R.fields["blood_type"] = subject.dna.blood_type R.fields["mcolor"] = subject.dna.mutant_color - + R.fields["factions"] = subject.faction //Add an implant if needed var/obj/item/weapon/implant/health/imp = locate(/obj/item/weapon/implant/health, subject) if(!imp) diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index f68c7bf7c36..8486b010252 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -56,7 +56,7 @@ proc/crewmonitor(mob/user,var/atom/source) jobs["Shaft Miner"] = 52 jobs["Cargo Technician"] = 53 jobs["Bartender"] = 61 - jobs["Chef"] = 62 + jobs["Cook"] = 62 jobs["Botanist"] = 63 jobs["Librarian"] = 64 jobs["Chaplain"] = 65 @@ -64,7 +64,7 @@ proc/crewmonitor(mob/user,var/atom/source) jobs["Mime"] = 67 jobs["Janitor"] = 68 jobs["Assistant"] = 99 //Unknowns/custom jobs should appear after civilians, and before assistants - + var/t = "" var/list/logs = list() var/list/tracked = crewscan() @@ -86,15 +86,15 @@ proc/crewmonitor(mob/user,var/atom/source) var/ijob = jobs[I.assignment] if(ijob % 10 == 0) style += "font-weight: bold; " //head roles always end in 0 - if(ijob >= 10 && ijob < 20) + if(ijob >= 10 && ijob < 20) style += "color: #E74C3C; " //security - if(ijob >= 20 && ijob < 30) + if(ijob >= 20 && ijob < 30) style += "color: #3498DB; " //medical - if(ijob >= 30 && ijob < 40) - style += "color: #9B59B6; " //science - if(ijob >= 40 && ijob < 50) + if(ijob >= 30 && ijob < 40) + style += "color: #9B59B6; " //science + if(ijob >= 40 && ijob < 50) style += "color: #F1C40F; " //engineering - if(ijob >= 50 && ijob < 60) + if(ijob >= 50 && ijob < 60) style += "color: #F39C12; " //cargo log += "[ijob]]" //ijob does not get displayed, nor does it take up space, it's just used for the positioning of an entry else diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index d7bde33688d..8441647f791 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -130,6 +130,7 @@ if(component_check) playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) var/obj/machinery/new_machine = new src.circuit.build_path(src.loc) + new_machine.construction() for(var/obj/O in new_machine.component_parts) qdel(O) new_machine.component_parts = list() diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index eb5faffcafd..24312770103 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -18,7 +18,6 @@ /obj/machinery/atmospherics/unary/cryo_cell/New() ..() initialize_directions = dir - initialize() component_parts = list() component_parts += new /obj/item/weapon/circuitboard/cryo_tube(null) component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) @@ -29,6 +28,9 @@ component_parts += new /obj/item/stack/cable_coil(null, 1) RefreshParts() +/obj/machinery/atmospherics/unary/cryo_cell/construction() + ..(dir,dir) + /obj/machinery/atmospherics/unary/cryo_cell/RefreshParts() var/C for(var/obj/item/weapon/stock_parts/matter_bin/M in component_parts) diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index e95d705c247..aa6b6139e21 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -67,11 +67,11 @@ for reference: user.changeNext_move(CLICK_CD_MELEE) if (istype(W, /obj/item/stack/sheet/mineral/wood)) if (src.health < src.maxhealth) - visible_message("[user] begins to repair the [src]!") + visible_message("[user] begins to repair \the [src]!") if(do_after(user,20)) src.health = src.maxhealth W:use(1) - visible_message("[user] repairs the [src]!") + visible_message("[user] repairs \the [src]!") return else return @@ -173,12 +173,12 @@ for reference: src.health = src.maxhealth src.emagged = 0 src.req_access = list(access_security) - visible_message("[user] repairs the [src]!") + visible_message("[user] repairs \the [src]!") return else if (src.emagged > 0) src.emagged = 0 src.req_access = list(access_security) - visible_message("[user] repairs the [src]!") + visible_message("[user] repairs \the [src]!") return return else @@ -196,7 +196,7 @@ for reference: if (src.emagged == 0) src.emagged = 1 src.req_access = null - user << "You break the ID authentication lock on the [src]." + user << "You break the ID authentication lock on \the [src]." var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(2, 1, src) s.start() @@ -204,7 +204,7 @@ for reference: return else if (src.emagged == 1) src.emagged = 2 - user << "You short out the anchoring mechanism on the [src]." + user << "You short out the anchoring mechanism on \the [src]." var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(2, 1, src) s.start() diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index da3d9d80101..c775105c5b6 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -36,7 +36,7 @@ var/obj/item/weapon/weldingtool/W = C if(W.remove_fuel(0, user)) blocked = !blocked - user << text("You [blocked?"welded":"unwelded"] the [src]") + user << text("You [blocked?"welded":"unwelded"] \the [src]") update_icon() return diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index f35c1c7a38e..a0cb59823f5 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -200,7 +200,6 @@ /obj/machinery/door/window/mech_melee_attack(obj/mecha/M) if(M.damtype == "brute") playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) - M.occupant_message("You hit [src].") visible_message("[M.name] has hit [src].") take_damage(M.force) return diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm index 959767107ae..410f092e2a6 100644 --- a/code/game/machinery/igniter.dm +++ b/code/game/machinery/igniter.dm @@ -76,10 +76,10 @@ add_fingerprint(user) src.disable = !src.disable if (src.disable) - user.visible_message("[user] has disabled the [src]!", "You disable the connection to the [src].") + user.visible_message("[user] has disabled \the [src]!", "You disable the connection to \the [src].") icon_state = "[base_state]-d" if (!src.disable) - user.visible_message("[user] has reconnected the [src]!", "You fix the connection to the [src].") + user.visible_message("[user] has reconnected \the [src]!", "You fix the connection to \the [src].") if(src.powered()) icon_state = "[base_state]" else diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index 857008e4edf..18c4ac4205a 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -242,7 +242,8 @@ Class Procs: return //stop AIs from leaving windows open and using then after they lose vision //apc_override is needed here because AIs use their own APC when powerless - if(cameranet && !cameranet.checkTurfVis(get_turf(M)) && !apc_override) + //get_turf_pixel() is because APCs in maint aren't actually in view of the inner camera + if(cameranet && !cameranet.checkTurfVis(get_turf_pixel(M)) && !apc_override) return return 1 @@ -334,8 +335,8 @@ Class Procs: /obj/machinery/proc/default_change_direction_wrench(var/mob/user, var/obj/item/weapon/wrench/W) if(panel_open && istype(W)) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) - dir = pick(WEST,EAST,SOUTH,NORTH) - user << "You clumsily rotate [src]." + dir = turn(dir,-90) + user << "You rotate [src]." return 1 return 0 @@ -381,3 +382,7 @@ Class Procs: W.play_rped_sound() return 1 return 0 + +//called on machinery construction (i.e from frame to machinery) but not on initialization +/obj/machinery/proc/construction() + return diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index f63ea425196..85fc2a42869 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -517,6 +517,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co return if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon))) usr.set_machine(src) + scan_user(usr) if(href_list["set_channel_name"]) src.channel_name = stripped_input(usr, "Provide a Feed Channel Name", "Network Channel Handler", "", MAX_NAME_LEN) while (findtext(src.channel_name," ") == 1) @@ -547,6 +548,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co else var/choice = alert("Please confirm Feed channel creation","Network Channel Handler","Confirm","Cancel") if(choice=="Confirm") + scan_user(usr) news_network.CreateFeedChannel(src.channel_name, src.scanned_user, c_locked) feedback_inc("newscaster_channels",1) src.screen=5 @@ -632,6 +634,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co else var/choice = alert("Please confirm Wanted Issue [(input_param==1) ? ("creation.") : ("edit.")]","Network Security Handler","Confirm","Cancel") if(choice=="Confirm") + scan_user(usr) if(input_param==1) //If input_param == 1 we're submitting a new wanted issue. At 2 we're just editing an existing one. See the else below var/datum/feed_message/WANTED = new /datum/feed_message WANTED.author = src.channel_name @@ -752,6 +755,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co var/datum/feed_message/FM = locate(href_list["new_comment"]) var/cominput = copytext(stripped_input(usr, "Write your message:", "New comment", null),1,141) if(cominput) + scan_user(usr) var/datum/feed_comment/FC = new/datum/feed_comment FC.author = scanned_user FC.body = cominput @@ -1054,9 +1058,11 @@ obj/item/weapon/newspaper/attackby(obj/item/weapon/W as obj, mob/user as mob) src.scanned_user ="Unknown" else src.scanned_user ="Unknown" - else + else if(istype(user,/mob/living/silicon)) var/mob/living/silicon/ai_user = user src.scanned_user = "[ai_user.name] ([ai_user.job])" + else + ERROR("Newscaster used by non-human/silicon mob: [user.type]") /obj/machinery/newscaster/proc/print_paper() diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm index d36763e98e8..c1fa0980810 100644 --- a/code/game/machinery/pipe/construction.dm +++ b/code/game/machinery/pipe/construction.dm @@ -22,6 +22,15 @@ Buildable meters #define PIPE_HEAT_EXCHANGE 17 #define PIPE_DVALVE 18 #define PIPE_4WAYMANIFOLD 19 +//Disposal piping numbers - do NOT hardcode these, use the defines +#define DISP_PIPE_STRAIGHT 0 +#define DISP_PIPE_BENT 1 +#define DISP_JUNCTION 2 +#define DISP_YJUNCTION 3 +#define DISP_END_TRUNK 4 +#define DISP_END_BIN 5 +#define DISP_END_OUTLET 6 +#define DISP_END_CHUTE 7 /obj/item/pipe name = "pipe" @@ -95,6 +104,28 @@ Buildable meters src.pixel_y = rand(-5, 5) //update the name and icon of the pipe item depending on the type +var/global/list/pipeID2State = list( + "simple", \ + "simple", \ + "he", \ + "he", \ + "connector", \ + "manifold", \ + "junction", \ + "uvent", \ + "mvalve", \ + "pump", \ + "scrubber", \ + "insulated", \ + "insulated", \ + "filter", \ + "mixer", \ + "passivegate", \ + "volumepump", \ + "heunary", \ + "dvalve", \ + "manifold4w", \ +) /obj/item/pipe/proc/update() var/list/nlist = list( \ @@ -120,29 +151,7 @@ Buildable meters "4-way manifold", \ ) name = nlist[pipe_type+1] + " fitting" - var/list/islist = list( \ - "simple", \ - "simple", \ - "he", \ - "he", \ - "connector", \ - "manifold", \ - "junction", \ - "uvent", \ - "mvalve", \ - "pump", \ - "scrubber", \ - "insulated", \ - "insulated", \ - "filter", \ - "mixer", \ - "passivegate", \ - "volumepump", \ - "heunary", \ - "dvalve", \ - "manifold4w", \ - ) - icon_state = islist[pipe_type + 1] + icon_state = pipeID2State[pipe_type + 1] //called when a turf is attacked with a pipe item // place the pipe on the turf, setting pipe level to 1 (underfloor) if the turf is not intact @@ -391,8 +400,8 @@ Buildable meters playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) user.visible_message( \ - "[user] fastens the [src].", \ - "You have fastened the [src].", \ + "[user] fastens \the [src].", \ + "You have fastened \the [src].", \ "You hear ratchet.") qdel(src) // remove the pipe item @@ -423,24 +432,3 @@ Buildable meters playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) user << "You have fastened the meter to the pipe." qdel(src) - -#undef PIPE_SIMPLE_STRAIGHT -#undef PIPE_SIMPLE_BENT -#undef PIPE_HE_STRAIGHT -#undef PIPE_HE_BENT -#undef PIPE_CONNECTOR -#undef PIPE_MANIFOLD -#undef PIPE_JUNCTION -#undef PIPE_UVENT -#undef PIPE_MVALVE -#undef PIPE_PUMP -#undef PIPE_SCRUBBER -#undef PIPE_INSULATED_STRAIGHT -#undef PIPE_INSULATED_BENT -#undef PIPE_GAS_FILTER -#undef PIPE_GAS_MIXER -#undef PIPE_PASSIVE_GATE -#undef PIPE_VOLUME_PUMP -#undef PIPE_OUTLET_INJECT -#undef PIPE_DVALVE -#undef PIPE_4WAYMANIFOLD \ No newline at end of file diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index e409a1bc686..12bec635546 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -24,7 +24,7 @@ var/locked = 1 //if the turret's behaviour control access is locked var/controllock = 0 //if the turret responds to control panels - var/installation = /obj/item/weapon/gun/energy/gun //the type of weapon installed + var/installation = /obj/item/weapon/gun/energy/gun/turret //the type of weapon installed var/gun_charge = 0 //the charge of the gun inserted var/projectile = null //holder for bullettype var/eprojectile = null //holder for the shot when emagged @@ -119,7 +119,7 @@ if(/obj/item/weapon/gun/energy/lasercannon) iconholder = 1 - if(/obj/item/weapon/gun/energy/taser) + if(/obj/item/weapon/gun/energy/gun/advtaser) eprojectile = /obj/item/projectile/beam eshot_sound = 'sound/weapons/Laser.ogg' @@ -137,6 +137,10 @@ eshot_sound = 'sound/weapons/Laser.ogg' egun = 1 + if(/obj/item/weapon/gun/energy/gun/turret) + eprojectile = /obj/item/projectile/beam //If it has, going to copypaste mode + eshot_sound = 'sound/weapons/Laser.ogg' + egun = 1 /obj/machinery/porta_turret/Destroy() //deletes its own cover with it diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 62c7846c807..743da789536 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -168,7 +168,7 @@ O:icon_state = "flash" // Engineering // Security - if(istype(O,/obj/item/weapon/gun/energy/taser/cyborg)) + if(istype(O,/obj/item/weapon/gun/energy/gun/advtaser/cyborg)) if(O:power_supply.charge < O:power_supply.maxcharge) var/obj/item/weapon/gun/energy/G = O var/obj/item/ammo_casing/energy/S = G.ammo_type[G.select] diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index 9c1b8ee09cd..97d1777c00b 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -282,6 +282,8 @@ var/list/obj/machinery/requests_console/allConsoles = list() if(!announcementConsole) return minor_announce(message, "[department] Announcement:") news_network.SubmitArticle(message, department, "Station Announcements", null) + log_say("[key_name(usr)] has made a station announcement: [message]") + message_admins("[key_name_admin(usr)] has made a station announcement.") announceAuth = 0 message = "" screen = 0 @@ -308,7 +310,7 @@ var/list/obj/machinery/requests_console/allConsoles = list() for (var/obj/machinery/requests_console/Console in allConsoles) if (ckey(Console.department) == ckey(href_list["department"])) switch(priority) - if(2) //High priority + if(2) //High priority Console.createmessage(src, "PRIORITY Alert in [department]", sending, 2, 1) if(3) // Extreme Priority Console.createmessage(src, "EXTREME PRIORITY Alert in [department]", sending, 3, 1) @@ -366,14 +368,14 @@ var/list/obj/machinery/requests_console/allConsoles = list() updateUsrDialog() return - + /obj/machinery/say_quote(var/text) var/ending = copytext(text, length(text) - 2) if (ending == "!!!") return "blares, \"[text]\"" return "beeps, \"[text]\"" - + /obj/machinery/requests_console/proc/createmessage(source, title, message, priority, paper) var/linkedsender var/unlinkedsender @@ -429,7 +431,7 @@ var/list/obj/machinery/requests_console/allConsoles = list() var/obj/item/weapon/paper/slip = new /obj/item/weapon/paper(src.loc) slip.info = "From: [unlinkedsender]
[message]" slip.name = "Message - [unlinkedsender]" - src.luminosity = 2 + src.luminosity = 2 /obj/machinery/requests_console/attackby(var/obj/item/weapon/O as obj, var/mob/user as mob) if (istype(O, /obj/item/weapon/crowbar)) diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 3c33b98904f..ec9bd835142 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -253,7 +253,7 @@ coil.use(1) health = max_health malfunction = 0 - user << "You repair the [src]!" + user << "You repair \the [src]!" update_icon() else if(istype(W, /obj/item/weapon/wrench)) @@ -262,13 +262,13 @@ return if(!anchored && !isinspace()) playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) - user << " You secure the [src] to the floor!" + user << " You secure \the [src] to the floor!" anchored = 1 else if(anchored) playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) - user << " You unsecure the [src] from the floor!" + user << " You unsecure \the [src] from the floor!" if(active) - user << " The [src] shuts off!" + user << " \The [src] shuts off!" src.shields_down() anchored = 0 diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index 08ee0a278b8..58d4ba0cf8f 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -65,7 +65,7 @@ return else if(istype(I, /obj/item/weapon/screwdriver)) open = !open - user.visible_message("[user] [open ? "opens" : "closes"] the hatch on the [src].", "You [open ? "open" : "close"] the hatch on the [src].") + user.visible_message("[user] [open ? "opens" : "closes"] the hatch on \the [src].", "You [open ? "open" : "close"] the hatch on \the [src].") update_icon() if(!open && user.machine == src) user << browse(null, "window=spaceheater") @@ -103,7 +103,7 @@ else on = !on - user.visible_message("[user] switches [on ? "on" : "off"] the [src].","You switch [on ? "on" : "off"] the [src].") + user.visible_message("[user] switches [on ? "on" : "off"] \the [src].","You switch [on ? "on" : "off"] \the [src].") update_icon() return diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index 5bf69e5fcad..58d962377aa 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -431,7 +431,7 @@ user.last_special = world.time + CLICK_CD_BREAKOUT var/breakout_time = 2 user << "You start kicking against the doors to escape! (This will take about [breakout_time] minutes.)" - visible_message("You see [user] kicking against the doors of the [src]!") + visible_message("You see [user] kicking against the doors of \the [src]!") if(do_after(user,(breakout_time*60*10))) if(!user || user.stat != CONSCIOUS || user.loc != src || isopen || !islocked) return @@ -491,7 +491,7 @@ if(istype(I, /obj/item/weapon/crowbar) && !isopen) if(toggle_open(user)) dump_everything() - user << text("You pry the [src] open.") + user << text("You pry \the [src] open.") update_icon() return if(istype(I, /obj/item/weapon/screwdriver)) diff --git a/code/game/machinery/turrets.dm b/code/game/machinery/turrets.dm index eee59dd82b2..30e11d25386 100644 --- a/code/game/machinery/turrets.dm +++ b/code/game/machinery/turrets.dm @@ -354,12 +354,16 @@ var/atom/cur_target = null var/scan_range = 9 //You will never see them coming var/health = 200 //Because it lacks a cover, and is mostly to keep people from touching the syndie shuttle. + var/base_icon_state = "syndieturret" + var/projectile_type = /obj/item/projectile/bullet + var/fire_sound = 'sound/weapons/Gunshot.ogg' icon = 'icons/obj/turrets.dmi' icon_state = "syndieturret0" /obj/machinery/gun_turret/New() ..() take_damage(0) //check your health + icon_state = "[base_icon_state]" + "0" /obj/machinery/gun_turret/ex_act(severity, target) switch(severity) @@ -377,7 +381,7 @@ /obj/machinery/gun_turret/update_icon() if(state > 2 || state < 0) //someone fucked up the vars so fix them take_damage(0) - icon_state = "syndieturret" + "[state]" + icon_state = "[base_icon_state]" + "[state]" return @@ -479,8 +483,8 @@ return if (targloc == curloc) return - playsound(src, 'sound/weapons/Gunshot.ogg', 50, 1) - var/obj/item/projectile/A = new /obj/item/projectile/bullet(curloc) + playsound(src, fire_sound, 50, 1) + var/obj/item/projectile/A = new projectile_type(curloc) A.current = curloc A.yo = targloc.y - curloc.y A.xo = targloc.x - curloc.x diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 85c9856ad68..dbed600f9d3 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -767,7 +767,7 @@ products = list(/obj/item/weapon/reagent_containers/glass/bottle/antitoxin = 4,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline = 4, /obj/item/weapon/reagent_containers/glass/bottle/stoxin = 4,/obj/item/weapon/reagent_containers/glass/bottle/toxin = 4, /obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/syringe = 12,/obj/item/weapon/reagent_containers/hypospray/medipen = 5, - /obj/item/device/healthanalyzer = 5,/obj/item/weapon/reagent_containers/glass/beaker = 4, /obj/item/weapon/reagent_containers/dropper = 2) + /obj/item/device/healthanalyzer = 5,/obj/item/weapon/reagent_containers/glass/beaker = 4, /obj/item/weapon/reagent_containers/dropper = 2, /obj/item/device/sensor_device = 2) contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 3,/obj/item/weapon/reagent_containers/pill/stox = 4,/obj/item/weapon/reagent_containers/pill/antitox = 6) @@ -877,7 +877,8 @@ /obj/item/clothing/suit/wizrobe/fake = 1,/obj/item/clothing/head/wizard/fake = 1,/obj/item/weapon/staff = 3,/obj/item/clothing/mask/gas/sexyclown = 1, /obj/item/clothing/under/sexyclown = 1,/obj/item/clothing/mask/gas/sexymime = 1,/obj/item/clothing/under/sexymime = 1,/obj/item/clothing/suit/apron/overalls = 1, /obj/item/clothing/head/rabbitears =1, /obj/item/clothing/head/sombrero = 1, /obj/item/clothing/head/sombrero/green = 1, /obj/item/clothing/suit/poncho = 1, - /obj/item/clothing/suit/poncho/green = 1, /obj/item/clothing/suit/poncho/red = 1, /obj/item/clothing/tie/blue = 1, /obj/item/clothing/tie/red = 1, /obj/item/clothing/tie/black = 1, /obj/item/clothing/tie/horrible = 1) + /obj/item/clothing/suit/poncho/green = 1, /obj/item/clothing/suit/poncho/red = 1, /obj/item/clothing/tie/blue = 1, /obj/item/clothing/tie/red = 1, /obj/item/clothing/tie/black = 1, /obj/item/clothing/tie/horrible = 1, + /obj/item/clothing/under/maid = 1, /obj/item/clothing/under/janimaid = 1) contraband = list(/obj/item/clothing/suit/judgerobe = 1,/obj/item/clothing/head/powdered_wig = 1,/obj/item/weapon/gun/magic/wand = 1) premium = list(/obj/item/clothing/suit/hgpirate = 1, /obj/item/clothing/head/hgpiratecap = 1, /obj/item/clothing/head/helmet/roman = 1, /obj/item/clothing/head/helmet/roman/legionaire = 1, /obj/item/clothing/under/roman = 1, /obj/item/clothing/shoes/roman = 1, /obj/item/weapon/shield/riot/roman = 1) refill_canister = /obj/item/weapon/vending_refill/autodrobe @@ -916,8 +917,8 @@ //req_access_txt = "12" //Maintenance access products = list(/obj/item/stack/cable_coil/random = 10,/obj/item/weapon/crowbar = 5,/obj/item/weapon/weldingtool = 3,/obj/item/weapon/wirecutters = 5, /obj/item/weapon/wrench = 5,/obj/item/device/analyzer = 5,/obj/item/device/t_scanner = 5,/obj/item/weapon/screwdriver = 5) - contraband = list(/obj/item/weapon/weldingtool/hugetank = 2,/obj/item/clothing/gloves/fyellow = 2) - premium = list(/obj/item/clothing/gloves/yellow = 1) + contraband = list(/obj/item/weapon/weldingtool/hugetank = 2,/obj/item/clothing/gloves/color/fyellow = 2) + premium = list(/obj/item/clothing/gloves/color/yellow = 1) /obj/machinery/vending/engivend name = "\improper Engi-Vend" @@ -937,7 +938,7 @@ icon_deny = "engi-deny" req_access_txt = "11" products = list(/obj/item/clothing/under/rank/chief_engineer = 4,/obj/item/clothing/under/rank/engineer = 4,/obj/item/clothing/shoes/sneakers/orange = 4,/obj/item/clothing/head/hardhat = 4, - /obj/item/weapon/storage/belt/utility = 4,/obj/item/clothing/glasses/meson = 4,/obj/item/clothing/gloves/yellow = 4, /obj/item/weapon/screwdriver = 12, + /obj/item/weapon/storage/belt/utility = 4,/obj/item/clothing/glasses/meson = 4,/obj/item/clothing/gloves/color/yellow = 4, /obj/item/weapon/screwdriver = 12, /obj/item/weapon/crowbar = 12,/obj/item/weapon/wirecutters = 12,/obj/item/device/multitool = 12,/obj/item/weapon/wrench = 12,/obj/item/device/t_scanner = 12, /obj/item/weapon/stock_parts/cell = 8, /obj/item/weapon/weldingtool = 8,/obj/item/clothing/head/welding = 8, /obj/item/weapon/light/tube = 10,/obj/item/clothing/suit/fire = 4, /obj/item/weapon/stock_parts/scanning_module = 5,/obj/item/weapon/stock_parts/micro_laser = 5, @@ -970,10 +971,15 @@ /obj/item/clothing/under/pants/camo = 1,/obj/item/clothing/under/pants/blackjeans=2,/obj/item/clothing/under/pants/khaki=2, /obj/item/clothing/under/pants/white=2,/obj/item/clothing/under/pants/red=1,/obj/item/clothing/under/pants/black=2, /obj/item/clothing/under/pants/tan=2,/obj/item/clothing/under/pants/blue=1,/obj/item/clothing/under/pants/track=1, - /obj/item/clothing/tie/waistcoat=1,/obj/item/clothing/under/sundress=2,/obj/item/clothing/under/blacktango=1, - /obj/item/clothing/suit/jacket=3,/obj/item/clothing/glasses/regular=2,/obj/item/clothing/head/sombrero=1, - /obj/item/clothing/suit/poncho=1,/obj/item/clothing/suit/ianshirt=1,/obj/item/clothing/shoes/laceup=2, - /obj/item/clothing/shoes/sneakers/black=4,/obj/item/clothing/shoes/sandal=1) + /obj/item/clothing/tie/scarf/red=1,/obj/item/clothing/tie/scarf/green=1,/obj/item/clothing/tie/scarf/darkblue=1, + /obj/item/clothing/tie/scarf/purple=1,/obj/item/clothing/tie/scarf/yellow=1,/obj/item/clothing/tie/scarf/orange=1, + /obj/item/clothing/tie/scarf/lightblue=1,/obj/item/clothing/tie/scarf/white=1,/obj/item/clothing/tie/scarf/black=1, + /obj/item/clothing/tie/scarf/zebra=1,/obj/item/clothing/tie/scarf/christmas=1,/obj/item/clothing/tie/stripedredscarf=1, + /obj/item/clothing/tie/stripedbluescarf=1,/obj/item/clothing/tie/stripedgreenscarf=1,/obj/item/clothing/tie/waistcoat=1, + /obj/item/clothing/under/sundress=2,/obj/item/clothing/under/stripeddress = 1, /obj/item/clothing/under/sailordress = 1, /obj/item/clothing/under/redeveninggown = 1, /obj/item/clothing/under/blacktango=1,/obj/item/clothing/suit/jacket=3, + /obj/item/clothing/glasses/regular=2,/obj/item/clothing/head/sombrero=1,/obj/item/clothing/suit/poncho=1, + /obj/item/clothing/suit/ianshirt=1,/obj/item/clothing/shoes/laceup=2,/obj/item/clothing/shoes/sneakers/black=4, + /obj/item/clothing/shoes/sandal=1) contraband = list(/obj/item/clothing/under/syndicate/tacticool=1,/obj/item/clothing/mask/balaclava=1,/obj/item/clothing/head/ushanka=1,/obj/item/clothing/under/soviet=1) premium = list(/obj/item/clothing/under/suit_jacket/checkered=1,/obj/item/clothing/head/mailman=1,/obj/item/clothing/under/rank/mailman=1,/obj/item/clothing/suit/jacket/leather=1,/obj/item/clothing/under/pants/mustangjeans=1) refill_canister = /obj/item/weapon/vending_refill/clothing diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index 1a45add5d88..cc5b028658b 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -82,53 +82,43 @@ new_jumpsuit_item_state = J.item_state new_jumpsuit_name = J.name qdel(J) - //world << "DEBUG: YUP! [new_icon_state] and [new_item_state]" break qdel(J) - for(var/T in typesof(/obj/item/clothing/gloves)) - var/obj/item/clothing/gloves/G = new T - //world << "DEBUG: [wash_color] == [J.item_color]" + for(var/T in typesof(/obj/item/clothing/gloves/color)) + var/obj/item/clothing/gloves/color/G = new T if(wash_color == G.item_color) new_glove_icon_state = G.icon_state new_glove_item_state = G.item_state new_glove_name = G.name qdel(G) - //world << "DEBUG: YUP! [new_icon_state] and [new_item_state]" break qdel(G) for(var/T in typesof(/obj/item/clothing/shoes/sneakers)) var/obj/item/clothing/shoes/sneakers/S = new T - //world << "DEBUG: [wash_color] == [J.item_color]" if(wash_color == S.item_color) new_shoe_icon_state = S.icon_state new_shoe_name = S.name qdel(S) - //world << "DEBUG: YUP! [new_icon_state] and [new_item_state]" break qdel(S) for(var/T in typesof(/obj/item/weapon/bedsheet)) var/obj/item/weapon/bedsheet/B = new T - //world << "DEBUG: [wash_color] == [J.item_color]" if(wash_color == B.item_color) new_sheet_icon_state = B.icon_state new_sheet_name = B.name qdel(B) - //world << "DEBUG: YUP! [new_icon_state] and [new_item_state]" break qdel(B) for(var/T in typesof(/obj/item/clothing/head/soft)) var/obj/item/clothing/head/soft/H = new T - //world << "DEBUG: [wash_color] == [J.item_color]" if(wash_color == H.item_color) new_softcap_icon_state = H.icon_state new_softcap_name = H.name qdel(H) - //world << "DEBUG: YUP! [new_icon_state] and [new_item_state]" break qdel(H) if(new_jumpsuit_icon_state && new_jumpsuit_item_state && new_jumpsuit_name) for(var/obj/item/clothing/under/color/J in contents) - //world << "DEBUG: YUP! FOUND IT!" J.item_state = new_jumpsuit_item_state J.icon_state = new_jumpsuit_icon_state J.item_color = wash_color @@ -136,8 +126,7 @@ J.desc = new_desc J.suit_color = wash_color if(new_glove_icon_state && new_glove_item_state && new_glove_name) - for(var/obj/item/clothing/gloves/G in contents) - //world << "DEBUG: YUP! FOUND IT!" + for(var/obj/item/clothing/gloves/color/G in contents) G.item_state = new_glove_item_state G.icon_state = new_glove_icon_state G.item_color = wash_color @@ -145,7 +134,6 @@ G.desc = new_desc if(new_shoe_icon_state && new_shoe_name) for(var/obj/item/clothing/shoes/sneakers/S in contents) - //world << "DEBUG: YUP! FOUND IT!" if (S.chained == 1) S.chained = 0 S.slowdown = SHOES_SLOWDOWN @@ -156,14 +144,12 @@ S.desc = new_desc if(new_sheet_icon_state && new_sheet_name) for(var/obj/item/weapon/bedsheet/B in contents) - //world << "DEBUG: YUP! FOUND IT!" B.icon_state = new_sheet_icon_state B.item_color = wash_color B.name = new_sheet_name B.desc = new_desc if(new_softcap_icon_state && new_softcap_name) for(var/obj/item/clothing/head/soft/H in contents) - //world << "DEBUG: YUP! FOUND IT!" H.icon_state = new_softcap_icon_state H.item_color = wash_color H.name = new_softcap_name diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm index 3ebb4eb7c52..5208671d792 100644 --- a/code/game/mecha/equipment/tools/medical_tools.dm +++ b/code/game/mecha/equipment/tools/medical_tools.dm @@ -52,7 +52,7 @@ occupant_message("[target] will not fit into the sleeper because they have a slime latched onto their head.") return occupant_message("You start putting [target] into [src].") - chassis.visible_message("[chassis] starts putting [target] into the [src].") + chassis.visible_message("[chassis] starts putting [target] into \the [src].") var/C = chassis.loc var/T = target.loc if(do_after_cooldown(target)) diff --git a/code/game/mecha/equipment/tools/tools.dm b/code/game/mecha/equipment/tools/tools.dm index dc711bb3874..7105b6d5234 100644 --- a/code/game/mecha/equipment/tools/tools.dm +++ b/code/game/mecha/equipment/tools/tools.dm @@ -26,13 +26,14 @@ cargo_holder = null /obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp/action(atom/target) - if(!action_checks(target)) return - if(!cargo_holder) return + if(!action_checks(target)) + return + if(!cargo_holder) + return if(istype(target,/obj)) var/obj/O = target if(!O.anchored) if(cargo_holder.cargo.len < cargo_holder.cargo_capacity) - occupant_message("You lift [target] and start to load it into cargo compartment.") chassis.visible_message("[chassis] lifts [target] and starts to load it into cargo compartment.") set_ready_state(0) chassis.use_power(energy_drain) @@ -46,12 +47,12 @@ occupant_message("[target] successfully loaded.") log_message("Loaded [O]. Cargo compartment capacity: [cargo_holder.cargo_capacity - cargo_holder.cargo.len]") else - occupant_message("You must hold still while handling objects.") + occupant_message("You must hold still while handling objects.") O.anchored = initial(O.anchored) else - occupant_message("Not enough room in cargo compartment.") + occupant_message("Not enough room in cargo compartment.") else - occupant_message("[target] is firmly secured.") + occupant_message("[target] is firmly secured.") else if(istype(target,/mob/living)) var/mob/living/M = target @@ -62,8 +63,9 @@ return M.adjustOxyLoss(round(dam_force/2)) M.updatehealth() - occupant_message("You squeeze [target] with [src.name]. Something cracks.") - chassis.visible_message("[chassis] squeezes [target].") + target.visible_message("[chassis] squeezes [target].", \ + "[chassis] squeezes [target].",\ + "You hear something crack") add_logs(chassis.occupant, M, "attacked", object="[name]", addition="(INTENT: [uppertext(chassis.occupant.a_intent)]) (DAMTYE: [uppertext(damtype)])") else step_away(M,chassis) @@ -83,20 +85,28 @@ force = 15 /obj/item/mecha_parts/mecha_equipment/tool/drill/action(atom/target) - if(!action_checks(target)) return + if(!action_checks(target)) + return if(isobj(target)) var/obj/target_obj = target - if(!target_obj.vars.Find("unacidable") || target_obj.unacidable) return + if(target_obj.unacidable) + return set_ready_state(0) chassis.use_power(energy_drain) - chassis.visible_message("[chassis] starts to drill [target]", "You hear the drill.") - occupant_message("You start to drill [target]") + target.visible_message("[chassis] starts to drill [target]", \ + "[chassis] starts to drill [target]", \ + "You hear drilling.") var/T = chassis.loc var/C = target.loc //why are these backwards? we may never know -Pete if(do_after_cooldown(target)) if(T == chassis.loc && src == chassis.selected) if(istype(target, /turf/simulated/wall/r_wall)) - occupant_message("[target] is too durable to drill through.") + if(istype(src , /obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill)) + if(do_after_cooldown(target))//To slow down how fast mechs can drill through the station + log_message("Drilled through [target]") + target.ex_act(3) + else + occupant_message("[target] is too durable to drill through.") else if(istype(target, /turf/simulated/mineral)) for(var/turf/simulated/mineral/M in range(chassis,1)) if(get_dir(chassis,M)&chassis.dir) @@ -122,7 +132,10 @@ else if(target.loc == C) log_message("Drilled through [target]") if(isliving(target)) - drill_mob(target, chassis.occupant) + if(istype(src , /obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill)) + drill_mob(target, chassis.occupant, 120) + else + drill_mob(target, chassis.occupant) else target.ex_act(2) return 1 @@ -156,50 +169,6 @@ equip_cooldown = 20 force = 15 -/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill/action(atom/target) - if(!action_checks(target)) return - if(isobj(target)) - var/obj/target_obj = target - if(target_obj.unacidable) return - set_ready_state(0) - chassis.use_power(energy_drain) - chassis.visible_message("[chassis] starts to drill [target]", "You hear the drill.") - occupant_message("You start to drill [target]") - var/T = chassis.loc - var/C = target.loc //why are these backwards? we may never know -Pete - if(do_after_cooldown(target)) - if(T == chassis.loc && src == chassis.selected) - if(istype(target, /turf/simulated/wall/r_wall)) - if(do_after_cooldown(target))//To slow down how fast mechs can drill through the station - log_message("Drilled through [target]") - target.ex_act(3) - else if(istype(target, /turf/simulated/mineral)) - for(var/turf/simulated/mineral/M in range(chassis,1)) - if(get_dir(chassis,M)&chassis.dir) - M.gets_drilled() - log_message("Drilled through [target]") - if(locate(/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp) in chassis.equipment) - var/obj/structure/ore_box/ore_box = locate(/obj/structure/ore_box) in chassis:cargo - if(ore_box) - for(var/obj/item/weapon/ore/ore in range(chassis,1)) - if(get_dir(chassis,ore)&chassis.dir) - ore.Move(ore_box) - else if(istype(target,/turf/simulated/floor/plating/asteroid)) - for(var/turf/simulated/floor/plating/asteroid/M in range(target,1)) - M.gets_dug() - log_message("Drilled through [target]") - if(locate(/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp) in chassis.equipment) - var/obj/structure/ore_box/ore_box = locate(/obj/structure/ore_box) in chassis:cargo - if(ore_box) - for(var/obj/item/weapon/ore/ore in range(target,1)) - ore.Move(ore_box) - else if(target.loc == C) - log_message("Drilled through [target]") - if(isliving(target)) - drill_mob(target, chassis.occupant, 120) - else - target.ex_act(2) - return 1 /obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill/can_attach(obj/mecha/M as obj) if(..()) @@ -756,7 +725,6 @@ if(!action_checks(src)) return chassis.dynbulletdamage(Proj) if(prob(chassis.deflect_chance*deflect_coeff)) - chassis.occupant_message("The armor deflects incoming projectile.") chassis.visible_message("The [chassis.name] armor deflects the projectile") chassis.log_append_to_last("Armor saved.") else @@ -772,7 +740,6 @@ if(!action_checks(A)) return chassis.dynhitby(A) if(prob(chassis.deflect_chance*deflect_coeff) || istype(A, /mob/living) || istype(A, /obj/item/mecha_parts/mecha_tracking)) - chassis.occupant_message("The [A] bounces off the armor.") chassis.visible_message("The [A] bounces off the [chassis] armor") chassis.log_append_to_last("Armor saved.") if(istype(A, /mob/living)) @@ -1206,7 +1173,6 @@ var/obj/O = target if(!O.anchored) if(cargo_holder.cargo.len < cargo_holder.cargo_capacity) - chassis.occupant_message("You lift [target] and start to load it into cargo compartment.") chassis.visible_message("[chassis] lifts [target] and starts to load it into cargo compartment.") set_ready_state(0) chassis.use_power(energy_drain) @@ -1220,26 +1186,25 @@ chassis.occupant_message("[target] successfully loaded.") chassis.log_message("Loaded [O]. Cargo compartment capacity: [cargo_holder.cargo_capacity - cargo_holder.cargo.len]") else - chassis.occupant_message("You must hold still while handling objects.") + chassis.occupant_message("You must hold still while handling objects.") O.anchored = initial(O.anchored) else - chassis.occupant_message("Not enough room in cargo compartment.") + chassis.occupant_message("Not enough room in cargo compartment.") else - chassis.occupant_message("[target] is firmly secured.") + chassis.occupant_message("[target] is firmly secured.") else if(istype(target,/mob/living)) var/mob/living/M = target if(M.stat>1) return if(chassis.occupant.a_intent == "harm") - chassis.occupant_message("You obliterate [target] with [src.name], leaving blood and guts everywhere.") - chassis.visible_message("[chassis] destroys [target] in an unholy fury.") + target.visible_message("[chassis] destroys [target] in an unholy fury.", \ + "[chassis] destroys [target] in an unholy fury.") if(chassis.occupant.a_intent == "disarm") - chassis.occupant_message("You tear [target]'s limbs off with [src.name].") - chassis.visible_message("[chassis] rips [target]'s arms off.") + target.visible_message("[chassis] rips [target]'s arms off.", \ + "[chassis] rips [target]'s arms off.") else step_away(M,chassis) - chassis.occupant_message("You smash into [target], sending them flying.") - chassis.visible_message("[chassis] tosses [target] like a piece of paper.") + target.visible_message("[chassis] tosses [target] like a piece of paper.") set_ready_state(0) chassis.use_power(energy_drain) do_after_cooldown() diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 6bd0982060b..757cf90e8da 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -320,7 +320,6 @@ obj/mecha/proc/can_use(mob/user) playsound(src, 'sound/items/Welder.ogg', 50, 1) else return - M.occupant_message("You hit [src].") visible_message("[M.name] has hit [src].") take_damage(M.force, damtype) add_logs(M.occupant, src, "attacked", object=M, addition="(INTENT: [uppertext(M.occupant.a_intent)]) (DAMTYPE: [uppertext(M.damtype)])") @@ -475,6 +474,7 @@ obj/mecha/proc/can_use(mob/user) var/damage = absorbDamage(amount,type) health -= damage update_health() + occupant_message("Taking damage!") log_append_to_last("Took [damage] points of damage. Damage type: \"[type]\".",1) /obj/mecha/proc/absorbDamage(damage,damage_type) @@ -499,7 +499,6 @@ obj/mecha/proc/can_use(mob/user) src.take_damage(15) src.check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST)) user.visible_message("[user] hits [src.name], doing some damage.", "You hit [src.name] with all your might. The metal creaks and bends.") - src.occupant_message("[user] hits [src.name], doing some damage.") else user.visible_message("[user] hits [src.name]. Nothing happens","You hit [src.name] with no visible effect.") src.log_append_to_last("Armor saved.") @@ -517,14 +516,11 @@ obj/mecha/proc/can_use(mob/user) src.take_damage(15) src.check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST)) playsound(src.loc, 'sound/weapons/slash.ogg', 50, 1, -1) - user << "You slash at the armored suit!" visible_message("The [user] slashes at [src.name]'s armor!") - src.occupant_message("The [user] slashes at [src.name]'s armor!") else src.log_append_to_last("Armor saved.") playsound(src.loc, 'sound/weapons/slash.ogg', 50, 1, -1) user << "\green Your claws had no effect!" - src.occupant_message("The [user]'s claws are stopped by the armor.") visible_message("The [user] rebounds off [src.name]'s armor!") return @@ -541,12 +537,10 @@ obj/mecha/proc/can_use(mob/user) src.take_damage(damage) src.check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST)) visible_message("[user] [user.attacktext] [src]!") - src.occupant_message("[user] [user.attacktext] [src]!") add_logs(user, src, "attacked", admin=0) else src.log_append_to_last("Armor saved.") playsound(src.loc, 'sound/weapons/slash.ogg', 50, 1, -1) - src.occupant_message("[user]'s attack is stopped by the armor.") visible_message("The [user] rebounds off [src.name]'s armor!") add_logs(user, src, "attacked", admin=0) return @@ -565,7 +559,6 @@ obj/mecha/proc/can_use(mob/user) src.visible_message("The [A] fastens firmly to [src].") return if(prob(src.deflect_chance) || istype(A, /mob)) - src.occupant_message("[A] bounces off the armor.") src.visible_message("[A] bounces off the [src.name] armor") src.log_append_to_last("Armor saved.") if(istype(A, /mob/living)) @@ -574,7 +567,6 @@ obj/mecha/proc/can_use(mob/user) else if(istype(A, /obj)) var/obj/O = A if(O.throwforce) - src.occupant_message("[src.name] is hit by [A].") src.visible_message("[src.name] is hit by [A].") src.take_damage(O.throwforce) src.check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST)) @@ -589,7 +581,6 @@ obj/mecha/proc/can_use(mob/user) /obj/mecha/proc/dynbulletdamage(var/obj/item/projectile/Proj) if(prob(src.deflect_chance)) - src.occupant_message("The armor deflects incoming projectile.") src.visible_message("The [src.name] armor deflects the projectile") src.log_append_to_last("Armor saved.") return @@ -601,7 +592,6 @@ obj/mecha/proc/can_use(mob/user) ignore_threshold = 1 if((Proj.damage_type == BRUTE || Proj.damage_type == BURN)) src.take_damage(Proj.damage,Proj.flag) - src.occupant_message("[src.name] is hit by [Proj]!") src.visible_message("[src.name] is hit by [Proj].") src.check_for_internal_damage(list(MECHA_INT_FIRE,MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST,MECHA_INT_SHORT_CIRCUIT),ignore_threshold) Proj.on_hit(src) @@ -677,14 +667,8 @@ obj/mecha/proc/can_use(mob/user) if(prob(src.deflect_chance)) user << "The [W] bounces off [src.name] armor." src.log_append_to_last("Armor saved.") -/* - for (var/mob/V in viewers(src)) - if(V.client && !(V.blinded)) - V.show_message("The [W] bounces off [src.name] armor.", 1) -*/ return 0 else - src.occupant_message("[user] hits [src] with [W].") user.visible_message("[user] hits [src] with [W].", "You hit [src] with [W].") src.take_damage(W.force,W.damtype) src.check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST)) diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index 5ff59260334..7ee61a9d6ec 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -346,11 +346,11 @@ //10 list("key"=/obj/item/weapon/stock_parts/scanning_module/adv, "backkey"=/obj/item/weapon/screwdriver, - "desc"="Scanning module is secured."), + "desc"="Weapon control module is secured."), //11 list("key"=/obj/item/weapon/screwdriver, "backkey"=/obj/item/weapon/crowbar, - "desc"="Scanning module is installed."), + "desc"="Weapon control module is installed."), //12 list("key"=/obj/item/weapon/circuitboard/mecha/gygax/targeting, "backkey"=/obj/item/weapon/screwdriver, @@ -924,11 +924,11 @@ //10 list("key"=/obj/item/weapon/stock_parts/scanning_module/phasic, "backkey"=/obj/item/weapon/screwdriver, - "desc"="Scanning module is secured."), + "desc"="Weapon control module is secured."), //11 list("key"=/obj/item/weapon/screwdriver, "backkey"=/obj/item/weapon/crowbar, - "desc"="Scanning module is installed."), + "desc"="Weapon control module is installed."), //12 list("key"=/obj/item/weapon/circuitboard/mecha/durand/targeting, "backkey"=/obj/item/weapon/screwdriver, @@ -1218,11 +1218,11 @@ //13 list("key"=/obj/item/weapon/stock_parts/scanning_module/phasic, "backkey"=/obj/item/weapon/screwdriver, - "desc"="Scanning module is secured."), + "desc"="Weapon control module is secured."), //14 list("key"=/obj/item/weapon/screwdriver, "backkey"=/obj/item/weapon/crowbar, - "desc"="Scanning module is installed."), + "desc"="Weapon control is installed."), //15 list("key"=/obj/item/weapon/circuitboard/mecha/phazon/targeting, "backkey"=/obj/item/weapon/screwdriver, diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index 73b14346a40..4c21191bc6f 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -26,7 +26,7 @@ /obj/item/weapon/gun/projectile/automatic/pistol = 8, /obj/item/weapon/gun/projectile/shotgun/combat = 5, /obj/item/weapon/gun/projectile/revolver/mateba, - /obj/item/weapon/gun/projectile/automatic/deagle + /obj/item/weapon/gun/projectile/automatic/pistol/deagle ) /obj/effect/spawner/lootdrop/maintenance @@ -61,7 +61,7 @@ /obj/item/bodybag = 1, /obj/item/clothing/glasses/meson = 2, /obj/item/clothing/glasses/sunglasses = 1, - /obj/item/clothing/gloves/white{color = "yellow"; desc = "The colors are a bit dodgy."; icon_state = "yellow"; item_color = "yellow"; item_state = "ygloves"; name = "insulated gloves"} = 1, + /obj/item/clothing/gloves/color/white{color = "yellow"; desc = "The colors are a bit dodgy."; icon_state = "yellow"; item_color = "yellow"; item_state = "ygloves"; name = "insulated gloves"} = 1, /obj/item/clothing/head/hardhat = 1, /obj/item/clothing/head/hardhat/red = 1, /obj/item/clothing/head/that{throwforce = 1; throwing = 1} = 1, diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index d7102b10cf4..cf8854b4bcd 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -212,7 +212,7 @@ user.changeNext_move(CLICK_CD_BREAKOUT) user.last_special = world.time + CLICK_CD_BREAKOUT user << "You struggle against the tight bonds! (This will take about [breakout_time] minutes.)" - visible_message("You see something struggling and writhing in the [src]!") + visible_message("You see something struggling and writhing in \the [src]!") if(do_after(user,(breakout_time*60*10))) if(!user || user.stat != CONSCIOUS || user.loc != src) return diff --git a/code/game/objects/effects/step_triggers.dm b/code/game/objects/effects/step_triggers.dm index 96d2f3ff66d..f6369e0c1af 100644 --- a/code/game/objects/effects/step_triggers.dm +++ b/code/game/objects/effects/step_triggers.dm @@ -3,6 +3,7 @@ /obj/effect/step_trigger var/affect_ghosts = 0 var/stopper = 1 // stops throwers + var/mobs_only = 0 invisibility = 101 // nope cant see this shit anchored = 1 @@ -15,10 +16,11 @@ return if(istype(H, /mob/dead/observer) && !affect_ghosts) return + if(!istype(H, /mob) && mobs_only) + return Trigger(H) - /* Tosses things in a certain direction */ /obj/effect/step_trigger/thrower @@ -114,3 +116,30 @@ A.x = rand(teleport_x, teleport_x_offset) A.y = rand(teleport_y, teleport_y_offset) A.z = rand(teleport_z, teleport_z_offset) + + +/* Simple sound player, Mapper friendly! */ + +/obj/effect/step_trigger/sound_effect + var/sound //eg. path to the sound, inside '' eg: 'growl.ogg' + var/volume = 100 + var/freq_vary = 1 //Should the frequency of the sound vary? + var/extra_range = 0 // eg World.view = 7, extra_range = 1, 7+1 = 8, 8 turfs radius + var/happens_once = 0 + var/triggerer_only = 0 //Whether the triggerer is the only person who hears this + + +/obj/effect/step_trigger/sound_effect/Trigger(var/atom/movable/A) + var/turf/T = get_turf(A) + + if(!T) + return + + if(triggerer_only) + A.playsound_local(T, sound, volume, freq_vary) + else + playsound(T, sound, volume, freq_vary, extra_range) + + if(happens_once) + qdel(src) + diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index df3c30675bd..82cf59a988e 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -119,7 +119,7 @@ if (istype(src.loc, /obj/item/weapon/storage)) //If the item is in a storage item, take it out var/obj/item/weapon/storage/S = src.loc - S.remove_from_storage(src) + S.remove_from_storage(src, user.loc) src.throwing = 0 if (loc == user) diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm index d10eec6fed3..4ba21eaa553 100644 --- a/code/game/objects/items/blueprints.dm +++ b/code/game/objects/items/blueprints.dm @@ -57,7 +57,7 @@ . = ..() var/area/A = get_area() if(get_area_type() == AREA_STATION) - . += "

According to the [src], you are now in \"[strip_html_properly(A.name)]\".

" + . += "

According to \the [src], you are now in \"[strip_html_properly(A.name)]\".

" var/datum/browser/popup = new(user, "blueprints", "[src]", 700, 500) popup.set_content(.) popup.open() @@ -82,7 +82,7 @@ . = ..() var/area/A = get_area() if(get_area_type() == AREA_STATION) - . += "

According to the [src], you are now in \"[strip_html_properly(A.name)]\".

" + . += "

According to \the [src], you are now in \"[strip_html_properly(A.name)]\".

" . += "

You may move an amendment to the drawing.

" var/datum/browser/popup = new(user, "blueprints", "[src]", 700, 500) popup.set_content(.) diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index ab970a7db47..296b2a2d6dd 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -161,6 +161,7 @@ var/global/list/obj/item/device/pda/PDAs = list() /obj/item/device/pda/librarian icon_state = "pda-library" + default_cartridge = /obj/item/weapon/cartridge/librarian desc = "A portable microcomputer by Thinktronic Systems, LTD. This is model is a WGW-11 series e-reader." note = "Congratulations, your station has chosen the Thinktronic 5290 WGW-11 Series E-reader and Personal Data Assistant!" silent = 1 //Quiet in the library! @@ -170,8 +171,8 @@ var/global/list/obj/item/device/pda/PDAs = list() desc = "A portable microcomputer by Thinktronic Systems, LTD. This is model is a special edition with a transparent case." note = "Congratulations, you have chosen the Thinktronic 5230 Personal Data Assistant Deluxe Special Max Turbo Limited Edition!" -/obj/item/device/pda/chef - icon_state = "pda-chef" +/obj/item/device/pda/cook + icon_state = "pda-cook" /obj/item/device/pda/bar icon_state = "pda-bartender" @@ -343,6 +344,8 @@ var/global/list/obj/item/device/pda/PDAs = list() dat += "
  • Cleanbot Access
  • " if (istype(cartridge.radio, /obj/item/radio/integrated/signal)) dat += "
  • Signaler System
  • " + if (cartridge.access_newscaster) + dat += "
  • Newscaster Access
  • " if (cartridge.access_reagent_scanner) dat += "
  • [scanmode == 3 ? "Disable" : "Enable"] Reagent Scanner
  • " if (cartridge.access_engine) diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm index e42c3cf453a..c38f0e68912 100644 --- a/code/game/objects/items/devices/PDA/cart.dm +++ b/code/game/objects/items/devices/PDA/cart.dm @@ -17,6 +17,7 @@ var/access_janitor = 0 // var/access_flora = 0 var/access_reagent_scanner = 0 + var/access_newscaster = 0 var/access_remote_door = 0 //Control some blast doors remotely!! var/remote_door_id = "" var/access_status_display = 0 @@ -32,6 +33,7 @@ var/message1 // used for status_displays var/message2 var/list/stored_data = list() + var/current_channel /obj/item/weapon/cartridge/engineering name = "\improper Power-ON cartridge" @@ -115,6 +117,12 @@ icon_state = "cart-mi" access_mime = 1 var/mime_charges = 5 + +/obj/item/weapon/cartridge/librarian + name = "\improper Lib-Tweet cartridge" + icon_state = "cart-s" + access_newscaster = 1 + /* /obj/item/weapon/cartridge/botanist name = "\improper Green Thumb v4.20 cartridge" @@ -700,6 +708,20 @@ Code: var/obj/item/radio/integrated/medbot/SC = radio bot_control(SC) + if (53) // Newscaster + menu = "

    Newscaster Access

    " + menu += "
    Current Newsfeed: [current_channel ? current_channel : "None"]
    " + var/datum/feed_channel/current + for(var/datum/feed_channel/chan in news_network.network_channels) + if (chan.channel_name == current_channel) + current = chan + if(!current) + menu += "
    ERROR : NO CHANNEL FOUND
    " + return + for(var/datum/feed_message/msg in current.messages) + menu +="-[msg.body]
    \[Story by [msg.author]\]
    " + menu += "
    Post Message" + /obj/item/weapon/cartridge/Topic(href, href_list) ..() @@ -762,5 +784,32 @@ Code: loc:mode = 433 mode = 433 + if("Newscaster Access") + mode = 53 + + if("Newscaster Message") + var/obj/item/device/pda/pda = loc + var/pda_owner_name = pda.id ? "[pda.id.registered_name] ([pda.id.assignment])" : "Unknown" + var/message = pda.msg_input() + var/datum/feed_channel/current + for(var/datum/feed_channel/chan in news_network.network_channels) + if (chan.channel_name == current_channel) + current = chan + if(current.locked && current.author != pda_owner_name) + pda.cart += "
    ERROR : NOT AUTHORIZED [pda.id ? "" : "- ID SLOT EMPTY"]
    " + pda.Topic(null,list("choice"="Refresh")) + return + news_network.SubmitArticle(message,pda.owner,current_channel) + pda.Topic(null,list("choice"=num2text(mode))) + return + + if("Newscaster Switch Channel") + var/obj/item/device/pda/pda = loc + current_channel = pda.msg_input() + pda.Topic(null,list("choice"=num2text(mode))) + return + + + generate_menu() print_to_host(menu) diff --git a/code/game/objects/items/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm index 94c273e62e3..40a78956230 100644 --- a/code/game/objects/items/devices/aicard.dm +++ b/code/game/objects/items/devices/aicard.dm @@ -1,5 +1,5 @@ /obj/item/device/aicard - name = "inteliCard" + name = "intelliCard" desc = "A storage device for AIs. Patent pending." icon = 'icons/obj/aicards.dmi' icon_state = "aicard" // aicard-full @@ -23,7 +23,7 @@ if (!in_range(src, user)) return user.set_machine(src) - var/dat = "Intelicard
    " + var/dat = "Intellicard
    " var/laws for(var/mob/living/silicon/ai/A in src) dat += "Stored AI: [A.name]
    System integrity: [(A.health+100)/2]%
    " @@ -107,7 +107,7 @@ if ("Wireless") for(var/mob/living/silicon/ai/A in src) A.control_disabled = !A.control_disabled - A << "The intelicard's wireless port has been [A.control_disabled ? "disabled" : "enabled"]!" + A << "The intellicard's wireless port has been [A.control_disabled ? "disabled" : "enabled"]!" if (A.control_disabled) overlays -= image('icons/obj/aicards.dmi', "aicard-on") else diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm index 9b141cacdc3..2ed698dd029 100644 --- a/code/game/objects/items/devices/chameleonproj.dm +++ b/code/game/objects/items/devices/chameleonproj.dm @@ -45,7 +45,7 @@ playsound(get_turf(src), 'sound/effects/pop.ogg', 100, 1, -6) qdel(active_dummy) active_dummy = null - usr << "You deactivate the [src]." + usr << "You deactivate \the [src]." var/obj/effect/overlay/T = new/obj/effect/overlay(get_turf(src)) T.icon = 'icons/effects/effects.dmi' flick("emppulse",T) @@ -57,7 +57,7 @@ var/obj/effect/dummy/chameleon/C = new/obj/effect/dummy/chameleon(usr.loc) C.activate(O, usr, saved_icon, saved_icon_state, saved_overlays, saved_underlays, src) qdel(O) - usr << "You activate the [src]." + usr << "You activate \the [src]." var/obj/effect/overlay/T = new/obj/effect/overlay(get_turf(src)) T.icon = 'icons/effects/effects.dmi' flick("emppulse",T) diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm index 5735a6af412..71959e986ae 100644 --- a/code/game/objects/items/devices/flash.dm +++ b/code/game/objects/items/devices/flash.dm @@ -2,7 +2,7 @@ name = "flash" desc = "A powerful and versatile flashbulb device, with applications ranging from disorienting attackers to acting as visual receptors in robot production." icon_state = "flash" - item_state = "flashbang" //looks exactly like a flash (and nothing like a flashbang) + item_state = "flashtool" throwforce = 0 w_class = 1 throw_speed = 3 diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index bea19e11fbe..587837fab45 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -212,7 +212,7 @@ obj/item/device/flashlight/lamp/bananalamp . = ..() // All good, turn it on. if(.) - user.visible_message("[user] lights the [src].", "You light the [src]!") + user.visible_message("[user] lights \the [src].", "You light \the [src]!") force = on_damage damtype = "fire" processing_objects += src diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm index 4e0804e76cf..27e4dd6631a 100644 --- a/code/game/objects/items/devices/laserpointer.dm +++ b/code/game/objects/items/devices/laserpointer.dm @@ -57,7 +57,7 @@ else if(istype(W, /obj/item/weapon/screwdriver)) if(diode) - user << "You remove the [diode.name] from the [src]." + user << "You remove the [diode.name] from \the [src]." diode.loc = get_turf(src.loc) diode = null return diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index 4adb60e3655..dbb1d9a4b29 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -137,7 +137,7 @@ if(target.status != LIGHT_OK) if(CanUse(U)) if(!Use(U)) return - U << "You replace the [target.fitting] with the [src]." + U << "You replace the [target.fitting] with \the [src]." if(target.status != LIGHT_EMPTY) diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm index 4c41d33541d..4ff44ecbb84 100644 --- a/code/game/objects/items/devices/radio/encryptionkey.dm +++ b/code/game/objects/items/devices/radio/encryptionkey.dm @@ -22,6 +22,8 @@ syndie = 1//Signifies that it de-crypts Syndicate transmissions /obj/item/device/encryptionkey/binary + name = "binary translator key" + desc = "An encryption key for a radio headset. To access the binary channel, use :b." icon_state = "cypherkey" translate_binary = 1 origin_tech = "syndicate=3" diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 432e6f4bc3d..6cf2b1b36ac 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -14,7 +14,6 @@ /obj/item/device/radio/headset/New() ..() - keyslot = new /obj/item/device/encryptionkey/ recalculateChannels() /obj/item/device/radio/headset/Destroy() @@ -66,7 +65,7 @@ desc = "This is used by your elite security force. \nTo access the security channel, use :s." icon_state = "sec_headset" item_state = "headset" - keyslot2 = new /obj/item/device/encryptionkey/headset_sec + keyslot = new /obj/item/device/encryptionkey/headset_sec /obj/item/device/radio/headset/headset_sec/alt name = "security bowman headset" @@ -80,49 +79,49 @@ desc = "When the engineers wish to chat like girls. \nTo access the engineering channel, use :e. " icon_state = "eng_headset" item_state = "headset" - keyslot2 = new /obj/item/device/encryptionkey/headset_eng + keyslot = new /obj/item/device/encryptionkey/headset_eng /obj/item/device/radio/headset/headset_rob name = "robotics radio headset" desc = "Made specifically for the roboticists, who cannot decide between departments. \nTo access the engineering channel, use :e. For research, use :n." icon_state = "rob_headset" item_state = "headset" - keyslot2 = new /obj/item/device/encryptionkey/headset_rob + keyslot = new /obj/item/device/encryptionkey/headset_rob /obj/item/device/radio/headset/headset_med name = "medical radio headset" desc = "A headset for the trained staff of the medbay. \nTo access the medical channel, use :m." icon_state = "med_headset" item_state = "headset" - keyslot2 = new /obj/item/device/encryptionkey/headset_med + keyslot = new /obj/item/device/encryptionkey/headset_med /obj/item/device/radio/headset/headset_sci name = "science radio headset" desc = "A sciency headset. Like usual. \nTo access the science channel, use :n." icon_state = "sci_headset" item_state = "headset" - keyslot2 = new /obj/item/device/encryptionkey/headset_sci + keyslot = new /obj/item/device/encryptionkey/headset_sci /obj/item/device/radio/headset/headset_medsci name = "medical research radio headset" desc = "A headset that is a result of the mating between medical and science. \nTo access the medical channel, use :m. For science, use :n." icon_state = "medsci_headset" item_state = "headset" - keyslot2 = new /obj/item/device/encryptionkey/headset_medsci + keyslot = new /obj/item/device/encryptionkey/headset_medsci /obj/item/device/radio/headset/headset_com name = "command radio headset" desc = "A headset with a commanding channel. \nTo access the command channel, use :c." icon_state = "com_headset" item_state = "headset" - keyslot2 = new /obj/item/device/encryptionkey/headset_com + keyslot = new /obj/item/device/encryptionkey/headset_com /obj/item/device/radio/headset/heads/captain name = "\proper the captain's headset" desc = "The headset of the king. \nChannels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :v - service, :m - medical, :n - science." icon_state = "com_headset" item_state = "headset" - keyslot2 = new /obj/item/device/encryptionkey/heads/captain + keyslot = new /obj/item/device/encryptionkey/heads/captain /obj/item/device/radio/headset/heads/captain/alt name = "\proper the captain's bowman headset" @@ -136,14 +135,14 @@ desc = "Headset of the fellow who keeps society marching towards technological singularity. \nTo access the science channel, use :n. For command, use :c." icon_state = "com_headset" item_state = "headset" - keyslot2 = new /obj/item/device/encryptionkey/heads/rd + keyslot = new /obj/item/device/encryptionkey/heads/rd /obj/item/device/radio/headset/heads/hos name = "\proper the head of security's headset" desc = "The headset of the man in charge of keeping order and protecting the station. \nTo access the security channel, use :s. For command, use :c." icon_state = "com_headset" item_state = "headset" - keyslot2 = new /obj/item/device/encryptionkey/heads/hos + keyslot = new /obj/item/device/encryptionkey/heads/hos /obj/item/device/radio/headset/heads/hos/alt name = "\proper the head of security's bowman headset" @@ -157,46 +156,46 @@ desc = "The headset of the guy in charge of keeping the station powered and undamaged. \nTo access the engineering channel, use :e. For command, use :c." icon_state = "com_headset" item_state = "headset" - keyslot2 = new /obj/item/device/encryptionkey/heads/ce + keyslot = new /obj/item/device/encryptionkey/heads/ce /obj/item/device/radio/headset/heads/cmo name = "\proper the chief medical officer's headset" desc = "The headset of the highly trained medical chief. \nTo access the medical channel, use :m. For command, use :c." icon_state = "com_headset" item_state = "headset" - keyslot2 = new /obj/item/device/encryptionkey/heads/cmo + keyslot = new /obj/item/device/encryptionkey/heads/cmo /obj/item/device/radio/headset/heads/hop name = "\proper the head of personnel's headset" desc = "The headset of the guy who will one day be captain. \nChannels are as follows: :u - supply, :v - service, :c - command." icon_state = "com_headset" item_state = "headset" - keyslot2 = new /obj/item/device/encryptionkey/heads/hop + keyslot = new /obj/item/device/encryptionkey/heads/hop /obj/item/device/radio/headset/headset_cargo name = "supply radio headset" desc = "A headset used by the QM and his slaves. \nTo access the supply channel, use :u." icon_state = "cargo_headset" item_state = "headset" - keyslot2 = new /obj/item/device/encryptionkey/headset_cargo + keyslot = new /obj/item/device/encryptionkey/headset_cargo /obj/item/device/radio/headset/headset_srv name = "service radio headset" desc = "Headset used by the service staff, tasked with keeping the station full, happy and clean. \nTo access the service channel, use :v." icon_state = "srv_headset" item_state = "headset" - keyslot2 = new /obj/item/device/encryptionkey/headset_service + keyslot = new /obj/item/device/encryptionkey/headset_service /obj/item/device/radio/headset/headset_cent name = "\improper Centcom headset" desc = "A headset used by the upper echelons of Nanotrasen. \nChannels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :v - service, :m - medical, :n - science." icon_state = "cent_headset" item_state = "headset" - keyslot2 = new /obj/item/device/encryptionkey/heads/captain + keyslot = new /obj/item/device/encryptionkey/heads/captain /obj/item/device/radio/headset/ai name = "\proper Integrated Subspace Transceiver " - keyslot2 = new /obj/item/device/encryptionkey/ai + keyslot = new /obj/item/device/encryptionkey/ai /obj/item/device/radio/headset/ai/receive_range(freq, level) return ..(freq, level, 1) @@ -234,7 +233,7 @@ user << "You pop out the encryption keys in the headset!" else - user << "This headset doesn't have any encryption keys! How useless..." + user << "This headset doesn't have any unique encryption keys! How useless..." if(istype(W, /obj/item/device/encryptionkey/)) if(keyslot && keyslot2) @@ -277,15 +276,6 @@ for(var/ch_name in channels) - //this is the most hilarious piece of code i have seen this week, so im not going to remove it - /* - if(!radio_controller) - sleep(30) // Waiting for the radio_controller to be created. - if(!radio_controller) - src.name = "broken radio headset" - return - */ - secure_radio_connections[ch_name] = add_radio(src, radiochannels[ch_name]) return diff --git a/code/game/objects/items/devices/sensor_device.dm b/code/game/objects/items/devices/sensor_device.dm new file mode 100644 index 00000000000..2bcddf5de79 --- /dev/null +++ b/code/game/objects/items/devices/sensor_device.dm @@ -0,0 +1,11 @@ +/obj/item/device/sensor_device + name = "handheld crew monitor" //Thanks to Gun Hog for the name! + desc = "A miniature machine that tracks suit sensors across the station." + icon = 'icons/obj/device.dmi' + icon_state = "scanner" + w_class = 2.0 + slot_flags = SLOT_BELT + origin_tech = "programming=3;materials=3;magnets=3" + +/obj/item/device/sensor_device/attack_self(mob/user as mob) + crewmonitor(user,src) //Proc already exists, just had to call it diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm index 64951705275..00ea33f28ef 100644 --- a/code/game/objects/items/devices/transfer_valve.dm +++ b/code/game/objects/items/devices/transfer_valve.dm @@ -10,8 +10,6 @@ var/valve_open = 0 var/toggle = 1 -/obj/item/device/transfer_valve/proc/process_activation(var/obj/item/device/D) - /obj/item/device/transfer_valve/IsAssemblyHolder() return 1 @@ -44,7 +42,7 @@ user << "The device is secured." return if(attached_device) - user << "There is already an device attached to the valve, remove it first." + user << "There is already a device attached to the valve, remove it first." return user.remove_from_mob(item) attached_device = A @@ -114,7 +112,7 @@ return return -/obj/item/device/transfer_valve/process_activation(var/obj/item/device/D) +/obj/item/device/transfer_valve/proc/process_activation(var/obj/item/device/D) if(toggle) toggle = 0 toggle_valve() diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index a3fb7b85c82..10adc58768c 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -113,7 +113,7 @@ usr << "There's no mounting point for the module!" return 0 - var/obj/item/weapon/gun/energy/taser/cyborg/T = locate() in R.module + var/obj/item/weapon/gun/energy/gun/advtaser/cyborg/T = locate() in R.module if(!T) T = locate() in R.module.contents if(!T) diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 9b91799d00e..7fd57e7f9cb 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -67,7 +67,7 @@ /obj/item/toy/balloon/throw_impact(atom/hit_atom) if(src.reagents.total_volume >= 1) - src.visible_message("The [src] bursts!","You hear a pop and a splash.") + src.visible_message("\The [src] bursts!","You hear a pop and a splash.") src.reagents.reaction(get_turf(hit_atom)) for(var/atom/A in get_turf(hit_atom)) src.reagents.reaction(A) @@ -166,17 +166,17 @@ " You hear a gunshot.") /obj/item/toy/ammo/gun - name = "ammo-caps" + name = "capgun ammo" desc = "Make sure to recyle the box in an autolathe when it gets empty." icon = 'icons/obj/ammo.dmi' - icon_state = "357-7" + icon_state = "357OLD-7" w_class = 1.0 g_amt = 10 m_amt = 10 var/amount_left = 7.0 /obj/item/toy/ammo/gun/update_icon() - src.icon_state = text("357-[]", src.amount_left) + src.icon_state = text("357OLD-[]", src.amount_left) /obj/item/toy/ammo/gun/examine(mob/user) ..() @@ -735,7 +735,7 @@ obj/item/toy/cards/deck/attack_hand(mob/user as mob) src.cards -= choice H.pickup(user) user.put_in_active_hand(H) - src.visible_message("[user] draws a card from the deck.", "You draw a card from the deck.") + user.visible_message("[user] draws a card from the deck.", "You draw a card from the deck.") if(cards.len > 26) src.icon_state = "deck_[deckstyle]_full" else if(cards.len > 10) diff --git a/code/game/objects/items/weapons/RPD.dm b/code/game/objects/items/weapons/RPD.dm new file mode 100644 index 00000000000..799f1e823ae --- /dev/null +++ b/code/game/objects/items/weapons/RPD.dm @@ -0,0 +1,553 @@ +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + +/* +CONTAINS: +RPD +*/ +#define PIPE_BINARY 0 +#define PIPE_BENT 1 +#define PIPE_TRINARY 2 +#define PIPE_TRIN_M 3 +#define PIPE_UNARY 4 + +#define PAINT_MODE -2 +#define EATING_MODE -1 +#define ATMOS_MODE 0 +#define METER_MODE 1 +#define DISPOSALS_MODE 2 + +/datum/pipe_info + var/id=-1 + var/dir=SOUTH + var/dirtype=PIPE_BINARY + var/icon = 'icons/obj/pipe-item.dmi' + var/icon_state="" + var/selected=0 + +/datum/pipe_info/New(var/pid,var/direction,var/dt) + src.id=pid + src.icon_state=pipeID2State[pid+1] + src.dir=direction + src.dirtype=dt + +/datum/pipe_info/proc/Render(var/dispenser,var/label) + return "
  • [label]
  • " + +/datum/pipe_info/meter + icon = 'icons/obj/pipes.dmi' + icon_state = "meterX" + +/datum/pipe_info/meter/New() + return + +/datum/pipe_info/meter/Render(var/dispenser,var/label) + return "
  • [label]
  • " //hardcoding is no + +var/global/list/disposalpipeID2State=list( + "pipe-s", + "pipe-c", + "pipe-j1", + "pipe-j2", + "pipe-y", + "pipe-t", + "condisposal", + "outlet", + "intake", + "pipe-j1s", + "pipe-j2s" +) + +/datum/pipe_info/disposal + icon = 'icons/obj/pipes/disposal.dmi' + icon_state = "meterX" + +/datum/pipe_info/disposal/New(var/pid,var/dt) + src.id=pid + src.icon_state=disposalpipeID2State[pid+1] + src.dir=2 + src.dirtype=dt + if(pid<6 || pid>8) + icon_state = "con[icon_state]" + +/datum/pipe_info/disposal/Render(var/dispenser,var/label) + return "
  • [label]
  • " //avoid hardcoding. + +//find these defines in code\game\machinery\pipe\consruction.dm +var/global/list/RPD_recipes=list( + "Regular Pipes" = list( + "Pipe" = new /datum/pipe_info(PIPE_SIMPLE_STRAIGHT, 1, PIPE_BINARY), + "Bent Pipe" = new /datum/pipe_info(PIPE_SIMPLE_BENT, 5, PIPE_BENT), + "Manifold" = new /datum/pipe_info(PIPE_MANIFOLD, 1, PIPE_TRINARY), + "Manual Valve" = new /datum/pipe_info(PIPE_MVALVE, 1, PIPE_BINARY), + "Digital Valve" = new /datum/pipe_info(PIPE_DVALVE, 1, PIPE_BINARY), + "4-Way Manifold" = new /datum/pipe_info(PIPE_4WAYMANIFOLD, 1, PIPE_BINARY), + ), + "Devices"=list( + "Connector" = new /datum/pipe_info(PIPE_CONNECTOR, 1, PIPE_UNARY), + "Unary Vent" = new /datum/pipe_info(PIPE_UVENT, 1, PIPE_UNARY), + "Gas Pump" = new /datum/pipe_info(PIPE_PUMP, 1, PIPE_UNARY), + "Passive Gate" = new /datum/pipe_info(PIPE_PASSIVE_GATE, 1, PIPE_UNARY), + "Volume Pump" = new /datum/pipe_info(PIPE_VOLUME_PUMP, 1, PIPE_UNARY), + "Scrubber" = new /datum/pipe_info(PIPE_SCRUBBER, 1, PIPE_UNARY), + "Meter" = new /datum/pipe_info/meter(), + "Gas Filter" = new /datum/pipe_info(PIPE_GAS_FILTER, 1, PIPE_TRIN_M), + "Gas Mixer" = new /datum/pipe_info(PIPE_GAS_MIXER, 1, PIPE_TRIN_M), +// "Injector" = new /datum/pipe_info(PIPE_INJECTOR, 1, PIPE_UNARY), + ), + "Heat Exchange" = list( + "Pipe" = new /datum/pipe_info(PIPE_HE_STRAIGHT, 1, PIPE_BINARY), + "Bent Pipe" = new /datum/pipe_info(PIPE_HE_BENT, 5, PIPE_BENT), + "Junction" = new /datum/pipe_info(PIPE_JUNCTION, 1, PIPE_UNARY), + "Heat Exchanger" = new /datum/pipe_info(PIPE_HEAT_EXCHANGE, 1, PIPE_UNARY), + ), + "Insulated Pipes" = list( + "Pipe" = new /datum/pipe_info(PIPE_INSULATED_STRAIGHT,1, PIPE_BINARY), + "Bent Pipe" = new /datum/pipe_info(PIPE_INSULATED_BENT, 5, PIPE_BENT), + ), + "Disposal Pipes" = list( + "Pipe" = new /datum/pipe_info/disposal(DISP_PIPE_STRAIGHT, PIPE_BINARY), + "Bent Pipe" = new /datum/pipe_info/disposal(DISP_PIPE_BENT, PIPE_BENT), + "Junction" = new /datum/pipe_info/disposal(DISP_JUNCTION, PIPE_TRINARY), + "Y-Junction" = new /datum/pipe_info/disposal(DISP_YJUNCTION, PIPE_TRINARY), + "Trunk" = new /datum/pipe_info/disposal(DISP_END_TRUNK, PIPE_TRINARY), + "Bin" = new /datum/pipe_info/disposal(DISP_END_BIN, PIPE_UNARY), + "Outlet" = new /datum/pipe_info/disposal(DISP_END_OUTLET, PIPE_UNARY), + "Chute" = new /datum/pipe_info/disposal(DISP_END_CHUTE, PIPE_UNARY), + ) +) +/obj/item/weapon/pipe_dispenser + name = "Rapid Piping Device (RPD)" + desc = "A device used to rapidly pipe things." + icon = 'icons/obj/items.dmi' + icon_state = "rpd" + opacity = 0 + density = 0 + anchored = 0.0 + flags = CONDUCT + force = 10.0 + throwforce = 10.0 + throw_speed = 1 + throw_range = 5 + w_class = 3.0 + m_amt = 75000 + g_amt = 37500 + origin_tech = "engineering=4;materials=2" + var/datum/effect/effect/system/spark_spread/spark_system + var/working = 0 + var/p_type = 0 + var/p_conntype = 0 + var/p_dir = 1 + var/p_class = ATMOS_MODE + var/p_disposal = 0 + var/list/paint_colors = list( + "grey" = "#cccccc", + "red" = "#800000", + "blue" = "#000080", + "cyan" = "#1C94C4", + "green" = "#00CC00", + "yellow" = "#FFCC00", + "purple" = "#822BFF" + ) + var/paint_color="grey" + +/obj/item/weapon/pipe_dispenser/New() + . = ..() + spark_system = new /datum/effect/effect/system/spark_spread + spark_system.set_up(5, 0, src) + spark_system.attach(src) + +/obj/item/weapon/pipe_dispenser/attack_self(mob/user as mob) + show_menu(user) + +/obj/item/weapon/pipe_dispenser/proc/render_dir_img(var/_dir,var/pic,var/title) + var/selected="" + if(_dir == p_dir) + selected=" class=\"selected\"" + return "" + +/obj/item/weapon/pipe_dispenser/proc/show_menu(mob/user as mob) + if(!user || !src) return 0 + var/dat = {"

    Type

    +Utilities: +"} + var/icon/preview=null + for(var/category in RPD_recipes) + dat += "[category]:
      " + var/list/cat=RPD_recipes[category] + for(var/label in cat) + var/datum/pipe_info/I = cat[label] + var/found=0 + if(I.id == p_type) + if(p_class==ATMOS_MODE && I.type==/datum/pipe_info) + found=1 + else if(p_class==DISPOSALS_MODE && I.type==/datum/pipe_info/disposal) + found=1 + if(found) + preview=new /icon(I.icon,I.icon_state) + dat += I.Render(src,label) + dat += "
    " + + var/color_css="" + var/color_picker="" + for(var/color_name in paint_colors) + var/color=paint_colors[color_name] + color_css += {" + a.color.[color_name] { + color: [color]; + } + a.color.[color_name]:hover { + border:1px solid [color]; + } + a.color.[color_name].selected { + background-color: [color]; + } + "} + var/selected="" + if(color_name==paint_color) + selected = " selected" + color_picker += {""} + + var/dirsel="

    Direction

    " + switch(p_conntype) + if(-1) + if(p_class==PAINT_MODE) + dirsel = "

    Direction

    [color_picker]" + + if(PIPE_BINARY) // Straight, N-S, W-E + if(preview) + user << browse_rsc(new /icon(preview, dir=NORTH), "vertical.png") + user << browse_rsc(new /icon(preview, dir=EAST), "horizontal.png") + + dirsel += "

    " + dirsel += render_dir_img(1,"vertical.png","Vertical") + dirsel += render_dir_img(4,"horizontal.png","Horizontal") + dirsel += "

    " + else + dirsel+={" +

    + + +

    + "} + if(PIPE_BENT) // Bent, N-W, N-E etc + if(preview) + user << browse_rsc(new /icon(preview, dir=NORTHWEST), "nw.png") + user << browse_rsc(new /icon(preview, dir=NORTHEAST), "ne.png") + user << browse_rsc(new /icon(preview, dir=SOUTHWEST), "sw.png") + user << browse_rsc(new /icon(preview, dir=SOUTHEAST), "se.png") + + dirsel += "

    " + dirsel += render_dir_img(9,"nw.png","West to North") + dirsel += render_dir_img(5,"ne.png","North to East") + dirsel += "
    " + dirsel += render_dir_img(10,"sw.png","South to West") + dirsel += render_dir_img(6,"se.png","East to South") + dirsel += "

    " + else + dirsel+={" +

    + + +
    + + +

    + "} + if(PIPE_TRINARY) // Manifold + if(preview) + user << browse_rsc(new /icon(preview, dir=NORTH), "s.png") + user << browse_rsc(new /icon(preview, dir=EAST), "w.png") + user << browse_rsc(new /icon(preview, dir=SOUTH), "n.png") + user << browse_rsc(new /icon(preview, dir=WEST), "e.png") + + dirsel += "

    " + dirsel += render_dir_img(1,"s.png","West South East") + dirsel += render_dir_img(4,"w.png","North West South") + dirsel += "
    " + dirsel += render_dir_img(2,"n.png","East North West") + dirsel += render_dir_img(8,"e.png","South East North") + dirsel += "

    " + else + dirsel+={" +

    + + +
    + + +

    + "} + if(PIPE_TRIN_M) // Mirrored ones + if(preview) + user << browse_rsc(new /icon(preview, dir=NORTH), "s.png") + user << browse_rsc(new /icon(preview, dir=EAST), "w.png") + user << browse_rsc(new /icon(preview, dir=SOUTH), "n.png") + user << browse_rsc(new /icon(preview, dir=WEST), "e.png") + user << browse_rsc(new /icon(preview, dir=SOUTHEAST), "sm.png") //each mirror icon is 45 anticlockwise from it's real direction + user << browse_rsc(new /icon(preview, dir=NORTHEAST), "wm.png") + user << browse_rsc(new /icon(preview, dir=NORTHWEST), "nm.png") + user << browse_rsc(new /icon(preview, dir=SOUTHWEST), "em.png") + + dirsel += "

    " + dirsel += render_dir_img(1,"s.png","West South East") + dirsel += render_dir_img(4,"w.png","North West South") + dirsel += "
    " + dirsel += render_dir_img(2,"n.png","East North West") + dirsel += render_dir_img(8,"e.png","South East North") + dirsel += "
    " + dirsel += render_dir_img(6,"sm.png","West South East") + dirsel += render_dir_img(5,"wm.png","North West South") + dirsel += "
    " + dirsel += render_dir_img(9,"nm.png","East North West") + dirsel += render_dir_img(10,"em.png","South East North") + dirsel += "

    " + else + dirsel+={" +

    + + +
    + + +
    + + +
    + + +

    + "} + if(PIPE_UNARY) // Unary + if(preview) + user << browse_rsc(new /icon(preview, dir=NORTH), "n.png") + user << browse_rsc(new /icon(preview, dir=EAST), "e.png") + user << browse_rsc(new /icon(preview, dir=SOUTH), "s.png") + user << browse_rsc(new /icon(preview, dir=WEST), "w.png") + + dirsel += "

    " + dirsel += render_dir_img(NORTH,"n.png","North") + dirsel += render_dir_img(EAST, "e.png","East") + dirsel += render_dir_img(SOUTH,"s.png","South") + dirsel += render_dir_img(WEST, "w.png","West") + dirsel += "

    " + else + dirsel+={" +

    + + + + +

    + "} + + dat = {" + + + [name] + + + +[dirsel][dat] + + +"} + user << browse(dat, "window=pipedispenser") + onclose(user, "pipedispenser") + return + +/obj/item/weapon/pipe_dispenser/Topic(href, href_list) + if(usr.stat || usr.restrained()) + usr << browse(null, "window=pipedispenser") + return + usr.set_machine(src) + src.add_fingerprint(usr) + if(href_list["setdir"]) + p_dir= text2num(href_list["setdir"]) + show_menu(usr) + + if(href_list["eatpipes"]) + p_class = EATING_MODE + p_conntype=-1 + p_dir=1 + src.spark_system.start() + playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0) + show_menu(usr) + + if(href_list["paintpipes"]) + p_class = PAINT_MODE + p_conntype=-1 + p_dir=1 + src.spark_system.start() + playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0) + show_menu(usr) + + if(href_list["set_color"]) + paint_color=href_list["set_color"] + src.spark_system.start() + playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0) + show_menu(usr) + + if(href_list["makepipe"]) + p_type = text2num(href_list["makepipe"]) + p_dir = text2num(href_list["dir"]) + p_conntype = text2num(href_list["type"]) + p_class = ATMOS_MODE + src.spark_system.start() + playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0) + show_menu(usr) + + if(href_list["makemeter"]) + p_class = METER_MODE + p_conntype=-1 + p_dir=1 + src.spark_system.start() + playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0) + show_menu(usr) + + if(href_list["dmake"]) + p_type = text2num(href_list["dmake"]) + p_conntype = text2num(href_list["type"]) + p_dir = 1 + p_class = DISPOSALS_MODE + src.spark_system.start() + playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0) + show_menu(usr) + + +/obj/item/weapon/pipe_dispenser/afterattack(atom/A, mob/user) + if(!in_range(A,user)) + return + if(loc != user) + return + if(!isrobot(user) && !ishuman(user)) + return 0 + if(istype(A,/area/shuttle)||istype(A,/turf/space/transit)) + return 0 + + switch(p_class) + if(PAINT_MODE) // Paint pipes + if(!istype(A,/obj/machinery/atmospherics/pipe) || istype(A,/obj/machinery/atmospherics/pipe/simple/heat_exchanging) || istype(A,/obj/machinery/atmospherics/pipe/simple/insulated)) + // Avoid spewing errors about invalid mode -2 when clicking on stuff that aren't pipes. + user << "\The [src]'s error light flickers. Perhaps you need to only use it on pipes and pipe meters?" + return 0 + var/obj/machinery/atmospherics/pipe/P = A + playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1) + P.pipe_color = paint_color + user.visible_message("[user] paints \the [P] [paint_color].","You paint \the [P] [paint_color].") + P.update_icon() + return 1 + if(EATING_MODE) // Eating pipes + // Must click on an actual pipe or meter. + if(istype(A,/obj/item/pipe) || istype(A,/obj/item/pipe_meter) || istype(A,/obj/structure/disposalconstruct)) + user << "Destroying Pipe..." + playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1) + if(do_after(user, 5)) + activate() + del(A) + return 1 + return 0 + + // Avoid spewing errors about invalid mode -1 when clicking on stuff that aren't pipes. + user << "The [src]'s error light flickers. Perhaps you need to only use it on pipes and pipe meters?" + return 0 + if(ATMOS_MODE) + if(!(istype(A, /turf))) + user << "The [src]'s error light flickers." + return 0 + user << "Building Pipes ..." + playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1) + if(do_after(user, 20)) + activate() + var/obj/item/pipe/P = new (A, pipe_type=p_type, dir=p_dir) + P.update() + P.add_fingerprint(usr) + return 1 + return 0 + + if(METER_MODE) + if(!(istype(A, /turf))) + user << "The [src]'s error light flickers." + return 0 + user << "Building Meter..." + playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1) + if(do_after(user, 20)) + activate() + new /obj/item/pipe_meter(A) + return 1 + return 0 + + if(DISPOSALS_MODE) + if(!(istype(A, /turf))) + user << "The [src]'s error light flickers." + return 0 + user << "Building Pipes..." + playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1) + if(do_after(user, 20)) + activate() + var/obj/structure/disposalconstruct/C = new (A) + // This may still produce runtimes, but I checked and /obj/structure/disposalconstruct + // DOES have a dir property, inherited from /obj/structure. - N3X + C.dir=p_dir + switch(p_type) + if(0) + C.ptype = 0 + if(1) + C.ptype = 1 + if(2) + C.ptype = 2 + if(3) + C.ptype = 4 + if(4) + C.ptype = 5 + if(5) + C.ptype = 6 + C.density = 1 + if(6) + C.ptype = 7 + C.density = 1 + if(7) + C.ptype = 8 + C.density = 1 + C.add_fingerprint(usr) + C.update() + return 1 + return 0 + else + ..() + return 0 + + +/obj/item/weapon/pipe_dispenser/proc/activate() + playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) + diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm index 966256487df..b58c54799bb 100644 --- a/code/game/objects/items/weapons/cigs_lighters.dm +++ b/code/game/objects/items/weapons/cigs_lighters.dm @@ -74,10 +74,8 @@ CIGARETTE PACKETS ARE IN FANCY.DM if(!isliving(M)) return M.IgniteMob() - if(!istype(M,/mob/living/carbon)) - return - if(istype(M.wear_mask, /obj/item/clothing/mask/cigarette) && user.zone_sel.selecting == "mouth" && lit) - var/obj/item/clothing/mask/cigarette/cig = M.wear_mask + var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M,user) + if(lit && cig) if(M == user) cig.attackby(src, user) else @@ -85,6 +83,12 @@ CIGARETTE PACKETS ARE IN FANCY.DM else ..() +/obj/item/proc/help_light_cig(mob/living/carbon/M as mob, mob/living/carbon/user as mob) + if(!iscarbon(M)) + return + if(istype(M.wear_mask, /obj/item/clothing/mask/cigarette) && user.zone_sel.selecting == "mouth") + var/obj/item/clothing/mask/cigarette/cig = M.wear_mask + return cig ////////////////// //FINE SMOKABLES// @@ -113,46 +117,21 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/clothing/mask/cigarette/attackby(obj/item/weapon/W as obj, mob/user as mob) ..() + var/lighting_text = "[user] lights their [name] with [W]." if(istype(W, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = W - if(WT.isOn())//Badasses dont get blinded while lighting their cig with a welding tool - light("[user] casually lights the [name] with [W], what a badass.") - + lighting_text = "[user] casually lights the [name] with [W], what a badass." else if(istype(W, /obj/item/weapon/lighter/zippo)) - var/obj/item/weapon/lighter/zippo/Z = W - if(Z.lit) - light("With a single flick of their wrist, [user] smoothly lights their [name] with [W]. Damn they're cool.") - + lighting_text = "With a single flick of their wrist, [user] smoothly lights their [name] with [W]. Damn they're cool." else if(istype(W, /obj/item/weapon/lighter)) - var/obj/item/weapon/lighter/L = W - if(L.lit) - light("After some fiddling, [user] manages to light their [name] with [W].") - - else if(istype(W, /obj/item/weapon/match)) - var/obj/item/weapon/match/M = W - if(M.lit == 1) //checking for lit = 1 instead of just lit prevents cigarettes being lit by used matches - light("[user] lights their [name] with [W].") - - else if(istype(W, /obj/item/weapon/melee/energy/sword)) - var/obj/item/weapon/melee/energy/sword/S = W - if(S.active) - light("[user] swings their [W], barely missing their nose. They light their [name] in the process.") - + lighting_text = "After some fiddling, [user] manages to light their [name] with [W]." + else if(istype(W, /obj/item/weapon/melee/energy)) + lighting_text = "[user] swings their [W], barely missing their nose. They light their [name] in the process." else if(istype(W, /obj/item/device/assembly/igniter)) - light("[user] fiddles with [W], and manages to light their [name].") - - else if(istype(W, /obj/item/clothing/mask/cigarette)) - var/obj/item/clothing/mask/cigarette/M = W - if(M.lit) - light("[user] lights their [name] with [W].") - else if(istype(W, /obj/item/candle)) - var/obj/item/candle/C = W - if(C.lit) - light("[user] lights their [name] with [W].") + lighting_text = "[user] fiddles with [W], and manages to light their [name]." else if(istype(W, /obj/item/device/flashlight/flare)) - var/obj/item/device/flashlight/flare/F = W - if(F.on) - light("[user] lights their [name] with [W] like a real badass.") + lighting_text = "[user] lights their [name] with [W] like a real badass." + if(is_hot(W)) + light(lighting_text) return /obj/item/clothing/mask/cigarette/afterattack(obj/item/weapon/reagent_containers/glass/glass, mob/user as mob, proximity) @@ -256,8 +235,8 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/clothing/mask/cigarette/attack(mob/living/carbon/M, mob/living/carbon/user) if(!istype(M)) return ..() - if(istype(M.wear_mask, /obj/item/clothing/mask/cigarette) && user.zone_sel && user.zone_sel.selecting == "mouth" && lit) - var/obj/item/clothing/mask/cigarette/cig = M.wear_mask + var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M,user) + if(lit && cig) if(M == user) cig.attackby(src, user) else @@ -514,10 +493,8 @@ CIGARETTE PACKETS ARE IN FANCY.DM if(!isliving(M)) return M.IgniteMob() - if(!istype(M,/mob/living/carbon)) - return - if(istype(M.wear_mask, /obj/item/clothing/mask/cigarette) && user.zone_sel.selecting == "mouth" && lit) - var/obj/item/clothing/mask/cigarette/cig = M.wear_mask + var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M,user) + if(lit && cig) if(M == user) cig.attackby(src, user) else @@ -534,7 +511,6 @@ CIGARETTE PACKETS ARE IN FANCY.DM location.hotspot_expose(700, 5) return - /obj/item/weapon/lighter/pickup(mob/user) if(lit) SetLuminosity(0) diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm index 6321c651172..df21b3dc5dd 100644 --- a/code/game/objects/items/weapons/defib.dm +++ b/code/game/objects/items/weapons/defib.dm @@ -122,7 +122,7 @@ bcell.updateicon() bcell.loc = get_turf(src.loc) bcell = null - user << "You remove the cell from the [src]." + user << "You remove the cell from [src]." update_icon() return diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm index 2ff4fc4e0e4..f1b1ad4dc09 100644 --- a/code/game/objects/items/weapons/explosives.dm +++ b/code/game/objects/items/weapons/explosives.dm @@ -83,14 +83,15 @@ spawn(timer*10) if(target && !target.gc_destroyed) explode(get_turf(target)) - qdel(src) - + else + qdel(src) /obj/item/weapon/c4/proc/explode(var/turf/location) location.ex_act(2, target) explosion(location,0,0,3) if(target) target.overlays -= image_overlay + qdel(src) /obj/item/weapon/c4/attack(mob/M as mob, mob/user as mob, def_zone) return \ No newline at end of file diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index 3d5cebfd920..f28044bff28 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -76,8 +76,6 @@ else if(stage == EMPTY && istype(I, /obj/item/device/assembly_holder)) var/obj/item/device/assembly_holder/A = I - if(!A.secured) - return if(isigniter(A.a_left) == isigniter(A.a_right)) //Check if either part of the assembly has an igniter, but if both parts are igniters, then fuck it return diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm index 32acca5e4b4..9de94916d1e 100644 --- a/code/game/objects/items/weapons/kitchen.dm +++ b/code/game/objects/items/weapons/kitchen.dm @@ -88,7 +88,7 @@ /obj/item/weapon/kitchen/utensil/knife/attack(target as mob, mob/living/user as mob) if ((CLUMSY in user.mutations) && prob(50)) - user << " You accidentally cut yourself with the [src]." + user << " You accidentally cut yourself with \the [src]." user.take_organ_damage(20) return playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1) diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm index d6b446dea03..7fe5bad8667 100644 --- a/code/game/objects/items/weapons/melee/energy.dm +++ b/code/game/objects/items/weapons/melee/energy.dm @@ -1,5 +1,11 @@ /obj/item/weapon/melee/energy var/active = 0 + var/force_on = 30 //force when active + var/throwforce_on = 20 + var/icon_state_on = "axe1" + var/attack_verb_on = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + w_class = 2 + var/w_class_on = 4 /obj/item/weapon/melee/energy/suicide_act(mob/user) user.visible_message(pick("[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.", \ @@ -14,34 +20,22 @@ desc = "An energised battle axe." icon_state = "axe0" force = 40.0 - throwforce = 25.0 + force_on = 150 + throwforce = 25 + throwforce_on = 30 hitsound = 'sound/weapons/bladeslice.ogg' throw_speed = 3 throw_range = 5 - w_class = 3.0 + w_class = 3 + w_class_on = 5 flags = CONDUCT | NOSHIELD origin_tech = "combat=3" attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut") + attack_verb_on = null /obj/item/weapon/melee/energy/axe/suicide_act(mob/user) - user.visible_message("[user] swings the [src.name] towards /his head! It looks like \he's trying to commit suicide.") - return (BRUTELOSS|FIRELOSS) - -/obj/item/weapon/melee/energy/axe/attack_self(mob/user) - active = !active - if(active) - user << "[src] is now energised." - force = 150 //these are the drugs, friend - hitsound = 'sound/weapons/blade1.ogg' - icon_state = "axe1" - w_class = 5 - else - user << "[src] can now be concealed." - force = 40 - hitsound = 'sound/weapons/bladeslice.ogg' - icon_state = "axe0" - w_class = 3 //it goes back to three you goose - add_fingerprint(user) + user.visible_message("[user] swings the [src.name] towards /his head! It looks like \he's trying to commit suicide.") + return (BRUTELOSS|FIRELOSS) /obj/item/weapon/melee/energy/sword name = "energy sword" @@ -52,11 +46,10 @@ hitsound = "swing_hit" //it starts deactivated throw_speed = 3 throw_range = 5 - w_class = 2.0 flags = NOSHIELD + attack_verb = null origin_tech = "magnets=3;syndicate=4" var/hacked = 0 - item_color = null /obj/item/weapon/melee/energy/sword/New() if(item_color == null) @@ -67,33 +60,31 @@ return 1 return 0 -/obj/item/weapon/melee/energy/sword/attack_self(mob/living/user) +/obj/item/weapon/melee/energy/attack_self(mob/living/user) if ((CLUMSY in user.mutations) && prob(50)) user << "You accidentally cut yourself with [src], like a doofus!" user.take_organ_damage(5,5) active = !active if (active) - force = 30 - throwforce = 20 + force = force_on + throwforce = throwforce_on hitsound = 'sound/weapons/blade1.ogg' - attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") - if(istype(src,/obj/item/weapon/melee/energy/sword/pirate)) - icon_state = "cutlass1" + if(attack_verb_on) + attack_verb = attack_verb_on + if(!item_color) + icon_state = icon_state_on else icon_state = "sword[item_color]" - w_class = 4 + w_class = w_class_on playsound(user, 'sound/weapons/saberon.ogg', 35, 1) //changed it from 50% volume to 35% because deafness user << "[src] is now active." else - force = 3 - throwforce = 5.0 - hitsound = "swing_hit" - attack_verb = null - if(istype(src,/obj/item/weapon/melee/energy/sword/pirate)) - icon_state = "cutlass0" - else - icon_state = "sword0" - w_class = 2 + force = initial(force) + throwforce = initial(throwforce) + hitsound = initial(hitsound) + attack_verb = initial(attack_verb) + icon_state = initial(icon_state) + w_class = initial(w_class) playsound(user, 'sound/weapons/saberoff.ogg', 35, 1) //changed it from 50% volume to 35% because deafness user << "[src] can now be concealed." add_fingerprint(user) @@ -166,6 +157,10 @@ name = "energy cutlass" desc = "Arrrr matey." icon_state = "cutlass0" + icon_state_on = "cutlass1" + +/obj/item/weapon/melee/energy/sword/pirate/New() + return /obj/item/weapon/melee/energy/blade name = "energy blade" @@ -173,12 +168,12 @@ icon_state = "blade" force = 30 //Normal attacks deal esword damage hitsound = 'sound/weapons/blade1.ogg' + active = 1 throwforce = 1//Throwing or dropping the item deletes it. throw_speed = 3 throw_range = 1 w_class = 4.0//So you can't hide it in your pocket or some such. flags = NOSHIELD - attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") var/datum/effect/effect/system/spark_spread/spark_system //Most of the other special functions are handled in their own files. aka special snowflake code so kewl @@ -192,3 +187,6 @@ /obj/item/weapon/melee/energy/blade/proc/throw() qdel(src) + +/obj/item/weapon/melee/energy/blade/attack_self(mob/user) + return \ No newline at end of file diff --git a/code/game/objects/items/weapons/mop.dm b/code/game/objects/items/weapons/mop.dm index 6f47027cbdd..b0d9d00fd5e 100644 --- a/code/game/objects/items/weapons/mop.dm +++ b/code/game/objects/items/weapons/mop.dm @@ -21,7 +21,8 @@ obj/item/weapon/mop/proc/clean(turf/simulated/A) if(reagents.has_reagent("water", 1) || reagents.has_reagent("holywater", 1)) A.clean_blood() - A.dirt = 0 + var/turf/simulated/floor/F = A + F.dirt = 0 for(var/obj/effect/O in A) if(istype(O,/obj/effect/decal/cleanable) || istype(O,/obj/effect/overlay)) qdel(O) diff --git a/code/game/objects/items/weapons/shields.dm b/code/game/objects/items/weapons/shields.dm index aa2cb519a56..97a8d47e844 100644 --- a/code/game/objects/items/weapons/shields.dm +++ b/code/game/objects/items/weapons/shields.dm @@ -108,7 +108,7 @@ throw_speed = 2 w_class = 4 slot_flags = SLOT_BACK - user << "You extend the [src]." + user << "You extend \the [src]." else force = 3 throwforce = 3 diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index db9ae7d2eb6..f205aa88ef5 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -51,6 +51,7 @@ message_admins("[key_name_admin(user)] detonated a bag of holding") log_game("[key_name(user)] detonated a bag of holding") qdel(src) + singulo.process() return ..() diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 1d58269c6dd..3995d527137 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -83,13 +83,13 @@ /obj/item/weapon/storage/box/gloves/New() ..() - new /obj/item/clothing/gloves/latex(src) - new /obj/item/clothing/gloves/latex(src) - new /obj/item/clothing/gloves/latex(src) - new /obj/item/clothing/gloves/latex(src) - new /obj/item/clothing/gloves/latex(src) - new /obj/item/clothing/gloves/latex(src) - new /obj/item/clothing/gloves/latex(src) + new /obj/item/clothing/gloves/color/latex(src) + new /obj/item/clothing/gloves/color/latex(src) + new /obj/item/clothing/gloves/color/latex(src) + new /obj/item/clothing/gloves/color/latex(src) + new /obj/item/clothing/gloves/color/latex(src) + new /obj/item/clothing/gloves/color/latex(src) + new /obj/item/clothing/gloves/color/latex(src) /obj/item/weapon/storage/box/masks name = "box of sterile masks" diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index 8ef7199f100..f7cd722f7d4 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -304,16 +304,10 @@ if(M.client) M.client.screen -= W - if(new_location) - if(ismob(loc)) - W.dropped(usr) - if(ismob(new_location)) - W.layer = 20 - else - W.layer = initial(W.layer) - W.loc = new_location - else - W.loc = get_turf(src) + if(ismob(loc)) + W.dropped(usr) + W.layer = initial(W.layer) + W.loc = new_location if(usr) orient2hud(usr) diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm index b894effd228..19b664e2c4f 100644 --- a/code/game/objects/items/weapons/storage/toolbox.dm +++ b/code/game/objects/items/weapons/storage/toolbox.dm @@ -61,7 +61,7 @@ new /obj/item/stack/cable_coil(src,30,color) new /obj/item/stack/cable_coil(src,30,color) if(prob(5)) - new /obj/item/clothing/gloves/yellow(src) + new /obj/item/clothing/gloves/color/yellow(src) else new /obj/item/stack/cable_coil(src,30,color) diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index c21bb64f252..7c7b9857c5c 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -79,7 +79,7 @@ bcell.updateicon() bcell.loc = get_turf(src.loc) bcell = null - user << "You remove the cell from the [src]." + user << "You remove the cell from [src]." status = 0 update_icon() return diff --git a/code/game/objects/items/weapons/tanks/jetpack.dm b/code/game/objects/items/weapons/tanks/jetpack.dm index f261c0aeb09..6bb7562f847 100644 --- a/code/game/objects/items/weapons/tanks/jetpack.dm +++ b/code/game/objects/items/weapons/tanks/jetpack.dm @@ -41,6 +41,7 @@ icon_state = initial(icon_state) // item_state = initial(item_state) ion_trail.stop() + usr << "You toggle the jetpack [on? "on":"off"]." return diff --git a/code/game/objects/items/weapons/teleportation.dm b/code/game/objects/items/weapons/teleportation.dm index be5bc7c9402..7dd2aa930d7 100644 --- a/code/game/objects/items/weapons/teleportation.dm +++ b/code/game/objects/items/weapons/teleportation.dm @@ -138,7 +138,7 @@ Frequency: /obj/item/weapon/hand_tele/attack_self(mob/user as mob) var/turf/current_location = get_turf(user)//What turf is the user on? - if(!current_location||current_location.z==2||current_location.z>=7)//If turf was not found or they're on z level 2 or >7 which does not currently exist. + if(!current_location||current_location.z==2||current_location.z>=7 || !istype(user.loc, /turf))//If turf was not found or they're on z level 2 or >7 which does not currently exist. or if user is not located on a turf user << "\The [src] is malfunctioning." return var/list/L = list( ) diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index fc4b26368f2..6c9ba5f5d96 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -210,9 +210,9 @@ if(1) force = 15 damtype = "fire" - update_icon() if(prob(5)) remove_fuel(1) + update_icon() //This is to start fires. process() is only called if the welder is on. var/turf/location = loc @@ -283,14 +283,12 @@ /obj/item/weapon/weldingtool/proc/check_fuel(mob/user) if(get_fuel() <= 0 && welding) toggle(user, 1) - + update_icon() //mob icon update if(ismob(loc)) var/mob/M = loc - if(M.r_hand == src) - M.update_inv_r_hand(0) - else if(M.l_hand == src) - M.update_inv_l_hand(0) + M.update_inv_r_hand(0) + M.update_inv_l_hand(0) return 0 return 1 @@ -321,7 +319,7 @@ damtype = "brute" hitsound = "swing_hit" icon_state = "welder" - welding = 0 + //Decides whether or not to damage a player's eyes based on what they're wearing as protection @@ -416,7 +414,6 @@ m_amt = 70 g_amt = 120 origin_tech = "engineering=4;plasmatech=3" - icon_state = "ewelder" var/last_gen = 0 diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index 3b0ba69ed11..ec56c0adf0c 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -224,7 +224,7 @@ obj/item/weapon/twohanded/ sleep(1) /obj/item/weapon/twohanded/dualsaber/proc/impale(mob/living/user as mob) - user << "You twirl around a bit before losing your balance and impaling yourself on the [src]." + user << "You twirl around a bit before losing your balance and impaling yourself on \the [src]." if (force_wielded) user.take_organ_damage(20,25) else @@ -242,7 +242,7 @@ obj/item/weapon/twohanded/ if(istype(loc, /mob/living)) if (HULK in M.mutations) loc << "You lack the grace to wield this to its full extent." - hitsound = 'sound/weapons/blade1.ogg' + hitsound = 'sound/weapons/blade1.ogg' /obj/item/weapon/twohanded/dualsaber/unwield() //Specific unwield () to switch hitsounds. diff --git a/code/game/objects/items/weapons/vending_items.dm b/code/game/objects/items/weapons/vending_items.dm index 7b14099d374..c88351ffb13 100644 --- a/code/game/objects/items/weapons/vending_items.dm +++ b/code/game/objects/items/weapons/vending_items.dm @@ -56,9 +56,9 @@ /obj/item/weapon/vending_refill/autodrobe machine_name = "AutoDrobe" icon_state = "refill_costume" - charges = 19// of 58 + charges = 20// of 60 /obj/item/weapon/vending_refill/clothing machine_name = "ClothesMate" icon_state = "refill_clothes" - charges = 16// of 48 + charges = 20// of 62 diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index eadb7c6d32d..ac90c38347b 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -12,7 +12,6 @@ /obj/structure/mech_melee_attack(obj/mecha/M) if(M.damtype == "brute") - M.occupant_message("You hit [src].") visible_message("[M.name] has hit [src].") return 1 return 0 diff --git a/code/game/objects/structures/crates_lockers/bins.dm b/code/game/objects/structures/crates_lockers/bins.dm index d18db0702c4..275eccc890f 100644 --- a/code/game/objects/structures/crates_lockers/bins.dm +++ b/code/game/objects/structures/crates_lockers/bins.dm @@ -51,15 +51,15 @@ . = ..(O, user, 0, 0, 0) if(.) if(O != user) - user.visible_message("[user] tries to stuff [O] into the [src].", \ - "You try to stuff [O] into the [src].", \ + user.visible_message("[user] tries to stuff [O] into [src].", \ + "You try to stuff [O] into [src].", \ "You hear clanging.") if (!do_after(user, 40)) return if(!..(O, user, 0, 0)) return - user.visible_message("[user] stuffs [O] into the [src].", \ - "You stuff [O] into the [src].", \ + user.visible_message("[user] stuffs [O] into[src].", \ + "You stuff [O] into [src].", \ "You hear a loud metal bang.") insert(O, 1, !opened) if(opened) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index e43c8e3203d..54ed6539c1b 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -144,7 +144,7 @@ /obj/structure/closet/attack_animal(mob/living/simple_animal/user as mob) if(user.environment_smash) user.do_attack_animation(src) - visible_message("[user] destroys the [src].") + visible_message("[user] destroys \the [src].") dump_contents() qdel(src) @@ -170,7 +170,7 @@ if(istype(W, /obj/item/weapon/weldingtool)) var/obj/item/weapon/weldingtool/WT = W if(WT.remove_fuel(0,user)) - user << "You begin cutting the [src] apart..." + user << "You begin cutting \the [src] apart..." playsound(loc, 'sound/items/Welder.ogg', 40, 1) if(do_after(user,40,5,1)) if( !src.opened || !istype(src, /obj/structure/closet) || !user || !WT || !WT.isOn() || !user.loc ) @@ -192,7 +192,7 @@ else if(istype(W, /obj/item/weapon/weldingtool)) var/obj/item/weapon/weldingtool/WT = W if(WT.remove_fuel(0,user)) - user << "You begin [welded ? "unwelding":"welding"] the [src]..." + user << "You begin [welded ? "unwelding":"welding"] \the [src]..." playsound(loc, 'sound/items/Welder2.ogg', 40, 1) if(do_after(user,40,5,1)) if(src.opened || !istype(src, /obj/structure/closet) || !user || !WT || !WT.isOn() || !user.loc ) diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index d3ffa71fe14..1068afe8657 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -68,7 +68,7 @@ ..() new /obj/item/clothing/under/rank/janitor(src) new /obj/item/weapon/cartridge/janitor(src) - new /obj/item/clothing/gloves/black(src) + new /obj/item/clothing/gloves/color/black(src) new /obj/item/clothing/head/soft/purple(src) new /obj/item/device/flashlight(src) new /obj/item/weapon/caution(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index 439fb0a86ff..8a3aad19172 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -20,7 +20,7 @@ new /obj/item/clothing/under/rank/chief_engineer(src) new /obj/item/clothing/head/hardhat/white(src) new /obj/item/clothing/head/welding(src) - new /obj/item/clothing/gloves/yellow(src) + new /obj/item/clothing/gloves/color/yellow(src) new /obj/item/clothing/shoes/sneakers/brown(src) new /obj/item/weapon/cartridge/ce(src) new /obj/item/device/radio/headset/heads/ce(src) @@ -46,8 +46,8 @@ /obj/structure/closet/secure_closet/engineering_electrical/New() ..() - new /obj/item/clothing/gloves/yellow(src) - new /obj/item/clothing/gloves/yellow(src) + new /obj/item/clothing/gloves/color/yellow(src) + new /obj/item/clothing/gloves/color/yellow(src) new /obj/item/weapon/storage/toolbox/electrical(src) new /obj/item/weapon/storage/toolbox/electrical(src) new /obj/item/weapon/storage/toolbox/electrical(src) @@ -125,8 +125,8 @@ /obj/structure/closet/secure_closet/atmospherics/New() ..() - sleep(2) new /obj/item/device/radio/headset/headset_eng(src) + new /obj/item/weapon/pipe_dispenser(src) new /obj/item/weapon/storage/toolbox/mechanical(src) new /obj/item/weapon/storage/backpack/satchel_norm(src) new /obj/item/weapon/tank/emergency_oxygen/engi(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index 7bb382d60a7..235a9ce9081 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -69,7 +69,7 @@ new /obj/item/clothing/suit/toggle/labcoat(src) new /obj/item/clothing/shoes/sneakers/white(src) new /obj/item/device/radio/headset/headset_med(src) - new /obj/item/clothing/gloves/latex(src) + new /obj/item/clothing/gloves/color/latex(src) new /obj/item/weapon/defibrillator/loaded(src) new /obj/item/weapon/storage/belt/medical(src) new /obj/item/clothing/glasses/hud/health(src) @@ -101,7 +101,7 @@ new /obj/item/clothing/shoes/sneakers/brown (src) new /obj/item/weapon/cartridge/cmo(src) new /obj/item/device/radio/headset/heads/cmo(src) - new /obj/item/clothing/gloves/latex(src) + new /obj/item/clothing/gloves/color/latex(src) new /obj/item/weapon/defibrillator/loaded(src) new /obj/item/weapon/storage/belt/medical(src) new /obj/item/device/flash/handheld(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm index 4146accd389..174f2e748c9 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm @@ -42,7 +42,7 @@ new /obj/item/clothing/under/rank/research_director/turtleneck(src) new /obj/item/weapon/cartridge/rd(src) new /obj/item/clothing/shoes/sneakers/white(src) - new /obj/item/clothing/gloves/latex(src) + new /obj/item/clothing/gloves/color/latex(src) new /obj/item/device/radio/headset/heads/rd(src) new /obj/item/weapon/tank/air(src) new /obj/item/clothing/mask/gas(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index ed8584da142..f45405202f9 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -22,7 +22,7 @@ new /obj/item/weapon/cartridge/captain(src) new /obj/item/clothing/shoes/sneakers/brown(src) new /obj/item/device/radio/headset/heads/captain/alt(src) - new /obj/item/clothing/gloves/captain(src) + new /obj/item/clothing/gloves/color/captain(src) new /obj/item/clothing/suit/toggle/wintercoat/captain(src) new /obj/item/clothing/head/santa(src) new /obj/item/weapon/gun/energy/gun(src) @@ -47,7 +47,7 @@ new /obj/item/clothing/shoes/sneakers/brown(src) new /obj/item/weapon/storage/box/ids(src) new /obj/item/weapon/storage/box/ids(src) - new /obj/item/clothing/suit/armor/vest(src) + new /obj/item/clothing/suit/armor/vest/alt(src) new /obj/item/weapon/gun/energy/gun(src) new /obj/item/device/flash/handheld(src) new /obj/item/clothing/glasses/sunglasses(src) @@ -74,16 +74,15 @@ new /obj/item/device/radio/headset/heads/hos(src) new /obj/item/clothing/under/hosparadefem(src) new /obj/item/clothing/under/hosparademale(src) - new /obj/item/clothing/suit/armor/hos/trenchcoat(src) - new /obj/item/clothing/under/rank/head_of_security/formal(src) - new /obj/item/clothing/head/HoS/beret(src) + new /obj/item/clothing/suit/armor/hos(src) + new /obj/item/clothing/head/HoS(src) new /obj/item/clothing/glasses/hud/security/eyepatch(src) new /obj/item/weapon/storage/lockbox/loyalty(src) new /obj/item/weapon/storage/box/flashbangs(src) new /obj/item/clothing/mask/gas/sechailer/swat(src) new /obj/item/weapon/shield/riot/tele(src) new /obj/item/weapon/melee/baton/loaded(src) - new /obj/item/weapon/gun/energy/gun(src) + new /obj/item/weapon/gun/energy/gun/advtaser(src) new /obj/item/weapon/storage/belt/security(src) new /obj/item/clothing/suit/toggle/wintercoat/security(src) return @@ -103,18 +102,17 @@ /obj/structure/closet/secure_closet/warden/New() ..() new /obj/item/device/radio/headset/headset_sec(src) - new /obj/item/clothing/suit/armor/vest/warden(src) + new /obj/item/clothing/suit/armor/vest/warden/(src) new /obj/item/clothing/head/warden(src) - new /obj/item/clothing/suit/armor/vest(src) - new /obj/item/clothing/under/rank/warden/formal(src) - new /obj/item/clothing/head/warden/drill(src) + new /obj/item/clothing/suit/armor/vest/warden/alt(src) + new /obj/item/clothing/head/beret/sec/navywarden(src) new /obj/item/clothing/glasses/hud/security/sunglasses(src) new /obj/item/clothing/mask/gas/sechailer(src) new /obj/item/weapon/storage/box/flashbangs(src) new /obj/item/weapon/storage/box/zipties(src) new /obj/item/weapon/reagent_containers/spray/pepper(src) new /obj/item/weapon/melee/baton/loaded(src) - new /obj/item/weapon/gun/energy/taser(src) + new /obj/item/weapon/gun/energy/gun/advtaser(src) new /obj/item/weapon/storage/belt/security(src) new /obj/item/clothing/suit/toggle/wintercoat/security(src) return @@ -134,13 +132,11 @@ /obj/structure/closet/secure_closet/security/New() ..() new /obj/item/clothing/suit/armor/vest(src) - new /obj/item/clothing/head/helmet(src) new /obj/item/device/radio/headset/headset_sec/alt(src) + new /obj/item/clothing/head/soft/sec(src) new /obj/item/weapon/reagent_containers/spray/pepper(src) - new /obj/item/clothing/mask/gas/sechailer(src) new /obj/item/device/flash/handheld(src) new /obj/item/weapon/grenade/flashbang(src) - new /obj/item/weapon/gun/energy/taser(src) new /obj/item/weapon/storage/belt/security(src) new /obj/item/clothing/glasses/hud/security/sunglasses(src) new /obj/item/clothing/suit/toggle/wintercoat/security(src) @@ -202,7 +198,7 @@ new /obj/item/clothing/under/rank/det(src) new /obj/item/clothing/suit/det_suit(src) new /obj/item/clothing/head/det_hat(src) - new /obj/item/clothing/gloves/black(src) + new /obj/item/clothing/gloves/color/black(src) new /obj/item/clothing/under/rank/det/grey(src) new /obj/item/clothing/suit/det_suit/grey(src) new /obj/item/clothing/head/fedora(src) diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm index ae31fa0fdec..4522ee5f51e 100644 --- a/code/game/objects/structures/crates_lockers/closets/syndicate.dm +++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm @@ -12,10 +12,9 @@ /obj/structure/closet/syndicate/personal/New() ..() new /obj/item/clothing/under/syndicate(src) - new /obj/item/clothing/suit/armor/vest(src) - new /obj/item/clothing/head/helmet/swat/syndicate(src) - new /obj/item/ammo_box/magazine/m10mm(src) + new /obj/item/clothing/shoes/sneakers/black(src) new /obj/item/device/radio/headset/syndicate(src) + new /obj/item/ammo_box/magazine/m10mm(src) new /obj/item/weapon/storage/belt/military(src) new /obj/item/weapon/crowbar/red(src) new /obj/item/clothing/glasses/night(src) @@ -33,11 +32,11 @@ new /obj/item/ammo_box/magazine/m10mm(src) new /obj/item/weapon/storage/box/flashbangs(src) new /obj/item/weapon/storage/box/teargas(src) - new /obj/item/weapon/gun/projectile/automatic/bulldog(src) - new /obj/item/weapon/gun/projectile/automatic/bulldog(src) - new /obj/item/weapon/gun/projectile/automatic/bulldog(src) - new /obj/item/weapon/gun/projectile/automatic/bulldog(src) - new /obj/item/weapon/gun/projectile/automatic/bulldog(src) + new /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog(src) + new /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog(src) + new /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog(src) + new /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog(src) + new /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog(src) new /obj/item/weapon/pinpointer/nukeop(src) new /obj/item/weapon/pinpointer/nukeop(src) new /obj/item/weapon/pinpointer/nukeop(src) diff --git a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm index ee80b8ea7ff..27c2655da50 100644 --- a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm @@ -132,7 +132,7 @@ if(prob(20)) new /obj/item/device/multitool(src) if(prob(5)) - new /obj/item/clothing/gloves/yellow(src) + new /obj/item/clothing/gloves/color/yellow(src) if(prob(40)) new /obj/item/clothing/head/hardhat(src) diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm index e5726239a9c..92128cf4bef 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -28,12 +28,12 @@ new /obj/item/clothing/shoes/jackboots(src) new /obj/item/clothing/shoes/jackboots(src) new /obj/item/clothing/shoes/jackboots(src) - new /obj/item/clothing/head/soft/sec(src) - new /obj/item/clothing/head/soft/sec(src) - new /obj/item/clothing/head/soft/sec(src) new /obj/item/clothing/head/beret/sec(src) new /obj/item/clothing/head/beret/sec(src) new /obj/item/clothing/head/beret/sec(src) + new /obj/item/clothing/head/soft/sec(src) + new /obj/item/clothing/head/soft/sec(src) + new /obj/item/clothing/head/soft/sec(src) new /obj/item/clothing/head/santa(src) new /obj/item/clothing/head/santa(src) new /obj/item/clothing/head/santa(src) @@ -195,15 +195,18 @@ /obj/structure/closet/wardrobe/white/medical/New() new /obj/item/clothing/under/rank/nursesuit (src) new /obj/item/clothing/head/nursehat (src) - new /obj/item/clothing/suit/toggle/labcoat/emt(src) - new /obj/item/clothing/suit/toggle/labcoat/emt(src) - new /obj/item/clothing/suit/toggle/labcoat/emt(src) new /obj/item/clothing/under/rank/medical/blue(src) new /obj/item/clothing/under/rank/medical/green(src) new /obj/item/clothing/under/rank/medical/purple(src) + new /obj/item/clothing/suit/toggle/labcoat/emt(src) + new /obj/item/clothing/suit/toggle/labcoat/emt(src) + new /obj/item/clothing/suit/toggle/labcoat/emt(src) new /obj/item/clothing/shoes/sneakers/black(src) new /obj/item/clothing/shoes/sneakers/black(src) new /obj/item/clothing/shoes/sneakers/black(src) + new /obj/item/clothing/head/soft/emt(src) + new /obj/item/clothing/head/soft/emt(src) + new /obj/item/clothing/head/soft/emt(src) return /obj/structure/closet/wardrobe/pjs diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index 5d4f5dc9b18..4768a2941a2 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -177,7 +177,7 @@ if (P.pipe_type in list(0, 1, 5)) //simple pipes, simple bends, and simple manifolds. user.drop_item() P.loc = src.loc - user << "You fit the pipe into the [src]!" + user << "You fit the pipe into \the [src]!" else ..() diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 25128f564a9..fdb8eea13d1 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -138,8 +138,8 @@ if(!shock(user, 90)) playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1) anchored = !anchored - user.visible_message("[user] [anchored ? "fastens" : "unfastens"] the [src].", \ - "You have [anchored ? "fastened the [src] to" : "unfastened the [src] from"] the floor.") + user.visible_message("[user] [anchored ? "fastens" : "unfastens"] [src].", \ + "You have [anchored ? "fastened [src] to" : "unfastened [src] from"] the floor.") return else if(istype(W, /obj/item/stack/rods) && destroyed) var/obj/item/stack/rods/R = W diff --git a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm b/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm index 29126839d37..24614a6849e 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm @@ -39,7 +39,7 @@ else M.visible_message(\ "[user.name] secretes a thick vile goo, securing [M.name] into [src]!",\ - "[user.name] drenches you in a foul-smelling resin, trapping you in the [src]!",\ + "[user.name] drenches you in a foul-smelling resin, trapping you in [src]!",\ "You hear squelching...") M.buckled = src M.loc = src.loc diff --git a/code/game/objects/structures/table_frames.dm b/code/game/objects/structures/table_frames.dm index d26f0183ac0..5e4e26cbabd 100644 --- a/code/game/objects/structures/table_frames.dm +++ b/code/game/objects/structures/table_frames.dm @@ -29,7 +29,7 @@ return if(istype(I, /obj/item/stack/sheet/plasteel)) var/obj/item/stack/sheet/plasteel/P = I - user << "Now adding the [P] to the [src]." + user << "Now adding [P] to [src]." if(do_after(user, 50)) new /obj/structure/table/reinforced(src.loc) qdel(src) @@ -37,7 +37,7 @@ return if(istype(I, /obj/item/stack/sheet/metal)) var/obj/item/stack/sheet/metal/M = I - user << "Now adding the [M] to the [src]." + user << "Now adding [M] to [src]." if(do_after(user, 20)) new /obj/structure/table(src.loc) qdel(src) @@ -45,7 +45,7 @@ return if(istype(I, /obj/item/stack/sheet/glass)) var/obj/item/stack/sheet/glass/G = I - user << "Now adding the [G] to the [src]." + user << "Now adding [G] to [src]." if(do_after(user, 20)) new /obj/structure/table/glass(src.loc) qdel(src) @@ -72,7 +72,7 @@ return if(istype(I, /obj/item/stack/sheet/mineral/wood)) var/obj/item/stack/sheet/mineral/wood/W = I - user << "Now adding the [W] to the [src]." + user << "Now adding [W] to [src]." if(do_after(user, 20)) new /obj/structure/table/wood(src.loc) qdel(src) @@ -80,7 +80,7 @@ return if(istype(I, /obj/item/stack/tile/carpet)) var/obj/item/stack/tile/carpet/C = I - user << "Now adding the [C] to the [src]." + user << "Now adding [C] to [src]." if(do_after(user, 20)) new /obj/structure/table/wood/poker(src.loc) qdel(src) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 3b7ab8924b7..7111ef392aa 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -184,12 +184,11 @@ ..() if(severity == 3) if(prob(25)) - density = 0 + table_destroy(1) /obj/structure/table/blob_act() if(prob(75)) table_destroy(1) - qdel(src) return /obj/structure/table/attack_alien(mob/living/user) @@ -231,8 +230,11 @@ else return 0 - -/obj/structure/table/MouseDrop_T(obj/O, mob/user) +/obj/structure/table/MouseDrop_T(atom/movable/O, mob/user) + if(ismob(O) && user == O && ishuman(user)) + if(user.canmove) + climb_table(user) + return if ((!( istype(O, /obj/item/weapon) ) || user.get_active_hand() != O)) return if(isrobot(user)) @@ -358,10 +360,6 @@ * TABLE CLIMBING */ -/obj/structure/table/MouseDrop_T(mob/target, mob/living/carbon/human/user) - if(istype(target) && user == target && istype(user)) - if(user.canmove) - climb_table(user) /obj/structure/table/proc/climb_table(mob/user) src.add_fingerprint(user) @@ -494,21 +492,20 @@ if(1.0) qdel(src) if(2.0) - qdel(src) if(prob(50)) - new /obj/item/weapon/rack_parts(src.loc) + rack_destroy() + else + qdel(src) if(3.0) if(prob(25)) - qdel(src) - new /obj/item/weapon/rack_parts(src.loc) + rack_destroy() /obj/structure/rack/blob_act() if(prob(75)) qdel(src) return else if(prob(50)) - new /obj/item/weapon/rack_parts(src.loc) - qdel(src) + rack_destroy() return /obj/structure/rack/CanPass(atom/movable/mover, turf/target, height=0) @@ -534,9 +531,8 @@ /obj/structure/rack/attackby(obj/item/weapon/W as obj, mob/user as mob) if (istype(W, /obj/item/weapon/wrench)) - new /obj/item/weapon/rack_parts( src.loc ) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) - qdel(src) + rack_destroy() return if(isrobot(user)) @@ -559,38 +555,42 @@ "You kick [src].") if(HULK in user.mutations) - health -= 5 + rack_destroy() else health -= rand(1,2) - healthcheck() + healthcheck() /obj/structure/rack/attack_alien(mob/living/user) user.do_attack_animation(src) visible_message("[user] slices [src] apart!") - new /obj/item/weapon/rack_parts(loc) - density = 0 - qdel(src) + rack_destroy() /obj/structure/rack/attack_animal(mob/living/simple_animal/user) if(user.environment_smash) user.do_attack_animation(src) visible_message("[user] smashes [src] apart!") - new /obj/item/weapon/rack_parts(loc) - density = 0 - qdel(src) + rack_destroy() /obj/structure/rack/attack_tk() // no telehulk sorry return /obj/structure/rack/proc/healthcheck() if(health <= 0) - density = 0 - var/obj/item/weapon/rack_parts/newparts = new(loc) - transfer_fingerprints_to(newparts) - qdel(src) + rack_destroy() return +/* + * Rack destruction + */ + +/obj/structure/rack/proc/rack_destroy() + density = 0 + var/obj/item/weapon/rack_parts/newparts = new(loc) + transfer_fingerprints_to(newparts) + qdel(src) + + /* * Rack Parts */ diff --git a/code/game/objects/structures/transit_tubes/transit_tube.dm b/code/game/objects/structures/transit_tubes/transit_tube.dm index 12bfc62e84d..871ffe59b0f 100644 --- a/code/game/objects/structures/transit_tubes/transit_tube.dm +++ b/code/game/objects/structures/transit_tubes/transit_tube.dm @@ -44,7 +44,7 @@ obj/structure/transit_tube/ex_act(severity, target) for(var/obj/structure/transit_tube_pod/pod in src.loc) user << "Remove the pod first." return - user.visible_message("[user] starts to deattach the [src]!", "You start deattaching the [name]...") + user.visible_message("[user] starts to deattach \the [src]!", "You start deattaching the [name]...") playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) if(do_after(user, 35)) user << "You deattach the [name]!" diff --git a/code/game/objects/structures/transit_tubes/transit_tube_pod.dm b/code/game/objects/structures/transit_tubes/transit_tube_pod.dm index 9e9afcc61dc..eeaa29e8a85 100644 --- a/code/game/objects/structures/transit_tubes/transit_tube_pod.dm +++ b/code/game/objects/structures/transit_tubes/transit_tube_pod.dm @@ -31,11 +31,11 @@ for(var/obj/structure/transit_tube/station/T in loc) return if(src.contents.len) - user.visible_message("[user] empties the [src].", "You empty the [src].") + user.visible_message("[user] empties \the [src].", "You empty \the [src].") src.empty() return else - user << "You free the [src]." + user << "You free \the [src]." var/obj/structure/c_transit_tube_pod/R = new/obj/structure/c_transit_tube_pod(src.loc) src.transfer_fingerprints_to(R) R.add_fingerprint(user) diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 62b181272f2..775656ead7d 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -18,8 +18,10 @@ /obj/structure/toilet/attack_hand(mob/living/user) if(swirlie) - user.visible_message("[user] slams the toilet seat onto [swirlie]'s head!", "You slam the toilet seat onto [swirlie]'s head!", "You hear reverberating porcelain.") - swirlie.adjustBruteLoss(8) + user.changeNext_move(CLICK_CD_MELEE) + playsound(src.loc, "swing_hit", 25, 1) + swirlie.visible_message("[user] slams the toilet seat onto [swirlie]'s head!", "[user] slams the toilet seat onto [swirlie]'s head!", "You hear reverberating porcelain.") + swirlie.adjustBruteLoss(5) return if(cistern && !open) @@ -55,6 +57,7 @@ return if(istype(I, /obj/item/weapon/grab)) + user.changeNext_move(CLICK_CD_MELEE) var/obj/item/weapon/grab/G = I if(!G.confirm()) return @@ -64,21 +67,23 @@ if(GM.loc != get_turf(src)) user << "[GM] needs to be on [src]." return - if(open && !swirlie) - user.visible_message("[user] starts to give [GM] a swirlie!", "You start to give [GM] a swirlie!") - swirlie = GM - if(do_after(user, 30, 5, 0)) - user.visible_message("[user] gives [GM] a swirlie!", "You give [GM] a swirlie!", "You hear a toilet flushing.") - if(iscarbon(GM)) - var/mob/living/carbon/C = GM - if(!C.internal) - C.adjustOxyLoss(5) - else - GM.adjustOxyLoss(5) - swirlie = null - else - user.visible_message("[user] slams [GM.name] into the [src]!", "You slam [GM] into [src]!") - GM.adjustBruteLoss(8) + if(!swirlie) + if(open) + GM.visible_message("[user] starts to give [GM] a swirlie!", "[user] starts to give [GM] a swirlie!") + swirlie = GM + if(do_after(user, 30, 5, 0)) + GM.visible_message("[user] gives [GM] a swirlie!", "[user] gives [GM] a swirlie!", "You hear a toilet flushing.") + if(iscarbon(GM)) + var/mob/living/carbon/C = GM + if(!C.internal) + C.adjustOxyLoss(5) + else + GM.adjustOxyLoss(5) + swirlie = null + else + playsound(src.loc, 'sound/effects/bang.ogg', 25, 1) + GM.visible_message("[user] slams [GM.name] into [src]!", "[user] slams [GM.name] into [src]!") + GM.adjustBruteLoss(5) else user << "You need a tighter grip." @@ -167,7 +172,7 @@ if(I.type == /obj/item/device/analyzer) user << "The water temperature seems to be [watertemp]." if(istype(I, /obj/item/weapon/wrench)) - user << "You begin to adjust the temperature valve with the [I]." + user << "You begin to adjust the temperature valve with \the [I]." if(do_after(user, 50)) switch(watertemp) if("normal") @@ -176,7 +181,7 @@ watertemp = "boiling" if("boiling") watertemp = "normal" - user.visible_message("[user] adjusts the shower with the [I].", "You adjust the shower with the [I] to [watertemp] temperature.") + user.visible_message("[user] adjusts the shower with \the [I].", "You adjust the shower with \the [I] to [watertemp] temperature.") log_game("[key_name(user)] has wrenched a shower to [watertemp] at ([x],[y],[z])") add_hiddenprint(user) diff --git a/code/game/sound.dm b/code/game/sound.dm index b1a7042b8b3..14aace39369 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -20,8 +20,7 @@ M.playsound_local(turf_source, soundin, vol, vary, frequency, falloff, surround) -/mob/proc/playsound_local(var/turf/turf_source, soundin, vol as num, vary, frequency, falloff, surround = 1) - if(!src.client || ear_deaf > 0) return +/atom/proc/playsound_local(var/turf/turf_source, soundin, vol as num, vary, frequency, falloff, surround = 1) soundin = get_sfx(soundin) var/sound/S = sound(soundin) @@ -74,6 +73,11 @@ src << S +/mob/playsound_local(var/turf/turf_source, soundin, vol as num, vary, frequency, falloff, surround = 1) + if(!client || ear_deaf > 0) + return + ..() + /client/proc/playtitlemusic() if(!ticker || !ticker.login_music) return if(prefs.toggles & SOUND_LOBBY) @@ -96,4 +100,4 @@ if ("hiss") soundin = pick('sound/voice/hiss1.ogg','sound/voice/hiss2.ogg','sound/voice/hiss3.ogg','sound/voice/hiss4.ogg') if ("pageturn") soundin = pick('sound/effects/pageturn1.ogg', 'sound/effects/pageturn2.ogg','sound/effects/pageturn3.ogg') if ("gunshot") soundin = pick('sound/weapons/Gunshot.ogg', 'sound/weapons/Gunshot2.ogg','sound/weapons/Gunshot3.ogg','sound/weapons/Gunshot4.ogg') - return soundin \ No newline at end of file + return soundin diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index 87e1fc86b4a..94bf8673290 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -161,7 +161,11 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3"," else if(prob(50)) ReplaceWithLattice() -/turf/simulated/floor/Entered() +/turf/simulated/floor/narsie_act() + if(prob(20)) + ChangeTurf(/turf/simulated/floor/engine/cult) + +/turf/simulated/floor/Entered(atom/A, atom/OL) ..() if(!ignoredirt) if(has_gravity(src)) diff --git a/code/game/turfs/simulated/floor/light_floor.dm b/code/game/turfs/simulated/floor/light_floor.dm index f1033633551..51f52b5de4c 100644 --- a/code/game/turfs/simulated/floor/light_floor.dm +++ b/code/game/turfs/simulated/floor/light_floor.dm @@ -8,7 +8,7 @@ luminosity = 5 icon_state = "light_on" floor_tile = /obj/item/stack/tile/light - broken_states = list("light-broken") + broken_states = list("light_broken") var/on = 1 var/state //0 = fine, 1 = flickering, 2 = breaking, 3 = broken diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index 7a11314a50a..bd74639bd6d 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -110,6 +110,9 @@ name = "engraved floor" icon_state = "cult" +/turf/simulated/floor/engine/cult/narsie_act() + return + /turf/simulated/floor/engine/n20/New() ..() var/datum/gas_mixture/adding = new @@ -137,8 +140,7 @@ nitrogen = 0 temperature = TCMB -/turf/simulated/floor/airless - icon_state = "floor" +/turf/simulated/floor/plasteel/airless oxygen = 0 nitrogen = 0 temperature = TCMB diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index fed36f77b71..d519784cd61 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -76,11 +76,9 @@ /turf/simulated/wall/mech_melee_attack(obj/mecha/M) if(M.damtype == "brute") playsound(src, 'sound/weapons/punch4.ogg', 50, 1) - M.occupant_message("You hit [src].") visible_message("[M.name] has hit [src]!") if(prob(5) && M.force > 20) dismantle_wall(1) - M.occupant_message("You smash through the wall.") visible_message("[src.name] smashes through the wall!") playsound(src, 'sound/effects/meteorimpact.ogg', 100, 1) @@ -286,4 +284,8 @@ return if(current_size == STAGE_FOUR) if(prob(30)) - dismantle_wall() \ No newline at end of file + dismantle_wall() + +/turf/simulated/wall/narsie_act() + if(prob(20)) + ChangeTurf(/turf/simulated/wall/cult) \ No newline at end of file diff --git a/code/game/turfs/simulated/walls_misc.dm b/code/game/turfs/simulated/walls_misc.dm index 2f773d52b04..9c6b1529172 100644 --- a/code/game/turfs/simulated/walls_misc.dm +++ b/code/game/turfs/simulated/walls_misc.dm @@ -13,6 +13,9 @@ new /obj/effect/decal/cleanable/blood(src) new /obj/effect/decal/remains/human(src) +/turf/simulated/wall/cult/narsie_act() + return + /turf/simulated/wall/vault icon_state = "rockvault" diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm index 2eb21269c60..77a5b65105e 100644 --- a/code/game/verbs/ooc.dm +++ b/code/game/verbs/ooc.dm @@ -43,6 +43,8 @@ if(prefs.toggles & MEMBER_PUBLIC) keyname = "[keyname]" + msg = emoji_parse(msg) + for(var/client/C in clients) if(C.prefs.toggles & CHAT_OOC) if(holder) @@ -109,3 +111,14 @@ var/global/normal_ooc_colour = "#002eb8" src << "
    [join_motd]
    " else src << "The Message of the Day has not been set." + +/client/proc/self_notes() + set name = "View Admin Notes" + set category = "OOC" + set desc = "View the notes that admins have written about you" + + if(!config.see_own_notes) + usr << "Sorry, that function is not enabled on this server." + return + + see_own_notes() diff --git a/code/modules/admin/admin_investigate.dm b/code/modules/admin/admin_investigate.dm index b9e4b830b69..7b128727942 100644 --- a/code/modules/admin/admin_investigate.dm +++ b/code/modules/admin/admin_investigate.dm @@ -22,12 +22,12 @@ F << "[time2text(world.timeofday,"hh:mm")] \ref[src] ([x],[y],[z]) || [src] [message]
    " //ADMINVERBS -/client/proc/investigate_show( subject in list("hrefs","notes","ntsl","singulo","wires","telesci", "gravity", "records", "cargo") ) +/client/proc/investigate_show( subject in list("hrefs","notes","ntsl","singulo","wires","telesci", "gravity", "records", "cargo", "supermatter") ) set name = "Investigate" set category = "Admin" if(!holder) return switch(subject) - if("singulo", "ntsl", "wires", "telesci", "gravity", "records", "cargo") //general one-round-only stuff + if("singulo", "ntsl", "wires", "telesci", "gravity", "records", "cargo", "supermatter") //general one-round-only stuff var/F = investigate_subject2file(subject) if(!F) src << "Error: admin_investigate: [INVESTIGATE_DIR][subject] is an invalid path or cannot be accessed." diff --git a/code/modules/admin/player_notes.dm b/code/modules/admin/player_notes.dm index c906cd1b778..26c5719eddf 100644 --- a/code/modules/admin/player_notes.dm +++ b/code/modules/admin/player_notes.dm @@ -4,13 +4,35 @@ #define NOTESFILE "data/player_notes.sav" //where the player notes are saved +/proc/see_own_notes() + if(!config.see_own_notes) + return + var/ckey = usr.client.ckey + if(!ckey) + usr << "Error: No ckey found." + return + var/savefile/notesfile = new(NOTESFILE) + if(!notesfile) + usr << "Error: Cannot access [NOTESFILE]" + return + notesfile.cd = "/[ckey]" + var/dat = "Notes for [ckey]:
    " + while(!notesfile.eof) + var/note + notesfile >> note + dat += note + var/datum/browser/popup = new(usr, "player_notes", "Player Notes", 700, 400) + popup.set_content(dat) + popup.open() + + datum/admins/proc/notes_show(var/ckey) usr << browse("Player Notes[notes_gethtml(ckey)]","window=player_notes;size=700x400") datum/admins/proc/notes_gethtml(var/ckey) var/savefile/notesfile = new(NOTESFILE) - if(!notesfile) return "Error: Cannot access [NOTESFILE]" + if(!notesfile) return "Error: Cannot access [NOTESFILE]" if(ckey) . = "Notes for [ckey]: \[+\]
    " notesfile.cd = "/[ckey]" diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 2cd0c18a2ae..d7572a1353f 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1872,11 +1872,25 @@ if("guns") feedback_inc("admin_secrets_fun_used",1) feedback_add_details("admin_secrets_fun_used","SG") - rightandwrong(0, usr) + var/survivor_probability = 0 + switch(alert("Do you want this to create survivors antagonists?",,"No Antags","Some Antags","All Antags!")) + if("Some Antags") + survivor_probability = 25 + if("All Antags!") + survivor_probability = 100 + + rightandwrong(0, usr, survivor_probability) if("magic") feedback_inc("admin_secrets_fun_used",1) feedback_add_details("admin_secrets_fun_used","SM") - rightandwrong(1, usr) + var/survivor_probability = 0 + switch(alert("Do you want this to create survivors antagonists?",,"No Antags","Some Antags","All Antags!")) + if("Some Antags") + survivor_probability = 25 + if("All Antags!") + survivor_probability = 100 + + rightandwrong(1, usr, survivor_probability) if("events") if(events && !events.wizardmode) if(alert("Do you want to toggle summon events on?",,"Yes","No") == "Yes") diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index 038d9d88553..39b8899c4b2 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -68,6 +68,8 @@ msg = sanitize(copytext(msg,1,MAX_MESSAGE_LEN)) if(!msg) return + msg = emoji_parse(msg) + if(C.holder) if(holder) //both are admins C << "Admin PM from-[key_name(src, C, 1)]: [msg]" diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 914fbef7c0d..19729a99342 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -705,7 +705,7 @@ var/global/list/g_fancy_list_of_types = null if ("laser tag red") M.equip_to_slot_or_del(new /obj/item/clothing/under/color/red(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/red(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/clothing/gloves/red(M), slot_gloves) + M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/red(M), slot_gloves) M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/redtaghelm(M), slot_head) M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) M.equip_to_slot_or_del(new /obj/item/clothing/suit/redtag(M), slot_wear_suit) @@ -716,7 +716,7 @@ var/global/list/g_fancy_list_of_types = null if ("laser tag blue") M.equip_to_slot_or_del(new /obj/item/clothing/under/color/blue(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/blue(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/clothing/gloves/blue(M), slot_gloves) + M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/blue(M), slot_gloves) M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/bluetaghelm(M), slot_head) M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) M.equip_to_slot_or_del(new /obj/item/clothing/suit/bluetag(M), slot_wear_suit) @@ -743,7 +743,7 @@ var/global/list/g_fancy_list_of_types = null if("tunnel clown")//Tunnel clowns rule! M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/clown(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/clown_shoes(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(M), slot_gloves) + M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black(M), slot_gloves) M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(M), slot_wear_mask) M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/monocle(M), slot_glasses) @@ -764,7 +764,7 @@ var/global/list/g_fancy_list_of_types = null if("masked killer") M.equip_to_slot_or_del(new /obj/item/clothing/under/overalls(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/white(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(M), slot_gloves) + M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/latex(M), slot_gloves) M.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(M), slot_wear_mask) M.equip_to_slot_or_del(new /obj/item/clothing/head/welding(M), slot_head) M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) @@ -785,7 +785,7 @@ var/global/list/g_fancy_list_of_types = null M.equip_to_slot_or_del(U, slot_w_uniform) U.attachTie(new /obj/item/clothing/tie/waistcoat(M)) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(M), slot_gloves) + M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black(M), slot_gloves) M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_glasses) M.equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword/saber(M), slot_l_store) @@ -821,7 +821,7 @@ var/global/list/g_fancy_list_of_types = null if("centcom official") M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(M), slot_gloves) + M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black(M), slot_gloves) M.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_com(M), slot_ears) M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_glasses) M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(M), slot_belt) @@ -951,7 +951,7 @@ var/global/list/g_fancy_list_of_types = null if("mobster") M.equip_to_slot_or_del(new /obj/item/clothing/head/fedora(M), slot_head) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(M), slot_gloves) + M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black(M), slot_gloves) M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_glasses) M.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/automatic/tommygun(M), slot_r_hand) diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm index 5c76dc8b1f1..f2c1e93930a 100644 --- a/code/modules/assembly/assembly.dm +++ b/code/modules/assembly/assembly.dm @@ -24,30 +24,9 @@ var/const/WIRE_RADIO_RECEIVE = 8 //Allows Pulsed(1) to call Activate() var/const/WIRE_RADIO_PULSE = 16 //Allows Pulse(1) to send a radio message -/obj/item/device/assembly/proc/activate() //What the device does when turned on - return - -/obj/item/device/assembly/proc/pulsed(var/radio = 0) //Called when another assembly acts on this one, var/radio will determine where it came from for wire calcs - return - -/obj/item/device/assembly/proc/pulse(var/radio = 0) //Called when this device attempts to act on another device, var/radio determines if it was sent via radio or direct - return - -/obj/item/device/assembly/proc/toggle_secure() //Code that has to happen when the assembly is un\secured goes here - return - -/obj/item/device/assembly/proc/attach_assembly(var/obj/A, var/mob/user) //Called when an assembly is attacked by another - return - -/obj/item/device/assembly/proc/process_cooldown() //Called via spawn(10) to have it count down the cooldown var - return - /obj/item/device/assembly/proc/holder_movement() //Called when the holder is moved return -/obj/item/device/assembly/interact(mob/user as mob) //Called when attack_self is called - return - /obj/item/device/assembly/proc/describe() // Called by grenades to describe the state of the trigger (time left, etc) return "The trigger assembly looks broken!" @@ -59,16 +38,18 @@ return 1 - -/obj/item/device/assembly/process_cooldown() +//Called via spawn(10) to have it count down the cooldown var +/obj/item/device/assembly/proc/process_cooldown() cooldown-- - if(cooldown <= 0) return 0 + if(cooldown <= 0) + return 0 spawn(10) process_cooldown() return 1 -/obj/item/device/assembly/pulsed(var/radio = 0) +//Called when another assembly acts on this one, var/radio will determine where it came from for wire calcs +/obj/item/device/assembly/proc/pulsed(var/radio = 0) if(holder && (wires & WIRE_RECEIVE)) activate() if(radio && (wires & WIRE_RADIO_RECEIVE)) @@ -76,48 +57,41 @@ return 1 -/obj/item/device/assembly/pulse(var/radio = 0) +//Called when this device attempts to act on another device, var/radio determines if it was sent via radio or direct +/obj/item/device/assembly/proc/pulse(var/radio = 0) if(holder && (wires & WIRE_PULSE)) holder.process_activation(src, 1, 0) if(holder && (wires & WIRE_PULSE_SPECIAL)) holder.process_activation(src, 0, 1) - - if(istype(loc,/obj/item/weapon/grenade)) // This is a hack. Todo: Manage this better -Sayu - var/obj/item/weapon/grenade/G = loc - G.prime() // Adios, muchachos -// if(radio && (wires & WIRE_RADIO_PULSE)) - //Not sure what goes here quite yet send signal? return 1 -/obj/item/device/assembly/activate() - if(!secured || (cooldown > 0)) return 0 +// What the device does when turned on +/obj/item/device/assembly/proc/activate() + if(!secured || (cooldown > 0)) + return 0 cooldown = 2 spawn(10) process_cooldown() return 1 -/obj/item/device/assembly/toggle_secure() +/obj/item/device/assembly/proc/toggle_secure() secured = !secured update_icon() return secured -/obj/item/device/assembly/attach_assembly(var/obj/item/device/assembly/A, var/mob/user) - holder = new/obj/item/device/assembly_holder(get_turf(src)) - if(holder.attach(A,src,user)) - user << "You attach \the [A] to \the [src]!" - return 1 - return 0 - - /obj/item/device/assembly/attackby(obj/item/weapon/W as obj, mob/user as mob) if(isassembly(W)) var/obj/item/device/assembly/A = W if((!A.secured) && (!secured)) - attach_assembly(A,user) - return + holder = new/obj/item/device/assembly_holder(get_turf(src)) + holder.assemble(src,A,user) + user << "You attach and secure \the [A] to \the [src]!" + else + user << "Both devices must be in attachable mode to be attached together." + return if(istype(W, /obj/item/weapon/screwdriver)) if(toggle_secure()) user << "\The [src] is ready!" @@ -142,7 +116,8 @@ /obj/item/device/assembly/attack_self(mob/user as mob) - if(!user) return 0 + if(!user) + return 0 user.set_machine(src) interact(user) return 1 @@ -151,40 +126,3 @@ /obj/item/device/assembly/interact(mob/user as mob) return //HTML MENU FOR WIRES GOES HERE -/* - var/small_icon_state = null//If this obj will go inside the assembly use this for icons - var/list/small_icon_state_overlays = null//Same here - var/obj/holder = null - var/cooldown = 0//To prevent spam - - proc - Activate()//Called when this assembly is pulsed by another one - Process_cooldown()//Call this via spawn(10) to have it count down the cooldown var - Attach_Holder(var/obj/H, var/mob/user)//Called when an assembly holder attempts to attach, sets src's loc in here - - - Activate() - if(cooldown > 0) - return 0 - cooldown = 2 - spawn(10) - Process_cooldown() - //Rest of code here - return 0 - - - Process_cooldown() - cooldown-- - if(cooldown <= 0) return 0 - spawn(10) - Process_cooldown() - return 1 - - - Attach_Holder(var/obj/H, var/mob/user) - if(!H) return 0 - if(!H.IsAssemblyHolder()) return 0 - //Remember to have it set its loc somewhere in here - - -*/ diff --git a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm index 9cbf195ef97..755074c2855 100644 --- a/code/modules/assembly/bomb.dm +++ b/code/modules/assembly/bomb.dm @@ -87,8 +87,6 @@ /obj/item/weapon/tank/proc/bomb_assemble(W,user) //Bomb assembly proc. This turns assembly+tank into a bomb var/obj/item/device/assembly_holder/S = W var/mob/M = user - if(!S.secured) //Check if the assembly is secured - return if(isigniter(S.a_left) == isigniter(S.a_right)) //Check if either part of the assembly has an igniter, but if both parts are igniters, then fuck it return diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm index 3bd27af3549..1ef63734a9f 100644 --- a/code/modules/assembly/holder.dm +++ b/code/modules/assembly/holder.dm @@ -9,37 +9,29 @@ throw_speed = 2 throw_range = 7 - var/secured = 0 var/obj/item/device/assembly/a_left = null var/obj/item/device/assembly/a_right = null -/obj/item/device/assembly_holder/proc/attach(var/obj/item/device/D, var/obj/item/device/D2, var/mob/user) - return - -/obj/item/device/assembly_holder/proc/process_activation(var/obj/item/device/D) - return - /obj/item/device/assembly_holder/IsAssemblyHolder() return 1 -/obj/item/device/assembly_holder/attach(var/obj/item/device/D, var/obj/item/device/D2, var/mob/user) - if((!D)||(!D2)) return 0 - if((!isassembly(D))||(!isassembly(D2))) return 0 - if((D:secured)||(D2:secured)) return 0 - if(user) - user.remove_from_mob(D) - user.remove_from_mob(D2) - D:holder = src - D2:holder = src - D.loc = src - D2.loc = src - a_left = D - a_right = D2 - name = "[D.name]-[D2.name] assembly" +/obj/item/device/assembly_holder/proc/assemble(var/obj/item/device/assembly/A, var/obj/item/device/assembly/A2, var/mob/user) + attach(A,user) + attach(A2,user) + name = "[A.name]-[A2.name] assembly" update_icon() - return 1 +/obj/item/device/assembly_holder/proc/attach(var/obj/item/device/assembly/A, var/mob/user) + if(user) + user.remove_from_mob(A) + A.holder = src + A.loc = src + A.toggle_secure() + if(!a_left) + a_left = A + else + a_right = A /obj/item/device/assembly_holder/update_icon() overlays.Cut() @@ -54,16 +46,6 @@ if(master) master.update_icon() - -/obj/item/device/assembly_holder/examine(mob/user) - ..() - if(secured) - user << "\The [src] is secured and ready to be used." - else - user << "\The [src] can be attached to other things." - - - /obj/item/device/assembly_holder/HasProximity(atom/movable/AM as mob|obj) if(a_left) a_left.HasProximity(AM) @@ -88,7 +70,7 @@ if(a_left && a_right) a_left.holder_movement() a_right.holder_movement() - return + return /obj/item/device/assembly_holder/attack_hand()//Perhapse this should be a holder_pickup proc instead, can add if needbe I guess if(a_left && a_right) @@ -97,55 +79,39 @@ ..() return - /obj/item/device/assembly_holder/attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype(W, /obj/item/weapon/screwdriver)) - if(!a_left || !a_right) - user << "BUG:Assembly part missing, please report this!" - return - a_left.toggle_secure() - a_right.toggle_secure() - secured = !secured - if(secured) - user << "\The [src] is ready!" - else - user << "\The [src] can now be taken apart!" - update_icon() - return + var/turf/T = get_turf(src) + if(!T) + return 0 + if(a_left) + a_left.holder = null + a_left.loc = T + if(a_right) + a_right.holder = null + a_right.loc = T + qdel(src) else ..() - return - /obj/item/device/assembly_holder/attack_self(mob/user as mob) src.add_fingerprint(user) - if(src.secured) - if(!a_left || !a_right) - user << "Assembly part missing!" - return - if(istype(a_left,a_right.type))//If they are the same type it causes issues due to window code - switch(alert("Which side would you like to use?",,"Left","Right")) - if("Left") a_left.attack_self(user) - if("Right") a_right.attack_self(user) - return - else - a_left.attack_self(user) - a_right.attack_self(user) + if(!a_left || !a_right) + user << "Assembly part missing!" + return + if(istype(a_left,a_right.type))//If they are the same type it causes issues due to window code + switch(alert("Which side would you like to use?",,"Left","Right")) + if("Left") a_left.attack_self(user) + if("Right") a_right.attack_self(user) + return else - var/turf/T = get_turf(src) - if(!T) return 0 - if(a_left) - a_left:holder = null - a_left.loc = T - if(a_right) - a_right:holder = null - a_right.loc = T - qdel(src) - return + a_left.attack_self(user) + a_right.attack_self(user) -/obj/item/device/assembly_holder/process_activation(var/obj/D, var/normal = 1, var/special = 1) - if(!D) return 0 +/obj/item/device/assembly_holder/proc/process_activation(var/obj/D, var/normal = 1, var/special = 1) + if(!D) + return 0 if((normal) && (a_right) && (a_left)) if(a_right != D) a_right.pulsed(0) diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 841c66b5e3a..cbc3d644c76 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -130,7 +130,7 @@ corpsegloves = /obj/item/clothing/gloves/combat corpseradio = /obj/item/device/radio/headset corpsemask = /obj/item/clothing/mask/gas - corpsehelmet = /obj/item/clothing/head/helmet/swat/syndicate + corpsehelmet = /obj/item/clothing/head/helmet/swat corpseback = /obj/item/weapon/storage/backpack corpseid = 1 corpseidjob = "Operative" @@ -157,8 +157,8 @@ ///////////Civilians////////////////////// -/obj/effect/landmark/corpse/chef - name = "Chef" +/obj/effect/landmark/corpse/cook + name = "Cook" corpseuniform = /obj/item/clothing/under/rank/chef corpsesuit = /obj/item/clothing/suit/chef/classic corpseshoes = /obj/item/clothing/shoes/sneakers/black @@ -166,8 +166,8 @@ corpseback = /obj/item/weapon/storage/backpack corpseradio = /obj/item/device/radio/headset corpseid = 1 - corpseidjob = "Chef" - corpseidaccess = "Chef" + corpseidjob = "Cook" + corpseidaccess = "Cook" /obj/effect/landmark/corpse/doctor @@ -189,7 +189,7 @@ corpseback = /obj/item/weapon/storage/backpack/industrial corpseshoes = /obj/item/clothing/shoes/sneakers/orange corpsebelt = /obj/item/weapon/storage/belt/utility/full - corpsegloves = /obj/item/clothing/gloves/yellow + corpsegloves = /obj/item/clothing/gloves/color/yellow corpsehelmet = /obj/item/clothing/head/hardhat corpseid = 1 corpseidjob = "Station Engineer" diff --git a/code/modules/awaymissions/maploader/reader.dm b/code/modules/awaymissions/maploader/reader.dm index 7ef70f87ae2..381b167fb6e 100644 --- a/code/modules/awaymissions/maploader/reader.dm +++ b/code/modules/awaymissions/maploader/reader.dm @@ -2,6 +2,9 @@ //SS13 Optimized Map loader ////////////////////////////////////////////////////////////// +//global datum that will preload variables on atoms instanciation +var/global/dmm_suite/preloader/_preloader = null + /** * Construct the model map and control the loading process @@ -163,7 +166,7 @@ //first instance the /area and remove it from the members list index = members.len var/atom/instance - var/dmm_suite/preloader/_preloader = new(members_attributes[index])//preloader for assigning set variables on atom creation + _preloader = new(members_attributes[index])//preloader for assigning set variables on atom creation instance = locate(members[index]) instance.contents.Add(locate(xcrd,ycrd,zcrd)) @@ -191,34 +194,6 @@ T = UT index++ - - //Replace the previous part of the code with this if it's unsafe to assume tiles have ALWAYS an /area AND a /turf - /*while(members.len > 0) - var/length = members.len - var/member = members[length] - - if(ispath(member,/area)) - var/atom/instance - var/dmm_suite/preloader/_preloader = new(members_attributes[length]) - - instance = locate(member) - instance.contents.Add(locate(xcrd,ycrd,zcrd)) - - if(_preloader && instance) - _preloader.load(instance) - - members.Remove(member) - continue - - else if(ispath(member,/turf)) - instance_atom(member,members_attributes[length],xcrd,ycrd,zcrd) - members.Remove(member) - continue - - else - break - */ - //finally instance all remainings objects/mobs for(index=1,index < first_turf_index,index++) instance_atom(members[index],members_attributes[index],xcrd,ycrd,zcrd) @@ -230,11 +205,11 @@ //Instance an atom at (x,y,z) and gives it the variables in attributes /dmm_suite/proc/instance_atom(var/path,var/list/attributes, var/x, var/y, var/z) var/atom/instance - var/dmm_suite/preloader/_preloader = new(attributes) + _preloader = new(attributes, path) - instance = new path (locate(x,y,z), _preloader)//first preloader pass + instance = new path (locate(x,y,z))//first preloader pass - if(_preloader && instance)//second preloader pass, as some variables may have been reset/changed by New() + if(_preloader && instance)//second preloader pass, for those atoms that don't ..() in New() _preloader.load(instance) return instance @@ -242,9 +217,9 @@ //text trimming (both directions) helper proc //optionally removes quotes before and after the text (for variable name) /dmm_suite/proc/trim_text(var/what as text,var/trim_quotes=0) - while(length(what) && (findtext(what," ",1,2)))// || findtext(what,quote,1,2))) + while(length(what) && (findtext(what," ",1,2))) what=copytext(what,2,0) - while(length(what) && (findtext(what," ",length(what),0)))// || findtext(what,quote,length(what),0))) + while(length(what) && (findtext(what," ",length(what),0))) what=copytext(what,1,length(what)) if(trim_quotes) while(length(what) && (findtext(what,quote,1,2))) @@ -298,14 +273,18 @@ else if(isnum(text2num(trim_right))) trim_right = text2num(trim_right) - //Check for file - else if(copytext(trim_right,1,2) == "'") - trim_right = file(copytext(trim_right,2,length(trim_right))) + //Check for null + else if(trim_right == "null") + trim_right = null //Check for list else if(copytext(trim_right,1,5) == "list") trim_right = text2list(copytext(trim_right,6,length(trim_right))) + //Check for file + else if(copytext(trim_right,1,2) == "'") + trim_right = file(copytext(trim_right,2,length(trim_right))) + to_return[trim_left] = trim_right else//simple var @@ -323,10 +302,11 @@ placed.opacity = 1 placed.underlays += turfs_underlays -//atom creation method that preloads variables before creation -/atom/New(atom/loc, dmm_suite/preloader/_dmm_preloader) - if(istype(_dmm_preloader, /dmm_suite/preloader)) - _dmm_preloader.load(src) +//atom creation method that preloads variables at creation +/atom/New() + if(_preloader && (src.type == _preloader.target_path))//in case the instanciated atom is creating other atoms in New() + _preloader.load(src) + . = ..() ////////////////// @@ -336,12 +316,15 @@ /dmm_suite/preloader parent_type = /datum var/list/attributes + var/target_path -/dmm_suite/preloader/New(list/the_attributes) +/dmm_suite/preloader/New(var/list/the_attributes, var/path) .=..() if(!the_attributes.len) Del() + return attributes = the_attributes + target_path = path /dmm_suite/preloader/proc/load(atom/what) for(var/attribute in attributes) diff --git a/code/modules/awaymissions/mission_code/stationCollision.dm b/code/modules/awaymissions/mission_code/stationCollision.dm index a97d1f13f30..b8cfb519a50 100644 --- a/code/modules/awaymissions/mission_code/stationCollision.dm +++ b/code/modules/awaymissions/mission_code/stationCollision.dm @@ -163,7 +163,7 @@ var/sc_safecode5 = "[rand(0,9)]" desc = "Your body becomes weak and your feel your mind slipping away as you try to comprehend what you know can't be possible." move_self = 0 //Contianed narsie does not move! grav_pull = 0 //Contained narsie does not pull stuff in! - + var/uneatable = list(/turf/space, /obj/effect/overlay, /mob/living/simple_animal/construct) //Override this to prevent no adminlog runtimes and admin warnings about a singularity without containment /obj/singularity/narsie/sc_Narsie/admin_investigate_setup() return diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index ae95989af85..324096d42af 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -133,6 +133,7 @@ var/next_external_rsc = 0 if((global.comms_key == "default_pwd" || length(global.comms_key) <= 6) && global.comms_allowed) //It's the default value or less than 6 characters long, but it somehow didn't disable comms. src << "The server's API key is either too short or is the default value! Consider changing it immediately!" + add_verbs_from_config() set_client_age_from_db() if (!ticker || ticker.current_state == GAME_STATE_PREGAME) @@ -218,6 +219,10 @@ var/next_external_rsc = 0 var/DBQuery/query_accesslog = dbcon.NewQuery("INSERT INTO `[format_table_name("connection_log")]` (`id`,`datetime`,`serverip`,`ckey`,`ip`,`computerid`) VALUES(null,Now(),'[serverip]','[sql_ckey]','[sql_ip]','[sql_computerid]');") query_accesslog.Execute() +/client/proc/add_verbs_from_config() + if(config.see_own_notes) + verbs += /client/proc/self_notes + #undef TOPIC_SPAM_DELAY #undef UPLOAD_LIMIT @@ -306,4 +311,4 @@ var/next_external_rsc = 0 'icons/stamp_icons/large_stamp-cap.png', 'icons/stamp_icons/large_stamp-qm.png', 'icons/stamp_icons/large_stamp-law.png' - ) + ) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 3c54a472e40..04cb1330169 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -274,22 +274,24 @@ atom/proc/generate_female_clothing(index,t_color,icon) if(src.has_sensor <= 0) usr << "This suit does not have any sensors." return 0 - src.sensor_mode += 1 - if(src.sensor_mode > 3) - src.sensor_mode = 0 - switch(src.sensor_mode) - if(0) - M << "You disable your suit's remote sensing equipment." - if(1) - M << "Your suit will now report whether you are live or dead." - if(2) - M << "Your suit will now report your vital lifesigns." - if(3) - M << "Your suit will now report your vital lifesigns as well as your coordinate position." - if(istype(loc,/mob/living/carbon/human)) - var/mob/living/carbon/human/H = loc - if(H.w_uniform == src) - H.update_suit_sensors() + + var/list/modes = list("Off", "Binary vitals", "Exact vitals", "Tracking beacon") + var/switchMode = input("Select a sensor mode:", "Suit Sensor Mode", modes[sensor_mode + 1]) in modes + if(get_dist(usr, src) > 1) + usr << "You have moved too far away." + return + sensor_mode = modes.Find(switchMode) - 1 + + if (src.loc == usr) + switch(sensor_mode) + if(0) + usr << "You disable your suit's remote sensing equipment." + if(1) + usr << "Your suit will now only report whether you are alive or dead." + if(2) + usr << "Your suit will now only report your exact vital lifesigns." + if(3) + usr << "Your suit will now report your exact vital lifesigns as well as your coordinate position." ..() /obj/item/clothing/under/verb/rolldown() @@ -348,7 +350,7 @@ atom/proc/generate_female_clothing(index,t_color,icon) flags |= (visor_flags) flags_inv |= (visor_flags_inv) icon_state = initial(icon_state) - usr << "You pull the [src] down." + usr << "You pull \the [src] down." flash_protect = initial(flash_protect) tint = initial(tint) else @@ -356,7 +358,7 @@ atom/proc/generate_female_clothing(index,t_color,icon) flags &= ~(visor_flags) flags_inv &= ~(visor_flags_inv) icon_state = "[initial(icon_state)]up" - usr << "You push the [src] up." + usr << "You push \the [src] up." flash_protect = 0 tint = 0 diff --git a/code/modules/clothing/gloves/boxing.dm b/code/modules/clothing/gloves/boxing.dm index e8fb6f0cadb..367abe770af 100644 --- a/code/modules/clothing/gloves/boxing.dm +++ b/code/modules/clothing/gloves/boxing.dm @@ -17,13 +17,3 @@ /obj/item/clothing/gloves/boxing/yellow icon_state = "boxingyellow" item_state = "boxingyellow" - -/obj/item/clothing/gloves/white - name = "white gloves" - desc = "These look pretty fancy." - icon_state = "latex" - item_state = "lgloves" - item_color="mime" - - redcoat - item_color = "redcoat" //Exists for washing machines. Is not different from white gloves in any way. diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index bc224be8552..6904b2c1ded 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -1,4 +1,4 @@ -/obj/item/clothing/gloves/yellow +/obj/item/clothing/gloves/color/yellow desc = "These gloves will protect the wearer from electric shock." name = "insulated gloves" icon_state = "yellow" @@ -7,118 +7,153 @@ permeability_coefficient = 0.05 item_color="yellow" -/obj/item/clothing/gloves/fyellow //Cheap Chinese Crap +/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." name = "budget insulated gloves" icon_state = "yellow" item_state = "ygloves" siemens_coefficient = 1 //Set to a default of 1, gets overridden in New() permeability_coefficient = 0.05 - item_color="yellow" - New() - siemens_coefficient = pick(0,0.5,0.5,0.5,0.5,0.75,1.5) +/obj/item/clothing/gloves/color/fyellow/New() + siemens_coefficient = pick(0,0.5,0.5,0.5,0.5,0.75,1.5) -/obj/item/clothing/gloves/black +/obj/item/clothing/gloves/color/black desc = "These gloves are fire-resistant." name = "black gloves" icon_state = "black" item_state = "bgloves" item_color="brown" - cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT heat_protection = HANDS max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT - hos - item_color = "hosred" //Exists for washing machines. Is not different from black gloves in any way. +/obj/item/clothing/gloves/color/black/hos + item_color = "hosred" //Exists for washing machines. Is not different from black gloves in any way. - ce - item_color = "chief" //Exists for washing machines. Is not different from black gloves in any way. +/obj/item/clothing/gloves/color/black/ce + item_color = "chief" //Exists for washing machines. Is not different from black gloves in any way. -/obj/item/clothing/gloves/black/attackby(obj/item/weapon/W as obj, mob/user as mob) +/obj/item/clothing/gloves/color/black/attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype(W, /obj/item/weapon/wirecutters)) - user << "You snip the fingertips off of [src]." - playsound(user.loc,'sound/items/Wirecutter.ogg', rand(10,50), 1) - var/obj/item/clothing/gloves/fingerless/fingerless_gloves = new /obj/item/clothing/gloves/fingerless(user.loc) - fingerless_gloves.icon_state = icon_state - qdel(src) + if(icon_state == initial(icon_state)) //only if not dyed + user << "You snip the fingertips off of [src]." + playsound(user.loc,'sound/items/Wirecutter.ogg', rand(10,50), 1) + new /obj/item/clothing/gloves/fingerless(user.loc) + qdel(src) ..() -/obj/item/clothing/gloves/orange +/obj/item/clothing/gloves/color/orange name = "orange gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "orange" item_state = "orangegloves" item_color="orange" -/obj/item/clothing/gloves/red +/obj/item/clothing/gloves/color/red name = "red gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "red" item_state = "redgloves" item_color = "red" -/obj/item/clothing/gloves/rainbow +/obj/item/clothing/gloves/color/rainbow name = "rainbow gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "rainbow" item_state = "rainbowgloves" item_color = "rainbow" - clown - item_color = "clown" +/obj/item/clothing/gloves/color/rainbow/clown + item_color = "clown" -/obj/item/clothing/gloves/blue +/obj/item/clothing/gloves/color/blue name = "blue gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "blue" item_state = "bluegloves" item_color="blue" -/obj/item/clothing/gloves/purple +/obj/item/clothing/gloves/color/purple name = "purple gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "purple" item_state = "purplegloves" item_color="purple" -/obj/item/clothing/gloves/green +/obj/item/clothing/gloves/color/green name = "green gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "green" item_state = "greengloves" item_color="green" -/obj/item/clothing/gloves/grey +/obj/item/clothing/gloves/color/grey name = "grey gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "gray" item_state = "graygloves" item_color="grey" - rd - item_color = "director" //Exists for washing machines. Is not different from gray gloves in any way. +/obj/item/clothing/gloves/color/grey/rd + item_color = "director" //Exists for washing machines. Is not different from gray gloves in any way. - hop - item_color = "hop" //Exists for washing machines. Is not different from gray gloves in any way. +/obj/item/clothing/gloves/color/grey/hop + item_color = "hop" //Exists for washing machines. Is not different from gray gloves in any way. -/obj/item/clothing/gloves/light_brown +/obj/item/clothing/gloves/color/light_brown name = "light brown gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "lightbrown" item_state = "lightbrowngloves" item_color="light brown" -/obj/item/clothing/gloves/brown +/obj/item/clothing/gloves/color/brown name = "brown gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "brown" item_state = "browngloves" item_color="brown" - cargo - item_color = "cargo" //Exists for washing machines. Is not different from brown gloves in any way. \ No newline at end of file +/obj/item/clothing/gloves/color/brown/cargo + item_color = "cargo" //Exists for washing machines. Is not different from brown gloves in any way. + +/obj/item/clothing/gloves/color/captain + desc = "Regal blue gloves, with a nice gold trim. Swanky." + name = "captain's gloves" + icon_state = "captain" + item_state = "egloves" + item_color = "captain" + siemens_coefficient = 0 + permeability_coefficient = 0.05 + cold_protection = HANDS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + heat_protection = HANDS + max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT + strip_delay = 60 + +/obj/item/clothing/gloves/color/latex + name = "latex gloves" + desc = "Sterile latex gloves." + icon_state = "latex" + item_state = "lgloves" + siemens_coefficient = 0.30 + permeability_coefficient = 0.01 + item_color="white" + transfer_prints = TRUE + +/obj/item/clothing/gloves/color/latex/cmo + item_color = "medical" //Exists for washing machines. Is not different from latex gloves in any way. + +/obj/item/clothing/gloves/color/white + name = "white gloves" + desc = "These look pretty fancy." + icon_state = "latex" + item_state = "lgloves" + item_color="mime" + +/obj/item/clothing/gloves/color/white/redcoat + item_color = "redcoat" //Exists for washing machines. Is not different from white gloves in any way. diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index fc0d2172662..317ae88ac81 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -1,42 +1,15 @@ -/obj/item/clothing/gloves/captain - desc = "Regal blue gloves, with a nice gold trim. Swanky." - name = "captain's gloves" - icon_state = "captain" - item_state = "egloves" - item_color = "captain" - siemens_coefficient = 0 - permeability_coefficient = 0.05 - cold_protection = HANDS - min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT - heat_protection = HANDS - max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT - strip_delay = 60 -/obj/item/clothing/gloves/combat - name = "combat gloves" - desc = "These tactical gloves are fireproof and shock resistant." - icon_state = "black" - item_state = "bgloves" - siemens_coefficient = 0 - permeability_coefficient = 0.05 - strip_delay = 80 - cold_protection = HANDS - min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT - heat_protection = HANDS - max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT - -/obj/item/clothing/gloves/latex - name = "latex gloves" - desc = "Sterile latex gloves." - icon_state = "latex" - item_state = "lgloves" - siemens_coefficient = 0.30 - permeability_coefficient = 0.01 - item_color="white" +/obj/item/clothing/gloves/fingerless + name = "fingerless gloves" + desc = "Plain black gloves without fingertips for the hard working." + icon_state = "fingerless" + item_state = "fingerless" + item_color = null //So they don't wash. transfer_prints = TRUE - - cmo - item_color = "medical" //Exists for washing machines. Is not different from latex gloves in any way. + strip_delay = 40 + put_on_delay = 20 + cold_protection = HANDS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT /obj/item/clothing/gloves/botanic_leather name = "botanist's leather gloves" @@ -49,14 +22,15 @@ heat_protection = HANDS max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT -/obj/item/clothing/gloves/fingerless - name = "fingerless gloves" - desc = "Plain black gloves without fingertips for the hard working." - icon_state = "fingerless" - item_state = "fingerless" - item_color = null //So they don't wash. - transfer_prints = TRUE - strip_delay = 40 - put_on_delay = 20 +/obj/item/clothing/gloves/combat + name = "combat gloves" + desc = "These tactical gloves are fireproof and shock resistant." + icon_state = "black" + item_state = "bgloves" + siemens_coefficient = 0 + permeability_coefficient = 0.05 + strip_delay = 80 cold_protection = HANDS - min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT \ No newline at end of file + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + heat_protection = HANDS + max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT \ No newline at end of file diff --git a/code/modules/clothing/gloves/ninja.dm b/code/modules/clothing/gloves/ninja.dm index 3ec928c9e29..0b05f32fb8d 100644 --- a/code/modules/clothing/gloves/ninja.dm +++ b/code/modules/clothing/gloves/ninja.dm @@ -46,65 +46,39 @@ if(!proximity) // todo: you could add ninja stars or computer hacking here return 0 - // Move an AI into and out of things - if(istype(A,/mob/living/silicon/ai)) - if(suit.s_control) - A.add_fingerprint(H) - suit.transfer_ai("AICORE", "NINJASUIT", A, H) - return 1 - else - H << "ERROR: \black Remote access channel disabled." - return 0 - - if(istype(A,/obj/structure/AIcore/deactivated)) - if(suit.s_control) - A.add_fingerprint(H) - suit.transfer_ai("INACTIVE","NINJASUIT",A, H) - return 1 - else - H << "ERROR: \black Remote access channel disabled." - return 0 - if(istype(A,/obj/machinery/computer/aifixer)) - if(suit.s_control) - A.add_fingerprint(H) - suit.transfer_ai("AIFIXER","NINJASUIT",A, H) - return 1 - else - H << "ERROR: \black Remote access channel disabled." - return 0 + A.add_fingerprint(H) // steal energy from powered things if(istype(A,/mob/living/silicon/robot)) - A.add_fingerprint(H) drain("CYBORG",A,suit) return 1 + if(istype(A,/obj/machinery/power/apc)) - A.add_fingerprint(H) drain("APC",A,suit) return 1 + if(istype(A,/obj/structure/cable)) - A.add_fingerprint(H) drain("WIRE",A,suit) return 1 + if(istype(A,/obj/structure/grille)) var/obj/structure/cable/C = locate() in A.loc if(C) drain("WIRE",C,suit) return 1 + if(istype(A,/obj/machinery/power/smes)) - A.add_fingerprint(H) drain("SMES",A,suit) return 1 + if(istype(A,/obj/mecha)) - A.add_fingerprint(H) drain("MECHA",A,suit) return 1 - // download research - if(istype(A,/obj/machinery/computer/rdconsole)) - A.add_fingerprint(H) + if(istype(A,/obj/machinery/computer/rdconsole)) // download research drain("RESEARCH",A,suit) return 1 + if(istype(A,/obj/machinery/r_n_d/server)) A.add_fingerprint(H) var/obj/machinery/r_n_d/server/S = A @@ -116,3 +90,15 @@ drain("RESEARCH",A,suit) return 1 + //do AI transfers + if(istype(A,/mob/living/silicon/ai)) + suit.NAI.transfer_ai("AICORE", "AICARD", A, H) + return 1 + + if(istype(A,/obj/structure/AIcore/deactivated)) + suit.NAI.transfer_ai("INACTIVE","AICARD",A, H) + return 1 + + if(istype(A,/obj/machinery/computer/aifixer)) + suit.NAI.transfer_ai("AIFIXER","AICARD",A, H) + return 1 diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index de811f2cbae..1ff1a32b9d0 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -32,14 +32,14 @@ flags |= (visor_flags) flags_inv |= (visor_flags_inv) icon_state = initial(icon_state) - usr << "You pull the [src] down." + usr << "You pull \the [src] down." usr.update_inv_head(0) else up = !up flags &= ~(visor_flags) flags_inv &= ~(visor_flags_inv) icon_state = "[initial(icon_state)]up" - usr << "You push the [src] up." + usr << "You push \the [src] up." usr.update_inv_head(0) /obj/item/clothing/head/helmet/swat @@ -54,19 +54,6 @@ max_heat_protection_temperature = SPACE_HELM_MAX_TEMP_PROTECT strip_delay = 80 -/obj/item/clothing/head/helmet/bulletproof - name = "tactical helmet" - desc = "An advanced helmet designed to protect against traditional projectile weaponry and explosives." - icon_state = "bulletproof" - armor = list(melee = 25, bullet = 60, laser = 25, energy = 10, bomb = 40, bio = 0, rad = 0) - strip_delay = 70 - -/obj/item/clothing/head/helmet/swat/syndicate - name = "blood-red helmet" - desc = "An extremely robust, space-worthy helmet that lacks a visor to allow for goggle usage underneath. Property of Gorlex Marauders." - icon_state = "helmetsyndi" - item_state = "helmet" - /obj/item/clothing/head/helmet/thunderdome name = "\improper Thunderdome helmet" desc = "'Let the battle commence!'" diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 1a25b642c24..256138f8beb 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -44,7 +44,6 @@ name = "detective's fedora" desc = "There's only one man who can sniff out the dirty stench of crime, and he's likely wearing this hat." icon_state = "detective" - allowed = list(/obj/item/weapon/reagent_containers/food/snacks/candy_corn, /obj/item/weapon/pen) armor = list(melee = 50, bullet = 5, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0) //Mime @@ -74,16 +73,11 @@ armor = list(melee = 60, bullet = 5, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0) strip_delay = 60 -/obj/item/clothing/head/warden/drill - name = "warden's drill hat" - desc = "A robust drill hat for the Warden. For keeping the officers and prisoners in line." - icon_state = "wardendrill" - /obj/item/clothing/head/beret/sec name = "security beret" - desc = "A robust beret with the security insignia emblazoned on it. For officers that are more inclined towards style than safety." + desc = "A robust beret with the security insignia emblazoned on it. Uses reinforced fabric to offer sufficent protection." icon_state = "beret_badge" - armor = list(melee = 30, bullet = 5, laser = 15, energy = 10, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 30, bullet = 25, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0) strip_delay = 60 /obj/item/clothing/head/beret/sec/navyhos @@ -95,6 +89,8 @@ name = "warden's beret" desc = "A special beret with the Warden's insignia emblazoned on it. For wardens with class." icon_state = "wardenberet" + armor = list(melee = 60, bullet = 5, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0) + strip_delay = 60 /obj/item/clothing/head/beret/sec/navyofficer desc = "A special beret with the security insignia emblazoned on it. For officers with class." diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm index 54e63a1f1d3..56423b8cf80 100644 --- a/code/modules/clothing/head/soft_caps.dm +++ b/code/modules/clothing/head/soft_caps.dm @@ -90,5 +90,11 @@ desc = "It's a robust baseball hat in tasteful red colour." icon_state = "secsoft" item_color = "sec" - armor = list(melee = 30, bullet = 5, laser = 5, energy = 15, bomb = 0, bio = 0, rad = 0) - strip_delay = 60 \ No newline at end of file + armor = list(melee = 30, bullet = 25, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0) + strip_delay = 60 + +/obj/item/clothing/head/soft/emt + name = "EMT cap" + desc = "It's a baseball hat with a dark turquoise color and a reflective cross on the top." + icon_state = "emtsoft" + item_color = "emtsoft" \ No newline at end of file diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 8343d2aca31..92f23576991 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -41,7 +41,7 @@ item_state = "eng_hardsuit" slowdown = 2 armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75) - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/t_scanner, /obj/item/weapon/rcd) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/device/t_scanner, /obj/item/weapon/rcd) //Atmospherics @@ -102,29 +102,89 @@ desc = "A special suit that protects against hazardous, low pressure environments. Has reinforced plating for wildlife encounters." item_state = "mining_hardsuit" armor = list(melee = 40, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50) - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/weapon/storage/bag/ore,/obj/item/weapon/pickaxe) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/storage/bag/ore,/obj/item/weapon/pickaxe) //Syndicate hardsuit /obj/item/clothing/head/helmet/space/hardsuit/syndi name = "blood-red hardsuit helmet" - desc = "An advanced helmet designed for work in special operations. Property of Gorlex Marauders." - icon_state = "hardsuit0-syndi" + desc = "A dual-mode advanced helmet designed for work in special operations. It is in travel mode. Property of Gorlex Marauders." + icon_state = "hardsuit1-syndi" item_state = "syndie_helm" item_color = "syndi" armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50) + on = 1 + action_button_name = "Toggle Helmet Mode" + +/obj/item/clothing/head/helmet/space/hardsuit/syndi/update_icon() + icon_state = "hardsuit[on]-[item_color]" + +/obj/item/clothing/head/helmet/space/hardsuit/syndi/attack_self(mob/user) + if(!isturf(user.loc)) + user << "You cannot toggle your helmet while in this [user.loc]" //To prevent some lighting anomalities. + return + on = !on + if(on) + user << "You switch your helmet to travel mode." + name = "blood-red hardsuit helmet" + desc = "A dual-mode advanced helmet designed for work in special operations. It is in travel mode. Property of Gorlex Marauders." + flags = HEADCOVERSEYES | BLOCKHAIR | HEADCOVERSMOUTH | STOPSPRESSUREDMAGE | THICKMATERIAL + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE + cold_protection = HEAD + user.AddLuminosity(brightness_on) + else + user << "You switch your helmet to combat mode." + name = "blood-red hardsuit helmet (combat)" + desc = "A dual-mode advanced helmet designed for work in special operations. It is in combat mode. Property of Gorlex Marauders." + flags = BLOCKHAIR + flags_inv = HIDEEARS + cold_protection = null + user.AddLuminosity(-brightness_on) + + update_icon() + playsound(src.loc, 'sound/mecha/mechmove03.ogg', 50, 1) + user.update_inv_head() /obj/item/clothing/suit/space/hardsuit/syndi - icon_state = "hardsuit-syndi" name = "blood-red hardsuit" - desc = "An advanced suit that protects against injuries during special operations. Property of Gorlex Marauders." + desc = "A dual-mode advanced hardsuit designed for work in special operations. It is in travel mode. Property of Gorlex Marauders." + icon_state = "hardsuit1-syndi" item_state = "syndie_hardsuit" + item_color = "syndi" slowdown = 1 w_class = 3 + var/on = 1 + action_button_name = "Toggle Hardsuit Mode" armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50) allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/emergency_oxygen) +/obj/item/clothing/suit/space/hardsuit/syndi/update_icon() + icon_state = "hardsuit[on]-[item_color]" + +/obj/item/clothing/suit/space/hardsuit/syndi/attack_self(mob/user) + on = !on + if(on) + user << "You switch your hardsuit to travel mode." + name = "blood-red hardsuit helmet" + desc = "A dual-mode advanced hardsuit designed for work in special operations. It is in travel mode. Property of Gorlex Marauders." + slowdown = 1 + flags = STOPSPRESSUREDMAGE | THICKMATERIAL + flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT + cold_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS + else + user << "You switch your hardsuit to combat mode." + name = "blood-red hardsuit helmet (combat)" + desc = "A dual-mode advanced hardsuit designed for work in special operations. It is in combat mode. Property of Gorlex Marauders." + slowdown = 0 + flags = BLOCKHAIR + flags_inv = null + cold_protection = null + + update_icon() + playsound(src.loc, 'sound/mecha/mechmove03.ogg', 50, 1) + user.update_inv_wear_suit() + user.update_inv_w_uniform() //Wizard hardsuit /obj/item/clothing/head/helmet/space/hardsuit/wizard @@ -169,7 +229,7 @@ desc = "A special suit that protects against hazardous, low pressure environments. Built with lightweight materials for easier movement." item_state = "medical_hardsuit" slowdown = 1 - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/weapon/storage/firstaid,/obj/item/device/healthanalyzer,/obj/item/stack/medical) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/storage/firstaid,/obj/item/device/healthanalyzer,/obj/item/stack/medical) armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 50) @@ -187,5 +247,5 @@ name = "security hardsuit" desc = "A special suit that protects against hazardous, low pressure environments. Has an additional layer of armor." item_state = "sec_hardsuit" - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank, /obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen, /obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50) diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index de919a9be17..10aa34f3771 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -73,7 +73,7 @@ item_state = "void" desc = "An old, NASA Centcom branch designed, dark red space suit." slowdown = 1 - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/multitool) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/device/multitool) //Space santa outfit suit diff --git a/code/modules/clothing/spacesuits/ninja.dm b/code/modules/clothing/spacesuits/ninja.dm index 5aa48fa2b6f..47d2d3aede6 100644 --- a/code/modules/clothing/spacesuits/ninja.dm +++ b/code/modules/clothing/spacesuits/ninja.dm @@ -3,7 +3,6 @@ name = "ninja hood" icon_state = "s-ninja" item_state = "s-ninja_mask" - allowed = list(/obj/item/weapon/stock_parts/cell) armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 25) strip_delay = 12 unacidable = 1 @@ -56,8 +55,11 @@ var/a_boost = 3.0//Number of adrenaline boosters. //Onboard AI related variables. - var/mob/living/silicon/ai/AI//If there is an AI inside the suit. + + var/obj/item/device/aicard/NAI //Integrated intellicard. + var/obj/item/device/paicard/pai//A slot for a pAI device + var/obj/effect/overlay/hologram//Is the AI hologram on or off? Visible only to the wearer of the suit. This works by attaching an image to a blank overlay. - var/flush = 0//If an AI purge is in progress. + var/s_control = 1//If user in control of the suit. diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 79eeb774dcc..a665e594809 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -10,12 +10,20 @@ /obj/item/clothing/suit/armor/vest name = "armor" - desc = "An armored vest that protects against most types of damage." + desc = "A slim armored vest that protects against most types of damage." icon_state = "armor" item_state = "armor" blood_overlay_type = "armor" armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0) +/obj/item/clothing/suit/armor/vest/alt + name = "armor" + desc = "An armored vest that protects against most types of damage. This is a civilian variant." + icon_state = "armoralt" + item_state = "armoralt" + blood_overlay_type = "armor" + armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0) + /obj/item/clothing/suit/armor/hos name = "armored greatcoat" desc = "A greatcoat enchanced with a special alloy for some protection and style for those with a commanding presence." @@ -38,7 +46,7 @@ /obj/item/clothing/suit/armor/vest/warden name = "warden's jacket" - desc = "An armored jacket with silver rank pips and livery." + desc = "A navy-blue armored jacket with blue shoulder designations and '/Warden/' stitched into one of the chest pockets." icon_state = "warden_jacket" item_state = "armor" body_parts_covered = CHEST|GROIN|ARMS @@ -46,6 +54,11 @@ heat_protection = CHEST|GROIN|ARMS|HANDS strip_delay = 70 +/obj/item/clothing/suit/armor/vest/warden/alt + name = "warden's armored jacket" + desc = "A red jacket with silver rank pips and body armor strapped on top." + icon_state = "warden_alt" + /obj/item/clothing/suit/armor/vest/capcarapace name = "captain's carapace" desc = "An armored vest reinforced with ceramic plates and pauldrons to provide additional protection whilst still offering maximum mobility and flexibility. Issued only to the station's finest, although it does chafe your nipples." @@ -70,12 +83,12 @@ put_on_delay = 60 /obj/item/clothing/suit/armor/bulletproof - name = "tactical armor" - desc = "A kevlar vest that excels in protecting the wearer against traditional projectile weaponry and explosives." + name = "bulletproof armor" + desc = "A bulletproof vest that excels in protecting the wearer against traditional projectile weaponry and explosives to a minor extent." icon_state = "bulletproof" item_state = "armor" blood_overlay_type = "armor" - armor = list(melee = 25, bullet = 60, laser = 25, energy = 10, bomb = 40, bio = 0, rad = 0) + armor = list(melee = 25, bullet = 80, laser = 10, energy = 10, bomb = 40, bio = 0, rad = 0) strip_delay = 70 put_on_delay = 50 diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm index 2440011164f..bb6be40c422 100644 --- a/code/modules/clothing/under/jobs/security.dm +++ b/code/modules/clothing/under/jobs/security.dm @@ -10,29 +10,23 @@ */ /obj/item/clothing/under/rank/security - name = "security jumpsuit" - desc = "A security jumpsuit for officers complete with nanotrasen waistbuckle." + name = "security suit" + desc = "A formal security suit for officers complete with nanotrasen belt buckle." icon_state = "security" - item_state = "r_suit" + item_state = "gy_suit" item_color = "security" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) strip_delay = 50 /obj/item/clothing/under/rank/warden - name = "warden's jumpsuit" - desc = "A security jumpsuit suit with decorative silver pips and 'warden' written on the shoulders." - icon_state = "wardenformal" - item_state = "r_suit" + name = "warden's suit" + desc = "A formal security suit for the warden with blue desginations and '/Warden/' stiched into the shoulders." + icon_state = "warden" + item_state = "gy_suit" item_color = "warden" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) strip_delay = 50 -/obj/item/clothing/under/rank/warden/formal - name = "warden's formal suit" - desc = "A security formal suit with silver shoulder pips, a striped red tie, and tan slacks - the universal sign of bureaucracy.=" - icon_state = "wardenformal" - item_color = "wardenformal" - /* * Detective */ @@ -57,19 +51,13 @@ */ /obj/item/clothing/under/rank/head_of_security name = "head of security's suit" - desc = "The jumpsuit worn by those few with the dedication to achieve the position of Head of Security." + desc = "A security suit decorated for those few with the dedication to achieve the position of Head of Security." icon_state = "hos" - item_state = "r_suit" + item_state = "gy_suit" item_color = "hos" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) strip_delay = 60 -/obj/item/clothing/under/rank/head_of_security/formal - name = "head of security's formal suit" - desc = "The formal suit for a Head of Security with a superior sense of style." - icon_state = "hosformal" - item_color = "hosformal" - /* * Navy uniforms */ diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 5c90623466a..88cc52f77bd 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -374,4 +374,51 @@ item_state = "wcoat" item_color = "black_tango" fitted = 0 - can_adjust = 0 \ No newline at end of file + can_adjust = 0 + +/obj/item/clothing/under/stripeddress + name = "striped dress" + desc = "Fashion in space." + icon_state = "striped_dress" + item_state = "stripeddress" + item_color = "striped_dress" + fitted = 0 + can_adjust = 0 + +/obj/item/clothing/under/sailordress + name = "sailor dress" + desc = "Formal wear for a leading lady." + icon_state = "sailor_dress" + item_state = "sailordress" + item_color = "sailor_dress" + fitted = 0 + can_adjust = 0 + +/obj/item/clothing/under/redeveninggown + name = "red evening gown" + desc = "Fancy dress for space bar singers." + icon_state = "red_evening_gown" + item_state = "redeveninggown" + item_color = "red_evening_gown" + fitted = 0 + can_adjust = 0 + +/obj/item/clothing/under/maid + name = "maid costume" + desc = "Maid in China." + icon_state = "maid" + item_state = "maid" + item_color = "maid" + body_parts_covered = CHEST|GROIN + fitted = 0 + can_adjust = 0 + +/obj/item/clothing/under/janimaid + name = "maid uniform" + desc = "A simple maid uniform for housekeeping." + icon_state = "janimaid" + item_state = "janimaid" + item_color = "janimaid" + body_parts_covered = CHEST|GROIN + fitted = 0 + can_adjust = 0 diff --git a/code/modules/clothing/under/ties.dm b/code/modules/clothing/under/ties.dm index 75cd9b7f17b..1520f2cfcf7 100644 --- a/code/modules/clothing/under/ties.dm +++ b/code/modules/clothing/under/ties.dm @@ -195,4 +195,85 @@ name = "medical guard armband" desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is white and blue." icon_state = "medblueband" - item_color = "medblueband" \ No newline at end of file + item_color = "medblueband" + +/////////// +//SCARVES// +/////////// + +/obj/item/clothing/tie/scarf + name = "scarf" + desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks." + +/obj/item/clothing/tie/scarf/red + name = "red scarf" + icon_state = "redscarf" + item_color = "redscarf" + +/obj/item/clothing/tie/scarf/green + name = "green scarf" + icon_state = "greenscarf" + item_color = "greenscarf" + +/obj/item/clothing/tie/scarf/darkblue + name = "dark blue scarf" + icon_state = "darkbluescarf" + item_color = "darkbluescarf" + +/obj/item/clothing/tie/scarf/purple + name = "purple scarf" + icon_state = "purplescarf" + item_color = "purplescarf" + +/obj/item/clothing/tie/scarf/yellow + name = "yellow scarf" + icon_state = "yellowscarf" + item_color = "yellowscarf" + +/obj/item/clothing/tie/scarf/orange + name = "orange scarf" + icon_state = "orangescarf" + item_color = "orangescarf" + +/obj/item/clothing/tie/scarf/lightblue + name = "light blue scarf" + icon_state = "lightbluescarf" + item_color = "lightbluescarf" + +/obj/item/clothing/tie/scarf/white + name = "white scarf" + icon_state = "whitescarf" + item_color = "whitescarf" + +/obj/item/clothing/tie/scarf/black + name = "black scarf" + icon_state = "blackscarf" + item_color = "blackscarf" + +/obj/item/clothing/tie/scarf/zebra + name = "zebra scarf" + icon_state = "zebrascarf" + item_color = "zebrascarf" + +/obj/item/clothing/tie/scarf/christmas + name = "christmas scarf" + icon_state = "christmasscarf" + item_color = "christmasscarf" + +//The three following scarves don't have the scarf subtype +//This is because Ian can equip anything from that subtype +//However, these 3 don't have corgi versions of their sprites +/obj/item/clothing/tie/stripedredscarf + name = "striped red scarf" + icon_state = "stripedredscarf" + item_color = "stripedredscarf" + +/obj/item/clothing/tie/stripedgreenscarf + name = "striped green scarf" + icon_state = "stripedgreenscarf" + item_color = "stripedgreenscarf" + +/obj/item/clothing/tie/stripedbluescarf + name = "striped blue scarf" + icon_state = "stripedbluescarf" + item_color = "stripedbluescarf" diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index 51287eaf20b..c1eb8f03c3b 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -38,7 +38,7 @@ /obj/item/robot_parts/r_leg = 1, /obj/item/stack/sheet/metal = 5, /obj/item/stack/cable_coil = 5, - /obj/item/weapon/gun/energy/taser = 1, + /obj/item/weapon/gun/energy/gun/advtaser = 1, /obj/item/weapon/stock_parts/cell = 1, /obj/item/device/assembly/prox_sensor = 1, /obj/item/robot_parts/r_arm = 1) diff --git a/code/modules/emoji/emoji_parse.dm b/code/modules/emoji/emoji_parse.dm new file mode 100644 index 00000000000..aab9947c89e --- /dev/null +++ b/code/modules/emoji/emoji_parse.dm @@ -0,0 +1,32 @@ +var/list/emojis + +/proc/emoji_parse(text) + if(!config.emojis) + return text + if(!emojis) + emojis = icon_states(icon('icons/emoji.dmi')) + var/parsed = "" + var/pos = 1 + var/search = 0 + var/emoji = "" + while(1) + search = findtext(text, ":", pos) + parsed += copytext(text, pos, search) + if(search) + pos = search + search = findtext(text, ":", pos+1) + if(search) + emoji = lowertext(copytext(text, pos+1, search)) + if(emoji in emojis) + parsed += "" + pos = search + 1 + else + parsed += copytext(text, pos, search) + pos = search + emoji = "" + continue + else + parsed += copytext(text, pos, search) + break + return parsed + diff --git a/code/modules/events/holiday/xmas.dm b/code/modules/events/holiday/xmas.dm index 63c52779fa7..ed41e80ee0a 100644 --- a/code/modules/events/holiday/xmas.dm +++ b/code/modules/events/holiday/xmas.dm @@ -99,8 +99,8 @@ var/response = alert(M, "Santa is coming to town! Do you want to be santa?", "Ho ho ho!", "Yes", "No") if(response == "Yes" && M && M.client && M.stat == DEAD && !santa) santa = new /mob/living/carbon/human(pick(blobstart)) - M.mind.transfer_to(santa) santa.key = M.key + qdel(M) santa.real_name = "Santa Claus" santa.name = "Santa Claus" @@ -117,13 +117,13 @@ santa.equip_to_slot_or_del(new /obj/item/clothing/suit/space/santa, slot_wear_suit) santa.equip_to_slot_or_del(new /obj/item/clothing/head/santa, slot_head) santa.equip_to_slot_or_del(new /obj/item/clothing/mask/breath, slot_wear_mask) - santa.equip_to_slot_or_del(new /obj/item/clothing/gloves/red, slot_gloves) + santa.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/red, slot_gloves) santa.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/red, slot_shoes) santa.equip_to_slot_or_del(new /obj/item/weapon/tank/emergency_oxygen/double, slot_belt) santa.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain, slot_ears) santa.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/santabag, slot_back) santa.equip_to_slot_or_del(new /obj/item/device/flashlight, slot_r_store) //most blob spawn locations are really dark. - + var/obj/item/weapon/card/id/gold/santacard = new(santa) santacard.update_label("Santa Claus", "Santa") var/datum/job/captain/J = new/datum/job/captain @@ -147,5 +147,5 @@ var/obj/effect/proc_holder/spell/targeted/area_teleport/teleport/telespell = new(santa) telespell.clothes_req = 0 //santa robes aren't actually magical. santa.mind.spell_list += telespell //does the station have chimneys? WHO KNOWS! - - M << "You are Santa! Your objective is to bring joy to the people on this station. You can conjure more presents using a spell, and there are several presents in your bag." + + santa << "You are Santa! Your objective is to bring joy to the people on this station. You can conjure more presents using a spell, and there are several presents in your bag." diff --git a/code/modules/events/ninja.dm b/code/modules/events/ninja.dm index 961a2d771d9..725cf620a18 100644 --- a/code/modules/events/ninja.dm +++ b/code/modules/events/ninja.dm @@ -172,7 +172,7 @@ Ninja.internals.icon_state = "internal1" if(Ninja.mind != Mind) //something has gone wrong! - ERROR("The ninja wasn't assigned the right mind. ;ç;") + ERROR("The ninja wasn't assigned the right mind. ;ç;") Ninja << sound('sound/effects/ninja_greeting.ogg') //so ninja you probably wouldn't even know if you were made one @@ -404,17 +404,17 @@ ________________________________________________________________________________ U:gloves.item_state = "s-ninjan" else if(U.mind.special_role!="Space Ninja") - U << "\red fÄTaL ÈÈRRoR: 382200-*#00CÖDE RED\nUNAU†HORIZED USÈ DETÈC†††eD\nCoMMÈNCING SUB-R0U†IN3 13...\nTÈRMInATING U-U-USÈR..." + U << "\red fÄTaL ÈÈRRoR: 382200-*#00CÖDE RED\nUNAU†HORIZED USÈ DETÈC†††eD\nCoMMÈNCING SUB-R0U†IN3 13...\nTÈRMInATING U-U-USÈR..." U.gib() return 0 if(!istype(U:head, /obj/item/clothing/head/helmet/space/space_ninja)) - U << "ERROR: 100113 \black UNABLE TO LOCATE HEAD GEAR\nABORTING..." + U << "ERROR: 100113 UNABLE TO LOCATE HEAD GEAR\nABORTING..." return 0 if(!istype(U:shoes, /obj/item/clothing/shoes/space_ninja)) - U << "ERROR: 122011 \black UNABLE TO LOCATE FOOT GEAR\nABORTING..." + U << "ERROR: 122011 UNABLE TO LOCATE FOOT GEAR\nABORTING..." return 0 if(!istype(U:gloves, /obj/item/clothing/gloves/space_ninja)) - U << "ERROR: 110223 \black UNABLE TO LOCATE HAND GEAR\nABORTING..." + U << "ERROR: 110223 UNABLE TO LOCATE HAND GEAR\nABORTING..." return 0 affecting = U @@ -570,7 +570,7 @@ ________________________________________________________________________________ U.incorporeal_move = 0 kamikaze = 0 k_unlock = 0 - U << "Disengaging mode...\n\blackCODE NAME: KAMIKAZE" + U << "Disengaging mode...\nCODE NAME: KAMIKAZE" //=======//AI VERBS//=======// @@ -587,295 +587,6 @@ ________________________________________________________________________________ s_control = 1 -//=======//OLD & UNUSED//=======// - -/* - -Deprecated. get_dir() does the same thing. Still a nice proc. -Returns direction that the mob or whomever should be facing in relation to the target. -This proc does not grant absolute direction and is mostly useful for 8dir sprite positioning. -I personally used it with getline() to great effect. -/proc/get_dir_to(turf/start,turf/end)//N - var/xdiff = start.x - end.x//The sign is important. - var/ydiff = start.y - end.y - - var/direction_x = xdiff<1 ? 4:8//East - west - var/direction_y = ydiff<1 ? 1:2//North - south - var/direction_xy = xdiff==0 ? -4:0//If x is the same, subtract 4. - var/direction_yx = ydiff==0 ? -1:0//If y is the same, subtract 1. - var/direction_f = direction_x+direction_y+direction_xy+direction_yx//Finally direction tally. - direction_f = direction_f==0 ? 1:direction_f//If direction is 0(same spot), return north. Otherwise, direction. - - return direction_f - -Alternative and inferior method of calculating spideros. -var/temp = num2text(spideros) -var/return_to = copytext(temp, 1, (length(temp)))//length has to be to the length of the thing because by default it's length+1 -spideros = text2num(return_to)//Maximum length here is 6. Use (return_to, X) to specify larger strings if needed. - -//Old way of draining from wire. -/obj/item/clothing/gloves/space_ninja/proc/drain_wire() - set name = "Drain From Wire" - set desc = "Drain energy directly from an exposed wire." - set category = "Ninja Equip" - - var/obj/structure/cable/attached - var/mob/living/carbon/human/U = loc - if(candrain&&!draining) - var/turf/T = U.loc - if(isturf(T) && istype(T, /turf/simulated/floor/plating) - attached = locate() in T - if(!attached) - U << "\red Warning: no exposed cable available." - else - U << "\blue Connecting to wire, stand still..." - if(do_after(U,50)&&!isnull(attached)) - drain("WIRE",attached,U:wear_suit,src) - else - U << "\red Procedure interrupted. Protocol terminated." - return - -I've tried a lot of stuff but adding verbs to the AI while inside an object, inside another object, did not want to work properly. -This was the best work-around I could come up with at the time. Uses objects to then display to panel, based on the object spell system. -Can be added on to pretty easily. - -BYOND fixed the verb bugs so this is no longer necessary. I prefer verb panels. - -/obj/item/clothing/suit/space/space_ninja/proc/grant_AI_verbs() - var/obj/effect/proc_holder/ai_return_control/A_C = new(AI) - var/obj/effect/proc_holder/ai_hack_ninja/B_C = new(AI) - var/obj/effect/proc_holder/ai_instruction/C_C = new(AI) - new/obj/effect/proc_holder/ai_holo_clear(AI) - AI.proc_holder_list += A_C - AI.proc_holder_list += B_C - AI.proc_holder_list += C_C - - s_control = 0 - -/obj/item/clothing/suit/space/space_ninja/proc/remove_AI_verbs() - var/obj/effect/proc_holder/ai_return_control/A_C = locate() in AI - var/obj/effect/proc_holder/ai_hack_ninja/B_C = locate() in AI - var/obj/effect/proc_holder/ai_instruction/C_C = locate() in AI - var/obj/effect/proc_holder/ai_holo_clear/D_C = locate() in AI - qdel(A_C) - qdel(B_C) - qdel(C_C) - qdel(D_C) - AI.proc_holder_list = list() - verbs += /obj/item/clothing/suit/space/space_ninja/proc/deinit - verbs += /obj/item/clothing/suit/space/space_ninja/proc/spideros - verbs += /obj/item/clothing/suit/space/space_ninja/proc/stealth - - s_control = 1 - -//Workaround -/obj/effect/proc_holder/ai_holo_clear - name = "Clear Hologram" - desc = "Stops projecting the current holographic image." - panel = "AI Ninja Equip" - density = 0 - opacity = 0 - - -/obj/effect/proc_holder/ai_holo_clear/Click() - var/obj/item/clothing/suit/space/space_ninja/S = loc.loc//This is so stupid but makes sure certain things work. AI.SUIT - qdel(S.hologram.i_attached) - qdel(S.hologram) - var/obj/effect/proc_holder/ai_holo_clear/D_C = locate() in S.AI - S.AI.proc_holder_list -= D_C - return - -/obj/effect/proc_holder/ai_instruction//Let's the AI know what they can do. - name = "Instructions" - desc = "Displays a list of helpful information." - panel = "AI Ninja Equip" - density = 0 - opacity = 0 - -/obj/effect/proc_holder/ai_instruction/Click() - loc << "The menu you are seeing will contain other commands if they become available.\nRight click a nearby turf to display an AI Hologram. It will only be visible to you and your host. You can move it freely using normal movement keys--it will disappear if placed too far away." - -/obj/effect/proc_holder/ai_hack_ninja//Generic proc holder to make sure the two verbs below work propely. - name = "Hack SpiderOS" - desc = "Hack directly into the Black Widow(tm) neuro-interface." - panel = "AI Ninja Equip" - density = 0 - opacity = 0 - -/obj/effect/proc_holder/ai_hack_ninja/Click()//When you click on it. - var/obj/item/clothing/suit/space/space_ninja/S = loc.loc - S.hack_spideros() - return - -/obj/effect/proc_holder/ai_return_control - name = "Relinquish Control" - desc = "Return control to the user." - panel = "AI Ninja Equip" - density = 0 - opacity = 0 - -/obj/effect/proc_holder/ai_return_control/Click() - var/mob/living/silicon/ai/A = loc - var/obj/item/clothing/suit/space/space_ninja/S = A.loc - A << browse(null, "window=hack spideros")//Close window - A << "You have seized your hacking attempt. [S.affecting] has regained control." - S.affecting << "UPDATE: [A.real_name] has ceased hacking attempt. All systems clear." - S.remove_AI_verbs() - return -*/ - -//=======//DEBUG//=======// -/* -/obj/item/clothing/suit/space/space_ninja/proc/display_verb_procs() -//DEBUG -//Does nothing at the moment. I am trying to see if it's possible to mess around with verbs as variables. - //for(var/P in verbs) -// if(P.set.name) -// usr << "[P.set.name], path: [P]" - return - - -Most of these are at various points of incomplete. - -/mob/verb/grant_object_panel() - set name = "Grant AI Ninja Verbs Debug" - set category = "Ninja Debug" - var/obj/effect/proc_holder/ai_return_control/A_C = new(src) - var/obj/effect/proc_holder/ai_hack_ninja/B_C = new(src) - usr:proc_holder_list += A_C - usr:proc_holder_list += B_C - -mob/verb/remove_object_panel() - set name = "Remove AI Ninja Verbs Debug" - set category = "Ninja Debug" - var/obj/effect/proc_holder/ai_return_control/A = locate() in src - var/obj/effect/proc_holder/ai_hack_ninja/B = locate() in src - usr:proc_holder_list -= A - usr:proc_holder_list -= B - qdel(A)//First. - qdel(B)//Second, to keep the proc going. - return - -/client/verb/grant_verb_ninja_debug1(var/mob/M in view()) - set name = "Grant AI Ninja Verbs Debug" - set category = "Ninja Debug" - - M.verbs += /mob/living/silicon/ai/verb/ninja_return_control - M.verbs += /mob/living/silicon/ai/verb/ninja_spideros - return - -/client/verb/grant_verb_ninja_debug2(var/mob/living/carbon/human/M in view()) - set name = "Grant Back Ninja Verbs" - set category = "Ninja Debug" - - M.wear_suit.verbs += /obj/item/clothing/suit/space/space_ninja/proc/deinit - M.wear_suit.verbs += /obj/item/clothing/suit/space/space_ninja/proc/spideros - return - -/obj/proc/grant_verb_ninja_debug3(var/mob/living/silicon/ai/A as mob) - set name = "Grant AI Ninja Verbs" - set category = "null" - set hidden = 1 - A.verbs -= /obj/item/clothing/suit/space/space_ninja/proc/deinit - A.verbs -= /obj/item/clothing/suit/space/space_ninja/proc/spideros - return - -/mob/verb/get_dir_to_target(var/mob/M in oview()) - set name = "Get Direction to Target" - set category = "Ninja Debug" - - world << "DIR: [get_dir_to(src.loc,M.loc)]" - return -// -/mob/verb/kill_self_debug() - set name = "DEBUG Kill Self" - set category = "Ninja Debug" - - src:death() - -/client/verb/switch_client_debug() - set name = "DEBUG Switch Client" - set category = "Ninja Debug" - - mob = mob:loc:loc - -/mob/verb/possess_mob(var/mob/M in oview()) - set name = "DEBUG Possess Mob" - set category = "Ninja Debug" - - client.mob = M - -/client/verb/switcharoo(var/mob/M in oview()) - set name = "DEBUG Switch to AI" - set category = "Ninja Debug" - - var/mob/last_mob = mob - mob = M - last_mob:wear_suit:AI:key = key -// -/client/verb/ninjaget(var/mob/M in oview()) - set name = "DEBUG Ninja GET" - set category = "Ninja Debug" - - mob = M - M.gib() - space_ninja() - -/mob/verb/set_debug_ninja_target() - set name = "Set Debug Target" - set category = "Ninja Debug" - - ninja_debug_target = src//The target is you, brohime. - world << "Target: [src]" - -/mob/verb/hack_spideros_debug() - set name = "Debug Hack Spider OS" - set category = "Ninja Debug" - - var/mob/living/silicon/ai/A = loc:AI - if(A) - if(!A.key) - A.client.mob = loc:affecting - else - loc:affecting:client:mob = A - return - -//Tests the net and what it does. -/mob/verb/ninjanet_debug() - set name = "Energy Net Debug" - set category = "Ninja Debug" - - var/obj/effect/energy_net/E = new /obj/effect/energy_net(loc) - E.layer = layer+1//To have it appear one layer above the mob. - stunned = 10//So they are stunned initially but conscious. - anchored = 1//Anchors them so they can't move. - E.affecting = src - spawn(0)//Parallel processing. - E.process(src) - return - -I made this as a test for a possible ninja ability (or perhaps more) for a certain mob to see hallucinations. -The thing here is that these guys have to be coded to do stuff as they are simply images that you can't even click on. -That is why you attached them to objects. -/mob/verb/TestNinjaShadow() - set name = "Test Ninja Ability" - set category = "Ninja Debug" - - if(client) - var/safety = 4 - for(var/turf/T in oview(5)) - if(prob(20)) - var/current_clone = image('icons/mob/mob.dmi',T,"s-ninja") - safety-- - spawn(0) - src << current_clone - spawn(300) - qdel(current_clone) - spawn while(!isnull(current_clone)) - step_to(current_clone,src,1) - sleep(5) - if(safety<=0) break - return */ //Alternate ninja speech replacement. /*This text is hilarious but also absolutely retarded. @@ -1377,12 +1088,13 @@ ________________________________________________________________________________ reagent_id == "radium" ? reagents.add_reagent(reagent_id, r_maxamount+(a_boost*a_transfer)) : reagents.add_reagent(reagent_id, r_maxamount)//It will take into account radium used for adrenaline boosting. cell = new/obj/item/weapon/stock_parts/cell/high//The suit should *always* have a battery because so many things rely on it. cell.charge = 9000//Starting charge should not be higher than maximum charge. It leads to problems with recharging. + NAI = new(src) //ninja intellicard /obj/item/clothing/suit/space/space_ninja/Destroy() if(affecting)//To make sure the window is closed. affecting << browse(null, "window=hack spideros") if(AI)//If there are AIs present when the ninja kicks the bucket. - killai() + killai(NAI) if(hologram)//If there is a hologram qdel(hologram.i_attached)//Delete it and the attached image. qdel(hologram) @@ -1395,15 +1107,18 @@ ________________________________________________________________________________ qdel(n_shoes) qdel(src) -/obj/item/clothing/suit/space/space_ninja/proc/killai(mob/living/silicon/ai/A = AI) - if(A.client) - A << "Self-erase protocol dete-- *bzzzzz*" - A << browse(null, "window=hack spideros") - AI = null - A.death(1)//Kill, deleting mob. - qdel(A) + + +/obj/item/clothing/suit/space/space_ninja/proc/killai(var/obj/item/device/aicard/NAI) + for(var/mob/living/silicon/ai/A in src) + if(A.client) + A << "Self-erase protocol dete-- *bzzzzz*" + A << browse(null, "window=hack spideros") + NAI.flush = 1 return + + //=======//SUIT VERBS//=======// //Verbs link to procs because verb-like procs have a bug which prevents their use if the arguments are not readily referenced. @@ -1459,10 +1174,10 @@ ________________________________________________________________________________ //Let's check for some safeties. if(s_initialized&&!affecting) terminate()//Kills the suit and attached objects. if(!s_initialized) return//When turned off the proc stops. - if(AI&&AI.stat==2)//If there is an AI and it's ded. Shouldn't happen without purging, could happen. - if(!s_control) - ai_return_control()//Return control to ninja if the AI was previously in control. - killai()//Delete AI. + for(var/mob/living/silicon/ai/A in NAI) + if(A&&A.stat==2)//If there is an AI and it's ded. Shouldn't happen without purging, could happen. + if(!s_control) + ai_return_control()//Return control to ninja if the AI was previously in control. //Now let's do the normal processing. if(s_coold) s_coold--//Checks for ability s_cooldown first. @@ -1504,7 +1219,7 @@ ________________________________________________________________________________ U << "Extending neural-net interface...\nNow monitoring brain wave pattern..." if(3) if(U.stat==2||U.health<=0) - U << "FĆAL �Rr�R: 344--93#�&&21 BR��N |/|/aV� PATT$RN RED\nA-A-aB�rT�NG..." + U << "FĆAL �Rr�R: 344--93#�&&21 BR��N |/|/aV� PATT$RN RED\nA-A-aB�rT�NG..." unlock_suit() break lock_suit(U,1)//Check for icons. @@ -1525,9 +1240,9 @@ ________________________________________________________________________________ if(!U.mind||U.mind.assigned_role!="MODE")//Your run of the mill persons shouldn't know what it is. Or how to turn it on. U << "You do not understand how this suit functions. Where the heck did it even come from?" else if(s_initialized) - U << "The suit is already functioning. \black Please report this bug." + U << "The suit is already functioning. Please report this bug." else - U << "ERROR: \black You cannot use this function at this time." + U << "ERROR: You cannot use this function at this time." return //=======//DEINITIALIZE//=======// @@ -1536,12 +1251,12 @@ ________________________________________________________________________________ if(affecting==loc&&!s_busy) var/mob/living/carbon/human/U = affecting if(!s_initialized) - U << "The suit is not initialized. \black Please report this bug." + U << "The suit is not initialized. Please report this bug." return if(alert("Are you certain you wish to remove the suit? This will take time and remove all abilities.",,"Yes","No")=="No") return - if(s_busy||flush) - U << "ERROR: \black You cannot use this function at this time." + if(s_busy || NAI.flush) + U << "ERROR: You cannot use this function at this time." return s_busy = 1 for(var/i = 0,i<7,i++) @@ -1721,7 +1436,7 @@ ________________________________________________________________________________
  • Voice masking generates a random name the ninja can use over the radio and in-person. Although, the former use is recommended.
  • Toggling vision cycles to one of the following: thermal, meson, or darkness vision. The starting mode allows one to scout the identity of those in view, revealing their role. Traitors, revolutionaries, wizards, and other such people will be made known to you.
  • Stealth, when activated, drains more battery charge and works similarly to a syndicate cloak. The cloak will deactivate when most Abilities are utilized.
  • -
  • On-board AI: The suit is able to download an AI much like an intelicard. Check with SpiderOS for details once downloaded.
  • +
  • On-board AI: The suit is able to download an AI much like an intellicard. Check with SpiderOS for details once downloaded.
  • SpiderOS is a specialized, PDA-like screen that allows for a small variety of functions, such as injecting healing chemicals directly from the suit. You are using it now, if that was not already obvious. You may also download AI modules directly to the OS.
  • Abilities: @@ -1742,45 +1457,12 @@ ________________________________________________________________________________ That is all you will need to know. The rest will come with practice and talent. Good luck!

    Master /N

    - "}//This has always bothered me but not anymore! + "} if(5) - var/laws dat += "

    AI Control:

    " - //var/mob/living/silicon/ai/A = AI - if(AI)//If an AI exists. - dat += "Stored AI: [A.name]
    " - dat += "System integrity: [(A.health+100)/2]%
    " + if(NAI) + NAI.attack_self(display_to) //Just accesses the integrated Intellicard. If an AI is in control of the suit then I guess it can interact with its own card. How meta. - //I personally think this makes things a little more fun. Ninjas can override all but law 0. - //if (A.laws.zeroth) - // laws += "
  • 0: [A.laws.zeroth]
  • " - - for (var/index = 1, index <= A.laws.ion.len, index++) - var/law = A.laws.ion[index] - if (length(law) > 0) - var/num = ionnum() - laws += "
  • [num]. [law]
  • " - - var/number = 1 - for (var/index = 1, index <= A.laws.inherent.len, index++) - var/law = A.laws.inherent[index] - if (length(law) > 0) - laws += "
  • [number]: [law]
  • " - number++ - - for (var/index = 1, index <= A.laws.supplied.len, index++) - var/law = A.laws.supplied[index] - if (length(law) > 0) - laws += "
  • [number]: [law]
  • " - number++ - - dat += "

    Laws:

    " - - if (!flush) - dat += "Purge AI
    " - else - dat += "Purge in progress...
    " - dat += " [A.control_disabled ? "Enable" : "Disable"] Wireless Activity" if(6) dat += {"

    Activate Abilities:

    @@ -1857,7 +1539,7 @@ ________________________________________________________________________________ U.electrocute_act(damage, src,0.1,1)//The last argument is a safety for the human proc that checks for gloves. cell.charge -= damage else - A << "ERROR: \black Not enough energy remaining." + A << "ERROR: Not enough energy remaining." if("Message") var/obj/item/device/pda/P = locate(href_list["target"]) @@ -1918,7 +1600,7 @@ ________________________________________________________________________________ for(var/i, i<4, i++) switch(i) if(0) - U << "Engaging mode...\n\blackCODE NAME: KAMIKAZE" + U << "Engaging mode...\nCODE NAME: KAMIKAZE" if(1) U << "Re-routing power nodes... \nUnlocking limiter..." if(2) @@ -1932,7 +1614,7 @@ ________________________________________________________________________________ return sleep(s_delay) else - U << "ERROR: \black Unable to initiate mode." + U << "ERROR: Unable to initiate mode." else U << browse(null, "window=spideros") s_busy = 0 @@ -1954,7 +1636,7 @@ ________________________________________________________________________________ t_disk.loc = T t_disk = null else - U << "ERROR: \black Could not eject disk." + U << "ERROR: Could not eject disk." if("Copy to Disk") var/datum/tech/current_data = locate(href_list["target"]) @@ -1975,7 +1657,7 @@ ________________________________________________________________________________ pai.loc = T pai = null else - U << "ERROR: \black Could not eject pAI card." + U << "ERROR: Could not eject pAI card." if("Override AI Laws") var/law_zero = A.laws.zeroth//Remembers law zero, if there is one. @@ -1996,25 +1678,25 @@ ________________________________________________________________________________ if(AI==A) switch(i) if(0) - A << "WARNING: \black purge procedure detected. \nNow hacking host..." - U << "WARNING: HACKING AT��TEMP� IN PR0GRESs!" + A << "WARNING: purge procedure detected. \nNow hacking host..." + U << "WARNING: HACKING AT��TEMP� IN PR0GRESs!" spideros = 0 k_unlock = 0 U << browse(null, "window=spideros") if(1) A << "Disconnecting neural interface..." - U << "WAR�NING: �R�O0�Gr�--S 2&3%" + U << "WAR�NING: �R�O0�Gr�--S 2&3%" if(2) A << "Shutting down external protocol..." - U << "WARNING: P����RֆGr�5S 677^%" + U << "WARNING: P����RֆGr�5S 677^%" cancel_stealth() if(3) A << "Connecting to kernel..." - U << "WARNING: �R�r�R_404" + U << "WARNING: �R�r�R_404" A.control_disabled = 0 if(4) A << "Connection established and secured. Menu updated." - U << "W�r#nING: #%@!!WȆ|_4�54@ \nUn�B88l3 T� L�-�o-L�CaT2 ##$!�RN�0..%.." + U << "W�r#nING: #%@!!WȆ|_4�54@ \nUn�B88l3 T� L�-�o-L�CaT2 ##$!�RN�0..%.." grant_AI_verbs() return sleep(s_delay) @@ -2022,7 +1704,7 @@ ________________________________________________________________________________ s_busy = 0 U << "Hacking attempt disconnected. Resuming normal operation." else - flush = 1 + NAI.flush = 1 A.suiciding = 1 A << "Your core files are being purged! This is the end..." spawn(0) @@ -2031,9 +1713,9 @@ ________________________________________________________________________________ A.adjustOxyLoss(2) A.updatehealth() sleep(10) - killai() + killai(NAI) U << "Artificial Intelligence was terminated. Rebooting..." - flush = 0 + NAI.flush = 0 if("Wireless AI") A.control_disabled = !A.control_disabled @@ -2058,19 +1740,21 @@ ________________________________________________________________________________ hologram.invisibility = 101//So that it doesn't show up, ever. This also means one could attach a number of images to a single obj and display them differently to differnet people. hologram.anchored = 1//So it cannot be dragged by space wind and the like. hologram.dir = get_dir(T,affecting.loc) - var/image/I = image(AI.holo_icon,hologram)//Attach an image to object. - hologram.i_attached = I//To attach the image in order to later reference. - AI << I - affecting << I - affecting << "An image flicks to life nearby. It appears visible to you only." - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ai_holo_clear + for(var/mob/living/silicon/ai/A in NAI) + var/image/I = image(A.holo_icon,hologram)//Attach an image to object. + hologram.i_attached = I//To attach the image in order to later reference. + A << I + affecting << I + affecting << "An image flicks to life nearby. It appears visible to you only." - ai_holo_process()//Move to initialize + verbs += /obj/item/clothing/suit/space/space_ninja/proc/ai_holo_clear + + ai_holo_process()//Move to initialize else - AI << "ERROR: \black Image feed in progress." + AI << "ERROR: Image feed in progress." else - AI << "ERROR: \black Unable to project image." + AI << "ERROR: Unable to project image." return /obj/item/clothing/suit/space/space_ninja/proc/ai_holo_process() @@ -2120,11 +1804,13 @@ ________________________________________________________________________________ set category = "AI Ninja Equip" set src = usr.loc - AI << browse(null, "window=spideros")//Close window - AI << "You have seized your hacking attempt. [affecting.real_name] has regained control." - affecting << "UPDATE: [AI.real_name] has ceased hacking attempt. All systems clear." - remove_AI_verbs() + for(var/mob/living/silicon/ai/A in NAI) + AI << browse(null, "window=spideros")//Close window + AI << "You have seized your hacking attempt. [affecting.real_name] has regained control." + affecting << "UPDATE: [A.real_name] has ceased hacking attempt. All systems clear." + + remove_AI_verbs() return //=======//GENERAL SUIT PROCS//=======// @@ -2135,7 +1821,7 @@ ________________________________________________________________________________ if(s_control) I:transfer_ai("NINJASUIT","AICARD",src,U) else - U << "ERROR: \black Remote access channel disabled." + U << "ERROR: Remote access channel disabled." return//Return individually so that ..() can run properly at the end of the proc. else if(istype(I, /obj/item/device/paicard) && !pai)//If it's a pai card. U:drop_item() @@ -2190,7 +1876,7 @@ ________________________________________________________________________________ TD.stored = null U << "Data analyzed and updated. Disk erased." else - U << "ERROR: \black Procedure interrupted. Process terminated." + U << "ERROR: Procedure interrupted. Process terminated." else I.loc = src t_disk = I @@ -2256,7 +1942,7 @@ ________________________________________________________________________________ user << "There are [s_bombs] smoke bomb\s remaining." user << "There are [a_boost] adrenaline booster\s remaining." else - user << "�rr�R �a��a�� No-�-� f��N� 3RR�r" + user << "�rr�R �a��a�� No-�-� f��N� 3RR�r" /* =================================================================================== @@ -2405,7 +2091,7 @@ ________________________________________________________________________________ for(var/datum/tech/analyzing_data in A:files.known_tech) if(current_data.id==analyzing_data.id) if(analyzing_data.level>current_data.level) - U << "Database: \black UPDATED." + U << "Database: UPDATED." current_data.level = analyzing_data.level break//Move on to next. else break//Otherwise, quit processing. @@ -2617,7 +2303,7 @@ It is possible to destroy the net by the occupant or someone else. for(var/mob/O in viewers(src, 3)) O.show_message("[M.name] was recovered from the energy net!", 1, "You hear a grunt.", 2) if(!isnull(master))//As long as they still exist. - master << "ERROR: \black unable to initiate transport protocol. Procedure terminated." + master << "ERROR: unable to initiate transport protocol. Procedure terminated." qdel(src) return @@ -2631,7 +2317,7 @@ It is possible to destroy the net by the occupant or someone else. if(isnull(M)||M.loc!=loc)//If mob is gone or not at the location. if(!isnull(master))//As long as they still exist. - master << "ERROR: \black unable to locate \the [mob_name]. Procedure terminated." + master << "ERROR: unable to locate \the [mob_name]. Procedure terminated." qdel(src)//Get rid of the net. return @@ -2667,7 +2353,7 @@ It is possible to destroy the net by the occupant or someone else. O.show_message("[M] vanished!", 1, "You hear sparks flying!", 2) if(!isnull(master))//As long as they still exist. - master << "SUCCESS: \black transport procedure of \the [affecting] complete." + master << "SUCCESS: transport procedure of \the [affecting] complete." M.anchored = 0//Important. diff --git a/code/modules/events/wizard/departmentrevolt.dm b/code/modules/events/wizard/departmentrevolt.dm index 68c9d68e430..59707297095 100644 --- a/code/modules/events/wizard/departmentrevolt.dm +++ b/code/modules/events/wizard/departmentrevolt.dm @@ -30,7 +30,7 @@ jobs_to_revolt = list("Quartermaster", "Cargo Technician", "Shaft Miner") nation = pick("Cargo", "Guna", "Suppli", "Mule", "Crate", "Ore", "Mini", "Shaf") if("whatevercolorrepresentstheservicepeople") //the few, the proud, the technically aligned - jobs_to_revolt = list("Bartender", "Chef", "Botanist", "Clown", "Mime", "Janitor", "Chaplain") + jobs_to_revolt = list("Bartender", "Cook", "Botanist", "Clown", "Mime", "Janitor", "Chaplain") nation = pick("Honka", "Boozo", "Fatu", "Danka", "Mimi", "Libra", "Jani", "Religi") nation += pick("stan", "topia", "land", "nia", "ca", "tova", "dor", "ador", "tia", "sia", "ano", "tica", "tide", "cis", "marea", "co", "taoide", "slavia", "stotzka") diff --git a/code/modules/events/wizard/summons.dm b/code/modules/events/wizard/summons.dm index b6ea39cef65..afe85bad448 100644 --- a/code/modules/events/wizard/summons.dm +++ b/code/modules/events/wizard/summons.dm @@ -6,7 +6,7 @@ earliest_start = 0 /datum/round_event/wizard/summonguns/start() - rightandwrong(0) + rightandwrong(0,,10) /datum/round_event_control/wizard/summonmagic //The Somewhat Less Classic name = "Summon Magic" @@ -16,4 +16,4 @@ earliest_start = 0 /datum/round_event/wizard/summonmagic/start() - rightandwrong(1) \ No newline at end of file + rightandwrong(1,,10) \ No newline at end of file diff --git a/code/modules/food&drinks/drinks/drinks/bottle.dm b/code/modules/food&drinks/drinks/drinks/bottle.dm index b5ef66b0700..5b63c23a921 100644 --- a/code/modules/food&drinks/drinks/drinks/bottle.dm +++ b/code/modules/food&drinks/drinks/drinks/bottle.dm @@ -101,7 +101,7 @@ //The reagents in the bottle splash all over the target, thanks for the idea Nodrak if(src.reagents) for(var/mob/O in viewers(user, null)) - O.show_message(text("The contents of the [src] splashes all over [target]!"), 1) + O.show_message(text("The contents of \the [src] splashes all over [target]!"), 1) src.reagents.reaction(target, TOUCH) //Finally, smash the bottle. This kills (del) the bottle. diff --git a/code/modules/food&drinks/food/condiment.dm b/code/modules/food&drinks/food/condiment.dm index d2851da7ee9..948445dc33b 100644 --- a/code/modules/food&drinks/food/condiment.dm +++ b/code/modules/food&drinks/food/condiment.dm @@ -45,7 +45,7 @@ if(src.reagents.has_reagent("sugar") && M.satiety < -150 && M.nutrition > NUTRITION_LEVEL_STARVING + 50 ) M << "You don't feel like drinking any more sugary food at the moment." return 0 - M << "You swallow some of contents of the [src]." + M << "You swallow some of contents of \the [src]." if(reagents.total_volume) reagents.reaction(M, INGEST) spawn(5) diff --git a/code/modules/food&drinks/food/snacks.dm b/code/modules/food&drinks/food/snacks.dm index ae48a397bbb..1dc37168afa 100644 --- a/code/modules/food&drinks/food/snacks.dm +++ b/code/modules/food&drinks/food/snacks.dm @@ -189,10 +189,10 @@ if(isanimal(M)) if(iscorgi(M)) if(bitecount == 0 || prob(50)) - M.emote("me", 1, "nibbles away at the [src]") + M.emote("me", 1, "nibbles away at \the [src]") bitecount++ if(bitecount >= 5) - var/sattisfaction_text = pick("burps from enjoyment", "yaps for more", "woofs twice", "looks at the area where the [src] was") + var/sattisfaction_text = pick("burps from enjoyment", "yaps for more", "woofs twice", "looks at the area where \the [src] was") if(sattisfaction_text) M.emote("me", 1, "[sattisfaction_text]") qdel(src) diff --git a/code/modules/food&drinks/food/snacks/food_mixtures.dm b/code/modules/food&drinks/food/snacks/food_mixtures.dm index a2b65c55b6b..04991d76b68 100644 --- a/code/modules/food&drinks/food/snacks/food_mixtures.dm +++ b/code/modules/food&drinks/food/snacks/food_mixtures.dm @@ -8,6 +8,8 @@ required_reagents = list("soymilk" = 10) required_catalysts = list("enzyme" = 5) result_amount = 1 + mob_react=1 + /datum/chemical_reaction/tofu/on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) for(var/i = 1, i <= created_volume, i++) @@ -20,18 +22,21 @@ result = null required_reagents = list("soymilk" = 2, "coco" = 2, "sugar" = 2) result_amount = 1 + /datum/chemical_reaction/chocolate_bar/on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) for(var/i = 1, i <= created_volume, i++) new /obj/item/weapon/reagent_containers/food/snacks/chocolatebar(location) return + /datum/chemical_reaction/chocolate_bar2 name = "Chocolate Bar" id = "chocolate_bar" result = null required_reagents = list("milk" = 2, "coco" = 2, "sugar" = 2) result_amount = 1 + mob_react = 1 /datum/chemical_reaction/chocolate_bar2/on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) for(var/i = 1, i <= created_volume, i++) @@ -73,6 +78,7 @@ required_reagents = list("milk" = 40) required_catalysts = list("enzyme" = 5) result_amount = 1 + /datum/chemical_reaction/cheesewheel/on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) new /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesewheel(location) @@ -84,6 +90,8 @@ result = null required_reagents = list("blood" = 5, "clonexadone" = 1) result_amount = 1 + mob_react = 1 + /datum/chemical_reaction/syntiflesh/on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) new /obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh(location) diff --git a/code/modules/food&drinks/food/snacks_other.dm b/code/modules/food&drinks/food/snacks_other.dm index e2a19d059ce..df65352f4dc 100644 --- a/code/modules/food&drinks/food/snacks_other.dm +++ b/code/modules/food&drinks/food/snacks_other.dm @@ -122,7 +122,7 @@ /obj/item/weapon/reagent_containers/food/snacks/badrecipe name = "burned mess" - desc = "Someone should be demoted from chef for this." + desc = "Someone should be demoted from cook for this." icon_state = "badrecipe" /obj/item/weapon/reagent_containers/food/snacks/badrecipe/New() @@ -202,8 +202,6 @@ reagents.add_reagent("minttoxin", 1) bitesize = 1 -////////////////////////////////FOOD ADDITIONS//////////////////////////////////////////// - /obj/item/weapon/reagent_containers/food/snacks/wrap name = "egg wrap" desc = "The precursor to Pigs in a Blanket." @@ -234,3 +232,26 @@ reagents.add_reagent("nutriment", 2) reagents.add_reagent("toxin", 3) bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/chococoin + name = "chocolate coin" + desc = "A completely edible but nonflippable festive coin." + icon_state = "chococoin" + +/obj/item/weapon/reagent_containers/food/snacks/chococoin/New() + ..() + reagents.add_reagent("nutriment", 3) + reagents.add_reagent("sugar", 2) + reagents.add_reagent("coco", 2) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/chocoorange + name = "chocolate orange" + desc = "A festive chocolate orange" + icon_state = "chocoorange" + +/obj/item/weapon/reagent_containers/food/snacks/chocoorange/New() + ..() + reagents.add_reagent("nutriment", 4) + reagents.add_reagent("sugar", 2) + reagents.add_reagent("coco", 2) \ No newline at end of file diff --git a/code/modules/food&drinks/food/snacks_pastry.dm b/code/modules/food&drinks/food/snacks_pastry.dm index 319b1db0562..4860f4fd103 100644 --- a/code/modules/food&drinks/food/snacks_pastry.dm +++ b/code/modules/food&drinks/food/snacks_pastry.dm @@ -211,21 +211,10 @@ name = "\improper Donk-pocket" desc = "The food of choice for the seasoned traitor." icon_state = "donkpocket" - var/warm = 0 /obj/item/weapon/reagent_containers/food/snacks/donkpocket/New() ..() reagents.add_reagent("nutriment", 4) - reagents.add_reagent("sugar", 5) - -/obj/item/weapon/reagent_containers/food/snacks/donkpocket/proc/cooltime() //Not working, derp? - if(warm) - spawn(4200) //ew - warm = 0 - reagents.del_reagent("tricordrazine") - reagents.add_reagent("sugar", 5) - name = initial(name) - return /obj/item/weapon/reagent_containers/food/snacks/fortunecookie name = "fortune cookie" @@ -319,4 +308,15 @@ ..() reagents.add_reagent("nutriment", 3) reagents.add_reagent("sugar", 3) - bitesize = 2 \ No newline at end of file + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/chococornet/ + name = "chocolate cornet" + desc = "Which side's the head, the fat end or the thin end?" + icon_state = "chococornet" + +/obj/item/weapon/reagent_containers/food/snacks/chococornet/New() + ..() + reagents.add_reagent("nutriment", 6) + reagents.add_reagent("sodiumchloride", 1) + reagents.add_reagent("vitamin", 1) \ No newline at end of file diff --git a/code/modules/food&drinks/recipes/microwave/recipes.dm b/code/modules/food&drinks/recipes/microwave/recipes.dm index 4bf797f5bf7..7e4ec7c1cdb 100644 --- a/code/modules/food&drinks/recipes/microwave/recipes.dm +++ b/code/modules/food&drinks/recipes/microwave/recipes.dm @@ -69,3 +69,17 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/apple ) result = /obj/item/weapon/reagent_containers/food/snacks/candiedapple + +/datum/recipe/chococoin + items = list( + /obj/item/weapon/coin, + /obj/item/weapon/reagent_containers/food/snacks/chocolatebar, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/chococoin + +/datum/recipe/chocoorange + items = list( + /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange, + /obj/item/weapon/reagent_containers/food/snacks/chocolatebar, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/chocoorange diff --git a/code/modules/food&drinks/recipes/microwave/recipes_pastry.dm b/code/modules/food&drinks/recipes/microwave/recipes_pastry.dm index 8320a99f771..96a202c12ac 100644 --- a/code/modules/food&drinks/recipes/microwave/recipes_pastry.dm +++ b/code/modules/food&drinks/recipes/microwave/recipes_pastry.dm @@ -71,34 +71,10 @@ /datum/recipe/donkpocket reagents = list("flour" = 5) items = list( - /obj/item/weapon/reagent_containers/food/snacks/faggot, + /obj/item/weapon/reagent_containers/food/snacks/faggot ) - result = /obj/item/weapon/reagent_containers/food/snacks/donkpocket //SPECIAL + result = /obj/item/weapon/reagent_containers/food/snacks/donkpocket -/datum/recipe/donkpocket/proc/warm_up(var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/being_cooked) - being_cooked.warm = 1 - being_cooked.reagents.add_reagent("tricordrazine", 5) - being_cooked.reagents.del_reagent("sugar") - being_cooked.bitesize = 6 - being_cooked.name = "Warm " + being_cooked.name - being_cooked.cooltime() - -/datum/recipe/donkpocket/make_food(var/obj/container as obj) - var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/being_cooked = ..(container) - warm_up(being_cooked) - return being_cooked - -/datum/recipe/donkpocket/warm - reagents = list() //This is necessary since this is a child object of the above recipe and we don't want donk pockets to need flour - items = list( - /obj/item/weapon/reagent_containers/food/snacks/donkpocket - ) - result = /obj/item/weapon/reagent_containers/food/snacks/donkpocket //SPECIAL - make_food(var/obj/container as obj) - var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/being_cooked = locate() in container - if(being_cooked && !being_cooked.warm) - warm_up(being_cooked) - return being_cooked ////////////////////////////////////////////////MUFFINS//////////////////////////////////////////////// @@ -201,3 +177,10 @@ /datum/recipe/cracker reagents = list("flour" = 5, "sodiumchloride" = 1) result = /obj/item/weapon/reagent_containers/food/snacks/cracker + +/datum/recipe/chococornet + reagents = list("flour" = 10, "sodiumchloride" = 1) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/chocolatebar, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/chococornet diff --git a/code/modules/hydroponics/growninedible.dm b/code/modules/hydroponics/growninedible.dm index 168c7c15f76..02e1160db2c 100644 --- a/code/modules/hydroponics/growninedible.dm +++ b/code/modules/hydroponics/growninedible.dm @@ -67,7 +67,7 @@ /obj/item/weapon/grown/log/attackby(obj/item/weapon/W as obj, mob/user as mob) ..() if(istype(W, /obj/item/weapon/circular_saw) || istype(W, /obj/item/weapon/hatchet) || (istype(W, /obj/item/weapon/twohanded/fireaxe) && W:wielded) || istype(W, /obj/item/weapon/melee/energy)) - user.show_message("You make planks out of the [src]!", 1) + user.show_message("You make planks out of \the [src]!", 1) for(var/i = 0,i < 2,i++) var/obj/item/stack/sheet/mineral/wood/NG = new (user.loc) for (var/obj/item/stack/sheet/mineral/wood/G in user.loc) @@ -83,7 +83,7 @@ if(is_type_in_list(W,accepted)) var/obj/item/weapon/reagent_containers/food/snacks/grown/leaf = W if(leaf.dry) - user.show_message("You wrap the [W] around the log, turning it into a torch!") + user.show_message("You wrap \the [W] around the log, turning it into a torch!") var/obj/item/device/flashlight/flare/torch/T = new /obj/item/device/flashlight/flare/torch(user.loc) usr.unEquip(W) usr.put_in_active_hand(T) diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 3ab6a0b24eb..09915ec30ee 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -721,12 +721,12 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob) if(anchored == 2) playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) anchored = 1 - user << "You unscrew the [src]'s hoses." + user << "You unscrew \the [src]'s hoses." else if(anchored == 1) playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) anchored = 2 - user << "You screw in the [src]'s hoses." + user << "You screw in \the [src]'s hoses." for(var/obj/machinery/hydroponics/h in range(1,src)) spawn() @@ -813,6 +813,7 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob) mind.transfer_to(podman) podman.ckey = ckey podman.gender = blood_gender + podman.faction |= factions hardset_dna(podman,null,null,podman.real_name,blood_type,/datum/species/plant/pod,"#59CE00")//Discard SE's and UI's, podman cloning is inaccurate, and always make them a podman podman.set_cloned_appearance() diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index 1b5ead39644..4bfc11fbdbf 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -80,6 +80,7 @@ var/datum/mind/mind = null var/blood_gender = null var/blood_type = null + var/factions = null /obj/item/seeds/replicapod/attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype(W,/obj/item/weapon/reagent_containers/syringe)) @@ -91,6 +92,7 @@ realName = bloodSample.data["real_name"] blood_gender = bloodSample.data["gender"] blood_type = bloodSample.data["blood_type"] + factions = bloodSample.data["factions"] W.reagents.clear_reagents() user << "You inject the contents of the syringe into the seeds." else diff --git a/code/modules/mining/equipment_locker.dm b/code/modules/mining/equipment_locker.dm index 4874f04a838..9f4857c18af 100644 --- a/code/modules/mining/equipment_locker.dm +++ b/code/modules/mining/equipment_locker.dm @@ -471,6 +471,13 @@ force = 10 throwforce = 10 var/cooldown = 0 + var/list/can_be_placed_into = list( + /obj/structure/table, + /obj/structure/closet, + /obj/item/weapon/storage, + /obj/structure/safe, + /obj/machinery/disposal + ) /obj/item/weapon/resonator/proc/CreateResonance(var/target, var/creator) if(cooldown <= 0) @@ -489,6 +496,9 @@ if(target in user.contents) return if(proximity_flag) + for(var/type in can_be_placed_into) + if(istype(target, type)) + return CreateResonance(target, user) /obj/effect/resonance @@ -702,7 +712,8 @@ if(istype(target, /mob/living/simple_animal/hostile)) var/mob/living/simple_animal/hostile/H = M if(malfunctioning) - M.faction = list("lazarus") + H.faction |= list("lazarus", "\ref[user]") + H.robust_searching = 1 H.friends += user H.attack_same = 1 log_game("[user] has revived hostile mob [target] with a malfunctioning lazarus injector") diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index d168bb0444e..fa1b079478e 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -152,7 +152,7 @@ if(triggered_by_explosive) log_game("An explosion has primed a [name] for detonation at [A.name]([bombturf.x],[bombturf.y],[bombturf.z])") else - user.visible_message("[user] strikes the [src], causing a chain reaction!") + user.visible_message("[user] strikes \the [src], causing a chain reaction!") log_game("[key_name(usr)] has primed a [name] for detonation at [A.name]([bombturf.x],[bombturf.y],[bombturf.z])") spawn(det_time) if(primed) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index f7da665c052..703d4b577e0 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -301,3 +301,13 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp return 0 usr.visible_message("[src] points to [A]") return 1 + +/mob/dead/observer/verb/view_manfiest() + set name = "View Crew Manifest" + set category = "Ghost" + + var/dat + dat += "

    Crew Manifest

    " + dat += data_core.get_manifest() + + src << browse(dat, "window=manifest;size=370x420;can_close=1") \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm index ca793492cc4..49e25cf646d 100644 --- a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm +++ b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm @@ -53,6 +53,8 @@ var/const/ALIEN_AFK_BRACKET = 450 // 45 seconds switch(stage) if(2, 3) + if(affected_mob == DEAD) + return if(prob(1)) affected_mob.emote("sneeze") if(prob(1)) @@ -62,6 +64,8 @@ var/const/ALIEN_AFK_BRACKET = 450 // 45 seconds if(prob(1)) affected_mob << "Mucous runs down the back of your throat." if(4) + if(affected_mob == DEAD) + return if(prob(1)) affected_mob.emote("sneeze") if(prob(1)) @@ -76,9 +80,10 @@ var/const/ALIEN_AFK_BRACKET = 450 // 45 seconds affected_mob.adjustToxLoss(1) affected_mob.updatehealth() if(5) - affected_mob << "You feel something tearing its way out of your stomach..." - affected_mob.adjustToxLoss(10) - affected_mob.updatehealth() + if(affected_mob != DEAD) + affected_mob << "You feel something tearing its way out of your stomach..." + affected_mob.adjustToxLoss(10) + affected_mob.updatehealth() if(prob(50)) AttemptGrow() diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 482079d7d61..e7fd0006859 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -83,13 +83,16 @@ //src.updatehealth() src.visible_message( "[src] was shocked by the [source]!", \ - "You feel a powerful shock course through your body!", \ + "You feel a powerful shock coursing through your body!", \ "You hear a heavy electrical crack." \ ) -// if(src.stunned < shock_damage) src.stunned = shock_damage - Stun(5)//This should work for now, more is really silly and makes you lay there forever -// if(src.weakened < 20*siemens_coeff) src.weakened = 20*siemens_coeff - Weaken(5) + src.jitteriness += 1000 //High numbers for violent convulsions + src.stuttering += 2 + Stun(2) + spawn(20) + src.jitteriness -= 990 //Still jittery, but vastly less + Stun(3) + Weaken(3) return shock_damage diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 038aedc7952..e0fb775a949 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -32,6 +32,8 @@ randomize_human(src) ..() + var/mob/M = src + faction |= "\ref[M]" /mob/living/carbon/human/prepare_data_huds() //Update med hud images... diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 7594938f076..b1ae7e55db6 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -441,7 +441,6 @@ emp_act update_damage_overlays(0) updatehealth() - M.occupant_message("You hit [src].") visible_message("[M.name] has hit [src]!", \ "[M.name] has hit [src]!") add_logs(M.occupant, src, "attacked", object=M, addition="(INTENT: [uppertext(M.occupant.a_intent)]) (DAMTYPE: [uppertext(M.damtype)])") diff --git a/code/modules/mob/living/carbon/human/species_types.dm b/code/modules/mob/living/carbon/human/species_types.dm index b11cc7d147c..59a6387f7d5 100644 --- a/code/modules/mob/living/carbon/human/species_types.dm +++ b/code/modules/mob/living/carbon/human/species_types.dm @@ -15,6 +15,7 @@ H.dna.species = new /datum/species/slime() H.regenerate_icons() H.reagents.del_reagent(chem.type) + H.faction |= "slime" return 1 /* diff --git a/code/modules/mob/living/carbon/slime/slime.dm b/code/modules/mob/living/carbon/slime/slime.dm index e20466b20f9..8915e2f5d4d 100644 --- a/code/modules/mob/living/carbon/slime/slime.dm +++ b/code/modules/mob/living/carbon/slime/slime.dm @@ -7,6 +7,7 @@ ventcrawler = 2 var/is_adult = 0 languages = SLIME | HUMAN + faction = list("slime") layer = 5 diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index 10cb6ac53d6..7b15852969e 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -60,11 +60,13 @@ eye_blurry = max(eye_blurry,(effect * blocked)) if(DROWSY) drowsyness = max(drowsyness,(effect * blocked)) + if(JITTER) + jitteriness = max(jitteriness,(effect * blocked)) updatehealth() return 1 -/mob/living/proc/apply_effects(var/stun = 0, var/weaken = 0, var/paralyze = 0, var/irradiate = 0, var/stutter = 0, var/eyeblur = 0, var/drowsy = 0, var/blocked = 0) +/mob/living/proc/apply_effects(var/stun = 0, var/weaken = 0, var/paralyze = 0, var/irradiate = 0, var/stutter = 0, var/eyeblur = 0, var/drowsy = 0, var/blocked = 0, var/stamina = 0, var/jitter = 0) if(blocked >= 100) return 0 if(stun) apply_effect(stun, STUN, blocked) if(weaken) apply_effect(weaken, WEAKEN, blocked) @@ -73,4 +75,6 @@ if(stutter) apply_effect(stutter, STUTTER, blocked) if(eyeblur) apply_effect(eyeblur, EYE_BLUR, blocked) if(drowsy) apply_effect(drowsy, DROWSY, blocked) + if(stamina) apply_effect(stamina, STAMINA, blocked) + if(jitter) apply_effect(jitter, JITTER, blocked) return 1 \ No newline at end of file diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index ed75ad5e894..cb4c51e3618 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -267,7 +267,8 @@ for(var/mob/M in dead_mob_list) if(!M.client || istype(M, /mob/new_player)) continue //skip monkeys, leavers and new players - if(M.stat == DEAD && (M.client.prefs.toggles & CHAT_GHOSTSIGHT) && !(M in viewers(src,null))) + var/T = get_turf(src) + if(M.stat == DEAD && (M.client.prefs.toggles & CHAT_GHOSTSIGHT) && !(M in viewers(T,null))) M.show_message(message) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 1a251c02cc9..b4d6f44b902 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -540,6 +540,7 @@ if(C.handcuffed) C.handcuffed = null C.update_inv_handcuffed(0) + return else C.legcuffed = null C.update_inv_legcuffed(0) @@ -571,18 +572,19 @@ C.visible_message("[C] attempts to remove [I]!") C << "You attempt to remove [I]. (This will take around [displaytime] minutes and you need to stand still.)" spawn(0) - if(do_after(C, breakouttime)) + if(do_after(C, breakouttime, 10)) if(!I || C.buckled) return C.visible_message("[C] manages to remove [I]!") C << "You successfully remove [I]." if(C.handcuffed) - C.handcuffed.loc = usr.loc + C.handcuffed.loc = C.loc C.handcuffed = null C.update_inv_handcuffed(0) + return if(C.legcuffed) - C.legcuffed.loc = usr.loc + C.legcuffed.loc = C.loc C.legcuffed = null C.update_inv_legcuffed(0) else @@ -760,6 +762,13 @@ /mob/living/singularity_pull(S) step_towards(src,S) +/mob/living/narsie_act() + if(client) + makeNewConstruct(/mob/living/simple_animal/construct/harvester, src, null, 1) + spawn_dust() + gib() + return + /mob/living/proc/do_attack_animation(atom/A) var/pixel_x_diff = 0 var/pixel_y_diff = 0 diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 54898ef7638..8483b28876d 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -86,14 +86,12 @@ proc/vol_by_throwforce_and_or_w_class(var/obj/item/I) else return updatehealth() - M.occupant_message("You hit [src].") visible_message("[M.name] has hit [src]!", \ "[M.name] has hit [src]!") add_logs(M.occupant, src, "attacked", object=M, addition="(INTENT: [uppertext(M.occupant.a_intent)]) (DAMTYPE: [uppertext(M.damtype)])") else step_away(src,M) add_logs(M.occupant, src, "pushed", object=M, admin=0) - M.occupant_message("You push [src] out of the way.") visible_message("[M] pushes [src] out of the way.") return @@ -217,7 +215,10 @@ proc/vol_by_throwforce_and_or_w_class(var/obj/item/I) M << "No attacking people at spawn, you jackass." return 0 - if (M.a_intent == "harm" && !M.is_muzzled()) + if (M.a_intent == "harm") + if(M.is_muzzled() || (M.wear_mask && M.wear_mask.flags & MASKCOVERSMOUTH)) + M << "You can't bite with your mouth covered!" + return 0 M.do_attack_animation(src) if (prob(75)) add_logs(M, src, "attacked", admin=0) diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index fda757d8aed..31b691a9071 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -261,6 +261,8 @@ var/list/department_radio_keys = list( if(stuttering) message = stutter(message) + message = capitalize(message) + return message /mob/living/proc/radio(message, message_mode, steps) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 30c30cc6e0d..4b12eb1cf13 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -548,7 +548,7 @@ var/list/ai_list = list() cleared = 1 L -= I if (cleared) - queueAlarm(text("--- [] alarm in [] has been cleared.", class, A.name), class, 0) + queueAlarm("--- [class] alarm in [A.name] has been cleared.", class, 0) if (viewalerts) ai_alerts() return !cleared diff --git a/code/modules/mob/living/silicon/ai/say.dm b/code/modules/mob/living/silicon/ai/say.dm index 4d7ffb41382..6bb20acc14f 100644 --- a/code/modules/mob/living/silicon/ai/say.dm +++ b/code/modules/mob/living/silicon/ai/say.dm @@ -33,7 +33,7 @@ return !config.silent_ai /mob/living/silicon/ai/radio(message, message_mode) - if(!radio_enabled || aiRestorePowerRoutine || stat) //AI cannot speak if radio is disabled (via intelicard) or depowered. + if(!radio_enabled || aiRestorePowerRoutine || stat) //AI cannot speak if radio is disabled (via intellicard) or depowered. src << "Your radio transmitter is offline!" return 0 ..(message,message_mode) diff --git a/code/modules/mob/living/silicon/pai/life.dm b/code/modules/mob/living/silicon/pai/life.dm index f35c035b9dc..04e80299d9a 100644 --- a/code/modules/mob/living/silicon/pai/life.dm +++ b/code/modules/mob/living/silicon/pai/life.dm @@ -18,9 +18,3 @@ stat = CONSCIOUS return health = maxHealth - getBruteLoss() - getFireLoss() - -/mob/living/silicon/pai/proc/follow_pai() - while(card) - loc = get_turf(card) - sleep(5) - qdel(src) //if there's no pAI we shouldn't exist diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index a73ecc80042..193477e8dab 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -4,7 +4,6 @@ mouse_opacity = 0 density = 0 mob_size = 0 - invisibility = 101 var/network = "SS13" var/obj/machinery/camera/current = null @@ -51,7 +50,7 @@ /mob/living/silicon/pai/New(var/obj/item/device/paicard) make_laws() canmove = 0 - src.loc = get_turf(paicard) + src.loc = paicard card = paicard sradio = new(src) if(card) @@ -66,7 +65,6 @@ pda.owner = text("[]", src) pda.name = pda.owner + " (" + pda.ownjob + ")" - follow_pai() ..() /mob/living/silicon/pai/make_laws() diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 4403a6a6dca..d2fabd8f836 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -385,7 +385,7 @@ cleared = 1 L -= I if (cleared) - queueAlarm(text("--- [class] alarm in [A.name] has been cleared."), class, 0) + queueAlarm("--- [class] alarm in [A.name] has been cleared.", class, 0) // if (viewalerts) robot_alerts() return !cleared @@ -846,9 +846,9 @@ var/turf/tile = loc if(isturf(tile)) tile.clean_blood() - if (istype(tile, /turf/simulated)) - var/turf/simulated/S = tile - S.dirt = 0 + if (istype(tile, /turf/simulated/floor)) + var/turf/simulated/floor/F = tile + F.dirt = 0 for(var/A in tile) if(istype(A, /obj/effect)) if(istype(A, /obj/effect/rune) || istype(A, /obj/effect/decal/cleanable) || istype(A, /obj/effect/overlay)) diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 6461355f0b9..77be370abf8 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -109,6 +109,7 @@ modules += new /obj/item/borg/sight/meson(src) emag = new /obj/item/borg/stun(src) modules += new /obj/item/weapon/rcd/borg(src) + modules += new /obj/item/weapon/pipe_dispenser(src) //What could possibly go wrong? modules += new /obj/item/weapon/extinguisher(src) modules += new /obj/item/weapon/weldingtool/largetank/cyborg(src) modules += new /obj/item/weapon/screwdriver(src) @@ -161,7 +162,7 @@ modules += new /obj/item/device/flashlight/seclite(src) modules += new /obj/item/weapon/restraints/handcuffs/cable/zipties/cyborg(src) modules += new /obj/item/weapon/melee/baton/loaded(src) - modules += new /obj/item/weapon/gun/energy/taser/cyborg(src) + modules += new /obj/item/weapon/gun/energy/gun/advtaser/cyborg(src) modules += new /obj/item/clothing/mask/gas/sechailer/cyborg(src) emag = new /obj/item/weapon/gun/energy/laser/cyborg(src) fix_modules() diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 6e7cf13c2bc..e34c3d3620a 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -404,5 +404,5 @@ return 1 else visible_message("[M] punches [src], but doesn't leave a dent.", \ - "[M] punches [src], but doesn't leave a dent.!") + "[M] punches [src], but doesn't leave a dent!") return 0 diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index f52831f11af..2f515596d37 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -70,7 +70,8 @@ Proj.on_hit(src, 0) return 0 - +/mob/living/simple_animal/construct/narsie_act() + return /////////////////Juggernaut/////////////// diff --git a/code/modules/mob/living/simple_animal/corpse.dm b/code/modules/mob/living/simple_animal/corpse.dm index 30f5277c4d8..405b882ea17 100644 --- a/code/modules/mob/living/simple_animal/corpse.dm +++ b/code/modules/mob/living/simple_animal/corpse.dm @@ -92,7 +92,7 @@ corpsegloves = /obj/item/clothing/gloves/combat corpseradio = /obj/item/device/radio/headset corpsemask = /obj/item/clothing/mask/gas - corpsehelmet = /obj/item/clothing/head/helmet/swat/syndicate + corpsehelmet = /obj/item/clothing/head/helmet/swat corpseback = /obj/item/weapon/storage/backpack corpseid = 1 corpseidjob = "Operative" diff --git a/code/modules/mob/living/simple_animal/friendly/corgi.dm b/code/modules/mob/living/simple_animal/friendly/corgi.dm index 7726038a19a..9546b077482 100644 --- a/code/modules/mob/living/simple_animal/friendly/corgi.dm +++ b/code/modules/mob/living/simple_animal/friendly/corgi.dm @@ -25,7 +25,15 @@ var/obj/item/inventory_back var/facehugger -/mob/living/simple_animal/corgi/Life() +/mob/living/simple_animal/corgi/New() + ..() + regenerate_icons() + +/mob/living/simple_animal/corgi/Die() + ..() + regenerate_icons() + +/mob/living/simple_animal/corgi/revive() ..() regenerate_icons() @@ -123,7 +131,7 @@ switch(add_to) if("head") - place_on_head(usr.get_active_hand()) + place_on_head(usr.get_active_hand(),usr) if("back") if(inventory_back) @@ -141,7 +149,7 @@ //The objects that corgis can wear on their backs. var/list/allowed_types = list( - /obj/item/clothing/suit/armor/vest, + /obj/item/clothing/suit/armor/vest/alt, /obj/item/device/radio, /obj/item/device/radio/off, /obj/item/clothing/suit/cardborg, @@ -175,152 +183,156 @@ //Corgis are supposed to be simpler, so only a select few objects can actually be put //to be compatible with them. The objects are below. //Many hats added, Some will probably be removed, just want to see which ones are popular. -/mob/living/simple_animal/corgi/proc/place_on_head(obj/item/item_to_add) +/mob/living/simple_animal/corgi/proc/place_on_head(obj/item/item_to_add, var/mob/user as mob) if(istype(item_to_add,/obj/item/weapon/c4)) // last thing he ever wears, I guess - item_to_add.afterattack(src,usr,1) + item_to_add.afterattack(src,user,1) return if(inventory_head) - if(usr) usr << "You can't put more than one hat on [src]!" + if(user) user << "You can't put more than one hat on [src]!" return if(!item_to_add) - usr.visible_message("[usr] pets [src]","You rest your hand on [src]'s head for a moment.") + user.visible_message("[user] pets [src]","You rest your hand on [src]'s head for a moment.") return var/valid = 0 //Various hats and items (worn on his head) change Ian's behaviour. His attributes are reset when a hat is removed. - switch(item_to_add.type) - if( /obj/item/clothing/glasses/sunglasses, /obj/item/clothing/head/that, /obj/item/clothing/head/collectable/paper, - /obj/item/clothing/head/hardhat, /obj/item/clothing/head/collectable/hardhat,/obj/item/clothing/head/hardhat/white, /obj/item/weapon/paper ) - valid = 1 + if(istype(item_to_add, /obj/item/clothing/tie/scarf)) + valid = 1 + else + switch(item_to_add.type) + if( /obj/item/clothing/glasses/sunglasses, /obj/item/clothing/head/that, /obj/item/clothing/head/collectable/paper, + /obj/item/clothing/head/hardhat, /obj/item/clothing/head/collectable/hardhat, /obj/item/clothing/head/hardhat/white, + /obj/item/weapon/paper) + valid = 1 - if(/obj/item/clothing/head/helmet) - name = "Sergeant [real_name]" - desc = "The ever-loyal, the ever-vigilant." - valid = 1 + if(/obj/item/clothing/head/helmet) + name = "Sergeant [real_name]" + desc = "The ever-loyal, the ever-vigilant." + valid = 1 - if(/obj/item/clothing/head/chefhat, /obj/item/clothing/head/collectable/chef) - name = "Sous chef [real_name]" - desc = "Your food will be taste-tested. All of it." - valid = 1 + if(/obj/item/clothing/head/chefhat, /obj/item/clothing/head/collectable/chef) + name = "Sous chef [real_name]" + desc = "Your food will be taste-tested. All of it." + valid = 1 - if(/obj/item/clothing/head/caphat, /obj/item/clothing/head/collectable/captain) - name = "Captain [real_name]" - desc = "Probably better than the last captain." - valid = 1 + if(/obj/item/clothing/head/caphat, /obj/item/clothing/head/collectable/captain) + name = "Captain [real_name]" + desc = "Probably better than the last captain." + valid = 1 - if(/obj/item/clothing/head/kitty, /obj/item/clothing/head/collectable/kitty) - name = "Runtime" - emote_see = list("coughs up a furball", "stretches") - emote_hear = list("purrs") - speak = list("Purrr", "Meow!", "MAOOOOOW!", "HISSSSS", "MEEEEEEW") - desc = "It's a cute little kitty-cat! ... wait ... what the hell?" - valid = 1 + if(/obj/item/clothing/head/kitty, /obj/item/clothing/head/collectable/kitty) + name = "Runtime" + emote_see = list("coughs up a furball", "stretches") + emote_hear = list("purrs") + speak = list("Purrr", "Meow!", "MAOOOOOW!", "HISSSSS", "MEEEEEEW") + desc = "It's a cute little kitty-cat! ... wait ... what the hell?" + valid = 1 - if(/obj/item/clothing/head/rabbitears, /obj/item/clothing/head/collectable/rabbitears) - name = "Hoppy" - emote_see = list("twitches its nose", "hops around a bit") - desc = "This is Hoppy. It's a corgi-...urmm... bunny rabbit" - valid = 1 + if(/obj/item/clothing/head/rabbitears, /obj/item/clothing/head/collectable/rabbitears) + name = "Hoppy" + emote_see = list("twitches its nose", "hops around a bit") + desc = "This is Hoppy. It's a corgi-...urmm... bunny rabbit" + valid = 1 - if(/obj/item/clothing/head/beret, /obj/item/clothing/head/collectable/beret) - name = "Yann" - desc = "Mon dieu! C'est un chien!" - speak = list("le woof!", "le bark!", "JAPPE!!") - emote_see = list("cowers in fear.", "surrenders.", "plays dead.","looks as though there is a wall in front of him.") - valid = 1 + if(/obj/item/clothing/head/beret, /obj/item/clothing/head/collectable/beret) + name = "Yann" + desc = "Mon dieu! C'est un chien!" + speak = list("le woof!", "le bark!", "JAPPE!!") + emote_see = list("cowers in fear.", "surrenders.", "plays dead.","looks as though there is a wall in front of him.") + valid = 1 - if(/obj/item/clothing/head/det_hat) - name = "Detective [real_name]" - desc = "[name] sees through your lies..." - emote_see = list("investigates the area.","sniffs around for clues.","searches for scooby snacks.") - valid = 1 + if(/obj/item/clothing/head/det_hat) + name = "Detective [real_name]" + desc = "[name] sees through your lies..." + emote_see = list("investigates the area.","sniffs around for clues.","searches for scooby snacks.") + valid = 1 - if(/obj/item/clothing/head/nursehat) - name = "Nurse [real_name]" - desc = "[name] needs 100cc of beef jerky...STAT!" - valid = 1 + if(/obj/item/clothing/head/nursehat) + name = "Nurse [real_name]" + desc = "[name] needs 100cc of beef jerky...STAT!" + valid = 1 - if(/obj/item/clothing/head/pirate, /obj/item/clothing/head/collectable/pirate) - name = "[pick("Ol'","Scurvy","Black","Rum","Gammy","Bloody","Gangrene","Death","Long-John")] [pick("kibble","leg","beard","tooth","poop-deck","Threepwood","Le Chuck","corsair","Silver","Crusoe")]" - desc = "Yaarghh!! Thar' be a scurvy dog!" - emote_see = list("hunts for treasure.","stares coldly...","gnashes his tiny corgi teeth!") - emote_hear = list("growls ferociously!", "snarls.") - speak = list("Arrrrgh!!","Grrrrrr!") - valid = 1 + if(/obj/item/clothing/head/pirate, /obj/item/clothing/head/collectable/pirate) + name = "[pick("Ol'","Scurvy","Black","Rum","Gammy","Bloody","Gangrene","Death","Long-John")] [pick("kibble","leg","beard","tooth","poop-deck","Threepwood","Le Chuck","corsair","Silver","Crusoe")]" + desc = "Yaarghh!! Thar' be a scurvy dog!" + emote_see = list("hunts for treasure.","stares coldly...","gnashes his tiny corgi teeth!") + emote_hear = list("growls ferociously!", "snarls.") + speak = list("Arrrrgh!!","Grrrrrr!") + valid = 1 - if(/obj/item/clothing/head/ushanka) - name = "[pick("Comrade","Commissar","Glorious Leader")] [real_name]" - desc = "A follower of Karl Barx." - emote_see = list("contemplates the failings of the capitalist economic model.", "ponders the pros and cons of vangaurdism.") - valid = 1 + if(/obj/item/clothing/head/ushanka) + name = "[pick("Comrade","Commissar","Glorious Leader")] [real_name]" + desc = "A follower of Karl Barx." + emote_see = list("contemplates the failings of the capitalist economic model.", "ponders the pros and cons of vangaurdism.") + valid = 1 - if(/obj/item/clothing/head/collectable/police) - name = "Officer [real_name]" - emote_see = list("drools.","looks for donuts.") - desc = "Stop right there criminal scum!" - valid = 1 + if(/obj/item/clothing/head/collectable/police) + name = "Officer [real_name]" + emote_see = list("drools.","looks for donuts.") + desc = "Stop right there criminal scum!" + valid = 1 - if(/obj/item/clothing/head/wizard/fake, /obj/item/clothing/head/wizard, /obj/item/clothing/head/collectable/wizard) - name = "Grandwizard [real_name]" - speak = list("YAP", "Woof!", "Bark!", "AUUUUUU", "EI NATH!") - valid = 1 + if(/obj/item/clothing/head/wizard/fake, /obj/item/clothing/head/wizard, /obj/item/clothing/head/collectable/wizard) + name = "Grandwizard [real_name]" + speak = list("YAP", "Woof!", "Bark!", "AUUUUUU", "EI NATH!") + valid = 1 - if(/obj/item/clothing/head/cardborg) - name = "Borgi" - speak = list("Ping!","Beep!","Woof!") - emote_see = list("goes rogue.", "sniffs out non-humans.") - desc = "Result of robotics budget cuts." - valid = 1 + if(/obj/item/clothing/head/cardborg) + name = "Borgi" + speak = list("Ping!","Beep!","Woof!") + emote_see = list("goes rogue.", "sniffs out non-humans.") + desc = "Result of robotics budget cuts." + valid = 1 - if(/obj/item/weapon/bedsheet) - name = "\improper Ghost" - speak = list("WoooOOOooo~","AUUUUUUUUUUUUUUUUUU") - emote_see = list("stumbles around.", "shivers.") - emote_hear = list("howls!","groans.") - desc = "Spooky!" - valid = 1 + if(/obj/item/weapon/bedsheet) + name = "\improper Ghost" + speak = list("WoooOOOooo~","AUUUUUUUUUUUUUUUUUU") + emote_see = list("stumbles around.", "shivers.") + emote_hear = list("howls!","groans.") + desc = "Spooky!" + valid = 1 - if(/obj/item/clothing/head/helmet/space/santahat) - name = "Santa's Corgi Helper" - emote_hear = list("barks christmas songs.", "yaps merrily!") - emote_see = list("looks for presents.", "checks his list.") - desc = "He's very fond of milk and cookies." - valid = 1 + if(/obj/item/clothing/head/helmet/space/santahat) + name = "Santa's Corgi Helper" + emote_hear = list("barks christmas songs.", "yaps merrily!") + emote_see = list("looks for presents.", "checks his list.") + desc = "He's very fond of milk and cookies." + valid = 1 - if(/obj/item/clothing/head/soft) - name = "Corgi Tech [real_name]" - desc = "The reason your yellow gloves have chew-marks." - valid = 1 + if(/obj/item/clothing/head/soft) + name = "Corgi Tech [real_name]" + desc = "The reason your yellow gloves have chew-marks." + valid = 1 - if(/obj/item/clothing/head/hardhat/reindeer) - name = "[real_name] the red-nosed Corgi" - emote_hear = list("lights the way!", "illuminates.", "yaps!") - desc = "He has a very shiny nose." - SetLuminosity(1) - valid = 1 + if(/obj/item/clothing/head/hardhat/reindeer) + name = "[real_name] the red-nosed Corgi" + emote_hear = list("lights the way!", "illuminates.", "yaps!") + desc = "He has a very shiny nose." + SetLuminosity(1) + valid = 1 - if(/obj/item/clothing/head/sombrero) - name = "Segnor [real_name]" - desc = "You must respect elder [real_name]" - valid = 1 + if(/obj/item/clothing/head/sombrero) + name = "Segnor [real_name]" + desc = "You must respect elder [real_name]" + valid = 1 - if(/obj/item/clothing/head/hopcap) - name = "Lieutenant [real_name]" - desc = "Can actually be trusted to not run off on his own." - valid = 1 + if(/obj/item/clothing/head/hopcap) + name = "Lieutenant [real_name]" + desc = "Can actually be trusted to not run off on his own." + valid = 1 if(valid) + if(user && !user.drop_item()) + user << "\The [item_to_add] is stuck to your hand, you cannot put it on [src]'s head!" + return 0 if(health <= 0) - usr << "There is merely a dull, lifeless look in [real_name]'s eyes as you put the [item_to_add] on \him." - else if(usr) - if(!usr.drop_item()) - usr << "\The [item_to_add] is stuck to your hand, you cannot put it on [src]'s head!" - return 0 - usr.visible_message("[usr] puts [item_to_add] on [real_name]'s head. [src] looks at [usr] and barks once.", + user << "There is merely a dull, lifeless look in [real_name]'s eyes as you put the [item_to_add] on \him." + else if(user) + user.visible_message("[user] puts [item_to_add] on [real_name]'s head. [src] looks at [user] and barks once.", "You put [item_to_add] on [real_name]'s head. [src] gives you a peculiar look, then wags \his tail once and barks.", "You hear a friendly-sounding bark.") item_to_add.loc = src @@ -328,10 +340,10 @@ regenerate_icons() else - if(!usr.drop_item()) - usr << "\The [item_to_add] is stuck to your hand, you cannot put it on [src]'s head!" + if(user && !user.drop_item()) + user << "\The [item_to_add] is stuck to your hand, you cannot put it on [src]'s head!" return 0 - usr << "You set [item_to_add] on [src]'s head, but \he shakes it off!" + user << "You set [item_to_add] on [src]'s head, but \he shakes it off!" item_to_add.loc = loc if(prob(25)) step_rand(item_to_add) @@ -411,25 +423,27 @@ /mob/living/simple_animal/corgi/regenerate_icons() - overlays = list() + overlays.Cut() if(inventory_head) - var/head_icon_state = inventory_head.icon_state + var/image/head_icon if(health <= 0) - head_icon_state += "2" - - var/icon/head_icon = image('icons/mob/corgi_head.dmi',head_icon_state) - if(head_icon) - overlays += head_icon + head_icon = image('icons/mob/corgi_head.dmi', icon_state = inventory_head.icon_state, dir = EAST) + head_icon.pixel_y = -8 + head_icon.transform = turn(head_icon.transform, 180) + else + head_icon = image('icons/mob/corgi_head.dmi', icon_state = inventory_head.icon_state) + overlays += head_icon if(inventory_back) - var/back_icon_state = inventory_back.icon_state + var/image/back_icon if(health <= 0) - back_icon_state += "2" - - var/icon/back_icon = image('icons/mob/corgi_back.dmi',back_icon_state) - if(back_icon) - overlays += back_icon + back_icon = image('icons/mob/corgi_back.dmi', icon_state = inventory_back.icon_state, dir = EAST) + back_icon.pixel_y = -11 + back_icon.transform = turn(back_icon.transform, 180) + else + back_icon = image('icons/mob/corgi_back.dmi', icon_state = inventory_back.icon_state) + overlays += back_icon if(facehugger) if(istype(src, /mob/living/simple_animal/corgi/puppy)) diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 0f5b32b0ce5..68f8c76ed69 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -4,7 +4,6 @@ environment_smash = 1 //Set to 1 to break closets,tables,racks, etc; 2 for walls; 3 for rwalls var/stance = HOSTILE_STANCE_IDLE //Used to determine behavior var/atom/target - var/attack_same = 0 //Set us to 1 to allow us to attack our own faction, or 2, to only ever attack our own faction var/ranged = 0 var/rapid = 0 var/projectiletype @@ -12,19 +11,24 @@ var/casingtype var/move_to_delay = 3 //delay for the automated movement. var/list/friends = list() - var/vision_range = 9 //How big of an area to search for targets in, a vision of 9 attempts to find targets as soon as they walk into screen view - var/aggro_vision_range = 9 //If a mob is aggro, we search in this radius. Defaults to 9 to keep in line with original simple mob aggro radius - var/idle_vision_range = 9 //If a mob is just idling around, it's vision range is limited to this. Defaults to 9 to keep in line with original simple mob aggro radius var/ranged_message = "fires" //Fluff text for ranged mobs var/ranged_cooldown = 0 //What the starting cooldown is on ranged attacks var/ranged_cooldown_cap = 3 //What ranged attacks, after being used are set to, to go back on cooldown, defaults to 3 life() ticks var/retreat_distance = null //If our mob runs from players when they're too close, set in tile distance. By default, mobs do not retreat. var/minimum_distance = 1 //Minimum approach distance, so ranged mobs chase targets down, but still keep their distance set in tiles to the target, set higher to make mobs keep distance + + +//These vars are related to how mobs locate and target + var/robust_searching = 0 //By default, mobs have a simple searching method, set this to 1 for the more scrutinous searching (stat_attack, stat_exclusive, etc), should be disabled on most mobs + var/vision_range = 9 //How big of an area to search for targets in, a vision of 9 attempts to find targets as soon as they walk into screen view + var/aggro_vision_range = 9 //If a mob is aggro, we search in this radius. Defaults to 9 to keep in line with original simple mob aggro radius + var/idle_vision_range = 9 //If a mob is just idling around, it's vision range is limited to this. Defaults to 9 to keep in line with original simple mob aggro radius var/search_objects = 0 //If we want to consider objects when searching around, set this to 1. If you want to search for objects while also ignoring mobs until hurt, set it to 2. To completely ignore mobs, even when attacked, set it to 3 var/list/wanted_objects = list() //A list of objects that will be checked against to attack, should we have search_objects enabled var/stat_attack = 0 //Mobs with stat_attack to 1 will attempt to attack things that are unconscious, Mobs with stat_attack set to 2 will attempt to attack the dead. var/stat_exclusive = 0 //Mobs with this set to 1 will exclusively attack things defined by stat_attack, stat_attack 2 means they will only attack corpses + var/attack_same = 0 //Set us to 1 to allow us to attack our own faction, or 2, to only ever attack our own faction /mob/living/simple_animal/hostile/Life() @@ -102,33 +106,35 @@ /mob/living/simple_animal/hostile/CanAttack(var/atom/the_target)//Can we actually attack a possible target? if(see_invisible < the_target.invisibility)//Target's invisible to us, forget it return 0 - if(isliving(the_target) && search_objects < 2) - var/mob/living/L = the_target - if(L.stat > stat_attack || L.stat != stat_attack && stat_exclusive == 1) - return 0 - var/faction_check = 0 - for(var/F in faction) - if(F in L.faction) - faction_check = 1 - break - if(faction_check && !attack_same || !faction_check && attack_same == 2) - return 0 - if(L in friends) - return 0 - if(ishuman(L)) - var/mob/living/carbon/human/H = L - if(H.dna) - if(src.type in H.dna.species.ignored_by) - return 0 - return 1 - if(isobj(the_target)) - if(the_target.type in wanted_objects) - return 1 - if(istype(the_target, /obj/mecha) && search_objects < 2) + if(search_objects < 2) + if(istype(the_target, /obj/mecha)) var/obj/mecha/M = the_target if(M.occupant)//Just so we don't attack empty mechs if(CanAttack(M.occupant)) return 1 + if(isliving(the_target)) + var/mob/living/L = the_target + var/faction_check = 0 + for(var/F in faction) + if(F in L.faction) + faction_check = 1 + break + if(robust_searching) + if(L.stat > stat_attack || L.stat != stat_attack && stat_exclusive == 1) + return 0 + if(faction_check && !attack_same || !faction_check && attack_same == 2) + return 0 + if(L in friends) + return 0 + else + if(L.stat) + return 0 + if(faction_check && !attack_same) + return 0 + return 1 + if(isobj(the_target)) + if(the_target.type in wanted_objects) + return 1 return 0 /mob/living/simple_animal/hostile/proc/GiveTarget(var/new_target)//Step 4, give us our selected target diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm index 7de2c6ff8c8..acb15e44f7c 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm @@ -334,6 +334,7 @@ mouse_opacity = 2 move_to_delay = 40 ranged = 1 + ranged_cooldown = 2 //By default, start the Goliath with his cooldown off so that people can run away quickly on first sight ranged_cooldown_cap = 8 friendly = "wails at" vision_range = 4 @@ -349,6 +350,18 @@ idle_vision_range = 5 anchored = 1 //Stays anchored until death as to be unpullable mob_size = 2 + var/pre_attack = 0 + +/mob/living/simple_animal/hostile/asteroid/goliath/Life() + ..() + handle_preattack() + +/mob/living/simple_animal/hostile/asteroid/goliath/proc/handle_preattack() + if(ranged_cooldown <= 2 && !pre_attack) + pre_attack++ + if(!pre_attack || stat || stance == HOSTILE_STANCE_IDLE) + return + icon_state = "Goliath_preattack" /mob/living/simple_animal/hostile/asteroid/goliath/revive() anchored = 1 @@ -364,12 +377,22 @@ visible_message("The [src.name] digs its tentacles under [target.name]!") new /obj/effect/goliath_tentacle/original(tturf) ranged_cooldown = ranged_cooldown_cap + icon_state = icon_aggro + pre_attack = 0 return /mob/living/simple_animal/hostile/asteroid/goliath/adjustBruteLoss(var/damage) ranged_cooldown-- + handle_preattack() ..() +/mob/living/simple_animal/hostile/asteroid/goliath/Aggro() + vision_range = aggro_vision_range + handle_preattack() + if(icon_state != icon_aggro) + icon_state = icon_aggro + return + /obj/effect/goliath_tentacle/ name = "Goliath tentacle" icon = 'icons/mob/animal.dmi' @@ -386,6 +409,9 @@ /obj/effect/goliath_tentacle/original /obj/effect/goliath_tentacle/original/New() + for(var/obj/effect/goliath_tentacle/original/O in loc)//No more GG NO RE from 2+ goliaths simultaneously tentacling you + if(O != src) + qdel(src) var/list/directions = cardinal.Copy() var/counter for(counter = 1, counter <= 3, counter++) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index e80a4a863c3..cc57e5b0daa 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -75,28 +75,52 @@ var/next_mob_id = 0 src << msg return -// Show a message to all mobs in sight of this one +// Show a message to all mobs who sees the src mob and the src mob itself // This would be for visible actions by the src mob // message is the message output to anyone who can see e.g. "[src] does something!" -// self_message (optional) is what the src mob sees e.g. "You do something!" +// self_message (optional) is what the src mob sees e.g. "You do something!" // blind_message (optional) is what blind people will hear e.g. "You hear something!" /mob/visible_message(var/message, var/self_message, var/blind_message) - for(var/mob/M in viewers(src)) + var/list/atom_viewers = list() + for(var/atom/movable/A in view(src)) + atom_viewers |= recursive_hear_check(A) + atom_viewers |= src + for(var/mob/M in atom_viewers) if(M.see_invisible < invisibility) continue //can't view the invisible var/msg = message if(self_message && M==src) msg = self_message - M.show_message( msg, 1, blind_message, 2) + M.show_message( msg, 1) + if(blind_message) + var/list/atom_hearers = list() + for(var/atom/movable/O in get_hearers_in_view(7, src)) + if(O in atom_viewers) + continue + atom_hearers |= O + for(var/mob/MOB in atom_hearers) + MOB.show_message(blind_message, 2) -// Show a message to all mobs in sight of this atom +// Show a message to all mobs who sees this atom // Use for objects performing visible actions // message is output to anyone who can see, e.g. "The [src] does something!" // blind_message (optional) is what blind people will hear e.g. "You hear something!" + /atom/proc/visible_message(var/message, var/blind_message) - for(var/mob/M in viewers(src)) - M.show_message( message, 1, blind_message, 2) + var/list/atom_viewers = list() + for(var/atom/movable/A in view(src)) + atom_viewers |= recursive_hear_check(A) + for(var/mob/M in atom_viewers) + M.show_message( message, 1) + if(blind_message) + var/list/atom_hearers = list() + for(var/atom/movable/O in get_hearers_in_view(7, src)) + if(O in atom_viewers) + continue + atom_hearers |= O + for(var/mob/MOB in atom_hearers) + MOB.show_message(blind_message, 2) // Show a message to all mobs in earshot of this one // This would be for audible actions by the src mob diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index ecdf9f9daf8..6543d5e223b 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -2,7 +2,7 @@ density = 1 layer = 4 animate_movement = 2 - flags = NOREACT | HEAR + flags = HEAR hud_possible = list(ANTAG_HUD) var/datum/mind/mind diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index c3822358c05..0c26dc9a84b 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -96,13 +96,14 @@ return Move_object(direct) if(world.time < move_delay) return 0 - if(isAI(mob)) - return AIMove(n,direct,mob) if(!isliving(mob)) return mob.Move(n,direct) - if(moving) - return 0 if(mob.stat == DEAD) + mob.ghostize() + return 0 + if(isAI(mob)) + return AIMove(n,direct,mob) + if(moving) return 0 if(isliving(mob)) var/mob/living/L = mob diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index fd087516a33..28907d096ec 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -25,10 +25,13 @@ var/output = "

    Setup Character

    " if(!ticker || ticker.current_state <= GAME_STATE_PREGAME) - if(!ready) output += "

    Declare Ready

    " - else output += "

    You are ready Cancel

    " + if(ready) + output += "

    \[ Ready | Not Ready \]

    " + else + output += "

    \[ Ready | Not Ready \]

    " else + output += "View the Crew Manifest

    " output += "

    Join Game!

    " output += "

    Observe

    " @@ -55,7 +58,7 @@ output += "
    " //src << browse(output,"window=playersetup;size=210x240;can_close=0") - var/datum/browser/popup = new(src, "playersetup", "
    New Player Options
    ", 210, 240) + var/datum/browser/popup = new(src, "playersetup", "
    New Player Options
    ", 220, 250) popup.set_window_options("can_close=0") popup.set_content(output) popup.open(0) @@ -98,7 +101,10 @@ return 1 if(href_list["ready"]) - ready = text2num(href_list["ready"]) + if(!ticker || ticker.current_state <= GAME_STATE_PREGAME) // Make sure we don't ready up after the round has started + ready = !ready + else + ready = 0 if(href_list["refresh"]) src << browse(null, "window=playersetup") //closes the player setup window @@ -136,6 +142,9 @@ return LateChoices() + if(href_list["manifest"]) + ViewManifest() + if(href_list["SelectedJob"]) if(!enter_allowed) @@ -364,6 +373,12 @@ return new_character +/mob/new_player/proc/ViewManifest() + var/dat = "" + dat += "

    Crew Manifest

    " + dat += data_core.get_manifest(OOC = 1) + + src << browse(dat, "window=manifest;size=370x420;can_close=1") /mob/new_player/Move() return 0 diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 901fa258ca8..e8bb527e779 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -81,7 +81,7 @@ if(BARTENDER) clothes_s = new /icon('icons/mob/uniform.dmi', "ba_suit_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "armor"), ICON_OVERLAY) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "armoralt"), ICON_OVERLAY) if(backbag == 2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) else if(backbag == 3) @@ -95,7 +95,7 @@ clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) else if(backbag == 3) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-norm"), ICON_OVERLAY) - if(CHEF) + if(COOK) clothes_s = new /icon('icons/mob/uniform.dmi', "chef_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/head.dmi', "chef"), ICON_OVERLAY) @@ -260,12 +260,12 @@ if(backbag == 3) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-cap"), ICON_OVERLAY) if(HOS) - clothes_s = new /icon('icons/mob/uniform.dmi', "hosred_s") + clothes_s = new /icon('icons/mob/uniform.dmi', "hos_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/head.dmi', "hoscap"), ICON_OVERLAY) + clothes_s.Blend(new /icon('icons/mob/head.dmi', "hosberetblack"), ICON_OVERLAY) clothes_s.Blend(new /icon('icons/mob/eyes.dmi', "sunhud"), ICON_OVERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "hos"), ICON_OVERLAY) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "hostrench"), ICON_OVERLAY) if(backbag == 2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "securitypack"), ICON_OVERLAY) if(backbag == 3) @@ -293,9 +293,10 @@ if(backbag == 3) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-norm"), ICON_OVERLAY) if(OFFICER) - clothes_s = new /icon('icons/mob/uniform.dmi', "secred_s") + clothes_s = new /icon('icons/mob/uniform.dmi', "security_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/head.dmi', "helmet"), ICON_OVERLAY) + clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/head.dmi', "beret_badge"), ICON_OVERLAY) clothes_s.Blend(new /icon('icons/mob/suit.dmi', "armor"), ICON_OVERLAY) if(backbag == 2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "securitypack"), ICON_OVERLAY) diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm index 53831b9f235..a85940d0f81 100644 --- a/code/modules/paperwork/paperbin.dm +++ b/code/modules/paperwork/paperbin.dm @@ -55,7 +55,7 @@ P.loc = user.loc user.put_in_hands(P) - user << "You take [P] out of the [src]." + user << "You take [P] out of \the [src]." else user << "[src] is empty!" diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index dd9af7e4a73..232791722cc 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -679,7 +679,7 @@ if(istype(I, /obj/item/weapon/reagent_containers/syringe)) var/obj/item/weapon/reagent_containers/syringe/S = I - user << "You inject the solution into the [src]." + user << "You inject the solution into \the [src]." if(S.reagents.has_reagent("plasma", 5)) diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm index 2d4ede128b5..8e07804317d 100644 --- a/code/modules/power/singularity/collector.dm +++ b/code/modules/power/singularity/collector.dm @@ -97,7 +97,7 @@ var/global/list/rad_collectors = list() user << "The controls are now [src.locked ? "locked." : "unlocked."]" else src.locked = 0 //just in case it somehow gets locked - user << "The controls can only be locked when the [src] is active." + user << "The controls can only be locked when \the [src] is active." else user << "Access denied!" return 1 diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index 6da19164d8e..8e358e5a43c 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -63,13 +63,13 @@ if(!src.locked) if(src.active==1) src.active = 0 - user << "You turn off the [src]." + user << "You turn off \the [src]." message_admins("Emitter turned off by [key_name(user, user.client)](?) in ([x],[y],[z] - JMP)",0,1) log_game("Emitter turned off by [user.ckey]([user]) in ([x],[y],[z])") investigate_log("turned off by [user.key]","singulo") else src.active = 1 - user << "You turn on the [src]." + user << "You turn on \the [src]." src.shot_number = 0 src.fire_delay = 100 investigate_log("turned on by [user.key]","singulo") @@ -152,7 +152,7 @@ if(istype(W, /obj/item/weapon/wrench)) if(active) - user << "Turn off the [src] first." + user << "Turn off \the [src] first." return switch(state) if(0 && !isinspace()) @@ -176,7 +176,7 @@ if(istype(W, /obj/item/weapon/weldingtool)) var/obj/item/weapon/weldingtool/WT = W if(active) - user << "Turn off the [src] first." + user << "Turn off \the [src] first." return switch(state) if(0) @@ -185,23 +185,23 @@ if (WT.remove_fuel(0,user)) playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) user.visible_message("[user.name] starts to weld the [src.name] to the floor.", \ - "You start to weld the [src] to the floor.", \ + "You start to weld \the [src] to the floor.", \ "You hear welding") if (do_after(user,20)) if(!src || !WT.isOn()) return state = 2 - user << "You weld the [src] to the floor." + user << "You weld \the [src] to the floor." connect_to_network() if(2) if (WT.remove_fuel(0,user)) playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) user.visible_message("[user.name] starts to cut the [src.name] free from the floor.", \ - "You start to cut the [src] free from the floor.", \ + "You start to cut \the [src] free from the floor.", \ "You hear welding") if (do_after(user,20)) if(!src || !WT.isOn()) return state = 1 - user << "You cut the [src] free from the floor." + user << "You cut \the [src] free from the floor." disconnect_from_network() return @@ -215,7 +215,7 @@ user << "The controls are now [src.locked ? "locked." : "unlocked."]" else src.locked = 0 //just in case it somehow gets locked - user << "The controls can only be locked when the [src] is online." + user << "The controls can only be locked when \the [src] is online." else user << "Access denied." return @@ -227,4 +227,4 @@ if(!emagged) locked = 0 emagged = 1 - user.visible_message("[user.name] emags the [src.name].","You short out the lock.") + user.visible_message("[user.name] emags the [src.name].","You short out the lock.") diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm index 02112139df4..d0fdaf04d41 100644 --- a/code/modules/power/singularity/field_generator.dm +++ b/code/modules/power/singularity/field_generator.dm @@ -127,7 +127,7 @@ field_generator power level display if (WT.remove_fuel(0,user)) playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) user.visible_message("[user.name] starts to weld the [src.name] to the floor.", \ - "You start to weld the [src] to the floor.", \ + "You start to weld \the [src] to the floor.", \ "You hear welding") if (do_after(user,20)) if(!src || !WT.isOn()) return @@ -139,12 +139,12 @@ field_generator power level display if (WT.remove_fuel(0,user)) playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) user.visible_message("[user.name] starts to cut the [src.name] free from the floor.", \ - "You start to cut the [src] free from the floor.", \ + "You start to cut \the [src] free from the floor.", \ "You hear welding") if (do_after(user,20)) if(!src || !WT.isOn()) return state = 1 - user << "You cut the [src] free from the floor." + user << "You cut \the [src] free from the floor." else return else diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm index c33bc19bff7..1ed275131b6 100644 --- a/code/modules/power/singularity/narsie.dm +++ b/code/modules/power/singularity/narsie.dm @@ -10,7 +10,6 @@ move_self = 1 //Do we move on our own? grav_pull = 5 //How many tiles out do we pull? consume_range = 6 //How many tiles out do we eat - var/uneatable = list(/turf/space, /obj/effect/overlay, /mob/living/simple_animal/construct) /obj/singularity/narsie/large name = "Nar-Sie" @@ -84,25 +83,7 @@ /obj/singularity/narsie/consume(var/atom/A) - if(is_type_in_list(A, uneatable)) - return 0 - - if(istype(A,/mob/living/)) - var/mob/living/C = A - if(C.client) - makeNewConstruct(/mob/living/simple_animal/construct/harvester, C, null, 1) - C.spawn_dust() - C.gib() - return - - if(isturf(A)) - var/turf/T = A - if(istype(T, /turf/simulated/floor) && !istype(T, /turf/simulated/floor/engine/cult)) - if(prob(20)) T.ChangeTurf(/turf/simulated/floor/engine/cult) - - else if(istype(T,/turf/simulated/wall) && !istype(T, /turf/simulated/wall/cult)) - if(prob(20)) T.ChangeTurf(/turf/simulated/wall/cult) - return + A.narsie_act() /obj/singularity/narsie/ex_act() //No throwing bombs at it either. --NEO diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index 062f28cb028..7c70cb2c484 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -33,9 +33,10 @@ var/list/solars_list = list() //set the control of the panel to a given computer if closer than SOLAR_MAX_DIST /obj/machinery/power/solar/proc/set_control(var/obj/machinery/power/solar_control/SC) - if(SC && (get_dist(src, SC) > SOLAR_MAX_DIST)) + if(!SC || (get_dist(src, SC) > SOLAR_MAX_DIST)) return 0 control = SC + SC.connected_panels |= src return 1 //set the control of the panel to null and removes it from the control list of the previous control computer if needed @@ -323,12 +324,10 @@ var/list/solars_list = list() var/obj/machinery/power/solar/S = M if(!S.control) //i.e unconnected S.set_control(src) - connected_panels |= S else if(istype(M, /obj/machinery/power/tracker)) if(!connected_tracker) //if there's already a tracker connected to the computer don't add another var/obj/machinery/power/tracker/T = M if(!T.control) //i.e unconnected - connected_tracker = T T.set_control(src) //called by the sun controller, update the facing angle (either manually or via tracking) and rotates the panels accordingly @@ -484,10 +483,10 @@ var/list/solars_list = list() set_panels(targetdir) if(href_list["search_connected"]) - src.search_for_connected() + search_for_connected() if(connected_tracker && track == 2) connected_tracker.set_angle(sun.angle) - src.set_panels(cdir) + set_panels(cdir) src.updateUsrDialog() return diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 5c5956742cc..21caf2d40be 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -2,11 +2,11 @@ //Please do not bother them with bugs from this port, however, as it has been modified quite a bit. //Modifications include removing the world-ending full supermatter variation, and leaving only the shard. -#define NITROGEN_RETARDATION_FACTOR 4 //Higher == N2 slows reaction more -#define THERMAL_RELEASE_MODIFIER 10 //Higher == less heat released during reaction -#define PLASMA_RELEASE_MODIFIER 1500 //Higher == less plasma released by reaction -#define OXYGEN_RELEASE_MODIFIER 750 //Higher == less oxygen released at high temperature/power -#define REACTION_POWER_MODIFIER 1.1 //Higher == more overall power +#define NITROGEN_RETARDATION_FACTOR 2 //Higher == N2 slows reaction more +#define THERMAL_RELEASE_MODIFIER 5 //Higher == less heat released during reaction +#define PLASMA_RELEASE_MODIFIER 750 //Higher == less plasma released by reaction +#define OXYGEN_RELEASE_MODIFIER 325 //Higher == less oxygen released at high temperature/power +#define REACTION_POWER_MODIFIER 0.55 //Higher == more overall power //These would be what you would get at point blank, decreases with distance @@ -58,18 +58,24 @@ var/obj/item/device/radio/radio + //for logging + var/has_been_powered = 0 + var/has_reached_emergency = 0 /obj/machinery/power/supermatter_shard/New() . = ..() radio = new(src) radio.listening = 0 + investigate_log("has been created.", "supermatter") /obj/machinery/power/supermatter_shard/Destroy() + investigate_log("has been destroyed.", "supermatter") qdel(radio) . = ..() /obj/machinery/power/supermatter_shard/proc/explode() + investigate_log("has exploded.", "supermatter") explosion(get_turf(src), explosion_power, explosion_power * 2, explosion_power * 3, explosion_power * 4, 1) qdel(src) return @@ -93,6 +99,10 @@ if(damage > emergency_point) radio.talk_into(src, "[emergency_alert] Instability: [stability]%") lastwarning = world.timeofday + if(!has_reached_emergency) + investigate_log("has reached the emergency point for the first time.", "supermatter") + message_admins("[src] has reached the emergency point (JMP).") + has_reached_emergency = 1 else if(damage >= damage_archived) // The damage is still going up radio.talk_into(src, "[warning_alert] Instability: [stability]%") @@ -124,23 +134,20 @@ power = min(power, 1600) return 1 - if (!removed) - return 1 - damage_archived = damage damage = max( damage + ( (removed.temperature - 800) / 150 ) , 0 ) //Ok, 100% oxygen atmosphere = best reaction //Maxes out at 100% oxygen pressure oxygen = max(min((removed.oxygen - (removed.nitrogen * NITROGEN_RETARDATION_FACTOR)) / MOLES_CELLSTANDARD, 1), 0) - var/temp_factor = 100 + var/temp_factor = 50 if(oxygen > 0.8) // with a perfect gas mix, make the power less based on heat icon_state = "[base_icon_state]_glow" else // in normal mode, base the produced energy around the heat - temp_factor = 60 + temp_factor = 30 icon_state = base_icon_state power = max( (removed.temperature * temp_factor / T0C) * oxygen + power, 0) //Total laser power plus an overload @@ -170,10 +177,10 @@ for(var/mob/living/carbon/human/l in view(src, min(7, round(power ** 0.25)))) // If they can see it without mesons on. Bad on them. if(!istype(l.glasses, /obj/item/clothing/glasses/meson)) - l.hallucination = max(0, min(200, l.hallucination + power * config_hallucination_power * sqrt( 1 / max(1,get_dist(l, src)) ) ) ) + l.hallucination = max(0, min(200, l.hallucination + power * config_hallucination_power * sqrt( 1 / max(1, get_dist(l, src)) ) ) ) for(var/mob/living/l in range(src, round((power / 100) ** 0.25))) - var/rads = (power / 10) * sqrt( 1 / get_dist(l, src) ) + var/rads = (power / 10) * sqrt( 1 / min(get_dist(l, src),1) ) l.apply_effect(rads, IRRADIATE) power -= (power/500)**3 @@ -190,6 +197,10 @@ if(Proj.flag != "bullet") power += Proj.damage * config_bullet_energy + if(!has_been_powered) + investigate_log("has been powered for the first time.", "supermatter") + message_admins("[src] has been powered for the first time (JMP).") + has_been_powered = 1 else damage += Proj.damage * config_bullet_energy return 0 @@ -209,7 +220,9 @@ /obj/machinery/power/supermatter_shard/attack_ai(mob/user as mob) user << "You attempt to interface with the control circuits but find they are not connected to your network. Maybe in a future firmware update." -/obj/machinery/power/supermatter_shard/attack_hand(mob/user as mob) +/obj/machinery/power/supermatter_shard/attack_hand(mob/living/user as mob) + if(!istype(user)) + return user.visible_message("\The [user] reaches out and touches \the [src], inducing a resonance... \his body starts to glow and bursts into flames before flashing into ash.",\ "You reach out and touch \the [src]. Everything starts burning and all you can hear is ringing. Your last thought is \"That was not a wise decision.\"",\ "You hear an unearthly noise as a wave of heat washes over you.") @@ -221,10 +234,12 @@ /obj/machinery/power/supermatter_shard/proc/transfer_energy() for(var/obj/machinery/power/rad_collector/R in rad_collectors) if(get_dist(R, src) <= 15) // Better than using orange() every process - R.receive_pulse(power) + R.receive_pulse(power/10) return -/obj/machinery/power/supermatter_shard/attackby(obj/item/weapon/W as obj, mob/living/user as mob) +/obj/machinery/power/supermatter_shard/attackby(obj/item/W as obj, mob/living/user as mob) + if(!istype(W) || (W.flags & ABSTRACT) || !istype(user)) + return if(user.drop_item(W)) Consume(W) user.visible_message("As [user] touches \the [src] with \a [W], silence fills the room...",\ @@ -241,9 +256,11 @@ AM.visible_message("\The [AM] slams into \the [src] inducing a resonance... \his body starts to glow and catch flame before flashing into ash.",\ "You slam into \the [src] as your ears are filled with unearthly ringing. Your last thought is \"Oh, fuck.\"",\ "You hear an unearthly noise as a wave of heat washes over you.") - else + else if(isobj(AM) && !istype(AM, /obj/effect)) AM.visible_message("\The [AM] smacks into \the [src] and rapidly flashes to ash.",\ "You hear a loud crack as you are washed with a wave of heat.") + else + return playsound(get_turf(src), 'sound/effects/supermatter.ogg', 50, 1) @@ -255,15 +272,19 @@ var/mob/living/user = AM user.dust() power += 200 - else + message_admins("[src] has consumed [key_name(user)]? (JMP).") + else if(isobj(AM) && !istype(AM, /obj/effect)) qdel(AM) + investigate_log("has consumed [AM].", "supermatter") + power += 200 //Some poor sod got eaten, go ahead and irradiate people nearby. for(var/mob/living/L in range(10)) var/rads = 500 * sqrt( 1 / (get_dist(L, src) + 1) ) L.apply_effect(rads, IRRADIATE) + investigate_log("has irradiated [L] after consuming [AM].", "supermatter") if(L in view()) L.show_message("As \the [src] slowly stops resonating, you find your skin covered in new radiation burns.", 1,\ "The unearthly ringing subsides and you notice you have new radiation burns.", 2) diff --git a/code/modules/power/tracker.dm b/code/modules/power/tracker.dm index 20e8ab528c4..5cf341f9fbb 100644 --- a/code/modules/power/tracker.dm +++ b/code/modules/power/tracker.dm @@ -27,9 +27,10 @@ //set the control of the tracker to a given computer if closer than SOLAR_MAX_DIST /obj/machinery/power/tracker/proc/set_control(var/obj/machinery/power/solar_control/SC) - if(SC && (get_dist(src, SC) > SOLAR_MAX_DIST)) + if(!SC || (get_dist(src, SC) > SOLAR_MAX_DIST)) return 0 control = SC + SC.connected_tracker = src return 1 //set the control of the tracker to null and removes it from the previous control computer if needed diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm index 801d9b6e2e8..0f85597e0ec 100644 --- a/code/modules/projectiles/ammunition.dm +++ b/code/modules/projectiles/ammunition.dm @@ -73,21 +73,34 @@ stored_ammo.Insert(1,b) return b -/obj/item/ammo_box/proc/give_round(var/obj/item/ammo_casing/r) - var/obj/item/ammo_casing/rb = r - if (rb) - if (stored_ammo.len < max_ammo && rb.caliber == caliber) - stored_ammo += rb - rb.loc = src - return 1 +/obj/item/ammo_box/proc/give_round(var/obj/item/ammo_casing/R, var/replace_spent = 0) + if(!R || (R.caliber != caliber)) + return 0 + + if (stored_ammo.len < max_ammo) + stored_ammo += R + R.loc = src + return 1 + + //for accessibles magazines (e.g internal ones) when full, start replacing spent ammo + else if(replace_spent) + for(var/obj/item/ammo_casing/AC in stored_ammo) + if(!AC.BB)//found a spent ammo + stored_ammo -= AC + AC.loc = get_turf(src.loc) + + stored_ammo += R + R.loc = src + return 1 + return 0 -/obj/item/ammo_box/attackby(var/obj/item/A as obj, mob/user as mob, var/silent = 0) +/obj/item/ammo_box/attackby(var/obj/item/A as obj, mob/user as mob, var/silent = 0, var/replace_spent = 0) var/num_loaded = 0 if(istype(A, /obj/item/ammo_box)) var/obj/item/ammo_box/AM = A for(var/obj/item/ammo_casing/AC in AM.stored_ammo) - var/did_load = give_round(AC) + var/did_load = give_round(AC, replace_spent) if(did_load) AM.stored_ammo -= AC num_loaded++ @@ -95,17 +108,18 @@ break if(istype(A, /obj/item/ammo_casing)) var/obj/item/ammo_casing/AC = A - if(give_round(AC)) + if(give_round(AC, replace_spent)) user.drop_item() AC.loc = src num_loaded++ + if(num_loaded) if(!silent) user << "You load [num_loaded] shell\s into \the [src]!" A.update_icon() update_icon() - return num_loaded - return 0 + + return num_loaded /obj/item/ammo_box/attack_self(mob/user as mob) var/obj/item/ammo_casing/A = get_round() diff --git a/code/modules/projectiles/ammunition/energy.dm b/code/modules/projectiles/ammunition/energy.dm index 05c5f172788..e2473a521f8 100644 --- a/code/modules/projectiles/ammunition/energy.dm +++ b/code/modules/projectiles/ammunition/energy.dm @@ -117,10 +117,10 @@ fire_sound = 'sound/weapons/Kenetic_accel.ogg' /obj/item/ammo_casing/energy/disabler - projectile_type = /obj/item/projectile/energy/disabler + projectile_type = /obj/item/projectile/beam/disabler select_name = "disable" e_cost = 50 - fire_sound = "sound/weapons/taser.ogg" + fire_sound = "sound/weapons/taser2.ogg" /obj/item/ammo_casing/energy/wormhole projectile_type = /obj/item/projectile/beam/wormhole diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm index d901f87c4a9..f9d3c7410a0 100644 --- a/code/modules/projectiles/ammunition/magazines.dm +++ b/code/modules/projectiles/ammunition/magazines.dm @@ -1,4 +1,9 @@ ////////////////INTERNAL MAGAZINES////////////////////// + +//internals magazines are accessible, so replace spent ammo if full when trying to put a live one in +/obj/item/ammo_box/magazine/internal/give_round(var/obj/item/ammo_casing/R) + return ..(R,1) + /obj/item/ammo_box/magazine/internal/cylinder name = "revolver cylinder" desc = "Oh god, this shouldn't be here" diff --git a/code/modules/projectiles/firing.dm b/code/modules/projectiles/firing.dm index 8abcea10af0..c5f2b3a0e7d 100644 --- a/code/modules/projectiles/firing.dm +++ b/code/modules/projectiles/firing.dm @@ -34,7 +34,7 @@ return 0 if(targloc == curloc) //Fire the projectile user.bullet_act(BB) - qdel(BB) + del(BB) return 1 BB.loc = get_turf(user) BB.starting = get_turf(user) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 97e0779a17f..d603831d60e 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -1,3 +1,7 @@ + #define SAWN_INTACT 0 + #define SAWN_OFF 1 + #define SAWN_SAWING -1 + /obj/item/weapon/gun name = "gun" desc = "It's a gun. It's pretty terrible, though." @@ -23,6 +27,9 @@ var/obj/item/ammo_casing/chambered = null var/trigger_guard = 1 var/sawn_desc = null + var/sawn_state = SAWN_INTACT + var/burst_size = 1 + var/fire_delay = 0 /obj/item/weapon/gun/proc/process_chamber() return 0 @@ -30,12 +37,17 @@ /obj/item/weapon/gun/proc/special_check(var/mob/M) //Placeholder for any special checks, like detective's revolver. return 1 +//check if there's enough ammo/energy/whatever to shoot one time +//i.e if clicking would make it shoot +/obj/item/weapon/gun/proc/can_shoot() + return 1 + /obj/item/weapon/gun/proc/shoot_with_empty_chamber(mob/living/user as mob|obj) user << "*click*" playsound(user, 'sound/weapons/empty.ogg', 100, 1) return -/obj/item/weapon/gun/proc/shoot_live_shot(mob/living/user as mob|obj, var/pointblank = 0, var/mob/pbtarget = null) +/obj/item/weapon/gun/proc/shoot_live_shot(mob/living/user as mob|obj, var/pointblank = 0, var/mob/pbtarget = null, var/message = 1) if(recoil) spawn() shake_camera(user, recoil + 1, recoil) @@ -44,6 +56,8 @@ playsound(user, fire_sound, 10, 1) else playsound(user, fire_sound, 50, 1) + if(!message) + return if(pointblank) user.visible_message("[user] fires [src] point blank at [pbtarget]!", "You fire [src] point blank at [pbtarget]!", "You hear a [istype(src, /obj/item/weapon/gun/energy) ? "laser blast" : "gunshot"]!") else @@ -62,47 +76,66 @@ return //Exclude lasertag guns from the CLUMSY check. - if(clumsy_check) + if(clumsy_check && can_shoot()) if(istype(user, /mob/living)) var/mob/living/M = user if ((CLUMSY in M.mutations) && prob(40)) - M << "You shoot yourself in the foot with \the [src]!" - afterattack(user, user) + user << "You shoot yourself in the foot with \the [src]!" + process_fire(user,user,0,params) M.drop_item() return + if(isliving(user)) + var/mob/living/L = user + if(!can_trigger_gun(L)) + return + + process_fire(target,user,flag,params) + +/obj/item/weapon/gun/proc/can_trigger_gun(mob/living/user) if (!user.IsAdvancedToolUser()) user << "You don't have the dexterity to do this!" - return + return 0 if(trigger_guard) - if(istype(user, /mob/living)) - var/mob/living/M = user - if (HULK in M.mutations) - M << "Your meaty finger is much too large for the trigger guard!" - return + if (HULK in user.mutations) + user << "Your meaty finger is much too large for the trigger guard!" + return 0 if(ishuman(user)) var/mob/living/carbon/human/H = user if(H.dna && NOGUNS in H.dna.species.specflags) user << "Your fingers don't fit in the trigger guard!" - return + return 0 + return 1 + +/obj/item/weapon/gun/proc/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, var/message = 1, params) add_fingerprint(user) - if(chambered) - if(!chambered.fire(target, user, params, , suppressed)) - shoot_with_empty_chamber(user) - else - if(!special_check(user)) - return - if(get_dist(user, target) <= 1) //Making sure whether the target is in vicinity for the pointblank shot - shoot_live_shot(user, 1, target) + if(!special_check(user)) + return + + for(var/i = 1 to burst_size) + if(!issilicon(user)) + if(!(src in get_both_hands(user))) //for burst firing + break + if(chambered) + if(!chambered.fire(target, user, params, , suppressed)) + shoot_with_empty_chamber(user) + break else - shoot_live_shot(user) - else - shoot_with_empty_chamber(user) - process_chamber() - update_icon() + if(!special_check(user)) + return + if(get_dist(user, target) <= 1) //Making sure whether the target is in vicinity for the pointblank shot + shoot_live_shot(user, 1, target) + else + shoot_live_shot(user) + else + shoot_with_empty_chamber(user) + break + process_chamber() + update_icon() + sleep(fire_delay) if(user.hand) user.update_inv_l_hand(0) diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index 08351551243..4c407cd5a20 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -35,7 +35,9 @@ /obj/item/weapon/gun/energy/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, params) newshot() //prepare a new shot ..() - +/obj/item/weapon/gun/energy/can_shoot() + var/obj/item/ammo_casing/energy/shot = ammo_type[select] + return power_supply.charge >= shot.e_cost /obj/item/weapon/gun/energy/proc/newshot() if (!ammo_type || !power_supply) diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index ebace57085b..75d5a076186 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -125,9 +125,11 @@ obj/item/weapon/gun/energy/laser/retro /obj/item/weapon/gun/energy/laser/bluetag/process() charge_tick++ - if(charge_tick < 4) return 0 + if(charge_tick < 4) + return 0 charge_tick = 0 - if(!power_supply) return 0 + if(!power_supply) + return 0 power_supply.give(100) update_icon() return 1 @@ -162,9 +164,11 @@ obj/item/weapon/gun/energy/laser/retro /obj/item/weapon/gun/energy/laser/redtag/process() charge_tick++ - if(charge_tick < 4) return 0 + if(charge_tick < 4) + return 0 charge_tick = 0 - if(!power_supply) return 0 + if(!power_supply) + return 0 power_supply.give(100) update_icon() return 1 diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm index 7074c8102b1..0a4f961eb78 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/nuclear.dm @@ -1,9 +1,9 @@ /obj/item/weapon/gun/energy/gun name = "energy gun" - desc = "A basic hybrid energy gun with two settings: Stun and kill." + desc = "A basic hybrid energy gun with two settings: Disable and kill." icon_state = "energy" item_state = null //so the human update icon uses the icon_state instead. - ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser) + ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser) origin_tech = "combat=3;magnets=2" modifystate = 2 @@ -12,7 +12,6 @@ select_fire(user) update_icon() - /obj/item/weapon/gun/energy/gun/nuclear name = "advanced energy gun" desc = "An energy gun with an experimental miniaturized nuclear reactor that automatically charges the internal power cell." @@ -21,6 +20,7 @@ var/lightfail = 0 var/charge_tick = 0 modifystate = 0 + ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser) /obj/item/weapon/gun/energy/gun/nuclear/New() ..() @@ -105,3 +105,8 @@ update_charge() update_reactor() update_mode() + +/obj/item/weapon/gun/energy/gun/turret + name = "hybrid turret gun" + desc = "A basic hybrid energy gun with two settings: Stun and kill." + ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser) \ No newline at end of file diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index 2c79a769a35..8f28a53effc 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -7,25 +7,39 @@ ammo_type = list(/obj/item/ammo_casing/energy/electrode) cell_type = "/obj/item/weapon/stock_parts/cell/crap" -/obj/item/weapon/gun/energy/taser/cyborg - name = "taser gun" - desc = "An integrated taser that draws directly from a cyborg's power cell. The weapon contains a limiter to prevent the cyborg's power cell from overheating." - icon_state = "taser" - fire_sound = 'sound/weapons/Taser.ogg' +/obj/item/weapon/gun/energy/stunrevolver + name = "stun revolver" + desc = "A high-tech revolver that fires internal, reusable stun cartidges in a revolving cylinder." + icon_state = "stunrevolver" + origin_tech = "combat=3;materials=3;powerstorage=2" + ammo_type = list(/obj/item/ammo_casing/energy/electrode/gun) + cell_type = "/obj/item/weapon/stock_parts/cell" + +/obj/item/weapon/gun/energy/gun/advtaser + name = "advanced taser" + desc = "A hybrid taser designed to fire both short-range high-power electrodes and long-range disabler beams." + icon_state = "advtaser" + ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/disabler) + cell_type = "/obj/item/weapon/stock_parts/cell/crap" + origin_tech = null + +/obj/item/weapon/gun/energy/gun/advtaser/cyborg + name = "advanced taser" + desc = "An integrated advanced taser that draws directly from a cyborg's power cell. The weapon contains a limiter to prevent the cyborg's power cell from overheating." cell_type = "/obj/item/weapon/stock_parts/cell/secborg" var/charge_tick = 0 - var/recharge_time = 10 //Time it takes for shots to recharge (in ticks) + var/recharge_time = 10 -/obj/item/weapon/gun/energy/taser/cyborg/New() +/obj/item/weapon/gun/energy/gun/advtaser/cyborg/New() ..() processing_objects.Add(src) -/obj/item/weapon/gun/energy/taser/cyborg/Destroy() +/obj/item/weapon/gun/energy/gun/advtaser/cyborg/Destroy() processing_objects.Remove(src) ..() -/obj/item/weapon/gun/energy/taser/cyborg/process() //Every [recharge_time] ticks, recharge a shot for the cyborg +/obj/item/weapon/gun/energy/gun/advtaser/cyborg/process() //Every [recharge_time] ticks, recharge a shot for the cyborg charge_tick++ if(charge_tick < recharge_time) return 0 charge_tick = 0 @@ -42,16 +56,6 @@ return 1 -/obj/item/weapon/gun/energy/stunrevolver - name = "stun revolver" - desc = "A high-tech revolver that fires internal, reusable stun cartidges in a revolving cylinder." - icon_state = "stunrevolver" - origin_tech = "combat=3;materials=3;powerstorage=2" - ammo_type = list(/obj/item/ammo_casing/energy/electrode/gun) - cell_type = "/obj/item/weapon/stock_parts/cell" - - - /obj/item/weapon/gun/energy/crossbow name = "mini energy crossbow" desc = "A weapon favored by syndicate stealth specialists." diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm index f9a0be82b99..c575632c498 100644 --- a/code/modules/projectiles/guns/magic.dm +++ b/code/modules/projectiles/guns/magic.dm @@ -29,6 +29,9 @@ no_den_usage = 0 ..() +/obj/item/weapon/gun/magic/can_shoot() + return charges + /obj/item/weapon/gun/magic/proc/newshot() if (charges && chambered) chambered.newshot() diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm index d2c6a9a29ba..b1540df35b9 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/projectile.dm @@ -40,6 +40,11 @@ chambered.loc = src return +/obj/item/weapon/gun/projectile/can_shoot() + if(!magazine || !magazine.ammo_count(0)) + return 0 + return 1 + /obj/item/weapon/gun/projectile/attackby(var/obj/item/A as obj, mob/user as mob) ..() if (istype(A, /obj/item/ammo_box/magazine)) diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index 6cfa117be6a..b5f2c3033c1 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -1,15 +1,24 @@ -/obj/item/weapon/gun/projectile/automatic //Hopefully someone will find a way to make these fire in bursts or something. --Superxpdude +/obj/item/weapon/gun/projectile/automatic name = "prototype SMG" - desc = "A lightweight, prototype 9mm submachine gun, designated 'SABR'. Has a threaded barrel for suppressors." + desc = "A prototype three-round burst 9mm submachine gun, designated 'SABR'. Has a threaded barrel for suppressors." icon_state = "saber" w_class = 3 origin_tech = "combat=4;materials=2" mag_type = /obj/item/ammo_box/magazine/smgm9mm var/alarmed = 0 can_suppress = 1 + burst_size = 3 + fire_delay = 1 + var/select = 0 + action_button_name = "Toggle Fire Mode" /obj/item/weapon/gun/projectile/automatic/update_icon() ..() + overlays.Cut() + if(!select) + overlays += "[initial(icon_state)]semi" + if(select == 1) + overlays += "[initial(icon_state)]burst" icon_state = "[initial(icon_state)][magazine ? "-[magazine.max_ammo]" : ""][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]" return @@ -17,6 +26,31 @@ if(..() && chambered) alarmed = 0 +/obj/item/weapon/gun/projectile/automatic/ui_action_click() + burst_select() + +/obj/item/weapon/gun/projectile/automatic/verb/burst_select() + set name = "Toggle Fire Mode" + set category = "Object" + set desc = "Click to switch fire modes." + var/mob/living/carbon/human/user = usr + if(select) + select = 0 + burst_size = 1 + fire_delay = 0 + user << "You switch to semi-automatic." + else + select = 1 + burst_size = initial(burst_size) + fire_delay = initial(fire_delay) + user << "You switch to [burst_size]-rnd burst." + + update_icon() + return + +/obj/item/weapon/gun/projectile/automatic/can_shoot() + return get_ammo() + /obj/item/weapon/gun/projectile/automatic/proc/empty_alarm() if(!chambered && !get_ammo() && !alarmed) playsound(src.loc, 'sound/weapons/smg_empty_alarm.ogg', 40, 1) @@ -26,12 +60,14 @@ /obj/item/weapon/gun/projectile/automatic/c20r name = "syndicate SMG" - desc = "A lightweight, bullpup .45 SMG, designated 'C-20r'. Has a 'Scarborough Arms - Per falcis, per pravitas' buttstamp." + desc = "A bullpup two-round burst .45 SMG, designated 'C-20r'. Has a 'Scarborough Arms - Per falcis, per pravitas' buttstamp." icon_state = "c20r" item_state = "c20r" origin_tech = "combat=5;materials=2;syndicate=8" mag_type = /obj/item/ammo_box/magazine/smgm45 fire_sound = 'sound/weapons/Gunshot_smg.ogg' + fire_delay = 2 + burst_size = 2 /obj/item/weapon/gun/projectile/automatic/c20r/New() ..() @@ -62,6 +98,12 @@ fire_sound = 'sound/weapons/Gunshot_smg.ogg' var/cover_open = 0 can_suppress = 0 + burst_size = 1 + fire_delay = 0 + +/obj/item/weapon/gun/projectile/automatic/l6_saw/burst_select() + return + /obj/item/weapon/gun/projectile/automatic/l6_saw/attack_self(mob/user as mob) cover_open = !cover_open @@ -103,43 +145,9 @@ return ..() -/obj/item/weapon/gun/projectile/automatic/bulldog - name = "syndicate shotgun" - desc = "A compact, mag-fed semi-automatic shotgun for combat in narrow corridors, nicknamed 'Bulldog' by boarding parties. Compatible only with specialized 8-round drum magazines." - icon_state = "bulldog" - item_state = "bulldog" - w_class = 3.0 - origin_tech = "combat=5;materials=4;syndicate=6" - mag_type = /obj/item/ammo_box/magazine/m12g - fire_sound = 'sound/weapons/Gunshot.ogg' - can_suppress = 0 - -/obj/item/weapon/gun/projectile/automatic/bulldog/New() - ..() - update_icon() - return - -/obj/item/weapon/gun/projectile/automatic/bulldog/proc/update_magazine() - if(magazine) - src.overlays = 0 - overlays += "[magazine.icon_state]" - return - -/obj/item/weapon/gun/projectile/automatic/bulldog/update_icon() - src.overlays = 0 - update_magazine() - icon_state = "bulldog[chambered ? "" : "-e"]" - return - -/obj/item/weapon/gun/projectile/automatic/bulldog/afterattack() - ..() - empty_alarm() - return - - /obj/item/weapon/gun/projectile/automatic/c90gl name = "syndicate assault rifle" - desc = "A bullpup and compact 5.45x39 assault rifle with a unique toploading design, designated 'C-90gl'. Has an attached underbarrel grenade launcher which can be toggled on and off." + desc = "A bullpup three-round burst 5.45x39 assault rifle with a unique toploading design, designated 'C-90gl'. Has an attached underbarrel grenade launcher which can be toggled on and off." icon_state = "c90gl" item_state = "c90gl" origin_tech = "combat=5;materials=2;syndicate=8" @@ -147,8 +155,9 @@ fire_sound = 'sound/weapons/Gunshot_smg.ogg' action_button_name = "Toggle Grenade Launcher" can_suppress = 0 - var/select = 1 //1 for boolets, 0 for explosions. var/obj/item/weapon/gun/projectile/revolver/grenadelauncher/underbarrel + burst_size = 3 + fire_delay = 2 /obj/item/weapon/gun/projectile/automatic/c90gl/New() ..() @@ -157,54 +166,53 @@ return /obj/item/weapon/gun/projectile/automatic/c90gl/afterattack(var/atom/target, var/mob/living/user, flag, params) - if(select) + if(select == 2) + underbarrel.afterattack(target, user, flag, params) + else ..() empty_alarm() return - else - underbarrel.afterattack(target, user, flag, params) - /obj/item/weapon/gun/projectile/automatic/c90gl/attackby(var/obj/item/A, mob/user) - if(select) - ..() - else + if(select == 2) underbarrel.attackby(A, user) - -/obj/item/weapon/gun/projectile/automatic/c90gl/attack_self(var/mob/living/user) - if(select) - ..() else + ..() +/obj/item/weapon/gun/projectile/automatic/c90gl/attack_self(var/mob/living/user) + if(select == 2) underbarrel.attack_self(user) - - + else + ..() /obj/item/weapon/gun/projectile/automatic/c90gl/update_icon() ..() overlays.Cut() - if(select) - overlays += "c90prim" - else - overlays += "c90gren" + if(!select) + overlays += "[initial(icon_state)]semi" + if(select == 1) + overlays += "[initial(icon_state)]burst" + if(select == 2) + overlays += "[initial(icon_state)]gren" icon_state = "c90gl[magazine ? "-[Ceiling(get_ammo(0)/6)*6]" : ""][chambered ? "" : "-e"]" return -/obj/item/weapon/gun/projectile/automatic/c90gl/proc/underbarrel_swap() +/obj/item/weapon/gun/projectile/automatic/c90gl/burst_select() var/mob/living/carbon/human/user = usr - if(select) - select = 0 - user << "You switch to grenades." - else + if(!select) select = 1 - user << "You switch to bullets." - + burst_size = initial(burst_size) + fire_delay = initial(fire_delay) + user << "You switch to [burst_size]-rnd burst." + if(select == 1) + select = 2 + user << "You switch to grenades." + if(select == 2) + select = 0 + burst_size = 1 + fire_delay = 0 + user << "You switch to semi-auto." update_icon() return -/obj/item/weapon/gun/projectile/automatic/c90gl/ui_action_click() - underbarrel_swap() - - - /obj/item/weapon/gun/projectile/automatic/tommygun name = "tommy gun" desc = "A genuine 'Chicago Typewriter'." @@ -215,3 +223,4 @@ mag_type = /obj/item/ammo_box/magazine/tommygunm45 fire_sound = 'sound/weapons/Gunshot_smg.ogg' can_suppress = 0 + burst_size = 4 \ No newline at end of file diff --git a/code/modules/projectiles/guns/projectile/launchers.dm b/code/modules/projectiles/guns/projectile/launchers.dm index 1ef80e2a3f9..31773285919 100644 --- a/code/modules/projectiles/guns/projectile/launchers.dm +++ b/code/modules/projectiles/guns/projectile/launchers.dm @@ -28,6 +28,8 @@ fire_sound = 'sound/effects/Explosion1.ogg' origin_tech = "combat=3" mag_type = /obj/item/ammo_box/magazine/m75 + burst_size = 1 + fire_delay = 0 /obj/item/weapon/gun/projectile/automatic/gyropistol/process_chamber(var/eject_casing = 0, var/empty_chamber = 1) ..() diff --git a/code/modules/projectiles/guns/projectile/pistol.dm b/code/modules/projectiles/guns/projectile/pistol.dm index 7e29cfbf8bc..4ed58eba2c9 100644 --- a/code/modules/projectiles/guns/projectile/pistol.dm +++ b/code/modules/projectiles/guns/projectile/pistol.dm @@ -6,42 +6,38 @@ origin_tech = "combat=2;materials=2;syndicate=2" mag_type = /obj/item/ammo_box/magazine/m10mm can_suppress = 1 + burst_size = 1 + fire_delay = 0 /obj/item/weapon/gun/projectile/automatic/pistol/update_icon() ..() icon_state = "[initial(icon_state)][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]" return -/obj/item/weapon/gun/projectile/automatic/m1911 +/obj/item/weapon/gun/projectile/automatic/pistol/m1911 name = "M1911 pistol" desc = "A classic .45 handgun with a small magazine capacity." - icon_state = "pistol" + icon_state = "m1911" w_class = 3 mag_type = /obj/item/ammo_box/magazine/m45 -/obj/item/weapon/gun/projectile/automatic/pistol45/update_icon() - ..() - icon_state = "[initial(icon_state)][chambered ? "" : "-e"]" - return - - -/obj/item/weapon/gun/projectile/automatic/deagle +/obj/item/weapon/gun/projectile/automatic/pistol/deagle name = "desert eagle" desc = "A robust .50 AE handgun." icon_state = "deagle" force = 14 mag_type = /obj/item/ammo_box/magazine/m50 -/obj/item/weapon/gun/projectile/automatic/deagle/update_icon() +/obj/item/weapon/gun/projectile/automatic/pistol/deagle/update_icon() ..() icon_state = "[initial(icon_state)][magazine ? "" : "-e"]" -/obj/item/weapon/gun/projectile/automatic/deagle/gold +/obj/item/weapon/gun/projectile/automatic/pistol/deagle/gold desc = "A gold plated desert eagle folded over a million times by superior martian gunsmiths. Uses .50 AE ammo." icon_state = "deagleg" item_state = "deagleg" -/obj/item/weapon/gun/projectile/automatic/deagle/camo +/obj/item/weapon/gun/projectile/automatic/pistol/deagle/camo desc = "A Deagle brand Deagle for operators operating operationally. Uses .50 AE ammo." icon_state = "deaglecamo" item_state = "deagleg" diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm index 7188ce64cbc..c829cff0c4a 100644 --- a/code/modules/projectiles/guns/projectile/revolver.dm +++ b/code/modules/projectiles/guns/projectile/revolver.dm @@ -5,7 +5,7 @@ mag_type = /obj/item/ammo_box/magazine/internal/cylinder /obj/item/weapon/gun/projectile/revolver/chamber_round() - if (chambered || !magazine) + if ((chambered && chambered.BB)|| !magazine) //if there's a live ammo in the chamber or no magazine return else if (magazine.ammo_count()) chambered = magazine.get_round(1) @@ -37,6 +37,9 @@ else user << "[src] is empty." +/obj/item/weapon/gun/projectile/revolver/can_shoot() + return get_ammo(0,0) + /obj/item/weapon/gun/projectile/revolver/get_ammo(var/countchambered = 0, var/countempties = 1) var/boolets = 0 //mature var names for mature people if (chambered && countchambered) @@ -172,7 +175,7 @@ return /obj/item/weapon/gun/projectile/revolver/russian/attack_self(mob/user as mob) - if(!spun && get_ammo(0,0)) + if(!spun && can_shoot()) user.visible_message("[user] spins the chamber of the revolver.", "You spin the revolver's chamber.") Spin() else @@ -190,34 +193,35 @@ user << "[src] is empty." /obj/item/weapon/gun/projectile/revolver/russian/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, flag, params) - if(!spun && get_ammo(0,0)) - user.visible_message("[user] spins the chamber of the revolver.", "You spin the revolver's chamber.") - Spin() - ..() - spun = 0 - -/obj/item/weapon/gun/projectile/revolver/russian/attack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj) - if(!spun && get_ammo(0,0)) - user.visible_message("[user] spins the chamber of the revolver.", "You spin the revolver's chamber.") - Spin() + if(user.a_intent == "harm") // Flogging action + return + if(isliving(user)) + if(!can_trigger_gun(user)) + return + if(target != user) + user << "A mechanism prevents you from shooting anyone but yourself." return - - if(target == user) - if(!chambered) - user.visible_message("*click*", "*click*") + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(!spun) + user << "You need to spin the revolver's chamber first." return - if(isliving(target) && isliving(user)) - var/obj/item/organ/limb/affecting = user.zone_sel.selecting - if(affecting == "head") - var/obj/item/ammo_casing/AC = chambered - if(AC.fire(user, user)) + spun = 0 + + if(chambered) + var/obj/item/ammo_casing/AC = chambered + if(AC.fire(user, user)) + playsound(user, fire_sound, 50, 1) + var/obj/item/organ/limb/affecting = H.get_organ(check_zone(user.zone_sel.selecting)) + var/limb_name = affecting.getDisplayName() + if(affecting == "head" || affecting == "eyes" || affecting == "mouth") user.apply_damage(300, BRUTE, affecting) - playsound(user, fire_sound, 50, 1) - user.visible_message("[user.name] fires [src] at \his head!", "You fire [src] at your head!", "You hear a [istype(AC.BB, /obj/item/projectile/beam) ? "laser blast" : "gunshot"]!") - return + user.visible_message("[user.name] fires [src] at \his head!", "You fire [src] at your head!", "You hear a gunshot!") else - user.visible_message("*click*", "*click*") - return - ..() + user.visible_message("[user.name] cowardly fires [src] at \his [limb_name]!", "You cowardly fire [src] at your [limb_name]!", "You hear a gunshot!") + return + + user.visible_message("*click*") + playsound(user, 'sound/weapons/empty.ogg', 100, 1) diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index 1858059454a..f07dde7e94f 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -25,6 +25,11 @@ /obj/item/weapon/gun/projectile/shotgun/chamber_round() return +/obj/item/weapon/gun/projectile/shotgun/can_shoot() + if(!chambered) + return 0 + return (chambered.BB ? 1 : 0) + /obj/item/weapon/gun/projectile/shotgun/attack_self(mob/living/user) if(recentpump) return pump(user) @@ -69,8 +74,12 @@ /obj/item/weapon/gun/projectile/shotgun/riot/attackby(var/obj/item/A as obj, mob/user as mob) ..() - if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/melee/energy) || istype(A, /obj/item/weapon/pickaxe/plasmacutter)) + if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/pickaxe/plasmacutter)) sawoff(user) + if(istype(A, /obj/item/weapon/melee/energy)) + var/obj/item/weapon/melee/energy/W = A + if(W.active) + sawoff(user) /obj/item/weapon/gun/projectile/revolver/doublebarrel name = "double-barreled shotgun" @@ -89,27 +98,13 @@ ..() if(istype(A, /obj/item/ammo_box) || istype(A, /obj/item/ammo_casing)) chamber_round() - if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/melee/energy) || istype(A, /obj/item/weapon/pickaxe/plasmacutter)) + if(istype(A, /obj/item/weapon/melee/energy)) + var/obj/item/weapon/melee/energy/W = A + if(W.active) + sawoff(user) + if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/pickaxe/plasmacutter)) sawoff(user) -/obj/item/weapon/gun/projectile/proc/sawoff(mob/user as mob) - user << "You begin to shorten \the [src]." - if(get_ammo()) - afterattack(user, user) - user.visible_message("The [src] goes off!", "The [src] goes off in your face!") - return - if(do_after(user, 30)) - name = "sawn-off [src.name]" - desc = sawn_desc - icon_state = initial(icon_state) + "-sawn" - w_class = 3.0 - item_state = "gun" - slot_flags &= ~SLOT_BACK //you can't sling it on your back - slot_flags |= SLOT_BELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally) - user << "You shorten \the [src]!" - update_icon() - return - /obj/item/weapon/gun/projectile/revolver/doublebarrel/attack_self(mob/living/user as mob) var/num_unloaded = 0 while (get_ammo() > 0) @@ -140,7 +135,7 @@ /obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised/attackby(var/obj/item/A as obj, mob/user as mob) ..() - if(istype(A, /obj/item/stack/cable_coil)) + if(istype(A, /obj/item/stack/cable_coil) && !sawn_state) var/obj/item/stack/cable_coil/C = A if(C.use(10)) flags = CONDUCT @@ -150,4 +145,87 @@ update_icon() else user << "You need at least ten lengths of cable if you want to make a sling." - return \ No newline at end of file + return + +//Sawing guns related procs +/obj/item/weapon/gun/projectile/proc/blow_up(mob/user as mob) + . = 0 + for(var/obj/item/ammo_casing/AC in magazine.stored_ammo) + if(AC.BB) + process_fire(user, user) + . = 1 + +/obj/item/weapon/gun/projectile/shotgun/blow_up(mob/user as mob) + . = 0 + if(chambered && chambered.BB) + process_fire(user, user,0) + . = 1 + for(var/obj/item/ammo_casing/AC in magazine.stored_ammo) + if(AC.BB) + chambered = AC + process_fire(user, user,0) + . = 1 + +/obj/item/weapon/gun/projectile/proc/sawoff(mob/user as mob) + if(sawn_state == SAWN_OFF) + user << "\The [src] is already shorten." + return + + if(sawn_state == SAWN_SAWING) + return + + user.visible_message("[user] begin to shorten \the [src].", "You begin to shorten \the [src].") + + //if there's any live ammo inside the gun, makes it go off + if(blow_up(user)) + user.visible_message("\The [src] goes off!", "\The [src] goes off in your face!") + return + + sawn_state = SAWN_SAWING + + if(do_after(user, 30)) + name = "sawn-off [src.name]" + desc = sawn_desc + icon_state = initial(icon_state) + "-sawn" + w_class = 3.0 + item_state = "gun" + slot_flags &= ~SLOT_BACK //you can't sling it on your back + slot_flags |= SLOT_BELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally) + sawn_state = SAWN_OFF + user.visible_message("[user] shorten \the [src]!", "You shorten \the [src]!") + update_icon() + return + else + sawn_state = SAWN_INTACT + + +/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog + name = "syndicate shotgun" + desc = "A compact, mag-fed burst-fire shotgun for combat in narrow corridors, nicknamed 'Bulldog' by boarding parties. Compatible only with specialized 8-round drum magazines." + icon_state = "bulldog" + item_state = "bulldog" + w_class = 3.0 + origin_tech = "combat=5;materials=4;syndicate=6" + mag_type = /obj/item/ammo_box/magazine/m12g + fire_sound = 'sound/weapons/Gunshot.ogg' + can_suppress = 0 + burst_size = 2 + fire_delay = 1 +/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/New() + ..() + update_icon() + return +/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/proc/update_magazine() + if(magazine) + src.overlays = 0 + overlays += "[magazine.icon_state]" + return +/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/update_icon() + src.overlays = 0 + update_magazine() + icon_state = "bulldog[chambered ? "" : "-e"]" + return +/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/afterattack() + ..() + empty_alarm() + return \ No newline at end of file diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index d2dc5b61e67..0de1e2fe156 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -35,14 +35,31 @@ var/stutter = 0 var/eyeblur = 0 var/drowsy = 0 + var/stamina = 0 + var/jitter = 0 var/forcedodge = 0 + var/range = 0 + var/proj_hit = 0 + +/obj/item/projectile/proc/Range() + if(range) + range-- + if(range <= 0) + on_range() + else + return + +/obj/item/projectile/proc/on_range() //if we want there to be effects when they reach the end of their range + proj_hit = 1 + qdel(src) + /obj/item/projectile/proc/on_hit(atom/target, blocked = 0, hit_zone) if(!isliving(target)) return 0 if(isanimal(target)) return 0 var/mob/living/L = target L.on_hit(type) - return L.apply_effects(stun, weaken, paralyze, irradiate, stutter, eyeblur, drowsy, blocked) + return L.apply_effects(stun, weaken, paralyze, irradiate, stutter, eyeblur, drowsy, blocked, stamina, jitter) /obj/item/projectile/proc/vol_by_damage() if(src.damage) @@ -74,8 +91,8 @@ if(hitsound) var/volume = vol_by_damage() playsound(loc, hitsound, volume, 1, -1) - M.visible_message("[M] is hit by \a [src] in the [parse_zone(def_zone)]!", \ - "[M] is hit by \a [src] in the [parse_zone(def_zone)]!") //X has fired Y is now given by the guns so you cant tell who shot you if you could not see the shooter + M.visible_message("[M] is hit by \a [src] in the [parse_zone(def_zone)]!", \ + "[M] is hit by \a [src] in the [parse_zone(def_zone)]!") //X has fired Y is now given by the guns so you cant tell who shot you if you could not see the shooter add_logs(firer, M, "shot", object="[src]", addition=reagent_note) var/turf/new_loc = get_turf(A) @@ -115,6 +132,3 @@ Bump(original) Range() sleep(1) - -/obj/item/projectile/proc/Range() - return \ No newline at end of file diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index d6bfe72329a..e0a9ff034e6 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -36,6 +36,14 @@ irradiate = 30 forcedodge = 1 +/obj/item/projectile/beam/disabler + name = "disabler beam" + icon_state = "omnilaser" + damage = 33 + damage_type = STAMINA + hitsound = 'sound/weapons/tap.ogg' + eyeblur = 0 + /obj/item/projectile/beam/pulse name = "pulse" icon_state = "u_laser" diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index a3634a488f6..8b9d357efe8 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -9,14 +9,12 @@ /obj/item/projectile/bullet/weakbullet damage = 5 - stun = 5 - weaken = 5 + stamina = 33 /obj/item/projectile/bullet/weakbullet2 damage = 15 - stun = 5 - weaken = 5 + stamina = 75 //the detective can't shoot in bursts and will get yelled at if he sinks 50 rounds into perps to stun 'em /obj/item/projectile/bullet/weakbullet3 damage = 20 @@ -30,8 +28,7 @@ /obj/item/projectile/bullet/midbullet damage = 20 - stun = 5 - weaken = 5 + stamina = 50 //two round bursts from the c20r /obj/item/projectile/bullet/midbullet2 damage = 25 @@ -46,11 +43,7 @@ /obj/item/projectile/bullet/stunshot name = "stunshot" damage = 5 - stun = 5 - weaken = 5 - stutter = 5 - -/obj/item/projectile/bullet/incendiary + stamina = 50 //two round bursts from the bulldog /obj/item/projectile/bullet/incendiary/on_hit(var/atom/target, var/blocked = 0) ..() diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index 2f64825d1fd..f89f265115f 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -14,14 +14,26 @@ stun = 5 weaken = 5 stutter = 5 + jitter = 20 hitsound = "sparks" + range = 7 - on_hit(var/atom/target, var/blocked = 0) +/obj/item/projectile/energy/electrode/on_hit(var/atom/target, var/blocked = 0) + if(!proj_hit) if(!ismob(target) || blocked >= 2) //Fully blocked by mob or collided with dense object - burst into sparks! var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread sparks.set_up(1, 1, src) sparks.start() - ..() + proj_hit = 1 + ..() + +/obj/item/projectile/energy/electrode/on_range() //to ensure the bolt sparks when it reaches the end of its range if it didn't hit a target yet + if(!proj_hit) + var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread + sparks.set_up(1, 1, src) + sparks.start() + proj_hit = 1 + ..() /obj/item/projectile/energy/declone name = "radiation beam" @@ -31,39 +43,24 @@ irradiate = 40 -/obj/item/projectile/energy/dart +/obj/item/projectile/energy/dart //ninja throwing dart name = "dart" icon_state = "toxin" damage = 5 damage_type = TOX weaken = 5 + range = 7 - -/obj/item/projectile/energy/bolt +/obj/item/projectile/energy/bolt //ebow bolts name = "bolt" icon_state = "cbbolt" - damage = 10 + damage = 15 damage_type = TOX nodamage = 0 weaken = 5 stutter = 5 - + range = 10 /obj/item/projectile/energy/bolt/large name = "largebolt" damage = 20 - -/obj/item/projectile/energy/disabler - name = "disabler beam" - icon_state = "omnilaser" - damage = 34 - damage_type = STAMINA - var/range = 7 - -/obj/item/projectile/energy/disabler/Range() - range-- - if(range <= 0) - qdel(src) - - - diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm index 337ccb32d8c..65a0c7c1451 100644 --- a/code/modules/projectiles/projectile/special.dm +++ b/code/modules/projectiles/projectile/special.dm @@ -18,7 +18,6 @@ damage = 50 flag = "bullet" - /obj/item/projectile/bullet/gyro/on_hit(atom/target, blocked = 0) explosion(target, -1, 0, 2) return 1 @@ -29,6 +28,7 @@ icon_state= "bolter" damage = 60 flag = "bullet" + range = 7 /obj/item/projectile/bullet/a40mm/on_hit(atom/target, blocked = 0) explosion(target, -1, 0, 2, 1, 0, flame_range = 3) @@ -105,7 +105,7 @@ damage = 15 damage_type = BRUTE flag = "bomb" - var/range = 3 + range = 3 obj/item/projectile/kinetic/New() var/turf/proj_turf = get_turf(src) @@ -178,4 +178,4 @@ obj/item/projectile/kinetic/New() /obj/item/projectile/bullet/frag12 name ="explosive slug" damage = 25 - weaken = 5 \ No newline at end of file + weaken = 5 diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm index a6d6d2572e2..254b10db479 100644 --- a/code/modules/reagents/Chemistry-Holder.dm +++ b/code/modules/reagents/Chemistry-Holder.dm @@ -247,7 +247,9 @@ datum/reagents/proc/handle_reactions() else if(my_atom.type == C.required_container) matching_container = 1 - + if (isliving(my_atom)) //Makes it so certain chemical reactions don't occur in mobs + if (C.mob_react) + return if(!C.required_other) matching_other = 1 @@ -282,7 +284,7 @@ datum/reagents/proc/handle_reactions() ME2.Uses-- if(ME2.Uses <= 0) // give the notification that the slime core is dead for(var/mob/M in seen) - M << "\icon[my_atom] The [my_atom]'s power is consumed in the reaction." + M << "\icon[my_atom] \The [my_atom]'s power is consumed in the reaction." ME2.name = "used slime extract" ME2.desc = "This extract has been used up." diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm index b777938b760..eb3f4846edd 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm @@ -88,7 +88,7 @@ datum/reagent/proc/on_update(var/atom/A) return datum/reagent/blood - data = list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null) + data = list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null) name = "Blood" id = "blood" color = "#C80000" // rgb: 200, 0, 0 diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 11cfec3f0dc..e174ee01f2f 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -12,6 +12,7 @@ var/result_amount = 0 var/secondary = 0 // set to nonzero if secondary reaction + var/mob_react = 0 //Determines if a chemical reaction can occur inside a mob /datum/chemical_reaction/proc/on_reaction(var/datum/reagents/holder, var/created_volume) return @@ -384,6 +385,7 @@ silicate required_reagents = list("potassium" = 1, "sugar" = 1, "phosphorus" = 1) result_amount = null secondary = 1 + mob_react = 1 /datum/chemical_reaction/chemsmoke/on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) @@ -448,6 +450,7 @@ silicate result = null required_reagents = list("iron" = 5, "frostoil" = 5, "plasma" = 20) result_amount = 1 + mob_react = 1 /datum/chemical_reaction/plasmasolidification/on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) @@ -537,6 +540,7 @@ silicate result = null required_reagents = list("fluorosurfactant" = 1, "water" = 1) result_amount = 2 + mob_react = 1 /datum/chemical_reaction/foam/on_reaction(var/datum/reagents/holder, var/created_volume) @@ -566,6 +570,7 @@ silicate result = null required_reagents = list("aluminium" = 3, "foaming_agent" = 1, "pacid" = 1) result_amount = 5 + mob_react = 1 /datum/chemical_reaction/metalfoam/on_reaction(var/datum/reagents/holder, var/created_volume) @@ -586,6 +591,7 @@ silicate result = null required_reagents = list("iron" = 3, "foaming_agent" = 1, "pacid" = 1) result_amount = 5 + mob_react = 1 /datum/chemical_reaction/ironfoam/on_reaction(var/datum/reagents/holder, var/created_volume) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 92c325faedf..ab30aa772f6 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -24,7 +24,7 @@ /obj/item/weapon/grenade/chem_grenade, /obj/machinery/bot/medbot, /obj/machinery/computer/pandemic, - /obj/item/weapon/storage/secure/safe, + /obj/structure/safe, /obj/machinery/disposal, /obj/machinery/hydroponics, /obj/machinery/biogenerator, diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 3e08174bdaa..ce8256a3d34 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -79,7 +79,7 @@ user << "You are unable to locate any blood." return if(target != user) - target.visible_message("[user] is trying to take a blood sample from [target]!", \ + target.visible_message("[user] is trying to take a blood sample from [target]!", \ "[user] is trying to take a blood sample from [target]!") if(!do_mob(user, target)) return @@ -118,6 +118,7 @@ B.data["cloneable"] = 1 B.data["gender"] = T.gender B.data["real_name"] = T.real_name + B.data["factions"] = T.faction reagents.reagent_list += B reagents.update_total() on_reagent_change() diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm index a19eaff4eb4..958ed65f986 100644 --- a/code/modules/research/circuitprinter.dm +++ b/code/modules/research/circuitprinter.dm @@ -17,6 +17,19 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis). var/efficiency_coeff reagents = new() + var/list/categories = list( + "AI Modules", + "Computer Boards", + "Teleportation Machinery", + "Medical Machinery", + "Engineering Machinery", + "Exosuit Modules", + "Hydroponics Machinery", + "Subspace Telecomms", + "Research Machinery", + "Misc. Machinery" + ) + /obj/machinery/r_n_d/circuit_imprinter/New() ..() component_parts = list() diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index 9be7c88ea13..d67da5e6504 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -55,198 +55,6 @@ datum/design/proc/CalcReliability(var/list/temp_techs) return -/////////////////////////////////// -/////Non-Board Computer Stuff////// -/////////////////////////////////// - -datum/design/intellicard - name = "Intellicard AI Transportation System" - desc = "Allows for the construction of an intellicard." - id = "intellicard" - req_tech = list("programming" = 4, "materials" = 4) - build_type = PROTOLATHE - materials = list("$glass" = 1000, "$gold" = 200) - build_path = /obj/item/device/aicard - -datum/design/paicard - name = "Personal Artificial Intelligence Card" - desc = "Allows for the construction of a pAI Card." - id = "paicard" - req_tech = list("programming" = 2) - build_type = PROTOLATHE - materials = list("$glass" = 500, "$metal" = 500) - build_path = /obj/item/device/paicard - - -//////////////////////////////////////// -//////////Disk Construction Disks/////// -//////////////////////////////////////// -datum/design/design_disk - name = "Design Storage Disk" - desc = "Produce additional disks for storing device designs." - id = "design_disk" - req_tech = list("programming" = 1) - build_type = PROTOLATHE | AUTOLATHE - materials = list("$metal" = 30, "$glass" = 10) - build_path = /obj/item/weapon/disk/design_disk - -datum/design/tech_disk - name = "Technology Data Storage Disk" - desc = "Produce additional disks for storing technology data." - id = "tech_disk" - req_tech = list("programming" = 1) - build_type = PROTOLATHE | AUTOLATHE - materials = list("$metal" = 30, "$glass" = 10) - build_path = /obj/item/weapon/disk/tech_disk - - -///////////////////////////////////////// -/////////////////Mining////////////////// -///////////////////////////////////////// - -datum/design/jackhammer - name = "Sonic Jackhammer" - desc = "Cracks rocks with sonic blasts, perfect for killing cave lizards." - id = "jackhammer" - req_tech = list("materials" = 3, "powerstorage" = 2, "engineering" = 2) - build_type = PROTOLATHE - materials = list("$metal" = 2000, "$glass" = 500, "$silver" = 500) - build_path = /obj/item/weapon/pickaxe/jackhammer - -datum/design/drill - name = "Mining Drill" - desc = "Yours is the drill that will pierce through the rock walls." - id = "drill" - req_tech = list("materials" = 2, "powerstorage" = 3, "engineering" = 2) - build_type = PROTOLATHE - materials = list("$metal" = 6000, "$glass" = 1000) //expensive, but no need for miners. - build_path = /obj/item/weapon/pickaxe/drill - -datum/design/plasmacutter - name = "Plasma Cutter" - desc = "You could use it to cut limbs off of xenos! Or, you know, mine stuff." - id = "plasmacutter" - req_tech = list("materials" = 4, "plasmatech" = 3, "engineering" = 3) - build_type = PROTOLATHE - materials = list("$metal" = 1500, "$glass" = 500, "$gold" = 500, "$plasma" = 500) - reliability = 79 - build_path = /obj/item/weapon/pickaxe/plasmacutter - -datum/design/pick_diamond - name = "Diamond Pickaxe" - desc = "A pickaxe with a diamond pick head, this is just like minesim 2554!." - id = "pick_diamond" - req_tech = list("materials" = 6) - build_type = PROTOLATHE - materials = list("$diamond" = 3000) - build_path = /obj/item/weapon/pickaxe/diamond - -datum/design/drill_diamond - name = "Diamond Mining Drill" - desc = "Yours is the drill that will pierce the heavens!" - id = "drill_diamond" - req_tech = list("materials" = 6, "powerstorage" = 4, "engineering" = 4) - build_type = PROTOLATHE - materials = list("$metal" = 3000, "$glass" = 1000, "$diamond" = 3750) //Yes, a whole diamond is needed. - reliability = 79 - build_path = /obj/item/weapon/pickaxe/drill/diamonddrill - -///////////////////////////////////////// -//////////////Blue Space///////////////// -///////////////////////////////////////// - -datum/design/beacon - name = "Tracking Beacon" - desc = "A blue space tracking beacon." - id = "beacon" - req_tech = list("bluespace" = 1) - build_type = PROTOLATHE - materials = list("$metal" = 20, "$glass" = 10) - build_path = /obj/item/device/radio/beacon - -datum/design/bag_holding - name = "Bag of Holding" - desc = "A backpack that opens into a localized pocket of Blue Space." - id = "bag_holding" - req_tech = list("bluespace" = 4, "materials" = 6) - build_type = PROTOLATHE - materials = list("$gold" = 3000, "$diamond" = 1500, "$uranium" = 250) - reliability = 80 - build_path = /obj/item/weapon/storage/backpack/holding - -datum/design/bluespace_crystal - name = "Artificial Bluespace Crystal" - desc = "A small blue crystal with mystical properties." - id = "bluespace_crystal" - req_tech = list("bluespace" = 4, "materials" = 6) - build_type = PROTOLATHE - materials = list("$diamond" = 1500, "$plasma" = 1500) - reliability = 100 - build_path = /obj/item/bluespace_crystal/artificial - -datum/design/telesci_gps - name = "GPS Device" - desc = "Little thingie that can track its position at all times." - id = "telesci_gps" - req_tech = list("materials" = 2, "magnets" = 3, "bluespace" = 3) - build_type = PROTOLATHE - materials = list("$metal" = 500, "$glass" = 1000) - build_path = /obj/item/device/gps - - -///////////////////////////////////////// -/////////////////HUDs//////////////////// -///////////////////////////////////////// - -datum/design/health_hud - name = "Health Scanner HUD" - desc = "A heads-up display that scans the humans in view and provides accurate data about their health status." - id = "health_hud" - req_tech = list("biotech" = 2, "magnets" = 3) - build_type = PROTOLATHE - materials = list("$metal" = 50, "$glass" = 50) - build_path = /obj/item/clothing/glasses/hud/health - -datum/design/health_hud_night - name = "Night Vision Health Scanner HUD" - desc = "An advanced medical head-up display that allows doctors to find patients in complete darkness." - id = "health_hud_night" - req_tech = list("biotech" = 4, "magnets" = 5) - build_type = PROTOLATHE - materials = list("$metal" = 200, "$glass" = 200, "$uranium" = 1000, "$silver" = 250) - build_path = /obj/item/clothing/glasses/hud/health/night - -datum/design/security_hud - name = "Security HUD" - desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status." - id = "security_hud" - req_tech = list("magnets" = 3, "combat" = 2) - build_type = PROTOLATHE - materials = list("$metal" = 50, "$glass" = 50) - build_path = /obj/item/clothing/glasses/hud/security - -datum/design/security_hud_night - name = "Night Vision Security HUD" - desc = "A heads-up display which provides id data and vision in complete darkness." - id = "security_hud_night" - req_tech = list("magnets" = 5, "combat" = 4) - build_type = PROTOLATHE - materials = list("$metal" = 200, "$glass" = 200, "$uranium" = 1000, "$gold" = 350) - build_path = /obj/item/clothing/glasses/hud/security/night - -///////////////////////////////////////// -//////////////////Test/////////////////// -///////////////////////////////////////// - - /* test - name = "Test Design" - desc = "A design to test the new protolathe." - id = "protolathe_test" - build_type = PROTOLATHE - req_tech = list("materials" = 1) - materials = list("$gold" = 3000, "iron" = 15, "copper" = 10, "$silver" = 2500) - build_path = /obj/item/weapon/banhammer" */ - //////////////////////////////////////// //Disks for transporting design datums// //////////////////////////////////////// @@ -266,28 +74,221 @@ datum/design/security_hud_night src.pixel_x = rand(-5.0, 5) src.pixel_y = rand(-5.0, 5) +/////////////////////////////////// +/////Non-Board Computer Stuff////// +/////////////////////////////////// + +/datum/design/intellicard + name = "Intellicard AI Transportation System" + desc = "Allows for the construction of an intellicard." + id = "intellicard" + req_tech = list("programming" = 4, "materials" = 4) + build_type = PROTOLATHE + materials = list("$glass" = 1000, "$gold" = 200) + build_path = /obj/item/device/aicard + category = list("Electronics") + +/datum/design/paicard + name = "Personal Artificial Intelligence Card" + desc = "Allows for the construction of a pAI Card." + id = "paicard" + req_tech = list("programming" = 2) + build_type = PROTOLATHE + materials = list("$glass" = 500, "$metal" = 500) + build_path = /obj/item/device/paicard + category = list("Electronics") + + +//////////////////////////////////////// +//////////Disk Construction Disks/////// +//////////////////////////////////////// +/datum/design/design_disk + name = "Design Storage Disk" + desc = "Produce additional disks for storing device designs." + id = "design_disk" + req_tech = list("programming" = 1) + build_type = PROTOLATHE | AUTOLATHE + materials = list("$metal" = 30, "$glass" = 10) + build_path = /obj/item/weapon/disk/design_disk + category = list("Electronics") + +/datum/design/tech_disk + name = "Technology Data Storage Disk" + desc = "Produce additional disks for storing technology data." + id = "tech_disk" + req_tech = list("programming" = 1) + build_type = PROTOLATHE | AUTOLATHE + materials = list("$metal" = 30, "$glass" = 10) + build_path = /obj/item/weapon/disk/tech_disk + category = list("Electronics") + ///////////////////////////////////////// -//////////////Borg Upgrades////////////// +/////////////////Mining////////////////// ///////////////////////////////////////// -datum/design/borg_syndicate_module - name = "Borg Illegal Weapons Upgrade" - desc = "Allows for the construction of illegal upgrades for cyborgs" - id = "borg_syndicate_module" - build_type = MECHFAB - req_tech = list("combat" = 4, "syndicate" = 3) - build_path = /obj/item/borg/upgrade/syndicate - materials = list("$metal"=10000,"$glass"=15000,"$diamond" = 10000) - construction_time = 120 - category = list("Cyborg Upgrade Modules") +/datum/design/jackhammer + name = "Sonic Jackhammer" + desc = "Cracks rocks with sonic blasts, perfect for killing cave lizards." + id = "jackhammer" + req_tech = list("materials" = 3, "powerstorage" = 2, "engineering" = 2) + build_type = PROTOLATHE + materials = list("$metal" = 2000, "$glass" = 500, "$silver" = 500) + build_path = /obj/item/weapon/pickaxe/jackhammer + category = list("Mining Designs") +/datum/design/drill + name = "Mining Drill" + desc = "Yours is the drill that will pierce through the rock walls." + id = "drill" + req_tech = list("materials" = 2, "powerstorage" = 3, "engineering" = 2) + build_type = PROTOLATHE + materials = list("$metal" = 6000, "$glass" = 1000) //expensive, but no need for miners. + build_path = /obj/item/weapon/pickaxe/drill + category = list("Mining Designs") + +/datum/design/plasmacutter + name = "Plasma Cutter" + desc = "You could use it to cut limbs off of xenos! Or, you know, mine stuff." + id = "plasmacutter" + req_tech = list("materials" = 4, "plasmatech" = 3, "engineering" = 3) + build_type = PROTOLATHE + materials = list("$metal" = 1500, "$glass" = 500, "$gold" = 500, "$plasma" = 500) + reliability = 79 + build_path = /obj/item/weapon/pickaxe/plasmacutter + category = list("Mining Designs") + +/datum/design/pick_diamond + name = "Diamond Pickaxe" + desc = "A pickaxe with a diamond pick head, this is just like minesim 2554!." + id = "pick_diamond" + req_tech = list("materials" = 6) + build_type = PROTOLATHE + materials = list("$diamond" = 3000) + build_path = /obj/item/weapon/pickaxe/diamond + category = list("Mining Designs") + +/datum/design/drill_diamond + name = "Diamond Mining Drill" + desc = "Yours is the drill that will pierce the heavens!" + id = "drill_diamond" + req_tech = list("materials" = 6, "powerstorage" = 4, "engineering" = 4) + build_type = PROTOLATHE + materials = list("$metal" = 3000, "$glass" = 1000, "$diamond" = 3750) //Yes, a whole diamond is needed. + reliability = 79 + build_path = /obj/item/weapon/pickaxe/drill/diamonddrill + category = list("Mining Designs") + +///////////////////////////////////////// +//////////////Blue Space///////////////// +///////////////////////////////////////// + +/datum/design/beacon + name = "Tracking Beacon" + desc = "A blue space tracking beacon." + id = "beacon" + req_tech = list("bluespace" = 1) + build_type = PROTOLATHE + materials = list("$metal" = 20, "$glass" = 10) + build_path = /obj/item/device/radio/beacon + category = list("Bluespace Designs") + +/datum/design/bag_holding + name = "Bag of Holding" + desc = "A backpack that opens into a localized pocket of Blue Space." + id = "bag_holding" + req_tech = list("bluespace" = 4, "materials" = 6) + build_type = PROTOLATHE + materials = list("$gold" = 3000, "$diamond" = 1500, "$uranium" = 250) + reliability = 80 + build_path = /obj/item/weapon/storage/backpack/holding + category = list("Bluespace Designs") + +/datum/design/bluespace_crystal + name = "Artificial Bluespace Crystal" + desc = "A small blue crystal with mystical properties." + id = "bluespace_crystal" + req_tech = list("bluespace" = 4, "materials" = 6) + build_type = PROTOLATHE + materials = list("$diamond" = 1500, "$plasma" = 1500) + reliability = 100 + build_path = /obj/item/bluespace_crystal/artificial + category = list("Bluespace Designs") + +/datum/design/telesci_gps + name = "GPS Device" + desc = "Little thingie that can track its position at all times." + id = "telesci_gps" + req_tech = list("materials" = 2, "magnets" = 3, "bluespace" = 3) + build_type = PROTOLATHE + materials = list("$metal" = 500, "$glass" = 1000) + build_path = /obj/item/device/gps + category = list("Bluespace Designs") + + +///////////////////////////////////////// +/////////////////HUDs//////////////////// +///////////////////////////////////////// + +/datum/design/health_hud + name = "Health Scanner HUD" + desc = "A heads-up display that scans the humans in view and provides accurate data about their health status." + id = "health_hud" + req_tech = list("biotech" = 2, "magnets" = 3) + build_type = PROTOLATHE + materials = list("$metal" = 50, "$glass" = 50) + build_path = /obj/item/clothing/glasses/hud/health + category = list("Equipement") + +/datum/design/health_hud_night + name = "Night Vision Health Scanner HUD" + desc = "An advanced medical head-up display that allows doctors to find patients in complete darkness." + id = "health_hud_night" + req_tech = list("biotech" = 4, "magnets" = 5) + build_type = PROTOLATHE + materials = list("$metal" = 200, "$glass" = 200, "$uranium" = 1000, "$silver" = 250) + build_path = /obj/item/clothing/glasses/hud/health/night + category = list("Equipement") + +/datum/design/security_hud + name = "Security HUD" + desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status." + id = "security_hud" + req_tech = list("magnets" = 3, "combat" = 2) + build_type = PROTOLATHE + materials = list("$metal" = 50, "$glass" = 50) + build_path = /obj/item/clothing/glasses/hud/security + category = list("Equipement") + +/datum/design/security_hud_night + name = "Night Vision Security HUD" + desc = "A heads-up display which provides id data and vision in complete darkness." + id = "security_hud_night" + req_tech = list("magnets" = 5, "combat" = 4) + build_type = PROTOLATHE + materials = list("$metal" = 200, "$glass" = 200, "$uranium" = 1000, "$gold" = 350) + build_path = /obj/item/clothing/glasses/hud/security/night + category = list("Equipement") + +///////////////////////////////////////// +//////////////////Test/////////////////// +///////////////////////////////////////// + + /* test + name = "Test Design" + desc = "A design to test the new protolathe." + id = "protolathe_test" + build_type = PROTOLATHE + req_tech = list("materials" = 1) + materials = list("$gold" = 3000, "iron" = 15, "copper" = 10, "$silver" = 2500) + build_path = /obj/item/weapon/banhammer" + category = list("Weapons") */ ///////////////////////////////////////// //////////////////Misc/////////////////// ///////////////////////////////////////// -datum/design/welding_mask +/datum/design/welding_mask name = "Welding Gas Mask" desc = "A gas mask with built in welding goggles and face shield. Looks like a skull, clearly designed by a nerd." id = "weldingmask" @@ -295,8 +296,9 @@ datum/design/welding_mask build_type = PROTOLATHE materials = list("$metal" = 4000, "$glass" = 1000) build_path = /obj/item/clothing/mask/gas/welding + category = list("Equipement") -datum/design/mesons +/datum/design/mesons name = "Optical Meson Scanners" desc = "Used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting condition." id = "mesons" @@ -304,8 +306,9 @@ datum/design/mesons build_type = PROTOLATHE materials = list("$metal" = 200, "$glass" = 300, "$plasma" = 100) build_path = /obj/item/clothing/glasses/meson + category = list("Equipement") -datum/design/night_vision_goggles +/datum/design/night_vision_goggles name = "Night Vision Goggles" desc = "Goggles that let you see through darkness unhindered." id = "night_visision_goggles" @@ -313,8 +316,9 @@ datum/design/night_vision_goggles build_type = PROTOLATHE materials = list("$metal" = 100, "$glass" = 100, "$uranium" = 1000) build_path = /obj/item/clothing/glasses/night + category = list("Equipement") -datum/design/magboots +/datum/design/magboots name = "Magnetic Boots" desc = "Magnetic boots, often used during extravehicular activity to ensure the user remains safely attached to the vehicle." id = "magboots" @@ -322,23 +326,13 @@ datum/design/magboots build_type = PROTOLATHE materials = list("$metal" = 4500, "$silver" = 1500, "$gold" = 2500) build_path = /obj/item/clothing/shoes/magboots - -datum/design/drone_shell - name = "Drone Shell" - desc = "A shell of a maintenance drone, an expendable robot built to perform station repairs." - id = "drone_shell" - req_tech = list("programming" = 2, "biotech" = 4) - build_type = MECHFAB - materials = list("$metal" = 800, "$glass" = 350) - construction_time=150 - build_path = /obj/item/drone_shell - category = list("Misc") + category = list("Equipement") ///////////////////////////////////////// ////////////Janitor Designs////////////// ///////////////////////////////////////// -datum/design/advmop +/datum/design/advmop name = "Advanced Mop" desc = "An upgraded mop with a large internal capacity for holding water or other cleaning chemicals." id = "advmop" @@ -346,12 +340,14 @@ datum/design/advmop build_type = PROTOLATHE materials = list("$metal" = 2500, "$glass" = 200) build_path = /obj/item/weapon/mop/advanced + category = list("Equipement") -datum/design/holosign +/datum/design/holosign name = "Holographic Sign Projector" desc = "A holograpic projector used to project various warning signs." id = "holosign" req_tech = list("magnets" = 3, "powerstorage" = 2) build_type = PROTOLATHE materials = list("$metal" = 2000, "$glass" = 1000) - build_path = /obj/item/weapon/holosign_creator \ No newline at end of file + build_path = /obj/item/weapon/holosign_creator + category = list("Equipement") diff --git a/code/modules/research/designs/AI_module_designs.dm b/code/modules/research/designs/AI_module_designs.dm index d91e8efb90a..9915b0eb92c 100644 --- a/code/modules/research/designs/AI_module_designs.dm +++ b/code/modules/research/designs/AI_module_designs.dm @@ -2,79 +2,89 @@ //////////AI Module Disks////////// /////////////////////////////////// -datum/design/safeguard_module - name = "AI Module(Safeguard)" + +/datum/design/safeguard_module + name = "Module Design (Safeguard)" desc = "Allows for the construction of a Safeguard AI Module." id = "safeguard_module" req_tech = list("programming" = 3, "materials" = 4) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$gold" = 100) build_path = /obj/item/weapon/aiModule/supplied/safeguard + category = list("AI Modules") -datum/design/onehuman_module - name = "AI Module (OneHuman)" +/datum/design/onehuman_module + name = "Module Design (OneHuman)" desc = "Allows for the construction of a OneHuman AI Module." id = "onehuman_module" req_tech = list("programming" = 4, "materials" = 6) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$diamond" = 100) build_path = /obj/item/weapon/aiModule/zeroth/oneHuman + category = list("AI Modules") -datum/design/protectstation_module - name = "AI Module (ProtectStation)" +/datum/design/protectstation_module + name = "Module Design (ProtectStation)" desc = "Allows for the construction of a ProtectStation AI Module." id = "protectstation_module" req_tech = list("programming" = 3, "materials" = 6) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$gold" = 100) build_path = /obj/item/weapon/aiModule/supplied/protectStation + category = list("AI Modules") -datum/design/quarantine_module - name = "AI Module (Quarantine)" +/datum/design/quarantine_module + name = "Module Design (Quarantine)" desc = "Allows for the construction of a Quarantine AI Module." id = "quarantine_module" req_tech = list("programming" = 3, "biotech" = 2, "materials" = 4) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$gold" = 100) build_path = /obj/item/weapon/aiModule/supplied/quarantine + category = list("AI Modules") -datum/design/oxygen_module - name = "AI Module (OxygenIsToxicToHumans)" + +/datum/design/oxygen_module + name = "Module Design (OxygenIsToxicToHumans)" desc = "Allows for the construction of a Safeguard AI Module." id = "oxygen_module" req_tech = list("programming" = 3, "biotech" = 2, "materials" = 4) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$gold" = 100) build_path = /obj/item/weapon/aiModule/supplied/oxygen + category = list("AI Modules") -datum/design/freeform_module - name = "AI Module (Freeform)" +/datum/design/freeform_module + name = "Module Design (Freeform)" desc = "Allows for the construction of a Freeform AI Module." id = "freeform_module" req_tech = list("programming" = 4, "materials" = 4) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$gold" = 100) build_path = /obj/item/weapon/aiModule/supplied/freeform + category = list("AI Modules") -datum/design/reset_module - name = "AI Module (Reset)" +/datum/design/reset_module + name = "Module Design (Reset)" desc = "Allows for the construction of a Reset AI Module." id = "reset_module" req_tech = list("programming" = 3, "materials" = 6) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$gold" = 100) build_path = /obj/item/weapon/aiModule/reset + category = list("AI Modules") -datum/design/purge_module - name = "AI Module (Purge)" +/datum/design/purge_module + name = "Module Design (Purge)" desc = "Allows for the construction of a Purge AI Module." id = "purge_module" req_tech = list("programming" = 4, "materials" = 6) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$diamond" = 100) build_path = /obj/item/weapon/aiModule/reset/purge + category = list("AI Modules") -datum/design/freeformcore_module +/datum/design/freeformcore_module name = "AI Core Module (Freeform)" desc = "Allows for the construction of a Freeform AI Core Module." id = "freeformcore_module" @@ -82,48 +92,54 @@ datum/design/freeformcore_module build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$diamond" = 100) build_path = /obj/item/weapon/aiModule/core/freeformcore + category = list("AI Modules") -datum/design/asimov - name = "AI Core Module (Asimov)" +/datum/design/asimov + name = "Core Module Design (Asimov)" desc = "Allows for the construction of a Asimov AI Core Module." id = "asimov_module" req_tech = list("programming" = 3, "materials" = 6) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$diamond" = 100) build_path = /obj/item/weapon/aiModule/core/full/asimov + category = list("AI Modules") -datum/design/paladin_module - name = "AI Core Module (P.A.L.A.D.I.N.)" +/datum/design/paladin_module + name = "Core Module Design (P.A.L.A.D.I.N.)" desc = "Allows for the construction of a P.A.L.A.D.I.N. AI Core Module." id = "paladin_module" req_tech = list("programming" = 4, "materials" = 6) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$diamond" = 100) build_path = /obj/item/weapon/aiModule/core/full/paladin + category = list("AI Modules") -datum/design/tyrant_module - name = "AI Core Module (T.Y.R.A.N.T.)" +/datum/design/tyrant_module + name = "Core Module Design (T.Y.R.A.N.T.)" desc = "Allows for the construction of a T.Y.R.A.N.T. AI Module." id = "tyrant_module" req_tech = list("programming" = 4, "syndicate" = 2, "materials" = 6) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$diamond" = 100) build_path = /obj/item/weapon/aiModule/core/full/tyrant + category = list("AI Modules") -datum/design/corporate_module - name = "AI Core Module (Corporate)" +/datum/design/corporate_module + name = "Core Module Design (Corporate)" desc = "Allows for the construction of a Corporate AI Core Module." id = "corporate_module" req_tech = list("programming" = 4, "materials" = 6) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$diamond" = 100) build_path = /obj/item/weapon/aiModule/core/full/corp + category = list("AI Modules") -datum/design/custom_module - name = "AI Core Module (Custom)" +/datum/design/custom_module + name = "Core Module Design (Custom)" desc = "Allows for the construction of a Custom AI Core Module." id = "custom_module" req_tech = list("programming" = 4, "materials" = 6) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$diamond" = 100) - build_path = /obj/item/weapon/aiModule/core/full/custom \ No newline at end of file + build_path = /obj/item/weapon/aiModule/core/full/custom + category = list("AI Modules") diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm new file mode 100644 index 00000000000..71868e610c9 --- /dev/null +++ b/code/modules/research/designs/autolathe_designs.dm @@ -0,0 +1,500 @@ +/////////////////////////////////// +//////////Autolathe Designs /////// +/////////////////////////////////// + +/datum/design/bucket + name = "Bucket" + id = "bucket" + build_type = AUTOLATHE + materials = list("$metal" = 200) + build_path = /obj/item/weapon/reagent_containers/glass/bucket + category = list("initial","Tools") + +/datum/design/crowbar + name = "Pocket crowbar" + id = "crowbar" + build_type = AUTOLATHE + materials = list("$metal" = 50) + build_path = /obj/item/weapon/crowbar + category = list("initial","Tools") + +/datum/design/flashlight + name = "Flashlight" + id = "flashlight" + build_type = AUTOLATHE + materials = list("$metal" = 50, "$glass" = 20) + build_path = /obj/item/device/flashlight + category = list("initial","Tools") + +/datum/design/extinguisher + name = "Fire extinguisher" + id = "extinguisher" + build_type = AUTOLATHE + materials = list("$metal" = 90) + build_path = /obj/item/weapon/extinguisher + category = list("initial","Tools") + +/datum/design/multitool + name = "Multitool" + id = "multitool" + build_type = AUTOLATHE + materials = list("$metal" = 50, "$glass" = 20) + build_path = /obj/item/device/multitool + category = list("initial","Tools") + +/datum/design/analyzer + name = "Analyzer" + id = "analyzer" + build_type = AUTOLATHE + materials = list("$metal" = 30, "$glass" = 20) + build_path = /obj/item/device/analyzer + category = list("initial","Tools") + +/datum/design/tscanner + name = "T-ray scanner" + id = "tscanner" + build_type = AUTOLATHE + materials = list("$metal" = 150) + build_path = /obj/item/device/t_scanner + category = list("initial","Tools") + +/datum/design/weldingtool + name = "Welding tool" + id = "welding_tool" + build_type = AUTOLATHE + materials = list("$metal" = 70, "$glass" = 20) + build_path = /obj/item/weapon/weldingtool + category = list("initial","Tools") + +/datum/design/screwdriver + name = "Screwdriver" + id = "screwdriver" + build_type = AUTOLATHE + materials = list("$metal" = 75) + build_path = /obj/item/weapon/screwdriver + category = list("initial","Tools") + +/datum/design/wirecutters + name = "Wirecutters" + id = "wirecutters" + build_type = AUTOLATHE + materials = list("$metal" = 80) + build_path = /obj/item/weapon/wirecutters + category = list("initial","Tools") + +/datum/design/wrench + name = "Wrench" + id = "wrench" + build_type = AUTOLATHE + materials = list("$metal" = 150) + build_path = /obj/item/weapon/wrench + category = list("initial","Tools") + +/datum/design/welding_helmet + name = "Welding helmet" + id = "welding_helmet" + build_type = AUTOLATHE + materials = list("$metal" = 1750, "$glass" = 400) + build_path = /obj/item/clothing/head/welding + category = list("initial","Tools") + +/datum/design/console_screen + name = "Console screen" + id = "console_screen" + build_type = AUTOLATHE + materials = list("$glass" = 200) + build_path = /obj/item/weapon/stock_parts/console_screen + category = list("initial", "Electronics") + +/datum/design/airlock_board + name = "Airlock electronics" + id = "airlock_board" + build_type = AUTOLATHE + materials = list("$metal" = 50, "$glass" = 50) + build_path = /obj/item/weapon/airlock_electronics + category = list("initial", "Electronics") + +/datum/design/airalarm_electronics + name = "Air alarm electronics" + id = "airalarm_electronics" + build_type = AUTOLATHE + materials = list("$metal" = 50, "$glass" = 50) + build_path = /obj/item/weapon/airalarm_electronics + category = list("initial", "Electronics") + +/datum/design/firealarm_electronics + name = "Fire alarm electronics" + id = "firealarm_electronics" + build_type = AUTOLATHE + materials = list("$metal" = 50, "$glass" = 50) + build_path = /obj/item/weapon/firealarm_electronics + category = list("initial", "Electronics") + +/datum/design/pipe_painter + name = "Pipe painter" + id = "pipe_painter" + build_type = AUTOLATHE + materials = list("$metal" = 5000, "$glass" = 2000) + build_path = /obj/item/device/pipe_painter + category = list("initial", "Misc") + +/datum/design/metal + name = "Metal" + id = "metal" + build_type = AUTOLATHE + materials = list("$metal" = MINERAL_MATERIAL_AMOUNT) + build_path = /obj/item/stack/sheet/metal + category = list("initial","Construction") + +/datum/design/glass + name = "Glass" + id = "glass" + build_type = AUTOLATHE + materials = list("$glass" = MINERAL_MATERIAL_AMOUNT) + build_path = /obj/item/stack/sheet/glass + category = list("initial","Construction") + +/datum/design/rglass + name = "Reinforced glass" + id = "rglass" + build_type = AUTOLATHE + materials = list("$metal" = 1000, "$glass" = MINERAL_MATERIAL_AMOUNT) + build_path = /obj/item/stack/sheet/rglass + category = list("initial","Construction") + +/datum/design/rods + name = "Metal rod" + id = "rods" + build_type = AUTOLATHE + materials = list("$metal" = 1000) + build_path = /obj/item/stack/rods + category = list("initial","Construction") + +/datum/design/rcd_ammo + name = "Compressed matter cardridge" + id = "rcd_ammo" + build_type = AUTOLATHE + materials = list("$metal" = 16000, "$glass"=8000) + build_path = /obj/item/weapon/rcd_ammo + category = list("initial","Construction") + +/datum/design/kitchen_knife + name = "Kitchen knife" + id = "kitchen_knife" + build_type = AUTOLATHE + materials = list("$metal" = 12000) + build_path = /obj/item/weapon/kitchenknife + category = list("initial","Misc") + +/datum/design/scalpel + name = "Scalpel" + id = "scalpel" + build_type = AUTOLATHE + materials = list("$metal" = 4000, "$glass" = 1000) + build_path = /obj/item/weapon/scalpel + category = list("initial", "Medical") + +/datum/design/circular_saw + name = "Circular saw" + id = "circular_saw" + build_type = AUTOLATHE + materials = list("$metal" = 10000, "$glass" = 6000) + build_path = /obj/item/weapon/circular_saw + category = list("initial", "Medical") + +/datum/design/surgicaldrill + name = "Surgical drill" + id = "surgicaldrill" + build_type = AUTOLATHE + materials = list("$metal" = 10000, "$glass" = 6000) + build_path = /obj/item/weapon/surgicaldrill + category = list("initial", "Medical") + +/datum/design/retractor + name = "Retractor" + id = "retractor" + build_type = AUTOLATHE + materials = list("$metal" = 6000, "$glass" = 3000) + build_path = /obj/item/weapon/ + category = list("initial", "Medical") + +/datum/design/cautery + name = "Cautery" + id = "cautery" + build_type = AUTOLATHE + materials = list("$metal" = 2500, "$glass" = 750) + build_path = /obj/item/weapon/cautery + category = list("initial", "Medical") + +/datum/design/hemostat + name = "Hemostat" + id = "hemostat" + build_type = AUTOLATHE + materials = list("$metal" = 5000, "$glass" = 2500) + build_path = /obj/item/weapon/hemostat + category = list("initial", "Medical") + +/datum/design/beaker + name = "Beaker" + id = "beaker" + build_type = AUTOLATHE + materials = list("$glass" = 500) + build_path = /obj/item/weapon/reagent_containers/glass/beaker + category = list("initial", "Medical") + +/datum/design/large_beaker + name = "Large beaker" + id = "large_beaker" + build_type = AUTOLATHE + materials = list("$glass" = 2500) + build_path = /obj/item/weapon/reagent_containers/glass/beaker/large + category = list("initial", "Medical") + +/datum/design/beanbag_slug + name = "Beanbag slug" + id = "beanbag_slug" + build_type = AUTOLATHE + materials = list("$metal" = 250) + build_path = /obj/item/ammo_casing/shotgun/beanbag + category = list("initial", "Security") + +/datum/design/c38 + name = "Speed loader (.38)" + id = "c38" + build_type = AUTOLATHE + materials = list("$metal" = 30000) + build_path = /obj/item/ammo_box/c38 + category = list("initial", "Security") + +/datum/design/recorder + name = "Universal recorder" + id = "recorder" + build_type = AUTOLATHE + materials = list("$metal" = 60, "$glass" = 30) + build_path = /obj/item/device/taperecorder/empty + category = list("initial", "Misc") + +/datum/design/tape + name = "Tape" + id = "tape" + build_type = AUTOLATHE + materials = list("$metal" = 20, "$glass" = 5) + build_path = /obj/item/device/tape + category = list("initial", "Misc") + +/datum/design/igniter + name = "Igniter" + id = "igniter" + build_type = AUTOLATHE + materials = list("$metal" = 500, "$glass" = 50) + build_path = /obj/item/device/assembly/igniter + category = list("initial", "Misc") + +/datum/design/signaler + name = "Remote signaling device" + id = "signaler" + build_type = AUTOLATHE + materials = list("$metal" = 400, "$glass" = 120) + build_path = /obj/item/device/assembly/signaler + category = list("initial", "T-Comm") + +/datum/design/radio_headset + name = "Radio headset" + id = "radio_headset" + build_type = AUTOLATHE + materials = list("$metal" = 75) + build_path = /obj/item/device/radio/headset + category = list("initial", "T-Comm") + +/datum/design/bounced_radio + name = "Station bounced radio" + id = "bounced_radio" + build_type = AUTOLATHE + materials = list("$metal" = 75, "$glass" = 25) + build_path = /obj/item/device/radio/off + category = list("initial", "T-Comm") + +/datum/design/infrared_emitter + name = "Infrared emitter" + id = "infrared_emitter" + build_type = AUTOLATHE + materials = list("$metal" = 1000, "$glass" = 500) + build_path = /obj/item/device/assembly/infra + category = list("initial", "Misc") + +/datum/design/timer + name = "Timer" + id = "timer" + build_type = AUTOLATHE + materials = list("$metal" = 500, "$glass" = 50) + build_path = /obj/item/device/assembly/timer + category = list("initial", "Misc") + +/datum/design/voice_analyser + name = "Voice analyser" + id = "voice_analyser" + build_type = AUTOLATHE + materials = list("$metal" = 500, "$glass" = 50) + build_path = /obj/item/device/assembly/voice + category = list("initial", "Misc") + +/datum/design/light_tube + name = "Light tube" + id = "light_tube" + build_type = AUTOLATHE + materials = list("$metal" = 60, "$glass" = 100) + build_path = /obj/item/weapon/light/tube + category = list("initial", "Construction") + +/datum/design/light_bulb + name = "Light bulb" + id = "light_bulb" + build_type = AUTOLATHE + materials = list("$metal" = 60, "$glass" = 100) + build_path = /obj/item/weapon/light/bulb + category = list("initial", "Construction") + +/datum/design/camera_assembly + name = "Camera assembly" + id = "camera_assembly" + build_type = AUTOLATHE + materials = list("$metal" = 400, "$glass" = 250) + build_path = /obj/item/weapon/camera_assembly + category = list("initial", "Construction") + +/datum/design/newscaster_frame + name = "Newscaster frame" + id = "newscaster_frame" + build_type = AUTOLATHE + materials = list("$metal" = 14000, "$glass" = 8000) + build_path = /obj/item/newscaster_frame + category = list("initial", "Construction") + +/datum/design/syringe + name = "Syringe" + id = "syringe" + build_type = AUTOLATHE + materials = list("$metal" = 10, "$glass" = 20) + build_path = /obj/item/weapon/reagent_containers/syringe + category = list("initial", "Medical") + +/datum/design/prox_sensor + name = "Proximity sensor" + id = "prox_sensor" + build_type = AUTOLATHE + materials = list("$metal" = 800, "$glass" = 200) + build_path = /obj/item/device/assembly/prox_sensor + category = list("initial", "Misc") + +//hacked autolathe recipes +/datum/design/flamethrower + name = "Flamethrower" + id = "flamethrower" + build_type = AUTOLATHE + materials = list("$metal" = 500) + build_path = /obj/item/weapon/flamethrower/full + category = list("hacked", "Weapons and ammo") + +/datum/design/rcd + name = "Rapid construction device (RCD)" + id = "rcd" + build_type = AUTOLATHE + materials = list("$metal" = 30000) + build_path = /obj/item/weapon/rcd + category = list("hacked", "Construction") + +/datum/design/rpd + name = "Rapid pipe dispenser (RPD)" + id = "rpd" + build_type = AUTOLATHE + materials = list("$metal" = 75000, "$glass" = 37500) + build_path = /obj/item/weapon/pipe_dispenser + category = list("hacked", "Construction") + +/datum/design/electropack + name = "Electropack" + id = "electropack" + build_type = AUTOLATHE + materials = list("$metal" = 10000, "$glass" = 2500) + build_path = /obj/item/device/electropack + category = list("hacked", "Tools") + +/datum/design/large_welding_tool + name = "Industrial welding tool" + id = "large_welding_tool" + build_type = AUTOLATHE + materials = list("$metal" = 70, "$glass" = 60) + build_path = /obj/item/weapon/weldingtool/largetank + category = list("hacked", "Tools") + +/datum/design/handcuffs + name = "Handcuffs" + id = "handcuffs" + build_type = AUTOLATHE + materials = list("$metal" = 500) + build_path = /obj/item/weapon/restraints/handcuffs + category = list("hacked", "Security") + +/datum/design/shotgun_slug + name = "Shotgun slug" + id = "shotgun_slug" + build_type = AUTOLATHE + materials = list("$metal" = 4000) + build_path = /obj/item/ammo_casing/shotgun + category = list("hacked", "Security") + +/datum/design/buckshot_shell + name = "Buckshot shell" + id = "buckshot_shell" + build_type = AUTOLATHE + materials = list("$metal" = 4000) + build_path = /obj/item/ammo_casing/shotgun/buckshot + category = list("hacked", "Security") + +/datum/design/shotgun_dart + name = "Shotgun dart" + id = "shotgun_dart" + build_type = AUTOLATHE + materials = list("$metal" = 4000) + build_path = /obj/item/ammo_casing/shotgun/dart + category = list("hacked", "Security") + +/datum/design/incendiary_slug + name = "Incendiary slug" + id = "incendiary_slug" + build_type = AUTOLATHE + materials = list("$metal" = 4000) + build_path = /obj/item/ammo_casing/shotgun/incendiary + category = list("hacked", "Security") + +/datum/design/a357 + name = "Ammo box (.357)" + id = "a357" + build_type = AUTOLATHE + materials = list("$metal" = 30000) + build_path = /obj/item/ammo_box/a357 + category = list("hacked", "Security") + +/datum/design/c10mm + name = "Ammo box (10mm)" + id = "c10mm" + build_type = AUTOLATHE + materials = list("$metal" = 30000) + build_path = /obj/item/ammo_box/c10mm + category = list("hacked", "Security") + +/datum/design/c45 + name = "Ammo box (.45)" + id = "c45" + build_type = AUTOLATHE + materials = list("$metal" = 30000) + build_path = /obj/item/ammo_box/c45 + category = list("hacked", "Security") + +/datum/design/c9mm + name = "Ammo box (9mm)" + id = "c9mm" + build_type = AUTOLATHE + materials = list("$metal" = 30000) + build_path = /obj/item/ammo_box/c9mm + category = list("hacked", "Security") diff --git a/code/modules/research/designs/comp_board_designs.dm b/code/modules/research/designs/comp_board_designs.dm index 599e9700966..297a1eaa353 100644 --- a/code/modules/research/designs/comp_board_designs.dm +++ b/code/modules/research/designs/comp_board_designs.dm @@ -1,6 +1,6 @@ ///////////////////Computer Boards/////////////////////////////////// -datum/design/seccamera +/datum/design/seccamera name = "Computer Design (Security)" desc = "Allows for the construction of circuit boards used to build security camera computers." id = "seccamera" @@ -8,8 +8,9 @@ datum/design/seccamera build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/security + category = list("Computer Boards") -datum/design/aicore +/datum/design/aicore name = "AI Design (AI Core)" desc = "Allows for the construction of circuit boards used to build new AI cores." id = "aicore" @@ -17,8 +18,9 @@ datum/design/aicore build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/aicore + category = list("Computer Boards") -datum/design/aiupload +/datum/design/aiupload name = "Computer Design (AI Upload)" desc = "Allows for the construction of circuit boards used to build an AI Upload Console." id = "aiupload" @@ -26,8 +28,9 @@ datum/design/aiupload build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/aiupload + category = list("Computer Boards") -datum/design/borgupload +/datum/design/borgupload name = "Computer Design (Cyborg Upload)" desc = "Allows for the construction of circuit boards used to build a Cyborg Upload Console." id = "borgupload" @@ -35,8 +38,9 @@ datum/design/borgupload build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/borgupload + category = list("Computer Boards") -datum/design/med_data +/datum/design/med_data name = "Computer Design (Medical Records)" desc = "Allows for the construction of circuit boards used to build a medical records console." id = "med_data" @@ -44,8 +48,9 @@ datum/design/med_data build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/med_data + category = list("Computer Boards") -datum/design/operating +/datum/design/operating name = "Computer Design (Operating Computer)" desc = "Allows for the construction of circuit boards used to build an operating computer console." id = "operating" @@ -53,8 +58,9 @@ datum/design/operating build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/operating + category = list("Computer Boards") -datum/design/pandemic +/datum/design/pandemic name = "Computer Design (PanD.E.M.I.C. 2200)" desc = "Allows for the construction of circuit boards used to build a PanD.E.M.I.C. 2200 console." id = "pandemic" @@ -62,8 +68,9 @@ datum/design/pandemic build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/pandemic + category = list("Computer Boards") -datum/design/scan_console +/datum/design/scan_console name = "Computer Design (DNA Machine)" desc = "Allows for the construction of circuit boards used to build a new DNA scanning console." id = "scan_console" @@ -71,8 +78,9 @@ datum/design/scan_console build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/scan_consolenew + category = list("Computer Boards") -datum/design/comconsole +/datum/design/comconsole name = "Computer Design (Communications)" desc = "Allows for the construction of circuit boards used to build a communications console." id = "comconsole" @@ -80,8 +88,9 @@ datum/design/comconsole build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/communications + category = list("Computer Boards") -datum/design/idcardconsole +/datum/design/idcardconsole name = "Computer Design (ID Console)" desc = "Allows for the construction of circuit boards used to build an ID computer." id = "idcardconsole" @@ -89,8 +98,9 @@ datum/design/idcardconsole build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/card + category = list("Computer Boards") -datum/design/crewconsole +/datum/design/crewconsole name = "Computer Design (Crew monitoring computer)" desc = "Allows for the construction of circuit boards used to build a Crew monitoring computer." id = "crewconsole" @@ -98,8 +108,9 @@ datum/design/crewconsole build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/crew + category = list("Computer Boards") -datum/design/teleconsole +/datum/design/teleconsole name = "Computer Design (Teleporter Console)" desc = "Allows for the construction of circuit boards used to build a teleporter control console." id = "teleconsole" @@ -107,8 +118,9 @@ datum/design/teleconsole build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/teleporter + category = list("Computer Boards") -datum/design/secdata +/datum/design/secdata name = "Computer Design (Security Records Console)" desc = "Allows for the construction of circuit boards used to build a security records console." id = "secdata" @@ -116,8 +128,9 @@ datum/design/secdata build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/secure_data + category = list("Computer Boards") -datum/design/atmosalerts +/datum/design/atmosalerts name = "Computer Design (Atmosphere Alert)" desc = "Allows for the construction of circuit boards used to build an atmosphere alert console." id = "atmosalerts" @@ -125,8 +138,9 @@ datum/design/atmosalerts build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/atmos_alert + category = list("Computer Boards") -datum/design/air_management +/datum/design/air_management name = "Computer Design (Atmospheric Monitor)" desc = "Allows for the construction of circuit boards used to build an Atmospheric Monitor." id = "air_management" @@ -134,8 +148,9 @@ datum/design/air_management build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/air_management + category = list("Computer Boards") -datum/design/robocontrol +/datum/design/robocontrol name = "Computer Design (Robotics Control Console)" desc = "Allows for the construction of circuit boards used to build a Robotics Control console." id = "robocontrol" @@ -143,8 +158,9 @@ datum/design/robocontrol build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/robotics + category = list("Computer Boards") -datum/design/clonecontrol +/datum/design/clonecontrol name = "Computer Design (Cloning Machine Console)" desc = "Allows for the construction of circuit boards used to build a new Cloning Machine console." id = "clonecontrol" @@ -152,8 +168,9 @@ datum/design/clonecontrol build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/cloning + category = list("Computer Boards") -datum/design/clonepod +/datum/design/clonepod name = "Machine Design (Clone Pod)" desc = "Allows for the construction of circuit boards used to build a Cloning Pod." id = "clonepod" @@ -161,8 +178,9 @@ datum/design/clonepod build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/clonepod + category = list("Computer Boards") -datum/design/clonescanner +/datum/design/clonescanner name = "Machine Design (Cloning Scanner)" desc = "Allows for the construction of circuit boards used to build a Cloning Scanner." id = "clonescanner" @@ -170,8 +188,9 @@ datum/design/clonescanner build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/clonescanner + category = list("Computer Boards") -datum/design/arcadebattle +/datum/design/arcadebattle name = "Computer Design (Battle Arcade Machine)" desc = "Allows for the construction of circuit boards used to build a new arcade machine." id = "arcademachine" @@ -179,8 +198,9 @@ datum/design/arcadebattle build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/arcade/battle + category = list("Computer Boards") -datum/design/orion_trail +/datum/design/orion_trail name = "Computer Design (Orion Trail Arcade Machine)" desc = "Allows for the construction of circuit boards used to build a new Orion Trail machine." id = "arcademachine" @@ -188,8 +208,9 @@ datum/design/orion_trail build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/arcade/orion_trail + category = list("Computer Boards") -datum/design/orion_trail +/datum/design/orion_trail name = "Computer Design (Slot Machine)" desc = "Allows for the construction of circuit boards used to build a new slot machine." id = "slotmachine" @@ -197,8 +218,9 @@ datum/design/orion_trail build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/slot_machine + category = list("Computer Boards") -datum/design/powermonitor +/datum/design/powermonitor name = "Computer Design (Power Monitor)" desc = "Allows for the construction of circuit boards used to build a new power monitor." id = "powermonitor" @@ -206,8 +228,9 @@ datum/design/powermonitor build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/powermonitor + category = list("Computer Boards") -datum/design/solarcontrol +/datum/design/solarcontrol name = "Computer Design (Solar Control)" desc = "Allows for the construction of circuit boards used to build a solar control console." id = "solarcontrol" @@ -215,8 +238,9 @@ datum/design/solarcontrol build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/solar_control + category = list("Computer Boards") -datum/design/prisonmanage +/datum/design/prisonmanage name = "Computer Design (Prisoner Management Console)" desc = "Allows for the construction of circuit boards used to build a prisoner management console." id = "prisonmanage" @@ -224,8 +248,9 @@ datum/design/prisonmanage build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/prisoner + category = list("Computer Boards") -datum/design/mechacontrol +/datum/design/mechacontrol name = "Computer Design (Exosuit Control Console)" desc = "Allows for the construction of circuit boards used to build an exosuit control console." id = "mechacontrol" @@ -233,8 +258,9 @@ datum/design/mechacontrol build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha_control + category = list("Computer Boards") -datum/design/mechapower +/datum/design/mechapower name = "Computer Design (Mech Bay Power Control Console)" desc = "Allows for the construction of circuit boards used to build a mech bay power control console." id = "mechapower" @@ -242,8 +268,9 @@ datum/design/mechapower build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mech_bay_power_console + category = list("Computer Boards") -datum/design/rdconsole +/datum/design/rdconsole name = "Computer Design (R&D Console)" desc = "Allows for the construction of circuit boards used to build a new R&D console." id = "rdconsole" @@ -251,8 +278,9 @@ datum/design/rdconsole build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/rdconsole + category = list("Computer Boards") -datum/design/ordercomp +/datum/design/ordercomp name = "Computer Design (Supply ordering console)" desc = "Allows for the construction of circuit boards used to build a Supply ordering console." id = "ordercomp" @@ -260,8 +288,9 @@ datum/design/ordercomp build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/ordercomp + category = list("Computer Boards") -datum/design/supplycomp +/datum/design/supplycomp name = "Computer Design (Supply shuttle console)" desc = "Allows for the construction of circuit boards used to build a Supply shuttle console." id = "supplycomp" @@ -269,8 +298,9 @@ datum/design/supplycomp build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/supplycomp + category = list("Computer Boards") -datum/design/mining +/datum/design/mining name = "Computer Design (Outpost Status Display)" desc = "Allows for the construction of circuit boards used to build an outpost status display console." id = "mining" @@ -278,8 +308,9 @@ datum/design/mining build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mining + category = list("Computer Boards") -datum/design/comm_monitor +/datum/design/comm_monitor name = "Computer Design (Telecommunications Monitoring Console)" desc = "Allows for the construction of circuit boards used to build a telecommunications monitor." id = "comm_monitor" @@ -287,8 +318,9 @@ datum/design/comm_monitor build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/comm_monitor + category = list("Computer Boards") -datum/design/comm_server +/datum/design/comm_server name = "Computer Design (Telecommunications Server Monitoring Console)" desc = "Allows for the construction of circuit boards used to build a telecommunication server browser and monitor." id = "comm_server" @@ -296,8 +328,9 @@ datum/design/comm_server build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/comm_server + category = list("Computer Boards") -datum/design/message_monitor +/datum/design/message_monitor name = "Computer Design (Messaging Monitor Console)" desc = "Allows for the construction of circuit boards used to build a messaging monitor console." id = "message_monitor" @@ -305,8 +338,9 @@ datum/design/message_monitor build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/message_monitor + category = list("Computer Boards") -datum/design/comm_traffic +/datum/design/comm_traffic name = "Computer Design (Telecommunications Traffic Control Console)" desc = "Allows for the construction of circuit boards used to build a telecommunications traffic control console." id = "comm_traffic" @@ -314,8 +348,9 @@ datum/design/comm_traffic build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/comm_traffic + category = list("Computer Boards") -datum/design/telesci_console +/datum/design/telesci_console name = "Computer Design (Telepad Control Console Board)" desc = "Allows for the construction of circuit boards used to build a telescience console." id = "telesci_console" @@ -323,12 +358,14 @@ datum/design/telesci_console build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/telesci_console + category = list("Computer Boards") -datum/design/aifixer +/datum/design/aifixer name = "Computer Design (AI Integrity Restorer)" desc = "Allows for the construction of circuit boards used to build an AI Integrity Restorer." id = "aifixer" req_tech = list("programming" = 3, "biotech" = 2) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/aifixer \ No newline at end of file + build_path = /obj/item/weapon/circuitboard/aifixer + category = list("Computer Boards") diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index bc0d01dd8fb..bcd39b203e3 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -2,7 +2,7 @@ //////////////MISC Boards/////////////// //////////////////////////////////////// -datum/design/smes +/datum/design/smes name = "Machine Design (SMES Board)" desc = "The circuit board for a SMES." id = "smes" @@ -10,8 +10,9 @@ datum/design/smes build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/smes + category = list ("Engineering Machinery") -datum/design/turbine_computer +/datum/design/turbine_computer name = "Computer Design (Power Turbine Console Board)" desc = "The circuit board for a power turbine console." id = "power_turbine_console" @@ -19,8 +20,9 @@ datum/design/turbine_computer build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/turbine_computer + category = list ("Engineering Machinery") -datum/design/power_compressor +/datum/design/power_compressor name = "Machine Design (Power Compressor Board)" desc = "The circuit board for a power compressor." id = "power_compressor" @@ -28,8 +30,9 @@ datum/design/power_compressor build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/power_compressor + category = list ("Engineering Machinery") -datum/design/power_turbine +/datum/design/power_turbine name = "Machine Design (Power Turbine Board)" desc = "The circuit board for a power turbine." id = "power_turbine" @@ -37,53 +40,9 @@ datum/design/power_turbine build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/power_turbine + category = list ("Engineering Machinery") -datum/design/teleport_station - name = "Machine Design (Teleportation Station Board)" - desc = "The circuit board for a teleportation station." - id = "tele_station" - req_tech = list("programming" = 4, "bluespace" = 4, "engineering" = 4) - build_type = IMPRINTER - materials = list("$glass" = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/teleporter_station - -datum/design/teleport_hub - name = "Machine Design (Teleportation Hub Board)" - desc = "The circuit board for a teleportation hub." - id = "tele_hub" - req_tech = list("programming" = 3, "bluespace" = 5, "materials" = 4, "engineering" = 5) - build_type = IMPRINTER - materials = list("$glass" = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/teleporter_hub - -datum/design/telepad - name = "Machine Design (Telepad Board)" - desc = "The circuit board for a telescience telepad." - id = "telepad" - req_tech = list("programming" = 4, "bluespace" = 4, "materials" = 3, "engineering" = 3) - build_type = IMPRINTER - materials = list("$glass" = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/telesci_pad - -datum/design/sleeper - name = "Machine Design (Sleeper Board)" - desc = "The circuit board for a sleeper." - id = "sleeper" - req_tech = list("programming" = 3, "biotech" = 2, "materials" = 3, "engineering" = 3) - build_type = IMPRINTER - materials = list("$glass" = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/sleeper - -datum/design/cryotube - name = "Machine Design (Cryotube Board)" - desc = "The circuit board for a cryotube." - id = "cryotube" - req_tech = list("programming" = 4, "biotech" = 3, "engineering" = 4) - build_type = IMPRINTER - materials = list("$glass" = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/cryo_tube - -datum/design/thermomachine +/datum/design/thermomachine name = "Machine Design (Freezer/Heater Board)" desc = "The circuit board for a freezer/heater." id = "thermomachine" @@ -91,35 +50,59 @@ datum/design/thermomachine build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/thermomachine + category = list ("Engineering Machinery") -datum/design/biogenerator - name = "Machine Design (Biogenerator Board)" - desc = "The circuit board for a biogenerator." - id = "biogenerator" - req_tech = list("programming" = 3, "biotech" = 2, "materials" = 3) +/datum/design/teleport_station + name = "Machine Design (Teleportation Station Board)" + desc = "The circuit board for a teleportation station." + id = "tele_station" + req_tech = list("programming" = 4, "bluespace" = 4, "engineering" = 4) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/biogenerator + build_path = /obj/item/weapon/circuitboard/teleporter_station + category = list ("Teleportation Machinery") -datum/design/hydroponics - name = "Machine Design (Hydroponics Tray Board)" - desc = "The circuit board for a hydroponics tray." - id = "hydro_tray" - req_tech = list("programming" = 1, "biotech" = 1) +/datum/design/teleport_hub + name = "Machine Design (Teleportation Hub Board)" + desc = "The circuit board for a teleportation hub." + id = "tele_hub" + req_tech = list("programming" = 3, "bluespace" = 5, "materials" = 4, "engineering" = 5) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/hydroponics + build_path = /obj/item/weapon/circuitboard/teleporter_hub + category = list ("Teleportation Machinery") -datum/design/microwave - name = "Machine Design (Microwave Board)" - desc = "The circuit board for a microwave." - id = "microwave" - req_tech = list("programming" = 1) +/datum/design/telepad + name = "Machine Design (Telepad Board)" + desc = "The circuit board for a telescience telepad." + id = "telepad" + req_tech = list("programming" = 4, "bluespace" = 4, "materials" = 3, "engineering" = 3) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/microwave + build_path = /obj/item/weapon/circuitboard/telesci_pad + category = list ("Teleportation Machinery") -datum/design/chem_dispenser +/datum/design/sleeper + name = "Machine Design (Sleeper Board)" + desc = "The circuit board for a sleeper." + id = "sleeper" + req_tech = list("programming" = 3, "biotech" = 2, "materials" = 3, "engineering" = 3) + build_type = IMPRINTER + materials = list("$glass" = 1000, "sacid" = 20) + build_path = /obj/item/weapon/circuitboard/sleeper + category = list ("Medical Machinery") + +/datum/design/cryotube + name = "Machine Design (Cryotube Board)" + desc = "The circuit board for a cryotube." + id = "cryotube" + req_tech = list("programming" = 4, "biotech" = 3, "engineering" = 4) + build_type = IMPRINTER + materials = list("$glass" = 1000, "sacid" = 20) + build_path = /obj/item/weapon/circuitboard/cryo_tube + category = list ("Medical Machinery") + +/datum/design/chem_dispenser name = "Machine Design (Portable Chem Dispenser Board)" desc = "The circuit board for a portable chem dispenser." id = "chem_dispenser" @@ -127,8 +110,29 @@ datum/design/chem_dispenser build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/chem_dispenser + category = list ("Medical Machinery") -datum/design/destructive_analyzer +/datum/design/biogenerator + name = "Machine Design (Biogenerator Board)" + desc = "The circuit board for a biogenerator." + id = "biogenerator" + req_tech = list("programming" = 3, "biotech" = 2, "materials" = 3) + build_type = IMPRINTER + materials = list("$glass" = 1000, "sacid" = 20) + build_path = /obj/item/weapon/circuitboard/biogenerator + category = list ("Hydroponics Machinery") + +/datum/design/hydroponics + name = "Machine Design (Hydroponics Tray Board)" + desc = "The circuit board for a hydroponics tray." + id = "hydro_tray" + req_tech = list("programming" = 1, "biotech" = 1) + build_type = IMPRINTER + materials = list("$glass" = 1000, "sacid" = 20) + build_path = /obj/item/weapon/circuitboard/hydroponics + category = list ("Hydroponics Machinery") + +/datum/design/destructive_analyzer name = "Machine Design (Destructive Analyzer Board)" desc = "The circuit board for a destructive analyzer." id = "destructive_analyzer" @@ -136,8 +140,9 @@ datum/design/destructive_analyzer build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/destructive_analyzer + category = list("Research Machinery") -datum/design/protolathe +/datum/design/protolathe name = "Machine Design (Protolathe Board)" desc = "The circuit board for a protolathe." id = "protolathe" @@ -145,8 +150,9 @@ datum/design/protolathe build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/protolathe + category = list("Research Machinery") -datum/design/circuit_imprinter +/datum/design/circuit_imprinter name = "Machine Design (Circuit Imprinter Board)" desc = "The circuit board for a circuit imprinter." id = "circuit_imprinter" @@ -154,17 +160,9 @@ datum/design/circuit_imprinter build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/circuit_imprinter + category = list("Research Machinery") -datum/design/autolathe - name = "Machine Design (Autolathe Board)" - desc = "The circuit board for an autolathe." - id = "autolathe" - req_tech = list("programming" = 2, "engineering" = 2) - build_type = IMPRINTER - materials = list("$glass" = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/autolathe - -datum/design/rdservercontrol +/datum/design/rdservercontrol name = "Computer Design (R&D Server Control Console Board)" desc = "The circuit board for an R&D Server Control Console." id = "rdservercontrol" @@ -172,8 +170,9 @@ datum/design/rdservercontrol build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/rdservercontrol + category = list("Research Machinery") -datum/design/rdserver +/datum/design/rdserver name = "Machine Design (R&D Server Board)" desc = "The circuit board for an R&D Server." id = "rdserver" @@ -181,8 +180,9 @@ datum/design/rdserver build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/rdserver + category = list("Research Machinery") -datum/design/mechfab +/datum/design/mechfab name = "Machine Design (Exosuit Fabricator Board)" desc = "The circuit board for an Exosuit Fabricator." id = "mechfab" @@ -190,8 +190,9 @@ datum/design/mechfab build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mechfab + category = list("Research Machinery") -datum/design/cyborgrecharger +/datum/design/cyborgrecharger name = "Machine Design (Cyborg Recharger Board)" desc = "The circuit board for a Cyborg Recharger." id = "cyborgrecharger" @@ -199,8 +200,9 @@ datum/design/cyborgrecharger build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/cyborgrecharger + category = list("Research Machinery") -datum/design/mech_recharger +/datum/design/mech_recharger name = "Machine Design (Mechbay Recharger Board)" desc = "The circuit board for a Mechbay Recharger." id = "mech_recharger" @@ -208,8 +210,29 @@ datum/design/mech_recharger build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mech_recharger + category = list("Research Machinery") -datum/design/vendor +/datum/design/microwave + name = "Machine Design (Microwave Board)" + desc = "The circuit board for a microwave." + id = "microwave" + req_tech = list("programming" = 1) + build_type = IMPRINTER + materials = list("$glass" = 1000, "sacid" = 20) + build_path = /obj/item/weapon/circuitboard/microwave + category = list ("Misc. Machinery") + +/datum/design/autolathe + name = "Machine Design (Autolathe Board)" + desc = "The circuit board for an autolathe." + id = "autolathe" + req_tech = list("programming" = 2, "engineering" = 2) + build_type = IMPRINTER + materials = list("$glass" = 1000, "sacid" = 20) + build_path = /obj/item/weapon/circuitboard/autolathe + category = list ("Misc. Machinery") + +/datum/design/vendor name = "Machine Design (Vendor Board)" desc = "The circuit board for a Vendor." id = "vendor" @@ -217,8 +240,9 @@ datum/design/vendor build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/vendor + category = list ("Misc. Machinery") -datum/design/ore_redemption +/datum/design/ore_redemption name = "Machine Design (Ore Redemption Board)" desc = "The circuit board for an Ore Redemption machine." id = "ore_redemption" @@ -226,13 +250,15 @@ datum/design/ore_redemption build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/ore_redemption + category = list ("Misc. Machinery") -datum/design/mining_equipment_vendor +/datum/design/mining_equipment_vendor name = "Machine Design (Mining Rewards Vender Board)" desc = "The circuit board for a Mining Rewards Vender." id = "mining_equipment_vendor" req_tech = list("programming" = 1, "engineering" = 2) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/mining_equipment_vendor \ No newline at end of file + build_path = /obj/item/weapon/circuitboard/mining_equipment_vendor + category = list ("Misc. Machinery") \ No newline at end of file diff --git a/code/modules/research/designs/mecha_designs.dm b/code/modules/research/designs/mecha_designs.dm index 08d65a3a975..479c91de938 100644 --- a/code/modules/research/designs/mecha_designs.dm +++ b/code/modules/research/designs/mecha_designs.dm @@ -10,6 +10,7 @@ datum/design/ripley_main build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/ripley/main + category = list("Exosuit Modules") datum/design/ripley_peri name = "Exosuit Module (APLU \"Ripley\" Peripherals Control module)" @@ -19,6 +20,7 @@ datum/design/ripley_peri build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/ripley/peripherals + category = list("Exosuit Modules") datum/design/odysseus_main name = "Exosuit Module (\"Odysseus\" Central Control module)" @@ -28,6 +30,7 @@ datum/design/odysseus_main build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/odysseus/main + category = list("Exosuit Modules") datum/design/odysseus_peri name = "Exosuit Module (\"Odysseus\" Peripherals Control module)" @@ -37,6 +40,7 @@ datum/design/odysseus_peri build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/odysseus/peripherals + category = list("Exosuit Modules") datum/design/gygax_main name = "Exosuit Module (\"Gygax\" Central Control module)" @@ -46,6 +50,7 @@ datum/design/gygax_main build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/gygax/main + category = list("Exosuit Modules") datum/design/gygax_peri name = "Exosuit Module (\"Gygax\" Peripherals Control module)" @@ -55,6 +60,7 @@ datum/design/gygax_peri build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/gygax/peripherals + category = list("Exosuit Modules") datum/design/gygax_targ name = "Exosuit Module (\"Gygax\" Weapons & Targeting Control module)" @@ -64,6 +70,7 @@ datum/design/gygax_targ build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/gygax/targeting + category = list("Exosuit Modules") datum/design/durand_main name = "Exosuit Module (\"Durand\" Central Control module)" @@ -73,6 +80,7 @@ datum/design/durand_main build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/durand/main + category = list("Exosuit Modules") datum/design/durand_peri name = "Exosuit Module (\"Durand\" Peripherals Control module)" @@ -82,6 +90,7 @@ datum/design/durand_peri build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/durand/peripherals + category = list("Exosuit Modules") datum/design/durand_targ name = "Exosuit Module (\"Durand\" Weapons & Targeting Control module)" @@ -91,6 +100,7 @@ datum/design/durand_targ build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/durand/targeting + category = list("Exosuit Modules") datum/design/honker_main name = "Exosuit Module (\"H.O.N.K\" Central Control module)" @@ -100,6 +110,7 @@ datum/design/honker_main build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/honker/main + category = list("Exosuit Modules") datum/design/honker_peri name = "Exosuit Module (\"H.O.N.K\" Peripherals Control module)" @@ -109,6 +120,7 @@ datum/design/honker_peri build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/honker/peripherals + category = list("Exosuit Modules") datum/design/honker_targ name = "Exosuit Module (\"H.O.N.K\" Weapons & Targeting Control module)" @@ -118,6 +130,7 @@ datum/design/honker_targ build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/honker/targeting + category = list("Exosuit Modules") datum/design/phazon_main name = "Exosuit Module (\"Phazon\" Central Control module)" @@ -127,6 +140,7 @@ datum/design/phazon_main build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/phazon/main + category = list("Exosuit Modules") datum/design/phazon_peri name = "Exosuit Module (\"Phazon\" Peripherals Control module)" @@ -136,6 +150,7 @@ datum/design/phazon_peri build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/phazon/peripherals + category = list("Exosuit Modules") datum/design/phazon_targ name = "Exosuit Module (\"Phazon\" Weapons & Targeting Control module)" @@ -145,6 +160,7 @@ datum/design/phazon_targ build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/phazon/targeting + category = list("Exosuit Modules") //////////////////////////////////////// /////////// Mecha Equpment ///////////// @@ -346,4 +362,4 @@ datum/design/mech_generator_nuclear build_path = /obj/item/mecha_parts/mecha_equipment/generator/nuclear materials = list("$metal"=10000,"$glass"=1000,"$silver"=500) construction_time = 100 - category = list("Exosuit Equipment") \ No newline at end of file + category = list("Exosuit Equipment") diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index 26f834ff7e2..158b666f29d 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -594,7 +594,10 @@ construction_time = 500 category = list("Exosuit Equipment") -//Cyborg Upgrade Modules +///////////////////////////////////////// +//////////////Borg Upgrades////////////// +///////////////////////////////////////// + /datum/design/borg_upgrade_reset name = "Cyborg Upgrade Module (Reset Module)" id = "borg_upgrade_reset" @@ -649,6 +652,17 @@ construction_time = 120 category = list("Cyborg Upgrade Modules") +/datum/design/borg_syndicate_module + name = "Borg Illegal Weapons Upgrade" + desc = "Allows for the construction of illegal upgrades for cyborgs" + id = "borg_syndicate_module" + build_type = MECHFAB + req_tech = list("combat" = 4, "syndicate" = 3) + build_path = /obj/item/borg/upgrade/syndicate + materials = list("$metal"=10000,"$glass"=15000,"$diamond" = 10000) + construction_time = 120 + category = list("Cyborg Upgrade Modules") + //Misc /datum/design/mecha_tracking name = "Exosuit Tracking Beacon" @@ -657,4 +671,15 @@ build_path =/obj/item/mecha_parts/mecha_tracking materials = list("$metal"=500) construction_time = 50 + category = list("Misc") + +/datum/design/drone_shell + name = "Drone Shell" + desc = "A shell of a maintenance drone, an expendable robot built to perform station repairs." + id = "drone_shell" + req_tech = list("programming" = 2, "biotech" = 4) + build_type = MECHFAB + materials = list("$metal" = 800, "$glass" = 350) + construction_time=150 + build_path = /obj/item/drone_shell category = list("Misc") \ No newline at end of file diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 6e5143a5e07..013841c43c9 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -11,6 +11,7 @@ datum/design/mass_spectrometer materials = list("$metal" = 30, "$glass" = 20) reliability = 76 build_path = /obj/item/device/mass_spectrometer + category = list("Medical Designs") datum/design/adv_mass_spectrometer name = "Advanced Mass-Spectrometer" @@ -21,6 +22,7 @@ datum/design/adv_mass_spectrometer materials = list("$metal" = 30, "$glass" = 20) reliability = 74 build_path = /obj/item/device/mass_spectrometer/adv + category = list("Medical Designs") datum/design/mmi name = "Man-Machine Interface" @@ -32,7 +34,7 @@ datum/design/mmi construction_time = 75 reliability = 76 build_path = /obj/item/device/mmi - category = list("Misc") + category = list("Misc","Medical Designs") datum/design/mmi_radio name = "Radio-enabled Man-Machine Interface" @@ -44,7 +46,7 @@ datum/design/mmi_radio construction_time = 75 reliability = 74 build_path = /obj/item/device/mmi/radio_enabled - category = list("Misc") + category = list("Misc","Medical Designs") datum/design/synthetic_flash name = "Flash" @@ -67,7 +69,7 @@ datum/design/bluespacebeaker materials = list("$metal" = 3000, "$plasma" = 3000, "$diamond" = 500) reliability = 76 build_path = /obj/item/weapon/reagent_containers/glass/beaker/bluespace - category = list("Misc") + category = list("Misc","Medical Designs") datum/design/noreactbeaker name = "Cryostasis Beaker" @@ -78,7 +80,7 @@ datum/design/noreactbeaker materials = list("$metal" = 3000) reliability = 76 build_path = /obj/item/weapon/reagent_containers/glass/beaker/noreact - category = list("Misc") + category = list("Medical Designs") datum/design/bluespacebodybag name = "Bluespace body bag" @@ -89,7 +91,7 @@ datum/design/bluespacebodybag materials = list("$metal" = 3000, "$plasma" = 2000, "$diamond" = 500) reliability = 76 build_path = /obj/item/bodybag/bluespace - category = list("Misc") + category = list("Medical Designs") datum/design/defib name = "Defibrillator" @@ -100,4 +102,4 @@ datum/design/defib materials = list("$metal" = 5000, "$glass" = 2000, "$silver" = 1000) reliability = 76 build_path = /obj/item/weapon/defibrillator - category = list("Misc") \ No newline at end of file + category = list("Medical Designs") diff --git a/code/modules/research/designs/power_designs.dm b/code/modules/research/designs/power_designs.dm index 7e83426acfc..807541815a7 100644 --- a/code/modules/research/designs/power_designs.dm +++ b/code/modules/research/designs/power_designs.dm @@ -9,9 +9,9 @@ datum/design/basic_cell req_tech = list("powerstorage" = 1) build_type = PROTOLATHE | AUTOLATHE |MECHFAB materials = list("$metal" = 700, "$glass" = 50) - build_path = /obj/item/weapon/stock_parts/cell construction_time=100 - category = list("Misc") + build_path = /obj/item/weapon/stock_parts/cell + category = list("Misc","Power Designs") datum/design/high_cell name = "High-Capacity Power Cell" @@ -22,7 +22,7 @@ datum/design/high_cell materials = list("$metal" = 700, "$glass" = 60) construction_time=100 build_path = /obj/item/weapon/stock_parts/cell/high - category = list("Misc") + category = list("Misc","Power Designs") datum/design/super_cell name = "Super-Capacity Power Cell" @@ -34,7 +34,7 @@ datum/design/super_cell materials = list("$metal" = 700, "$glass" = 70) construction_time=100 build_path = /obj/item/weapon/stock_parts/cell/super - category = list("Misc") + category = list("Misc","Power Designs") datum/design/hyper_cell name = "Hyper-Capacity Power Cell" @@ -46,7 +46,7 @@ datum/design/hyper_cell materials = list("$metal" = 400, "$gold" = 150, "$silver" = 150, "$glass" = 80) construction_time=100 build_path = /obj/item/weapon/stock_parts/cell/hyper - category = list("Misc") + category = list("Misc","Power Designs") datum/design/light_replacer name = "Light Replacer" @@ -56,6 +56,7 @@ datum/design/light_replacer build_type = PROTOLATHE materials = list("$metal" = 1500, "$silver" = 150, "$glass" = 3000) build_path = /obj/item/device/lightreplacer + category = list("Power Designs") datum/design/pacman name = "Machine Design (PACMAN-type Generator Board)" @@ -66,6 +67,7 @@ datum/design/pacman reliability = 79 materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/pacman + category = list("Engineering Machinery") datum/design/superpacman name = "Machine Design (SUPERPACMAN-type Generator Board)" @@ -76,6 +78,7 @@ datum/design/superpacman reliability = 76 materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/pacman/super + category = list("Engineering Machinery") datum/design/mrspacman name = "Machine Design (MRSPACMAN-type Generator Board)" @@ -85,4 +88,5 @@ datum/design/mrspacman build_type = IMPRINTER reliability = 74 materials = list("$glass" = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/pacman/mrs \ No newline at end of file + build_path = /obj/item/weapon/circuitboard/pacman/mrs + category = list("Engineering Machinery") diff --git a/code/modules/research/designs/stock_parts_designs.dm b/code/modules/research/designs/stock_parts_designs.dm index 1268e86079a..638ef2d97ab 100644 --- a/code/modules/research/designs/stock_parts_designs.dm +++ b/code/modules/research/designs/stock_parts_designs.dm @@ -2,7 +2,7 @@ /////////////Stock Parts//////////////// //////////////////////////////////////// -datum/design/RPED +/datum/design/RPED name = "Rapid Part Exchange Device" desc = "Special mechanical module made to store, sort, and apply standard machine parts." id = "rped" @@ -11,8 +11,10 @@ datum/design/RPED build_type = PROTOLATHE materials = list("$metal" = 15000, "$glass" = 5000) //hardcore build_path = /obj/item/weapon/storage/part_replacer + category = list("Stock Parts") -datum/design/basic_capacitor +//Capacitors +/datum/design/basic_capacitor name = "Basic Capacitor" desc = "A stock part used in the construction of various devices." id = "basic_capacitor" @@ -20,44 +22,9 @@ datum/design/basic_capacitor build_type = PROTOLATHE | AUTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = /obj/item/weapon/stock_parts/capacitor + category = list("Stock Parts") -datum/design/basic_scanning - name = "Basic Scanning Module" - desc = "A stock part used in the construction of various devices." - id = "basic_scanning" - req_tech = list("magnets" = 1) - build_type = PROTOLATHE | AUTOLATHE - materials = list("$metal" = 50, "$glass" = 20) - build_path = /obj/item/weapon/stock_parts/scanning_module - -datum/design/micro_mani - name = "Micro Manipulator" - desc = "A stock part used in the construction of various devices." - id = "micro_mani" - req_tech = list("materials" = 1, "programming" = 1) - build_type = PROTOLATHE | AUTOLATHE - materials = list("$metal" = 30) - build_path = /obj/item/weapon/stock_parts/manipulator - -datum/design/basic_micro_laser - name = "Basic Micro-Laser" - desc = "A stock part used in the construction of various devices." - id = "basic_micro_laser" - req_tech = list("magnets" = 1) - build_type = PROTOLATHE | AUTOLATHE - materials = list("$metal" = 10, "$glass" = 20) - build_path = /obj/item/weapon/stock_parts/micro_laser - -datum/design/basic_matter_bin - name = "Basic Matter Bin" - desc = "A stock part used in the construction of various devices." - id = "basic_matter_bin" - req_tech = list("materials" = 1) - build_type = PROTOLATHE | AUTOLATHE - materials = list("$metal" = 80) - build_path = /obj/item/weapon/stock_parts/matter_bin - -datum/design/adv_capacitor +/datum/design/adv_capacitor name = "Advanced Capacitor" desc = "A stock part used in the construction of various devices." id = "adv_capacitor" @@ -65,8 +32,31 @@ datum/design/adv_capacitor build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = /obj/item/weapon/stock_parts/capacitor/adv + category = list("Stock Parts") -datum/design/adv_scanning +/datum/design/super_capacitor + name = "Super Capacitor" + desc = "A stock part used in the construction of various devices." + id = "super_capacitor" + req_tech = list("powerstorage" = 5, "materials" = 4) + build_type = PROTOLATHE + reliability = 71 + materials = list("$metal" = 50, "$glass" = 50, "$gold" = 20) + build_path = /obj/item/weapon/stock_parts/capacitor/super + category = list("Stock Parts") + +//Scanning modules +/datum/design/basic_scanning + name = "Basic Scanning Module" + desc = "A stock part used in the construction of various devices." + id = "basic_scanning" + req_tech = list("magnets" = 1) + build_type = PROTOLATHE | AUTOLATHE + materials = list("$metal" = 50, "$glass" = 20) + build_path = /obj/item/weapon/stock_parts/scanning_module + category = list("Stock Parts") + +/datum/design/adv_scanning name = "Advanced Scanning Module" desc = "A stock part used in the construction of various devices." id = "adv_scanning" @@ -74,8 +64,31 @@ datum/design/adv_scanning build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 20) build_path = /obj/item/weapon/stock_parts/scanning_module/adv + category = list("Stock Parts") -datum/design/nano_mani +/datum/design/phasic_scanning + name = "Phasic Scanning Module" + desc = "A stock part used in the construction of various devices." + id = "phasic_scanning" + req_tech = list("magnets" = 5, "materials" = 3) + build_type = PROTOLATHE + materials = list("$metal" = 50, "$glass" = 20, "$silver" = 10) + reliability = 72 + build_path = /obj/item/weapon/stock_parts/scanning_module/phasic + category = list("Stock Parts") + +//Maipulators +/datum/design/micro_mani + name = "Micro Manipulator" + desc = "A stock part used in the construction of various devices." + id = "micro_mani" + req_tech = list("materials" = 1, "programming" = 1) + build_type = PROTOLATHE | AUTOLATHE + materials = list("$metal" = 30) + build_path = /obj/item/weapon/stock_parts/manipulator + category = list("Stock Parts") + +/datum/design/nano_mani name = "Nano Manipulator" desc = "A stock part used in the construction of various devices." id = "nano_mani" @@ -83,6 +96,29 @@ datum/design/nano_mani build_type = PROTOLATHE materials = list("$metal" = 30) build_path = /obj/item/weapon/stock_parts/manipulator/nano + category = list("Stock Parts") + +/datum/design/pico_mani + name = "Pico Manipulator" + desc = "A stock part used in the construction of various devices." + id = "pico_mani" + req_tech = list("materials" = 5, "programming" = 2) + build_type = PROTOLATHE + materials = list("$metal" = 30) + reliability = 73 + build_path = /obj/item/weapon/stock_parts/manipulator/pico + category = list("Stock Parts") + +//Micro-lasers +/datum/design/basic_micro_laser + name = "Basic Micro-Laser" + desc = "A stock part used in the construction of various devices." + id = "basic_micro_laser" + req_tech = list("magnets" = 1) + build_type = PROTOLATHE | AUTOLATHE + materials = list("$metal" = 10, "$glass" = 20) + build_path = /obj/item/weapon/stock_parts/micro_laser + category = list("Stock Parts") datum/design/high_micro_laser name = "High-Power Micro-Laser" @@ -92,45 +128,7 @@ datum/design/high_micro_laser build_type = PROTOLATHE materials = list("$metal" = 10, "$glass" = 20) build_path = /obj/item/weapon/stock_parts/micro_laser/high - -datum/design/adv_matter_bin - name = "Advanced Matter Bin" - desc = "A stock part used in the construction of various devices." - id = "adv_matter_bin" - req_tech = list("materials" = 3) - build_type = PROTOLATHE - materials = list("$metal" = 80) - build_path = /obj/item/weapon/stock_parts/matter_bin/adv - -datum/design/super_capacitor - name = "Super Capacitor" - desc = "A stock part used in the construction of various devices." - id = "super_capacitor" - req_tech = list("powerstorage" = 5, "materials" = 4) - build_type = PROTOLATHE - reliability = 71 - materials = list("$metal" = 50, "$glass" = 50, "$gold" = 20) - build_path = /obj/item/weapon/stock_parts/capacitor/super - -datum/design/phasic_scanning - name = "Phasic Scanning Module" - desc = "A stock part used in the construction of various devices." - id = "phasic_scanning" - req_tech = list("magnets" = 5, "materials" = 3) - build_type = PROTOLATHE - materials = list("$metal" = 50, "$glass" = 20, "$silver" = 10) - reliability = 72 - build_path = /obj/item/weapon/stock_parts/scanning_module/phasic - -datum/design/pico_mani - name = "Pico Manipulator" - desc = "A stock part used in the construction of various devices." - id = "pico_mani" - req_tech = list("materials" = 5, "programming" = 2) - build_type = PROTOLATHE - materials = list("$metal" = 30) - reliability = 73 - build_path = /obj/item/weapon/stock_parts/manipulator/pico + category = list("Stock Parts") datum/design/ultra_micro_laser name = "Ultra-High-Power Micro-Laser" @@ -141,6 +139,27 @@ datum/design/ultra_micro_laser materials = list("$metal" = 10, "$glass" = 20, "$uranium" = 10) reliability = 70 build_path = /obj/item/weapon/stock_parts/micro_laser/ultra + category = list("Stock Parts") + +datum/design/basic_matter_bin + name = "Basic Matter Bin" + desc = "A stock part used in the construction of various devices." + id = "basic_matter_bin" + req_tech = list("materials" = 1) + build_type = PROTOLATHE | AUTOLATHE + materials = list("$metal" = 80) + build_path = /obj/item/weapon/stock_parts/matter_bin + category = list("Stock Parts") + +datum/design/adv_matter_bin + name = "Advanced Matter Bin" + desc = "A stock part used in the construction of various devices." + id = "adv_matter_bin" + req_tech = list("materials" = 3) + build_type = PROTOLATHE + materials = list("$metal" = 80) + build_path = /obj/item/weapon/stock_parts/matter_bin/adv + category = list("Stock Parts") datum/design/super_matter_bin name = "Super Matter Bin" @@ -151,7 +170,9 @@ datum/design/super_matter_bin materials = list("$metal" = 80) reliability = 75 build_path = /obj/item/weapon/stock_parts/matter_bin/super + category = list("Stock Parts") +//T-Comms devices datum/design/subspace_ansible name = "Subspace Ansible" desc = "A compact module capable of sensing extradimensional activity." @@ -160,6 +181,7 @@ datum/design/subspace_ansible build_type = PROTOLATHE materials = list("$metal" = 80, "$silver" = 20) build_path = /obj/item/weapon/stock_parts/subspace/ansible + category = list("Stock Parts") datum/design/hyperwave_filter name = "Hyperwave Filter" @@ -169,6 +191,7 @@ datum/design/hyperwave_filter build_type = PROTOLATHE materials = list("$metal" = 40, "$silver" = 10) build_path = /obj/item/weapon/stock_parts/subspace/filter + category = list("Stock Parts") datum/design/subspace_amplifier name = "Subspace Amplifier" @@ -178,6 +201,7 @@ datum/design/subspace_amplifier build_type = PROTOLATHE materials = list("$metal" = 10, "$gold" = 30, "$uranium" = 15) build_path = /obj/item/weapon/stock_parts/subspace/amplifier + category = list("Stock Parts") datum/design/subspace_treatment name = "Subspace Treatment Disk" @@ -187,6 +211,7 @@ datum/design/subspace_treatment build_type = PROTOLATHE materials = list("$metal" = 10, "$silver" = 20) build_path = /obj/item/weapon/stock_parts/subspace/treatment + category = list("Stock Parts") datum/design/subspace_analyzer name = "Subspace Analyzer" @@ -196,6 +221,7 @@ datum/design/subspace_analyzer build_type = PROTOLATHE materials = list("$metal" = 10, "$gold" = 15) build_path = /obj/item/weapon/stock_parts/subspace/analyzer + category = list("Stock Parts") datum/design/subspace_crystal name = "Ansible Crystal" @@ -205,6 +231,7 @@ datum/design/subspace_crystal build_type = PROTOLATHE materials = list("$glass" = 1000, "$silver" = 20, "$gold" = 20) build_path = /obj/item/weapon/stock_parts/subspace/crystal + category = list("Stock Parts") datum/design/subspace_transmitter name = "Subspace Transmitter" @@ -213,4 +240,5 @@ datum/design/subspace_transmitter req_tech = list("magnets" = 3, "materials" = 3, "bluespace" = 2) build_type = PROTOLATHE materials = list("$glass" = 100, "$silver" = 10, "$uranium" = 15) - build_path = /obj/item/weapon/stock_parts/subspace/transmitter \ No newline at end of file + build_path = /obj/item/weapon/stock_parts/subspace/transmitter + category = list("Stock Parts") \ No newline at end of file diff --git a/code/modules/research/designs/telecomms_designs.dm b/code/modules/research/designs/telecomms_designs.dm index e4de22f4fdd..d43f9c6cdde 100644 --- a/code/modules/research/designs/telecomms_designs.dm +++ b/code/modules/research/designs/telecomms_designs.dm @@ -2,7 +2,7 @@ /////Subspace Telecomms//////////// /////////////////////////////////// -datum/design/subspace_receiver +/datum/design/subspace_receiver name = "Machine Design (Subspace Receiver)" desc = "Allows for the construction of Subspace Receiver equipment." id = "s-receiver" @@ -10,8 +10,9 @@ datum/design/subspace_receiver build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/telecomms/receiver + category = list("Subspace Telecomms") -datum/design/telecomms_bus +/datum/design/telecomms_bus name = "Machine Design (Bus Mainframe)" desc = "Allows for the construction of Telecommunications Bus Mainframes." id = "s-bus" @@ -19,8 +20,9 @@ datum/design/telecomms_bus build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/telecomms/bus + category = list("Subspace Telecomms") -datum/design/telecomms_hub +/datum/design/telecomms_hub name = "Machine Design (Hub Mainframe)" desc = "Allows for the construction of Telecommunications Hub Mainframes." id = "s-hub" @@ -28,8 +30,9 @@ datum/design/telecomms_hub build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/telecomms/hub + category = list("Subspace Telecomms") -datum/design/telecomms_relay +/datum/design/telecomms_relay name = "Machine Design (Relay Mainframe)" desc = "Allows for the construction of Telecommunications Relay Mainframes." id = "s-relay" @@ -37,8 +40,9 @@ datum/design/telecomms_relay build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/telecomms/relay + category = list("Subspace Telecomms") -datum/design/telecomms_processor +/datum/design/telecomms_processor name = "Machine Design (Processor Unit)" desc = "Allows for the construction of Telecommunications Processor equipment." id = "s-processor" @@ -46,8 +50,9 @@ datum/design/telecomms_processor build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/telecomms/processor + category = list("Subspace Telecomms") -datum/design/telecomms_server +/datum/design/telecomms_server name = "Machine Design (Server Mainframe)" desc = "Allows for the construction of Telecommunications Servers." id = "s-server" @@ -55,12 +60,14 @@ datum/design/telecomms_server build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/telecomms/server + category = list("Subspace Telecomms") -datum/design/subspace_broadcaster +/datum/design/subspace_broadcaster name = "Machine Design (Subspace Broadcaster)" desc = "Allows for the construction of Subspace Broadcasting equipment." id = "s-broadcaster" req_tech = list("programming" = 2, "engineering" = 2, "bluespace" = 1) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/telecomms/broadcaster \ No newline at end of file + build_path = /obj/item/weapon/circuitboard/telecomms/broadcaster + category = list("Subspace Telecomms") \ No newline at end of file diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 71830875577..fa35c34bacf 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -2,7 +2,7 @@ /////////////////Weapons///////////////// ///////////////////////////////////////// -datum/design/nuclear_gun +/datum/design/nuclear_gun name = "Advanced Energy Gun" desc = "An energy gun with an experimental miniaturized reactor." id = "nuclear_gun" @@ -12,8 +12,9 @@ datum/design/nuclear_gun reliability = 76 build_path = /obj/item/weapon/gun/energy/gun/nuclear locked = 1 + category = list("Weapons") -datum/design/stunrevolver +/datum/design/stunrevolver name = "Stun Revolver" desc = "A high-tech revolver that fires internal, reusable stun cartidges in a revolving cylinder. The stun cartridges can be recharged using a conventional energy weapon recharger." id = "stunrevolver" @@ -22,8 +23,9 @@ datum/design/stunrevolver materials = list("$metal" = 4000) build_path = /obj/item/weapon/gun/energy/stunrevolver locked = 1 + category = list("Weapons") -datum/design/tele_shield +/datum/design/tele_shield name = "Telescopic Riot Shield" desc = "An advanced riot shield made of lightweight materials that collapses for easy storage." id = "tele_shield" @@ -32,8 +34,9 @@ datum/design/tele_shield materials = list("$metal" = 4000, "$glass" = 5000, "$silver" = 300) build_path = /obj/item/weapon/shield/riot/tele locked = 1 + category = list("Weapons") -datum/design/lasercannon +/datum/design/lasercannon name = "Laser Cannon" desc = "A heavy duty laser cannon." id = "lasercannon" @@ -42,8 +45,9 @@ datum/design/lasercannon materials = list("$metal" = 10000, "$glass" = 2000, "$diamond" = 2000) build_path = /obj/item/weapon/gun/energy/lasercannon locked = 1 + category = list("Weapons") -datum/design/decloner +/datum/design/decloner name = "Decloner" desc = "Your opponent will bubble into a messy pile of goop." id = "decloner" @@ -52,18 +56,9 @@ datum/design/decloner materials = list("$gold" = 5000,"$uranium" = 10000, "mutagen" = 40) build_path = /obj/item/weapon/gun/energy/decloner locked = 1 -/* -datum/design/chemsprayer - name = "Chem Sprayer" - desc = "An advanced chem spraying device." - id = "chemsprayer" - req_tech = list("combat" = 3, "materials" = 3, "engineering" = 3, "biotech" = 2) - build_type = PROTOLATHE - materials = list("$metal" = 5000, "$glass" = 1000) - reliability = 100 - build_path = /obj/item/weapon/chemsprayer" -*/ -datum/design/rapidsyringe + category = list("Weapons") + +/datum/design/rapidsyringe name = "Rapid Syringe Gun" desc = "A gun that fires many syringes." id = "rapidsyringe" @@ -71,8 +66,9 @@ datum/design/rapidsyringe build_type = PROTOLATHE materials = list("$metal" = 5000, "$glass" = 1000) build_path = /obj/item/weapon/gun/syringe/rapidsyringe + category = list("Weapons") -datum/design/largecrossbow +/datum/design/largecrossbow name = "Energy Crossbow" desc = "A reverse-engineered energy crossbow favored by syndicate infiltration teams and carp hunters." id = "largecrossbow" @@ -81,8 +77,9 @@ datum/design/largecrossbow materials = list("$metal" = 5000, "$glass" = 1500, "$uranium" = 1500, "$silver" = 1500) build_path = /obj/item/weapon/gun/energy/crossbow/largecrossbow locked = 1 + category = list("Weapons") -datum/design/temp_gun +/datum/design/temp_gun name = "Temperature Gun" desc = "A gun that shoots temperature bullet energythings to change temperature."//Change it if you want id = "temp_gun" @@ -91,8 +88,9 @@ datum/design/temp_gun materials = list("$metal" = 5000, "$glass" = 500, "$silver" = 3000) build_path = /obj/item/weapon/gun/energy/temperature locked = 1 + category = list("Weapons") -datum/design/flora_gun +/datum/design/flora_gun name = "Floral Somatoray" desc = "A tool that discharges controlled radiation which induces mutation in plant cells. Harmless to other organic life." id = "flora_gun" @@ -100,8 +98,9 @@ datum/design/flora_gun build_type = PROTOLATHE materials = list("$metal" = 2000, "$glass" = 500, "radium" = 20) build_path = /obj/item/weapon/gun/energy/floragun + category = list("Weapons") -datum/design/large_grenade +/datum/design/large_grenade name = "Large Grenade" desc = "A grenade that affects a larger area and use larger containers." id = "large_Grenade" @@ -110,8 +109,9 @@ datum/design/large_grenade materials = list("$metal" = 3000) reliability = 79 build_path = /obj/item/weapon/grenade/chem_grenade/large + category = list("Weapons") -datum/design/smg +/datum/design/smg name = "Prototype Submachine Gun" desc = "A prototype weapon made using lightweight materials on a traditional frame, designed to fire standard 9mm rounds." id = "smg" @@ -120,17 +120,9 @@ datum/design/smg materials = list("$metal" = 8000, "$silver" = 2000, "$diamond" = 1000) build_path = /obj/item/weapon/gun/projectile/automatic locked = 1 + category = list("Weapons") -datum/design/mag_smg - name = "Submachine Gun Magazine (9mm)" - desc = "A 20-round magazine for the prototype submachine gun." - id = "mag_smg" - req_tech = list("combat" = 4, "materials" = 3) - build_type = PROTOLATHE - materials = list("$metal" = 2000) - build_path = /obj/item/ammo_box/magazine/smgm9mm - -datum/design/xray +/datum/design/xray name = "Xray Laser Gun" desc = "Not quite as menacing as it sounds" id = "xray" @@ -139,8 +131,9 @@ datum/design/xray materials = list("$gold" = 5000,"$uranium" = 10000, "$metal" = 4000) build_path = /obj/item/weapon/gun/energy/xray locked = 1 + category = list("Weapons") -datum/design/ionrifle +/datum/design/ionrifle name = "Ion Rifle" desc = "How to dismantle a cyborg : The gun." id = "ionrifle" @@ -149,8 +142,9 @@ datum/design/ionrifle materials = list("$silver" = 4000, "$metal" = 6000, "$uranium" = 1000) build_path = /obj/item/weapon/gun/energy/ionrifle locked = 1 + category = list("Weapons") -datum/design/wormhole_projector +/datum/design/wormhole_projector name = "Bluespace Wormhole Projector" desc = "A projector that emits high density quantum-coupled bluespace beams." id = "wormholeprojector" @@ -159,8 +153,9 @@ datum/design/wormhole_projector materials = list("$silver" = 1000, "$metal" = 5000, "$diamond" = 3000) build_path = /obj/item/weapon/gun/energy/wormhole_projector locked = 1 + category = list("Weapons") -datum/design/reciever +/datum/design/reciever name = "Modular Reciever" desc = "A prototype modular reciever and trigger assembly for a variety of firearms." id = "reciever" @@ -168,8 +163,19 @@ datum/design/reciever build_type = PROTOLATHE materials = list("$metal" = 6500, "$silver" = 500) build_path = /obj/item/weaponcrafting/reciever + category = list("Weapons") -datum/design/stunshell +/datum/design/mag_smg + name = "Submachine Gun Magazine (9mm)" + desc = "A 20-round magazine for the prototype submachine gun." + id = "mag_smg" + req_tech = list("combat" = 4, "materials" = 3) + build_type = PROTOLATHE + materials = list("$metal" = 2000) + build_path = /obj/item/ammo_box/magazine/smgm9mm + category = list("Ammo") + +/datum/design/stunshell name = "Stun Shell" desc = "A stunning shell for a shotgun." id = "stunshell" @@ -177,8 +183,9 @@ datum/design/stunshell build_type = PROTOLATHE materials = list("$metal" = 200) build_path = /obj/item/ammo_casing/shotgun/stunslug + category = list("Ammo") -datum/design/techshell +/datum/design/techshell name = "Unloaded Technological Shotshell" desc = "A high-tech shotgun shell which can be loaded with materials to produce unique effects." id = "techshotshell" @@ -186,12 +193,14 @@ datum/design/techshell build_type = PROTOLATHE materials = list("$metal" = 1000, "$glass" = 200, "$silver" = 300) build_path = /obj/item/ammo_casing/shotgun/techshell + category = list("Ammo") -datum/design/suppressor +/datum/design/suppressor name = "Universal Suppressor" desc = "A reverse-engineered universal suppressor that fits on most small arms with threaded barrels." id = "suppressor" req_tech = list("combat" = 6, "engineering" = 5, "syndicate" = 3) build_type = PROTOLATHE materials = list("$metal" = 2000, "$silver" = 500) - build_path = /obj/item/weapon/suppressor \ No newline at end of file + build_path = /obj/item/weapon/suppressor + category = list("Weapons") diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm index d4affb8af14..c6ed0a4f8f3 100644 --- a/code/modules/research/protolathe.dm +++ b/code/modules/research/protolathe.dm @@ -25,6 +25,18 @@ Note: Must be placed west/left of and R&D console to function. var/adamantine_amount = 0.0 var/efficiency_coeff + var/list/categories = list( + "Power Designs", + "Medical Designs", + "Bluespace Designs", + "Stock Parts", + "Equipement", + "Mining Designs", + "Electronics", + "Weapons", + "Ammo", + ) + reagents = new() diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 124bbf8599c..7c695ffe718 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -49,6 +49,8 @@ won't update every console in existence) but it's more of a hassle to do. Also, req_access = list(access_tox) //Data and setting manipulation requires scientist access. + var/selected_category + /obj/machinery/computer/rdconsole/proc/CallTechName(var/ID) //A simple helper proc to find the name of a tech with a given ID. var/datum/tech/check_tech @@ -179,6 +181,9 @@ won't update every console in existence) but it's more of a hassle to do. Also, var/temp_screen = text2num(href_list["menu"]) screen = temp_screen + if(href_list["category"]) + selected_category = href_list["category"] + else if(href_list["updt_tech"]) //Update the research holder with information from the technology disk. screen = 0.0 spawn(50) @@ -413,7 +418,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, else new_item.loc = linked_lathe.loc linked_lathe.busy = 0 - screen = 3.1 + screen = 3.15 updateUsrDialog() else if(href_list["imprint"]) //Causes the Circuit Imprinter to build something. @@ -778,31 +783,42 @@ won't update every console in existence) but it's more of a hassle to do. Also, dat += "

    Protolathe Menu:


    " dat += "Material Amount: [linked_lathe.TotalMaterials()] / [linked_lathe.max_material_storage]
    " dat += "Chemical Volume: [linked_lathe.reagents.total_volume] / [linked_lathe.reagents.maximum_volume]
    " + + dat += list_categories(linked_lathe.categories, 3.15) + + //Grouping designs by categories, to improve readability + if(3.15) + dat += "Main Menu" + dat += "Protolathe Menu" + dat += "

    Browsing [selected_category]:


    " + dat += "Material Amount: [linked_lathe.TotalMaterials()] / [linked_lathe.max_material_storage]
    " + dat += "Chemical Volume: [linked_lathe.reagents.total_volume] / [linked_lathe.reagents.maximum_volume]
    " + var/coeff = linked_lathe.efficiency_coeff for(var/datum/design/D in files.known_designs) - if(!(D.build_type & PROTOLATHE)) + if(!(selected_category in D.category)|| !(D.build_type & PROTOLATHE)) continue - var/temp_dat = "[D.name]" var/temp_material var/c = 50 var/t for(var/M in D.materials) t = linked_lathe.check_mat(D, M) + temp_material += " | " if (!t) - temp_material += " [D.materials[M]/coeff] [CallMaterialName(M)]" + temp_material += "[D.materials[M]/coeff] [CallMaterialName(M)]" else temp_material += " [D.materials[M]/coeff] [CallMaterialName(M)]" c = min(c,t) if (c) - dat += "* [temp_dat]" + dat += "[D.name]" if(c >= 5.0) dat += "x5" if(c >= 10.0) dat += "x10" dat += "[temp_material]" else - dat += "* [temp_dat][temp_material]" + dat += "[D.name][temp_material]" dat += "
    " dat += "
    " @@ -880,23 +896,33 @@ won't update every console in existence) but it's more of a hassle to do. Also, dat += "

    Circuit Imprinter Menu:


    " dat += "Material Amount: [linked_imprinter.TotalMaterials()]
    " dat += "Chemical Volume: [linked_imprinter.reagents.total_volume]
    " + + dat += list_categories(linked_imprinter.categories, 4.15) + + if(4.15) + dat += "Main Menu" + dat += "Circuit Imprinter Menu" + dat += "

    Browsing [selected_category]:


    " + dat += "Material Amount: [linked_imprinter.TotalMaterials()]
    " + dat += "Chemical Volume: [linked_imprinter.reagents.total_volume]
    " + var/coeff = linked_imprinter.efficiency_coeff for(var/datum/design/D in files.known_designs) - if(!(D.build_type & IMPRINTER)) + if(!(selected_category in D.category) || !(D.build_type & IMPRINTER)) continue - var/temp_dat = "[D.name]" var/temp_materials var/check_materials = 1 for(var/M in D.materials) + temp_materials += " | " if (!linked_imprinter.check_mat(D, M)) check_materials = 0 - temp_materials += " [D.materials[M]/coeff] [CallMaterialName(M)]" + temp_materials += " [D.materials[M]/coeff] [CallMaterialName(M)]" else temp_materials += " [D.materials[M]/coeff] [CallMaterialName(M)]" if (check_materials) - dat += "* [temp_dat][temp_materials]
    " + dat += "[D.name][temp_materials]
    " else - dat += "* [temp_dat][temp_materials]
    " + dat += "[D.name][temp_materials]
    " dat += "
    " if(4.2) @@ -931,11 +957,30 @@ won't update every console in existence) but it's more of a hassle to do. Also, if(linked_imprinter.diamond_amount >= 2000) dat += "All" dat += "" - var/datum/browser/popup = new(user, "rndconsole", name, 420, 450) + var/datum/browser/popup = new(user, "rndconsole", name, 460, 550) popup.set_content(dat) popup.open() return +//helper proc, which return a table containing categories +/obj/machinery/computer/rdconsole/proc/list_categories(var/list/categories, var/menu_num as num) + if(!categories) + return + + var/line_length = 1 + var/dat = "

    Name

    Vitals

    Position

    [I.registered_name] ([I.assignment])
    " + + for(var/C in categories) + if(line_length > 2) + dat += "" + line_length = 1 + + dat += "" + line_length++ + + dat += "
    [C]
    " + return dat + /obj/machinery/computer/rdconsole/robotics name = "Robotics R&D Console" desc = "A console used to interface with R&D tools." diff --git a/code/modules/research/research.dm b/code/modules/research/research.dm index ef765b17f9e..6fa8bb0536a 100644 --- a/code/modules/research/research.dm +++ b/code/modules/research/research.dm @@ -159,6 +159,26 @@ research holder datum. if(I.crit_fail) D.reliability = min(100, D.reliability + rand(3, 5)) +/datum/research/proc/FindDesignByID(var/id) + for(var/datum/design/D in known_designs) + if(D.id == id) + return D + + +//Autolathe files +/datum/research/autolathe/New() + for(var/T in (typesof(/datum/tech) - /datum/tech)) + possible_tech += new T(src) + for(var/path in typesof(/datum/design) - /datum/design) + var/datum/design/D = new path(src) + possible_designs += D + if((D.build_type & AUTOLATHE) && ("initial" in D.category)) //autolathe starts without hacked designs + AddDesign2Known(D) + +/datum/research/autolathe/AddDesign2Known(var/datum/design/D) + if(!(D.build_type & AUTOLATHE)) + return + ..() /*************************************************************** ** Technology Datums ** diff --git a/code/modules/telesci/telepad.dm b/code/modules/telesci/telepad.dm index ea7bb4ce13a..e0eccaff92b 100644 --- a/code/modules/telesci/telepad.dm +++ b/code/modules/telesci/telepad.dm @@ -60,10 +60,10 @@ playsound(src, 'sound/items/Ratchet.ogg', 50, 1) if(anchored) anchored = 0 - user << " The [src] can now be moved." + user << " \The [src] can now be moved." else if(!anchored) anchored = 1 - user << " The [src] is now secured." + user << " \The [src] is now secured." if(istype(W, /obj/item/weapon/screwdriver)) if(stage == 0) playsound(src, 'sound/items/Screwdriver.ogg', 50, 1) diff --git a/code/world.dm b/code/world.dm index 82f3817b3c2..c31d225da1d 100644 --- a/code/world.dm +++ b/code/world.dm @@ -89,7 +89,7 @@ master_controller = new /datum/controller/game_controller() spawn(-1) master_controller.setup() - lighting_controller.Initialize() + lighting_controller.initializeLighting() src.update_status() diff --git a/config/admins.txt b/config/admins.txt index c56f60cb022..cec937826ec 100644 --- a/config/admins.txt +++ b/config/admins.txt @@ -71,3 +71,5 @@ xxnoob = Game Master tkdrg = Game Master Cuboos = Game Master thunder12345 = Game Master +wjohnston = Game Master +mandurrh = Game Master diff --git a/config/config.txt b/config/config.txt index d3fb04150a5..0d112194334 100644 --- a/config/config.txt +++ b/config/config.txt @@ -152,4 +152,7 @@ TICKCOMP 0 #AUTOMUTE_ON ## Communication key for receiving data through world/Topic(), you don't want to give this out -#COMMS_KEY default_pwd \ No newline at end of file +#COMMS_KEY default_pwd + +## Uncomment this to let players see their own notes (they can still be set by admins only) +#SEE_OWN_NOTES diff --git a/config/game_options.txt b/config/game_options.txt index 7f469d35001..00fad47a4de 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -27,6 +27,10 @@ REVIVAL_BRAIN_LIFE -1 #Comment this out if you want OOC to be automatically disabled during the round, it will be enabled during the lobby and after the round end results. OOC_DURING_ROUND +### EMOJI ### +#Comment this out if you want to disable emojis +EMOJIS + ### MOB MOVEMENT ### ## We suggest editing these variables ingame to find a good speed for your server. diff --git a/html/changelog.html b/html/changelog.html index c0dafcb126f..092b4c9d99f 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -55,6 +55,28 @@ --> +
    +

    27 December 2014

    +

    Dorsidwarf updated:

    +
      +
    • Buffs the RCD from 30 matter units to max capacity 100, and increases the value of matter charges.
    • +
    +

    Paprika updated:

    +
      +
    • Taser electrodes now have a limited range of 7 tiles.
    • +
    • The energy gun's stun mode has been replaced with a disable mode.
    • +
    • Security officers will now spawn with tasers.
    • +
    • Disabler beams now go through windows and grilles.
    • +
    • Disabler beams now do 33 stamina damage instead of 34. This means they will only stun in 3 hits on someone that is NOT 100% healthy.
    • +
    • Most ballistic projectiles now do stamina damage in addition to their regular damage instead of stunning. This includes nuke op c-20r .45, detective's revolver, etc. They are effectively better than disablers at stunning people, as well as do significant damage, but they do not stun instantly like a taser. Expect engagements to be a little longer and plan ahead for this.
    • +
    • Added an advanced taser for RnD, the child of a disabler and a taser.
    • +
    +

    Tkdrg updated:

    +
      +
    • Envoys from the distant Viji sector have brought an exotic contraption to Centcomm. Known as the 'supermatter shard', it is a fragment of an ancient alien artifact, believed to have a dangerous and mysterious power. This precious item has been made available to the Space Station 13 cargo team for the cost of a hundred supply points, as a reward for all your hard work. Good luck, and stay safe.
    • +
    +
    +

    16 December 2014

    Paprika updated:

    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 11d9482ac4a..c68eb21a486 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -2205,3 +2205,27 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - tweak: The number of junk food in snack vending machine is lowered from 6 to 5 of each type. - bugfix: Fixing not being able to load an omelette du fromage on a tray. +2014-12-27: + Dorsidwarf: + - tweak: Buffs the RCD from 30 matter units to max capacity 100, and increases the + value of matter charges. + Paprika: + - experiment: Taser electrodes now have a limited range of 7 tiles. + - experiment: The energy gun's stun mode has been replaced with a disable mode. + - experiment: Security officers will now spawn with tasers. + - tweak: Disabler beams now go through windows and grilles. + - tweak: Disabler beams now do 33 stamina damage instead of 34. This means they + will only stun in 3 hits on someone that is NOT 100% healthy. + - tweak: Most ballistic projectiles now do stamina damage in addition to their regular + damage instead of stunning. This includes nuke op c-20r .45, detective's revolver, + etc. They are effectively better than disablers at stunning people, as well + as do significant damage, but they do not stun instantly like a taser. Expect + engagements to be a little longer and plan ahead for this. + - rscadd: Added an advanced taser for RnD, the child of a disabler and a taser. + Tkdrg: + - rscadd: Envoys from the distant Viji sector have brought an exotic contraption + to Centcomm. Known as the 'supermatter shard', it is a fragment of an ancient + alien artifact, believed to have a dangerous and mysterious power. This precious + item has been made available to the Space Station 13 cargo team for the cost + of a hundred supply points, as a reward for all your hard work. Good luck, and + stay safe. diff --git a/html/changelogs/Dorsidwarf-RCDbuff-6242.yml.txt b/html/changelogs/Dorsidwarf-RCDbuff-6242.yml.txt deleted file mode 100644 index 885ecc9ef6a..00000000000 --- a/html/changelogs/Dorsidwarf-RCDbuff-6242.yml.txt +++ /dev/null @@ -1,33 +0,0 @@ -################################ -# Example Changelog File -# -# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. -# -# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) -# When it is, any changes listed below will disappear. -# -# Valid Prefixes: -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscdel (general adding of nice things) -# rscadd (general deleting of nice things) -# imageadd -# imagedel -# spellcheck (typo fixes) -# experiment -# tgs (TG-ported fixes?) -################################# -# Your name. -author: Dorsidwarf -# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. -delete-after: True -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. -# Please surround your changes in single (') or double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. -changes: -- tweak: "Buffs the RCD from 30 matter units to max capacity 100, and increases the value of matter charges. \ No newline at end of file diff --git a/html/changelogs/JJRcop-OOCemoji.yml b/html/changelogs/JJRcop-OOCemoji.yml new file mode 100644 index 00000000000..fa65b93fb7e --- /dev/null +++ b/html/changelogs/JJRcop-OOCemoji.yml @@ -0,0 +1,4 @@ +author: JJRcop, Nienhaus +delete-after: True +changes: + - rscadd: "Adds emoji to OOC chat." \ No newline at end of file diff --git a/html/changelogs/Tkdrg-FUCKING_SUPERMATTER.yml b/html/changelogs/Tkdrg-FUCKING_SUPERMATTER.yml deleted file mode 100644 index 8a39d30d075..00000000000 --- a/html/changelogs/Tkdrg-FUCKING_SUPERMATTER.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Tkdrg -delete-after: True - -changes: - - rscadd: "Envoys from the distant Viji sector have brought an exotic contraption to Centcomm. Known as the 'supermatter shard', it is a fragment of an ancient alien artifact, believed to have a dangerous and mysterious power. This precious item has been made available to the Space Station 13 cargo team for the cost of a hundred supply points, as a reward for all your hard work. Good luck, and stay safe." diff --git a/icons/emoji.dmi b/icons/emoji.dmi new file mode 100644 index 00000000000..a78a7e3df79 Binary files /dev/null and b/icons/emoji.dmi differ diff --git a/icons/mob/alien.dmi b/icons/mob/alien.dmi index 8c8690ea853..0b2c7f8e136 100644 Binary files a/icons/mob/alien.dmi and b/icons/mob/alien.dmi differ diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index 2b363ca9647..05e667d2553 100644 Binary files a/icons/mob/animal.dmi and b/icons/mob/animal.dmi differ diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi index 9c0449f011e..d613dedcefe 100644 Binary files a/icons/mob/back.dmi and b/icons/mob/back.dmi differ diff --git a/icons/mob/belt.dmi b/icons/mob/belt.dmi index e711157e2e5..0a170f70789 100644 Binary files a/icons/mob/belt.dmi and b/icons/mob/belt.dmi differ diff --git a/icons/mob/corgi_back.dmi b/icons/mob/corgi_back.dmi index 6c7c1444909..7ea3cee1a4a 100644 Binary files a/icons/mob/corgi_back.dmi and b/icons/mob/corgi_back.dmi differ diff --git a/icons/mob/corgi_head.dmi b/icons/mob/corgi_head.dmi index 4faf6d77ddb..e03c9eb25c0 100644 Binary files a/icons/mob/corgi_head.dmi and b/icons/mob/corgi_head.dmi differ diff --git a/icons/mob/ears.dmi b/icons/mob/ears.dmi index 8ff02f67652..fe9e2b691e7 100644 Binary files a/icons/mob/ears.dmi and b/icons/mob/ears.dmi differ diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index ec869f4ad98..b10bcfce92b 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/items_lefthand.dmi b/icons/mob/items_lefthand.dmi index 57009026e86..bb4f4121a2a 100644 Binary files a/icons/mob/items_lefthand.dmi and b/icons/mob/items_lefthand.dmi differ diff --git a/icons/mob/items_righthand.dmi b/icons/mob/items_righthand.dmi index 33af023bd79..32316ec15f2 100644 Binary files a/icons/mob/items_righthand.dmi and b/icons/mob/items_righthand.dmi differ diff --git a/icons/mob/monkey.dmi b/icons/mob/monkey.dmi index 99beec24bf8..d1872d6aaff 100644 Binary files a/icons/mob/monkey.dmi and b/icons/mob/monkey.dmi differ diff --git a/icons/mob/screen_alien.dmi b/icons/mob/screen_alien.dmi index 3674b2bf163..e0257307ac1 100644 Binary files a/icons/mob/screen_alien.dmi and b/icons/mob/screen_alien.dmi differ diff --git a/icons/mob/screen_gen.dmi b/icons/mob/screen_gen.dmi index 12741f6e83c..4e5a9f42d54 100644 Binary files a/icons/mob/screen_gen.dmi and b/icons/mob/screen_gen.dmi differ diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index 6ca00c2dde1..b6923194bb1 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ diff --git a/icons/mob/ties.dmi b/icons/mob/ties.dmi index c2befc32eaa..bab5533b140 100644 Binary files a/icons/mob/ties.dmi and b/icons/mob/ties.dmi differ diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index 2109dcef03e..30334b16415 100644 Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index 367ef6ee234..df6f3a4ba10 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/clothing/belts.dmi b/icons/obj/clothing/belts.dmi index b5dd02a219d..605c08c4590 100644 Binary files a/icons/obj/clothing/belts.dmi and b/icons/obj/clothing/belts.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index e17dbc09f5d..24f9048fc45 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index 1728af68a25..30fd1979df8 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/clothing/ties.dmi b/icons/obj/clothing/ties.dmi index 80722813075..7be081f9579 100644 Binary files a/icons/obj/clothing/ties.dmi and b/icons/obj/clothing/ties.dmi differ diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index 70d7f0fcc85..9cee4e8a3bb 100644 Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index e68aa0b2318..819d09b6313 100644 Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi index b54a3b38536..29b3bd9e767 100644 Binary files a/icons/obj/food.dmi and b/icons/obj/food.dmi differ diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi index 319de920834..e73f17598ab 100644 Binary files a/icons/obj/gun.dmi and b/icons/obj/gun.dmi differ diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index 9107f227f89..ac7af348b0f 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi index 201a73b0905..e0bbc6ea25a 100644 Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.dmi differ diff --git a/icons/obj/pda.dmi b/icons/obj/pda.dmi index cf23e987632..848647eae2d 100644 Binary files a/icons/obj/pda.dmi and b/icons/obj/pda.dmi differ diff --git a/icons/obj/tank.dmi b/icons/obj/tank.dmi index 91d42d5ec4e..01e5983da03 100644 Binary files a/icons/obj/tank.dmi and b/icons/obj/tank.dmi differ diff --git a/tgstation.dme b/tgstation.dme index ccf56de608c..0e7af4bc429 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -526,6 +526,7 @@ #include "code\game\objects\items\devices\powersink.dm" #include "code\game\objects\items\devices\recaller.dm" #include "code\game\objects\items\devices\scanners.dm" +#include "code\game\objects\items\devices\sensor_device.dm" #include "code\game\objects\items\devices\taperecorder.dm" #include "code\game\objects\items\devices\traitordevices.dm" #include "code\game\objects\items\devices\transfer_valve.dm" @@ -579,6 +580,7 @@ #include "code\game\objects\items\weapons\paiwire.dm" #include "code\game\objects\items\weapons\power_cells.dm" #include "code\game\objects\items\weapons\RCD.dm" +#include "code\game\objects\items\weapons\RPD.dm" #include "code\game\objects\items\weapons\RSF.dm" #include "code\game\objects\items\weapons\scrolls.dm" #include "code\game\objects\items\weapons\shields.dm" @@ -852,6 +854,7 @@ #include "code\modules\detectivework\evidence.dm" #include "code\modules\detectivework\footprints_and_rag.dm" #include "code\modules\detectivework\scanner.dm" +#include "code\modules\emoji\emoji_parse.dm" #include "code\modules\events\alien_infestation.dm" #include "code\modules\events\anomaly.dm" #include "code\modules\events\anomaly_bluespace.dm" @@ -1285,6 +1288,7 @@ #include "code\modules\research\research.dm" #include "code\modules\research\server.dm" #include "code\modules\research\designs\AI_module_designs.dm" +#include "code\modules\research\designs\autolathe_designs.dm" #include "code\modules\research\designs\comp_board_designs.dm" #include "code\modules\research\designs\machine_designs.dm" #include "code\modules\research\designs\mecha_designs.dm"