From cc4dd68bdf219d2bc2eb2b376df3a0d1f5add199 Mon Sep 17 00:00:00 2001 From: Giacomand Date: Sat, 15 Mar 2014 16:59:48 +0000 Subject: [PATCH] Added a new gravity generator which will produce gravity for the station. Sprites by Ausop, which he posted in his sprite thread. The gravity generator is very sturdy, as it is almost indestructible, but explosions can break it and it will need repairs. Changed C4 to stop del()'ing and instead will only use ex_act(). Added an interact_offline variable for machines that will allow you to interact with them even if they are depowered. The gravity generator only uses this at the moment. Removed the stun that people get when gravity changes. Shuttles have gravity still. Added a gravity generator room to the west of Engineering. It is very secure, with a foyer and requiring CE or Captain access. There are instructions on the table for repairing and enabling/disabling the machine. --- _maps/map_files/tgstation.2.1.2.dmm | 142 ++++-- code/game/area/Space Station 13 areas.dm | 29 +- code/game/area/areas.dm | 41 +- code/game/atoms_movable.dm | 5 +- code/game/machinery/machinery.dm | 7 +- code/game/objects/effects/effect_system.dm | 2 +- code/game/objects/items/weapons/explosives.dm | 9 +- .../objects/items/weapons/extinguisher.dm | 2 +- code/game/turfs/turf.dm | 2 +- code/modules/mining/mine_areas.dm | 1 + code/modules/mob/living/carbon/carbon.dm | 3 +- .../mob/living/carbon/human/human_movement.dm | 2 +- code/modules/mob/mob_movement.dm | 20 +- code/modules/power/gravitygenerator.dm | 458 +++++++++++++----- icons/obj/machines/gravity_generator.dmi | Bin 0 -> 37203 bytes 15 files changed, 496 insertions(+), 227 deletions(-) create mode 100644 icons/obj/machines/gravity_generator.dmi diff --git a/_maps/map_files/tgstation.2.1.2.dmm b/_maps/map_files/tgstation.2.1.2.dmm index 7b429ff256d..7e2a5d6d129 100644 --- a/_maps/map_files/tgstation.2.1.2.dmm +++ b/_maps/map_files/tgstation.2.1.2.dmm @@ -5267,7 +5267,7 @@ "bXo" = (/obj/machinery/computer/telecomms/monitor{network = "tcommsat"},/turf/simulated/floor{dir = 8; icon_state = "yellow"},/area/tcommsat/computer) "bXp" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor,/area/tcommsat/computer) "bXq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/tcommsat/computer) -"bXr" = (/obj/machinery/door/airlock/engineering{name = "Telecommunications"; req_access_txt = "61"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/tcommsat/computer) +"bXr" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/gravity_generator) "bXs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "yellow"},/area/hallway/primary/aft) "bXt" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/hallway/primary/aft) "bXu" = (/turf/simulated/floor,/area/hallway/primary/aft) @@ -5455,7 +5455,7 @@ "caU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/portsolar) "caV" = (/obj/machinery/door/airlock/engineering{name = "Aft Port Solar Access"; req_access_txt = "10"},/turf/simulated/floor/plating,/area/maintenance/portsolar) "caW" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/aft) -"caX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/aft) +"caX" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = -32; pixel_y = 0},/obj/machinery/light/small,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/gravity_generator) "caY" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/aft) "caZ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/aft) "cba" = (/obj/machinery/shieldgen,/turf/simulated/floor/plating,/area/engine/engineering) @@ -5466,7 +5466,7 @@ "cbf" = (/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{dir = 2; icon_state = "warning"},/area/engine/engine_smes) "cbg" = (/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{dir = 6; icon_state = "warning"},/area/engine/engine_smes) "cbh" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{icon_state = "yellow"},/area/engine/engineering) -"cbi" = (/obj/machinery/alarm{pixel_y = 23},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor{icon_state = "yellow"},/area/engine/engineering) +"cbi" = (/turf/simulated/wall/r_wall,/area/engine/gravity_generator) "cbj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/engine/engineering) "cbk" = (/obj/machinery/computer/station_alert,/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor,/area/engine/engineering) "cbl" = (/obj/machinery/computer/monitor,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor,/area/engine/engineering) @@ -5484,7 +5484,7 @@ "cbx" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{pipe_color = "yellow"; icon_state = "intact-y"; level = 2},/turf/space,/area/space) "cby" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{pipe_color = "cyan"; icon_state = "intact-c"; level = 2},/turf/space,/area/space) "cbz" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating/airless,/area/solar/port) -"cbA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/maintenance/portsolar) +"cbA" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor,/area/engine/gravity_generator) "cbB" = (/obj/machinery/power/solar_control{id = "portsolar"; name = "Aft Port Solar Control"; track = 0},/obj/structure/cable,/turf/simulated/floor/plating,/area/maintenance/portsolar) "cbC" = (/turf/simulated/floor/plating,/area/maintenance/portsolar) "cbD" = (/obj/machinery/power/apc{dir = 4; name = "Aft Port Solar APC"; pixel_x = 23; pixel_y = 2},/obj/machinery/camera{c_tag = "Aft Port Solar Control"; dir = 1},/obj/structure/cable,/turf/simulated/floor/plating,/area/maintenance/portsolar) @@ -5515,7 +5515,7 @@ "ccc" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/grille,/obj/machinery/meter{frequency = 1443; id = "mair_out_meter"; name = "Mixed Air Tank Out"},/turf/simulated/wall/r_wall,/area/atmos) "ccd" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/disposaloutlet,/turf/simulated/floor/plating/airless,/area/space) "cce" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/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/plating/airless,/area/solar/port) -"ccf" = (/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/maintenance/portsolar) +"ccf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor,/area/engine/gravity_generator) "ccg" = (/obj/item/stack/rods{amount = 10},/turf/simulated/floor/plating,/area/maintenance/aft) "cch" = (/obj/machinery/portable_atmospherics/canister/toxins,/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "Engineering Secure Storage"; dir = 4; network = list("SS13")},/turf/simulated/floor/plating,/area/engine/engineering) "cci" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/engineering) @@ -5539,7 +5539,7 @@ "ccA" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 1; frequency = 1443; icon_state = "on"; id = "air_in"; on = 1},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/atmos) "ccB" = (/obj/machinery/air_sensor{frequency = 1443; id_tag = "air_sensor"; output = 7},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/atmos) "ccC" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; external_pressure_bound = 0; frequency = 1443; icon_state = "in"; id_tag = "air_out"; internal_pressure_bound = 2000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/atmos) -"ccD" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/maintenance/aft) +"ccD" = (/obj/machinery/light,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/engine/gravity_generator) "ccE" = (/obj/machinery/field/generator,/turf/simulated/floor/plating,/area/engine/engineering) "ccF" = (/obj/machinery/power/emitter,/turf/simulated/floor/plating,/area/engine/engineering) "ccG" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/engineering) @@ -5568,7 +5568,7 @@ "cdd" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/atmos) "cde" = (/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/atmos) "cdf" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating/airless,/area/solar/starboard) -"cdg" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/aft) +"cdg" = (/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,/area/engine/gravity_generator) "cdh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall,/area/engine/engineering) "cdi" = (/turf/simulated/wall,/area/engine/engineering) "cdj" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/engine/engineering) @@ -5606,7 +5606,7 @@ "cdP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating/airless,/area/solar/starboard) "cdQ" = (/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/starboard) "cdR" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless,/area/solar/port) -"cdS" = (/obj/effect/decal/cleanable/oil,/turf/simulated/floor/plating,/area/maintenance/aft) +"cdS" = (/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},/obj/structure/table,/turf/simulated/floor,/area/engine/gravity_generator) "cdT" = (/obj/machinery/door/window/southleft{base_state = "left"; dir = 2; icon_state = "left"; name = "Engineering Delivery"; req_access_txt = "10"},/turf/simulated/floor{icon_state = "delivery"},/area/engine/engineering) "cdU" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance{name = "Engineering Maintenance"; req_access_txt = "10"},/turf/simulated/floor/plating,/area/engine/engineering) "cdV" = (/obj/machinery/camera{c_tag = "Engineering West"; dir = 4; network = list("SS13")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 1; icon_state = "yellowcorner"},/area/engine/engineering) @@ -5631,8 +5631,8 @@ "ceo" = (/obj/structure/table,/obj/item/device/flashlight{pixel_y = 5},/obj/item/clothing/ears/earmuffs{pixel_x = -5; pixel_y = 6},/obj/item/weapon/airlock_painter,/turf/simulated/floor,/area/engine/engineering) "cep" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/weapon/tank/emergency_oxygen/engi,/obj/item/weapon/tank/emergency_oxygen/engi,/obj/machinery/camera{c_tag = "Engineering East"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "yellowcorner"},/area/engine/engineering) "ceq" = (/obj/structure/lattice,/obj/structure/grille,/obj/structure/lattice,/turf/space,/area/space) -"cer" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor,/area/engine/engineering) -"ces" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor,/area/engine/engineering) +"cer" = (/obj/structure/table,/obj/machinery/camera{c_tag = "Engineering Storage"; dir = 4; network = list("SS13")},/turf/simulated/floor,/area/engine/engineering) +"ces" = (/obj/structure/table,/obj/item/stack/sheet/plasteel{amount = 10},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor,/area/engine/engineering) "cet" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/engineering) "ceu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) "cev" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor,/area/engine/engineering) @@ -5650,7 +5650,7 @@ "ceH" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/escape_pod4/station) "ceI" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/escape_pod4/station) "ceJ" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/engine/engineering) -"ceK" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/machinery/camera{c_tag = "Engineering Storage"; dir = 4; network = list("SS13")},/turf/simulated/floor,/area/engine/engineering) +"ceK" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor,/area/engine/engineering) "ceL" = (/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,/area/engine/engineering) "ceM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) "ceN" = (/obj/structure/table,/obj/item/clothing/gloves/yellow,/obj/item/weapon/storage/toolbox/electrical{pixel_y = 5},/turf/simulated/floor,/area/engine/engineering) @@ -5668,9 +5668,9 @@ "ceZ" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod4/station) "cfa" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/shuttle/escape_pod4/station) "cfb" = (/obj/structure/cable,/obj/machinery/power/tracker,/turf/simulated/floor/plating/airless,/area/solar/starboard) -"cfc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) -"cfd" = (/obj/item/stack/sheet/plasteel{amount = 10},/obj/structure/table,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/engine/engineering) -"cfe" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/engine/engineering) +"cfc" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/clothing/ears/earmuffs{pixel_x = -3; pixel_y = -2},/turf/simulated/floor,/area/engine/engineering) +"cfd" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/turf/simulated/floor,/area/engine/engineering) +"cfe" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/engine/engineering) "cff" = (/obj/structure/table,/obj/item/stack/rods{amount = 50},/turf/simulated/floor,/area/engine/engineering) "cfg" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) "cfh" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering) @@ -5690,7 +5690,7 @@ "cfv" = (/obj/machinery/camera{c_tag = "Engineering Escape Pod"; dir = 4; network = list("SS13")},/turf/simulated/floor/plating,/area/engine/engineering) "cfw" = (/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_pod4/station) "cfx" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/shuttle/escape_pod4/station) -"cfy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) +"cfy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/engineering) "cfz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external{name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/engine/engineering) "cfA" = (/obj/machinery/door/poddoor/shutters/preopen{id = "Singularity"; name = "radiation shutters"},/turf/simulated/floor/plating,/area/engine/engineering) "cfB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/poddoor/shutters/preopen{id = "Singularity"; name = "radiation shutters"},/turf/simulated/floor/plating,/area/engine/engineering) @@ -5699,9 +5699,9 @@ "cfE" = (/obj/structure/particle_accelerator/power_box,/turf/simulated/floor/plating,/area/engine/engineering) "cfF" = (/obj/item/weapon/screwdriver,/turf/simulated/floor,/area/engine/engineering) "cfG" = (/obj/machinery/door/airlock/external{name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/engine/engineering) -"cfH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering) +"cfH" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "Secure Gate"; name = "security blast door"},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/engine/engineering) "cfI" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/stack/cable_coil,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/turf/simulated/floor,/area/engine/engineering) -"cfJ" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/clothing/ears/earmuffs{pixel_x = -3; pixel_y = -2},/obj/machinery/light,/turf/simulated/floor,/area/engine/engineering) +"cfJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/engine/engineering) "cfK" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor,/area/engine/engineering) "cfL" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor,/area/engine/engineering) "cfM" = (/obj/machinery/light/small{dir = 8},/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/engine/engineering) @@ -8102,6 +8102,7 @@ "cZP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor,/area/mine/living_quarters) "cZQ" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1},/turf/simulated/floor,/area/mine/living_quarters) "cZR" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/obj/machinery/light,/turf/simulated/floor,/area/mine/living_quarters) +"cZS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/aft) "cZT" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/mine/living_quarters) "cZU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor/plating,/area/mine/living_quarters) "cZV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor/plating,/area/mine/living_quarters) @@ -8233,6 +8234,9 @@ "dcr" = (/obj/structure/barricade/wooden,/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{dir = 4; icon_state = "loadingarea"},/area/mine/production) "dcs" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/obj/structure/plasticflaps,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) "dct" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) +"dcu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/engine/engineering) +"dcv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/maintenance/portsolar) +"dcw" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/engine/engineering) "dcx" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/disposal) "dcy" = (/obj/machinery/conveyor{dir = 8; id = "garbage"},/turf/simulated/floor/plating,/area/maintenance/disposal) "dcz" = (/obj/machinery/conveyor{dir = 8; id = "garbage"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/disposal) @@ -8267,6 +8271,66 @@ "ddc" = (/obj/machinery/teleport/hub,/turf/simulated/floor/plating/airless,/area/AIsattele) "ddd" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating/airless,/area/AIsattele) "dde" = (/obj/structure/closet/crate,/obj/item/device/aicard,/obj/item/device/multitool,/obj/item/weapon/weldingtool,/obj/item/weapon/wrench,/turf/simulated/floor/plating/airless,/area/AIsattele) +"ddf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/gravity_generator,/turf/simulated/floor,/area/engine/engineering) +"ddg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/engine/gravity_generator) +"ddh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 4},/area/engine/gravity_generator) +"ddi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/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{icon_state = "vault"; dir = 8},/area/engine/gravity_generator) +"ddj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor{icon_state = "vault"; dir = 1},/area/engine/gravity_generator) +"ddk" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/aft) +"ddl" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/aft) +"ddm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/engine/gravity_generator) +"ddn" = (/turf/simulated/floor{icon_state = "dark"},/area/engine/gravity_generator) +"ddo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/simulated/floor/plating,/area/maintenance/aft) +"ddp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/engine/gravity_generator) +"ddq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/light{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/engine/gravity_generator) +"ddr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/engine/gravity_generator) +"dds" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/aft) +"ddt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/engine/gravity_generator) +"ddu" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 1; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/aft) +"ddv" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/engine/gravity_generator) +"ddw" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/aft) +"ddx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor{icon_state = "dark"},/area/engine/gravity_generator) +"ddy" = (/obj/structure/closet,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/aft) +"ddz" = (/obj/structure/closet,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/aft) +"ddA" = (/obj/machinery/camera{c_tag = "Gravity Generator Room"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor{icon_state = "dark"},/area/engine/gravity_generator) +"ddB" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "vault"; dir = 1},/area/engine/gravity_generator) +"ddC" = (/obj/machinery/gravity_generator/main/station,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/engine/gravity_generator) +"ddD" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "vault"; dir = 4},/area/engine/gravity_generator) +"ddE" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/engine/gravity_generator) +"ddF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/engine/gravity_generator) +"ddG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/engine/gravity_generator) +"ddH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "dark"},/area/engine/gravity_generator) +"ddI" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "dark"},/area/engine/gravity_generator) +"ddJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "dark"},/area/engine/gravity_generator) +"ddK" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "Secure Gate"; name = "security blast door"},/obj/structure/window/reinforced{dir = 8},/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/plating,/area/engine/gravity_generator) +"ddL" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "Secure Gate"; name = "security blast door"},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/engine/gravity_generator) +"ddM" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "Secure Gate"; name = "security blast door"},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/engine/gravity_generator) +"ddN" = (/obj/machinery/door/airlock/glass_command{name = "Gravity Generator Area"; req_access_txt = "19; 61"},/turf/simulated/floor{icon_state = "dark"},/area/engine/gravity_generator) +"ddO" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "Secure Gate"; name = "security blast door"},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/engine/gravity_generator) +"ddP" = (/obj/machinery/camera{c_tag = "Gravity Generator Foyer"},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/closet/radiation,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/gravity_generator) +"ddQ" = (/obj/structure/closet/radiation,/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = -32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/gravity_generator) +"ddR" = (/obj/structure/table,/obj/item/weapon/paper/gravity_gen{layer = 3},/obj/item/weapon/pen/blue,/turf/simulated/floor,/area/engine/gravity_generator) +"ddS" = (/turf/simulated/floor,/area/engine/gravity_generator) +"ddT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/stool/bed/chair/office/light{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/gravity_generator) +"ddU" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/gravity_generator) +"ddV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/engine/gravity_generator) +"ddW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/gravity_generator) +"ddX" = (/obj/machinery/door/airlock/highsecurity{name = "Gravity Generator Room"; req_access_txt = "19;23"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/engine/gravity_generator) +"ddY" = (/obj/machinery/door/airlock/highsecurity{name = "Gravity Generator Foyer"; req_access_txt = "19;23"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/engine/engineering) +"ddZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/gravity_generator) +"dea" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/engine/engineering) +"deb" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/engine/engineering) +"dec" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/tcommsat/computer) +"ded" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/tcommsat/computer) +"dee" = (/obj/machinery/door/airlock/engineering{name = "Telecommunications"; req_access_txt = "61"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/tcommsat/computer) +"def" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/maintenance/aft) +"deg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/tcommsat/server) +"deh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/wall/r_wall,/area/tcommsat/server) +"dei" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/simulated/wall/r_wall,/area/tcommsat/computer) +"dej" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/aft) +"dek" = (/obj/machinery/alarm{pixel_y = 23},/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "yellow"},/area/engine/engineering) +"del" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/wall/r_wall,/area/engine/engineering) +"dem" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/wall/r_wall,/area/engine/engineering) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -8436,28 +8500,28 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbRkbTjbTkbTlbTkbTmbTnbTobTpbTqbTrbOlbTsbQxbTtbTubTvbRubTwbTtbTtbSrbTxbTybTzbTAbTBbTCbTDbTEbTFbTGbTHbTIbTJbTKbTLbTMbTNbTObTPbGJbIVbNvbTQbTRbSFbTSbIVbQNbSGbPMbPNbTTbLiaafbLjbTUbTVbTWbJeaafaaaaaaaaaaaabLmbIdbIebIebTXbTYbIebIibIebIebIebIebIebMzbNQbMHbEtbEtbEtbEtbQbbTZbNTbUabQbbEtbEtbEtbEtbxqbSZbUbbUcbUdbUebUebakaafaaaaaaaaaaaaaaaaaaaafbUfbUgbUfaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbQrbQrbQrbQrbQrbOlbOlbOlbOlbOlbOlbOlbUhbQxbTtbTtbRubRubRubTtbUibUjbUkbUlbUmbUnbQybzebwJbUobUpbUqbUrbUsbUtbUubUvbUwbUxbUybUzbGJbUAbUBbTQbHMbSFbUCbIVbUDbSGbPMbUEbUFbQSbMtbKcbUGbSLbSLbJeaafaaaaaaaaaaaabMvbIdbUHbIebIebUIbIebUJbUKbULbwRbUMbUNbUObNQbMHbMIbMJbMJbUPbMLbHibMMbMNbUQbURbyCbyCbyCbxqbSZbUSbMYbUTbUUbUVbakaafaafaaaaaaaaaaaaaaaaafbUWbTgbUWaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafSafSafSafRafRafSafRafRafRagxafRafRafRafSafRaafaafaafbwJbDEbzebzebzebzebzebzebzebUXbwJbQwbQxbUYbUZbVabVbbRubRubVcbVdbVcbVebSubVfbQybzebVgbKQbGBbVhbVibVjbUtbVkbVlbVmbVnbVobVpbVqbJSbVrbHMbHMbHMbVsbIVbVtbVubPMbPNbIVbLiaafbJebJebJebJebJeaafaafaafaafaafbtobPSbGYbGYbVvbVwbwRbVxbVybVzbwRbVAbGYbVBbVCbMHbyCbyCbyCbVDbNSbHibNTbHibNUbVEbyCbyCbyCbxqbSZbUbbakbakbakbakbakaaaaafaafaaaaaaaaaaaaaafaaabVFaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafSaaaaaaaafaafaaaaafaafaaaaaaaafaafaafaaaafRaafaaaaaabwJbVGbVHbwJbwJbVIbVJbwJbwJbVKbGrbQwbQxbVLbTtbRubRubRubTtbUibVMbVNbSubVObVPbTBbTDbTDbVQbVRbVSbVibVibVTbUubVUbVVbVWbVXbVYbGJbIVbIYbVZbWabWbbLbbWcbWdbWebSHbOxbOybOzbKbbKcbWhbWibWibJeaafaaaaaaaaaaaabQUbQVbQVbQVbWjbWkbwRbwRbWlbwRbwRbWkbWmbWnbWobWpbyCbyCbyCbWqbWrbWsbWtbHibONbWubMJbMJbOPbxqbSZbWvaaaaaaaaaaaaaaaaaaaafaafaafaaaaaaaaaaafaaabVFaaaaafaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafSaaabWwbWxbWyaaabWwbWxbWyaaabWwbWxbWyaafafRaaaaaaaaabwJbwJbwJbwJaaaaaaaaaaaabwJbVKbWzbQwbQxbTtbWAbWBbRubWCbTtbTtbSrbWDbSubSubWEbQybWFbWGbWHbWIbWJbWKbWLbWMbUubWMbUtbUtbUubWNbGJbWObWPbWQbMkbMkbMmbOsbWRbOwbMnbPNbWSbLiaafbLjbWTbWUbWVbJeaafaaaaaaaaaaaaaafaaaaaabwRbWWbWXbWYbWYbWYbWYbWYbWZbXabtobXbbMHbxqbxqbxqbxqbxqbxqbXcbxqbxqbxqbxqbxqbxqbxqbSZbXdaaaaaaaaaaaaaaaaaabXebXebXebXfaafaafaafaafbVFaafaafaafaafaafagxbXebXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafSaaabWwbXgbWyaaabWwbXgbWyaaabWwbXgbWyaafaafaaaaaaaaaaaaaaaaaaaafaaaaaabwJbwJbwJbXhbXibXjbQxbRubXkbXlbRubXmbXnbRubSrbXobXpbXqbXqbXrbXsbXtbXubXvbXwbXxbXybXzbXAbXBbUtbUtbUubXCbGJbXDbIVbIYbOsbJcbXEbXFbXGbXHbIabXIbXJbQSbMtbKcbXKbWibWibJeaafaaaaaaaaaaaaaafaaaaaabwRbXLbXMbXNbXNbXNbXNbXNbXNbXObGbbXPbXQbXRbXRbXRbXRbXRbXRbXSbXTbXTbXTbXTbXTbXTbXTbXUbUbaaaaaaaaaaaaaaaaaabXeaaaaafaaaaafaaaaaaaaabXVaaaaafaafaaaaaaaaaaaabXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaafRaafbWwbXgbWyaaabWwbXgbWyaafbWwbXgbWyaafaafaaaaaaaaaaaaaaaaaaaafaaaaaabXWbXXbXWbzebzebQwbQxbRubXYbXZbYabYbbYcbRubYdbYebYfbYgbYhbQybYibYjbYkbYlbYmbYnbYobYpbYqbYrbYsbYtbYubYvbGJbYwbLebYxbYybIVbIVbIVbJbbPHbYybPNbRRbLiaafbJebJebJebJebJeaafaafaafaafaafaafaafaafbwRbYzbYAbYAbYBbYCbYDbYAbYAbYEbGbbYFbYGbYHbYIbYJbYJbYGbYGbYGbYGbYKbYGbYGbYLbYMbYNbYObYPaaaaaaaaaaaaaaaaaabXeaaabYQbYQbYQbYQbYQaafbYRaafbYQbYQbYQbYQbYQaaabXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaabWwbXgbWyaafbWwbXgbWyaaabWwbXgbWyaaaaafaafaafaafaafaafaaaaafaaaaafbwJbwJbwJbzebzebQwbQxbQxbQxbQxbQxbQxbQxbQxbQybQybQybQybQybQybwJbYSbwJbYTbYUbYUbYUbYVbYWbYXbYUbYYbYZbZabZbbZcbZdbMpbZebZfbZgbZfbZebZhbZebZibOsbZjaafaafaafaafaafaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaabZkbUHbZkaaaaaaaafbGbbZlbZmbZnbZnbZobakbZmbZnbZnbZobakbZmbZnbZnbZobakbakbakaaaaaaaaaaaaaaaaaabXeaafbZpbZqbZqbZqbZqbZrbYRbZsbZtbZtbZtbZtbZuaafbXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafSafSafRaafaaabWwbXgbWyaafbWwbXgbWyaaabWwbXgbWyaafaafaaaaaaaaaaaaaafaafbZvbZwbZwbZwbZwbZxbzebzebQwbwJbZybZzbZAbZAbZAbZAbZAbZAbZAbZAbZAbZBbZBbZAbZCbZDbYTcbqcbrcbocbpcaycbnbYUbZKbZLbZMbGJbZNbZObZPbSJbZRbZSbZTbWfbIVbZVbZWbSIbIXaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaabZYbYCbZYaaaaaaaafbZZcaaaaaaafaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaabXeaafcabcabcabcabcabaaabYRaaacabcabcabcabcabaafbXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafSaaaaafaaaaafaafcacaafaafaafcacaafaaaaafcacaafaaaaafaaaaaaaaaaaacadcaecafcagcahcaicajcakcalcalcambwJcancaocapcapcapcapcapcapcapcapcapcapcapcapcaqcarcascatccoccpccqccrccScazcaAcaBcaCcaDcaEcaFcaGcaHcaGcaFcaGcaHcaGcaIcaGcaIcaJaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaKcaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaabXeaaaaafaaaaafaafaafaaabYRaaaaafaaaaafaaaaafaaabXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafRaafcaLcaMcaMcaNcaOcaOcaOcaOcaOcaOcaOcaOcaOcaOcaOcaPcaMcaMcaMcaMcaQcaRcaQcaScaTcaUcaVbzebzebzecaWcaXcaYcaZcapcbacbacbbcapcbccbdcbecbfcbgcbhcbicbjcbkcblcbmcbVcbXcbYbZHcbWcbscbtcbucbvcapaafcbwaafcbxaafcbwaafcbxaafcbyaafcbyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaabXeaaabYQbYQbYQbYQbYQaafbYRaafbYQbYQbYQbYQbYQaafbXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafSaaaaafaaaaafaafcbzaafaaaaafcbzaafaaaaafcbzaafaaaaaaaaaaaaaaaaaacadcaecbAcbBcbCcbDbZwcbEbzebzebzebzebzfcbFcapcbGcbHcbIcbJcbKcbLcbMcbNcbOcbPcbQcbRcbScbTcbUbZIbZFbZEbZHbZGbYUcbZcbZcbZcapbJeccabLjccabJeccabLjccabJeccbbLjcccbJeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccdaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaabXeaafbZpbZqbZqbZqbZqbZrbYRbZsbZtbZtbZtbZtbZuaafbXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafSafSafRaafaafbWwccebWyaaabWwccebWyaaabWwccebWyaafaaaaaaaaaaaaaaaaafaafccfbZwbZwbZwbZwbwJbwJbwJbwJbzeccgbNjcapcchcbIcbIcbJcciccjcckcckcckccjccjcclcaBccmccncawcavcavcaubZJbYUccsbZLcctcapbJeccuccvccwbJeccxccycczbJeccAccBccCbJeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaabXeaafcabcabcabcabcabaaabYRaafcabcabcabcabcabaaabXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWwccebWyaafbWwccebWyaaabWwccebWyaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaafaafaafbwJccDbzebzebzebzebNjcapccEccEccFcapccGccHccIccJccJcaBccKccLccMccNccOccPccQccRcaxccTccUccVccWccXcapbJeccYccZccYbJecdacdbcdabJecdccddcdebJeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaabXfaaaaafaaaaafaaaaafaaacdfaaaaafaaaaafaafaafaafbXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBjaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafRaafbWwccebWyaaabWwccebWyaaabWwccebWyaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwJcdgbzebzebzebzebNjcapccEccEccFcapcdhcdicdjcdkcdlcdmcdncbjcdmcdocdpcdqcdrcdscdtcducdvcdscaBcdwcapbJeccYcdxccYbJecdacdycdabJecdecdzcdebJeaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXeaaabYQbYQbYQbYQbYQaafbVFaafbYQbYQbYQbYQbYQaafbXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafRaafbWwccebWyaaabWwccebWyaafbWwccebWyaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaabwJbzebzecapcdAcapcdBcapccEccFccFcapcdCcdDcdEcdFccJcducdGcdHcdGcdIcdJcdKcdLcdLcdMcdLcdLcdLcdNcdOcapbJebJebJebJebJebJebJebJebJebJebJebJebJeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaabXeaafbZpbZqbZqbZqbZqcdPcdQcdPbZtbZtbZtbZtbZuaafbXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagxaafbWwcdRbWyaaabWwcdRbWyaaabWwcdRbWyaafafRaafaafaafaafaafaafaafaafaafaafaafbwJbzecdScapcdTcapcdUcapcapcapcapcapcdVcaBcdWcdXcdXcbQcbQcbQcdYcdZcdNcaBcaBcaBcaBceacaBcaBcdtcebcapaafaaaaaaaaaaafaafaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXeaafcabcabcabcabcabaaabVFaaacabcabcabcabcabaaabXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafRaaaaafaaaaaaaaaaafaafaafaaaaaaaafaafaaaafRaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwJbDEbDEcapceccedceecefcegcehceicejcekcaBcelceacaBcemcctcapcencapcencapcctcemcaBcaBceocaBcdtcepcapcapcdicdicdicapaaaaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXeaaaaaaaafaafaafaaaaaabVFaafaaaaaaaafaafaaaaaabXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafSafSafRafSafSagxafRafRafRafRafSafRafRafSceqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwJbwJbwJcapcaBcaBcercescetcetceucevcdtcaBcewcexcaBceycapcezceAceBceAceCcapceDcaBcexceEcaBcdtcaBceCcapceFceGceHceHceIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXebXebXebXebXeaaaaaaaaabVFaaaaaaaaabXebXebXebXfbXeaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacapcapceJceKccJcaBceLceMceNcdtceacaBcbKceOceOcePceQceRceScdWceTceUcdYcdYcdNcaBceacdtcaBceVceWcbIceXceYceZcfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXeaafcfbaafbXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfccfdcfecaBcffcfgcfhcdtcficfjcfkcflcfmcapcfncfocfpceacfqcapcfrcfscfscfjcficdtcftcfucapcfvcfwceHceHcfxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXeaaaaafaaabXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafcfycaBcaBcaBcaBcdicdicfzcapcfAcfBcfBcfBcapcfCcfDcfEcfFceVcapcfBcfBcfBcfAcapcfzcdicapcapcfGcdicdicctaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXebXebXebXebXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaafaaaaafaaacfHcfIcfJcfKcfLcdicfMcfNcapcfOcfPcfQcfRcfScfTcfUcfVcfWceVcfXcfPcfPcfPcfYcapcfZcgacapcgbcbIcgccfGaagaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagceJcapcapcapcapcapcapcfzcapcapcdmcgdcgecgfcggcfjcghcfjcgicgjcgecgdcgkcapcapcfzcapcapcdicdicdicdicglaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaafaagaagaafaaaaafaagcapcgmcgncgoaaaaaaaaacgpcgqcgdcgdcgdcgdcgdcgqcgraaaaaaaaacgscgtcgucapaaaaafaafaaaaafaafaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafSaaaaaaaafaafaaaaafaafaaaaaaaafaafaafaaaafRaafaaaaaabwJbVGbVHbwJbwJbVIbVJbwJbwJbVKbGrbQwbQxbVLbTtbRubRubRubTtbUibVMbVNbSubVObVPdedbTDbTDbVQbVRbVSbVibVibVTbUubVUbVVbVWbVXbVYbGJbIVbIYbVZbWabWbbLbbWcbWdbWebSHbOxbOybOzbKbbKcbWhbWibWibJeaafaaaaaaaaaaaabQUbQVbQVbQVbWjbWkbwRbwRbWlbwRbwRbWkbWmbWnbWobWpbyCbyCbyCbWqbWrbWsbWtbHibONbWubMJbMJbOPbxqbSZbWvaaaaaaaaaaaaaaaaaaaafaafaafaaaaaaaaaaafaaabVFaaaaafaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafSaaabWwbWxbWyaaabWwbWxbWyaaabWwbWxbWyaafafRaaaaaaaaabwJbwJbwJbwJaaaaaaaaaaaabwJbVKbWzbQwbQxbTtbWAbWBbRubWCbTtbTtbSrbWDbSubSubWEdecbWFbWGbWHbWIbWJbWKbWLbWMbUubWMbUtbUtbUubWNbGJbWObWPbWQbMkbMkbMmbOsbWRbOwbMnbPNbWSbLiaafbLjbWTbWUbWVbJeaafaaaaaaaaaaaaaafaaaaaabwRbWWbWXbWYbWYbWYbWYbWYbWZbXabtobXbbMHbxqbxqbxqbxqbxqbxqbXcbxqbxqbxqbxqbxqbxqbxqbSZbXdaaaaaaaaaaaaaaaaaabXebXebXebXfaafaafaafaafbVFaafaafaafaafaafagxbXebXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafSaaabWwbXgbWyaaabWwbXgbWyaaabWwbXgbWyaafaafaaaaaaaaaaaaaaaaaaaafaaaaaabwJbwJbwJbXhbXibXjbQxbRubXkbXlbRubXmbXnbRubSrbXobXpbXqbXqdeebXsbXtbXubXvbXwbXxbXybXzbXAbXBbUtbUtbUubXCbGJbXDbIVbIYbOsbJcbXEbXFbXGbXHbIabXIbXJbQSbMtbKcbXKbWibWibJeaafaaaaaaaaaaaaaafaaaaaabwRbXLbXMbXNbXNbXNbXNbXNbXNbXObGbbXPbXQbXRbXRbXRbXRbXRbXRbXSbXTbXTbXTbXTbXTbXTbXTbXUbUbaaaaaaaaaaaaaaaaaabXeaaaaafaaaaafaaaaaaaaabXVaaaaafaafaaaaaaaaaaaabXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaafRaafbWwbXgbWyaaabWwbXgbWyaafbWwbXgbWyaafaafaaaaaaaaaaaaaaaaaaaafaaaaaabXWbXXbXWbzebzebQwbQxbRubXYbXZbYabYbbYcbRubYdbYebYfbYgbYhdecbYibYjbYkbYlbYmbYnbYobYpbYqbYrbYsbYtbYubYvbGJbYwbLebYxbYybIVbIVbIVbJbbPHbYybPNbRRbLiaafbJebJebJebJebJeaafaafaafaafaafaafaafaafbwRbYzbYAbYAbYBbYCbYDbYAbYAbYEbGbbYFbYGbYHbYIbYJbYJbYGbYGbYGbYGbYKbYGbYGbYLbYMbYNbYObYPaaaaaaaaaaaaaaaaaabXeaaabYQbYQbYQbYQbYQaafbYRaafbYQbYQbYQbYQbYQaaabXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaabWwbXgbWyaafbWwbXgbWyaaabWwbXgbWyaaaaafaafaafaafaafaafaaaaafaaaaafbwJbwJbwJbzebzebQwdehdegdegdegdegdegdegdegbTBbTBbTBbTBbTBdeibwJbYSbwJbYTbYUbYUbYUbYVbYWbYXbYUbYYbYZbZabZbbZcbZdbMpbZebZfbZgbZfbZebZhbZebZibOsbZjaafaafaafaafaafaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaabZkbUHbZkaaaaaaaafbGbbZlbZmbZnbZnbZobakbZmbZnbZnbZobakbZmbZnbZnbZobakbakbakaaaaaaaaaaaaaaaaaabXeaafbZpbZqbZqbZqbZqbZrbYRbZsbZtbZtbZtbZtbZuaafbXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafSafSafRaafaaabWwbXgbWyaafbWwbXgbWyaaabWwbXgbWyaafaafaaaaaaaaaaaaaafaafbZvbZwbZwbZwbZwbZxbzebzebQwdefbZybZzbZAbZAbZAbZAbZAbZAbZAbZAbZAbZBbZBbZAbZCbZDbYTcbqcbrcbocbpcaycbnbYUbZKbZLbZMbGJbZNbZObZPbSJbZRbZSbZTbWfbIVbZVbZWbSIbIXaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaabZYbYCbZYaaaaaaaafbZZcaaaaaaafaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaabXeaafcabcabcabcabcabaaabYRaaacabcabcabcabcabaafbXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafSaaaaafaaaaafaafcacaafaafaafcacaafaaaaafcacaafaaaaafaaaaaaaaaaaacadcaecafcagcahcaicajcakcalcalcamdefcancaodelcarcarcarcarcarcarcarcarcarcardemcaqcarcascatccoccpccqccrccScazcaAcaBcaCcaDcaEcaFcaGcaHcaGcaFcaGcaHcaGcaIcaGcaIcaJaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaKcaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaabXeaaaaafaaaaafaafaafaaabYRaaaaafaaaaafaaaaafaaabXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafRaafcaLcaMcaMcaNcaOcaOcaOcaOcaOcaOcaOcaOcaOcaOcaOcaPcaMcaMcaMcaMcaQcaRcaQcaScaTcaUcaVbzebzebzecaWdejcaYcaZdcucbacbacbbcapcbccbdcbecbfcbgcbhdekcbjcbkcblcbmcbVcbXcbYbZHcbWcbscbtcbucbvcapaafcbwaafcbxaafcbwaafcbxaafcbyaafcbyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaabXeaaabYQbYQbYQbYQbYQaafbYRaafbYQbYQbYQbYQbYQaafbXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafSaaaaafaaaaafaafcbzaafaaaaafcbzaafaaaaafcbzaafaaaaaaaaaaaaaaaaaacadcaedcvcbBcbCcbDbZwcbEbzebzebzecZSbzfcbFdcucbGcbHcbIcbJcbKcbLcbMcbNcbOcbPcfJcbRcbScbTcbUbZIbZFbZEbZHbZGbYUcbZcbZcbZcapbJeccabLjccabJeccabLjccabJeccbbLjcccbJeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccdaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaabXeaafbZpbZqbZqbZqbZqbZrbYRbZsbZtbZtbZtbZtbZuaafbXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafSafSafRaafaafbWwccebWyaaabWwccebWyaaabWwccebWyaafaaaaaaaaaaaaaaaaafcbicbicbicbicbicbicbibwJbwJbwJcZSccgbNjdcucchcbIcbIcbJcciccjcckcckcckddfdcwcclcaBccmccncawcavcavcaubZJbYUccsbZLcctcapbJeccuccvccwbJeccxccycczbJeccAccBccCbJeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaabXeaafcabcabcabcabcabaaabYRaafcabcabcabcabcabaaabXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWwccebWyaafbWwccebWyaaabWwccebWyaaaaaaaaaaaaaaaaaaaafcbiddnddjddiddhddgddmddlddkbTCddobzebNjdcuccEccEccFcapccGccHccIccJccJcaBccKccLccMccNccOccPccQccRcaxccTccUccVccWccXcapbJeccYccZccYbJecdacdbcdabJecdccddcdebJeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaabXfaaaaafaaaaafaaaaafaaacdfaaaaafaaaaafaafaafaafbXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBjaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafRaafbWwccebWyaaabWwccebWyaaabWwccebWyaafaaaaaaaaaaaaaaaaaacbiddvddpddnddrddqddtddsddubPxbPxbPxddwcaDccEccEccFcapcdhcdicdjcdkcdlcdmcdncbjcdmcdocdpcdqcdrcdscdtcducdvcdscaBcdwcapbJeccYcdxccYbJecdacdycdabJecdecdzcdebJeaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXeaaabYQbYQbYQbYQbYQaafbVFaafbYQbYQbYQbYQbYQaafbXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafRaafbWwccebWyaaabWwccebWyaafbWwccebWyaafaafaafaafaaaaaaaafcbiddxddDddCddBddAcbiddzddycapcdAcapcdBcapccEccFccFcapcdCcdDcdEcdFccJcducdGcdHcdGcdIcdJcdKcdLcdLcdMcdLcdLcdLcdNcdOcapbJebJebJebJebJebJebJebJebJebJebJebJebJeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaabXeaafbZpbZqbZqbZqbZqcdPcdQcdPbZtbZtbZtbZtbZuaafbXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagxaafbWwcdRbWyaaabWwcdRbWyaaabWwcdRbWyaafafRaafaafaafaafaafcbiddEddHddnddJddIcbiddFddGcapcdTcapcdUcapcapcapcapcapcdVcaBcdWcdXcdXcbQcbQcbQcdYcdZcdNcaBcaBcaBcaBceacaBcaBcdtcebcapaafaaaaaaaaaaafaafaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXeaafcabcabcabcabcabaaabVFaaacabcabcabcabcabaaabXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafRaaaaafaaaaaaaaaaafaafaafaaaaaaaafaafaaaafRaafaaaaaaaaaaafcbiddKddOddNddMddLcbiddQddPccsceccedceecefcegcehceicejcekcaBcelceacaBcemcctcapcencapcencapcctcemcaBcaBceocaBcdtcepcapcapcdicdicdicapaaaaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXeaaaaaaaafaafaafaaaaaabVFaafaaaaaaaafaafaaaaaabXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafSafSafRafSafSagxafRafRafRafRafSafRafRafSceqaaaaaaaaaaaaaafcbiddRddTddSddVddUddXddWddZddYceQcbQdeadebcetcetceucevcdtcaBcewcexcaBceycapcezceAceBceAceCcapceDcaBcexceEcaBcdtcaBceCcapceFceGceHceHceIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXebXebXebXebXeaaaaaaaaabVFaaaaaaaaabXebXebXebXfbXeaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcbicdScdgccDccfcbAcbicaXbXrccscaBcaBcdtcaBcaBceLceMceNcdtceacaBcbKceOceOcePceQceRceScdWceTceUcdYcdYcdNcaBceacdtcaBceVceWcbIceXceYceZcfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXeaafcfbaafbXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcbicbicbicbicbicbicbicbicbicapcercaBcdtcaBcaBcffcfgcfhcdtcficfjcfkcflcfmcapcfncfocfpceacfqcapcfrcfscfscfjcficdtcftcfucapcfvcfwceHceHcfxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXeaaaaafaaabXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaagaafaafaafaafaafcapcescaBcdtcaBcaBceKcdicdicfzcapcfAcfBcfBcfBcapcfCcfDcfEcfFceVcapcfBcfBcfBcfAcapcfzcdicapcapcfGcdicdicctaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXebXebXebXebXeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaafaafcapcfIcfdcdtcfccfKcfLcdicfMcfNcapcfOcfPcfQcfRcfScfTcfUcfVcfWceVcfXcfPcfPcfPcfYcapcfZcgacapcgbcbIcgccfGaagaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcapceJcfecfycfHceJcapcapcapcfzcapcapcdmcgdcgecgfcggcfjcghcfjcgicgjcgecgdcgkcapcapcfzcapcapcdicdicdicdicglaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaagaagaafaaaaafaagcapcgmcgncgoaaaaaaaaacgpcgqcgdcgdcgdcgdcgdcgqcgraaaaaaaaacgscgtcgucapaaaaafaafaaaaafaafaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaafaaaaaaaaaaafcapcgvcgwaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaacgxcgvcapaafaafaaaaaaaaaaagaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaacapcgycgzcgAaafaafaafcgBaaaaaaaaaaaacgBaaaaaacgBaafaafaafcgAcgCcgDcapaaaaafaaaaafaafaafaafaafaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacapcgvcgAcgEaaaaaaaafaaaaaaaaaaaaaaacgFaaaaaaaaaaafaaaaaacgAcgAcgvcapaaaaaaaaaaaaaaaaafaaaaacaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index 7aa3c4120c3..9fbecfa3230 100644 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -42,7 +42,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station var/used_light = 0 var/used_environ = 0 - var/has_gravity = 1 + var/has_gravity = 0 var/no_air = null var/area/master // master area used for power calcluations @@ -136,6 +136,7 @@ proc/process_ghost_teleport_locs() lighting_use_dynamic = 0 var/push_dir = SOUTH var/destination + has_gravity = 1 /area/shuttle/arrival name = "\improper Arrival Shuttle" @@ -305,6 +306,7 @@ proc/process_ghost_teleport_locs() name = "\improper Centcom" icon_state = "centcom" requires_power = 0 + has_gravity = 1 /area/centcom/control name = "\improper Centcom Docks" @@ -330,6 +332,7 @@ proc/process_ghost_teleport_locs() name = "\improper Syndicate Mothership" icon_state = "syndie-ship" requires_power = 0 + has_gravity = 1 /area/syndicate_mothership/control name = "\improper Syndicate Control Room" @@ -345,6 +348,7 @@ proc/process_ghost_teleport_locs() name = "\improper Asteroid" icon_state = "asteroid" requires_power = 0 + has_gravity = 1 /area/asteroid/cave // -- TLE name = "\improper Asteroid - Underground" @@ -360,19 +364,6 @@ proc/process_ghost_teleport_locs() lighting_use_dynamic = 1 InitializeLighting() - - - - - - - - - - - - - /area/planet/clown name = "\improper Clown Planet" icon_state = "honk" @@ -387,6 +378,7 @@ proc/process_ghost_teleport_locs() name = "\improper Thunderdome" icon_state = "thunder" requires_power = 0 + has_gravity = 1 /area/tdome/tdome1 name = "\improper Thunderdome (Team 1)" @@ -411,6 +403,7 @@ proc/process_ghost_teleport_locs() name = "\improper Syndicate Station" icon_state = "yellow" requires_power = 0 + has_gravity = 1 /area/syndicate_station/start name = "\improper Syndicate Forward Operating Base" @@ -456,6 +449,7 @@ proc/process_ghost_teleport_locs() name = "\improper Wizard's Den" icon_state = "yellow" requires_power = 0 + has_gravity = 1 @@ -841,6 +835,10 @@ proc/process_ghost_teleport_locs() name = "\improper Chief Engineer's office" icon_state = "engine_control" + gravity_generator + name = "Gravity Generator Room" + icon_state = "blue" + //Solars @@ -1213,10 +1211,12 @@ proc/process_ghost_teleport_locs() /area/djstation name = "\improper Ruskie DJ Station" icon_state = "DJ" + has_gravity = 1 /area/djstation/solars name = "\improper DJ Station Solars" icon_state = "DJ" + has_gravity = 1 //DERELICT @@ -1474,6 +1474,7 @@ proc/process_ghost_teleport_locs() /area/awaymission name = "\improper Strange Location" icon_state = "away" + has_gravity = 1 /area/awaymission/example name = "\improper Strange Station" diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index a5e978a3f6d..bd03bbf1207 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -260,9 +260,6 @@ if(!L.lastarea) L.lastarea = get_area(L.loc) var/area/newarea = get_area(L.loc) - var/area/oldarea = L.lastarea - if((oldarea.has_gravity == 0) && (newarea.has_gravity == 1) && (L.m_intent == "run")) // Being ready when you change areas gives you a chance to avoid falling all together. - thunk(L) L.lastarea = newarea @@ -300,32 +297,18 @@ if(L.&& L.client) L.client.played = 0 -/area/proc/gravitychange(var/gravitystate = 0) - - has_gravity = gravitystate - - if(gravitystate) - for(var/mob/living/carbon/human/M in contents) - thunk(M) - /area/proc/mob_activate(var/mob/living/L) return -/area/proc/thunk(mob) - if(istype(mob,/mob/living/carbon/human/)) // Only humans can wear magboots, so we give them a chance to. - if((istype(mob:shoes, /obj/item/clothing/shoes/magboots) && (mob:shoes.flags & NOSLIP))) - return - - if(istype(get_turf(mob), /turf/space)) // Can't fall onto nothing. - return - - if((istype(mob,/mob/living/carbon/human/)) && (mob:m_intent == "run")) // Only clumbsy humans can fall on their asses. - mob:AdjustStunned(5) - mob:AdjustWeakened(5) - - else if (istype(mob,/mob/living/carbon/human/)) - mob:AdjustStunned(2) - mob:AdjustWeakened(2) - - mob << "Gravity!" - +/proc/has_gravity(var/atom/AT) + var/area/A = get_area(AT) + var/turf/T = get_turf(AT) + if(istype(T, /turf/space)) // Turf never has gravity + return 0 + else if(A && A.has_gravity) // Areas which always has gravity + return 1 + else + // There's a gravity generator on our z level + if(T && gravity_generators["[T.z]"] && length(gravity_generators["[T.z]"])) + return 1 + return 0 \ No newline at end of file diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 8bb4db44c53..7692a22952d 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -76,7 +76,6 @@ var/dy = (target.y > src.y) ? NORTH : SOUTH var/dist_travelled = 0 var/dist_since_sleep = 0 - var/area/a = get_area(src.loc) var/tdist_x = dist_x; var/tdist_y = dist_y; @@ -90,7 +89,7 @@ tdy = dx; var/error = tdist_x/2 - tdist_y - while(target && (((((dist_x > dist_y) && ((src.x < target.x && dx == EAST) || (src.x > target.x && dx == WEST))) || ((dist_x <= dist_y) && ((src.y < target.y && dy == NORTH) || (src.y > target.y && dy == SOUTH))) || (src.x > target.x && dx == WEST)) && dist_travelled < range) || (a && a.has_gravity == 0) || istype(src.loc, /turf/space))) + while(target && (((((dist_x > dist_y) && ((src.x < target.x && dx == EAST) || (src.x > target.x && dx == WEST))) || ((dist_x <= dist_y) && ((src.y < target.y && dy == NORTH) || (src.y > target.y && dy == SOUTH))) || (src.x > target.x && dx == WEST)) && dist_travelled < range) || !has_gravity(src))) // only stop when we've gone the whole distance (or max throw range) and are on a non-space tile, or hit something, or hit the end of the map, or someone picks it up if(!src.throwing) break if(!istype(src.loc, /turf)) break @@ -107,8 +106,6 @@ dist_since_sleep = 0 sleep(1) - a = get_area(src.loc) - //done throwing, either because it hit something or it finished moving src.throwing = 0 if(isobj(src)) src.throw_impact(get_turf(src)) diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index 2d2ea1cfcbb..04f3817658e 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -108,6 +108,7 @@ Class Procs: var/state_open = 0 var/mob/living/occupant = null var/unsecuring_tool = /obj/item/weapon/wrench + var/interact_offline = 0 // Can the machine be interacted with while de-powered. /obj/machinery/New() ..() @@ -198,7 +199,7 @@ Class Procs: /obj/machinery/Topic(href, href_list) ..() - if(stat & (NOPOWER|BROKEN)) + if(!interact_offline && stat & (NOPOWER|BROKEN)) return 1 if(usr.restrained() || usr.lying || usr.stat) return 1 @@ -237,7 +238,7 @@ Class Procs: return src.attack_hand(user) /obj/machinery/attack_hand(mob/user as mob) - if(stat & (NOPOWER|BROKEN|MAINT)) + if(!interact_offline && stat & (NOPOWER|BROKEN|MAINT)) return 1 if(user.lying || user.stat) return 1 @@ -345,4 +346,4 @@ Class Procs: for(var/var/obj/item/C in component_parts) user << " [C.name]" return 1 - return 0 + return 0 diff --git a/code/game/objects/effects/effect_system.dm b/code/game/objects/effects/effect_system.dm index d629f0a27d2..c129b9f68a0 100644 --- a/code/game/objects/effects/effect_system.dm +++ b/code/game/objects/effects/effect_system.dm @@ -683,7 +683,7 @@ steam.start() -- spawns the effect src.processing = 0 var/turf/T = get_turf(src.holder) if(T != src.oldposition) - if(istype(T, /turf/space)) + if(!has_gravity(T)) var/obj/effect/effect/ion_trails/I = new /obj/effect/effect/ion_trails(src.oldposition) src.oldposition = T I.dir = src.holder.dir diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm index dd76b434ea5..9d42eb0a0a3 100644 --- a/code/game/objects/items/weapons/explosives.dm +++ b/code/game/objects/items/weapons/explosives.dm @@ -14,9 +14,11 @@ var/timer = 10 var/atom/target = null var/open_panel = 0 + var/image_overlay = null /obj/item/weapon/plastique/New() wires = new(src) + image_overlay = image('icons/obj/assemblies.dmi', "plastic-explosive2") ..() /obj/item/weapon/plastique/suicide_act(var/mob/user) @@ -80,7 +82,7 @@ message_admins("[key_name(user, user.client)](?) planted C4 on [target.name] at ([target.x],[target.y],[target.z] - JMP) with [timer] second fuse",0,1) log_game("[key_name(user)] planted C4 on [target.name] at ([target.x],[target.y],[target.z]) with [timer] second fuse") - target.overlays += image('icons/obj/assemblies.dmi', "plastic-explosive2") + target.overlays += image_overlay user << "Bomb has been planted. Timer counting down from [timer]." spawn(timer*10) explode(get_turf(target)) @@ -100,9 +102,8 @@ target:dismantle_wall(1) else target.ex_act(1) - if (isobj(target)) - if (target) - del(target) + if(target) + target.overlays -= image_overlay del(src) /obj/item/weapon/plastique/attack(mob/M as mob, mob/user as mob, def_zone) diff --git a/code/game/objects/items/weapons/extinguisher.dm b/code/game/objects/items/weapons/extinguisher.dm index 8c94845baf9..8713c39b2ce 100644 --- a/code/game/objects/items/weapons/extinguisher.dm +++ b/code/game/objects/items/weapons/extinguisher.dm @@ -124,7 +124,7 @@ if(W.loc == my_target) break sleep(2) - if((istype(usr.loc, /turf/space)) || (usr.lastarea && usr.lastarea.has_gravity == 0)) + if(!has_gravity(user)) user.inertia_dir = get_dir(target, user) step(user, user.inertia_dir) else diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 3f3e538b816..adbd08d5988 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -107,7 +107,7 @@ if(ismob(M)) if(!M:lastarea) M:lastarea = get_area(M.loc) - if(M:lastarea.has_gravity == 0) + if(!has_gravity(M)) inertial_drift(M) /* diff --git a/code/modules/mining/mine_areas.dm b/code/modules/mining/mine_areas.dm index 40ed5deb184..06ced5db488 100644 --- a/code/modules/mining/mine_areas.dm +++ b/code/modules/mining/mine_areas.dm @@ -2,6 +2,7 @@ /area/mine icon_state = "mining" + has_gravity = 1 /area/mine/explored name = "Mine" diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index c8af73fd799..bc5fcf45a09 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -266,6 +266,7 @@ /mob/proc/throw_item(atom/target) return + /mob/living/carbon/throw_item(atom/target) throw_mode_off() if(usr.stat || !target) @@ -304,7 +305,7 @@ if(!src.lastarea) src.lastarea = get_area(src.loc) - if((istype(src.loc, /turf/space)) || (src.lastarea.has_gravity == 0)) + if(!has_gravity(src)) src.inertia_dir = get_dir(target, src) step(src, inertia_dir) diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 4aa98a7e2f6..a41bd7a5e7a 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -1,5 +1,5 @@ /mob/living/carbon/human/movement_delay() - if(istype(loc, /turf/space)) + if(!has_gravity(src)) return -1 //It's hard to be slowed down in space by... anything if(reagents.has_reagent("hyperzine")) return -1 diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 80e9f8d41ea..607830a138e 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -174,7 +174,7 @@ if(!mob.lastarea) mob.lastarea = get_area(mob.loc) - if((istype(mob.loc, /turf/space)) || (mob.lastarea.has_gravity == 0)) + if(!has_gravity(mob)) if(!mob.Process_Spacemove(0)) return 0 @@ -357,34 +357,20 @@ if(!isturf(loc)) //if they're in a disposal unit, for example return 1 - /* - if(istype(src,/mob/living/carbon)) - if(src.l_hand && src.r_hand) - return 0 - */ - var/dense_object = 0 for(var/turf/turf in oview(1,src)) if(istype(turf,/turf/space)) continue if(istype(src,/mob/living/carbon/human/)) // Only humans can wear magboots, so we give them a chance to. - if((istype(turf,/turf/simulated/floor)) && (src.lastarea.has_gravity == 0) && !(istype(src:shoes, /obj/item/clothing/shoes/magboots) && (src:shoes:flags & NOSLIP))) + if((istype(turf,/turf/simulated/floor)) && (!has_gravity(src)) && !(istype(src:shoes, /obj/item/clothing/shoes/magboots) && (src:shoes:flags & NOSLIP))) continue else - if((istype(turf,/turf/simulated/floor)) && (src.lastarea.has_gravity == 0)) // No one else gets a chance. + if((istype(turf,/turf/simulated/floor)) && (!has_gravity(src))) // No one else gets a chance. continue - - - /* - if(istype(turf,/turf/simulated/floor) && (src.flags & NOGRAV)) - continue - */ - - dense_object++ break diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm index 367ff166b29..a5b579c3d1c 100644 --- a/code/modules/power/gravitygenerator.dm +++ b/code/modules/power/gravitygenerator.dm @@ -1,140 +1,374 @@ -// It.. uses a lot of power. Everything under power is engineering stuff, at least. -/obj/machinery/computer/gravity_control_computer - name = "Gravity Generator Control" - desc = "A computer to control a local gravity generator. Qualified personnel only." - icon = 'icons/obj/computer.dmi' - icon_state = "airtunnel0e" - anchored = 1 - density = 1 - var/obj/machinery/gravity_generator = null +// +// Gravity Generator +// +var/list/gravity_generators = list() // We will keep track of this by adding new gravity generators to the list, and keying it with the z level. -/obj/machinery/gravity_generator/ - name = "Gravitational Generator" +var/const/POWER_IDLE = 0 +var/const/POWER_UP = 1 +var/const/POWER_DOWN = 2 + +var/const/GRAV_NEEDS_SCREWDRIVER = 0 +var/const/GRAV_NEEDS_WELDING = 1 +var/const/GRAV_NEEDS_PLASTEEL = 2 +var/const/GRAV_NEEDS_WRENCH = 3 + +// +// Abstract Generator +// + +/obj/machinery/gravity_generator + name = "gravitational generator" desc = "A device which produces a gravaton field when set up." - icon = 'icons/obj/singularity.dmi' - icon_state = "TheSingGen" + icon = 'icons/obj/machines/gravity_generator.dmi' anchored = 1 density = 1 + use_power = 0 + unacidable = 1 + var/sprite_number = 0 + +/obj/machinery/gravity_generator/ex_act(severity) + if(severity == 1) // Very sturdy. + set_broken() + +/obj/machinery/gravity_generator/meteorhit() + return + +/obj/machinery/gravity_generator/update_icon() + ..() + icon_state = "[get_status()]_[sprite_number]" + +/obj/machinery/gravity_generator/proc/get_status() + return "off" + +// You aren't allowed to move. +/obj/machinery/gravity_generator/Move() + ..() + del(src) + +/obj/machinery/gravity_generator/proc/set_broken() + stat |= BROKEN + +/obj/machinery/gravity_generator/proc/set_fix() + stat &= ~BROKEN + +/obj/machinery/gravity_generator/part/Del() + set_broken() + if(main_part) + del(main_part) + ..() + +// +// Part generator which is mostly there for looks +// + +/obj/machinery/gravity_generator/part + var/obj/machinery/gravity_generator/main/main_part = null + +/obj/machinery/gravity_generator/part/attackby(obj/item/I as obj, mob/user as mob) + return main_part.attackby(I, user) + +/obj/machinery/gravity_generator/part/get_status() + return main_part.get_status() + +/obj/machinery/gravity_generator/part/attack_hand(mob/user as mob) + return main_part.attack_hand(user) + +/obj/machinery/gravity_generator/part/set_broken() + ..() + if(main_part && !(main_part.stat & BROKEN)) + main_part.set_broken() + +// +// Generator which spawns with the station. +// + +/obj/machinery/gravity_generator/main/station/initialize() + setup_parts() + middle.overlays += "activated" + update_list() + +// +// Main Generator with the main code +// + +/obj/machinery/gravity_generator/main + icon_state = "on_8" + idle_power_usage = 0 + active_power_usage = 3000 + power_channel = ENVIRON + sprite_number = 8 use_power = 1 - idle_power_usage = 200 - active_power_usage = 1000 + interact_offline = 1 var/on = 1 - var/list/localareas = list() - var/effectiverange = 25 + var/breaker = 1 + var/list/parts = list() + var/obj/middle = null + var/charging_state = POWER_IDLE + var/charge_count = 100 + var/current_overlay = null + var/broken_state = 0 - // Borrows code from cloning computer -/obj/machinery/computer/gravity_control_computer/New() +/obj/machinery/gravity_generator/main/Del() // If we somehow get deleted, remove all of our other parts. + on = 0 + update_list() + for(var/obj/machinery/gravity_generator/part/O in parts) + O.main_part = null + del(O) ..() - spawn(5) - updatemodules() - return - return -/obj/machinery/gravity_generator/New() +/obj/machinery/gravity_generator/main/proc/setup_parts() + var/turf/our_turf = get_turf(src) + // 9x9 block obtained from the bottom middle of the block + var/list/spawn_turfs = block(locate(our_turf.x - 1, our_turf.y + 2, our_turf.z), locate(our_turf.x + 1, our_turf.y, our_turf.z)) + var/count = 10 + for(var/turf/T in spawn_turfs) + count-- + if(T == our_turf) // Skip our turf. + continue + var/obj/machinery/gravity_generator/part/part = new(T) + if(count == 5) // Middle + middle = part + part.sprite_number = count; + part.main_part = src + parts += part + part.update_icon() + +/obj/machinery/gravity_generator/main/proc/connected_parts() + return parts.len == 8 + +/obj/machinery/gravity_generator/main/set_broken() ..() - spawn(5) - locatelocalareas() - return - return + for(var/obj/machinery/gravity_generator/M in parts) + if(!(M.stat & BROKEN)) + M.set_broken() + middle.overlays.Cut() + charge_count = 0 + breaker = 0 + set_power() + set_state(0) +/obj/machinery/gravity_generator/main/set_fix() + ..() + for(var/obj/machinery/gravity_generator/M in parts) + if(M.stat & BROKEN) + M.set_fix() + broken_state = 0 + update_icon() + set_power() +// Interaction -/obj/machinery/computer/gravity_control_computer/proc/updatemodules() - src.gravity_generator = findgenerator() - - - -/obj/machinery/gravity_generator/proc/locatelocalareas() - for(var/area/A in range(src,effectiverange)) - if(istype(A, /area/space)) - continue // No (de)gravitizing space. - if(A.master && !( A.master in localareas) ) - localareas += A.master - -/obj/machinery/computer/gravity_control_computer/proc/findgenerator() - var/obj/machinery/gravity_generator/foundgenerator = null - for(dir in list(NORTH,EAST,SOUTH,WEST)) - //world << "SEARCHING IN [dir]" - foundgenerator = locate(/obj/machinery/gravity_generator/, get_step(src, dir)) - if (!isnull(foundgenerator)) - //world << "FOUND" - break - return foundgenerator - - -/obj/machinery/computer/gravity_control_computer/attack_paw(mob/user as mob) - return attack_hand(user) - -/obj/machinery/computer/gravity_control_computer/attack_ai(mob/user as mob) - return attack_hand(user) - -/obj/machinery/computer/gravity_control_computer/attack_hand(mob/user as mob) - user.set_machine(src) - add_fingerprint(user) - - if(stat & (BROKEN|NOPOWER)) - return - - updatemodules() - - var/dat = "

Generator Control System

" - //dat += "Refresh" - if(gravity_generator) - if(gravity_generator:on) - dat += "
Gravity Status: ON

" +// Fixing the gravity generator. +/obj/machinery/gravity_generator/main/attackby(obj/item/I as obj, mob/user as mob) + var/old_broken_state = broken_state + switch(broken_state) + if(GRAV_NEEDS_SCREWDRIVER) + if(istype(I, /obj/item/weapon/screwdriver)) + user << "You secure the screws of the framework." + playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) + broken_state++ + if(GRAV_NEEDS_WELDING) + if(istype(I, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = I + if(WT.remove_fuel(1, user)) + user << "You mend the damaged framework." + playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) + broken_state++ + if(GRAV_NEEDS_PLASTEEL) + if(istype(I, /obj/item/stack/sheet/plasteel)) + var/obj/item/stack/sheet/plasteel/PS = I + if(PS.amount >= 10) + PS.use(10) + user << "You add the plating to the framework." + playsound(src.loc, 'sound/machines/click.ogg', 75, 1) + broken_state++ + else + user << "You need 10 sheets of plasteel." + if(GRAV_NEEDS_WRENCH) + if(istype(I, /obj/item/weapon/wrench)) + user << "You secure the plating to the framework." + playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + set_fix() else - dat += "
Gravity Status: OFF

" + ..() + if(old_broken_state != broken_state) + update_icon() - dat += "
Currently Supplying Gravitons To:
" - - for(var/area/A in gravity_generator:localareas) - if(A.has_gravity && gravity_generator:on) - dat += "[A]
" - - else if (A.has_gravity) - dat += "[A]
" - - else - dat += "[A]
" - - dat += "
Maintainence Functions:
" - if(gravity_generator:on) - dat += " TURN GRAVITY GENERATOR OFF. " - else - dat += " TURN GRAVITY GENERATOR ON. " +/obj/machinery/gravity_generator/main/attack_hand(mob/user as mob) + if(!..()) + return interact(user) +/obj/machinery/gravity_generator/main/interact(mob/user as mob) + if(stat & BROKEN) + return + var/dat = "Gravity Generator Breaker: " + if(breaker) + dat += "ON OFF" else - dat += "No local gravity generator detected!" + dat += "ON OFF " - user << browse(dat, "window=gravgen") - onclose(user, "gravgen") + dat += "
Generator Status:
" + if(charging_state != POWER_IDLE) + dat += "WARNING Radiation Detected.
[charging_state == POWER_UP ? "Charging..." : "Discharging..."]" + else if(on) + dat += "Powered." + else + dat += "Unpowered." + + dat += "
Gravity Charge: [charge_count]%
" + + var/datum/browser/popup = new(user, "gravgen", name) + popup.set_content(dat) + popup.open() -/obj/machinery/computer/gravity_control_computer/Topic(href, href_list) - set background = BACKGROUND_ENABLED +/obj/machinery/gravity_generator/main/Topic(href, href_list) if(..()) return if(href_list["gentoggle"]) - if(gravity_generator:on) - gravity_generator:on = 0 - - for(var/area/A in gravity_generator:localareas) - var/obj/machinery/gravity_generator/G - for(G in world) - if((A.master in G.localareas) && (G.on)) - break - if(!G) - A.gravitychange(0) - - - else - for(var/area/A in gravity_generator:localareas) - gravity_generator:on = 1 - A.gravitychange(1) - + breaker = !breaker + set_power() src.updateUsrDialog() - return \ No newline at end of file + +// Power and Icon States + +/obj/machinery/gravity_generator/main/power_change() + ..() + set_power() + +/obj/machinery/gravity_generator/main/get_status() + if(stat & BROKEN) + return "fix[min(broken_state, 3)]" + return on || charging_state != POWER_IDLE ? "on" : "off" + +/obj/machinery/gravity_generator/main/update_icon() + ..() + for(var/obj/O in parts) + O.update_icon() + +// Set the charging state based on power/breaker. +/obj/machinery/gravity_generator/main/proc/set_power() + var/new_state = 0 + if(stat & (NOPOWER|BROKEN) || !breaker) + new_state = 0 + else if(breaker) + new_state = 1 + + charging_state = new_state ? POWER_UP : POWER_DOWN // Startup sequence animation. + update_icon() + +// Set the state of the gravity. +/obj/machinery/gravity_generator/main/proc/set_state(var/new_state) + charging_state = POWER_IDLE + on = new_state + use_power = on ? 2 : 1 + // Sound the alert if gravity was just enabled or disabled. + var/alert = 0 + if(new_state) // If we turned on + if(gravity_in_level() == 0) + alert = 1 + else + if(gravity_in_level() == 1) + alert = 1 + + update_icon() + update_list() + src.updateUsrDialog() + if(alert) + shake_everyone() + +// Charge/Discharge and turn on/off gravity when you reach 0/100 percent. +// Also emit radiation and handle the overlays. +/obj/machinery/gravity_generator/main/process() + if(stat & BROKEN) + return + if(charging_state != POWER_IDLE) + if(charging_state == POWER_UP && charge_count >= 100) + set_state(1) + else if(charging_state == POWER_DOWN && charge_count <= 0) + set_state(0) + else + if(charging_state == POWER_UP) + charge_count += 2 + else if(charging_state == POWER_DOWN) + charge_count -= 2 + + if(charge_count % 4 == 0 && prob(75)) // Let them know it is charging/discharging. + playsound(src.loc, 'sound/effects/EMPulse.ogg', 75, 1) + + updateDialog() + if(prob(25)) // To help stop "Your clothes feel warm" spam. + pulse_radiation() + + var/overlay_state = null + switch(charge_count) + if(0 to 20) + overlay_state = null + if(21 to 40) + overlay_state = "startup" + if(41 to 60) + overlay_state = "idle" + if(61 to 80) + overlay_state = "activating" + if(81 to 100) + overlay_state = "activated" + + if(overlay_state != current_overlay) + if(middle) + middle.overlays.Cut() + if(overlay_state) + middle.overlays += overlay_state + current_overlay = overlay_state + + +/obj/machinery/gravity_generator/main/proc/pulse_radiation() + for(var/mob/living/L in view(7, src)) + L.apply_effect(20, IRRADIATE) + +// Shake everyone on the z level to let them know that gravity was enagaged/disenagaged. +/obj/machinery/gravity_generator/main/proc/shake_everyone() + var/turf/our_turf = get_turf(src) + for(var/mob/M in player_list) + var/turf/their_turf = get_turf(M) + if(M.client && their_turf.z == our_turf.z) + shake_camera(M, 15, 1) + M.playsound_local(our_turf, 'sound/machines/signal.ogg', 100) + +/obj/machinery/gravity_generator/main/proc/gravity_in_level() + var/turf/T = get_turf(src) + if(!T) + return 0 + if(gravity_generators["[T.z]"]) + return length(gravity_generators["[T.z]"]) + return 0 + +/obj/machinery/gravity_generator/main/proc/update_list() + var/turf/T = get_turf(src.loc) + if(T) + if(!gravity_generators["[T.z]"]) + gravity_generators["[T.z]"] = list() + if(on) + gravity_generators["[T.z]"] |= src + else + gravity_generators["[T.z]"] -= src + +// Misc + +/obj/item/weapon/paper/gravity_gen + name = "paper- 'Generate your own gravity!'" + info = {"

Gravity Generator Instructions For Dummies

+

Surprisenly, gravity isn't that hard to make! All you have to do is inject deadly radioactive minerals into a ball of + energy and you have yourself gravity! You can turn the machine on or off when required but you must remember that the generator + will EMIT RADIATION when charging or discharging, you can tell it is charging or discharging by the noise it makes, so please WEAR RADIOACTIVE CLOTHING.

+
+

It blew up!

+

Don't panic! The gravity generator was designed to be easily repaired. If, somehow, the sturdy framework did not survive then + please proceed to panic; otherwise follow these steps.

    +
  1. Secure the screws of the framework with a screwdriver.
  2. +
  3. Mend the damaged framework with a welding tool.
  4. +
  5. Add additional plasteel plating.
  6. +
  7. Secure the additional plating with a wrench.
"} diff --git a/icons/obj/machines/gravity_generator.dmi b/icons/obj/machines/gravity_generator.dmi new file mode 100644 index 0000000000000000000000000000000000000000..69395034dc8401a1f56d3d41d2109093e9fc0b40 GIT binary patch literal 37203 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 O0000