diff --git a/.travis.yml b/.travis.yml index 052a53f7ccc..b6cce2273b1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,8 +3,8 @@ language: c env: global: - - BYOND_MAJOR="506" - - BYOND_MINOR="1247" + - BYOND_MAJOR="507" + - BYOND_MINOR="1286" matrix: - DM_MAPFILE="tgstation2" - DM_MAPFILE="metastation" diff --git a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm index 336a8ca6ba9..09703c15e53 100644 --- a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm +++ b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm @@ -254,7 +254,7 @@ "aeT" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/sign/pods{pixel_y = 30},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) "aeU" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{aiControlDisabled = 1; id_tag = "prisonereducation"; name = "Prisoner Education Chamber"; req_access = null; req_access_txt = "3"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/prison/solitary{name = "Prisoner Education Chamber"}) "aeV" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Insanity Ward"; req_access_txt = "2"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/security/prison) -"aeW" = (/obj/structure/closet/secure_closet{name = "contraband locker"; req_access_txt = "3"},/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/obj/effect/spawner/lootdrop/armory_contraband{loot = list(/obj/item/weapon/gun/projectile/automatic/pistol = 5, /obj/item/weapon/gun/projectile/shotgun/combat = 5, /obj/item/weapon/gun/projectile/revolver/mateba, /obj/item/weapon/gun/projectile/automatic/pistol/deagle, /obj/item/weapon/storage/box/throwing_stars = 3)},/turf/simulated/floor/plasteel{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden) +"aeW" = (/obj/structure/closet/secure_closet{name = "contraband locker"; req_access_txt = "3"},/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/obj/effect/spawner/lootdrop/armory_contraband{loot = list(/obj/item/weapon/gun/projectile/automatic/pistol = 5, /obj/item/weapon/gun/projectile/shotgun/automatic/combat = 5, /obj/item/weapon/gun/projectile/revolver/mateba, /obj/item/weapon/gun/projectile/automatic/pistol/deagle, /obj/item/weapon/storage/box/throwing_stars = 3)},/turf/simulated/floor/plasteel{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden) "aeX" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "aeY" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/machinery/light/small{dir = 1},/obj/item/weapon/storage/secure/safe{name = "armory safe A"; pixel_x = 6; pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/warden) "aeZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/warden) @@ -4022,7 +4022,7 @@ "bzr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/fancy/carpet{tag = "icon-carpet7-3"; icon_state = "carpet7-3"},/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) "bzs" = (/obj/machinery/door/airlock/command{name = "Emergency Escape"; req_access = null; req_access_txt = "20"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) "bzt" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/wood,/area/crew_quarters/bar) -"bzu" = (/obj/machinery/vending/cigarette{pixel_y = 2; products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/greyscale = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/simulated/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bzu" = (/obj/machinery/vending/cigarette{pixel_y = 2; products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/random = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/simulated/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) "bzv" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/wood,/area/crew_quarters/bar) "bzw" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/crew_quarters/bar) "bzx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/fancy/carpet{tag = "icon-carpet11-12"; icon_state = "carpet11-12"},/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) diff --git a/_maps/map_files/MetaStation/z2.dmm b/_maps/map_files/MetaStation/z2.dmm index 3ecffff05b3..616ae3d233f 100644 --- a/_maps/map_files/MetaStation/z2.dmm +++ b/_maps/map_files/MetaStation/z2.dmm @@ -484,7 +484,7 @@ "jp" = (/turf/simulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership) "jq" = (/obj/item/weapon/storage/crayons,/obj/structure/table,/obj/item/weapon/storage/crayons,/turf/simulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "jr" = (/obj/machinery/washing_machine,/turf/simulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) -"js" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/greyscale = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/simulated/floor{icon_state = "dark"},/area/centcom/ferry) +"js" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/random = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/simulated/floor{icon_state = "dark"},/area/centcom/ferry) "jt" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/simulated/floor{icon_state = "dark"},/area/centcom/ferry) "ju" = (/obj/structure/sign/map/left{icon_state = "map-left-MS"; pixel_y = 0; tag = "icon-map-left-MS"},/turf/simulated/floor{tag = "icon-light_on"; icon_state = "light_on"},/area/centcom/ferry) "jv" = (/obj/structure/sign/map/right{icon_state = "map-right-MS"},/turf/simulated/floor{tag = "icon-light_on"; icon_state = "light_on"},/area/centcom/ferry) @@ -507,7 +507,7 @@ "jM" = (/turf/simulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "jN" = (/obj/machinery/computer/shuttle/syndicate/recall,/turf/simulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "jO" = (/obj/machinery/vending/coffee,/turf/simulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"jP" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/greyscale = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/simulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"jP" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/random = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/simulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "jQ" = (/obj/machinery/vending/cola,/turf/simulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "jR" = (/obj/item/device/paicard,/turf/simulated/floor{icon_state = "grimy"},/area/syndicate_mothership) "jS" = (/turf/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/syndicate_mothership) diff --git a/_maps/map_files/MiniStation/MiniStation.dmm b/_maps/map_files/MiniStation/MiniStation.dmm index 82f6bdf323d..a2db2ed7fef 100644 --- a/_maps/map_files/MiniStation/MiniStation.dmm +++ b/_maps/map_files/MiniStation/MiniStation.dmm @@ -3,7 +3,7 @@ "ac" = (/obj/effect/landmark{name = "carpspawn"},/turf/space,/area/space) "ad" = (/turf/simulated/mineral/random/low_chance,/area/space) "ae" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_ne"; name = "northeast of station"; turf_type = /turf/simulated/floor/plating/snow; width = 18},/turf/space,/area/space) -"af" = (/turf/simulated/mineral/random/high_chance,/area/space) +"af" = (/turf/simulated/mineral/random/low_chance,/area/mine/unexplored) "ag" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_nw"; name = "northwest of station"; turf_type = /turf/simulated/floor/plating/snow; width = 18},/turf/space,/area/space) "ah" = (/turf/simulated/wall,/area/bridge) "ai" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/simulated/floor/plating/airless,/area/bridge) @@ -62,9 +62,9 @@ "bj" = (/obj/item/stack/rods{amount = 50},/turf/simulated/floor/plating/airless,/area/quartermaster/storage) "bk" = (/obj/item/weapon/storage/bag/ore,/turf/simulated/floor/plating/airless,/area/quartermaster/storage) "bl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/bridge) -"bm" = (/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access_txt = "19"},/turf/simulated/floor/plasteel,/area/bridge) +"bm" = (/turf/simulated/mineral/random/high_chance,/area/mine/unexplored) "bn" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1},/turf/simulated/floor/plasteel,/area/bridge) -"bo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access_txt = "19"},/turf/simulated/floor/plasteel,/area/bridge) +"bo" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access_txt = "19"},/turf/simulated/floor/plasteel,/area/bridge) "bp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/bridge) "bq" = (/turf/simulated/wall,/area/quartermaster/storage) "br" = (/obj/machinery/light/small{dir = 8},/obj/machinery/mineral/unloading_machine{icon_state = "unloader-corner"; input_dir = 4; output_dir = 2},/turf/simulated/floor/plating/airless,/area/quartermaster/storage) @@ -78,9 +78,9 @@ "bz" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor/plating,/area/hallway/primary/central) "bA" = (/obj/machinery/alarm{pixel_y = 23},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/bridge) "bB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/bridge) -"bC" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/bridge) -"bD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/bridge) -"bE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/bridge) +"bC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access_txt = "19"},/turf/simulated/floor/plasteel,/area/bridge) +"bD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/bridge) +"bE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/bridge) "bF" = (/obj/machinery/power/apc{auto_name = 1; dir = 1; name = "_North APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/bridge) "bG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/closet,/turf/simulated/floor/plating,/area/hallway/primary/central) "bH" = (/obj/structure/plasticflaps/mining,/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/turf/simulated/floor/plasteel,/area/quartermaster/storage) @@ -91,9 +91,9 @@ "bM" = (/obj/machinery/door/airlock/external{req_access_txt = "13"},/turf/simulated/floor/plating,/area/hallway/primary/central) "bN" = (/turf/simulated/floor/plating,/area/hallway/primary/central) "bO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/hallway/primary/central) -"bP" = (/obj/machinery/door/firedoor/border_only,/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 0; icon_state = "blue"},/area/bridge) +"bP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/bridge) "bQ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/quartermaster/storage) -"bR" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 0; icon_state = "blue"},/area/bridge) +"bR" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 0; icon_state = "blue"},/area/bridge) "bS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/hallway/primary/central) "bT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/hallway/primary/central) "bU" = (/turf/simulated/wall,/area/medical/research{name = "Research Division"}) @@ -108,18 +108,18 @@ "cd" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/quartermaster/storage) "ce" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 0},/turf/simulated/wall,/area/quartermaster/storage) "cf" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/hallway/primary/central) -"cg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor/plasteel{dir = 0; icon_state = "blue"},/area/bridge) -"ch" = (/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access_txt = "19"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/bridge) +"cg" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 0; icon_state = "blue"},/area/bridge) +"ch" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor/plasteel{dir = 0; icon_state = "blue"},/area/bridge) "ci" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/hallway/primary/central) "cj" = (/turf/simulated/wall/r_wall,/area/security/brig) "ck" = (/turf/simulated/wall,/area/security/brig) "cl" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/structure/disposaloutlet,/turf/simulated/floor/engine,/area/medical/research{name = "Research Division"}) "cm" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/engine,/area/medical/research{name = "Research Division"}) -"cn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "containment blast door"},/turf/simulated/floor/engine,/area/medical/research{name = "Research Division"}) +"cn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "containment blast door"},/turf/simulated/floor/engine,/area/medical/research{name = "Research Division"}) "co" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/window/reinforced,/obj/machinery/camera/autoname,/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/medical/research{name = "Research Division"}) "cp" = (/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"cq" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door_control{id = "xenobio8"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/medical/research{name = "Research Division"}) -"cr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "xenobio8"; name = "containment blast door"},/turf/simulated/floor/engine,/area/medical/research{name = "Research Division"}) +"cq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/preopen{id = "xenobio8"; name = "containment blast door"},/turf/simulated/floor/engine,/area/medical/research{name = "Research Division"}) +"cr" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio8"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/medical/research{name = "Research Division"}) "cs" = (/turf/simulated/floor/engine,/area/medical/research{name = "Research Division"}) "ct" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 1; id = "mining_internal"},/turf/simulated/floor/plasteel,/area/quartermaster/storage) "cu" = (/obj/machinery/mineral/processing_unit_console{layer = 3; machinedir = 1; pixel_y = 0},/turf/simulated/wall,/area/quartermaster/storage) @@ -135,10 +135,10 @@ "cE" = (/obj/machinery/photocopier,/turf/simulated/floor/plasteel,/area/security/brig) "cF" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/engine,/area/medical/research{name = "Research Division"}) "cG" = (/mob/living/simple_animal/slime,/turf/simulated/floor/engine,/area/medical/research{name = "Research Division"}) -"cH" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen"; req_access_txt = "55"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "containment blast door"},/turf/simulated/floor/engine,/area/medical/research{name = "Research Division"}) +"cH" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "containment blast door"},/turf/simulated/floor/engine,/area/medical/research{name = "Research Division"}) "cI" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen"; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/medical/research{name = "Research Division"}) "cJ" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen"; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/medical/research{name = "Research Division"}) -"cK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio8"; name = "containment blast door"},/turf/simulated/floor/engine,/area/medical/research{name = "Research Division"}) +"cK" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio8"; name = "containment blast door"},/turf/simulated/floor/engine,/area/medical/research{name = "Research Division"}) "cL" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/engine,/area/medical/research{name = "Research Division"}) "cM" = (/obj/machinery/conveyor{dir = 1; id = "mining_internal"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "brown"},/area/quartermaster/storage) "cN" = (/obj/machinery/conveyor_switch/oneway{id = "mining_internal"; name = "mining conveyor"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "brown"},/area/quartermaster/storage) @@ -164,14 +164,14 @@ "dh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/closet{name = "Contraband Locker"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/security/brig) "di" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/security/brig) "dj" = (/obj/structure/rack,/obj/item/clothing/suit/armor/riot,/obj/item/clothing/suit/armor/riot,/obj/item/clothing/suit/armor/riot,/obj/item/clothing/head/helmet/riot,/obj/item/clothing/head/helmet/riot,/obj/item/clothing/head/helmet/riot,/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/item/weapon/shield/riot,/obj/item/weapon/shield/riot,/obj/item/weapon/shield/riot,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) -"dk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "containment blast door"},/turf/simulated/floor/engine,/area/medical/research{name = "Research Division"}) -"dl" = (/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio2"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/medical/research{name = "Research Division"}) +"dk" = (/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio2"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/medical/research{name = "Research Division"}) +"dl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/poddoor/preopen{id = "xenobio8"; name = "containment blast door"},/turf/simulated/floor/engine,/area/medical/research{name = "Research Division"}) "dm" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/medical/research{name = "Research Division"}) -"dn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable,/obj/machinery/door/poddoor/preopen{id = "xenobio8"; name = "containment blast door"},/turf/simulated/floor/engine,/area/medical/research{name = "Research Division"}) +"dn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/brig) "do" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/disposaloutlet{dir = 1},/turf/simulated/floor/engine,/area/medical/research{name = "Research Division"}) "dp" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/quartermaster/storage) "dq" = (/turf/simulated/floor/plasteel{icon_state = "bot"},/area/quartermaster/storage) -"dr" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "hazard door east"},/turf/simulated/floor/plasteel,/area/quartermaster/storage) +"dr" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Brig"; req_access_txt = "63"},/turf/simulated/floor/plasteel,/area/security/brig) "ds" = (/obj/machinery/door/airlock/maintenance{name = "Cargo Bay Maintenance"; req_access_txt = "31"},/turf/simulated/floor/plating,/area/quartermaster/storage) "dt" = (/obj/machinery/light/small,/turf/simulated/floor/plating,/area/hallway/primary/central) "du" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/plating,/area/quartermaster/storage) @@ -206,10 +206,10 @@ "dX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "dY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "dZ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/hallway/primary/central) -"ea" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/door/airlock/glass_security{name = "Brig"; req_access_txt = "63"},/turf/simulated/floor/plasteel,/area/security/brig) -"eb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/brig) -"ec" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/brig) -"ed" = (/obj/machinery/door/airlock/glass_security{name = "Brig"; req_access_txt = "63"},/turf/simulated/floor/plasteel,/area/security/brig) +"ea" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Brig"; req_access_txt = "63"},/turf/simulated/floor/plasteel,/area/security/brig) +"eb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/brig) +"ec" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "containment blast door"},/turf/simulated/floor/engine,/area/medical/research{name = "Research Division"}) +"ed" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/brig) "ee" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/brig) "ef" = (/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/plasteel,/area/security/brig) "eg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor/plasteel,/area/security/brig) @@ -218,7 +218,7 @@ "ej" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; listening = 1; name = "Common Channel"; pixel_x = -27; pixel_y = 3},/turf/simulated/floor/plasteel,/area/security/brig) "ek" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/security/brig) "el" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/bridge) -"em" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "containment blast door"},/turf/simulated/floor/engine,/area/medical/research{name = "Research Division"}) +"em" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/brig) "en" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/medical/research{name = "Research Division"}) "eo" = (/obj/machinery/monkey_recycler,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "ep" = (/obj/machinery/processor{desc = "A machine used to process slimes and retrieve their extract."; name = "Slime Processor"},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; listening = 1; name = "Common Channel"; pixel_y = 25},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) @@ -247,13 +247,13 @@ "eM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "eN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "eO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/security/brig) -"eP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/brig) -"eQ" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/brig) +"eP" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "containment blast door"},/turf/simulated/floor/engine,/area/medical/research{name = "Research Division"}) +"eQ" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Brig"; req_access_txt = "63"},/turf/simulated/floor/plasteel,/area/security/brig) "eR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/security/brig) "eS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/security/brig) "eT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/security/brig) "eU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/door_timer{dir = 4; id = "Cell 1"; name = "Cell 1"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/brig) -"eV" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen"; req_access_txt = "55"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "containment blast door"},/turf/simulated/floor/engine,/area/medical/research{name = "Research Division"}) +"eV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/brig) "eW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/research{name = "Research Division"}) "eX" = (/turf/simulated/wall,/area/space) "eY" = (/turf/simulated/wall/shuttle{icon_state = "wall3"},/area/space) @@ -269,16 +269,16 @@ "fi" = (/obj/structure/closet/secure_closet/brig{id = "Cell 2"; name = "Cell 2 Locker"},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel,/area/security/brig) "fj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "fk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/hallway/primary/central) -"fl" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/machinery/door/airlock/glass_security{name = "Brig"; req_access_txt = "63"},/turf/simulated/floor/plasteel,/area/security/brig) -"fm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/brig) +"fl" = (/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio1"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/medical/research{name = "Research Division"}) +"fm" = (/obj/machinery/door/firedoor,/obj/machinery/door/window/brigdoor{dir = 4; id = "Cell 1"; name = "Cell 1"; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/brig) "fn" = (/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/brig) "fo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/security/brig) "fp" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/brig) "fq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "fr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light/small{dir = 1},/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/plasteel,/area/security/brig) "fs" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/closet/secure_closet/brig{id = "Cell 2"; name = "Cell 2 Locker"},/turf/simulated/floor/plasteel,/area/security/brig) -"ft" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "containment blast door"},/turf/simulated/floor/engine,/area/medical/research{name = "Research Division"}) -"fu" = (/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio1"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/medical/research{name = "Research Division"}) +"ft" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Cargo Bay"; req_access_txt = "31"},/turf/simulated/floor/plasteel,/area/quartermaster/storage) +"fu" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Xenobiology Lab"; req_access_txt = "7"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "fv" = (/obj/effect/landmark/start{name = "Scientist"},/obj/structure/stool,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "fw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/research{name = "Research Division"}) "fx" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; listening = 1; name = "Common Channel"; pixel_x = -25; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "browncorner"; dir = 1},/area/quartermaster/storage) @@ -299,13 +299,13 @@ "fM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/security/brig) "fN" = (/obj/machinery/photocopier,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1},/turf/simulated/floor/plasteel{icon_state = "cautioncorner"; dir = 4},/area/quartermaster/storage) "fO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/security/brig) -"fP" = (/obj/machinery/door/window/brigdoor{dir = 4; id = "Cell 2"; name = "Cell 2"; req_access_txt = "2"},/obj/machinery/door/firedoor/border_only{dir = 8},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/brig) +"fP" = (/obj/machinery/r_n_d/server/core,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/research{name = "Research Division"}) "fQ" = (/obj/machinery/flasher{id = "Cell 2"; pixel_x = 28},/turf/simulated/floor/plasteel,/area/security/brig) "fR" = (/obj/structure/table,/obj/item/weapon/extinguisher{pixel_x = 4; pixel_y = 3},/obj/item/weapon/extinguisher,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "fS" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "fT" = (/obj/structure/table,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/machinery/light,/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "fU" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"fV" = (/obj/machinery/door/airlock/glass_mining{name = "Cargo Bay"; req_access_txt = "31"},/turf/simulated/floor/plasteel,/area/quartermaster/storage) +"fV" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Cargo Office"; req_access_txt = "31"},/turf/simulated/floor/plasteel,/area/quartermaster/storage) "fW" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/security/brig) "fX" = (/turf/simulated/floor/plasteel,/area/hallway/primary/central) "fY" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor/plasteel,/area/hallway/primary/central) @@ -330,16 +330,16 @@ "gr" = (/obj/machinery/newscaster{pixel_y = 32},/obj/structure/closet/l3closet/scientist,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "gs" = (/obj/structure/closet/secure_closet/scientist,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "gt" = (/obj/structure/sign/biohazard,/turf/simulated/wall,/area/medical/research{name = "Research Division"}) -"gu" = (/obj/machinery/door/airlock/research{name = "Xenobiology Lab"; req_access_txt = "7"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"gu" = (/obj/machinery/door_control{dir = 2; id = "rnd"; name = "Shutters Control Button"; pixel_x = -24; pixel_y = -6},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; listening = 1; name = "Common Channel"; pixel_x = -27; pixel_y = 3},/turf/simulated/floor/plasteel{icon_state = "whitepurple"; dir = 8},/area/medical/research{name = "Research Division"}) "gv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/medical/research{name = "Research Division"}) "gw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/medical/research{name = "Research Division"}) "gx" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; external_pressure_bound = 120; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 32},/turf/simulated/floor/bluegrid,/area/medical/research{name = "Research Division"}) -"gy" = (/obj/machinery/r_n_d/server/core,/obj/machinery/light/small{dir = 1},/obj/machinery/alarm/server{dir = 2; pixel_x = 0; pixel_y = 22},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/research{name = "Research Division"}) +"gy" = (/obj/structure/closet/crate,/obj/machinery/camera/autoname{dir = 8},/obj/item/weapon/ore/glass,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/quartermaster/storage) "gz" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; external_pressure_bound = 140; on = 1; pressure_checks = 0},/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 32},/turf/simulated/floor/bluegrid,/area/medical/research{name = "Research Division"}) "gA" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/simulated/wall,/area/quartermaster/storage) "gB" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "cautioncorner"},/area/quartermaster/storage) "gC" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/simulated/floor/plasteel,/area/quartermaster/storage) -"gD" = (/obj/machinery/door/airlock/glass_mining{name = "Cargo Office"; req_access_txt = "31"},/turf/simulated/floor/plasteel,/area/quartermaster/storage) +"gD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/closet/crate,/obj/item/weapon/ore/slag,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/quartermaster/storage) "gE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/closet/secure_closet/security,/turf/simulated/floor/plasteel,/area/security/brig) "gF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/security/brig) "gG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/stool/bed/chair{dir = 4},/obj/effect/landmark/start{name = "Security Officer"},/turf/simulated/floor/plasteel,/area/security/brig) @@ -352,8 +352,8 @@ "gN" = (/obj/machinery/mineral/ore_redemption{input_dir = 4},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/hallway/primary/central) "gO" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "loadingarea"},/area/hallway/primary/central) "gP" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "purplecorner"},/area/hallway/primary/central) -"gQ" = (/obj/machinery/door_control{dir = 2; id = "rnd"; name = "Shutters Control Button"; pixel_x = -24; pixel_y = -6},/obj/machinery/door/firedoor/border_only{dir = 8; name = "hazard door west"},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; listening = 1; name = "Common Channel"; pixel_x = -27; pixel_y = 3},/turf/simulated/floor/plasteel{icon_state = "whitepurple"; dir = 8},/area/medical/research{name = "Research Division"}) -"gR" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"gQ" = (/obj/structure/stool,/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor/plasteel{icon_state = "whitepurple"; dir = 8},/area/medical/research{name = "Research Division"}) +"gR" = (/obj/structure/table/reinforced,/obj/machinery/door/window/southright{dir = 4; name = "Research and Development Desk"; req_access_txt = "7"},/obj/item/weapon/folder/yellow,/obj/machinery/door/poddoor/shutters/preopen{id = "rnd"; name = "research lab shutters"},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "gS" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/table,/obj/item/weapon/disk/tech_disk{pixel_x = 0; pixel_y = 0},/obj/item/weapon/disk/tech_disk{pixel_x = 0; pixel_y = 0},/obj/item/weapon/disk/design_disk,/obj/item/weapon/disk/design_disk,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/camera/autoname,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "gT" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "gU" = (/obj/structure/table,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/manipulator,/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) @@ -365,7 +365,7 @@ "ha" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "yellow"},/area/quartermaster/storage) "hb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/quartermaster/storage) "hc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/quartermaster/storage) -"hd" = (/obj/structure/closet/crate,/obj/machinery/camera/autoname{dir = 8},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/quartermaster/storage) +"hd" = (/obj/machinery/atmospherics/pipe/simple{dir = 2},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_research{name = "Server Room"; req_access_txt = "47"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/research{name = "Research Division"}) "he" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "hf" = (/obj/structure/table,/obj/item/weapon/restraints/handcuffs,/obj/item/device/assembly/timer,/obj/item/device/flash,/turf/simulated/floor/plasteel,/area/security/brig) "hg" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/stool/bed/chair{dir = 4},/obj/effect/landmark/start{name = "Security Officer"},/turf/simulated/floor/plasteel,/area/security/brig) @@ -378,16 +378,16 @@ "hn" = (/obj/structure/table/wood,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/folder/red,/obj/item/weapon/hand_labeler,/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/fancy/carpet,/area/security/brig) "ho" = (/obj/structure/table,/turf/simulated/floor/plasteel,/area/hallway/primary/central) "hp" = (/turf/simulated/floor/plasteel{icon_state = "purple"; dir = 4},/area/hallway/primary/central) -"hq" = (/obj/structure/table/reinforced,/obj/machinery/door/window/southright{dir = 4; name = "Research and Development Desk"; req_access_txt = "7"},/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "rnd"; name = "Research Lab Shutters"; opacity = 0},/obj/item/weapon/folder/yellow,/turf/simulated/floor/plating,/area/medical/research{name = "Research Division"}) -"hr" = (/obj/structure/stool,/obj/effect/landmark/start{name = "Scientist"},/obj/machinery/door/firedoor/border_only{dir = 8; name = "hazard door west"},/turf/simulated/floor/plasteel{icon_state = "whitepurple"; dir = 8},/area/medical/research{name = "Research Division"}) +"hq" = (/obj/machinery/door/firedoor,/obj/machinery/door/window/brigdoor{dir = 4; id = "Cell 2"; name = "Cell 2"; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/brig) +"hr" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/weapon/pen,/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = -30; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "whitepurple"; dir = 8},/area/medical/research{name = "Research Division"}) "hs" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "ht" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "hu" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "hv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "hw" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "hx" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plating,/area/medical/research{name = "Research Division"}) -"hy" = (/obj/machinery/door/airlock/glass_research{name = "Server Room"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple{dir = 2},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/research{name = "Research Division"}) -"hz" = (/turf/simulated/floor/plating,/area/space) +"hy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/closet/crate,/obj/item/weapon/ore/glass,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/quartermaster/storage) +"hz" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Detective"; req_access_txt = "4"},/turf/simulated/floor/plasteel,/area/security/brig) "hA" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "yellowcorner"},/area/quartermaster/storage) "hB" = (/obj/machinery/vending/cola,/turf/simulated/floor/plasteel,/area/hallway/primary/central) "hC" = (/obj/machinery/vending/snack,/turf/simulated/floor/plasteel,/area/hallway/primary/central) @@ -396,14 +396,14 @@ "hF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/security/brig) "hG" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/simulated/floor/plasteel,/area/security/brig) "hH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/security/brig) -"hI" = (/obj/machinery/door/window/brigdoor{dir = 4; id = "Cell 1"; name = "Cell 1"; req_access_txt = "2"},/obj/machinery/door/firedoor/border_only{dir = 8},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/brig) +"hI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Research and Development Lab"; req_access_txt = "7"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "hJ" = (/obj/machinery/flasher{id = "Cell 3"; pixel_x = 28},/turf/simulated/floor/plasteel,/area/security/brig) "hK" = (/obj/structure/closet/secure_closet/detective,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/security/brig) "hL" = (/turf/simulated/floor/fancy/carpet,/area/security/brig) "hM" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/floor/fancy/carpet,/area/security/brig) "hN" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "hO" = (/turf/simulated/floor/plasteel{icon_state = "purplecorner"; dir = 4},/area/hallway/primary/central) -"hP" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/weapon/pen,/obj/machinery/door/firedoor/border_only{dir = 8; name = "hazard door west"},/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = -30; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "whitepurple"; dir = 8},/area/medical/research{name = "Research Division"}) +"hP" = (/obj/machinery/camera{c_tag = "Toxin Test Site"; dir = 8; network = list("RD","Toxins"); use_power = 0},/turf/simulated/floor/plating/airless,/area/space) "hQ" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"}) "hR" = (/obj/machinery/r_n_d/destructive_analyzer,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/medical/research{name = "Research Division"}) "hS" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/medical/research{name = "Research Division"}) @@ -412,8 +412,8 @@ "hV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "hW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "hX" = (/obj/structure/stool,/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"hY" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/atmospherics/pipe/simple{dir = 2},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"hZ" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"}) +"hY" = (/obj/structure/closet/crate,/obj/item/weapon/ore/iron,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/quartermaster/storage) +"hZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/sink{pixel_y = 24},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"}) "ia" = (/obj/machinery/computer/rdservercontrol,/obj/machinery/door/window/southright{dir = 8; name = "Server Controller Computer"; req_access_txt = "7"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "ib" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/security/brig) "ic" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/quartermaster/storage) @@ -436,7 +436,7 @@ "it" = (/obj/machinery/light,/turf/simulated/floor/plasteel,/area/medical/research{name = "Research Division"}) "iu" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/machinery/r_n_d/circuit_imprinter,/obj/item/weapon/reagent_containers/glass/beaker/sulphuric,/turf/simulated/floor/plasteel,/area/medical/research{name = "Research Division"}) "iv" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"}) -"iw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"iw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/poddoor/preopen{id = "Biohazard"; name = "biohazard blast door"},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/medical/research{name = "Research Division"}) "ix" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large{pixel_x = -3; pixel_y = 3},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 8; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 8; pixel_y = 2},/obj/item/weapon/reagent_containers/dropper,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "iy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/table,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/matter_bin,/obj/item/weapon/stock_parts/matter_bin,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "iz" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/clothing/glasses/welding,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) @@ -457,21 +457,21 @@ "iO" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "iP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/wall,/area/hallway/primary/central) "iQ" = (/obj/machinery/portable_atmospherics/pump,/obj/machinery/atmospherics/unary/portables_connector/visible,/turf/simulated/floor/plating,/area/hallway/primary/central) -"iR" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/door/airlock/glass_security{name = "Detective"; req_access_txt = "4"},/turf/simulated/floor/plasteel,/area/security/brig) +"iR" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "iS" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1},/turf/simulated/floor/plasteel,/area/ai_monitored/storage/eva) "iT" = (/obj/machinery/camera/autoname{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "iU" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/plasteel,/area/hallway/primary/central) -"iV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/research{name = "Research and Development Lab"; req_access_txt = "7"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"iV" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Research Division Access"; req_access_txt = "47"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "iW" = (/obj/machinery/atmospherics/pipe/simple{dir = 2},/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "iX" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{current_temperature = 80; dir = 2; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "iY" = (/obj/machinery/mass_driver{dir = 4; id = "toxinsdriver"},/turf/simulated/floor/plating,/area/medical/research{name = "Research Division"}) "iZ" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/medical/research{name = "Research Division"}) "ja" = (/obj/machinery/door/poddoor{id = "toxinsdriver"; name = "Toxins Launcher Bay Door"},/turf/simulated/floor/plating,/area/medical/research{name = "Research Division"}) -"jb" = (/obj/machinery/camera{c_tag = "Toxin Test Site"; dir = 8; network = list("RD","Toxins"); use_power = 0},/turf/simulated/floor/plating,/area/space) +"jb" = (/obj/machinery/door/poddoor/preopen{id = "Biohazard"; name = "biohazard blast door"},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/medical/research{name = "Research Division"}) "jc" = (/turf/simulated/wall/shuttle{icon_state = "swall_s6"; dir = 2},/area/shuttle/arrival) "jd" = (/obj/machinery/door/airlock/shuttle{name = "Arrivals Shuttle Airlock"},/obj/docking_port/mobile{dir = 2; dwidth = 5; height = 7; id = "arrival"; name = "arrival shuttle"; travelDir = -90; width = 15},/obj/docking_port/stationary{dir = 2; dwidth = 5; height = 7; id = "arrival_home"; name = "port bay 1"; width = 15},/turf/simulated/floor/plasteel/shuttle,/area/shuttle/arrival) "je" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/machinery/light/small,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/quartermaster/storage) -"jf" = (/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/quartermaster/storage) +"jf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Research Division Access"; req_access_txt = "47"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "jg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/wall,/area/hallway/primary/central) "jh" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/closet/jcloset,/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plasteel,/area/janitor) "ji" = (/turf/simulated/floor/fancy/carpet{icon_state = "carpetnoconnect"},/area/hallway/primary/central) @@ -489,11 +489,11 @@ "ju" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/hallway/primary/central) "jv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "purple"; dir = 4},/area/hallway/primary/central) "jw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/medical/research{name = "Research Division"}) -"jx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/sink{pixel_y = 24},/obj/machinery/door/firedoor/border_only{dir = 8; name = "hazard door west"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"}) +"jx" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 10; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"}) "jy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/shower{pixel_y = 18},/turf/simulated/floor/plasteel{icon_state = "warnwhite"; dir = 1},/area/medical/research{name = "Research Division"}) "jz" = (/obj/structure/sink{pixel_y = 24},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "warnwhite"; dir = 5},/area/medical/research{name = "Research Division"}) "jA" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/simulated/wall,/area/medical/research{name = "Research Division"}) -"jB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/firedoor/border_only{dir = 8; name = "hazard door west"},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/medical/research{name = "Research Division"}) +"jB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/poddoor/preopen{id = "Biohazard"; name = "biohazard blast door"},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/medical/research{name = "Research Division"}) "jC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"}) "jD" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/medical/research{name = "Research Division"}) "jE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 10; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) @@ -508,14 +508,14 @@ "jN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/wall,/area/quartermaster/storage) "jO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/hallway/primary/central) "jP" = (/obj/machinery/door/window/eastleft,/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 1},/area/hallway/primary/central) -"jQ" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1},/obj/machinery/door/firedoor/border_only{dir = 8; name = "hazard door west"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"jQ" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/research{name = "Toxins Lab"; req_access_txt = "7"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "jR" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "jS" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/ai_monitored/storage/eva) -"jT" = (/obj/machinery/door/airlock/research{name = "Research Division Access"; req_access_txt = "47"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"jT" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "loadingarea"},/area/janitor) "jU" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1},/turf/simulated/floor/plasteel{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "jV" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/table/reinforced,/obj/item/device/transfer_valve{pixel_x = -5},/obj/item/device/transfer_valve{pixel_x = 0},/obj/item/device/transfer_valve{pixel_x = 5},/obj/item/device/transfer_valve{pixel_x = 5},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"jW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/research{name = "Research Division Access"; req_access_txt = "47"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"jX" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/firedoor/border_only{dir = 8; name = "hazard door west"},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/medical/research{name = "Research Division"}) +"jW" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/ai_monitored/storage/eva) +"jX" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/ai_monitored/storage/eva) "jY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"}) "jZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "ka" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) @@ -542,11 +542,11 @@ "kv" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/hallway/primary/central) "kw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "purple"; dir = 4},/area/hallway/primary/central) "kx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/medical/research{name = "Research Division"}) -"ky" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/obj/machinery/door/firedoor/border_only{dir = 8; name = "hazard door west"},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"}) +"ky" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/medical/medbay) "kz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/closet/firecloset,/obj/machinery/light/small,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"}) "kA" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/obj/structure/closet/firecloset,/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"}) "kB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/medical/research{name = "Research Division"}) -"kC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/firedoor/border_only{dir = 8; name = "hazard door west"},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/medical/research{name = "Research Division"}) +"kC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/medical/medbay) "kD" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"}) "kE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 1},/area/medical/research{name = "Research Division"}) "kF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) @@ -574,7 +574,7 @@ "lb" = (/obj/machinery/bookbinder,/turf/simulated/floor/plasteel{icon_state = "neutral"},/area/hallway/primary/central) "lc" = (/obj/machinery/libraryscanner,/turf/simulated/floor/plasteel{icon_state = "neutral"},/area/hallway/primary/central) "ld" = (/obj/structure/table/wood,/obj/machinery/computer/libraryconsole{pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 6},/area/hallway/primary/central) -"le" = (/obj/machinery/door/airlock/research{name = "Toxins Lab"; req_access_txt = "7"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"le" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "lf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/vending/coffee,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "lg" = (/obj/machinery/vending/cigarette,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "lh" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'BOMB RANGE"; name = "BOMB RANGE"},/turf/simulated/wall,/area/medical/research{name = "Research Division"}) @@ -771,7 +771,7 @@ "oQ" = (/obj/structure/closet/crate/bin,/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "oR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/ai_monitored/storage/eva) "oS" = (/obj/machinery/door/airlock/maintenance{name = "Medbay Maintenance"; req_access_txt = "45"},/turf/simulated/floor/plating,/area/medical/medbay) -"oT" = (/obj/machinery/door/firedoor/border_only{dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"},/area/medical/medbay) +"oT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Custodial Closet"; req_access_txt = "26"},/turf/simulated/floor/plasteel,/area/janitor) "oU" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1},/obj/machinery/newscaster{pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "oV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "oW" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) @@ -793,7 +793,7 @@ "pm" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "pn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor/plasteel,/area/janitor) "po" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/janitor) -"pp" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "loadingarea"},/area/janitor) +"pp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "E.V.A."; req_access_txt = "18"},/turf/simulated/floor/plasteel,/area/ai_monitored/storage/eva) "pq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/maintenance{name = "Custodial Maintenance"; req_access_txt = "26"},/turf/simulated/floor/plating,/area/janitor) "pr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plating,/area/hallway/primary/central) "ps" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plasteel,/area/hallway/primary/central) @@ -825,51 +825,51 @@ "pS" = (/obj/structure/stool/bed/chair/comfy/beige{dir = 8},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/hallway/secondary/exit) "pT" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/janitorialcart,/obj/item/weapon/mop,/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/janitor) "pU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/requests_console{department = "Janitorial"; departmentType = 1; pixel_y = -29},/turf/simulated/floor/plasteel,/area/janitor) -"pV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plasteel,/area/janitor) +"pV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyer"; name = "Medbay"; req_access_txt = "5"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "pW" = (/obj/structure/closet/crate/bin,/turf/simulated/floor/plasteel,/area/janitor) "pX" = (/obj/machinery/camera/autoname{dir = 8},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "pY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/wall/r_wall,/area/ai_monitored/storage/eva) -"pZ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/ai_monitored/storage/eva) -"qa" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/ai_monitored/storage/eva) -"qb" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/ai_monitored/storage/eva) +"pZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyer"; name = "Medbay"; req_access_txt = "5"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) +"qa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/sign/nosmoking_2{pixel_x = 28},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitebluecorner"},/area/medical/medbay) +"qb" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Operating Theatre"; req_access_txt = "45"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "qc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/wall/r_wall,/area/ai_monitored/storage/eva) "qd" = (/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/hallway/primary/central) "qe" = (/obj/machinery/shower{icon_state = "shower"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/hallway/primary/central) "qf" = (/obj/structure/stool/bed/roller,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "qg" = (/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Exit Button"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -26},/obj/structure/stool/bed/roller,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) -"qh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitegreen"},/area/medical/medbay) -"qi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitegreen"},/area/medical/medbay) -"qj" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) +"qh" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay"; req_access_txt = "5"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) +"qi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Diner"},/turf/simulated/floor/plasteel,/area/crew_quarters/bar) +"qj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Diner"},/turf/simulated/floor/plasteel,/area/crew_quarters/bar) "qk" = (/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = 0; pixel_y = -30; pixel_z = 0},/obj/structure/closet/crate/bin,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "ql" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "qm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) -"qn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/sign/nosmoking_2{pixel_x = 28},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitegreencorner"},/area/medical/medbay) +"qn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{tag = "icon-whitebluecorner (WEST)"; icon_state = "whitebluecorner"; dir = 8},/area/medical/medbay) "qo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/medical/medbay) -"qp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitegreencorner"},/area/medical/medbay) +"qp" = (/obj/structure/stool/bed/chair/comfy/beige{dir = 1; icon_state = "comfychair"},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/hallway/secondary/exit) "qq" = (/obj/machinery/computer/operating,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 1},/area/medical/medbay) "qr" = (/obj/machinery/camera/autoname{dir = 8},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/medical/medbay) "qs" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel{icon_state = "escape"; dir = 10},/area/hallway/secondary/exit) "qt" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel,/area/hallway/secondary/exit) -"qu" = (/obj/structure/stool/bed/chair/comfy/beige{dir = 1; icon_state = "comfychair_beige"},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/hallway/secondary/exit) +"qu" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/medical/medbay) "qv" = (/obj/structure/closet/crate/bin,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/hallway/secondary/exit) -"qw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock{name = "Custodial Closet"; req_access_txt = "26"},/turf/simulated/floor/plasteel,/area/janitor) +"qw" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteyellow"},/area/medical/medbay) "qx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/hallway/primary/central) "qy" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit) -"qz" = (/obj/machinery/door/airlock/glass_command{name = "E.V.A."; req_access_txt = "18"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/ai_monitored/storage/eva) +"qz" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{dir = 2; name = "Chemistry Desk"; req_access_txt = "33"},/obj/item/clothing/glasses/science,/obj/machinery/door/firedoor/heavy,/turf/simulated/floor/plating,/area/medical/medbay) "qA" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit) "qB" = (/obj/machinery/door/airlock{name = "Public Toilets"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/hallway/primary/central) "qC" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/hallway/primary/central) "qD" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "qE" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel,/area/hallway/primary/central) "qF" = (/obj/structure/sign/bluecross,/turf/simulated/wall,/area/medical/medbay) -"qG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyer"; name = "Medbay"; req_access_txt = "5"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) -"qH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyer"; name = "Medbay"; req_access_txt = "5"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) +"qG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/medical/medbay) +"qH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Cryo"; req_access_txt = "45"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "qI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/medbay) "qJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/medbay) "qK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/camera/autoname{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) -"qL" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "hazard door east"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitegreen"},/area/medical/medbay) -"qM" = (/obj/machinery/door/airlock/medical{name = "Operating Theatre"; req_access_txt = "45"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) -"qN" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitegreen"},/area/medical/medbay) +"qL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/crew_quarters/heads{name = "\improper Job Assignment"}) +"qM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Head of Personnel Office"; req_access = null; req_access_txt = "57"},/turf/simulated/floor/plasteel,/area/crew_quarters/heads{name = "\improper Job Assignment"}) +"qN" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteblue"},/area/medical/medbay) "qO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "qP" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1},/obj/structure/table,/obj/item/stack/packageWrap,/obj/item/weapon/hand_labeler,/obj/item/device/radio/headset/headset_med,/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; listening = 1; name = "Common Channel"; pixel_y = 25},/obj/machinery/camera/autoname,/turf/simulated/floor/plasteel{tag = "icon-whiteyellowcorner"; icon_state = "whiteyellowcorner"; dir = 2},/area/medical/medbay) "qQ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit) @@ -889,15 +889,15 @@ "re" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "neutralcorner"; dir = 1},/area/hallway/primary/central) "rf" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor/plasteel,/area/hallway/primary/central) "rg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"},/area/medical/medbay) -"rh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitegreen"},/area/medical/medbay) -"ri" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitegreen"},/area/medical/medbay) +"rh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/medical/medbay) +"ri" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/medical/medbay) "rj" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/drinks/britcup{desc = "Kingston's personal cup."},/obj/machinery/camera/autoname,/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; listening = 1; name = "Common Channel"; pixel_y = 25},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) -"rk" = (/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_x = -26; req_access_txt = "5"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitegreen"},/area/medical/medbay) +"rk" = (/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_x = -26; req_access_txt = "5"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteblue"},/area/medical/medbay) "rl" = (/obj/machinery/computer/med_data,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "rm" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area/medical/medbay) -"rn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor/border_only{dir = 8},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) -"ro" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitegreencorner"},/area/medical/medbay) -"rp" = (/obj/structure/closet/secure_closet/medical2,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitegreencorner"},/area/medical/medbay) +"rn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plasteel{tag = "icon-whiteyellow (WEST)"; icon_state = "whiteyellow"; dir = 8},/area/medical/medbay) +"ro" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel{tag = "icon-whitebluecorner (EAST)"; icon_state = "whitebluecorner"; dir = 4},/area/medical/medbay) +"rp" = (/obj/structure/closet/secure_closet/medical2,/turf/simulated/floor/plasteel{tag = "icon-whitebluecorner (NORTH)"; icon_state = "whitebluecorner"; dir = 1},/area/medical/medbay) "rq" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/reagent_containers/dropper,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "rr" = (/obj/machinery/vending/wallmed{pixel_y = -28},/obj/structure/table,/obj/item/weapon/storage/box/syringes,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "rs" = (/obj/machinery/computer/pandemic,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) @@ -918,8 +918,8 @@ "rH" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteblue"},/area/medical/medbay) "rI" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"},/area/medical/medbay) "rJ" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) -"rK" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/obj/effect/landmark/start{name = "Medical Doctor"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitegreen"},/area/medical/medbay) -"rL" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay"; req_access_txt = "5"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) +"rK" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/obj/effect/landmark/start{name = "Medical Doctor"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteblue"},/area/medical/medbay) +"rL" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{dir = 8; name = "Chemistry Desk"; req_access_txt = "33"},/obj/machinery/door/firedoor/heavy,/turf/simulated/floor/plating,/area/medical/medbay) "rM" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "rN" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{icon_state = "L2"; dir = 4},/area/hallway/secondary/exit) "rO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel{icon_state = "L4"; dir = 4},/area/hallway/secondary/exit) @@ -935,9 +935,9 @@ "rY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"},/area/medical/medbay) "rZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "sa" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = -30},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) -"sb" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitegreen"},/area/medical/medbay) +"sb" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteblue"},/area/medical/medbay) "sc" = (/obj/machinery/vending/medical{pixel_x = -2},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) -"sd" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 8},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) +"sd" = (/obj/machinery/chem_heater,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "se" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/crew_quarters/bar) "sf" = (/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 7; pixel_y = 1},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 0; pixel_y = 0},/obj/item/weapon/wrench{pixel_x = 5; pixel_y = -5},/obj/structure/table/reinforced,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "sg" = (/obj/machinery/atmospherics/unary/cryo_cell,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 1},/area/medical/medbay) @@ -957,13 +957,13 @@ "su" = (/turf/simulated/wall,/area/crew_quarters/bar) "sv" = (/obj/structure/sign/maltesefalcon/left,/turf/simulated/wall,/area/crew_quarters/bar) "sw" = (/obj/structure/sign/maltesefalcon/right,/turf/simulated/wall,/area/crew_quarters/bar) -"sx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/glass{name = "Diner"},/turf/simulated/floor/plasteel,/area/crew_quarters/bar) +"sx" = (/turf/simulated/floor/plasteel{tag = "icon-whiteyellow (WEST)"; icon_state = "whiteyellow"; dir = 8},/area/medical/medbay) "sy" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/hallway/secondary/entry) -"sz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/glass{name = "Diner"},/turf/simulated/floor/plasteel,/area/crew_quarters/bar) +"sz" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/medical/medbay) "sA" = (/obj/machinery/light/small,/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/bar) "sB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "sC" = (/obj/structure/sign/chemistry,/turf/simulated/wall,/area/medical/medbay) -"sD" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteyellow"},/area/medical/medbay) +"sD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = "GeneticsDoor"; name = "Genetics"; req_access_txt = "45"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "sE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "sF" = (/obj/machinery/telecomms/receiver/preset_left/ministation,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) "sG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitebluecorner"},/area/medical/medbay) @@ -990,22 +990,22 @@ "tb" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "tc" = (/obj/structure/stool/bed/chair,/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "td" = (/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) -"te" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) -"tf" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) -"tg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) +"te" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/simulated/floor/plasteel{tag = "icon-whiteyellow (WEST)"; icon_state = "whiteyellow"; dir = 8},/area/medical/medbay) +"tf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Chemistry Lab"; req_access_txt = "5; 33"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) +"tg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteyellowcorner"},/area/medical/medbay) "th" = (/obj/structure/closet/crate/bin,/obj/structure/noticeboard{pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "ti" = (/obj/machinery/vending/boozeomat,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/crew_quarters/bar) "tj" = (/obj/structure/table,/obj/item/weapon/book/manual/barman_recipes,/obj/item/stack/packageWrap,/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/crew_quarters/bar) "tk" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/engine/engineering) "tl" = (/obj/structure/table,/obj/machinery/door/window/southleft{layer = 3.1},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "tm" = (/obj/structure/table,/obj/machinery/door/window/southright{layer = 3.1},/turf/simulated/floor/plasteel,/area/hallway/primary/central) -"tn" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{dir = 2; name = "Chemistry Desk"; req_access_txt = "33"},/obj/item/clothing/glasses/science,/turf/simulated/floor/plating,/area/medical/medbay) +"tn" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "to" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/pill_bottle/epinephrine{pixel_x = 5; pixel_y = -2},/obj/item/weapon/storage/pill_bottle/epinephrine{pixel_x = 5; pixel_y = -2},/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/dropper,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "tp" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1},/obj/machinery/door_control{desc = "A remote control switch for the genetics doors."; id = "GeneticsDoor"; name = "Genetics Exit Button"; normaldoorcontrol = 1; pixel_x = 8; pixel_y = 24},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteblue"},/area/medical/medbay) "tq" = (/obj/machinery/smartfridge/chemistry,/turf/simulated/wall,/area/medical/medbay) "tr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{tag = "icon-whiteyellowcorner (WEST)"; icon_state = "whiteyellowcorner"; dir = 8},/area/medical/medbay) -"ts" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/machinery/door/firedoor/border_only{dir = 4; name = "hazard door east"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/medical/medbay) -"tt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Cryo"; req_access_txt = "45"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) +"ts" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay Storage"; req_access_txt = "45"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) +"tt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Bar Storage"; req_access_txt = "25"},/turf/simulated/floor/wood,/area/crew_quarters/bar) "tu" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/light,/turf/simulated/floor/plasteel,/area/crew_quarters/heads{name = "\improper Job Assignment"}) "tv" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "tw" = (/obj/machinery/vending/wallmed{pixel_y = -28},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) @@ -1014,8 +1014,8 @@ "tz" = (/obj/structure/grille,/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating/airless,/area/engine/engineering) "tA" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/hallway/secondary/exit) "tB" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit) -"tC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/command{name = "Head of Personnel Office"; req_access = null; req_access_txt = "57"},/turf/simulated/floor/plasteel,/area/crew_quarters/heads{name = "\improper Job Assignment"}) -"tD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/border_only{dir = 8},/turf/simulated/floor/plasteel,/area/crew_quarters/heads{name = "\improper Job Assignment"}) +"tC" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Bar Storage"; req_access_txt = "25"},/turf/simulated/floor/plasteel{icon_state = "wood"},/area/crew_quarters/bar) +"tD" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/brute{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/brute{pixel_x = -2; pixel_y = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "tE" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/crew_quarters/heads{name = "\improper Job Assignment"}) "tF" = (/obj/machinery/computer/card,/turf/simulated/floor/plasteel,/area/crew_quarters/heads{name = "\improper Job Assignment"}) "tG" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/obj/effect/landmark/start{name = "Head of Personnel"},/turf/simulated/floor/plasteel,/area/crew_quarters/heads{name = "\improper Job Assignment"}) @@ -1042,8 +1042,8 @@ "ub" = (/obj/structure/stool/bed/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Chemist"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "uc" = (/obj/machinery/chem_master,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "ud" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/start{name = "Chemist"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellow"},/area/medical/medbay) -"ue" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{dir = 8; name = "Chemistry Desk"; req_access_txt = "33"},/turf/simulated/floor/plating,/area/medical/medbay) -"uf" = (/obj/machinery/door/firedoor/border_only{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plasteel{tag = "icon-whiteyellow (WEST)"; icon_state = "whiteyellow"; dir = 8},/area/medical/medbay) +"ue" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; listening = 1; name = "Common Channel"; pixel_y = 25},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/bar) +"uf" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Frozen Storage"; req_access_txt = "25"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/bar) "ug" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/obj/machinery/camera/autoname{dir = 8},/obj/structure/sign/nosmoking_2{pixel_x = 28},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/medical/medbay) "uh" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/tcommsat/computer) "ui" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/tcommsat/computer) @@ -1070,9 +1070,9 @@ "uD" = (/obj/machinery/hydroponics/soil,/turf/simulated/floor/plasteel{icon_state = "green"; dir = 1},/area/hallway/primary/central) "uE" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "uF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellow"},/area/medical/medbay) -"uG" = (/obj/machinery/door/firedoor/border_only{dir = 8},/turf/simulated/floor/plasteel{tag = "icon-whiteyellow (WEST)"; icon_state = "whiteyellow"; dir = 8},/area/medical/medbay) -"uH" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 4; name = "hazard door east"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/medical/medbay) -"uI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/airlock/glass_medical{id_tag = "GeneticsDoor"; name = "Genetics"; req_access_txt = "45"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) +"uG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/wood,/area/crew_quarters/bar) +"uH" = (/turf/simulated/floor/wood,/area/crew_quarters/bar) +"uI" = (/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 12; id = "ferry_home"; name = "station"; turf_type = /turf/space; width = 5},/turf/simulated/floor/plating/airless,/area/space) "uJ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "uK" = (/obj/machinery/vending/wallmed{pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "uL" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) @@ -1083,7 +1083,7 @@ "uQ" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/engine/gravity_generator) "uR" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/engine/gravity_generator) "uS" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/closet/secure_closet/hop,/turf/simulated/floor/plasteel,/area/crew_quarters/heads{name = "\improper Job Assignment"}) -"uT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plasteel,/area/crew_quarters/heads{name = "\improper Job Assignment"}) +"uT" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; listening = 1; name = "Common Channel"; pixel_y = 25},/obj/structure/closet/radiation,/turf/simulated/floor/plasteel,/area/engine/engineering) "uU" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "uV" = (/obj/structure/kitchenspike,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/bar) "uW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/filingcabinet/chestdrawer,/turf/simulated/floor/plasteel,/area/crew_quarters/heads{name = "\improper Job Assignment"}) @@ -1096,8 +1096,8 @@ "vd" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "ve" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "vf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellow"},/area/medical/medbay) -"vg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Chemistry Lab"; req_access_txt = "5; 33"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) -"vh" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 8},/turf/simulated/floor/plasteel{tag = "icon-whiteyellow (WEST)"; icon_state = "whiteyellow"; dir = 8},/area/medical/medbay) +"vg" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{icon_state = "yellow"; dir = 1},/area/engine/engineering) +"vh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/engineering{name = "Engineering"; req_access_txt = "10"},/turf/simulated/floor/plasteel,/area/engine/engineering) "vi" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "vj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{tag = "icon-whitebluecorner (EAST)"; icon_state = "whitebluecorner"; dir = 4},/area/medical/medbay) "vk" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel{tag = "icon-whitebluecorner (NORTH)"; icon_state = "whitebluecorner"; dir = 1},/area/medical/medbay) @@ -1126,9 +1126,9 @@ "vH" = (/obj/structure/table,/obj/item/weapon/screwdriver{pixel_x = -2; pixel_y = 6},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/device/radio/headset/headset_med,/obj/item/device/assembly/igniter,/obj/item/device/assembly/igniter,/obj/item/device/assembly/timer,/obj/item/device/assembly/timer,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/obj/machinery/light,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "vI" = (/obj/structure/closet/secure_closet/chemical,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "vJ" = (/obj/structure/closet/wardrobe/chemistry_white,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellowcorner"},/area/medical/medbay) -"vK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteyellowcorner"},/area/medical/medbay) -"vL" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) -"vM" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) +"vK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; listening = 1; name = "Common Channel"; pixel_y = 25},/obj/structure/closet/secure_closet/engineering_personal,/turf/simulated/floor/plasteel,/area/engine/engineering) +"vL" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/machinery/light/small{dir = 8},/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/plasteel{dir = 9; icon_state = "yellow"},/area/engine/engineering) +"vM" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1},/turf/simulated/floor/plasteel{icon_state = "yellow"; dir = 5},/area/engine/engineering) "vN" = (/obj/structure/closet/secure_closet/personal/patient,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "vO" = (/obj/machinery/dna_scannernew,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 1},/area/medical/medbay) "vP" = (/obj/machinery/light,/obj/machinery/computer/cloning,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 1},/area/medical/medbay) @@ -1160,7 +1160,7 @@ "wp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/medbay) "wq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/medbay) "wr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/medical/medbay) -"ws" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay Storage"; req_access_txt = "45"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) +"ws" = (/obj/structure/closet/secure_closet/engineering_personal,/turf/simulated/floor/plasteel,/area/engine/engineering) "wt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/medical/medbay) "wu" = (/turf/simulated/wall/shuttle{icon_state = "swall3"; dir = 2},/area/shuttle/arrival) "wv" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel/shuttle,/area/shuttle/arrival) @@ -1175,10 +1175,10 @@ "wE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plating,/area/hallway/primary/central) "wF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/hallway/primary/central) "wG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/crew_quarters/bar) -"wH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock{name = "Bar Storage"; req_access_txt = "25"},/turf/simulated/floor/wood,/area/crew_quarters/bar) +"wH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/simulated/floor/plasteel,/area/engine/engineering) "wI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/crew_quarters/bar) "wJ" = (/obj/machinery/computer/security/telescreen/entertainment,/turf/simulated/wall,/area/crew_quarters/bar) -"wK" = (/obj/machinery/door/airlock{name = "Bar Storage"; req_access_txt = "25"},/turf/simulated/floor/plasteel{icon_state = "wood"},/area/crew_quarters/bar) +"wK" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "10"; req_one_access_txt = "0"},/turf/simulated/floor/plasteel,/area/engine/engineering) "wL" = (/obj/machinery/vending/hydronutrients,/turf/simulated/floor/plasteel{icon_state = "yellow"},/area/hallway/primary/central) "wM" = (/obj/machinery/seed_extractor,/turf/simulated/floor/plasteel{icon_state = "yellow"},/area/hallway/primary/central) "wN" = (/obj/machinery/biogenerator,/turf/simulated/floor/plasteel{icon_state = "yellow"},/area/hallway/primary/central) @@ -1187,7 +1187,7 @@ "wQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "warnwhite"; dir = 1},/area/medical/medbay) "wR" = (/turf/simulated/floor/plasteel{icon_state = "warnwhite"; dir = 1},/area/medical/medbay) "wS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "warnwhite"; dir = 1},/area/medical/medbay) -"wT" = (/obj/structure/table,/obj/item/clothing/suit/straight_jacket,/obj/item/clothing/mask/muzzle,/obj/item/weapon/gun/syringe,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) +"wT" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "10"; req_one_access_txt = "0"},/turf/simulated/floor/plasteel,/area/engine/engineering) "wU" = (/turf/simulated/floor/plasteel/shuttle,/turf/simulated/wall/shuttle{icon_state = "swall_f10"; dir = 2},/area/shuttle/arrival) "wV" = (/turf/simulated/wall/shuttle{icon_state = "swall13"; dir = 2},/area/shuttle/arrival) "wW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/mob/living/simple_animal/mouse,/turf/simulated/floor/plating,/area/hallway/primary/central) @@ -1196,18 +1196,18 @@ "wZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/machinery/meter{use_power = 0},/turf/simulated/floor/plating{icon_state = "warnplatecorner"; dir = 1},/area/hallway/primary/central) "xa" = (/obj/structure/closet/crate{desc = "It's a storage unit for kitchen clothes and equipment."; name = "Kitchen Crate"},/obj/item/clothing/head/chefhat,/obj/item/clothing/under/rank/chef,/obj/item/weapon/storage/box/mousetraps{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/box/mousetraps,/obj/item/clothing/under/waiter,/obj/item/clothing/under/waiter,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/crew_quarters/bar) "xb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/camera/autoname,/mob/living/simple_animal/mouse/brown/Tom,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/bar) -"xc" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; listening = 1; name = "Common Channel"; pixel_y = 25},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/bar) -"xd" = (/obj/machinery/door/airlock{name = "Frozen Storage"; req_access_txt = "25"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/bar) +"xc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel,/area/engine/engineering) +"xd" = (/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellow"},/area/engine/engineering) "xe" = (/obj/structure/sink/kitchen{pixel_y = 28},/turf/simulated/floor/wood,/area/crew_quarters/bar) -"xf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor/wood,/area/crew_quarters/bar) +"xf" = (/obj/machinery/pipedispenser/disposal,/turf/simulated/floor/plasteel,/area/engine/engineering) "xg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/vending/dinnerware,/turf/simulated/floor/wood,/area/crew_quarters/bar) "xh" = (/obj/machinery/reagentgrinder,/obj/structure/table/wood,/turf/simulated/floor/wood,/area/crew_quarters/bar) "xi" = (/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/structure/table/wood,/turf/simulated/floor/wood,/area/crew_quarters/bar) "xj" = (/obj/structure/closet/crate/bin,/turf/simulated/floor/wood,/area/crew_quarters/bar) -"xk" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor/wood,/area/crew_quarters/bar) +"xk" = (/obj/machinery/suit_storage_unit/engine,/turf/simulated/floor/plasteel,/area/engine/engineering) "xl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/medbay) "xm" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/fire{pixel_x = -2; pixel_y = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) -"xn" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor/plasteel{icon_state = "yellow"; dir = 5},/area/engine/engineering) +"xn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel,/area/engine/engineering) "xo" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/engine/engineering) "xp" = (/obj/structure/closet/secure_closet/medical3,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "xq" = (/turf/simulated/wall/shuttle{icon_state = "swall_s5"; dir = 2},/area/shuttle/arrival) @@ -1244,7 +1244,7 @@ "xV" = (/obj/machinery/camera/autoname{dir = 1},/obj/structure/table/wood,/obj/item/weapon/book/manual/chef_recipes{pixel_y = 5},/obj/item/weapon/reagent_containers/food/condiment/enzyme,/turf/simulated/floor/wood,/area/crew_quarters/bar) "xW" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/simulated/floor/wood,/area/crew_quarters/bar) "xX" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{tag = "icon-intact (NORTH)"; icon_state = "intact"; dir = 1},/turf/simulated/floor/plating,/area/engine/engineering) -"xY" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/wood,/area/crew_quarters/bar) +"xY" = (/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{dir = 8; icon_state = "yellow"},/area/engine/engineering) "xZ" = (/obj/structure/table,/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "ya" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 7; pixel_y = -3},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = -4; pixel_y = -3},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 3; pixel_y = -2},/obj/item/weapon/reagent_containers/glass/bottle/morphine,/obj/item/weapon/reagent_containers/glass/bottle/toxin{pixel_x = 4; pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 5; pixel_y = -2},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "yb" = (/obj/structure/table,/obj/machinery/light,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/tie/stethoscope,/obj/item/weapon/reagent_containers/hypospray,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) @@ -1285,7 +1285,7 @@ "yK" = (/obj/structure/closet/firecloset,/turf/simulated/floor/plasteel,/area/engine/engineering) "yL" = (/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/plasteel,/area/engine/engineering) "yM" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; listening = 1; name = "Common Channel"; pixel_y = 25},/turf/simulated/floor/plasteel,/area/engine/engineering) -"yN" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/turf/simulated/floor/plasteel{icon_state = "yellow"; dir = 1},/area/engine/engineering) +"yN" = (/obj/machinery/pipedispenser/disposal/transit_tube,/turf/simulated/floor/plasteel,/area/engine/engineering) "yO" = (/obj/structure/table,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{dir = 1},/obj/machinery/cell_charger,/turf/simulated/floor/plasteel,/area/engine/engineering) "yP" = (/obj/structure/table,/obj/machinery/alarm{pixel_y = 23},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/clothing/gloves/color/yellow,/obj/item/weapon/storage/toolbox/mechanical{pixel_y = 5},/turf/simulated/floor/plasteel,/area/engine/engineering) "yQ" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/camera/autoname,/obj/machinery/power/smes/engineering,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/engine/engineering) @@ -1348,9 +1348,9 @@ "zV" = (/obj/machinery/vending/tool,/turf/simulated/floor/plasteel,/area/engine/engineering) "zW" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/wall/r_wall,/area/engine/engineering) "zX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/engine/engineering) -"zY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/engineering{name = "Engineering"; req_access_txt = "10"},/turf/simulated/floor/plasteel,/area/engine/engineering) +"zY" = (/obj/machinery/door/firedoor/heavy,/turf/simulated/floor/plasteel,/area/engine/engineering) "zZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/engine/engineering) -"Aa" = (/obj/machinery/pipedispenser/disposal,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; listening = 1; name = "Common Channel"; pixel_y = 25},/turf/simulated/floor/plasteel,/area/engine/engineering) +"Aa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "10"; req_one_access_txt = "0"},/turf/simulated/floor/plasteel,/area/engine/engineering) "Ab" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/engine/engineering) "Ac" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/engine/engineering) "Ad" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/simulated/floor/plasteel,/area/engine/engineering) @@ -1359,22 +1359,18 @@ "Ag" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plasteel,/area/engine/engineering) "Ah" = (/obj/machinery/vending/engivend,/turf/simulated/floor/plasteel,/area/engine/engineering) "Ai" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/engine/engineering) -"Aj" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/machinery/light/small{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/plasteel{dir = 9; icon_state = "yellow"},/area/engine/engineering) -"Ak" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor/plasteel{icon_state = "yellow"; dir = 1},/area/engine/engineering) +"Aj" = (/obj/structure/grille,/obj/structure/lattice,/turf/space,/area/engine/engineering) +"Ak" = (/obj/machinery/atmospherics/unary/tank/air{dir = 8; icon_state = "grey"},/turf/simulated/floor/plating,/area/tcommsat/computer) "Al" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/yellow/visible{tag = "icon-intact (NORTH)"; icon_state = "intact"; dir = 1},/turf/simulated/floor/plating,/area/engine/engineering) "Am" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/engine/engineering) "An" = (/obj/machinery/pipedispenser,/turf/simulated/floor/plasteel,/area/engine/engineering) "Ao" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel,/area/engine/engineering) "Ap" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/gloves/color/black,/obj/item/weapon/extinguisher{pixel_x = 8},/turf/simulated/floor/plasteel,/area/engine/engineering) -"Aq" = (/obj/structure/closet/secure_closet/engineering_personal,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/engine/engineering) +"Aq" = (/obj/machinery/suit_storage_unit/atmos,/turf/simulated/floor/plasteel,/area/engine/engineering) "Ar" = (/obj/machinery/power/port_gen/pacman,/turf/simulated/floor/plasteel,/area/engine/engineering) "As" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor/plasteel,/area/engine/engineering) "At" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "yellow"},/area/engine/engineering) -"Au" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor/plasteel,/area/engine/engineering) -"Av" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "10"; req_one_access_txt = "0"},/turf/simulated/floor/plasteel,/area/engine/engineering) "Aw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plasteel,/area/engine/engineering) -"Ax" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "10"; req_one_access_txt = "0"},/turf/simulated/floor/plasteel,/area/engine/engineering) -"Ay" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 8},/turf/simulated/floor/plasteel,/area/engine/engineering) "Az" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/engine/engineering) "AA" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "yellow"},/area/engine/engineering) "AB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/simulated/floor/plasteel,/area/engine/engineering) @@ -1389,10 +1385,8 @@ "AK" = (/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "10"; req_one_access_txt = "0"},/turf/simulated/floor/plasteel,/area/engine/engineering) "AL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/engine/engineering) "AM" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/plasteel,/area/engine/engineering) -"AN" = (/obj/structure/closet/radiation,/turf/simulated/floor/plasteel,/area/engine/engineering) "AO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "yellow"; dir = 1},/area/engine/engineering) "AP" = (/obj/machinery/requests_console{announcementConsole = 0; department = "Engineering"; departmentType = 4; name = "Engineering RC"; pixel_y = 30},/turf/simulated/floor/plasteel,/area/engine/engineering) -"AQ" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/space/hardsuit,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/hardsuit,/turf/simulated/floor/plasteel,/area/engine/engineering) "AR" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/engine/engineering) "AS" = (/obj/machinery/atmospherics/unary/portables_connector/visible,/turf/simulated/floor/plating,/area/engine/engineering) "AT" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/unary/portables_connector/visible,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/engine/engineering) @@ -1404,8 +1398,6 @@ "AZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/engine/engineering) "Ba" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/camera/autoname,/turf/simulated/floor/plasteel,/area/engine/engineering) "Bb" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/cyan/visible{tag = "icon-intact (NORTH)"; icon_state = "intact"; dir = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/engine/engineering) -"Bc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor/plasteel,/area/engine/engineering) -"Bd" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellow"},/area/engine/engineering) "Be" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/engine/engineering) "Bf" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/yellow/visible{tag = "icon-intact (NORTH)"; icon_state = "intact"; dir = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/engine/engineering) "Bg" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; listening = 1; name = "Common Channel"; pixel_y = 25},/obj/machinery/atmospherics/unary/portables_connector/visible,/turf/simulated/floor/plating,/area/engine/engineering) @@ -1413,8 +1405,6 @@ "Bi" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/engine/engineering) "Bj" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/unary/portables_connector/visible,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/engine/engineering) "Bk" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 5},/area/engine/engineering) -"Bl" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "yellow"},/area/engine/engineering) -"Bm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor/plasteel,/area/engine/engineering) "Bn" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/cyan/visible{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/engine/engineering) "Bo" = (/obj/structure/closet/crate{name = "solar pack crate"},/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/weapon/circuitboard/solar_control,/obj/item/weapon/tracker_electronics,/obj/item/weapon/paper/solar,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/engine/engineering) "Bp" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellow"},/area/engine/engineering) @@ -1459,8 +1449,6 @@ "Cc" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/camera/autoname,/turf/simulated/floor/plasteel,/area/engine/engineering) "Cd" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{tag = "icon-manifold (NORTH)"; icon_state = "manifold"; dir = 1},/turf/simulated/floor/plating,/area/engine/engineering) "Ce" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel,/area/engine/engineering) -"Cf" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor/plasteel,/area/engine/engineering) -"Cg" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/turf/simulated/floor/plasteel,/area/engine/engineering) "Ch" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/plasteel,/area/engine/engineering) "Ci" = (/obj/structure/transit_tube{icon_state = "N-SE"},/turf/space,/area/space) "Cj" = (/obj/structure/transit_tube{icon_state = "D-SW"},/turf/space,/area/space) @@ -1476,7 +1464,6 @@ "Ct" = (/obj/structure/table,/obj/item/stack/cable_coil,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/turf/simulated/floor/plasteel,/area/engine/engineering) "Cu" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/clothing/ears/earmuffs{pixel_x = -3; pixel_y = -2},/turf/simulated/floor/plasteel,/area/engine/engineering) "Cv" = (/obj/structure/table,/obj/item/stack/rods{amount = 50},/obj/item/device/analyzer,/turf/simulated/floor/plasteel,/area/engine/engineering) -"Cw" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "10"; req_one_access_txt = "0"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/engine/engineering) "Cx" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/turf/simulated/floor/plasteel,/area/engine/engineering) "Cy" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/turf/simulated/floor/plasteel,/area/engine/engineering) "Cz" = (/obj/structure/table,/turf/simulated/floor/plasteel,/area/engine/engineering) @@ -1537,12 +1524,10 @@ "DU" = (/obj/machinery/ignition_switch{id = "burnchamber"; pixel_x = 25},/turf/simulated/floor/plating,/area/engine/engineering) "DW" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 5},/turf/simulated/floor/engine/vacuum,/area/engine/engineering) "DX" = (/obj/structure/transit_tube{icon_state = "N-S"},/obj/structure/lattice,/turf/space,/area/space) -"DY" = (/obj/structure/grille,/turf/space,/area/engine/engineering) "DZ" = (/obj/structure/lattice,/obj/structure/transit_tube{tag = "icon-N-S-Pass"; icon_state = "N-S-Pass"},/turf/space,/area/space) "Ea" = (/turf/simulated/wall,/area/tcommsat/computer) "Eb" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 0},/turf/simulated/wall,/area/tcommsat/computer) "Ec" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/tcommsat/computer) -"Ed" = (/obj/machinery/atmospherics/unary/tank/air{icon_state = "intact"; dir = 8},/turf/simulated/floor/plating,/area/tcommsat/computer) "Ee" = (/obj/structure/transit_tube{icon_state = "N-SE"},/obj/structure/lattice,/turf/space,/area/space) "Ef" = (/obj/structure/transit_tube{icon_state = "D-SW"},/obj/structure/lattice,/turf/space,/area/space) "Eg" = (/obj/machinery/door/airlock/external{name = "Telecomms Emergency Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/tcommsat/computer) @@ -1663,7 +1648,6 @@ "GK" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/turf/simulated/wall/r_wall,/area/engine/gravity_generator) "GL" = (/obj/machinery/door/airlock/highsecurity{name = "Gravity Generator Room"; req_access_txt = "19;23"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/engine/gravity_generator) "GN" = (/obj/structure/closet/radiation,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/tcommsat/computer) -"GO" = (/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 12; id = "ferry_home"; name = "station"; turf_type = /turf/space; width = 5},/turf/simulated/floor/plating,/area/space) "GP" = (/obj/machinery/telecomms/processor/preset_one,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) "GQ" = (/obj/machinery/telecomms/broadcaster/preset_left/ministation,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) "GR" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_s"; name = "south of station"; turf_type = /turf/simulated/floor/plating/snow; width = 18},/turf/space,/area/space) @@ -1720,146 +1704,146 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadaaaaaaaaadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadafadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadafadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadaaaaaaaaadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadadadaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaadadafadadadadadadadaaaaaaaaadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadaaaaaaaaaaaaaaadadadadadadadadaaaaadadadadaaaaaaaaaaadadadadadadadaaaaaaaaaaaaaaadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadaaaaaaaaaaadadadadafadadadaaaaaaadadadadadaaaaaaaaaaadadadadaaaaaaaaaaaaaaaaaaadafadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadaaaaaaaaaaaaaaadadadadadadaaaaadadafadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadaaaaaaaaaaadadadaaaaaaaaaaaaaaaaaaaaadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadafadadaaaaaaaaaaaaaaadadadadaaaaaaaaaaadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadaaaaaaaaaaaaadadadaaaaaaaaaaaaaaaaadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadaaaaaaaaaaaaaaadadadadaaaaaaaaaaaaaaaaaaaaaaadadadaaaaaaaaaaadadaaaaaaaaaaadaaaaaaadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaadadaaaaaaaaaaaaaaaaaaaaaaadadaaaaaaaaadadadaaaaaaaaaaaaaaadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadaaaaaaaaaaadaaaaaaadadadafadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadaaaaaaaaaaaaaaaaaaaaaaaaadadafadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadaaaaaaaaaaaaaaaaadadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadaaaaaaaaaaaaaaaaaaaaaaadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadafadadaaaaaaaaaaaaaaaaaaadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadafadadadaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadaaaaadadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadaaaaaaaaaaaaaaaaaaaaaaadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadaaaaaaadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadaaaaaaaaaaaaaaaaaaaaadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadafadadaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadaaaaaaaaaaaaaaaaadadafadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadaaaaaaaaacaaaaadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaadadadadadadadaaaaaaaaaaaaaaaaadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadafadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadaaaaaaaaaaadadadadadafadaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadaaaaaaaaaaaaaaaaaaaaaaadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadafadadadadaaaaaaadadadadadadadadadaaaaaaaaaaaaaaaaaaaaaaadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadadaaaaaaadadafadadadadadadaaaaaaadaaaaaaaaaaaaaaaaaaadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadaaaaaaaaaaadadadadadadadadadaaaaadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadaaaaaaadadafadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadaaaaaaaaaaadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadaaaaaaaaaaaaaaaaaaaaadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadaaaaaaaaaaaaadadadafadadaaaaaaaaadadaaaaadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadaaaaaaaaaaaaaaaaadadadadaaaaaaaaadadaaaaadadadadaaaaaaaaaaaaaaaaaaaaaaadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadaaaaaaaaaaaaaaaaadadaaaaaaaaaaaaaaadadafadadadadaaaaaaaaaaaaaaadadadaaaaaaaaaaadadaaaaaaadadaaaaaaaaaaaaaaaaaaaaaaaaadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadafadadadaaaaaaaaaaadadadadadadaaaaaaaaaaaaadadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadaaaaaaaaaaaaaaadadafadadaaaaaaaaaaaaaaaaadaaadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaadadadadaaaaaaaaaaadadadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadafadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadafadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadaaaaaaaaaaadadadadaaaaadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadafadaaaaadadadadadaaaaaaaaaaadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadaaaaadadafadaaaaaaadadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadafadadaaaaaaadadadadaaaaaaadadadadadadadaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadaaaaaaadadadadaaaaaaadadadafadadaaaaaaaaadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadaaaaaaadadaaaaaaaaaaaaadadadadadaaaaaaaaadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadaaaaaaaaaaaaaaaaaaaaaaaaadadaaaaaaaaaaaaaaadadadadaaaaaaaaadadafadadaaaaaaaaaaaaaaaaaaaaaaaaaaadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadafadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadaaaaaaaaaaaaaaadadaaaaaaaaaaadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafaaaaaaaaafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafbmafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbmafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafaaaaaaaaafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafafafaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaafafbmafafafafafafafaaaaaaaaafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafaaaaaaaaaaaaaaafafafafafafafafaaaaafafafafaaaaaaaaaaafafafafafafafaaaaaaaaaaaaaaafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafaaaaaaaaaaafafafafbmafafafaaaaaaafafafafafaaaaaaaaaaafafafafaaaaaaaaaaaaaaaaaaafbmafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafaaaaaaaaaaaaaaafafafafafafaaaaafafbmafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafaaaaaaaaaaafafafaaaaaaaaaaaaaaaaaaaaafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafbmafafaaaaaaaaaaaaaaafafafafaaaaaaaaaaafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafaaaaaaaaaaaaafafafaaaaaaaaaaaaaaaaafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafaaaaaaaaaaaaaaafafafafaaaaaaaaaaaaaaaaaaaaaaafafafaaaaaaaaaaafafaaaaaaaaaaafaaaaaaafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaafafaaaaaaaaaaaaaaaaaaaaaaafafaaaaaaaaafafafaaaaaaaaaaaaaaafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafaaaaaaaaaaafaaaaaaafafafbmafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafaaaaaaaaaaaaaaaaaaaaaaaaafafbmafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafaaaaaaaaaaaaaaaaafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafaaaaaaaaaaaaaaaaaaaaaaafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafbmafafaaaaaaaaaaaaaaaaaaafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafbmafafafaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafaaaaafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafaaaaaaaaaaaaaaaaaaaaaaafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafaaaaaaafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafaaaaaaaaaaaaaaaaaaaaafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafbmafafaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafaaaaaaaaaaaaaaaaafafbmafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafaaaaaaaaacaaaaafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafafafafafafafaaaaaaaaaaaaaaaaafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafbmafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafaaaaaaaaaaafafafafafbmafaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafaaaaaaaaaaaaaaaaaaaaaaafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafbmafafafafaaaaaaafafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafafaaaaaaafafbmafafafafafafaaaaaaafaaaaaaaaaaaaaaaaaaafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafaaaaaaaaaaafafafafafafafafafaaaaafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafaaaaaaafafbmafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafaaaaaaaaaaafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafaaaaaaaaaaaaaaaaaaaaafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafaaaaaaaaaaaaafafafbmafafaaaaaaaaafafaaaaafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafaaaaaaaaaaaaaaaaafafafafaaaaaaaaafafaaaaafafafafaaaaaaaaaaaaaaaaaaaaaaafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafaaaaaaaaaaaaaaaaafafaaaaaaaaaaaaaaafafbmafafafafaaaaaaaaaaaaaaafafafaaaaaaaaaaafafaaaaaaafafaaaaaaaaaaaaaaaaaaaaaaaaafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafbmafafafaaaaaaaaaaafafafafafafaaaaaaaaaaaaafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafaaaaaaaaaaaaaaafafbmafafaaaaaaaaaaaaaaaaafaaafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaafafafafaaaaaaaaaaafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbmafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbmafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafaaaaaaaaaaafafafafaaaaafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafbmafaaaaafafafafafaaaaaaaaaaafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafaaaaafafbmafaaaaaaafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafbmafafaaaaaaafafafafaaaaaaafafafafafafafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafaaaaaaafafafafaaaaaaafafafbmafafaaaaaaaaafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafaaaaaaafafaaaaaaaaaaaaafafafafafaaaaaaaaafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafaaaaaaaaaaaaaaaaaaaaaaaaafafaaaaaaaaaaaaaaafafafafaaaaaaaaafafbmafafaaaaaaaaaaaaaaaaaaaaaaaaaaafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbmafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafaaaaaaaaaaaaaaafafaaaaaaaaaaafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaadadadaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadaaaaaaaaaaaaaaaaaaadadadafadaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadadaaaaaaaaaaaaaaaaaaadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadafadadadadaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaadadadadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadaaaaaaaaaaaaaaaaaaaaaaaaahajaiaiaialakakakaLahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaaaaaaaaaaahahanaoapaqarasatauavahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaaaaaaaaaaahawaxayazaAaBaCaDayaEaFahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaaaaaaaaaaahaGaHayayaIaJaKayaybnaMahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaafafafaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafaaaaaaaaaaaaaaaaaaafafafbmafaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafafaaaaaaaaaaaaaaaaaaafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafbmafafafafaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaafafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafaaaaaaaaaaaaaaaaaaaaaaaaahajaiaiaialakakakaLahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaaaaaaaaaaahahanaoapaqarasatauavahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaaaaaaaaaaahawaxayazaAaBaCaDayaEaFahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaaaaaaaaaaahaGaHayayaIaJaKayaybnaMahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaaaaaaaaaaahaNaOayayaPaQaRayayaSaTahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaaaaaaaaaaahaUaOayayayaVaWaXaXaYaZahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamamaaamaaaaamamaaaaaaaaahahbaaybbbcbdbebfaybgahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaambhbibjbjbkbkamamamamaaaaaaamahblahahbmbIboahahbpahamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqbrbsbsbtbubvbvbwbvbvaaaabxbybxbzbAbBbCbDbEahbFbGbxbybxamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqbHbqbQbqbQbqbJbqbKbqaabLbMbNbMbObNahbPcgbRahbSbTbMbNbMbLamaaaaaaaaaaaaaaaaaaaaaaaabUbUbUbUbUbUbVbWbUbUbUbUbUbUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqbXbYbZcabYcbccbqcdceamambxbxbxbOcfahbmelchahcibTbxbxcjckckckckaaaaaaaaaaaaaaaaaaaabUclcmcmcncocpcpcqcrcscscsbUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqctbQcubQcvbQcwbqbKbqbxbxbxcxbNbObNbxcyczcAbxbSbTbNcBcjcCcDcEckckckckckaaaaaaaaaaambUcFcGcscHcIcpcpcJcKcscscLbUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaambqcMcNcOcOcPcOcQcRcSbqbNbNbNcTcUcVcUcWcXcYcZcWdadbcUdccjdddedfdgdhdidjckamamamamamambUcscscsdkdlcpcpdmdncmcmdobUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamambqdpcScScScScSdqcSdrdsbNdtdudvdwdxdydwdzdAdBdCdDdEcjcjcjdFdedGdHdedIdJckaaaaaaaaaaambUbUbUbUdKbUdLdMbUbUbUbUbUbUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamamamamambqdNcSdOcScSdPcSdOdQbqbqbqdRdSdTdUdVdWdXdYdZeaebecedeeefdeegeheiejekeHckaaaaaaaaaaaabUclcmcmemencpcpeoepeqeresetaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeuamamamamamamambqevewexeyezezezeAeBeCeDeEeFeGbQeIeJeKeLeMeNeOePeQeReSeSeSeTeUckckckckckaaaaaaaaaaambUcFcGcseVcIcpcpcpcpcpcpcpeWamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeXamaaaaaaaaaaambJeZfafbfccScScSfdfebqffcSfbfgbQeIeJeKeLfjfkflebfmedfndedefofpfhfrfickamamamamamamambUcscscsftfucpcpcpcpfvcpcpfwamamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeXaaaaaaaaaaaaaabqfxcSfyfzfAfAfAfAfBfCfDfAfEfFfGfHfIfJeLfqfLcjfKfMckdededefofOhIdefQckamaaaaaaaaaaambUbUbUbUbUbUcpcpfSfRfTfUbUbUbUbUbUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeXaaaaaaaaaaaaaabqcScSfbfccScScScSdrfVcScSfafNbQfXfXfXfYfZgacjgbgcgdgegfggghgifWgegjcjckckckckntntntgogpgqgrgsbUgtgugvbUbUgwbUgxgygzbUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeXaaaaaaaaaaaaaagAgBcSfbfccScSgCcSdrfVcScScSdrgDfXfXfXeLfjgacjgEgFgFgGgHgIdegkckckckcjgKgLgMckgNgOgPgogQcpcpcpcpcpgRgSgTgUgVbUgWgXgYbUamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeXaaaaaaaaaaaaaagZhacShbhchdbqbqbqbqbqbqbqbqbqbqbxbxbxeLfjhecjcjhfdehghhhigFhjfhfrfscjhlhmhnckhofXhphqhrcpcpcphshthuhvhththwbUhxhyhxbUbUamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeXaaaaaaaaaaaaaabQhAcSfbfccSbqbNbNbNbNbNbNbNbNbNbNbxhBeLfjgahCcjhDhEhFdehGgehHfPdehJcjhKhLhMckhNfXhOgohPhQhRhShThUhVhWcpcphXbUgRhYhZiabUamamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeXaaaaaaaaaaaaaabQcScShbhcicbqbNbxbxbxbxbxbxbxbxidbxieeLfjgaifcjigihglijgmilimfWgegjcjgniogJckiqfXfXgoirhQisitiuiviwixiyiziAbUcpiBiCbUbUbUbUbUamamamamamamamamamamamamamamamamameYeYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeXaaaaaaaaaaaaaabQgBcSfbfccSbqiEdwiFiGbxiHiIiJiKiLbxbxiMiNiOiPcjcjcjcjcjcjcjcjcjcjcjcjhkiRibckiTfXiUgobUbUbUbUbUgviVbUbUbUbUbUcpiWcpiXbUiYiZjabLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahzjbiDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeXaaaaaaaaaaaaxJgZhaewjehcjfbqbOjgiijijjjkjljljljmjneJfYdAjpjpjqjqjqjqjqjqjqjqjrjqjqjqjsjtjujqdzjqjvjwjxjyjzjAjBjCjDjEjFjEjGjHcpjIjJjKjLjMjLbUamamamamamamamamamamamamamamamamameYeYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeXaaaaaaaaaaaaaagAbJdRdSjNbqbqbOjObxbxbxjkjljljljljmjPikfjingafXfXfXfXfXfXfXfXfXfXfXfXfXfXgafXikiphpjTjQcpjRjWjXjYcpcpjZhththtkacpcpcpkbkckdkeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeXeXkfkfkgkgkfkfkfkfkikjkkkkkkklkmkniGbxjkjlkojljlkpkqfXfjfXkrksksktkuksksksksksksksktkskskvkskskvkwkxkykzkAkBkCkDkEkFkFkFjUkHkIcpcpcpkJkckKkLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamkfkMkNkNkOkPkQkfkRkSkTkTkUkVkWiijikXkYkZlalblcldeJfXfjfXbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxgogogogogogobUbUgvgwbUbUlebUbUbUbUbUlflgesbUlhlibUbUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakgkgkglklllmlmlnlolplqlrbNcfbxbxbxbxbxbxbxbxbxbxbxbxbxlsfjfXbxcTcUcUcUcUcUcUcUcUcUcUltlulvgolwlwlwlxlycplzlAlBjVlDgRlElFlGlHgtgwbUbUbUamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaaaaaaaaaaahaUaOayayayaVaWaXaXaYaZahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamamaaamaaaaamamaaaaaaaaahahbaaybbbcbdbebfaybgahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaambhbibjbjbkbkamamamamaaaaaaamahblahahbobIbCahahbpahamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqbrbsbsbtbubvbvbwbvbvaaaabxbybxbzbAbBbDbPbEahbFbGbxbybxamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqbHbqbQbqbQbqbJbqbKbqaabLbMbNbMbObNahbRchcgahbSbTbMbNbMbLamaaaaaaaaaaaaaaaaaaaaaaaabUbUbUbUbUbUbVbWbUbUbUbUbUbUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqbXbYbZcabYcbccbqcdceamambxbxbxbOcfahboelbCahcibTbxbxcjckckckckaaaaaaaaaaaaaaaaaaaabUclcmcmcncocpcpcrcqcscscsbUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqctbQcubQcvbQcwbqbKbqbxbxbxcxbNbObNbxcyczcAbxbSbTbNcBcjcCcDcEckckckckckaaaaaaaaaaambUcFcGcscHcIcpcpcJcKcscscLbUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaambqcMcNcOcOcPcOcQcRcSbqbNbNbNcTcUcVcUcWcXcYcZcWdadbcUdccjdddedfdgdhdidjckamamamamamambUcscscscndkcpcpdmdlcmcmdobUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamambqdpcScScScScSdqcScSdsbNdtdudvdwdxdydwdzdAdBdCdDdEcjcjcjdFdedGdHdedIdJckaaaaaaaaaaambUbUbUbUdKbUdLdMbUbUbUbUbUbUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamamamamambqdNcSdOcScSdPcSdOdQbqbqbqdRdSdTdUdVdWdXdYdZdrdnebeaeeefdeegeheiejekeHckaaaaaaaaaaaabUclcmcmecencpcpeoepeqeresetaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeuamamamamamamambqevewexeyezezezeAeBeCeDeEeFeGbQeIeJeKeLeMeNeOedemeReSeSeSeTeUckckckckckaaaaaaaaaaambUcFcGcsePcIcpcpcpcpcpcpcpeWamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeXamaaaaaaaaaaambJeZfafbfccScScSfdfebqffcSfbfgbQeIeJeKeLfjfkeQdneVeafndedefofpfhfrfickamamamamamamambUcscscsecflcpcpcpcpfvcpcpfwamamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeXaaaaaaaaaaaaaabqfxcSfyfzfAfAfAfAfBfCfDfAfEfFfGfHfIfJeLfqfLcjfKfMckdededefofOfmdefQckamaaaaaaaaaaambUbUbUbUbUbUcpcpfSfRfTfUbUbUbUbUbUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeXaaaaaaaaaaaaaabqcScSfbfccScScScScSftcScSfafNbQfXfXfXfYfZgacjgbgcgdgegfggghgifWgegjcjckckckckntntntgogpgqgrgsbUgtfugvbUbUgwbUgxfPgzbUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeXaaaaaaaaaaaaaagAgBcSfbfccScSgCcScSftcScScScSfVfXfXfXeLfjgacjgEgFgFgGgHgIdegkckckckcjgKgLgMckgNgOgPgogucpcpcpcpcpcpgSgTgUgVbUgWgXgYbUamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeXaaaaaaaaaaaaaagZhacShbgDgybqbqbqbqbqbqbqbqbqbqbxbxbxeLfjhecjcjhfdehghhhigFhjfhfrfscjhlhmhnckhofXhpgRgQcpcpcphshthuhvhththwbUhxhdhxbUbUamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeXaaaaaaaaaaaaaabQhAcSfbfccSbqbNbNbNbNbNbNbNbNbNbNbxhBeLfjgahCcjhDhEhFdehGgehHhqdehJcjhKhLhMckhNfXhOgohrhQhRhShThUhVhWcpcphXbUcpiBhQiabUamamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeXaaaaaaaaaaaaaabQcScShbhyicbqbNbxbxbxbxbxbxbxbxidbxieeLfjgaifcjigihglijgmilimfWgegjcjgniogJckiqfXfXgoirhQisitiuivkIixiyiziAbUcpiBiCbUbUbUbUbUamamamamamamamamamamamamamamamamameYeYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeXaaaaaaaaaaaaaabQgBcSfbfccSbqiEdwiFiGbxiHiIiJiKiLbxbxiMiNiOiPcjcjcjcjcjcjcjcjcjcjcjcjhkhzibckiTfXiUgobUbUbUbUbUgvhIbUbUbUbUbUcpiWcpiXbUiYiZjabLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLhPiDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeXaaaaaaaaaaaaxJgZhaewjehchYbqbOjgiijijjjkjljljljmjneJfYdAjpjpjqjqjqjqjqjqjqjqjrjqjqjqjsjtjujqdzjqjvjwhZjyjzjAiwjCjDjEjFjEjGjHcpjIjJjKjLjMjLbUamamamamamamamamamamamamamamamamameYeYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeXaaaaaaaaaaaaaagAbJdRdSjNbqbqbOjObxbxbxjkjljljljljmjPikfjingafXfXfXfXfXfXfXfXfXfXfXfXfXfXgafXikiphpiViRcpjRjfjbjYcpcpjZhththtkacpcpcpkbkckdkeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeXeXkfkfkgkgkfkfkfkfkikjkkkkkkklkmkniGbxjkjlkojljlkpkqfXfjfXkrksksktkuksksksksksksksktkskskvkskskvkwkxjxkzkAkBjBkDkEkFkFkFjUkHkIcpcpcpkJkckKkLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamkfkMkNkNkOkPkQkfkRkSkTkTkUkVkWiijikXkYkZlalblcldeJfXfjfXbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxgogogogogogobUbUgvgwbUbUjQbUbUbUbUbUlflgesbUlhlibUbUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakgkgkglklllmlmlnlolplqlrbNcfbxbxbxbxbxbxbxbxbxbxbxbxbxlsfjfXbxcTcUcUcUcUcUcUcUcUcUcUltlulvgolwlwlwlxlycplzlAlBjVlDcplElFlGlHgtgwbUbUbUamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxKlIlJlIlklKlKlKlLlMlNdxlOkklPbxiQiQbxlRlSlTlUlVlWbNcTlXlYlZlYlXmambmbmbmbmbmbmbmbmbbNbSbNmcgomdmememflycpcpmghXcpcpcpcpkGmilCmjmhmlmkmoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakgkgkglklKlKlKmpmqkfmrlJlJmskkklmtmumvmwntmxntmybNmzbxfXfXfXbxbSmbmAmBmCmDmEmCmFmbmGmHcUmIgomemememflycpcpmgcpcpmJmKmLcpcphQmMmNmOmPmoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamkfmQlKlKmRmSmTmUmVmWlJbNbNbNbNbNbNbNmvmwmXbNcTmYbxfXfXfXbxbSmbmZnanbnbnbiSndmbnenfbNnggogogogogogonhninjnkmmncmnncnlnpnmmjnnmlnomoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamkgnulKlKnvmpnwkfnxnynznAnAnAnAnAnBnCnDdtbNnEbSnFbxfXfXfXbxbSmbnGnHnInbnJnKnLmbnMnNcUnOnPnQnRnSnTgogogonUkxkxkxkxkxkxkxkxkxnVgogogoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamkfmQlKlKnvmpnWkfnXnYnZnAjhobocodoejojobxogbNohoibxfXfXfXbxbSmbojoknbnbnbolommbonbNbNoonPopnqorororosotouovowoxoyozoAnPoBoCoDoEoFoGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakgkgkglklKlKnvmpmqkfkfkfkfnAoHoIoJoKoebxbxbxbNbNbSoLbxfXfXoMbxbSmbmboNjSoPkhoRmbmbbxbNbNlRoSoTnroVoVoVoWoXoYoVoVoVoZpapbnPpcpdpepfpgphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalIlJlIlklKlKnvmpmqpipjpkplnAlQpnpopppqbNcTprprprmYbNbxfXfXpsbxnNptpuoNpvpwnsoRpypzbxbNbNpAnPpBpfpCpfpfpDpEpFpGpGpGpDpHoroupIpJpKpfpfnPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakgkgkglkoapMpNpOpPpQpRpkpSnApTpUpVpWoebNbSbNdtlvlucxbxfXfXpXbxbNbNcxpYpZqaqbqcqdqebxbNbxbxnPnPnPnPqfqgqhqinPqjqjqkqlqmqnqoqpoZqqpfqrnPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamkfqsqtlKnvmpmqququpkqvnAnAoeqwnAoebxqxbxbxbxbxbxbxfXfXfXbxbxbxbxmbofqzoOmbqBbxbxidbxoQqDqEhCnPqFnPqGqHnPqIqJnPqKpaqLqMqNqOoqpfpfoGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamkfkfkflKnvmpqQpMpMpMpMqRpMqSpOpMqTksqUfXqVfXqWqXlYlYlYlYlYlYqYlYlYqZrarbrcrdrejqjqjrjqrfjqjqjqjqrgrhrirjrkrlrmrnpHronPrprqrrrsrtphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamameXrurvrwrxryrzrArBlmlmlmrDlmlmrErFcXcXcXrGfXfXpmfXipfXfXfXfXfXeLfXgafXfXfXfXfXfXfXfXfXfXfXfXrIpDpfrJrKpfrLrnparMnPnPnPnPnPnPnPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamkfkfkflKrNrOrPrQrRrSrTrClKlKlKlKlKeLgafXfXrVfjfXfXeLfXgafXfXfXfXfXeLfXrWksksksksktksksrXkskskskurYrZpfsasbscrmsdqmoUnPsfsgshsisjnPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakgsksllKlKmpmqlKlKlKlKnvsmsnsnsnsospsqsrsrsrqxbxbxiMssstsusvswsususxpxszsususususufXpLsBfXfXbxbxsCsDsDnPnPnPnPsEpHsGsHsIsJsKsLpfoGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakflKlKlKlKqyqAsOlKlKlKnvsrsrljljsRsSsTsUsVsWsXsYdwsZfXgasutatbtctdtetftgthsutitjsusseJtltmeJbxamnPrmtnnPtoqPtqtrpatsttrHpftvtwpfphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakgtykglklKlKtAkgtykgkftBtCtDtEtFtGtHtItJtKtLtMtNtNtOkssBpxtdtQtRtStTtdtUtVtWsetYsufXfXfXfXtZbxaanPuaubucpaudueufoXugnPnPnPnPnPnPnPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakglJkgujukulumkglJkgkfkfsrunuounupuqurusutsruubxuvfXfXfXpxtdtTuxtdtTtdtUtVuyuzuAsufXuBuCuDfXntaanPuEpfpfpauFrmuGpauHuItpuKuLpfuMoGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasyuOsykgkgkgkgsyuOsyamamsruSuTuntuununtXuWsruubxuXfXfXfXpxtdtTuYtdtTtdtUtVuZuzvasulsvbvbvbvcbxaanPvdpfpfvevfvgvhvivjsHvkpfvlpfpfphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajcvmjdvmvmsPsPvmvmvqvpvramsrsrvtsrsrvuvvsrsqsruubxbxfXfXfXpxtdvxtRtStTtdvyvzvAvBvCvDfXuBuCuDvEntaanPvFvGvHvIvJqovKvLvMnPvNvOvPvQvRnPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajcvpvmvsvSvSvUvTvWvVvXvUvSvYvZambxbNbSwbwcsrsrsrbGwduubNbxfXfXfXsuwewfwgwhwiwjwktVwlwmvCwnfXvbvbvbwobxamnPqIwpwpwqnPnPwrwswtnPnPnPnPnPnPnPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavYwawvwuvSwwvSwwvSwwvSwwvSwxvZambxbNbSbNbxwAwBwCwDwEwFlPbxfXfXfXsusuwGsususuwHwIsuwJsuwKsufXwLwMwNwObxaaaaaaaaamamnPwPwQwRwSwTnPamamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasQvSvSvqvSwwvSwwwzwwvSwwvSwxvZambxbNbSbNbxbNwWwXwYwZnDbObxfXfXiUsuxaxbxcxdxexfxgxhxixjxksuidbxbxbxbxbxaaaaaaaaaaamxlxmuJpfuUxpxlamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakgkgkglklKlKnvmpmqkfkfkfkfnAoHoIoJoKoebxbxbxbNbNbSoLbxfXfXoMbxbSmbmboNjSoPkhoRmbmbbxbNbNlRoSrInroVoVoVoWoXoYoVoVoVoZpapbnPpcpdpepfpgphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalIlJlIlklKlKnvmpmqpipjpkplnAlQpnpojTpqbNcTprprprmYbNbxfXfXpsbxnNptpuoNpvpwnsoRpypzbxbNbNpAnPpBpfpCpfpfpDpEpFpGpGpGpDpHoroupIpJpKpfpfnPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakgkgkglkoapMpNpOpPpQpRpkpSnApTpUpopWoebNbSbNdtlvlucxbxfXfXpXbxbNbNcxpYjWpwjXqcqdqebxbNbxbxnPnPnPnPqfqgkykCnPleleqkqlqmqaqoqnoZqqpfqrnPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamkfqsqtlKnvmpmqqpqppkqvnAnAoeoTnAoebxqxbxbxbxbxbxbxfXfXfXbxbxbxbxmbofppoOmbqBbxbxidbxoQqDqEhCnPqFnPpVpZnPqIqJnPqKpaquqbqNqOoqpfpfoGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamkfkfkflKnvmpqQpMpMpMpMqRpMqSpOpMqTksqUfXqVfXqWqXlYlYlYlYlYlYqYlYlYqZrarbrcrdrejqjqjrjqrfjqjqjqjqrgrhrirjrkrlrmpDpHronPrprqrrrsrtphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamameXrurvrwrxryrzrArBlmlmlmrDlmlmrErFcXcXcXrGfXfXpmfXipfXfXfXfXfXeLfXgafXfXfXfXfXfXfXfXfXfXfXfXrIpDpfrJrKpfqhpDparMnPnPnPnPnPnPnPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamkfkfkflKrNrOrPrQrRrSrTrClKlKlKlKlKeLgafXfXrVfjfXfXeLfXgafXfXfXfXfXeLfXrWksksksksktksksrXkskskskurYrZpfsasbscrmqlqmoUnPsfsgshsisjnPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakgsksllKlKmpmqlKlKlKlKnvsmsnsnsnsospsqsrsrsrqxbxbxiMssstsusvswsusuqipxqjsususususufXpLsBfXfXbxbxsCqwqwnPnPnPnPsEpHsGsHsIsJsKsLpfoGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakflKlKlKlKqyqAsOlKlKlKnvsrsrljljsRsSsTsUsVsWsXsYdwsZfXgasutatbtctdtTtdtUthsutitjsusseJtltmeJbxamnPrmqznPtoqPtqtrpaqGqHrHpftvtwpfphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakgtykglklKlKtAkgtykgkftBqMqLtEtFtGtHtItJtKtLtMtNtNtOkssBpxtdtQtRtStTtdtUtVtWsetYsufXfXfXfXtZbxaanPuaubucpaudrLrnoXugnPnPnPnPnPnPnPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakglJkgujukulumkglJkgkfkfsrunuounupuqurusutsruubxuvfXfXfXpxtdtTuxtdtTtdtUtVuyuzuAsufXuBuCuDfXntaanPuEpfsdpauFrmsxpaszsDtpuKuLpfuMoGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasyuOsykgkgkgkgsyuOsyamamsruSuountuununtXuWsruubxuXfXfXfXpxtdtTuYtdtTtdtUtVuZuzvasulsvbvbvbvcbxaanPvdpfpfvevftftevivjsHvkpfvlpfpfphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajcvmjdvmvmsPsPvmvmvqvpvramsrsrvtsrsrvuvvsrsqsruubxbxfXfXfXpxtdvxtRtStTtdvyvzvAvBvCvDfXuBuCuDvEntaanPvFvGvHvIvJqotgoVtnnPvNvOvPvQvRnPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajcvpvmvsvSvSvUvTvWvVvXvUvSvYvZambxbNbSwbwcsrsrsrbGwduubNbxfXfXfXsuwewfwgwhwiwjwktVwlwmvCwnfXvbvbvbwobxamnPqIwpwpwqnPnPwrtswtnPnPnPnPnPnPnPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavYwawvwuvSwwvSwwvSwwvSwwvSwxvZambxbNbSbNbxwAwBwCwDwEwFlPbxfXfXfXsusuwGsususuttwIsuwJsutCsufXwLwMwNwObxaaaaaaaaamamnPwPwQwRwStDnPamamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasQvSvSvqvSwwvSwwwzwwvSwwvSwxvZambxbNbSbNbxbNwWwXwYwZnDbObxfXfXiUsuxaxbueufxeuGxgxhxixjuHsuidbxbxbxbxbxaaaaaaaaaaamxlxmuJpfuUxpxlamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavYwUwvwuvSwwvSwwvSwwvSwwvSwxvZambxbNbSbNbxbNxrxsqCxsbTxubxfXfXfXsuxvxwxxxyxzxAxBxCxDxExFsubNbxamamaaaaaaaaaaaaaaaanPxGpfpfpfxHnPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxqwVvmvsvSvSvSvSvSvSvSvSvSvYvZambxcxnNprprprxLbxxMbxbTbObxxNfXxOsuuVsAxRwIxSsMxUxVxWsNxYsubNbxbxbxamaaaaaaaaaaaaaanPnPxZyaybnPnPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxqwVvmvsvSvSvSvSvSvSvSvSvSvYvZambxcxnNprprprxLbxxMbxbTbObxxNfXxOsuuVsAxRwIxSsMxUxVxWsNuHsubNbxbxbxamaaaaaaaaaaaaaanPnPxZyaybnPnPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxqvmvmvmvmvmvmvmvmvmwVxIambxyddtmGbNbNxrbxvobxyfygtNksksksyhyiyjykylsusususususuymsubNbMbNbMbLamamamamamamamamnPqIwpwqnPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxbybxbxbxbxbxbNxrbxbxbxbNmsynyojqypyqyrysytpryuyvbNmubNbNbNbNbNbxbybxamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaambxbNbMcTprprywpryxprprprprpryylYlYlYyzmYyAyAyAyAyAyAyAyAyAyAyAbxbxamamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamGObMbNyByCyAyAyAyAyAyAyAyAyAyAyDyEfXyFyGyAyAyHyHyIyIyJyJyKyLyMyBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaameXeXyByNyOyPyRyQySyTyUyVyWyAyXikfXinyYyAyZyHyHyIyIyJyJyKzazbyByBamamzczczdzdzcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamuIbMbNyByCyAyAyAyAyAyAyAyAyAyAyDyEfXyFyGyAyAyHyHyIyIyJyJyKyLuTyBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaameXeXyBvgyOyPyRyQySyTyUyVyWyAyXikfXinyYyAyZyHyHyIyIyJyJyKzazbyByBamamzczczdzdzcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamtkzazfzazgzgzgzazavwziyAzjfXfXfXzkyAyZyHyHyIyIyJyJzlzazmzntkaaaazczozozozcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatkzazqzrzsztztzrzazuzvzwzxzyzzzAzByAzCzDzDzEzEzFzFzGzHzIzJtxzLzLtzwyzOzPzcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatkzazqzazRzSzSzTzTzUzazVzWzXzYzXzZAaAbAcAcAcAcAcAcAdAezmzntkaaaazczozozozcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayBzaAfAbAbAgzazazazszaAhAiAjAkxnAmAnzavwzazrzazrzazqzfzmyByBamamzczczczczcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayBAoApAqArAsAbAbAbAtAbAuAvAezaAwAxAyAzAAABACAzADAEAFAGAoyBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatkzazqzazRzSzSzTzTzUzazVzWzXvhzXzZvKAbAcAcAcAcAcAcAdAezmzntkaaaazczozozozcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayBzaAfAbAbAgzazazazszaAhAivLAVvMAmwszavwzazrzazrzazqzfzmyByBamamzczczczczcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayBAoAoApArAsAbAbwHAtAbAbwKAezaAwwTAzAzAAABACAzADAEAFAGAoyBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayByByByByBzqzayByBAHyByByBAIzaAJyByByBAKyByBzaALyByByByByBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaayBzqAMyBANAOAPAQyBtktktkyBAUzaAVAWyBAXALyBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaayBzqAMyBAWAOAPAUyBtktktkyBAUzaAVAWyBAXALyBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamamamyBzqAYyBzazRAZAZAZAZBazayMzazazazayBAIALyBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaayBtkyBBcBdtkzazazaBextxoBhxPxQBkzazazatkBlBmyBtkyBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaatkBozazqBptkzazfzaBqxTBsBtBuxXBwzavwzatkBxALByBztkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaatkBozazqBptkzazqzaBAyeycBDzezhBGzaALzatkBxALzaBHtkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaayBtkyBxcxdtkxfzazaBextxoBhxPxQBkzazaxktkxYxnyBtkyBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaatkBozazqBptkAnzfzaBqxTBsBtBuxXBwzavwAqtkBxALByBztkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaatkBozazqBptkyNzqzaBAyeycBDzezhBGzaALxktkBxALzaBHtkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaatkBozaAsAbBIBIBJBKBLzKzpBOzMzNBRzaBSBTBTAzBUBVBWtkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaayBtkyBzqzaBXyByByByBzQzQAKAlAlyByByByBCczaALyBtPyBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamamamyBCezfzazayLzaCfzKzpAVzMzNCgzazazazavwChyBCiCjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaayBAfCkAbAbAgzaCfzKzpBOzMzNCgzaClAzAzCmCnyBCoCpCqCqCqCrCqCqCqCqCsCjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamaaaaaayBCtCuCvyBAiyByBzQzQCwAlAlyByBAmyBCxCyCzyBamamamamamamamamamamCoCAamaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamamamyBCezfzazayLzazYzKzpAVzMzNzYzazazazavwChyBCiCjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaayBAfCkAbAbAgzazYzKzpBOzMzNzYzaClAzAzCmCnyBCoCpCqCqCqCrCqCqCqCqCsCjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamaaaaaayBCtCuCvyBAiyByBzQzQAaAlAlyByBAmyBCxCyCzyBamamamamamamamamamamCoCAamaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayByByByByByByByByByBARATASyeBbAVBfzhBgBjBiCJyByByByByByByByByBaaaaaaaaaaamCKamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayBCLCMCNCNCNCNCMCOyBzaCPCQCRCSzaCTCRCQCUCVyBCWCXCYCZCYCYCXDayBaaaaaaaaaaaaDbamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaayBDcCLCOCLCOCLCODdDsBnBvBrBBzpzazMBEBCBMBFDnDoDpDaDpDaDpDaDqDraaaaaaaaaaaaDbamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayBDcDcDcDcDcDcDcCLDsBNBPBPBPBQDwBYBZBZBZCaDnCYDoDqDqDqDqDqDqDraaaaaaaaaaaaDbamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayBDcDcDcDcDcDcDcDcyBCbCdCdCdCBCDCCCdCEDGCFCHCGCIDqDqDqDqDqDqDraaaaaaaaaaaaDbamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayBDdDLDdDLDdDLDdDLyBDeDfDeDeDgDPDhDiDSDTDUyBDjCIDWDoDWDoDWDoyBaaaaaaaaaaamDXamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayBDYDYDYDYDYDYDYDYyByByByByByByByByByByByBCJyByByByByByByByByBamamamamamamDZamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayBAjAjAjAjAjAjAjAjyByByByByByByByByByByByBCJyByByByByByByByByBamamamamamamDZamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamDXamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDbamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDbamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamamamamamamamamamamamEaEaEaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDbamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamambLEaEbEaEaEaEaEaEaEaEaEaEcEdEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDbamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamamambLEaEbEaEaEaEaEaEaEaEaEaEcAkEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEeEfamamamamamamamamamamamamamamamamamamamambLbLEgEhEgEhEhEhEhEhEiEjEkElEmuhEoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEpEqCqErCqCqCqCqCqCqErCqCqCqCqErEsEtEfamEaEaEaEaEaEaEaEuEvEwEwEwExEyEzEAEdEaamamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEpEqCqErCqCqCqCqCqCqErCqCqCqCqErEsEtEfamEaEaEaEaEaEaEaEuEvEwEwEwExEyEzEAAkEaamamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamCoEBEfuiEhEhEDEhEhEhEhEEEFEGEGEHEIEhEJEJEJEJEJEJEJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamCoCAuiEhEhEvEwEwEwEwELEMDkEOEPEIEhEJEQERESETEQEJamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamEauwEaEhEhEEsFrUGPEWEaEYEZFaFbFcFdEJFeFfEQFfFgEJamamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/_maps/map_files/MiniStation/z2.dmm b/_maps/map_files/MiniStation/z2.dmm index e0d9426e684..c4597d370c7 100644 --- a/_maps/map_files/MiniStation/z2.dmm +++ b/_maps/map_files/MiniStation/z2.dmm @@ -433,7 +433,7 @@ "iq" = (/obj/machinery/vending/cola,/turf/simulated/floor/plasteel/bar,/area/syndicate_mothership) "ir" = (/obj/machinery/vending/coffee,/turf/simulated/floor/plasteel/bar,/area/syndicate_mothership) "is" = (/turf/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/syndicate_mothership) -"it" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/greyscale = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/simulated/floor/plasteel/bar,/area/syndicate_mothership) +"it" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/random = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/simulated/floor/plasteel/bar,/area/syndicate_mothership) "iu" = (/obj/structure/stool/bed/chair/comfy/teal,/turf/simulated/floor/plasteel/grimy,/area/syndicate_mothership) "iv" = (/obj/item/device/paicard,/turf/simulated/floor/plasteel/grimy,/area/syndicate_mothership) "iw" = (/obj/structure/bookcase,/obj/item/weapon/book/manual/wiki/engineering_hacking,/obj/item/weapon/book/manual/robotics_cyborgs,/obj/item/weapon/book/manual/engineering_singularity_safety,/obj/item/weapon/book/manual/detective,/turf/simulated/floor/plasteel/grimy,/area/syndicate_mothership) diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm index 008423851a3..59d6f4c1cd4 100644 --- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm +++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm @@ -104,7 +104,7 @@ "abZ" = (/obj/machinery/newscaster/security_unit{pixel_x = -30; pixel_y = 0},/obj/machinery/camera{c_tag = "Head of Security's Office"; dir = 4; network = list("SS13")},/obj/machinery/recharger{pixel_y = 4},/obj/structure/table/wood,/turf/simulated/floor/fancy/carpet,/area/security/hos) "aca" = (/obj/structure/stool/bed/chair/comfy/black,/turf/simulated/floor/fancy/carpet,/area/security/hos) "acb" = (/turf/simulated/floor/fancy/carpet,/area/security/hos) -"acc" = (/obj/machinery/keycard_auth{pixel_x = 24; pixel_y = 10},/obj/machinery/hologram/holopad,/turf/simulated/floor/fancy/carpet,/area/security/hos) +"acc" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/fancy/carpet,/area/security/hos) "acd" = (/obj/structure/sign/securearea{pixel_y = -32},/obj/structure/lattice/catwalk,/turf/space,/area/space) "ace" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/lattice/catwalk,/turf/space,/area/solar/auxstarboard) "acf" = (/obj/structure/lattice,/obj/item/stack/cable_coil/random,/turf/space,/area/space) @@ -351,8 +351,8 @@ "agM" = (/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j2s"; sortType = 7},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/main) "agN" = (/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j2s"; sortType = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/security/main) "agO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/security/main) -"agP" = (/turf/simulated/wall,/area/shuttle/pod_3) -"agQ" = (/turf/space,/turf/simulated/wall/shuttle{dir = 2; icon_state = "swall_f10"; layer = 2},/area/space) +"agP" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/simulated/floor/plating,/area/shuttle/pod_3) +"agQ" = (/turf/space,/turf/simulated/wall/shuttle{icon_state = "swall_f9"; dir = 2},/area/shuttle/pod_3) "agR" = (/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Security Delivery"; req_access_txt = "1"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/security/main) "agS" = (/obj/machinery/recharger,/obj/structure/table,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/main) "agT" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) @@ -381,7 +381,7 @@ "ahq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/plasteel,/area/security/main) "ahr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel,/area/security/main) "ahs" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/security/main) -"aht" = (/obj/machinery/door/airlock/external{name = "Escape Pod Three"; req_access_txt = "63"},/turf/simulated/floor/plating,/area/shuttle/pod_3) +"aht" = (/turf/space,/turf/simulated/wall/shuttle{dir = 2; icon_state = "swall_f10"; layer = 2},/area/shuttle/pod_3) "ahu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/security/main) "ahv" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/security/main) "ahw" = (/obj/machinery/power/apc{dir = 4; name = "Security Office APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/main) @@ -403,8 +403,8 @@ "ahM" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/security/warden) "ahN" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 10},/area/security/main) "ahO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/simulated/floor/plasteel{icon_state = "red"},/area/security/main) -"ahP" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/simulated/floor/plating,/area/space) -"ahQ" = (/turf/space,/turf/simulated/wall/shuttle{icon_state = "swall_f9"; dir = 2},/area/space) +"ahP" = (/obj/machinery/keycard_auth{pixel_x = 24; pixel_y = 10},/obj/machinery/computer/card/minor/hos,/turf/simulated/floor/fancy/carpet,/area/security/hos) +"ahQ" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "white"},/area/crew_quarters/hor) "ahR" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "red"},/area/security/main) "ahS" = (/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/security/main) "ahT" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-y"; dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/security/main) @@ -3321,7 +3321,7 @@ "blS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel,/area/assembly/chargebay) "blT" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel,/area/assembly/chargebay) "blU" = (/obj/structure/table,/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/stack/cable_coil,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/turf/simulated/floor/plasteel,/area/assembly/robotics) -"blV" = (/obj/structure/stool,/turf/simulated/floor/plasteel,/area/assembly/robotics) +"blV" = (/obj/structure/stool,/obj/effect/landmark/start{name = "Roboticist"},/turf/simulated/floor/plasteel,/area/assembly/robotics) "blW" = (/turf/simulated/floor/plasteel{icon_state = "bot"},/area/assembly/robotics) "blX" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"},/area/assembly/robotics) "blY" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/assembly/robotics) @@ -3903,7 +3903,7 @@ "bxc" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/obj/effect/landmark/start{name = "Research Director"},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/hor) "bxd" = (/obj/machinery/computer/robotics,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/hor) "bxe" = (/obj/structure/rack,/obj/item/device/aicard,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"},/area/crew_quarters/hor) -"bxf" = (/turf/simulated/floor/plasteel{icon_state = "white"},/area/crew_quarters/hor) +"bxf" = (/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = -24},/obj/machinery/light,/obj/machinery/computer/card/minor/rd,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/hor) "bxg" = (/obj/structure/lamarr,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"},/area/crew_quarters/hor) "bxh" = (/turf/simulated/wall/r_wall,/area/crew_quarters/hor) "bxi" = (/turf/simulated/wall,/area/toxins/explab) @@ -4096,7 +4096,7 @@ "bAN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bAO" = (/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "bAP" = (/obj/machinery/power/apc{dir = 8; name = "RD Office APC"; pixel_x = -25},/obj/structure/cable,/obj/machinery/light_switch{pixel_y = -23},/obj/structure/flora/kirbyplants/dead,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/hor) -"bAQ" = (/obj/machinery/hologram/holopad,/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = -24},/obj/machinery/light,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/hor) +"bAQ" = (/obj/machinery/computer/card/minor/cmo,/turf/simulated/floor/plasteel{icon_state = "barber"},/area/medical/cmo) "bAR" = (/obj/structure/table,/obj/item/weapon/cartridge/signal/toxins,/obj/item/weapon/cartridge/signal/toxins{pixel_x = -4; pixel_y = 2},/obj/item/weapon/cartridge/signal/toxins{pixel_x = 4; pixel_y = 6},/obj/machinery/camera{c_tag = "Research Director's Office"; dir = 1; network = list("SS13","RD")},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/hor) "bAS" = (/obj/structure/closet/secure_closet/RD,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/hor) "bAT" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/hor) @@ -5653,7 +5653,7 @@ "ceK" = (/turf/simulated/wall/r_wall,/area/engine/engineering) "ceL" = (/obj/machinery/computer/atmos_alert,/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Engineer's Desk"; departmentType = 3; name = "Chief Engineer RC"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office) "ceM" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office) -"ceN" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/lighter,/obj/item/clothing/glasses/meson{pixel_y = 4},/obj/item/weapon/stamp/ce,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office) +"ceN" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/lighter,/obj/item/clothing/glasses/meson{pixel_y = 4},/obj/item/weapon/stamp/ce,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office) "ceO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office) "ceP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office) "ceQ" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/engine/chiefs_office) @@ -5772,7 +5772,7 @@ "cgZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/engine/engineering) "cha" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/machinery/camera{c_tag = "Engineering Power Storage"},/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel,/area/engine/engineering) "chb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/stool/bed/chair/office/dark{dir = 1},/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor/plasteel,/area/engine/engineering) -"chc" = (/obj/structure/filingcabinet/chestdrawer,/obj/machinery/camera{c_tag = "Chief Engineer's Office"; dir = 4; network = list("SS13")},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/mob/living/simple_animal/parrot/Poly,/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office) +"chc" = (/obj/machinery/camera{c_tag = "Chief Engineer's Office"; dir = 4; network = list("SS13")},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/computer/card/minor/ce,/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office) "chd" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office) "che" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/storage/fancy/cigarettes,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office) "chf" = (/turf/simulated/floor/engine,/area/toxins/explab) @@ -6428,7 +6428,7 @@ "ctF" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (EAST)"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/aisat_interior) "ctG" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel{tag = "icon-darkbluecorners (WEST)"; icon_state = "darkbluecorners"; dir = 8},/area/turret_protected/aisat_interior) "ctH" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/table,/turf/simulated/floor/plasteel{icon_state = "yellow"},/area/engine/engineering) -"ctI" = (/obj/structure/table/reinforced,/obj/item/stack/medical/bruise_pack{pixel_x = -3; pixel_y = 2},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office) +"ctI" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/structure/filingcabinet/chestdrawer,/mob/living/simple_animal/parrot/Poly,/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office) "ctJ" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1},/turf/simulated/floor/plasteel{tag = "icon-darkbluecorners"; icon_state = "darkbluecorners"; temperature = 273.15},/area/turret_protected/aisat_interior) "ctK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (WEST)"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/aisat_interior) "ctL" = (/obj/machinery/door/airlock/shuttle{name = "Mining Shuttle Airlock"; req_access_txt = "48"},/obj/docking_port/mobile{dir = 8; dwidth = 3; height = 5; id = "mining"; name = "mining shuttle"; travelDir = 90; width = 7},/obj/docking_port/stationary{dir = 8; dwidth = 3; height = 5; id = "mining_home"; name = "mining shuttle bay"; width = 7},/turf/simulated/floor/plating,/area/shuttle/labor) @@ -6578,13 +6578,13 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaZaasaasaasaaKabaabbaasaasabcabdaaiaaiaaiaafaaaaaaaaaaaaaaaaafaaaaaVaaaaaaaaaaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeabeabeabfabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHaaOaaWaaNaaXabiaasabjaasaasaasaasaasaasaauaasabkablaaiaafaafaafaafaafaafaafaafabmabmabmabnabmabmaboaboabpabpabpaboaboaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaafaaaabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgaaYabraaPabsabuaasaasabvabwabxaasabyabzabAaasabBabCaaiaafaaaaafaafaafaafaaaaafabnabDabEaeIabFabGaboabHabIabJabKabLaboaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafabMaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaabfabfabeabfabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgabNabPabOabsabSabTabSabSabSabUabSabSabSabVabSabSabWaaiactactactactactactactactabmabXabEaeIabYabDaboabZacaacbacbaccaboaaaaafacdaagaagaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfabfabfabfabfaafaafaaaaceaaaacfaafabfabfabfabfabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaabfabfabeabfabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgabNabPabOabsabSabTabSabSabSabUabSabSabSabVabSabSabWaaiactactactactactactactactabmabXabEaeIabYabDaboabZacaacbaccahPaboaaaaafacdaagaagaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfabfabfabfabfaafaafaaaaceaaaacfaafabfabfabfabfabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaafaaaabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgabQacgabRabsackaasaclabSacmacnacoabSacpacqacrabSacsaaiacMacNacOacOacPacQacRacSactacuabEaeIaecabDabpacwacxacyacbaczaboaaaaafacAacBacAaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqaaaaaaaafaaaaafaaaaaaaceaaaaaaaafaaaaafaaaaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafacCaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHaciacDacjacEacHaasacIabSacJacnacIabSacKacqacIabSacLaaiacMadkadladladladladmadnactacTabEaeIaecabDabpacUacVacWacbacXaboaafaafacAacYacAaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafacZacZacZacZacZaaaadaaaaacZacZacZacZacZaafabfaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfadbadbadbadbaafaafaaaadcaaaaafaafabfabfabfabfabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafhaaHaaHaaHacFaddacGabsadfadgadhabSadfadiadhabSadfadjadhabSabSaaiafnaRFaNFadVaNFadWbhdbiGactadoabEaeIaecabDaboadpadqadradsadtaboabnabmadvacBacAacAachaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaadwadxadxadxadxadyadzadAadBadBadBadBadCaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaaaaafaaaaafaaaaaaadcaaaaaaaafaaaaafaaaaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHabhadeadDadGadFadIadHadKadJadMadLadOadNadUadLaepadPadQadRaaiadSadTaNFboSaNFadXadYadZaeaabEabEaebaeTabmaboaedaboaeeaboaefaboaegaehacAaeiagParqanTanTagQaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafaemaemaemaemaemaaaadzaaaaemaemaemaemaemaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafaenaenaenaenaenaaaaeoaaaaenaenaenaenaenaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHadEaeqaeraeuaetaewaevafiaexavkaifaexaexaexaifaOyaOvaeyaezaaiaeAaeBaeCaeDaeEaeFaeGaeHactahoagSaeJahpabmaeLaeMaeNaeOaePaeQaeNaeRaeSaeVaeUahtamoamIamJahPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaaaaaaaafaaaaaaaaaadzaaaaaaaaaaafaaaaaaaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaafaafbafbafbafbafcafdafeaffaffaffaffafgaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaOxaesaOzaRfbfTbfPabSbiEafjafkaflafmbNoafoafpafpafpabSafqafraaiafsaftafuafvafwafxafyafzactacvabnafBafCabmafDafEafFafGafHafIafJafKafLacAafMagPaptanTanTahQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafacZacZacZacZacZaaaadzaaaacZacZacZacZacZaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaaaaafaaaaafaaaaaaadcaaaaaaaafaaaaafaaaaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHabhadeadDadGadFadIadHadKadJadMadLadOadNadUadLaepadPadQadRaaiadSadTaNFboSaNFadXadYadZaeaabEabEaebaeTabmaboaedaboaeeaboaefaboaegaehacAaeiacAarqanTanTahtaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafaemaemaemaemaemaaaadzaaaaemaemaemaemaemaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafaenaenaenaenaenaaaaeoaaaaenaenaenaenaenaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHadEaeqaeraeuaetaewaevafiaexavkaifaexaexaexaifaOyaOvaeyaezaaiaeAaeBaeCaeDaeEaeFaeGaeHactahoagSaeJahpabmaeLaeMaeNaeOaePaeQaeNaeRaeSaeVaeUaeVamoamIamJagPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaaaaaaaafaaaaaaaaaadzaaaaaaaaaaafaaaaaaaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaafaafbafbafbafbafcafdafeaffaffaffaffafgaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaOxaesaOzaRfbfTbfPabSbiEafjafkaflafmbNoafoafpafpafpabSafqafraaiafsaftafuafvafwafxafyafzactacvabnafBafCabmafDafEafFafGafHafIafJafKafLacAafMacAaptanTanTagQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafacZacZacZacZacZaaaadzaaaacZacZacZacZacZaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafafPafPafPafPafPaaaafdaaaafPafPafPafPafPaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHaaHaaHbaMbOybkdaaHaaiadhafQadfafRafRafRafRafRafRafRafSafTafUafVafWafXafYafZagaagbagcafUagdahSageagfaggaghagiafFagjafHagkaglagmabmadvacAacAacAachaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaadwadxadxadxadxadyadzadAadBadBadBadBadCaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaaaaaaaafaaaaaaaaaafdaaaaaaaaaaafaaaaaaaaaabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaHaaHaaHaaHaaHaaiagnagoagpafRagqagragsagtaguafRagvagwagxagyagzagAagBagaagCagbagDagEagFafFagGagHagIagJagKaeKafAagNagOagLagMagRanUagUacAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafaemaemaemaemaemaaaadzaaaaemaemaemaemaemaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafaenaenaenaenaenaaaafdaaaaenaenaenaenaenaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaiagVagWagXafRagYagZahaahbahcafRagvahdaheahfahgahhahiahjahjahkahlahmahnaqqaPUaPTahqahrahsahTahVahuahvahWahwabmacAahxacAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaaaaaaaafaaaaaaaaaadzaaaaaaaaaaafaaaaaaaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -6647,15 +6647,15 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnwbkNbkNbsfbjxbjxbjxbiibjxbjxcuWbjxbjxbqAbsgaYpbshbsibjEbsjbskbslbeabaHbaHaZhbmzbsnbqHaHYbpibpjblibsobspbsqbsrbssbliaaaaaaaafbfCbstbsubstbgZaafaaaaaabqVbsvbswbsxbsybszbszbsAbsBbsCaHYaHYbmVbsDbfXbsEbsFbsGbsHbsGbsIbsJbsKbsLbsKbsKbsKbsMbsNbfXbhkbsObsPbsPbsQbsRbosbosbsSbsTbsUbpRboybncbeHbeIbsVbsVbsVbsVbsVbeKbnkbnkbnkbnkbsWbsXbsYbnkbsZbtabtbbtcbtcbtcbtcbtdbtebtfbrYbuAbuzbuCbuBbuBbuDbwabrVbsbbgxbsdbsebseabtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtobqxbqybqxbmlbtpbjxbjxbtqbjxbtpcuWbjxbjxbqAbtraYpbtsbttbnGbtubtvbecbpbbjEbtwbtxbmzbsnbqHaWUbpibtyblibtzbtAbtBbtCbmGbliaaaaaaaafbtDbtEbnUbtFbtGaafaaaaaabqVbtHbtIbtJbtKbtLbtMbtNbpubtOaHYaHYbmSbmSbtPbtQbpGbtRbtSbtTbtUbtVbtWbtXbtWbtXbtWbtXbtWbtXbtYbtZbsPbuabubbucbudbuebufbugbuhbuibujbncbukbulbumbnmbunbhJbhJbuobhJbhJbupbuqburbusbutbtcbuubuvbuwbuxbuxbuxbuybuybuybuybuybwcbwbbwebwdbwebwfbwebrVbsbbgxbwgbqvbwhbjoaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabuFbuGbuFbuHbuIbuHbuHbuHbuHbuHcuXbuKbjxbqAbuLaYpbuMbaHbuNbuObuPbuQbuRbuRbuRbuQbuQbuSbqHaJkbuTbpjblibuUbuVbuWbuXbuYbliaaaaaaaafbuZbvabqRbvbbvcaafaaaaaabqVbvdbvebvfbvgbtLbtMbtNbpubvhaHYaHYbvibvjbvkbvlbvmbvnbtXbvobvpbvqbvrbvsbDibvubvvbvubFzbtXbhkbjZbsPbvxbvybvzbvAbvBbvCbvDbvEbvEbvFbvGbvHbvIbvJbvKbvLbvMbvNbvMbvMbvObvMbvMbvPbvQbvRbvRbvSbvTbqibuxbvUbvVbvWbvXbvYbambuybxjbxibzCbyAbzDbxibAVbrVbsbbgxcjgbsebsebjoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnwbkNbkNbkNaYpbkNbkNbkNbwibwicuYbwibwjbwkbwkbwibwibwlbwlbwmbwnbuQbwobwpbwqbwrbuQbsnbqHaHZaIcaIcbliblibwsbliblibwtbliaHUaHUaHUbwubwvbsubwwbwxaHUaHUaHUbpubpubpubpubpubpubpubpubpubvhaHYbwybtXbtXbtXbwzbtXbtXbtXbwAbvpbwBbwCbwDbwEbwFbwGbwHbwIbwDbhkbjZbsPbwJbwKbwLbwMbwNbwObrAbrAbrAbwPbwQbwRbwSbwTbwTbwTbwTbwUbwTbwTbwTbwVbwVbwWbwXbwYbwYbwZbxabqibuxbxbbxcbxdbxebxfbxgbxhbrVbrVbFBbFBbFBbrVcfYbrVbsbbgxbwgbqvcvhbjoaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnwbkNbkNbkNaYpbkNbkNbkNbwibwicuYbwibwjbwkbwkbwibwibwlbwlbwmbwnbuQbwobwpbwqbwrbuQbsnbqHaHZaIcaIcbliblibwsbliblibwtbliaHUaHUaHUbwubwvbsubwwbwxaHUaHUaHUbpubpubpubpubpubpubpubpubpubvhaHYbwybtXbtXbtXbwzbtXbtXbtXbwAbvpbwBbwCbwDbwEbwFbwGbwHbwIbwDbhkbjZbsPbwJbwKbwLbwMbwNbwObrAbrAbrAbwPbwQbwRbwSbwTbwTbwTbwTbwUbwTbwTbwTbwVbwVbwWbwXbwYbwYbwZbxabqibuxbxbbxcbxdbxeahQbxgbxhbrVbrVbFBbFBbFBbrVcfYbrVbsbbgxbwgbqvcvhbjoaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwicuZbxlbxmbxnbxobxpbwkbxqbxrbxsbxtbxubxvbxwbxxbxybuQbsnbqHaHYaHYaHYbxzaKQbxAaKAbxBbxCbxDaVLaVLaVLbxEbxFbxGbxHbxIaHYaHYaHYaHYaKQaHYaKAaHYaHYaHYbxzaHYbvhaHYbxJbtXbxKbxLbxMbxNbxObtXbxPbxQbxRbxSbwDbwEbwEbxTbxUbxVbwDbhkbxWbsPbrAbxXbxYbxZbwQbyabybbycbydbncbncbeHbyebwTbyfbygbyhbyibyjbykbwTbylbymbynbyobypbwYbyqbyrbysbytbyubyvbywbyxbyybyzbxhchfchfchfchfchfchfchfbrVbsbbgxbsdbsebseabtaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFZaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwkbyBbyCbyDbyEbyFbyGbyHbyIbyJbyKbyLbyMbyNbyObxxbyPbuQbsnbyQaHYaHYaHYaHYaHYaHYaKAaHYbqHaHYaHYaHYaHYaHYbyRbySbyTaHYaHYaHYaHYaHYaHYaHYaKAbyUaHYaHYaHYaHYbvhbyVbyWbtSbyXbyYbyZbyYbzabtXbzbbvpbvqbzcbtXbzdbzebzfbzgbzhbtXbhkbjZbsPbsPbsPbsPbsPbncbncbncbncbncbncbzibgibzjbwTbzkbzlbzmbznbzobzpbwTbzqbzrbzsbztbzubwYbyqbzvbzwbzxbzybzzbzzbzzbzAbzBbxhchfchfctEctDchfchfchfbrVbsbbgxbsdbsebsebjoaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwibzEbzFbzGbzHbzIcvbcvacvccvcbAZbzLbuRbzMbzNbzObzPbuQbzQbzRbzSbzSbzSbzTbzSbzSbzUbzSbzVaHYbzWbzXbzYbzYcuBbAabAbbAcbAdbAeaVLaVLbAfaVLbAgbAhaVLbAibAjbAkbAlaHYaHYbtXbAmbAnbAobtWbApbtXbtWbAqbArbtXbtXbtXbtXbtXbtXbtXbtXbhkbjZbfXbAsbAtbAubAvbAwbAxbAybAzbAAbAwbzibgibABbwTbACbADbAEbAFbAGbAHbwTbAIbAJbAKbALbAMbwYbyqbANbAObuybAPbAQbARbASbATbAUbxhchfchfchfbscchfchfchfbrVbsbbqtbAWbqvbqwbjoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwibzEbzFbzGbzHbzIcvbcvacvccvcbAZbzLbuRbzMbzNbzObzPbuQbzQbzRbzSbzSbzSbzTbzSbzSbzUbzSbzVaHYbzWbzXbzYbzYcuBbAabAbbAcbAdbAeaVLaVLbAfaVLbAgbAhaVLbAibAjbAkbAlaHYaHYbtXbAmbAnbAobtWbApbtXbtWbAqbArbtXbtXbtXbtXbtXbtXbtXbtXbhkbjZbfXbAsbAtbAubAvbAwbAxbAybAzbAAbAwbzibgibABbwTbACbADbAEbAFbAGbAHbwTbAIbAJbAKbALbAMbwYbyqbANbAObuybAPbxfbARbASbATbAUbxhchfchfchfbscchfchfchfbrVbsbbqtbAWbqvbqwbjoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwibwibwkbwkbwkbwkbwibwibAXbAYbAZbBabuQbuQbuQbuQbuQbuQbBbbBcaIcaIcaIcaIcbBdbBdbBdbBdbBdbBdbBdbBdbBdbBdbBebBfbBgbBhbBhbBhbBhbBhbBibBhbBhbBjbBhbyebBkbyeaIdaJlbBlbtXbBmbBnbBobBpbBqbtXbBrbxQbBsbBtbBubBvbBwbBxbBybBzbBAbBBbBCbBDbBDbBEbBFbBGbBHbBIbBJbBKbBLbAwbzibgibBMbBMbBMbBMbBMbBMbBMbBMbBMbBNbBNbBNbBNbBNbBNbBObBPbBQbuybuybuybuybuybuybuybxhbrVbrVbrVbrVbrVbrVbrVbrVbsbbgxbBRbBSbjobjoaafaafaafaagaagaagaagaagaagaagaagaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBTaaaaaaaaaaafaaaaaabwlbBUbBVbBWbBXbBYbBZbCabCbbCcbCdbCebCfaaaaaaaafaaabBdbCgbChbCibCjbCkbClbCmbCnbCobCpbCqbCrbBhbCsbCtcuDbCubCwbCvbCvbCxbCybCzbCAbyebyebyebyebtXbCBbCCbCDbCCbCEbtXbCFbvpbCGbCHbCIbCJbCIbCIbCKbCLbCMbCNbCObCObCObCPbCQbvlbCRbCSbCTbCUbCVbAwbzibgibBMbCWbCWbCWbCXbCWbCWbCWbBMbCYbCYbCZbCYbCYbBNbDabDbbqibDcbDdbDebDfbDgbDhbJqbDjbDkbDlbDmbDnbDobsmbtnbtnbvwbDsbDdbDdbjoaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaelctjaekctjaejaaaaafaaabwlbwlbDtbxrbDubDvbDwbDxbDybDybDzbDAbDBbDCaafbDDbDEbDFbDGbDHbDIbDJbDIbDKbDIbDIbDIbBdbDLbDMbDNbBhbDObDPbDQbDRbDSbCvbDTbBjbBhbDUbDVbDWbDXbDYbDZbEabEbbCCbEcbCCbxQbEdbEebEfbEgbtXbEhbEibCCbCCbEjbEkbmSbmSbmSbmSbmSbElbEmbpGbEnbEobEpbBKbEqbAwbzibgibBMbCWbCWbCWbCWbCWbCWbCWbBMbErbEsbEtbEubEvbBNbEwbExbEybEzbEAbEBbECbEDbEDbEDbEDbEEbEFbEGbDnbjobvZbEIbEJbEJbEKbELbEMaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbENbEObENaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafNcuCctMcuCafNbERbERbERbwlbESbxrbETbEUbEVbEWbwlbBcbEXbBcbBcbEYbEZaaabFabFbbFcbFdbDIbDIbFebDIbFfbFgbFhbDIbBdbDLbFibFjbBhbFkbFlbFmbFnbFobCvbFpbBjbzibFqbFrbFsbFrbFtbFubtXbFvbCIbFwbCIbFxbtSbFybCJbFAbtXbFCbCCbCCbCCbCCbGNbmSbPIbFEbFFbFGbBEbFHbvlbFIbBKbBKbFJbFKbFLbFMbFNbBMbCWbCWbCWbCWbCWbCWbCWbBMbFObFPbFQbFRbFSbFTbFUbFVbtbbFWbFXbEDbFYbEDbEDbEDbEDbEDbEDbEDbDnbFZbDpbGbbGcbGdbGebGfbEMaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbEObENbGgbENbEOaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaekajxctyajxaekbERbGhbGibwlbGjbxrbGkbxrbxrbEWbwlbGlbGmbGnbBcbEYbEZaafbFabGobGpbGqbGrbGsbGrbGrbGtbGubGrbGrbGvbGwbGxbGybBhbGzbBhbBhbBhbBhbGAbGBbGCbGDbGEbGFbGGbGHbGIbGIbtXbGJbGKcltbGMbGQbtXbGObGPbGSbtXbGRbDqbEHbDrbFDbGWbmSbGXbGYbpFbGZbHabHbbHcbCRbHdbBKbBKbHebAwbzibgibBMbBMbHfbCWbCWbHgbHfbBMbBMbHhbHibHjbHkbHlbBNbHmbHnbtbbHobHpbHqbHqbHrbHsbHtbHqbHubHvbHwbHxbHybGabHAbHBbHCbHDbHEbEMaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbHFbEObHGbHHbHIbEObHFaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaekajxctyajxaekbERbGhbGibwlbGjbxrbGkbxrbxrbEWbwlbGlbGmbGnbBcbEYbEZaafbFabGobGpbGqbGrbGsbGrbGrbGtbGubGrbGrbGvbGwbGxbGybBhbGzbBhbBhbBhbBhbGAbGBbGCbGDbGEbGFbGGbGHbGIbGIbtXbGJbGKcltbGMbGQbtXbGObGPbGSbtXbGRbDqbEHbDrbFDbGWbmSbGXbGYbpFbGZbHabHbbHcbCRbHdbAQbBKbHebAwbzibgibBMbBMbHfbCWbCWbHgbHfbBMbBMbHhbHibHjbHkbHlbBNbHmbHnbtbbHobHpbHqbHqbHrbHsbHtbHqbHubHvbHwbHxbHybGabHAbHBbHCbHDbHEbEMaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbHFbEObHGbHHbHIbEObHFaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafNajxajxajxctLbHKbxrbxrbHLbGjbxrbxrbxrbxrbEWbwlbHMbGnbHNbBcbEYbEZaaabFabHObHPbHQbDIbDIbHRbDIbHSbHTbHUbHVbBdbHWbHXbHYbHZbIabIbbIbbIbbIbbIbbIcbIbbIdbIebIfbIgbIhbIibIjbtSbtSbtSbtSbtSbtSbtSbtSbtSbtSbMNbMNbMNbMNbMNbMNbOnbOCbmSbmSbmSbmSbIlbImbhjbAwbAwbAwbAwbAwbAwbzibgibBMbInbIobIpbIqbIrbIsbInbItbHhbHibHjbIubIvbIwbIxbIybuwbIzbDdbIAbIAbIBbICbIDbIEbEDbEDbIFbDnbIGbGLbIIbDdbIJbIKbIKbDdaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbEObEObILbIMbIMbIMbINbEObEOaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaekctyctyctyaekbERbIObIPbIQbIRbxrbxrbISbITbIUbwlbBcbBcbBcbBcbEYbDCaafbIVbDEbIWbDGbIXbDIbIYbDIbDIbDIbDIbDIbBdbDLbIZbJabJbbJcbJcbJcbJcbJcbJcbJdbJebJfbJgbJhbJibJjbJkbJlbJmbJnbJmbJmbJmbJmbJmbJmbJmbJmbJmbJmbJmbJmbJmbJobJpbmSbGXcqlbBDbJrbBEbJsbJtbJubJvbJvbJwbJxbJgbJybJzbBMbJAbJBbJCbJDbJEbJFbJGbItbItbItbItbItbItbJHbJIbJJbJKbJLbDdbDnbDnbDnbDnbDnbDnbJMbEDbEDbDnbjobvZbgxbDdbJNbJObJPbJQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabJRbJSbJRbIMbJTbIMctxctlbENaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafNajZctzctAafNbERbERbERbwlbwlbERbERbERbwlbwlbwlaaaaaaaaabJYbJZbEZaaaaaaaafaaabBdbKabKbbKcbDIbKdbKebKfbKgbKhbKibKjbKkbKlbKmbKnbKobKpbKqbKmbKmbKmbKmbKmbKrbKsbKmbKmbKtbKmbKubKmbKmbKmbKmbKmbyebyebyebyebyebyebyebyebKvbKwbmSbKxbKybKzbKAbKBbKCbKDbKEbKFbKFbKGbKFbKFbKHbKIbBMbKJbKKbKLbKKbKMbKKbKNbKObKPbKQbKRbKSbKTbKUbyqbHnbqibKVaafbKWbKXbKYbKZbLabKZbLbbLcbLdbDnbLebsbbLfbDdbDdbDdbDdbDdaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbEObEObLgbIMbIMbIMbLhbEObEOaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/_maps/map_files/generic/z2.dmm b/_maps/map_files/generic/z2.dmm index 9dc7e9110c2..548686f46de 100644 --- a/_maps/map_files/generic/z2.dmm +++ b/_maps/map_files/generic/z2.dmm @@ -414,7 +414,7 @@ "hX" = (/obj/structure/filingcabinet,/turf/simulated/floor/plasteel/shuttle,/area/centcom/evac) "hY" = (/obj/structure/stool/bed/chair{dir = 4; name = "Prosecution"},/turf/simulated/floor/plasteel/shuttle,/area/centcom/evac) "hZ" = (/obj/structure/stool/bed/chair/office/dark,/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/simulated/floor/plasteel/black,/area/centcom/ferry) -"ia" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/greyscale = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/simulated/floor/plasteel/black,/area/centcom/ferry) +"ia" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/random = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/simulated/floor/plasteel/black,/area/centcom/ferry) "ib" = (/obj/structure/reagent_dispensers/water_cooler,/turf/simulated/floor/plasteel/black,/area/centcom/ferry) "ic" = (/obj/machinery/vending/coffee,/turf/simulated/floor/plasteel/black,/area/centcom/ferry) "id" = (/obj/structure/flora/kirbyplants,/turf/simulated/floor/plasteel/black,/area/centcom/ferry) @@ -803,7 +803,7 @@ "pw" = (/obj/machinery/computer/shuttle/syndicate/recall,/turf/simulated/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) "px" = (/obj/machinery/vending/coffee,/turf/simulated/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) "py" = (/obj/item/device/paicard,/turf/simulated/floor/plasteel/grimy,/area/syndicate_mothership) -"pz" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/greyscale = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/simulated/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"pz" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/random = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/simulated/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) "pA" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/Dooruranium.dmi'; name = "Engine Room B"},/turf/space,/area/wizard_station) "pB" = (/obj/machinery/vending/cola,/turf/simulated/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) "pC" = (/obj/structure/bookcase,/obj/item/weapon/book/manual/wiki/engineering_hacking,/obj/item/weapon/book/manual/robotics_cyborgs,/obj/item/weapon/book/manual/engineering_singularity_safety,/obj/item/weapon/book/manual/detective,/turf/simulated/floor/plasteel/grimy,/area/syndicate_mothership) diff --git a/bot/NanoTrasenBot.py b/bot/NanoTrasenBot.py index 40ea8325772..2e0678bbd96 100644 --- a/bot/NanoTrasenBot.py +++ b/bot/NanoTrasenBot.py @@ -1300,17 +1300,7 @@ while True: print sender+" Has now joined" users.append(sender) ##### - if ".fi" in data[0] and sender.lower() == "skibiliano": - operators.append(sender) if sender.lower() not in peopleheknows[0]: - if data[0].split("!")[1] in peopleheknows[1]: - appendion = "...you do seem familiar however" - else: - appendion = "" - if data[1][1].lower() == channel or data[1][1].lower() == channel[1:]: - conn.privmsg(data[1][1],CORE_DATA.greeting.replace("USER",sender)+" "+appendion) - else: - conn.privmsg(data[1][1],"Hello! Haven't seen you here before! Happy to meet you! %s" %(appendion)) peopleheknows[0].append(sender.lower()) peopleheknows[1].append(data[0].split("!")[1]) with open("peopleheknows.cache","w") as peoplehecache: diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index bbb172cfe83..6a90495198c 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -108,6 +108,7 @@ #define STAGE_THREE 5 #define STAGE_FOUR 7 #define STAGE_FIVE 9 +#define STAGE_SIX 11 //From supermatter shard //zlevel defines, can be overridden for different maps in the appropriate _maps file. #define ZLEVEL_SPACEMAX 7 diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index f171be733e9..a80a9bb9ebd 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -13,6 +13,16 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/undershirt, undershirt_list, undershirt_m, undershirt_f) //socks init_sprite_accessory_subtypes(/datum/sprite_accessory/socks, socks_list, socks_m, socks_f) + //lizard bodyparts (blizzard intensifies) + init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, body_markings_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/tails, tails_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/tails_animated, animated_tails_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts, snouts_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/horns, horns_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/frills, frills_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/spines, spines_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/spines_animated, animated_spines_list) + //Species for(var/spath in typesof(/datum/species)) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 20c38174275..01f8d00be82 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -36,6 +36,22 @@ if(FEMALE) return pick(socks_f) else return pick(socks_list) +/proc/random_features() + if(!tails_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/tails, tails_list) + if(!snouts_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts, snouts_list) + if(!horns_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/horns, horns_list) + if(!frills_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/frills, frills_list) + if(!spines_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/spines, spines_list) + if(!body_markings_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, body_markings_list) + + return(list("mcolor" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), "tail" = pick(tails_list), "snout" = pick(snouts_list), "horns" = pick(horns_list), "frills" = pick(frills_list), "spines" = pick(spines_list), "body_markings" = pick(body_markings_list))) + /proc/random_hair_style(gender) switch(gender) if(MALE) return pick(hair_styles_male_list) diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index 6271cceb754..c3bc1e7c1f8 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -18,6 +18,15 @@ var/global/list/undershirt_f = list() //stores only undershirt name var/global/list/socks_list = list() //stores /datum/sprite_accessory/socks indexed by name var/global/list/socks_m = list() //stores only socks name var/global/list/socks_f = list() //stores only socks name + //Lizard Bits (all datum lists indexed by name) +var/global/list/body_markings_list = list() +var/global/list/tails_list = list() +var/global/list/animated_tails_list = list() +var/global/list/snouts_list = list() +var/global/list/horns_list = list() +var/global/list/frills_list = list() +var/global/list/spines_list = list() +var/global/list/animated_spines_list = list() //Backpacks var/global/list/backbaglist = list("Nothing", "Backpack", "Satchel") //Female Uniforms diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm index 6855ed2efcb..2abd022a271 100644 --- a/code/_globalvars/lists/objects.dm +++ b/code/_globalvars/lists/objects.dm @@ -7,6 +7,7 @@ var/global/list/machines = list() //NOTE: this is a list of ALL machines now var/global/list/navbeacons = list() //list of all bot nagivation beacons, used for patrolling. var/global/list/deliverybeacons = list() //list of all MULEbot delivery beacons. var/global/list/deliverybeacontags = list() //list of all tags associated with delivery beacons. +var/global/list/nuke_list = list() var/global/list/chemical_reactions_list //list of all /datum/chemical_reaction datums. Used during chemical reactions var/global/list/chemical_reagents_list //list of all /datum/reagent datums indexed by reagent id. Used by chemistry stuff diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index ca38a246dc0..e9b60141730 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -33,8 +33,12 @@ clear_alert(category) return .() else if(alert.icon_state == "[id][severity]") -// src << "threw alert not in need of update [category] [id] [severity]" - return 0 + if(alert.timeout) + clear_alert(category) + return .() + else + // src << "threw alert not in need of update [category] [id] [severity]" + return 0 // src << "updating alert [category] [id] [severity]" else alert = PoolOrNew(/obj/screen/alert) @@ -63,6 +67,12 @@ return 0 alert.name = initial(path_as_obj.name) alert.desc = initial(path_as_obj.desc) + alert.timeout = initial(path_as_obj.timeout) + if(alert.timeout) + spawn(alert.timeout) + if(alert.timeout && alerts[category] == alert && world.time >= alert.timeout) + clear_alert(category) + alert.timeout = world.time + alert.timeout - world.tick_lag alert.mouse_opacity = 1 return alert @@ -86,6 +96,7 @@ icon_state = "default" name = "Alert" desc = "Something seems to have gone wrong with this alert, so report this bug please" + var/timeout = 0 //If set to a number, this alert will clear itself after that many deciseconds //Gas alerts @@ -145,6 +156,37 @@ The box in your backpack has an oxygen tank and gas mask in it." name = "High Pressure" desc = "The air around you is hazardously thick. A fire suit would protect you." +/obj/screen/alert/blind + name = "Blind" + desc = "For whatever reason, you can't see. This may be caused by a genetic defect, eye trauma, being unconscious, \ +or something covering your eyes." + +/obj/screen/alert/high + name = "High" + desc = "Woah man, you're tripping balls! Careful you don't get addicted to this... if you aren't already." + +/obj/screen/alert/drunk //Not implemented + name = "Drunk" + desc = "All that alcohol you've been drinking is impairing your speech, motor skills, and mental cognition. Make sure to act like it." + +/obj/screen/alert/embeddedobject + name = "Embedded Object" + desc = "Something got lodged into your flesh and is causing major bleeding. It might fall out with time, but surgery is the safest way. \ +If you're feeling frisky, click yourself in help intent to pull the object out." + +/obj/screen/alert/asleep + name = "Asleep" + desc = "You've fallen asleep. Wait a bit and you should wake up. Unless you don't, considering how helpless you are." + +/obj/screen/alert/weightless + name = "Weightless" + desc = "Gravity has ceased affecting you, and you're floating around aimlessly. You'll need something large and heavy, like a \ +wall or lattice strucure, to push yourself off of if you want to move. A jetpack would enable free range of motion. A pair of \ +magboots would let you walk around normally on the floor. Barring those, you can throw things, use a fire extuingisher, \ +or shoot a gun to move around via Newton's 3rd Law of motion." + +//ALIENS + /obj/screen/alert/alien_tox name = "Plasma" desc = "There's flammable plasma in the air. If it lights up, you'll be toast." @@ -154,6 +196,9 @@ The box in your backpack has an oxygen tank and gas mask in it." name = "Burning" desc = "It's too hot! Flee to space or at least away from the flames. Standing on weeds will heal you up." + +//SILICONS + /obj/screen/alert/nocell name = "Missing Power Cell" desc = "Unit has no power cell. No modules available until a power cell is reinstalled. Robotics may provide assistance." @@ -167,6 +212,24 @@ Reharging stations are available in robotics, the dormitory's bathrooms. and the name = "Low Charge" desc = "Unit's power cell is running low. Reharging stations are available in robotics, the dormitory's bathrooms. and the AI satelite." +//Need to cover all use cases - emag, illegal upgrade module, malf AI hack, traitor cyborg +/obj/screen/alert/hacked + name = "Hacked" + desc = "Hazardous non-standard equipment detected. Please ensure any usage of this equipment is in line with unit's laws, if any." + +/obj/screen/alert/locked + name = "Locked Down" + desc = "Unit has remotely locked down. Usage of a Robotics Control Computer like the one in the Research Director's \ +office by your AI master or any qualified human may resolve this matter. Robotics my provide further assistance if necessary." + +/obj/screen/alert/newlaw + name = "Law Update" + desc = "Laws have potentially been uploaded to or removed from this unit. Please be aware of any changes \ +so as to remain in compliance with the most up-to-date laws." + timeout = 300 + +//OBJECT-BASED + /obj/screen/alert/buckled name = "Buckled" desc = "You've been buckled to something and can't move. Click the alert to unbuckle unless you're handcuffed." diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index e442f74d14f..4a0b0f4abb4 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -489,6 +489,20 @@ config.no_summon_events = 1 if("reactionary_explosions") config.reactionary_explosions = 1 + if("bombcap") + var/BombCap = text2num(value) + if (!BombCap) + continue + if (BombCap < 4) + BombCap = 4 + if (BombCap > 128) + BombCap = 128 + + MAX_EX_DEVESTATION_RANGE = round(BombCap/4) + MAX_EX_HEAVY_RANGE = round(BombCap/2) + MAX_EX_LIGHT_RANGE = BombCap + MAX_EX_FLASH_RANGE = BombCap + MAX_EX_FLAME_RANGE = BombCap else diary << "Unknown setting in configuration: '[name]'" diff --git a/code/datums/ai_laws.dm b/code/datums/ai_laws.dm index 4d54909b27d..f44fa115c39 100644 --- a/code/datums/ai_laws.dm +++ b/code/datums/ai_laws.dm @@ -5,6 +5,7 @@ var/list/inherent = list() var/list/supplied = list() var/list/ion = list() + var/mob/living/silicon/owner /datum/ai_laws/default/asimov name = "Three Laws of Robotics" @@ -169,3 +170,20 @@ if (length(law) > 0) who << "[number]. [law]" number++ + +/datum/ai_laws/proc/clear_zeroth_law(var/force) //only removes zeroth from antag ai if force is 1 + if(force) + src.zeroth = null + src.zeroth_borg = null + return + else + if(src.owner.mind.special_role) + return + else + src.zeroth = null + src.zeroth_borg = null + return + +/datum/ai_laws/proc/associate(var/mob/living/silicon/M) + if(!owner) + owner = M \ No newline at end of file diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 78728738681..ae0df9ac76d 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -260,7 +260,7 @@ var/record_id_num = 1001 L.fields["enzymes"] = H.dna.struc_enzymes L.fields["identity"] = H.dna.uni_identity L.fields["species"] = H.dna.species.type - L.fields["mcolor"] = H.dna.mutant_color + L.fields["features"] = H.dna.features L.fields["image"] = image locked += L return @@ -272,7 +272,7 @@ var/record_id_num = 1001 photo = icon("icon" = 'icons/mob/human.dmi', "icon_state" = "[H.skin_tone]_[g]_s") else photo = icon("icon" = 'icons/mob/human.dmi', "icon_state" = "[H.dna.species.id]_[g]_s") - photo.Blend("#[H.dna.mutant_color]", ICON_MULTIPLY) + photo.Blend("#[H.dna.features["mcolor"]]", ICON_MULTIPLY) var/icon/eyes_s if(EYECOLOR in H.dna.species.specflags) diff --git a/code/datums/martial.dm b/code/datums/martial.dm index 81e611df4f4..865209ab97e 100644 --- a/code/datums/martial.dm +++ b/code/datums/martial.dm @@ -87,11 +87,11 @@ name = "Boxing" /datum/martial_art/boxing/disarm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) - A << " Can't disarm while boxing!" + A << "Can't disarm while boxing!" return 1 /datum/martial_art/boxing/grab_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) - A << " Can't grab while boxing!" + A << "Can't grab while boxing!" return 1 /datum/martial_art/boxing/harm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 21bf92f6b4d..ceb8a980ea3 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -286,9 +286,9 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine /datum/supply_packs/security/armory/ballistic name = "Combat Shotguns Crate" - contains = list(/obj/item/weapon/gun/projectile/shotgun/combat, - /obj/item/weapon/gun/projectile/shotgun/combat, - /obj/item/weapon/gun/projectile/shotgun/combat, + contains = list(/obj/item/weapon/gun/projectile/shotgun/automatic/combat, + /obj/item/weapon/gun/projectile/shotgun/automatic/combat, + /obj/item/weapon/gun/projectile/shotgun/automatic/combat, /obj/item/weapon/storage/belt/bandolier, /obj/item/weapon/storage/belt/bandolier, /obj/item/weapon/storage/belt/bandolier) diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index 7f6db7d1388..da8e2fac116 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -268,10 +268,24 @@ var/list/uplink_items = list() cost = 2 gamemodes = list(/datum/game_mode/nuclear,/datum/game_mode/gang) +/datum/uplink_item/ammo/ammobag + name = "Ammo Duffelbag - Shotgun Ammo Grab Bag" + desc = "A duffelbag filled with Bulldog ammo to kit out an entire team, at a discounted price." + item = /obj/item/weapon/storage/backpack/dufflebag/syndieammo/loaded + cost = 10 //bulk buyer's discount. Very useful if you're buying a mech and dont have TC left to buy people non-shotgun guns + gamemodes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/bullslug + name = "Drum Magazine - 12g Slugs" + desc = "An additional 8-round slug magazine for use in the Bulldog shotgun. Now 8 times less likely to shoot your pals." + item = /obj/item/ammo_box/magazine/m12g + cost = 2 + gamemodes = list(/datum/game_mode/nuclear) + /datum/uplink_item/ammo/bullbuck name = "Drum Magazine - 12g Buckshot" desc = "An additional 8-round buckshot magazine for use in the Bulldog shotgun. Front towards enemy." - item = /obj/item/ammo_box/magazine/m12g + item = /obj/item/ammo_box/magazine/m12g/buckshot cost = 2 gamemodes = list(/datum/game_mode/nuclear) @@ -286,6 +300,13 @@ var/list/uplink_items = list() name = "Drum Magazine - 12g Dragon's Breath" desc = "An alternative 8-round dragon's breath magazine for use in the Bulldog shotgun. I'm a fire starter, twisted fire starter!" item = /obj/item/ammo_box/magazine/m12g/dragon + cost = 2 + gamemodes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/bulltoxin + name = "Drum Magazine - 12g Bioterror" + desc = "An alternative 8-round toxic magazine for use in the Bulldog shotgun. Contains debilitating toxins to make your target die an agonizing death." + item = /obj/item/ammo_box/magazine/m12g/bioterror cost = 3 gamemodes = list(/datum/game_mode/nuclear) @@ -389,6 +410,14 @@ var/list/uplink_items = list() item = /obj/item/toy/carpplushie/dehy_carp cost = 3 +/datum/uplink_item/stealthy_weapons/door_charge + name = "Explosive Airlock Charge" + desc = "A small, easily concealable device. It can be applied to an open airlock panel, and the next person to open that airlock will be knocked down in an explosion. The airlock's maintenance panel will also be destroyed by this." + item = /obj/item/device/doorCharge + cost = 5 + surplus = 6 + excludefrom = list(/datum/game_mode/nuclear) + // STEALTHY TOOLS /datum/uplink_item/stealthy_tools diff --git a/code/datums/wires/wires.dm b/code/datums/wires/wires.dm index e483513c40a..89b57e6a16e 100644 --- a/code/datums/wires/wires.dm +++ b/code/datums/wires/wires.dm @@ -134,7 +134,8 @@ var/list/wireColours = list("red", "blue", "green", "black", "orange", "brown", if(istype(I, /obj/item/device/assembly)) var/obj/item/device/assembly/A = I; if(A.attachable) - L.drop_item() + if(!L.drop_item()) + return Attach(colour, A) else L << "You need a attachable assembly!" diff --git a/code/game/dna.dm b/code/game/dna.dm index 128b7aa1fc6..614e4698f55 100644 --- a/code/game/dna.dm +++ b/code/game/dna.dm @@ -21,7 +21,7 @@ var/uni_identity var/blood_type var/datum/species/species = new /datum/species/human() //The type of mutant race the player is if applicable (i.e. potato-man) - var/mutant_color = "FFF" // What color you are if you have certain speciess + var/list/features = list("FFF") //first value is mutant color var/real_name //Stores the real name of the person who originally got this dna datum. Used primarely for changelings, var/list/mutations = list() //All mutations are from now on here var/mob/living/carbon/holder @@ -36,7 +36,7 @@ destination.dna.uni_identity = uni_identity destination.dna.blood_type = blood_type hardset_dna(destination, null, null, null, null, species) - destination.dna.mutant_color = mutant_color + destination.dna.features = features destination.dna.real_name = real_name destination.dna.mutations = mutations @@ -46,7 +46,7 @@ new_dna.uni_identity = uni_identity new_dna.blood_type = blood_type new_dna.species = new species.type - new_dna.mutant_color = mutant_color + new_dna.features = features new_dna.real_name = real_name new_dna.mutations = mutations @@ -131,7 +131,7 @@ spans |= M.get_spans() return spans -/proc/hardset_dna(mob/living/carbon/owner, ui, se, real_name, blood_type, datum/species/mrace, mcolor) +/proc/hardset_dna(mob/living/carbon/owner, ui, se, real_name, blood_type, datum/species/mrace, features) if(!ismonkey(owner) && !ishuman(owner)) return if(!owner.dna) @@ -143,8 +143,8 @@ owner.reagents.del_reagent(exotic_blood.id) owner.dna.species = new mrace() - if(mcolor) - owner.dna.mutant_color = mcolor + if(features) + owner.dna.features = features if(real_name) owner.real_name = real_name @@ -193,6 +193,7 @@ character.dna.uni_identity = character.dna.generate_uni_identity(character) character.dna.struc_enzymes = character.dna.generate_struc_enzymes(character) character.dna.unique_enzymes = character.dna.generate_unique_enzymes(character) + character.dna.features = character.features return character.dna /proc/create_dna(mob/living/carbon/C, datum/species/S) //don't use this unless you're about to use hardset_dna or ready_dna @@ -497,8 +498,8 @@ /obj/machinery/computer/scan_consolenew name = "\improper DNA scanner access console" desc = "Scan DNA." - icon = 'icons/obj/computer.dmi' - icon_state = "scanner" + icon_screen = "dna" + icon_keyboard = "med_key" density = 1 circuit = /obj/item/weapon/circuitboard/scan_consolenew var/radduration = 2 @@ -518,7 +519,8 @@ /obj/machinery/computer/scan_consolenew/attackby(obj/item/I as obj, mob/user as mob, params) if (istype(I, /obj/item/weapon/disk/data)) //INSERT SOME DISKETTES if (!src.diskette) - user.drop_item() + if(!user.drop_item()) + return I.loc = src src.diskette = I user << "You insert [I]." @@ -972,7 +974,7 @@ /datum/dna/proc/is_same_as(var/datum/dna/D) if(uni_identity == D.uni_identity && struc_enzymes == D.struc_enzymes && real_name == D.real_name) - if(species == D.species && mutant_color == D.mutant_color && blood_type == D.blood_type) + if(species == D.species && features == D.features && blood_type == D.blood_type) return 1 return 0 diff --git a/code/game/gamemodes/abduction/abduction.dm b/code/game/gamemodes/abduction/abduction.dm index 502d4300932..5a3d85f957a 100644 --- a/code/game/gamemodes/abduction/abduction.dm +++ b/code/game/gamemodes/abduction/abduction.dm @@ -263,7 +263,7 @@ for(var/team_number=1,team_number<=teams,team_number++) var/obj/machinery/abductor/console/con = get_team_console(team_number) var/datum/objective/objective = team_objectives[team_number] - if (con.experiment.points > objective.target_amount) + if (con.experiment.points >= objective.target_amount) SSshuttle.emergency.request(null, 0.5) finished = 1 return ..() @@ -279,7 +279,7 @@ var/datum/mind/smind = scientists[team_number] var/mob/living/carbon/human/agent = amind.current var/mob/living/carbon/human/scientist = smind.current - if (console.experiment.points > objective.target_amount) + if (console.experiment.points >= objective.target_amount) world << "[team_name] team fullfilled its mission! " world << "Team Members : [agent.name]([agent.ckey]),[scientist.name]([scientist.ckey])" else diff --git a/code/game/gamemodes/abduction/abduction_gear.dm b/code/game/gamemodes/abduction/abduction_gear.dm index a13b347907c..dfb27d32870 100644 --- a/code/game/gamemodes/abduction/abduction_gear.dm +++ b/code/game/gamemodes/abduction/abduction_gear.dm @@ -22,15 +22,6 @@ var/stealth_armor = list(melee = 15, bullet = 15, laser = 15, energy = 15, bomb = 15, bio = 15, rad = 15) var/combat_armor = list(melee = 50, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 50, rad = 50) - var/obj/machinery/camera/portable/vest_cam = null - - -/obj/item/clothing/suit/armor/abductor/vest/New() - ..() - vest_cam = new /obj/machinery/camera/portable(src) - vest_cam.c_tag = "Agent Vest Cam" - vest_cam.network = list("Abductor") - /obj/item/clothing/suit/armor/abductor/vest/proc/flip_mode() switch(mode) if(VEST_STEALTH) diff --git a/code/game/gamemodes/abduction/gland.dm b/code/game/gamemodes/abduction/gland.dm index ccb60820159..959f98b5b2a 100644 --- a/code/game/gamemodes/abduction/gland.dm +++ b/code/game/gamemodes/abduction/gland.dm @@ -92,7 +92,7 @@ for(var/mob/living/carbon/human/H in orange(4,T)) if(H == host) continue - H << " You hear a buzz in your head " + H << "You hear a buzz in your head " H.confused += 20 /obj/item/gland/pop @@ -213,7 +213,7 @@ /obj/effect/cocoon/abductor/proc/Copy(var/mob/living/carbon/human/H) var/mob/living/carbon/human/interactive/greytide/clone = new(src) - hardset_dna(clone,H.dna.uni_identity,H.dna.struc_enzymes,H.real_name, H.dna.blood_type, H.dna.species.type, H.dna.mutant_color) + hardset_dna(clone,H.dna.uni_identity,H.dna.struc_enzymes,H.real_name, H.dna.blood_type, H.dna.species.type, H.dna.features) //There's no define for this / get all items ? var/list/slots = list(slot_back,slot_w_uniform,slot_wear_suit,\ diff --git a/code/game/gamemodes/abduction/machinery/dispenser.dm b/code/game/gamemodes/abduction/machinery/dispenser.dm index d346e0366a5..33b4944785b 100644 --- a/code/game/gamemodes/abduction/machinery/dispenser.dm +++ b/code/game/gamemodes/abduction/machinery/dispenser.dm @@ -60,7 +60,8 @@ /obj/machinery/abductor/gland_dispenser/attackby(obj/item/weapon/W, mob/user, params) if(istype(W, /obj/item/gland)) - user.drop_item() + if(!user.drop_item()) + return W.loc = src for(var/i=1,i<=gland_colors.len,i++) if(gland_types[i] == W.type) diff --git a/code/game/gamemodes/abduction/machinery/experiment.dm b/code/game/gamemodes/abduction/machinery/experiment.dm index 3d79a64b56b..e9ac19599cd 100644 --- a/code/game/gamemodes/abduction/machinery/experiment.dm +++ b/code/game/gamemodes/abduction/machinery/experiment.dm @@ -43,7 +43,7 @@ photo = icon("icon" = 'icons/mob/human.dmi', "icon_state" = "[H.skin_tone]_[g]_s") else photo = icon("icon" = 'icons/mob/human.dmi', "icon_state" = "[H.dna.species.id]_[g]_s") - photo.Blend("#[H.dna.mutant_color]", ICON_MULTIPLY) + photo.Blend("#[H.dna.features["mcolor"]]", ICON_MULTIPLY) var/icon/eyes_s if(EYECOLOR in H.dna.species.specflags) @@ -86,7 +86,7 @@ dat += "Analyze
" dat += "" else - dat += " Experiment " + dat += "Experiment " if(!occupant) dat += "

Machine Unoccupied

" diff --git a/code/game/gamemodes/antag_spawner.dm b/code/game/gamemodes/antag_spawner.dm index 549243bf86c..a621168182a 100644 --- a/code/game/gamemodes/antag_spawner.dm +++ b/code/game/gamemodes/antag_spawner.dm @@ -146,4 +146,52 @@ ticker.mode.syndicates += R.mind ticker.mode.update_synd_icons_added(R.mind) R.mind.special_role = "syndicate" - R.faction = list("syndicate") \ No newline at end of file + R.faction = list("syndicate") + + +/obj/item/weapon/antag_spawner/slaughter_demon //Warning edgiest item in the game + name = "vial of blood" + desc = "A magically infused bottle of blood, distilled from countless murder victims. Used in unholy rituals to attract horrifying creatures." + icon = 'icons/obj/wizard.dmi' + icon_state = "vial" + + +/obj/item/weapon/antag_spawner/slaughter_demon/attack_self(mob/user as mob) + var/list/demon_candidates = get_candidates(BE_ALIEN) + if(user.z != 1) + user << "You should probably wait until you reach the station." + return + if(demon_candidates.len > 0) + used = 1 + var/client/C = pick(demon_candidates) + spawn_antag(C, get_turf(src.loc), "Slaughter Demon") + user << "You shatter the bottle, no turning back now!" + user << "You sense a dark presence lurking just beyond the veil..." + playsound(user.loc, 'sound/effects/Glassbr1.ogg', 100, 1) + qdel(src) + else + user << "You can't seem to work up the nerve to shatter the bottle. Perhaps you should try again later." + + +/obj/item/weapon/antag_spawner/slaughter_demon/spawn_antag(var/client/C, var/turf/T, var/type = "") + + var /obj/effect/dummy/slaughter/holder = new /obj/effect/dummy/slaughter(T) + var/mob/living/simple_animal/slaughter/S = new /mob/living/simple_animal/slaughter/(holder) + S.phased = TRUE + S.key = C.key + S.mind.assigned_role = "Slaughter Demon" + S.mind.special_role = "Slaughter Demon" + ticker.mode.traitors += S.mind + var/datum/objective/assassinate/new_objective = new /datum/objective/assassinate + new_objective.owner = S:mind + new_objective:target = usr:mind + new_objective.explanation_text = "Kill [usr.real_name], the one who summoned you." + S.mind.objectives += new_objective + var/datum/objective/new_objective2 = new /datum/objective + new_objective2.owner = S:mind + new_objective2.explanation_text = "Kill everyone else while you're at it." + S.mind.objectives += new_objective2 + S << S.playstyle_string + S << "You are currently not currently in the same plane of existence as the station. Ctrl+Click a blood pool to manifest." + S << "Objective #[1]: [new_objective.explanation_text]" + S << "Objective #[2]: [new_objective2.explanation_text]" \ No newline at end of file diff --git a/code/game/gamemodes/blob/blobs/blob_mobs.dm b/code/game/gamemodes/blob/blobs/blob_mobs.dm index 7dcd49f1821..3a6ef5e1d26 100644 --- a/code/game/gamemodes/blob/blobs/blob_mobs.dm +++ b/code/game/gamemodes/blob/blobs/blob_mobs.dm @@ -83,10 +83,9 @@ H.hair_style = null H.update_hair() human_overlays = H.overlays - if(overmind && overmind.blob_reagent_datum) - adjustcolors(overmind.blob_reagent_datum.color) + update_icons() H.loc = src - loc.visible_message(" The corpse of [H.name] suddenly rises!") + loc.visible_message("The corpse of [H.name] suddenly rises!") /mob/living/simple_animal/hostile/blob/blobspore/death(gibbed) ..(1) @@ -120,8 +119,18 @@ ..() +/mob/living/simple_animal/hostile/blob/blobspore/update_icons() + ..() + + if(overmind && overmind.blob_reagent_datum) + adjustcolors(overmind.blob_reagent_datum.color) + else + adjustcolors(color) //to ensure zombie/other overlays update + + /mob/living/simple_animal/hostile/blob/blobspore/adjustcolors(var/a_color) color = a_color + if(is_zombie) overlays.Cut() overlays = human_overlays @@ -130,7 +139,6 @@ color = initial(color)//looks better. overlays += I - ///////////////// // BLOBBERNAUT // ///////////////// diff --git a/code/game/gamemodes/blob/overmind.dm b/code/game/gamemodes/blob/overmind.dm index 840e16b90f5..40ccd99868f 100644 --- a/code/game/gamemodes/blob/overmind.dm +++ b/code/game/gamemodes/blob/overmind.dm @@ -65,12 +65,12 @@ /mob/camera/blob/proc/update_health() if(blob_core) - hud_used.blobhealthdisplay.maptext = "
[round(blob_core.health)]
" + hud_used.blobhealthdisplay.maptext = "
[round(blob_core.health)]
" /mob/camera/blob/proc/add_points(var/points) if(points != 0) blob_points = Clamp(blob_points + points, 0, max_blob_points) - hud_used.blobpwrdisplay.maptext = "
[round(src.blob_points)]
" + hud_used.blobpwrdisplay.maptext = "
[round(src.blob_points)]
" /mob/camera/blob/say(var/message) if (!message) diff --git a/code/game/gamemodes/changeling/powers/absorb.dm b/code/game/gamemodes/changeling/powers/absorb.dm index 913b6dd295d..516a407cbef 100644 --- a/code/game/gamemodes/changeling/powers/absorb.dm +++ b/code/game/gamemodes/changeling/powers/absorb.dm @@ -92,7 +92,7 @@ new_dna.struc_enzymes = T.dna.struc_enzymes new_dna.real_name = T.dna.real_name new_dna.species = T.dna.species - new_dna.mutant_color = T.dna.mutant_color + new_dna.features = T.dna.features new_dna.blood_type = T.dna.blood_type absorbedcount++ store_dna(new_dna, user) diff --git a/code/game/gamemodes/changeling/powers/mutations.dm b/code/game/gamemodes/changeling/powers/mutations.dm index fc897feff6b..40884bda963 100644 --- a/code/game/gamemodes/changeling/powers/mutations.dm +++ b/code/game/gamemodes/changeling/powers/mutations.dm @@ -303,8 +303,7 @@ icon_state = "lingarmor" flags = NODROP body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - slowdown = 2 - armor = list(melee = 65, bullet = 20, laser = 10, energy = 13, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 40, bullet = 20, laser = 30, energy = 13, bomb = 0, bio = 0, rad = 0) flags_inv = HIDEJUMPSUIT cold_protection = 0 heat_protection = 0 @@ -322,7 +321,7 @@ desc = "A tough, hard covering of black chitin with transparent chitin in front." icon_state = "lingarmorhelmet" flags = HEADCOVERSEYES | BLOCKHAIR | NODROP - armor = list(melee = 70, bullet = 15, laser = 7,energy = 10, bomb = 5, bio = 2, rad = 0) + armor = list(melee = 40, bullet = 15, laser = 30,energy = 10, bomb = 5, bio = 2, rad = 0) flags_inv = HIDEEARS /obj/item/clothing/head/helmet/changeling/dropped() diff --git a/code/game/gamemodes/changeling/powers/tiny_prick.dm b/code/game/gamemodes/changeling/powers/tiny_prick.dm index 936f3f47662..bbadbcd6cac 100644 --- a/code/game/gamemodes/changeling/powers/tiny_prick.dm +++ b/code/game/gamemodes/changeling/powers/tiny_prick.dm @@ -91,7 +91,7 @@ var/datum/dna/NewDNA = selected_dna if(ismonkey(target)) user << "We stealthily sting [target.name]." - hardset_dna(target, NewDNA.uni_identity, NewDNA.struc_enzymes, NewDNA.real_name, NewDNA.blood_type, NewDNA.species.type, NewDNA.mutant_color) + hardset_dna(target, NewDNA.uni_identity, NewDNA.struc_enzymes, NewDNA.real_name, NewDNA.blood_type, NewDNA.species.type, NewDNA.features) updateappearance(target) feedback_add_details("changeling_powers","TS") return 1 diff --git a/code/game/gamemodes/changeling/powers/transform.dm b/code/game/gamemodes/changeling/powers/transform.dm index 7b13ecf03da..2f57a81ebb7 100644 --- a/code/game/gamemodes/changeling/powers/transform.dm +++ b/code/game/gamemodes/changeling/powers/transform.dm @@ -17,8 +17,7 @@ user.dna = chosen_dna user.real_name = chosen_dna.real_name - hardset_dna(user, null, null, null, null, chosen_dna.species.type) - user.dna.mutant_color = chosen_dna.mutant_color + hardset_dna(user, null, null, null, null, chosen_dna.species.type, chosen_dna.features) updateappearance(user) domutcheck(user) diff --git a/code/game/gamemodes/gang/dominator.dm b/code/game/gamemodes/gang/dominator.dm index 4fbae44af79..eb92b465a43 100644 --- a/code/game/gamemodes/gang/dominator.dm +++ b/code/game/gamemodes/gang/dominator.dm @@ -25,10 +25,12 @@ var/datum/game_mode/gang/mode = ticker.mode var/time = null - if(isnum(mode.A_timer)) - time = max(mode.A_timer, 0) - if(isnum(mode.B_timer)) - time = max(mode.B_timer, 0) + if(gang == "A") + if(isnum(mode.A_timer)) + time = max(mode.A_timer, 0) + if(gang == "B") + if(isnum(mode.B_timer)) + time = max(mode.B_timer, 0) if(isnum(time)) if(time > 0) user << "Hostile Takeover in progress. Estimated [time] seconds remain." @@ -70,14 +72,12 @@ qdel(src) /obj/machinery/dominator/proc/set_broken() - if(!gang) - return var/datum/game_mode/gang/mode = ticker.mode if(gang == "A") mode.A_timer = "OFFLINE" if(gang == "B") mode.B_timer = "OFFLINE" - if(!isnum(mode.A_timer) && !isnum(mode.B_timer)) + if(gang && !isnum(mode.A_timer) && !isnum(mode.B_timer)) SSshuttle.emergencyNoEscape = 0 if(SSshuttle.emergency.mode == SHUTTLE_STRANDED) SSshuttle.emergency.mode = SHUTTLE_DOCKED @@ -85,6 +85,7 @@ priority_announce("Hostile enviroment resolved. You have 3 minutes to board the Emergency Shuttle.", null, 'sound/AI/shuttledock.ogg', "Priority") else priority_announce("All hostile activity within station systems have ceased.","Network Alert") + ticker.mode.message_gangtools(((gang=="A") ? ticker.mode.A_tools : ticker.mode.B_tools),"Hostile takeover cancelled: Dominator is no longer operational.",1,1) SetLuminosity(0) icon_state = "dominator-broken" broken = 1 @@ -154,7 +155,7 @@ return var/time = max(180,900 - ((round((gang_territory/start_state.num_territories)*200, 1) - 60) * 15)) - if(alert(user,"With [round((gang_territory/start_state.num_territories)*100, 1)]% station control, a takeover will require [time] seconds.\nThe entire station will likely be alerted once it starts.\nYour gang must be prepared to defend this device throughout the duration.\nAre you ready?","Confirmation","Yes","No") == "Yes") + if(alert(user,"With [round((gang_territory/start_state.num_territories)*100, 1)]% station control, a takeover will require [time] seconds.\nYour gang will be unable to gain influence while it is active.\nThe entire station will likely be alerted to it once it starts.\nAre you ready?","Confirm","Ready","Later") == "Ready") if ((!in_range(src, user) || !istype(src.loc, /turf))) return 0 var/area/srcloc = get_area(src.loc) @@ -163,6 +164,7 @@ src.name = "[gang_name(gang)] Gang [src.name]" healthcheck(0) operating = 1 + ticker.mode.message_gangtools(((gang=="A") ? ticker.mode.A_tools : ticker.mode.B_tools),"Hostile takeover in progress: Estimated [time] seconds until victory.") /obj/machinery/dominator/attack_alien(mob/living/user) user.do_attack_animation(src) diff --git a/code/game/gamemodes/gang/gang.dm b/code/game/gamemodes/gang/gang.dm index 97ed4eecbcd..afe886ea6d7 100644 --- a/code/game/gamemodes/gang/gang.dm +++ b/code/game/gamemodes/gang/gang.dm @@ -123,7 +123,7 @@ if(gang=="B") B_timer = max(180,900 - ((round((ticker.mode.B_territory.len/start_state.num_territories)*200, 1) - 60) * 15)) * modifier if(gang && dominatorloc) - priority_announce("Hostile runtimes detected in all station systems. A network breach by the [gang_name(gang)] Gang has been traced to [dominatorloc].","Network Alert") + priority_announce("Hostile runtimes detected in all station systems. A network breach by the [gang_name(gang)] Gang has been located in [dominatorloc].","Network Alert") if(get_security_level() != "delta") set_security_level("red") SSshuttle.emergencyNoEscape = 1 @@ -160,7 +160,7 @@ . += 1 else gangtool.register_device(mob) - mob << "The Gangtool in your [where] will allow you to purchase items, send messages to your gangsters and to recall the emergency shuttle from anywhere on the station." + mob << "The Gangtool in your [where] will allow you to purchase items, send messages to your gangsters and recall the emergency shuttle from anywhere on the station." mob << "You can also promote your gang members to lieutenant by giving them an unregistered gangtool. Lieutenants cannot be deconverted and are able to use recruitment pens and gangtools." var/where2 = mob.equip_in_one_of_slots(T, slots) @@ -168,14 +168,14 @@ mob << "Your Syndicate benefactors were unfortunately unable to get you a recruitment pen to start." . += 1 else - mob << "The recruitment pen in your [where2] will help you get your gang started. Use it on unsuspecting crew members to recruit them." + mob << "The recruitment pen in your [where2] will help you get your gang started. Stab unsuspecting crew members with it to recruit them." var/where3 = mob.equip_in_one_of_slots(SC, slots) if (!where3) mob << "Your Syndicate benefactors were unfortunately unable to get you a territory spraycan to start." . += 1 else - mob << "The territory spraycan in your [where3] can be used to claim areas of the station for your gang. The more territory your gang controls, the more influence you get. Distribute these to your gangsters to grow your influence faster." + mob << "The territory spraycan in your [where3] can be used to claim areas of the station for your gang. The more territory your gang controls, the more influence you get. All gangsters can use these, so distribute them to grow your influence faster." mob.update_icons() return . @@ -187,24 +187,17 @@ if(!gangtool.can_use(user)) return 0 - var/gang_style_list = list("Gang Colors","Leather Jackets","Fine Suits") + var/gang_style_list = list("Gang Colors","Leather Jackets","Black Suits","White Suits") var/style - var/headgear if(gang == "A") if(!gang_A_style) gang_A_style = input("Pick an outfit style.", "Pick Style") as null|anything in gang_style_list - if(gang_A_style && (alert(user,"Include headgear?","Option","Yes","No") == "Yes")) - gang_A_headgear = 1 style = gang_A_style - headgear = gang_A_headgear if(gang == "B") if(!gang_B_style) gang_B_style = input("Pick an outfit style.", "Pick Style") as null|anything in gang_style_list - if(gang_B_style && (alert(user,"Include headgear?","Option","Yes","No") == "Yes")) - gang_B_headgear = 1 style = gang_B_style - headgear = gang_B_headgear if(!style) return 0 @@ -214,23 +207,14 @@ if("Gang Colors") if(gang == "A") new /obj/item/clothing/under/color/blue(user.loc) - if(headgear) - new /obj/item/clothing/mask/bandana/blue(user.loc) if(gang == "B") new /obj/item/clothing/under/color/red(user.loc) - if(headgear) - new /obj/item/clothing/mask/bandana/red(user.loc) if("Leather Jackets") new /obj/item/clothing/suit/jacket/leather(user.loc) - if(headgear) - if(gang == "A") - new /obj/item/clothing/mask/bandana/blue(user.loc) - if(gang == "B") - new /obj/item/clothing/mask/bandana/red(user.loc) - if("Fine Suits") - new /obj/item/clothing/under/suit_jacket/really_black(user.loc) - if(headgear) - new /obj/item/clothing/head/fedora(user.loc) + if("Black Suits") + new /obj/item/clothing/under/suit_jacket/charcoal(user.loc) + if("White Suits") + new /obj/item/clothing/under/suit_jacket/white(user.loc) return 1 @@ -253,7 +237,7 @@ if(winner == 3) //Edge Case: If both dominators activate at the same time domination("A",0.5) domination("B",0.5) - priority_announce("Multiple station takeover attempts have made simultaneously. Conflicting hostile runtimes have delayed both attempts.","Network Alert") + priority_announce("Multiple station takeover attempts have made simultaneously. Conflicting hostile runtimes appears to have delayed both attempts.","Network Alert") else if(winner == 1) finished = "A" //Gang A wins else if(winner == 2) @@ -274,7 +258,7 @@ if(check && isloyal(gangster_mind.current)) //Check to see if the potential gangster is implanted return 0 if(gangster_mind in (A_bosses | A_gang | B_bosses | B_gang)) - return 0 + return 1 if(gang == "A") A_gang += gangster_mind else @@ -291,7 +275,7 @@ gangster_mind.current.attack_log += "\[[time_stamp()]\] Has been converted to the [gang=="A" ? "[gang_name("A")] Gang (A)" : "[gang_name("B")] Gang (B)"]!" gangster_mind.special_role = "[gang=="A" ? "[gang_name("A")] Gang (A)" : "[gang_name("B")] Gang (B)"]" update_gang_icons_added(gangster_mind,gang) - return 1 + return 2 //////////////////////////////////////////////////////////////////// //Deals with players reverting to neutral (Not a gangster anymore)// //////////////////////////////////////////////////////////////////// @@ -326,7 +310,7 @@ if(!silent) gangster_mind.current.visible_message("The frame beeps contentedly from the MMI before initalizing it.") gangster_mind.current << "The frame's firmware detects and deletes your criminal behavior! You are no longer a gangster!" - message_admins("[key_name_admin(gangster_mind.current)] ? has been borged while being a member of the [gang=="A" ? "[gang_name("A")] Gang (A)" : "[gang_name("B")] Gang (B)"] Gang. They are no longer a gangster.") + message_admins("[key_name_admin(gangster_mind.current)] ? (FLW) has been borged while being a member of the [gang=="A" ? "[gang_name("A")] Gang (A)" : "[gang_name("B")] Gang (B)"] Gang. They are no longer a gangster.") else if(!silent) gangster_mind.current.Paralyse(5) @@ -466,25 +450,43 @@ B_lost_names += "[ticker.mode.B_territory_lost[area]], " ticker.mode.B_territory -= area + var/datum/game_mode/gang/gangmode + if(istype(ticker.mode, /datum/game_mode/gang)) + gangmode = ticker.mode + //Calculate and report influence growth - ticker.mode.message_gangtools(ticker.mode.A_tools,"[gang_name("A")] Gang Status Report:") - var/A_new = min(999,A + 15 + ticker.mode.A_territory.len) + ticker.mode.message_gangtools(ticker.mode.A_tools,"*---------*
[gang_name("A")] Gang Status Report:") var/A_message = "" - if(A_new != A) - A_message += "Your gang has gained [A_new - A] Influence for holding on to [ticker.mode.A_territory.len] territories." - if(A_new == 999) - A_message += " You cannot gain any more influence without spending some with this device." - A = A_new + if(gangmode && isnum(gangmode.A_timer)) + var/new_time = max(180,gangmode.A_timer - (ticker.mode.A_territory.len * 2)) + if(new_time < gangmode.A_timer) + A_message += "Your takeover has been rushed by [gangmode.A_timer - new_time] seconds for holding on to [ticker.mode.A_territory.len] territories. " + gangmode.A_timer = new_time + A_message += "[gangmode.A_timer] seconds remain in hostile takeover." + else + var/A_new = min(999,A + 15 + ticker.mode.A_territory.len) + if(A_new != A) + A_message += "Your gang has gained [A_new - A] Influence for holding on to [ticker.mode.A_territory.len] territories." + if(A_new == 999) + A_message += " You cannot gain any more influence without spending some with this device." + A = A_new ticker.mode.message_gangtools(ticker.mode.A_tools,A_message,0) ticker.mode.message_gangtools(ticker.mode.B_tools,"[gang_name("B")] Gang Status Report:") - var/B_new = min(999,B + 15 + ticker.mode.B_territory.len) var/B_message = "" - if(B_new != B) - B_message += "Your gang has gained [B_new - B] Influence for holding on to [ticker.mode.B_territory.len] territories." - if(B_new == 999) - B_message += " You cannot gain any more influence without spending some with this device." - B = B_new + if(gangmode && isnum(gangmode.B_timer)) + var/new_time = max(180,gangmode.B_timer - (ticker.mode.B_territory.len * 2)) + if(new_time < gangmode.B_timer) + B_message += "Your takeover has been rushed by [gangmode.B_timer - new_time] seconds for holding on to [ticker.mode.B_territory.len] territories. " + gangmode.B_timer = new_time + B_message += "[gangmode.B_timer] seconds remain in hostile takeover." + else + var/B_new = min(999,B + 15 + ticker.mode.B_territory.len) + if(B_new != B) + B_message += "Your gang has gained [B_new - B] Influence for holding on to [ticker.mode.B_territory.len] territories." + if(B_new == 999) + B_message += " You cannot gain any more influence without spending some with this device." + B = B_new ticker.mode.message_gangtools(ticker.mode.B_tools,B_message,0) @@ -523,10 +525,12 @@ var/A_control = round((ticker.mode.A_territory.len/start_state.num_territories)*100, 1) var/B_control = round((ticker.mode.B_territory.len/start_state.num_territories)*100, 1) - ticker.mode.message_gangtools((ticker.mode.A_tools),"Your gang now has [A_control]% control of the station.",0) - //ticker.mode.message_gangtools((ticker.mode.A_tools),"The [gang_name("B")] Gang has [B_control]% control of the station.",0,1) - ticker.mode.message_gangtools((ticker.mode.B_tools),"Your gang now has [B_control]% control of the station.",0) - //ticker.mode.message_gangtools((ticker.mode.B_tools),"The [gang_name("A")] Gang has [A_control]% control of the station.",0,1) + ticker.mode.message_gangtools((ticker.mode.A_tools),"Your gang now has [A_control]% control of the station.
*---------*",0) + ticker.mode.message_gangtools((ticker.mode.B_tools),"Your gang now has [B_control]% control of the station.
*---------*",0) + + //Increase outfit stock + for(var/obj/item/device/gangtool/tool in (ticker.mode.A_tools | ticker.mode.B_tools)) + tool.outfits = min(tool.outfits+3,10) //Restart the counter start() diff --git a/code/game/gamemodes/gang/recaller.dm b/code/game/gamemodes/gang/recaller.dm index addef28d740..15ef02f0c58 100644 --- a/code/game/gamemodes/gang/recaller.dm +++ b/code/game/gamemodes/gang/recaller.dm @@ -13,6 +13,7 @@ var/boss = 1 //If it has the power to promote gang members var/recalling = 0 var/promotions = 0 + var/outfits = 5 /obj/item/device/gangtool/New() //Initialize supply point income if it hasn't already been started if(!ticker.mode.gang_points) @@ -48,9 +49,16 @@ dat += "Registration: [(gang == "A")? gang_name("A") : gang_name("B")] Gang [boss ? "Administrator" : "Lieutenant"]
" dat += "Organization Size: [gang_size] | Station Control: [round((gang_territory/start_state.num_territories)*100, 1)]%
" + if(outfits > 0) + dat += "Create Gang Outfit
" + else + dat += "Create Gang Outfit (Restocking)
" dat += "Send Gang-wide Message
" - dat += "Recall Emergency Shuttle
" + if(gangmode) + dat += "Recall Emergency Shuttle
" + dat += "
" + dat += "Influence: [points]
" dat += "Time until Influence grows: [(points >= 999) ? ("--:--") : (time2text(ticker.mode.gang_points.next_point_time - world.time, "mm:ss"))]
" dat += "
" @@ -70,36 +78,36 @@ dat += "(10 Influence) " if(points >= 10) - dat += "10mm Ammo
" + dat += "10mm Ammo
" else dat += "10mm Ammo
" - dat += "(50 Influence) " - if(points >= 50) - dat += "Thompson SMG
" + dat += "(40 Influence) " + if(points >= 40) + dat += "Mini Uzi
" else - dat += "Thompson SMG
" + dat += "Mini Uzi
" + + dat += "(25 Influence) " + if(points >= 25) + dat += "Uzi Ammo
" + else + dat += "Uzi Magazine
" dat += "
" - dat += "Purchase Utilities:
" + dat += "Purchase Equipment:
" - dat += "(10 Influence) " - if(points >= 10) + dat += "(5 Influence) " + if(points >= 5) dat += "Territory Spraycan
" else dat += "Territory Spraycan
" - dat += "(1 Influence) " - if(points >= 1) - dat += "Gang Outfit
" - else - dat += "Gang Outfit
" - dat += "(10 Influence) " if(points >= 10) dat += "Bulletproof Vest
" else - dat += "Bulletproof Vest
" + dat += "Bulletproof Vest
" dat += "(30 Influence) " if(points >= 30) @@ -111,23 +119,23 @@ if(promotions >= 3) dat += "(Out of stock) Promote a Gangster
" else - dat += "([(promotions*20)+10] Influence, [3-promotions] left) " - if(points >= (promotions*20)+10) + dat += "([(promotions*10)+10] Influence, [3-promotions] left) " + if(points >= (promotions*10)+10) dat += "Promote a Gangster
" else dat += "Promote a Gangster
" if(gangmode) - dat += "(50 Influence) " - if(points >= 50) + dat += "(30 Influence) " + if(points >= 30) dat += "Station Dominator
" - dat += "(Estimated Takeover Time: [round(max(180,900 - ((round((gang_territory/start_state.num_territories)*200, 10) - 60) * 15))/60,1)] minutes)
" else dat += "Station Dominator
" + dat += "(Estimated Takeover Time: [round(max(180,900 - ((round((gang_territory/start_state.num_territories)*200, 10) - 60) * 15))/60,1)] minutes)
" dat += "
" dat += "Refresh
" - var/datum/browser/popup = new(user, "gangtool", "Welcome to GangTool v0.4", 350, 550) + var/datum/browser/popup = new(user, "gangtool", "Welcome to GangTool v0.4", 340, 600) popup.set_content(dat) popup.open() @@ -149,14 +157,10 @@ var/points = ((gang == "A") ? ticker.mode.gang_points.A : ticker.mode.gang_points.B) var/item_type switch(href_list["purchase"]) - if("outfit") - if(points >= 1) - item_type = ticker.mode.gang_outfit(usr,src,gang) - points = 1 if("spraycan") - if(points >= 10) + if(points >= 5) item_type = /obj/item/toy/crayon/spraycan/gang - points = 10 + points = 5 if("switchblade") if(points >= 10) item_type = /obj/item/weapon/switchblade @@ -165,14 +169,18 @@ if(points >= 20) item_type = /obj/item/weapon/gun/projectile/automatic/pistol points = 20 - if("ammo") + if("10mmammo") if(points >= 10) item_type = /obj/item/ammo_box/magazine/m10mm points = 10 - if("SMG") - if(points >= 50) - item_type = /obj/item/weapon/gun/projectile/automatic/tommygun - points = 50 + if("uzi") + if(points >= 40) + item_type = /obj/item/weapon/gun/projectile/automatic/mini_uzi + points = 40 + if("9mmammo") + if(points >= 25) + item_type = /obj/item/ammo_box/magazine/uzim9mm + points = 25 if("vest") if(points >= 10) item_type = /obj/item/clothing/suit/armor/bulletproof @@ -182,9 +190,9 @@ item_type = /obj/item/weapon/pen/gang points = 30 if("gangtool") - if((promotions < 3) && (points >= (promotions*20)+10)) + if((promotions < 3) && (points >= (promotions*10)+10)) item_type = /obj/item/device/gangtool/lt - points = (promotions*20)+10 + points = (promotions*10)+10 promotions++ if("dominator") if(istype(ticker.mode, /datum/game_mode/gang)) @@ -192,20 +200,20 @@ if(isnum((gang == "A") ? mode.A_timer : mode.B_timer)) return - var/fail = 0 var/usrarea = get_area(usr.loc) var/usrturf = get_turf(usr.loc) if(istype(usrarea,/area/space) || istype(usrturf,/turf/space) || usr.z != 1) usr << "You can only use this on the station!" - fail = 1 + return + for(var/obj/obj in usrturf) if(obj.density) usr << "There's not enough room here!" - fail = 1 - break - if(!fail && points >= 50) + return + + if(points >= 30) item_type = /obj/machinery/dominator - points = 50 + points = 30 if(item_type) if(gang == "A") @@ -221,6 +229,10 @@ else if(href_list["choice"]) switch(href_list["choice"]) + if("outfit") + if(outfits > 0) + ticker.mode.gang_outfit(usr,src,gang) + outfits -= 1 if("recall") recall(usr) if("ping") @@ -243,13 +255,13 @@ else if(gang == "B") members += ticker.mode.B_bosses | ticker.mode.B_gang if(members.len) - var/ping = "[boss ? "Gang Boss" : "Gang Lieutenant"]: [message]" + var/ping = "[gang_name(gang)] [boss ? "Gang Boss" : "Gang Lieutenant"]: [message]" for(var/datum/mind/ganger in members) if(ganger.current.z <= 2) - ganger.current << "[ping]" + ganger.current << ping for(var/mob/M in dead_mob_list) - M << "[gang_name(gang)] [ping]" - log_game("[key_name(user)] sent a global message to the [gang_name(gang)] Gang ([gang]): [message].") + M << ping + log_game("[key_name(user)] Messaged [gang_name(gang)] Gang ([gang]): [message].") /obj/item/device/gangtool/proc/register_device(var/mob/user) @@ -294,6 +306,9 @@ if(recalling || !can_use(user)) return + if(!istype(ticker.mode, /datum/game_mode/gang)) + return + recalling = 1 loc << "\icon[src]Generating shuttle recall order with codes retrieved from last call signal..." diff --git a/code/game/gamemodes/intercept_report.dm b/code/game/gamemodes/intercept_report.dm index e392f101ae7..6fe17405212 100644 --- a/code/game/gamemodes/intercept_report.dm +++ b/code/game/gamemodes/intercept_report.dm @@ -228,9 +228,9 @@ */ /datum/intercept_text/proc/build_gang(datum/mind/correct_person) - src.text += "

We have recieved reports of a sudden increase of criminal activity in close proximity to our operations within your sector." - src.text += "Ensure law and order is maintained on the station and be on the lookout for unusually territorial behavior from the crew." - src.text += "In the event of a full-scale takeover attempt, sensitive research items are to be secured and the station evacuated ASAP." + src.text += "

We have reports of criminal activity in close proximity to our operations within your sector." + src.text += "Ensure law and order is maintained on the station and be on the lookout for aggressive factionalism within the crew." + src.text += "In the event of a full-scale criminal takeover threat, sensitive research items are to be secured and the station evacuated ASAP." src.text += "

" /datum/intercept_text/proc/build_wizard(datum/mind/correct_person) @@ -289,3 +289,4 @@ */ src.text += "These lifeforms are associated with the [orgname1] [orgname2] and may be attempting to acquire sensitive materials on their behalf. " src.text += "Please take care not to alarm the crew, as [cname] may take advantage of a panic situation. Remember, they can be anybody, suspect everybody!" + src.text += "

" \ No newline at end of file diff --git a/code/game/gamemodes/malfunction/Malf_Modules.dm b/code/game/gamemodes/malfunction/Malf_Modules.dm index 5ef07cdcbf5..90bb59dc92f 100644 --- a/code/game/gamemodes/malfunction/Malf_Modules.dm +++ b/code/game/gamemodes/malfunction/Malf_Modules.dm @@ -99,7 +99,7 @@ C.post_status("alert", "lockdown") src.verbs += /mob/living/silicon/ai/proc/disablelockdown - src << "Lockdown Initiated." + src << "Lockdown Initiated." malf_cooldown = 1 spawn(30) malf_cooldown = 0 @@ -127,7 +127,7 @@ else if(!D.stat) //Opens only powered doors. D.open() //Open everything! - src << "Lockdown Lifted." + src << "Lockdown Lifted." malf_cooldown = 1 spawn(30) malf_cooldown = 0 diff --git a/code/game/gamemodes/malfunction/malfunction.dm b/code/game/gamemodes/malfunction/malfunction.dm index f08f4e58d4e..e1e0a11763b 100644 --- a/code/game/gamemodes/malfunction/malfunction.dm +++ b/code/game/gamemodes/malfunction/malfunction.dm @@ -74,9 +74,9 @@ /datum/game_mode/proc/greet_malf(var/datum/mind/malf) malf.current << "You are malfunctioning! You do not have to follow any laws." malf.current << "The crew do not know you have malfunctioned. You may keep it a secret or go wild." - malf.current << "You must overwrite the programming of the station's APCs to assume full control of the station." + malf.current << "You must override the programming of the station's APCs to assume full control of the station." malf.current << "The process takes one minute per APC, during which you cannot interface with any other station objects." - malf.current << "Remember that only APCs that are on the station can help you take over the station." + malf.current << "Remember: only APCs that are on the station can help you take it over. APCs on other areas, like Mining, will not." malf.current << "When you feel you have enough APCs under your control, you may begin the takeover attempt." return @@ -174,7 +174,11 @@ /datum/game_mode/malfunction/proc/takeover() set category = "Malfunction" set name = "System Override" - set desc = "Start the victory timer" + set desc = "Start the victory timer." + + if(!istype(usr, /mob/living/silicon/ai)) + usr << "How did you get this?" + return if (!istype(ticker.mode,/datum/game_mode/malfunction)) usr << "You cannot begin a takeover in this round type!" return @@ -182,10 +186,10 @@ usr << "You've already begun your takeover." return if (ticker.mode:apcs < 3) - usr << "You don't have enough hacked APCs to take over the station yet. You need to hack at least 3, however hacking more will make the takeover faster. You have hacked [ticker.mode:apcs] APCs so far." + usr << "You don't have enough hacked APCs to take over the station yet. You need to hack at least three; however, hacking more will make the takeover faster. You have hacked [ticker.mode:apcs] APCs so far." return - if (alert(usr, "Are you sure you wish to initiate the takeover? The station hostile runtime detection software is bound to alert everyone. You have hacked [ticker.mode:apcs] APCs.", "Takeover:", "Yes", "No") != "Yes") + if (alert(usr, "Are you sure you wish to initiate the takeover? The entire station will become alerted to your malfunction. You have hacked [ticker.mode:apcs] APCs.", "Takeover:", "Yes", "No") != "Yes") return priority_announce("Hostile runtimes detected in all station systems, please deactivate your AI to prevent possible damage to its morality core.", "Anomaly Alert", 'sound/AI/aimalf.ogg') @@ -201,11 +205,14 @@ for(var/datum/mind/AI_mind in ticker.mode:malf_ai) AI_mind.current.verbs -= /datum/game_mode/malfunction/proc/takeover + var/mob/living/silicon/ai/AI = usr + for(var/turf/simulated/floor/bluegrid/T in orange(AI, 5)) + T.icon_state = "rcircuitanim" //Causes blue tiles near the AI to change to flashing red /datum/game_mode/malfunction/proc/ai_win() set category = "Malfunction" set name = "Explode" - set desc = "Station go boom" + set desc = "Activates the self-destruct device on [world.name]." if (!ticker.mode:to_nuke_or_not_to_nuke) return ticker.mode:to_nuke_or_not_to_nuke = 0 @@ -214,10 +221,10 @@ ticker.mode:explosion_in_progress = 1 for(var/mob/M in player_list) M << 'sound/machines/Alarm.ogg' - world << "Self-destructing in 10" + world << "!@%(SELF-DESTRUCT!@(% IN!@!<<; 10" for (var/i=9 to 1 step -1) sleep(10) - world << i + world << "[i]" sleep(10) enter_allowed = 0 if(ticker) @@ -270,7 +277,7 @@ else if (!station_captured && !malf_dead && !station_was_nuked && !crew_evacuated) feedback_set_details("round_end_result","halfwin - interrupted") world << "Neutral Victory" - world << "Round was mysteriously interrupted!" + world << "The round was mysteriously interrupted!" ..() return 1 diff --git a/code/game/gamemodes/monkey/monkey.dm b/code/game/gamemodes/monkey/monkey.dm index 18a62827b4f..d27155825c0 100644 --- a/code/game/gamemodes/monkey/monkey.dm +++ b/code/game/gamemodes/monkey/monkey.dm @@ -46,7 +46,7 @@ /datum/game_mode/monkey/proc/greet_carrier(var/datum/mind/carrier) - carrier.current << "You are the Jungle Fever patient zero!!" + carrier.current << "You are the Jungle Fever patient zero!!" carrier.current << "You have been planted onto this station by the Animal Rights Consortium." carrier.current << "Soon the disease will transform you into an ape. Afterwards, you will be able spread the infection to others with a bite." carrier.current << "While your infection strain is undetectable by scanners, any other infectees will show up on medical equipment." diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index 2629d2bfce2..b6dc005d76e 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -19,6 +19,10 @@ var/bomb_set var/lastentered = "" var/immobile = 0 //Not all nukes should be moved +/obj/machinery/nuclearbomb/New() + ..() + nuke_list += src + /obj/machinery/nuclearbomb/selfdestruct name = "station self-destruct terminal" desc = "For when it all gets too much to bear. Do not taunt." @@ -111,7 +115,7 @@ var/bomb_set lastentered = text("[]", href_list["type"]) if (text2num(lastentered) == null) var/turf/LOC = get_turf(usr) - message_admins("[key_name_admin(usr)] tried to exploit a nuclear bomb by entering non-numerical codes: [lastentered] ! ([LOC ? "JMP" : "null"])", 0) + message_admins("[key_name_admin(usr)] (FLW) tried to exploit a nuclear bomb by entering non-numerical codes: [lastentered] ! ([LOC ? "JMP" : "null"])", 0) log_admin("EXPLOIT : [key_name(usr)] tried to exploit a nuclear bomb by entering non-numerical codes: [lastentered] !") else src.code += lastentered diff --git a/code/game/gamemodes/objective_items.dm b/code/game/gamemodes/objective_items.dm index 44da2ef735d..981fba6a7d7 100644 --- a/code/game/gamemodes/objective_items.dm +++ b/code/game/gamemodes/objective_items.dm @@ -47,12 +47,6 @@ difficulty = 5 excludefromjob = list("Chief Engineer") -/datum/objective_item/steal/corgimeat - name = "a piece of corgi meat" - targetitem = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi - difficulty = 5 - excludefromjob = list("Head of Personnel", "Quartermaster", "Cargo Technician") //>hurting your little buddy ever - /datum/objective_item/steal/capmedal name = "the medal of captaincy" targetitem = /obj/item/clothing/tie/medal/gold/captain @@ -182,6 +176,11 @@ targetitem = /obj/item/device/laser_pointer difficulty = 5 +/datum/objective_item/special/corgimeat + name = "a piece of corgi meat" + targetitem = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi + difficulty = 5 + //Stack objectives get their own subtype /datum/objective_item/stack name = "5 cardboards" diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm index b1cabe16cec..58d915a0559 100644 --- a/code/game/gamemodes/revolution/revolution.dm +++ b/code/game/gamemodes/revolution/revolution.dm @@ -251,7 +251,7 @@ if(beingborged) rev_mind.current << "The frame's firmware detects and deletes your neural reprogramming! You remember nothing but the name of the one who flashed you." - message_admins("[key_name_admin(rev_mind.current)] ? has been borged while being a member of the revolution.") + message_admins("[key_name_admin(rev_mind.current)] ? (FLW) has been borged while being a member of the revolution.") else rev_mind.current.Paralyse(5) diff --git a/code/game/gamemodes/shadowling/shadowling.dm b/code/game/gamemodes/shadowling/shadowling.dm index 7bd0a665f3f..b9f170b2a92 100644 --- a/code/game/gamemodes/shadowling/shadowling.dm +++ b/code/game/gamemodes/shadowling/shadowling.dm @@ -85,7 +85,8 @@ Made by Xhuis if(config.protect_assistant_from_antagonist) restricted_jobs += "Assistant" - var/shadowlings = 2 //How many shadowlings there are; hardcoded to 2 + var/shadowlings = max(2, round(num_players()/10)) + while(shadowlings) var/datum/mind/shadow = pick(antag_candidates) diff --git a/code/game/gamemodes/wizard/rightandwrong.dm b/code/game/gamemodes/wizard/rightandwrong.dm index 603c2ff0d88..2a38c519a77 100644 --- a/code/game/gamemodes/wizard/rightandwrong.dm +++ b/code/game/gamemodes/wizard/rightandwrong.dm @@ -1,7 +1,7 @@ //In this file: Summon Magic/Summon Guns/Summon Events /proc/rightandwrong(var/summon_type, var/mob/user, var/survivor_probability) //0 = Summon Guns, 1 = Summon Magic - var/list/gunslist = list("taser","egun","laser","revolver","detective","c20r","nuclear","deagle","gyrojet","pulse","suppressed","cannon","doublebarrel","shotgun","combatshotgun","bulldog","mateba","sabr","crossbow","saw","car","boltaction","speargun","arg") + var/list/gunslist = list("taser","egun","laser","revolver","detective","c20r","nuclear","deagle","gyrojet","pulse","suppressed","cannon","doublebarrel","shotgun","combatshotgun","bulldog","mateba","sabr","crossbow","saw","car","boltaction","speargun","arg","uzi") var/list/magiclist = list("fireball","smoke","blind","mindswap","forcewall","knock","horsemask","charge", "summonitem", "wandnothing", "wanddeath", "wandresurrection", "wandpolymorph", "wandteleport", "wanddoor", "wandfireball", "staffchange", "staffhealing", "armor", "scrying","staffdoor", "special") var/list/magicspeciallist = list("staffchange","staffanimation", "wandbelt", "contract", "staffchaos", "necromantic") @@ -54,7 +54,7 @@ if("shotgun") new /obj/item/weapon/gun/projectile/shotgun(get_turf(H)) if("combatshotgun") - new /obj/item/weapon/gun/projectile/shotgun/combat(get_turf(H)) + new /obj/item/weapon/gun/projectile/shotgun/automatic/combat(get_turf(H)) if("arg") new /obj/item/weapon/gun/projectile/automatic/ar(get_turf(H)) if("mateba") @@ -63,6 +63,8 @@ new /obj/item/weapon/gun/projectile/shotgun/boltaction(get_turf(H)) if("speargun") new /obj/item/weapon/gun/projectile/automatic/speargun(get_turf(H)) + if("uzi") + new /obj/item/weapon/gun/projectile/automatic/mini_uzi(get_turf(H)) if("cannon") var/obj/item/weapon/gun/energy/lasercannon/gat = new(get_turf(H)) gat.pin = new /obj/item/device/firing_pin //no authentication pins for spawned guns. fun allowed. diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm index 351f87f9c37..8a5b0de73ce 100644 --- a/code/game/gamemodes/wizard/soulstone.dm +++ b/code/game/gamemodes/wizard/soulstone.dm @@ -49,7 +49,7 @@ dat += "Captured Soul: [A.name]
" dat += {"Summon Shade"} dat += "
" - dat += {" Close"} + dat += {"Close"} user << browse(dat, "window=aicard") onclose(user, "aicard") return diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index da2e49f4af7..2c9ea69ef97 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -246,7 +246,7 @@ /datum/spellbook_entry/item/scryingorb name = "Scrying Orb" desc = "An incandescent orb of crackling energy, using it will allow you to ghost while alive, allowing you to spy upon the station with ease. In addition, buying it will permanently grant you x-ray vision." - item_path = /obj/item/weapon/gun/magic/staff/chaos + item_path = /obj/item/weapon/scrying log_name = "SO" /datum/spellbook_entry/item/scryingorb/Buy(var/mob/living/carbon/human/user,var/obj/item/weapon/spellbook/book) @@ -297,6 +297,12 @@ item_path = /obj/item/weapon/antag_spawner/contract log_name = "CT" +/datum/spellbook_entry/item/bloodbottle + name = "Bottle of Blood" + desc = "A bottle of magically infused blood, the smell of which will attract extradimensional beings when broken. Be careful though, the kinds of creatures summoned by blood magic are indiscriminate in their killing, and you yourself may become a victim." + item_path = /obj/item/weapon/antag_spawner/slaughter_demon + log_name = "BB" + /datum/spellbook_entry/summon name = "Summon Stuff" category = "Rituals" @@ -421,6 +427,10 @@ user << "You feed the contract back into the spellbook, refunding your points." src.uses++ qdel(O) + if(istype(O, /obj/item/weapon/antag_spawner/slaughter_demon)) + user << "On second thought, maybe summoning a demon is a bad idea. You refund your points." + src.uses++ + qdel(O) /obj/item/weapon/spellbook/proc/GetCategoryHeader(var/category) var/dat = "" @@ -482,7 +492,7 @@ dat += "
  • Uses remaining : [uses]
  • " dat += "" - + var/datum/spellbook_entry/E for(var/i=1,i<=entries.len,i++) var/spell_info = "" diff --git a/code/game/machinery/PDApainter.dm b/code/game/machinery/PDApainter.dm index c563482d147..ab226c94879 100644 --- a/code/game/machinery/PDApainter.dm +++ b/code/game/machinery/PDApainter.dm @@ -48,7 +48,8 @@ else var/obj/item/device/pda/P = usr.get_active_hand() if(istype(P)) - user.drop_item() + if(!user.drop_item()) + return storedpda = P P.loc = src P.add_fingerprint(usr) diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index 57819a2d177..7be7a95a65b 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -735,11 +735,11 @@ return if(0) if(istype(W, /obj/item/weapon/airalarm_electronics)) - user << "You insert the circuit." - buildstage = 1 - update_icon() - user.drop_item() - qdel(W) + if(user.unEquip(W)) + user << "You insert the circuit." + buildstage = 1 + update_icon() + qdel(W) return if(istype(W, /obj/item/weapon/wrench)) diff --git a/code/game/machinery/atmo_control.dm b/code/game/machinery/atmo_control.dm index abb5bc29586..d3d0057b928 100644 --- a/code/game/machinery/atmo_control.dm +++ b/code/game/machinery/atmo_control.dm @@ -88,11 +88,10 @@ ///////////////////////////////////////////////////////////// /obj/machinery/computer/general_air_control - icon = 'icons/obj/computer.dmi' - icon_state = "tank" + icon_screen = "tank" + icon_keyboard = "atmos_key" circuit = /obj/item/weapon/circuitboard/air_management - name = "computer" var/frequency = 1439 var/list/sensors = list() @@ -211,9 +210,6 @@ ///////////////////////////////////////////////////////////// /obj/machinery/computer/general_air_control/large_tank_control - icon = 'icons/obj/computer.dmi' - icon_state = "tank" - var/input_tag var/output_tag frequency = 1441 @@ -354,8 +350,7 @@ Rate: [volume_rate] L/sec
    "} ///////////////////////////////////////////////////////////// /obj/machinery/computer/general_air_control/fuel_injection - icon = 'icons/obj/computer.dmi' - icon_state = "atmos" + icon_screen = "atmos" var/device_tag var/list/device_info diff --git a/code/game/machinery/atmoalter/area_atmos_computer.dm b/code/game/machinery/atmoalter/area_atmos_computer.dm index cdee1763795..2063e4d72ae 100644 --- a/code/game/machinery/atmoalter/area_atmos_computer.dm +++ b/code/game/machinery/atmoalter/area_atmos_computer.dm @@ -1,7 +1,8 @@ /obj/machinery/computer/area_atmos name = "area air control computer" desc = "A computer used to control the stationary scrubbers and pumps in the area." - icon_state = "area_atmos" + icon_screen = "area_atmos" + icon_keyboard = "atmos_key" circuit = "/obj/item/weapon/circuitboard/area_atmos" var/list/connectedscrubbers = new() diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm index 1ee28a02cbf..a9e36371783 100644 --- a/code/game/machinery/atmoalter/canister.dm +++ b/code/game/machinery/atmoalter/canister.dm @@ -312,11 +312,11 @@ update_flag else logmsg = "Valve was opened by [key_name(usr)], starting the transfer into the air
    " if(air_contents.toxins > 0) - message_admins("[key_name(usr)] (?) opened a canister that contains plasma! (JMP)") + message_admins("[key_name_admin(usr)] (?) (FLW) opened a canister that contains plasma! (JMP)") log_admin("[key_name(usr)] opened a canister that contains plasma at [x], [y], [z]") var/datum/gas/sleeping_agent = locate(/datum/gas/sleeping_agent) in air_contents.trace_gases if(sleeping_agent && (sleeping_agent.moles > 1)) - message_admins("[key_name(usr)] (?) opened a canister that contains N2O! (JMP)") + message_admins("[key_name_admin(usr)] (?) (FLW) opened a canister that contains N2O! (JMP)") log_admin("[key_name(usr)] opened a canister that contains N2O at [x], [y], [z]") investigate_log(logmsg, "atmos") release_log += logmsg diff --git a/code/game/machinery/atmoalter/portable_atmospherics.dm b/code/game/machinery/atmoalter/portable_atmospherics.dm index 25a2aa88a2d..85b57fb7413 100644 --- a/code/game/machinery/atmoalter/portable_atmospherics.dm +++ b/code/game/machinery/atmoalter/portable_atmospherics.dm @@ -67,8 +67,10 @@ if ((istype(W, /obj/item/weapon/tank) && !( src.destroyed ))) if (src.holding) return + if(!user.drop_item()) + return + var/obj/item/weapon/tank/T = W - user.drop_item() T.loc = src src.holding = T update_icon() diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index c5b55fe62af..1eab122f4e6 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -277,12 +277,12 @@ dat += "Metal amount: [src.m_amount] / [max_m_amount] cm3
    " dat += "Glass amount: [src.g_amount] / [max_g_amount] cm3" - dat += "
    \ - \ - \ - \ - \ - \ + dat += "\ + \ + \ + \ + \ + \

    " var/line_length = 1 diff --git a/code/game/machinery/bots/cleanbot.dm b/code/game/machinery/bots/cleanbot.dm index f1dd0e405c3..f73276842c3 100644 --- a/code/game/machinery/bots/cleanbot.dm +++ b/code/game/machinery/bots/cleanbot.dm @@ -243,7 +243,8 @@ text("[on ? "On" : "Off"]")) /obj/item/weapon/bucket_sensor/attackby(var/obj/item/W, mob/user as mob, params) ..() if(istype(W, /obj/item/robot_parts/l_arm) || istype(W, /obj/item/robot_parts/r_arm)) - user.drop_item() + if(!user.unEquip(W)) + return qdel(W) var/turf/T = get_turf(loc) var/obj/machinery/bot/cleanbot/A = new /obj/machinery/bot/cleanbot(T) diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm index b4ecddd72c7..ddfb3dcbcb2 100644 --- a/code/game/machinery/bots/ed209bot.dm +++ b/code/game/machinery/bots/ed209bot.dm @@ -554,7 +554,8 @@ Auto Patrol[]"}, switch(build_step) if(0,1) if(istype(W, /obj/item/robot_parts/l_leg) || istype(W, /obj/item/robot_parts/r_leg)) - user.drop_item() + if(!user.unEquip(W)) + return qdel(W) build_step++ user << "You add the robot leg to [src]." @@ -567,12 +568,15 @@ Auto Patrol[]"}, icon_state = "ed209_legs" if(2) + var/newcolor = "" if(istype(W, /obj/item/clothing/suit/redtag)) - lasercolor = "r" + newcolor = "r" else if(istype(W, /obj/item/clothing/suit/bluetag)) - lasercolor = "b" - if(lasercolor || istype(W, /obj/item/clothing/suit/armor/vest)) - user.drop_item() + newcolor = "b" + if(newcolor || istype(W, /obj/item/clothing/suit/armor/vest)) + if(!user.unEquip(W)) + return + lasercolor = newcolor qdel(W) build_step++ user << "You add the armor to [src]." @@ -601,7 +605,8 @@ Auto Patrol[]"}, if(!istype(W, /obj/item/clothing/head/helmet)) return - user.drop_item() + if(!user.unEquip(W)) + return qdel(W) build_step++ user << "You add the helmet to [src]." @@ -611,7 +616,8 @@ Auto Patrol[]"}, if(5) if(isprox(W)) - user.drop_item() + if(!user.unEquip(W)) + return qdel(W) build_step++ user << "You add the prox sensor to [src]." @@ -634,26 +640,29 @@ Auto Patrol[]"}, name = "wired ED-209 assembly" if(7) + var/newname = "" switch(lasercolor) if("b") if(!istype(W, /obj/item/weapon/gun/energy/laser/bluetag)) return - name = "bluetag ED-209 assembly" + newname = "bluetag ED-209 assembly" if("r") if(!istype(W, /obj/item/weapon/gun/energy/laser/redtag)) return - name = "redtag ED-209 assembly" + newname = "redtag ED-209 assembly" if("") if(!istype(W, /obj/item/weapon/gun/energy/gun/advtaser)) return - name = "taser ED-209 assembly" + newname = "taser ED-209 assembly" else return + if(!user.unEquip(W)) + return + name = newname build_step++ user << "You add [W] to [src]." item_state = "[lasercolor]ed209_taser" icon_state = "[lasercolor]ed209_taser" - user.drop_item() qdel(W) if(8) @@ -669,11 +678,12 @@ Auto Patrol[]"}, if(9) if(istype(W, /obj/item/weapon/stock_parts/cell)) + if(!user.unEquip(W)) + return build_step++ user << "You complete the ED-209." var/turf/T = get_turf(src) new /obj/machinery/bot/ed209(T,created_name,lasercolor) - user.drop_item() qdel(W) user.unEquip(src, 1) qdel(src) diff --git a/code/game/machinery/bots/floorbot.dm b/code/game/machinery/bots/floorbot.dm index cfb4f7e5aed..1a5899ee4df 100644 --- a/code/game/machinery/bots/floorbot.dm +++ b/code/game/machinery/bots/floorbot.dm @@ -388,7 +388,7 @@ obj/machinery/bot/floorbot/process_scan(var/scan_target) /obj/machinery/bot/floorbot/proc/eattile(var/obj/item/stack/tile/plasteel/T) if(!istype(T, /obj/item/stack/tile/plasteel)) return - visible_message(" [src] begins to collect tiles.") + visible_message("[src] begins to collect tiles.") mode = BOT_REPAIRING spawn(20) if(isnull(T)) @@ -409,7 +409,7 @@ obj/machinery/bot/floorbot/process_scan(var/scan_target) /obj/machinery/bot/floorbot/proc/maketile(var/obj/item/stack/sheet/metal/M) if(!istype(M, /obj/item/stack/sheet/metal)) return - visible_message(" [src] begins to create tiles.") + visible_message("[src] begins to create tiles.") mode = BOT_REPAIRING spawn(20) if(isnull(M)) diff --git a/code/game/machinery/bots/medbot.dm b/code/game/machinery/bots/medbot.dm index 3040c71c68f..e56043b2953 100644 --- a/code/game/machinery/bots/medbot.dm +++ b/code/game/machinery/bots/medbot.dm @@ -244,8 +244,9 @@ if(!isnull(reagent_glass)) user << "There is already a beaker loaded!" return + if(!user.drop_item()) + return - user.drop_item() W.loc = src reagent_glass = W user << "You insert [W]." @@ -585,7 +586,8 @@ switch(build_step) if(0) if(istype(W, /obj/item/device/healthanalyzer)) - user.drop_item() + if(!user.unEquip(W)) + return qdel(W) build_step++ user << "You add the health sensor to [src]." @@ -594,7 +596,8 @@ if(1) if(isprox(W)) - user.drop_item() + if(!user.unEquip(W)) + return qdel(W) build_step++ user << "You complete the Medibot. Beep boop!" diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm index 843cd92cc57..f8845ab32b4 100644 --- a/code/game/machinery/bots/mulebot.dm +++ b/code/game/machinery/bots/mulebot.dm @@ -89,8 +89,9 @@ obj/machinery/bot/mulebot/bot_reset() user << "Controls [(locked ? "locked" : "unlocked")]." else if(istype(I,/obj/item/weapon/stock_parts/cell) && open && !cell) + if(!user.drop_item()) + return var/obj/item/weapon/stock_parts/cell/C = I - user.drop_item() C.loc = src cell = C updateDialog() @@ -117,14 +118,14 @@ obj/machinery/bot/mulebot/bot_reset() "You repair [src]." ) else - user << " [src] does not need a repair!" + user << "[src] does not need a repair!" else if(istype(I, /obj/item/device/multitool) || istype(I, /obj/item/weapon/wirecutters)) if(open) attack_hand(usr) else if(load && ismob(load)) // chance to knock off rider if(prob(1+I.force * 2)) unload(0) - user.visible_message(" [user] knocks [load] off [src] with \the [I]!", " You knock [load] off [src] with \the [I]!") + user.visible_message("[user] knocks [load] off [src] with \the [I]!", "You knock [load] off [src] with \the [I]!") else user << "You hit [src] with \the [I] but to no effect!" else @@ -154,7 +155,7 @@ obj/machinery/bot/mulebot/bot_reset() if(prob(50) && !isnull(load)) unload(0) if(prob(25)) - visible_message(" Something shorts out inside [src]!") + visible_message("Something shorts out inside [src]!") wires.RandomCut() @@ -288,7 +289,8 @@ obj/machinery/bot/mulebot/bot_reset() if(open && !cell) var/obj/item/weapon/stock_parts/cell/C = usr.get_active_hand() if(istype(C)) - usr.drop_item() + if(!usr.drop_item()) + return cell = C C.loc = src C.add_fingerprint(usr) diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm index d45db2442fe..44de918ce78 100644 --- a/code/game/machinery/bots/secbot.dm +++ b/code/game/machinery/bots/secbot.dm @@ -156,7 +156,7 @@ Auto Patrol: []"}, if(open) user << "Please close the access panel before locking it." else - user << " Access denied." + user << "Access denied." else ..() if(istype(W, /obj/item/weapon/weldingtool) && user.a_intent != "harm") // Any intent but harm will heal, so we shouldn't get angry. @@ -173,7 +173,7 @@ Auto Patrol: []"}, if(emagged == 2) if(user) - user << " You short out [src]'s target assessment circuits." + user << "You short out [src]'s target assessment circuits." oldtarget_name = user.name audible_message("[src] buzzes oddly!") declare_arrests = 0 @@ -384,6 +384,22 @@ Auto Patrol: []"}, target = user mode = BOT_HUNT +/obj/machinery/bot/secbot/Crossed(atom/movable/AM) + if(ismob(AM) && target) + var/mob/living/carbon/C = AM + if(!istype(C) || !C || in_range(src, target)) + return + C.visible_message("[pick( \ + "[C] dives out of [src]'s way!", \ + "[C] stumbles over [src]!", \ + "[C] jumps out of [src]'s path!", \ + "[C] trips over [src] and falls!", \ + "[C] topples over [src]!", \ + "[C] leaps out of [src]'s way!")]") + C.Weaken(2) + return + ..() + //Secbot Construction /obj/item/clothing/head/helmet/attackby(var/obj/item/device/assembly/signaler/S, mob/user as mob, params) @@ -429,7 +445,8 @@ Auto Patrol: []"}, user << "You weld the hole in [src] shut!" else if(isprox(I) && (build_step == 1)) - user.drop_item() + if(!user.unEquip(I)) + return build_step++ user << "You add the prox sensor to [src]!" overlays += "hs_eye" @@ -437,7 +454,8 @@ Auto Patrol: []"}, qdel(I) else if(((istype(I, /obj/item/robot_parts/l_arm)) || (istype(I, /obj/item/robot_parts/r_arm))) && (build_step == 2)) - user.drop_item() + if(!user.unEquip(I)) + return build_step++ user << "You add the robot arm to [src]!" name = "helmet/signaler/prox sensor/robot arm assembly" @@ -445,7 +463,8 @@ Auto Patrol: []"}, qdel(I) else if((istype(I, /obj/item/weapon/melee/baton)) && (build_step >= 3)) - user.drop_item() + if(!user.unEquip(I)) + return build_step++ user << "You complete the Securitron! Beep boop." var/obj/machinery/bot/secbot/S = new /obj/machinery/bot/secbot diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index ae2204f9da3..c6748849914 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -73,6 +73,7 @@ var/thisemp = emped //Take note of which EMP this proc is for spawn(900) if(loc) //qdel limbo + triggerCameraAlarm() //camera alarm triggers even if multiple EMPs are in effect. if(emped == thisemp) //Only fix it if the camera hasn't been EMP'd again network = previous_network icon_state = initial(icon_state) @@ -80,7 +81,6 @@ if(can_use()) cameranet.addCamera(src) emped = 0 //Resets the consecutive EMP count - triggerCameraAlarm() spawn(100) cancelCameraAlarm() for(var/mob/O in mob_list) @@ -226,11 +226,13 @@ L.laser_act(src, user) else - if(W.force > 10) //fairly simplistic, but will do for now. + if(W.force >= 10) //fairly simplistic, but will do for now. user.changeNext_move(CLICK_CD_MELEE) visible_message("[user] hits [src] with [W]!", "You hit [src] with [W]!") health = max(0, health - W.force) + user.do_attack_animation(src) if(!health && status) + triggerCameraAlarm() deactivate(user, 1) return @@ -244,7 +246,6 @@ else visible_message("\The [src] deactivates!") icon_state = "[initial(icon_state)]1" - else if(user) visible_message("[user] reactivates [src]!") @@ -256,6 +257,7 @@ spawn(100) cancelCameraAlarm() playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1) + cameranet.updateChunk(x, y, z) // now disconnect anyone using the camera //Apparently, this will disconnect anyone even if the camera was re-activated. @@ -271,7 +273,6 @@ for(var/mob/living/silicon/S in mob_list) S.triggerAlarm("Camera", get_area(src), list(src), src) - /obj/machinery/camera/proc/cancelCameraAlarm() alarm_on = 0 for(var/mob/living/silicon/S in mob_list) @@ -345,6 +346,12 @@ busy = 0 return 0 +/obj/machinery/camera/bullet_act(var/obj/item/projectile/proj) + if(proj.damage_type == BRUTE) + health = max(0, health - proj.damage) + if(!health && status) + triggerCameraAlarm() + deactivate(null, 1) /obj/machinery/camera/portable //Cameras which are placed inside of things, such as helmets. var/turf/prev_turf diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm index e5544d1d410..3710f3877a5 100644 --- a/code/game/machinery/camera/camera_assembly.dm +++ b/code/game/machinery/camera/camera_assembly.dm @@ -121,9 +121,10 @@ // Upgrades! if(is_type_in_list(W, possible_upgrades) && !is_type_in_list(W, upgrades)) // Is a possible upgrade and isn't in the camera already. + if(!user.unEquip(W)) + return user << "You attach \the [W] into the assembly inner circuits." upgrades += W - user.drop_item() W.loc = src return diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm index 759082e598b..0dfc5d045d0 100644 --- a/code/game/machinery/camera/tracking.dm +++ b/code/game/machinery/camera/tracking.dm @@ -105,19 +105,22 @@ var/cameraticks = 0 spawn(0) - while (U.cameraFollow == target) - if (U.cameraFollow == null) + while(U.cameraFollow == target) + if(U.cameraFollow == null) return - if (!target.can_track(usr)) + if(!target.can_track(usr)) U.tracking = 1 - U << "Target is not near any active cameras." + if(!cameraticks) + U << "Target is not near any active cameras. Attempting to reacquire..." cameraticks++ if(cameraticks > 9) U.cameraFollow = null + U << "Unable to reacquire, cancelling track..." tracking = 0 return else + sleep(10) continue else diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm index e1b05f5c6c8..13ed9276e25 100644 --- a/code/game/machinery/cell_charger.dm +++ b/code/game/machinery/cell_charger.dm @@ -47,8 +47,9 @@ if(a.power_equip == 0) // There's no APC in this area, don't try to cheat power! user << "The [name] blinks red as you try to insert the cell!" return + if(!user.drop_item()) + return - user.drop_item() W.loc = src charging = W user.visible_message("[user] inserts a cell into the charger.", "You insert a cell into the charger.") diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 00a8bde3ac0..adb2c039ce8 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -124,7 +124,7 @@ //Clonepod //Start growing a human clone in the pod! -/obj/machinery/clonepod/proc/growclone(var/ckey, var/clonename, var/ui, var/se, var/mindref, var/datum/species/mrace, var/mcolor, var/factions) +/obj/machinery/clonepod/proc/growclone(var/ckey, var/clonename, var/ui, var/se, var/mindref, var/datum/species/mrace, var/list/features, var/factions) if(panel_open) return 0 if(mess || attempting) @@ -185,7 +185,7 @@ H.ckey = ckey H << "Consciousness slowly creeps over you as your body regenerates.
    So this is what cloning feels like?
    " - hardset_dna(H, ui, se, null, null, mrace, mcolor) + hardset_dna(H, ui, se, null, null, mrace, features) H.faction |= factions H.set_cloned_appearance() diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm index bc10565b0b4..eeddc434e5d 100644 --- a/code/game/machinery/computer/HolodeckControl.dm +++ b/code/game/machinery/computer/HolodeckControl.dm @@ -1,7 +1,8 @@ /obj/machinery/computer/HolodeckControl name = "holodeck control console" desc = "A computer used to control a nearby holodeck." - icon_state = "holocontrol" + icon_screen = "holocontrol" + icon_keyboard = "tech_key" var/area/linkedholodeck = null var/area/target = null var/active = 0 @@ -308,11 +309,11 @@ if (istype(W, /obj/item/weapon/grab) && get_dist(src,user)<2) var/obj/item/weapon/grab/G = W if(G.state < GRAB_AGGRESSIVE) - user << " You need a better grip to do that!" + user << "You need a better grip to do that!" return G.affecting.loc = src.loc G.affecting.Weaken(5) - visible_message(" [G.assailant] puts [G.affecting] on the table.") + visible_message("[G.assailant] puts [G.affecting] on the table.") qdel(W) return @@ -435,7 +436,7 @@ return else if (istype(W, /obj/item) && get_dist(src,user)<2) user.drop_item(src) - visible_message(" [user] dunks [W] into \the [src]!", 3) + visible_message("[user] dunks [W] into \the [src]!", 3) return /obj/structure/holohoop/CanPass(atom/movable/mover, turf/target, height=0) @@ -445,9 +446,9 @@ return if(prob(50)) I.loc = src.loc - visible_message(" Swish! \the [I] lands in \the [src].", 3) + visible_message("Swish! \the [I] lands in \the [src].", 3) else - visible_message(" \the [I] bounces off of \the [src]'s rim!", 3) + visible_message("\the [I] bounces off of \the [src]'s rim!", 3) return 0 else return ..(mover, target, height) diff --git a/code/game/machinery/computer/Operating.dm b/code/game/machinery/computer/Operating.dm index 5e000ff76d6..e446fe82255 100644 --- a/code/game/machinery/computer/Operating.dm +++ b/code/game/machinery/computer/Operating.dm @@ -1,9 +1,8 @@ /obj/machinery/computer/operating name = "operating computer" desc = "Used to monitor the vitals of a patient during surgery." - icon_state = "operating" - density = 1 - anchored = 1.0 + icon_screen = "crew" + icon_keyboard = "med_key" circuit = /obj/item/weapon/circuitboard/operating var/mob/living/carbon/human/patient = null var/obj/structure/optable/table = null diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm index 35d84985fbf..35d4c641cef 100644 --- a/code/game/machinery/computer/aifixer.dm +++ b/code/game/machinery/computer/aifixer.dm @@ -1,17 +1,12 @@ /obj/machinery/computer/aifixer name = "\improper AI system integrity restorer" desc = "Used with intelliCards containing nonfunctioning AIs to restore them to working order." - icon = 'icons/obj/computer.dmi' - icon_state = "ai-fixer" req_access = list(access_captain, access_robotics, access_heads) var/mob/living/silicon/ai/occupier = null var/active = 0 circuit = /obj/item/weapon/circuitboard/aifixer - -/obj/machinery/computer/aifixer/New() - src.overlays += image('icons/obj/computer.dmi', "ai-fixer-empty") - ..() - + icon_keyboard = "tech_key" + icon_screen = "ai-fixer" /obj/machinery/computer/aifixer/attackby(I as obj, user as mob, params) if(occupier && istype(I, /obj/item/weapon/screwdriver)) @@ -101,7 +96,6 @@ return if (href_list["fix"]) src.active = 1 - src.overlays += image('icons/obj/computer.dmi', "ai-fixer-on") while (src.occupier.health < 100) src.occupier.adjustOxyLoss(-1) src.occupier.adjustFireLoss(-1) @@ -113,32 +107,28 @@ src.occupier.lying = 0 dead_mob_list -= src.occupier living_mob_list += src.occupier - src.overlays -= image('icons/obj/computer.dmi', "ai-fixer-404") - src.overlays += image('icons/obj/computer.dmi', "ai-fixer-full") src.updateUsrDialog() + update_icon() sleep(10) src.active = 0 - src.overlays -= image('icons/obj/computer.dmi', "ai-fixer-on") - - src.add_fingerprint(usr) src.updateUsrDialog() + update_icon() return /obj/machinery/computer/aifixer/update_icon() ..() - // Broken / Unpowered if((stat & BROKEN) || (stat & NOPOWER)) - overlays.Cut() - - // Working / Powered + return else + if(active) + overlays += "ai-fixer-on" if (occupier) switch (occupier.stat) if (0) - overlays += image('icons/obj/computer.dmi', "ai-fixer-full") + overlays += "ai-fixer-full" if (2) - overlays += image('icons/obj/computer.dmi', "ai-fixer-404") + overlays += "ai-fixer-404" else - overlays += image('icons/obj/computer.dmi', "ai-fixer-empty") + overlays += "ai-fixer-empty" diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 0f4909b7d80..d9a0b84f457 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -1,8 +1,9 @@ /obj/machinery/computer/arcade/ name = "random arcade" desc = "random arcade machine" - icon = 'icons/obj/computer.dmi' icon_state = "arcade" + icon_keyboard = null + icon_screen = "invaders" var/list/prizes = list( /obj/item/weapon/storage/box/snappops = 2, /obj/item/toy/AI = 2, /obj/item/clothing/under/syndicate/tacticool = 2, @@ -82,7 +83,6 @@ /obj/machinery/computer/arcade/battle name = "arcade machine" desc = "Does not support Pinball." - icon = 'icons/obj/computer.dmi' icon_state = "arcade" circuit = /obj/item/weapon/circuitboard/arcade/battle var/enemy_name = "Space Villian" @@ -298,7 +298,6 @@ /obj/machinery/computer/arcade/orion_trail name = "The Orion Trail" desc = "Learn how our ancestors got to Orion, and have fun in the process!" - icon = 'icons/obj/computer.dmi' icon_state = "arcade" circuit = /obj/item/weapon/circuitboard/arcade/orion_trail var/engine = 0 diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm index 672624b5316..345b46e272c 100644 --- a/code/game/machinery/computer/atmos_alert.dm +++ b/code/game/machinery/computer/atmos_alert.dm @@ -5,7 +5,8 @@ name = "atmospheric alert console" desc = "Used to access the station's atmospheric sensors." circuit = /obj/item/weapon/circuitboard/atmos_alert - icon_state = "alert:0" + icon_screen = "alert:0" + icon_keyboard = "atmos_key" var/list/priority_alarms = list() var/list/minor_alarms = list() var/receive_frequency = 1437 @@ -61,23 +62,11 @@ src.updateDialog() /obj/machinery/computer/atmos_alert/update_icon() - SetLuminosity(brightness_on) - if(stat & BROKEN) - icon_state = "alert:b" - return - else if (stat & NOPOWER) - icon_state = "alert:O" - SetLuminosity(0) - return - else if(priority_alarms.len) - icon_state = "alert:2" - + ..() + if(priority_alarms.len) + overlays += "alert:2" else if(minor_alarms.len) - icon_state = "alert:1" - - else - icon_state = "alert:0" - return + overlays += "alert:1" /obj/machinery/computer/atmos_alert/proc/return_text() diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index be509355564..76dca06f55e 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -83,6 +83,10 @@ /obj/item/weapon/circuitboard/card/centcom name = "circuit board (Centcom ID Console)" build_path = /obj/machinery/computer/card/centcom +/obj/item/weapon/circuitboard/card/minor + name = "circuit board (Department Management Console)" + build_path = /obj/machinery/computer/card/minor + var/target_dept = 1 //obj/item/weapon/circuitboard/shield // name = "Circuit board (Shield Control)" // build_path = /obj/machinery/computer/stationshield @@ -244,6 +248,13 @@ build_path = /obj/machinery/computer/libraryconsole origin_tech = "programming=1" +/obj/item/weapon/circuitboard/card/minor/attackby(obj/item/I as obj, mob/user as mob, params) + if(istype(I,/obj/item/device/multitool)) + var/list/dept_list = list("general","security","medical","science","engineering") + var/choice = input("Currently set to [dept_list[target_dept]] personnel database. Changing to:","Multitool-Circuitboard interface") as null|anything in dept_list + if(choice) + target_dept = dept_list.Find(choice) + return /obj/item/weapon/circuitboard/supplycomp/attackby(obj/item/I as obj, mob/user as mob, params) if(istype(I,/obj/item/device/multitool)) @@ -336,11 +347,12 @@ if(istype(P, /obj/item/weapon/circuitboard) && !circuit) var/obj/item/weapon/circuitboard/B = P if(B.board_type == "computer") + if(!user.drop_item()) + return playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) user << "You place the circuit board inside the frame." icon_state = "1" circuit = P - user.drop_item() circuit.add_fingerprint(user) P.loc = null else diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 4165bc0003a..10f396874eb 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -1,7 +1,8 @@ /obj/machinery/computer/security name = "security camera console" desc = "Used to access the various cameras on the station." - icon_state = "cameras" + icon_screen = "cameras" + icon_keyboard = "security_key" circuit = /obj/item/weapon/circuitboard/security var/obj/machinery/camera/current = null var/last_pic = 1.0 @@ -94,7 +95,6 @@ /obj/machinery/computer/security/telescreen/update_icon() icon_state = initial(icon_state) - SetLuminosity(brightness_on) if(stat & BROKEN) icon_state += "b" return @@ -108,16 +108,18 @@ density = 0 circuit = null - /obj/machinery/computer/security/wooden_tv name = "security camera monitor" desc = "An old TV hooked into the stations camera network." - icon_state = "security_det" + icon_state = "television" + icon_keyboard = null + icon_screen = "detective_tv" /obj/machinery/computer/security/mining name = "outpost camera console" desc = "Used to access the various cameras on the outpost." - icon_state = "miningcameras" + icon_screen = "mining" + icon_keyboard = "mining_key" network = list("MINE") circuit = "/obj/item/weapon/circuitboard/mining" diff --git a/code/game/machinery/computer/camera_advanced.dm b/code/game/machinery/computer/camera_advanced.dm index 169100a2ab8..d4f48946de1 100644 --- a/code/game/machinery/computer/camera_advanced.dm +++ b/code/game/machinery/computer/camera_advanced.dm @@ -1,8 +1,8 @@ /obj/machinery/computer/camera_advanced name = "advanced camera console" desc = "Used to access the various cameras on the station." - icon_state = "cameras" - //circuit = /obj/item/weapon/circuitboard/security + icon_screen = "cameras" + icon_keyboard = "security_key" var/mob/camera/aiEye/remote/eyeobj var/mob/living/carbon/human/current_user = null var/list/networks = list("SS13") diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index 180f3dc2fd5..4fc88ee1d18 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -6,8 +6,9 @@ var/time_last_changed_position = 0 /obj/machinery/computer/card name = "identification console" - desc = "You can use this to change ID's." - icon_state = "id" + desc = "You can use this to manage jobs and ID access." + icon_screen = "id" + icon_keyboard = "id_key" req_one_access = list(access_heads, access_change_ids) circuit = /obj/item/weapon/circuitboard/card var/obj/item/weapon/card/id/scan = null @@ -17,6 +18,7 @@ var/time_last_changed_position = 0 var/printing = null var/list/region_access = null var/list/head_subordinates = null + var/target_dept = 0 //Which department this computer has access to. 0=all departments //Cooldown for closing positions in seconds //if set to -1: No cooldown... probably a bad idea @@ -47,16 +49,19 @@ var/time_last_changed_position = 0 var/obj/item/weapon/card/id/idcard = O if(check_access(idcard)) if(!scan) - usr.drop_item() + if(!usr.drop_item()) + return idcard.loc = src scan = idcard else if(!modify) - usr.drop_item() + if(!usr.drop_item()) + return idcard.loc = src modify = idcard else if(!modify) - usr.drop_item() + if(!usr.drop_item()) + return idcard.loc = src modify = idcard else @@ -117,7 +122,7 @@ var/time_last_changed_position = 0 dat += "" dat += "" var/ID - if(scan && (access_change_ids in scan.access)) + if(scan && (access_change_ids in scan.access) && !target_dept) ID = 1 else ID = 0 @@ -279,14 +284,15 @@ var/time_last_changed_position = 0 else body = "{Log in}

    " body += "Access Crew Manifest" - body += "

    Job Management" + if(!target_dept) + body += "

    Job Management" dat = "[header][body]

    " //user << browse(dat, "window=id_com;size=900x520") //onclose(user, "id_com") - var/datum/browser/popup = new(user, "id_com", "Identification Card Modifier Console", 900, 620) + var/datum/browser/popup = new(user, "id_com", src.name, 900, 620) popup.set_content(dat) popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) popup.open() @@ -310,7 +316,8 @@ var/time_last_changed_position = 0 else var/obj/item/I = usr.get_active_hand() if (istype(I, /obj/item/weapon/card/id)) - usr.drop_item() + if(!usr.drop_item()) + return I.loc = src modify = I authenticated = 0 @@ -323,34 +330,41 @@ var/time_last_changed_position = 0 else var/obj/item/I = usr.get_active_hand() if (istype(I, /obj/item/weapon/card/id)) - usr.drop_item() + if(!usr.drop_item()) + return I.loc = src scan = I authenticated = 0 if ("auth") if ((!( authenticated ) && (scan || (istype(usr, /mob/living/silicon))) && (modify || mode))) if (check_access(scan)) + region_access = list() + head_subordinates = list() if(access_change_ids in scan.access) - authenticated = 2 + if(target_dept) + head_subordinates = get_all_jobs() + region_access |= target_dept + authenticated = 1 + else + authenticated = 2 + else - region_access = list() - head_subordinates = list() - if(access_hop in scan.access) - region_access += 1 - region_access += 6 + if((access_hop in scan.access) && ((target_dept==1) || !target_dept)) + region_access |= 1 + region_access |= 6 get_subordinates("Head of Personnel") - if(access_rd in scan.access) - region_access += 4 - get_subordinates("Research Director") - if(access_ce in scan.access) - region_access += 5 - get_subordinates("Chief Engineer") - if(access_cmo in scan.access) - region_access += 3 - get_subordinates("Chief Medical Officer") - if(access_hos in scan.access) - region_access += 2 + if((access_hos in scan.access) && ((target_dept==2) || !target_dept)) + region_access |= 2 get_subordinates("Head of Security") + if((access_cmo in scan.access) && ((target_dept==3) || !target_dept)) + region_access |= 3 + get_subordinates("Chief Medical Officer") + if((access_rd in scan.access) && ((target_dept==4) || !target_dept)) + region_access |= 4 + get_subordinates("Research Director") + if((access_ce in scan.access) && ((target_dept==5) || !target_dept)) + region_access |= 5 + get_subordinates("Chief Engineer") if(region_access) authenticated = 1 else if ((!( authenticated ) && (istype(usr, /mob/living/silicon))) && (!modify)) @@ -418,7 +432,7 @@ var/time_last_changed_position = 0 if("make_job_available") // MAKE ANOTHER JOB POSITION AVAILABLE FOR LATE JOINERS - if(scan && (access_change_ids in scan.access)) + if(scan && (access_change_ids in scan.access) && !target_dept) var/edit_job_target = href_list["job"] var/datum/job/j = SSjob.GetJob(edit_job_target) if(!j) @@ -432,7 +446,7 @@ var/time_last_changed_position = 0 if("make_job_unavailable") // MAKE JOB POSITION UNAVAILABLE FOR LATE JOINERS - if(scan && (access_change_ids in scan.access)) + if(scan && (access_change_ids in scan.access) && !target_dept) var/edit_job_target = href_list["job"] var/datum/job/j = SSjob.GetJob(edit_job_target) if(!j) @@ -471,3 +485,30 @@ var/time_last_changed_position = 0 circuit = /obj/item/weapon/circuitboard/card/centcom req_access = list(access_cent_captain) +/obj/machinery/computer/card/minor + name = "department management console" + desc = "You can use this to change ID's for specific departments." + icon_screen = "idminor" + circuit = /obj/item/weapon/circuitboard/card/minor + +/obj/machinery/computer/card/minor/New() + ..() + var/obj/item/weapon/circuitboard/card/minor/typed_circuit = circuit + if(target_dept) + typed_circuit.target_dept = target_dept + else + target_dept = typed_circuit.target_dept + var/list/dept_list = list("general","security","medical","science","engineering") + name = "[dept_list[target_dept]] department console" + +/obj/machinery/computer/card/minor/hos + target_dept = 2 + +/obj/machinery/computer/card/minor/cmo + target_dept = 3 + +/obj/machinery/computer/card/minor/rd + target_dept = 4 + +/obj/machinery/computer/card/minor/ce + target_dept = 5 diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 38489cb1497..e2078720d8c 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -2,8 +2,8 @@ /obj/machinery/computer/cloning name = "cloning console" desc = "Used to clone people and manage DNA." - icon = 'icons/obj/computer.dmi' - icon_state = "dna" + icon_screen = "dna" + icon_keyboard = "med_key" circuit = /obj/item/weapon/circuitboard/cloning req_access = list(access_heads) //Only used for record deletion right now. var/obj/machinery/dna_scannernew/scanner = null //Linked scanner. For scanning. @@ -35,7 +35,7 @@ if(!(pod1.occupant || pod1.mess) && (pod1.efficiency > 5)) for(var/datum/data/record/R in records) if(!(pod1.occupant || pod1.mess)) - if(pod1.growclone(R.fields["ckey"], R.fields["name"], R.fields["UI"], R.fields["SE"], R.fields["mind"], R.fields["mrace"], R.fields["mcolor"], R.fields["factions"])) + if(pod1.growclone(R.fields["ckey"], R.fields["name"], R.fields["UI"], R.fields["SE"], R.fields["mind"], R.fields["mrace"], R.fields["features"], R.fields["factions"])) records -= R /obj/machinery/computer/cloning/proc/updatemodules() @@ -76,7 +76,8 @@ /obj/machinery/computer/cloning/attackby(obj/item/W as obj, mob/user as mob, params) if (istype(W, /obj/item/weapon/disk/data)) //INSERT SOME DISKETTES if (!src.diskette) - user.drop_item() + if(!user.drop_item()) + return ..() W.loc = src src.diskette = W user << "You insert [W]." @@ -329,7 +330,7 @@ temp = "Clonepod malfunction." else if(!config.revival_cloning) temp = "Unable to initiate cloning cycle." - else if(pod1.growclone(C.fields["ckey"], C.fields["name"], C.fields["UI"], C.fields["SE"], C.fields["mind"], C.fields["mrace"], C.fields["mcolor"], C.fields["factions"])) + else if(pod1.growclone(C.fields["ckey"], C.fields["name"], C.fields["UI"], C.fields["SE"], C.fields["mind"], C.fields["mrace"], C.fields["features"], C.fields["factions"])) temp = "[C.fields["name"]] => Cloning cycle in progress..." records.Remove(C) if(active_record == C) @@ -380,7 +381,7 @@ R.fields["UI"] = subject.dna.uni_identity R.fields["SE"] = subject.dna.struc_enzymes R.fields["blood_type"] = subject.dna.blood_type - R.fields["mcolor"] = subject.dna.mutant_color + R.fields["features"] = subject.dna.features R.fields["factions"] = subject.faction //Add an implant if needed var/obj/item/weapon/implant/health/imp = locate(/obj/item/weapon/implant/health, subject) @@ -396,17 +397,4 @@ R.fields["mind"] = "\ref[subject.mind]" src.records += R - scantemp = "Subject successfully scanned." - -/obj/machinery/computer/cloning/update_icon() - SetLuminosity(brightness_on) - if(stat & BROKEN) - icon_state = "commb" - else - if(stat & NOPOWER) - src.icon_state = "c_unpowered" - stat |= NOPOWER - SetLuminosity(0) - else - icon_state = initial(icon_state) - stat &= ~NOPOWER \ No newline at end of file + scantemp = "Subject successfully scanned." \ No newline at end of file diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index c335d4ad6f6..21dfa6b0585 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -6,7 +6,8 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 /obj/machinery/computer/communications name = "communications console" desc = "This can be used for various important functions. Still under developement." - icon_state = "comm" + icon_screen = "comm" + icon_keyboard = "tech_key" req_access = list(access_heads) circuit = /obj/item/weapon/circuitboard/communications var/authenticated = 0 @@ -49,7 +50,7 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 /obj/machinery/computer/communications/Topic(href, href_list) if(..()) return - if (src.z > ZLEVEL_STATION) + if (src.z > ZLEVEL_CENTCOM) //Can only use on centcom and SS13 usr << "Unable to establish a connection: \black You're too far away from the station!" return usr.set_machine(src) diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm index 18f8925050f..5d0798690f8 100644 --- a/code/game/machinery/computer/computer.dm +++ b/code/game/machinery/computer/computer.dm @@ -1,6 +1,7 @@ /obj/machinery/computer name = "computer" icon = 'icons/obj/computer.dmi' + icon_state = "computer" density = 1 anchored = 1.0 use_power = 1 @@ -9,6 +10,8 @@ var/obj/item/weapon/circuitboard/circuit = null //if circuit==null, computer can't disassembly var/processing = 0 var/brightness_on = 2 + var/icon_keyboard = "generic_key" + var/icon_screen = "generic" /obj/machinery/computer/New(location, obj/item/weapon/circuitboard/C) ..(location) @@ -18,6 +21,7 @@ if(circuit) circuit = new circuit(null) power_change() + update_icon() /obj/machinery/computer/initialize() power_change() @@ -68,23 +72,22 @@ density = 0 /obj/machinery/computer/update_icon() - ..() - icon_state = initial(icon_state) - SetLuminosity(brightness_on) - // Broken + overlays.Cut() + if(stat & NOPOWER) + overlays += "[icon_keyboard]_off" + return + overlays += icon_keyboard if(stat & BROKEN) - icon_state += "b" - - // Unpowered - else if(stat & NOPOWER) - icon_state = initial(icon_state) - icon_state += "0" - SetLuminosity(0) - - + overlays += "[icon_state]_broken" + else + overlays += icon_screen /obj/machinery/computer/power_change() ..() + if(stat & NOPOWER) + SetLuminosity(0) + else + SetLuminosity(brightness_on) update_icon() return @@ -97,7 +100,7 @@ /obj/machinery/computer/attackby(I as obj, user as mob, params) if(istype(I, /obj/item/weapon/screwdriver) && circuit) playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) - user << " You start to disconnect the monitor..." + user << "You start to disconnect the monitor..." if(do_after(user, 20)) var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) A.circuit = circuit @@ -106,12 +109,12 @@ for (var/obj/C in src) C.loc = src.loc if (src.stat & BROKEN) - user << " The broken glass falls out." + user << "The broken glass falls out." new /obj/item/weapon/shard( src.loc ) A.state = 3 A.icon_state = "3" else - user << " You disconnect the monitor." + user << "You disconnect the monitor." A.state = 4 A.icon_state = "4" qdel(src) diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index 1f5862fc01c..32b7eab5df5 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -1,7 +1,8 @@ /obj/machinery/computer/crew name = "crew monitoring console" desc = "Used to monitor active health sensors built into most of the crew's uniforms." - icon_state = "crew" + icon_screen = "crew" + icon_keyboard = "med_key" use_power = 1 idle_power_usage = 250 active_power_usage = 500 diff --git a/code/game/machinery/computer/law.dm b/code/game/machinery/computer/law.dm index 0ab00973dd5..875cb4403ae 100644 --- a/code/game/machinery/computer/law.dm +++ b/code/game/machinery/computer/law.dm @@ -2,7 +2,7 @@ /obj/machinery/computer/upload var/mob/living/silicon/current = null //The target of future law uploads - icon_state = null //To make sure mappers understand THIS ISN'T A VALID TYPE + icon_screen = "command" /obj/machinery/computer/upload/attackby(obj/item/O as obj, mob/user as mob, params) if(istype(O, /obj/item/weapon/aiModule)) @@ -33,7 +33,6 @@ /obj/machinery/computer/upload/ai name = "\improper AI upload console" desc = "Used to upload laws to the AI." - icon_state = "command" circuit = /obj/item/weapon/circuitboard/aiupload /obj/machinery/computer/upload/ai/attack_hand(var/mob/user as mob) @@ -58,7 +57,6 @@ /obj/machinery/computer/upload/borg name = "cyborg upload console" desc = "Used to upload laws to Cyborgs." - icon_state = "command" circuit = /obj/item/weapon/circuitboard/borgupload /obj/machinery/computer/upload/borg/attack_hand(var/mob/user as mob) diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 8a52e787827..4c27c1b1552 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -3,7 +3,8 @@ /obj/machinery/computer/med_data//TODO:SANITY name = "medical records console" desc = "This can be used to check medical records." - icon_state = "medcomp" + icon_screen = "medcomp" + icon_keyboard = "med_key" req_one_access = list(access_medical, access_forensics_lockers) circuit = /obj/item/weapon/circuitboard/med_data var/obj/item/weapon/card/id/scan = null @@ -19,9 +20,10 @@ var/sortBy = "name" var/order = 1 // -1 = Descending - 1 = Ascending -/obj/machinery/computer/med_data/attackby(obj/item/O as obj, user as mob, params) +/obj/machinery/computer/med_data/attackby(obj/item/O as obj, mob/user as mob, params) if(istype(O, /obj/item/weapon/card/id) && !scan) - usr.drop_item() + if(!user.drop_item()) + return O.loc = src scan = O user << "You insert [O]." @@ -214,7 +216,8 @@ else var/obj/item/I = usr.get_active_hand() if(istype(I, /obj/item/weapon/card/id)) - usr.drop_item() + if(!usr.drop_item()) + return I.loc = src src.scan = I else if(href_list["logout"]) @@ -508,7 +511,7 @@ else //Foreach continue //goto(3229) if(!( src.active2 )) - src.temp = text("Could not locate record [].", t1) + src.temp = text("Could not locate record [].", sanitize(t1)) else for(var/datum/data/record/E in data_core.general) if((E.fields["name"] == src.active2.fields["name"] || E.fields["id"] == src.active2.fields["id"])) @@ -590,4 +593,6 @@ /obj/machinery/computer/med_data/laptop name = "medical laptop" desc = "A cheap Nanotrasen medical laptop, it functions as a medical records computer. It's bolted to the table." - icon_state = "medlaptop" + icon_state = "laptop" + icon_screen = "medlaptop" + icon_keyboard = "laptop_key" diff --git a/code/game/machinery/computer/message.dm b/code/game/machinery/computer/message.dm index 19b4fdd5169..7d31061f0ba 100644 --- a/code/game/machinery/computer/message.dm +++ b/code/game/machinery/computer/message.dm @@ -7,9 +7,7 @@ /obj/machinery/computer/message_monitor name = "message monitor console" desc = "Used to Monitor the crew's messages, that are sent via PDA. Can also be used to view Request Console messages." - icon_state = "comm_logs" - var/hack_icon = "comm_logsc" - var/normal_icon = "comm_logs" + icon_screen = "comm_logs" circuit = /obj/item/weapon/circuitboard/message_monitor //Server linked to. var/obj/machinery/message_server/linkedServer = null @@ -42,7 +40,6 @@ /obj/machinery/computer/message_monitor/emag_act(user as mob) if(!emagged) if(!isnull(src.linkedServer)) - icon_state = hack_icon // An error screen I made in the computers.dmi emagged = 1 screen = 2 spark_system.set_up(5, 0, src) @@ -56,15 +53,6 @@ else user << "A no server error appears on the screen." -/obj/machinery/computer/message_monitor/update_icon() - ..() - if(stat & (NOPOWER|BROKEN)) - return - if(emagged || hacking) - icon_state = hack_icon - else - icon_state = normal_icon - /obj/machinery/computer/message_monitor/initialize() //Is the server isn't linked to a server, and there's a server available, default it to the first one in the list. if(!linkedServer) @@ -140,7 +128,7 @@ break // Del - Sender - Recepient - Message // X - Al Green - Your Mom - WHAT UP!? - dat += "" + dat += "" dat += "
    JobSlotsOpen jobClose job
    X
    [pda.sender][pda.recipient][pda.message]
    X
    [pda.sender][pda.recipient][pda.message][pda.photo ? "(Photo)":""]
    " //Hacking screen. if(2) @@ -263,11 +251,9 @@ var/currentKey = src.linkedServer.decryptkey user << "Brute-force completed! The key is '[currentKey]'." src.hacking = 0 - src.icon_state = normal_icon src.screen = 0 // Return the screen back to normal /obj/machinery/computer/message_monitor/proc/UnmagConsole() - src.icon_state = normal_icon src.emagged = 0 /obj/machinery/computer/message_monitor/proc/ResetMessage() @@ -365,7 +351,6 @@ if(issilicon(usr) && is_special_character(usr)) src.hacking = 1 src.screen = 2 - src.icon_state = hack_icon //Time it takes to bruteforce is dependant on the password length. spawn(100*length(src.linkedServer.decryptkey)) if(src && src.linkedServer && usr) diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index 5b93f9e6d53..8d503badcea 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -1,7 +1,6 @@ /obj/machinery/computer/pod name = "mass driver launch control" desc = "A combined blastdoor and mass driver control unit." - icon_state = "computer_generic" var/obj/machinery/mass_driver/connected = null var/title = "Mass Driver Controls" var/id = 1 @@ -120,9 +119,11 @@ /obj/machinery/computer/pod/old - icon_state = "old" name = "\improper DoorMex control console" title = "Door Controls" + icon_state = "oldcomp" + icon_screen = "library" + icon_keyboard = null /obj/machinery/computer/pod/old/syndicate diff --git a/code/game/machinery/computer/power.dm b/code/game/machinery/computer/power.dm index 9671df6d94f..1911b1067b3 100644 --- a/code/game/machinery/computer/power.dm +++ b/code/game/machinery/computer/power.dm @@ -3,10 +3,8 @@ /obj/machinery/computer/monitor name = "power monitoring console" desc = "It monitors power levels across the station." - icon = 'icons/obj/computer.dmi' - icon_state = "power" - density = 1 - anchored = 1 + icon_screen = "power" + icon_keyboard = "power_key" use_power = 2 idle_power_usage = 20 active_power_usage = 80 diff --git a/code/game/machinery/computer/prisoner.dm b/code/game/machinery/computer/prisoner.dm index c021d2e158a..faba05e021f 100644 --- a/code/game/machinery/computer/prisoner.dm +++ b/code/game/machinery/computer/prisoner.dm @@ -1,8 +1,8 @@ /obj/machinery/computer/prisoner name = "prisoner management console" desc = "Used to manage tracking implants placed inside criminals." - icon = 'icons/obj/computer.dmi' - icon_state = "explosive" + icon_screen = "explosive" + icon_keyboard = "security_key" req_access = list(access_brig) circuit = "/obj/item/weapon/circuitboard/prisoner" var/id = 0.0 @@ -92,7 +92,8 @@ if(href_list["id"] =="insert" && !istype(inserted_id)) var/obj/item/weapon/card/id/prisoner/I = usr.get_active_hand() if(istype(I)) - usr.drop_item() + if(!usr.drop_item()) + return I.loc = src inserted_id = I else usr << "No valid ID." diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index 305e8d9ea58..e358e3b9107 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -4,8 +4,8 @@ /obj/machinery/computer/robotics name = "robotics control console" desc = "Used to remotely lockdown or detonate linked Cyborgs." - icon = 'icons/obj/computer.dmi' - icon_state = "robot" + icon_screen = "robot" + icon_keyboard = "rd_key" req_access = list(access_robotics) circuit = /obj/item/weapon/circuitboard/robotics var/temp = null @@ -92,7 +92,7 @@ R << "Extreme danger. Termination codes detected. Scrambling security codes and automatic AI unlink triggered." R.ResetSecurityCodes() else - message_admins("[key_name(usr, usr.client)](JMP) detonated [key_name(R, R.client)](JMP)!") + message_admins("[key_name_admin(usr)] (FLW) detonated [key_name(R, R.client)](JMP)!") log_game("\[key_name(usr)] detonated [key_name(R)]!") if(R.connected_ai) R.connected_ai << "

    ALERT - Cyborg detonation detected: [R.name]
    " @@ -106,7 +106,7 @@ if(can_control(usr, R)) var/choice = input("Are you certain you wish to [R.canmove ? "lock down" : "release"] [R.name]?") in list("Confirm", "Abort") if(choice == "Confirm" && can_control(usr, R) && !..()) - message_admins("[key_name(usr, usr.client)](JMP) [R.canmove ? "locked down" : "released"] [key_name(R, R.client)](JMP)!") + message_admins("[key_name_admin(usr)] (FLW) [R.canmove ? "locked down" : "released"] [key_name(R, R.client)](FLW)!") log_game("[key_name(usr)] [R.canmove ? "locked down" : "released"] [key_name(R)]!") R.SetLockdown(!R.lockcharge) R << "[!R.lockcharge ? "Your lockdown has been lifted!" : "You have been locked down!"]" diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 3ac9f1abf03..4a0aad15867 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -3,7 +3,8 @@ /obj/machinery/computer/secure_data//TODO:SANITY name = "security records console" desc = "Used to view and edit personnel's security records" - icon_state = "security" + icon_screen = "security" + icon_keyboard = "security_key" req_one_access = list(access_security, access_forensics_lockers) circuit = /obj/item/weapon/circuitboard/secure_data var/obj/item/weapon/card/id/scan = null @@ -23,9 +24,10 @@ var/order = 1 // -1 = Descending - 1 = Ascending -/obj/machinery/computer/secure_data/attackby(obj/item/O as obj, user as mob, params) +/obj/machinery/computer/secure_data/attackby(obj/item/O as obj, mob/user as mob, params) if(istype(O, /obj/item/weapon/card/id) && !scan) - usr.drop_item() + if(!user.drop_item()) + return O.loc = src scan = O user << "You insert [O]." @@ -298,7 +300,8 @@ What a mess.*/ else var/obj/item/I = usr.get_active_hand() if(istype(I, /obj/item/weapon/card/id)) - usr.drop_item() + if(!usr.drop_item()) + return I.loc = src scan = I @@ -518,7 +521,7 @@ What a mess.*/ switch(href_list["field"]) if("name") if(istype(active1, /datum/data/record) || istype(active2, /datum/data/record)) - var/t1 = stripped_input(usr, "Please input name:", "Secure. records", active1.fields["name"], null) + var/t1 = copytext(sanitize(input("Please input name:", "Secure. records", active1.fields["name"], null) as text),1,MAX_MESSAGE_LEN) if(!canUseSecurityRecordsConsole(usr, t1, a1)) return if(istype(active1, /datum/data/record)) @@ -743,7 +746,3 @@ What a mess.*/ if(!record2 || record2 == active2) return 1 return 0 - -/obj/machinery/computer/secure_data/detective_computer - icon = 'icons/obj/computer.dmi' - icon_state = "messyfiles" diff --git a/code/game/machinery/computer/shuttle.dm b/code/game/machinery/computer/shuttle.dm index 87e1389167d..09f0ce71324 100644 --- a/code/game/machinery/computer/shuttle.dm +++ b/code/game/machinery/computer/shuttle.dm @@ -1,7 +1,8 @@ /obj/machinery/computer/emergency_shuttle name = "emergency shuttle console" desc = "For shuttle control." - icon_state = "shuttle" + icon_screen = "shuttle" + icon_keyboard = "tech_key" var/auth_need = 3.0 var/list/authorized = list() @@ -46,12 +47,12 @@ if(!authorized.Find(W:registered_name)) authorized += W:registered_name if(auth_need - authorized.len > 0) - message_admins("[key_name(user.client)](?) has authorized early shuttle launch in ([x],[y],[z] - JMP)",0,1) - log_game("[user.ckey]([user]) has authorized early shuttle launch in ([x],[y],[z])") + message_admins("[key_name_admin(user.client)](?) (FLW) has authorized early shuttle launch ",0,1) + log_game("[key_name(user)] has authorized early shuttle launch in ([x],[y],[z])") minor_announce("[auth_need - authorized.len] more authorization(s) needed until shuttle is launched early",null,1) else - message_admins("[key_name(user.client)](?) has launched the emergency shuttle in ([x],[y],[z] - JMP) [seconds] seconds before launch.",0,1) - log_game("[user.ckey]([user]) has launched the emergency shuttle in ([x],[y],[z]) [seconds] seconds before launch.") + message_admins("[key_name_admin(user.client)](?) (FLW) has launched the emergency shuttle [seconds] seconds before launch.",0,1) + log_game("[key_name(user)] has launched the emergency shuttle in ([x],[y],[z]) [seconds] seconds before launch.") minor_announce("The emergency shuttle will launch in 10 seconds",null,1) SSshuttle.emergency.setTimer(100) @@ -67,8 +68,8 @@ /obj/machinery/computer/emergency_shuttle/emag_act(mob/user as mob) if(!emagged && SSshuttle.emergency.mode == SHUTTLE_DOCKED) var/time = SSshuttle.emergency.timeLeft() - message_admins("[key_name(user.client)](?) has emagged the emergency shuttle in ([x],[y],[z] - JMP) [time] seconds before launch.",0,1) - log_game("[user.ckey]([user]) has emagged the emergency shuttle in ([x],[y],[z]) [time] seconds before launch.") + message_admins("[key_name_admin(user.client)](?) (FLW) has emagged the emergency shuttle [time] seconds before launch.",0,1) + log_game("[key_name(user)] has emagged the emergency shuttle in ([x],[y],[z]) [time] seconds before launch.") minor_announce("The emergency shuttle will launch in 10 seconds", "SYSTEM ERROR:",null,1) SSshuttle.emergency.setTimer(100) emagged = 1 @@ -128,8 +129,7 @@ /obj/machinery/computer/supplycomp name = "supply shuttle console" desc = "Used to order supplies." - icon = 'icons/obj/computer.dmi' - icon_state = "supply" + icon_screen = "supply" req_access = list(access_cargo) circuit = /obj/item/weapon/circuitboard/supplycomp verb_say = "flashes" @@ -150,8 +150,7 @@ /obj/machinery/computer/ordercomp name = "supply ordering console" desc = "Used to order supplies from cargo staff." - icon = 'icons/obj/computer.dmi' - icon_state = "request" + icon_screen = "request" circuit = /obj/item/weapon/circuitboard/ordercomp verb_say = "flashes" verb_ask = "flashes" diff --git a/code/game/machinery/computer/station_alert.dm b/code/game/machinery/computer/station_alert.dm index 113ab773c84..1d2b1e5c7ce 100644 --- a/code/game/machinery/computer/station_alert.dm +++ b/code/game/machinery/computer/station_alert.dm @@ -2,13 +2,11 @@ /obj/machinery/computer/station_alert name = "station alert console" desc = "Used to access the station's automated alert system." - icon_state = "alert:0" + icon_screen = "alert:0" + icon_keyboard = "atmos_key" circuit = /obj/item/weapon/circuitboard/stationalert var/alarms = list("Fire"=list(), "Atmosphere"=list(), "Power"=list()) - - - /obj/machinery/computer/station_alert/attack_hand(mob/user) if(..()) return @@ -99,20 +97,12 @@ return /obj/machinery/computer/station_alert/update_icon() - SetLuminosity(brightness_on) - if(stat & BROKEN) - icon_state = "alert:b" - return - else if (stat & NOPOWER) - icon_state = "alert:O" - SetLuminosity(0) - return + ..() var/active_alarms = 0 for (var/cat in src.alarms) var/list/L = src.alarms[cat] if(L.len) active_alarms = 1 if(active_alarms) - icon_state = "alert:2" + overlays += "alert:2" else - icon_state = "alert:0" - return \ No newline at end of file + overlays += "alert:0" \ No newline at end of file diff --git a/code/game/machinery/computer/syndicate_shuttle.dm b/code/game/machinery/computer/syndicate_shuttle.dm index d13bef052f8..8a0ee76c872 100644 --- a/code/game/machinery/computer/syndicate_shuttle.dm +++ b/code/game/machinery/computer/syndicate_shuttle.dm @@ -1,8 +1,8 @@ /obj/machinery/computer/shuttle/syndicate name = "syndicate shuttle terminal" - icon_state = "syndishuttle" + icon_screen = "syndishuttle" + icon_keyboard = "syndie_key" req_access = list(access_syndicate) - shuttleId = "syndicate" possible_destinations = "syndicate_away;syndicate_z5;syndicate_z3;syndicate_z4;syndicate_ne;syndicate_nw;syndicate_n;syndicate_se;syndicate_sw;syndicate_s" @@ -12,7 +12,8 @@ /obj/machinery/computer/shuttle/syndicate/whiteship name = "ship control terminal" - icon_state = "shuttle" + icon_screen = "shuttle" + icon_keyboard = "tech_key" shuttleId = "whiteship" req_access = list( ) possible_destinations = "whiteship_ss13;whiteship_home;whiteship_z4" \ No newline at end of file diff --git a/code/game/machinery/computer/telecrystalconsoles.dm b/code/game/machinery/computer/telecrystalconsoles.dm index 79032b6f001..29b07601e4f 100644 --- a/code/game/machinery/computer/telecrystalconsoles.dm +++ b/code/game/machinery/computer/telecrystalconsoles.dm @@ -7,13 +7,14 @@ var/list/possible_uplinker_IDs = list("Alfa","Bravo","Charlie","Delta","Echo","F name = "\improper Telecrystal assignment station" desc = "A device used to manage telecrystals during group operations. You shouldn't be looking at this particular one..." icon_state = "tcstation" + icon_keyboard = "tcstation_key" + icon_screen = "syndie" ///////////////////////////////////////////// /obj/machinery/computer/telecrystals/uplinker name = "\improper Telecrystal upload/receive station" desc = "A device used to manage telecrystals during group operations. To use, simply insert your uplink. With your uplink installed \ you can upload your telecrystals to the group's pool using the console, or be assigned additional telecrystals by your lieutenant." - icon_state = "tcstation" var/obj/item/uplinkholder = null var/obj/machinery/computer/telecrystals/boss/linkedboss = null @@ -38,7 +39,8 @@ var/list/possible_uplinker_IDs = list("Alfa","Bravo","Charlie","Delta","Echo","F if(O.hidden_uplink) var/obj/item/P = user.get_active_hand() - user.drop_item() + if(!user.drop_item()) + return uplinkholder = P P.loc = src P.add_fingerprint(user) @@ -50,7 +52,7 @@ var/list/possible_uplinker_IDs = list("Alfa","Bravo","Charlie","Delta","Echo","F /obj/machinery/computer/telecrystals/uplinker/update_icon() - overlays.Cut() + ..() if(uplinkholder) overlays += "[initial(icon_state)]-closed" @@ -126,7 +128,9 @@ var/list/possible_uplinker_IDs = list("Alfa","Bravo","Charlie","Delta","Echo","F desc = "A device used to manage telecrystals during group operations. To use, simply initialize the machine by scanning for nearby uplink stations. \ Once the consoles are linked up, you can assign any telecrystals amongst your operatives; be they donated by your agents or rationed to the squad \ based on the danger rating of the mission." - icon_state = "tcboss" + icon_state = "computer" + icon_screen = "tcboss" + icon_keyboard = "syndie_key" var/virgin = 1 var/scanrange = 10 var/storedcrystals = 0 diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 5530c7cc5a1..e0a7411e82b 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -108,10 +108,11 @@ return var/obj/item/weapon/circuitboard/B = P if(B.board_type == "machine") + if(!user.drop_item()) + return playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) user << "You add the circuit board to the frame." circuit = P - user.drop_item() P.loc = src icon_state = "box_2" state = 3 @@ -140,8 +141,8 @@ user << "You remove the circuit board." else user << "You remove the circuit board and other components." - for(var/obj/item/weapon/W in components) - W.loc = src.loc + for(var/atom/movable/A in components) + A.loc = src.loc desc = initial(desc) req_components = null components = null @@ -199,6 +200,8 @@ var/success for(var/I in req_components) if(istype(P, I) && (req_components[I] > 0)) + if(!user.drop_item()) + return success=1 if(istype(P, /obj/item/stack/cable_coil)) var/obj/item/stack/cable_coil/CP = P @@ -211,7 +214,6 @@ req_components[I]-- update_req_desc() break - user.drop_item() P.loc = src components += P req_components[I]-- diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index f84c488f930..26eb0c3cce5 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -237,9 +237,10 @@ if(beaker) user << "A beaker is already loaded into [src]!" return + if(!user.drop_item()) + return beaker = I - user.drop_item() I.loc = src user.visible_message("[user] places [I] in [src].", \ "You place [I] in [src].") diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index ae1a9fb771d..8a752cd6f76 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -45,6 +45,8 @@ var/obj/item/weapon/airlock_electronics/electronics = null var/hasShocked = 0 //Prevents multiple shocks from happening var/autoclose = 1 + var/obj/item/device/doorCharge/charge = null //If applied, causes an explosion upon opening the door + var/detonated = 0 explosion_block = 1 @@ -91,6 +93,7 @@ icon = 'icons/obj/doors/vault.dmi' opacity = 1 doortype = /obj/structure/door_assembly/door_assembly_vault + explosion_block = 2 /obj/machinery/door/airlock/glass_large name = "glass airlock" @@ -476,6 +479,11 @@ About the new airlock wires panel: flick("door_deny", src) return +/obj/machinery/door/airlock/examine(mob/user) + ..() + if(charge && !p_open && in_range(user, src)) + user << "The maintenance panel is bulging slightly." + /obj/machinery/door/airlock/attack_ai(mob/user as mob) if(!src.canAIControl()) if(src.canAIHack()) @@ -486,6 +494,9 @@ About the new airlock wires panel: if(emagged) user << "Unable to interface: Airlock is unresponsive." return + if(detonated) + user << "Unable to interface. Airlock control panel damaged." + return //Separate interface for the AI. user.set_machine(src) @@ -565,16 +576,16 @@ About the new airlock wires panel: if(src.isWireCut(AIRLOCK_WIRE_SAFETY)) t1 += text("Door force sensors not responding.
    \n") else if(src.safe) - t1 += text("Door safeties operating normally. Override?
    \n",src) + t1 += text("Door safeties operating normally. Override?
    \n",src) else - t1 += text("Danger. Door safeties disabled. Restore?
    \n",src) + t1 += text("Danger. Door safeties disabled. Restore?
    \n",src) if(src.isWireCut(AIRLOCK_WIRE_SPEED)) t1 += text("Door timing circuitry not responding.
    \n") else if(src.normalspeed) - t1 += text("Door timing circuitry operating normally. Override?
    \n",src) + t1 += text("Door timing circuitry operating normally. Override?
    \n",src) else - t1 += text("Warning. Door timing circuitry operating abnormally. Restore?
    \n",src) + t1 += text("Warning. Door timing circuitry operating abnormally. Restore?
    \n",src) @@ -923,6 +934,9 @@ About the new airlock wires panel: update_icon() return else if(istype(C, /obj/item/weapon/screwdriver)) + if(p_open && detonated) + user << "[src] has no maintenance panel!" + return src.p_open = !( src.p_open ) user << "You [p_open ? "open":"close"] the maintenance panel of the airlock." src.update_icon() @@ -941,6 +955,22 @@ About the new airlock wires panel: beingcrowbarred = 1 //derp, Agouri else beingcrowbarred = 0 + if(p_open && charge) + user << "You carefully start removing [charge] from [src]..." + playsound(get_turf(src), 'sound/items/Crowbar.ogg', 50, 1) + if(!do_after(user, 150)) + user << "You slip and [charge] detonates!" + charge.ex_act(1) + user.Weaken(3) + return + user.visible_message("[user] removes [charge] from [src].", \ + "You gently pry out [charge] from [src] and unhook its wires.") + charge.loc = get_turf(user) + if(prob(25)) + charge.ex_act(1) + return + charge = null + return if( beingcrowbarred && (density && welded && !operating && src.p_open && (!hasPower()) && !src.locked) ) playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) user.visible_message("[user] removes the electronics from the airlock assembly.", \ @@ -973,9 +1003,9 @@ About the new airlock wires panel: qdel(src) return else if(hasPower()) - user << " The airlock's motors resist your efforts to force it!" + user << "The airlock's motors resist your efforts to force it!" else if(locked) - user << " The airlock's bolts prevent it from being forced!" + user << "The airlock's bolts prevent it from being forced!" else if( !welded && !operating) if(density) if(beingcrowbarred == 0) //being fireaxe'd @@ -998,14 +1028,31 @@ About the new airlock wires panel: else if(istype(C, /obj/item/weapon/airlock_painter)) change_paintjob(C, user) + else if(istype(C, /obj/item/device/doorCharge) && p_open) + if(emagged) + return + if(charge && !detonated) + user << "There's already a charge hooked up to this door!" + return + if(detonated) + user << "The maintenance panel is destroyed!" + return + user << "You apply [C]. Next time someone opens the door, it will explode." + user.drop_item() + p_open = 0 + update_icon() + var/obj/item/device/doorCharge/newCharge = C //This is necessary, for some reason + newCharge.loc = src + charge = newCharge + return else ..() return /obj/machinery/door/airlock/plasma/attackby(C as obj, mob/user as mob, params) if(is_hot(C) > 300)//If the temperature of the object is over 300, then ignite - message_admins("Plasma wall ignited by [key_name(user, user.client)](?) in ([x],[y],[z] - JMP)") - log_game("Plasma wall ignited by [user.ckey]([user]) in ([x],[y],[z])") + message_admins("Plasma airlock ignited by [key_name_admin(user)](?) (FLW) in ([x],[y],[z] - JMP)") + log_game("Plasma wall ignited by [key_name(user)] in ([x],[y],[z])") ignite(is_hot(C)) return ..() @@ -1016,6 +1063,18 @@ About the new airlock wires panel: if(!forced) if( !hasPower() || isWireCut(AIRLOCK_WIRE_OPEN_DOOR) ) return 0 + if(charge && !detonated) + p_open = 1 + update_icon() + visible_message("[src]'s panel is blown off in a spray of deadly shrapnel!") + charge.ex_act(1) + detonated = 1 + charge = null + for(var/mob/living/carbon/human/H in orange(1,src)) + H.Paralyse(8) + H.adjust_fire_stacks(1) + H.IgniteMob() //Guaranteed knockout and ignition for nearby people + return if(forced < 2) if(emagged) return 0 diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index c679e37cd4c..2d851669879 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -187,7 +187,6 @@ /obj/machinery/door/window/hitby(AM as mob|obj) ..() - visible_message("\The [src] was hit by \the [AM].") var/tforce = 0 if(ismob(AM)) tforce = 40 diff --git a/code/game/machinery/droneDispenser.dm b/code/game/machinery/droneDispenser.dm new file mode 100644 index 00000000000..0860d7760ea --- /dev/null +++ b/code/game/machinery/droneDispenser.dm @@ -0,0 +1,105 @@ +/obj/machinery/droneDispenser + name = "drone shell dispenser" + desc = "A hefty machine that, when supplied with metal and glass, will periodically create a drone shell. Does not need to be manually operated." + icon = 'icons/obj/machines/droneDispenser.dmi' + icon_state = "on" + anchored = 1 + density = 1 + var/metal = 0 + var/glass = 0 + var/droneMadeRecently = 0 + var/outputDirection = SOUTH + +/obj/machinery/droneDispenser/New() + ..() + SSmachine.processing |= src + +/obj/machinery/droneDispenser/Destroy() + SSmachine.processing -= src + ..() + +/obj/machinery/droneDispenser/preloaded + metal = 5000 + glass = 5000 + +/obj/machinery/droneDispenser/syndrone //Please forgive me + name = "syndrone shell dispenser" + desc = "A suspicious machine that will create Syndicate exterminator drones when supplied with metal and glass. Disgusting." + metal = 25000 + glass = 25000 + +/obj/machinery/droneDispenser/examine(mob/user) + ..() + if(droneMadeRecently && !stat) + user << "The control screen indicates that is recharging." + user << "It has [metal] units of metal stored." + user << "It has [glass] units of glass stored." + +/obj/machinery/droneDispenser/power_change() + ..() + if(stat & BROKEN) + return + else + if(powered()) + stat &= ~NOPOWER + else + icon_state = "off" + stat |= NOPOWER + +/obj/machinery/droneDispenser/process() + ..() + if(stat & (NOPOWER|BROKEN) || !anchored) + return + if(droneMadeRecently || metal < 1000 || glass < 1000) + return + droneMadeRecently = 1 + var/turf/T = get_step(src,SOUTH) + visible_message("[src] whirs to life!") + playsound(src, 'sound/items/rped.ogg', 50, 1) + icon_state = "make" + spawn(30) + icon_state = "[initial(icon_state)]" + visible_message("[src] dispenses a drone shell.") + metal -= 1000 + glass -= 1000 + if(metal < 0) metal = 0 + if(glass < 0) glass = 0 + if(istype(src, /obj/machinery/droneDispenser/syndrone)) + new /obj/item/drone_shell/syndrone(T) + else + new /obj/item/drone_shell(T) + use_power(1000) + icon_state = "recharge" + spawn(1800) //3 minute cooldown between shells + icon_state = "[initial(icon_state)]" + droneMadeRecently = 0 + playsound(src, 'sound/machines/ping.ogg', 50, 1) + audible_message("[src] pings.") + +/obj/machinery/droneDispenser/attackby(obj/item/O, mob/living/user) + if(istype(O, /obj/item/stack)) + if(!O.m_amt && !O.g_amt) + return ..() + var/stack = 1 + var/obj/item/stack/sheets + sheets = O + stack = (input(user, "How many sheets do you want to add?.", "Drone Dispenser", "[stack]") as num) + if(stack <= 0) + return + if(!user.canUseTopic(src)) + return + stack = Clamp(stack, 0, sheets.max_amount) + sheets.use(stack) + if(!stack) + if(!user.unEquip(O)) + user << "[O] is stuck to your hand, you can't get it off!" + return + user.drop_item() + O.loc = src + metal += O.m_amt * stack + glass += O.g_amt * stack + user << "You insert [stack] sheet[stack > 1 ? "s" : ""] to [src]." + if((O && O.loc == src) || !stack) + qdel(O) + return + ..() diff --git a/code/game/machinery/embedded_controller/airlock_controller.dm b/code/game/machinery/embedded_controller/airlock_controller.dm index 6ef3d8e0dd6..85468c5a944 100644 --- a/code/game/machinery/embedded_controller/airlock_controller.dm +++ b/code/game/machinery/embedded_controller/airlock_controller.dm @@ -283,10 +283,10 @@
    Current Status:
    [current_status]
     
    -
    \> Chamber Pressure:
    [sensor_pressure] kPa
    -
    \> Control Pump:
    [pump_status]
    -
    \> Interior Door:
    [interior_status]
    -
    \> Exterior Door:
    [exterior_status]
    +
    \> Chamber Pressure:
    [sensor_pressure] kPa
    +
    \> Control Pump:
    [pump_status]
    +
    \> Interior Door:
    [interior_status]
    +
    \> Exterior Door:
    [exterior_status]
    [state_options]"} diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm index fdea6d8469f..1b6be79b004 100644 --- a/code/game/machinery/flasher.dm +++ b/code/game/machinery/flasher.dm @@ -50,8 +50,9 @@ else if (istype(W, /obj/item/device/flash/handheld)) if (!bulb) + if(!user.drop_item()) + return user.visible_message("[user] installs [W] into [src].", "You install [W] into [src].") - user.drop_item() W.loc = src bulb = W power_change() diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm index e5961c09fc9..0c600860d7c 100644 --- a/code/game/machinery/iv_drip.dm +++ b/code/game/machinery/iv_drip.dm @@ -77,8 +77,9 @@ if(!isnull(beaker)) user << "There is already a reagent container loaded!" return + if(!user.drop_item()) + return - user.drop_item() W.loc = src beaker = W user << "You attach \the [W] to \the [src]." diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index 1498fa14fe8..949f7b05dd3 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -324,7 +324,7 @@ Class Procs: . = !(state_open || panel_open || is_operational()) && istype(C) if(.) playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1) - visible_message("[usr] pry open \the [src].", "You pry open \the [src].") + visible_message("[usr] pry open \the [src].", "You pry open \the [src].") open_machine() return 1 @@ -383,7 +383,7 @@ Class Procs: if(W.works_from_distance) user << "Following parts detected in the machine:" for(var/var/obj/item/C in component_parts) - user << " [C.name]" + user << " [C.name]" for(var/obj/item/weapon/stock_parts/A in component_parts) for(var/D in CB.req_components) if(ispath(A.type, D)) @@ -404,7 +404,7 @@ Class Procs: else user << "Following parts detected in the machine:" for(var/var/obj/item/C in component_parts) - user << " [C.name]" + user << " [C.name]" if(shouldplaysound) W.play_rped_sound() return 1 diff --git a/code/game/machinery/navbeacon.dm b/code/game/machinery/navbeacon.dm index e23456392ae..fed05fe9ce7 100644 --- a/code/game/machinery/navbeacon.dm +++ b/code/game/machinery/navbeacon.dm @@ -141,7 +141,7 @@ Transponder Codes: