From b7efc2cef43dbb88607b0cafc4f8bc8b2d7db9e3 Mon Sep 17 00:00:00 2001 From: phil235 Date: Wed, 2 Nov 2016 04:16:21 +0100 Subject: [PATCH] Make energy guns able to use burst fire. (#21005) * Make energy guns able to use burst fire. * Changed obj/item/weapon/gun/projectile to /gun/ballistic and the name of the folder from "projectile" to "ballistic" to avoid confusion between actually projectiles and guns. Syringe gun, energy guns and magic guns can now use burst fire. * fixing merge conflict shit * fixing map conflicts * more map conflict fix * two tiny fixes. * tiny tweak * fixing merge conflicts. Moving the practice mini egun to the gun module. Renamed nuclear.dm to energy_gun.dm * map conflict fixes --- .../lavaland_surface_animal_hospital.dmm | 2 +- .../LavaRuins/lavaland_surface_greed.dmm | 2 +- .../lavaland_surface_prisoner_crash.dmm | 6 +- .../LavaRuins/lavaland_surface_xeno_nest.dmm | 2 +- _maps/RandomRuins/SpaceRuins/bigderelict1.dmm | 6 +- .../RandomRuins/SpaceRuins/caravanambush.dmm | 10 +- _maps/RandomRuins/SpaceRuins/deepstorage.dmm | 2 +- .../SpaceRuins/listeningstation.dmm | 2 +- _maps/RandomZLevels/Academy.dmm | 4 +- _maps/RandomZLevels/Cabin.dmm | 2 +- _maps/RandomZLevels/caves.dmm | 2 +- _maps/RandomZLevels/centcomAway.dmm | 2 +- _maps/RandomZLevels/challenge.dmm | 6 +- _maps/RandomZLevels/moonoutpost19.dmm | 4 +- _maps/RandomZLevels/research.dmm | 10 +- _maps/RandomZLevels/snowdin.dmm | 42 +- _maps/RandomZLevels/spacebattle.dmm | 48 +- _maps/RandomZLevels/wildwest.dmm | 18 +- _maps/map_files/BirdStation/BirdStation.dmm | 18 +- .../map_files/DreamStation/dreamstation04.dmm | 22 +- .../EfficiencyStation/EfficiencyStation.dmm | 24 +- _maps/map_files/MetaStation/MetaStation.dmm | 30 +- _maps/map_files/MiniStation/MiniStation.dmm | 2 +- _maps/map_files/PubbyStation/PubbyStation.dmm | 22 +- _maps/map_files/TgStation/tgstation.2.1.3.dmm | 30 +- _maps/map_files/generic/z2.dmm | 2596 ++++++++--------- _maps/map_files/generic/z5.dmm | 2 +- .../emergency_imfedupwiththisworld.dmm | 2 +- code/game/asteroid.dm | 2 +- code/game/gamemodes/gang/recaller.dm | 4 +- code/game/gamemodes/nuclear/nuclear.dm | 6 +- code/game/gamemodes/objective_items.dm | 4 +- code/game/machinery/computer/arcade.dm | 4 +- .../machinery/porta_turret/portable_turret.dm | 16 +- .../porta_turret/portable_turret_construct.dm | 8 +- code/game/machinery/recharger.dm | 5 +- code/game/machinery/vending.dm | 8 +- .../game/objects/effects/spawners/lootdrop.dm | 12 +- .../objects/items/weapons/storage/backpack.dm | 12 +- .../objects/items/weapons/storage/belt.dm | 4 +- .../items/weapons/storage/briefcase.dm | 2 +- .../items/weapons/storage/uplink_kits.dm | 8 +- .../crates_lockers/closets/secure/misc.dm | 4 +- .../crates_lockers/closets/secure/security.dm | 14 +- code/game/objects/structures/guncase.dm | 4 +- code/modules/awaymissions/capture_the_flag.dm | 20 +- .../awaymissions/mission_code/Academy.dm | 2 +- .../awaymissions/mission_code/snowdin.dm | 4 +- .../mission_code/stationCollision.dm | 8 +- code/modules/cargo/exports/weapons.dm | 8 +- code/modules/cargo/packs.dm | 42 +- code/modules/clothing/outfits/ert.dm | 12 +- code/modules/clothing/outfits/standard.dm | 12 +- code/modules/clothing/spacesuits/hardsuit.dm | 4 +- .../clothing/spacesuits/miscellaneous.dm | 2 +- code/modules/clothing/suits/armor.dm | 4 +- code/modules/clothing/suits/cloaks.dm | 2 +- code/modules/clothing/suits/jobs.dm | 2 +- code/modules/clothing/suits/miscellaneous.dm | 12 +- code/modules/crafting/recipes.dm | 4 +- code/modules/flufftext/Hallucination.dm | 2 +- code/modules/holodeck/items.dm | 5 - code/modules/hydroponics/grown/misc.dm | 2 +- code/modules/jobs/job_types/security.dm | 6 +- code/modules/mining/abandoned_crates.dm | 2 +- code/modules/mob/interactive.dm | 4 +- .../mob/living/silicon/robot/robot_modules.dm | 10 +- .../living/simple_animal/bot/construction.dm | 2 +- .../mob/living/simple_animal/bot/ed209bot.dm | 2 +- .../living/simple_animal/hostile/hostile.dm | 2 +- .../hostile/megafauna/colossus.dm | 2 +- .../mob/living/simple_animal/hostile/mimic.dm | 4 +- .../simple_animal/hostile/nanotrasen.dm | 4 +- .../living/simple_animal/hostile/russian.dm | 8 +- .../living/simple_animal/hostile/stickman.dm | 2 +- .../living/simple_animal/hostile/syndicate.dm | 2 +- code/modules/projectiles/ammunition.dm | 119 +- .../projectiles/ammunition/ammo_casings.dm | 105 - .../projectiles/ammunition/caseless.dm | 120 + .../modules/projectiles/ammunition/special.dm | 21 +- code/modules/projectiles/box_magazine.dm | 117 + .../ammo_boxes.dm} | 136 +- .../external_mag.dm} | 826 +++--- .../boxes_magazines/internal_mag.dm | 183 ++ code/modules/projectiles/firing.dm | 59 +- code/modules/projectiles/gun.dm | 81 +- .../guns/{projectile.dm => ballistic.dm} | 419 ++- .../{projectile => ballistic}/automatic.dm | 817 +++--- .../guns/{projectile => ballistic}/bow.dm | 16 +- .../laser_gatling.dm | 19 +- .../{projectile => ballistic}/launchers.dm | 30 +- .../guns/{projectile => ballistic}/pistol.dm | 152 +- .../{projectile => ballistic}/revolver.dm | 743 +++-- .../guns/{projectile => ballistic}/shotgun.dm | 425 +-- .../guns/{projectile => ballistic}/toy.dm | 46 +- code/modules/projectiles/guns/energy.dm | 48 +- .../guns/energy/{nuclear.dm => energy_gun.dm} | 256 +- .../guns/energy/kinetic_accelerator.dm | 5 +- code/modules/projectiles/guns/energy/laser.dm | 5 +- .../projectiles/guns/energy/special.dm | 8 +- code/modules/projectiles/guns/energy/stun.dm | 13 +- .../projectiles/guns/grenade_launcher.dm | 2 +- code/modules/projectiles/guns/magic.dm | 19 +- code/modules/projectiles/guns/mounted.dm | 4 +- code/modules/projectiles/guns/syringe_gun.dm | 32 +- code/modules/projectiles/projectile.dm | 53 +- .../modules/projectiles/projectile/bullets.dm | 5 - .../projectiles/projectile/reusable.dm | 27 +- .../reagents/reagent_containers/syringes.dm | 4 +- .../research/designs/weapon_designs.dm | 2 +- .../spells/spell_types/infinite_guns.dm | 2 +- .../spells/spell_types/rightandwrong.dm | 56 +- code/modules/surgery/organs/augments_arms.dm | 2 +- code/modules/uplink/uplink_item.dm | 22 +- icons/obj/chemical.dmi | Bin 37081 -> 35673 bytes icons/obj/projectiles.dmi | Bin 36201 -> 36185 bytes tgstation.dme | 27 +- 117 files changed, 4137 insertions(+), 4121 deletions(-) create mode 100644 code/modules/projectiles/ammunition/caseless.dm create mode 100644 code/modules/projectiles/box_magazine.dm rename code/modules/projectiles/{ammunition/boxes.dm => boxes_magazines/ammo_boxes.dm} (92%) rename code/modules/projectiles/{ammunition/magazines.dm => boxes_magazines/external_mag.dm} (63%) create mode 100644 code/modules/projectiles/boxes_magazines/internal_mag.dm rename code/modules/projectiles/guns/{projectile.dm => ballistic.dm} (80%) rename code/modules/projectiles/guns/{projectile => ballistic}/automatic.dm (71%) rename code/modules/projectiles/guns/{projectile => ballistic}/bow.dm (82%) rename code/modules/projectiles/guns/{projectile => ballistic}/laser_gatling.dm (83%) rename code/modules/projectiles/guns/{projectile => ballistic}/launchers.dm (63%) rename code/modules/projectiles/guns/{projectile => ballistic}/pistol.dm (74%) rename code/modules/projectiles/guns/{projectile => ballistic}/revolver.dm (77%) rename code/modules/projectiles/guns/{projectile => ballistic}/shotgun.dm (65%) rename code/modules/projectiles/guns/{projectile => ballistic}/toy.dm (62%) rename code/modules/projectiles/guns/energy/{nuclear.dm => energy_gun.dm} (75%) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm index b07e0c9d965..02610147294 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm @@ -312,7 +312,7 @@ /obj/effect/decal/cleanable/cobweb, /obj/item/ammo_casing/shotgun/dart, /obj/item/ammo_casing/shotgun/dart, -/obj/item/weapon/gun/projectile/revolver/doublebarrel{ +/obj/item/weapon/gun/ballistic/revolver/doublebarrel{ desc = "For putting critters out to pasture." }, /obj/item/ammo_casing/shotgun/buckshot, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm index 8a69cfab7e0..2c4442c4b65 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm @@ -15,7 +15,7 @@ /area/ruin/powered) "e" = ( /obj/structure/table/wood/poker, -/obj/item/weapon/gun/projectile/revolver/russian/soul, +/obj/item/weapon/gun/ballistic/revolver/russian/soul, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/lava/smooth; icon_state = "carpetsymbol" diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_prisoner_crash.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_prisoner_crash.dmm index 1900c39487b..d2594d4aeea 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_prisoner_crash.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_prisoner_crash.dmm @@ -76,7 +76,7 @@ }, /area/ruin/unpowered) "n" = ( -/obj/item/weapon/gun/projectile/automatic/pistol/m1911, +/obj/item/weapon/gun/ballistic/automatic/pistol/m1911, /turf/open/floor/mineral/plastitanium/brig{ baseturf = /turf/open/floor/plating/lava/smooth }, @@ -107,7 +107,7 @@ /area/ruin/unpowered) "s" = ( /obj/effect/mob_spawn/human/nanotrasensoldier, -/obj/item/weapon/gun/projectile/automatic/pistol/m1911, +/obj/item/weapon/gun/ballistic/automatic/pistol/m1911, /obj/effect/decal/cleanable/blood, /turf/open/floor/mineral/plastitanium/brig{ baseturf = /turf/open/floor/plating/lava/smooth @@ -135,7 +135,7 @@ /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "x" = ( -/obj/item/weapon/gun/projectile/automatic/pistol/m1911, +/obj/item/weapon/gun/ballistic/automatic/pistol/m1911, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "y" = ( diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm index 54d740040f1..82ca15d842b 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm @@ -206,7 +206,7 @@ item_state = "facehugger_impregnated"; stat = 2 }, -/obj/item/weapon/gun/projectile/automatic/pistol, +/obj/item/weapon/gun/ballistic/automatic/pistol, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/awaycontent/a5{ always_unpowered = 1; diff --git a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm index 53a6c411894..e8dc2fc4350 100644 --- a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm +++ b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm @@ -84,7 +84,7 @@ "bF" = (/obj/structure/alien/resin/wall{color = "#8EC127"; desc = "Thick material shaped into a wall. Eugh."; icon_state = "smooth"; name = "gelatinous wall"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) "bG" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTH)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 1},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) "bH" = (/obj/item/ammo_casing/c45{caliber = null; desc = "A .45 bullet casing. This one is spent."; icon_state = "s-casing"; name = "spent bullet casing"},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) -"bI" = (/obj/item/weapon/gun/projectile/automatic/pistol/m1911{spawnwithmagazine = 0},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"bI" = (/obj/item/weapon/gun/ballistic/automatic/pistol/m1911{spawnwithmagazine = 0},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) "bJ" = (/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) "bK" = (/obj/structure/table,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) "bL" = (/obj/structure/table,/turf/open/floor/mineral/titanium/blue,/area/ruin/derelictoutpost/dockedship) @@ -174,7 +174,7 @@ "dr" = (/obj/effect/decal/cleanable/blood/old{icon_state = "trails_1"; name = "dried blood trail"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/ruin/derelictoutpost) "ds" = (/turf/closed/mineral,/area/ruin/derelictoutpost) "dt" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/glowshroom/single,/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) -"du" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/item/weapon/gun/projectile/automatic/pistol/m1911{spawnwithmagazine = 0},/obj/item/ammo_box/magazine/m45,/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"du" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/item/weapon/gun/ballistic/automatic/pistol/m1911{spawnwithmagazine = 0},/obj/item/ammo_box/magazine/m45,/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) "dv" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 9},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) "dw" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) "dx" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) @@ -189,7 +189,7 @@ "dG" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (WEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 8},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) "dH" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (SOUTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 6},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) "dI" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/ruin/derelictoutpost) -"dJ" = (/obj/item/weapon/gun/projectile/automatic/pistol/m1911{spawnwithmagazine = 0},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"dJ" = (/obj/item/weapon/gun/ballistic/automatic/pistol/m1911{spawnwithmagazine = 0},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) "dK" = (/obj/item/ammo_casing/c45{caliber = null; desc = "A .45 bullet casing. This one is spent."; icon_state = "s-casing"; name = "spent bullet casing"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 5},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) "dL" = (/turf/closed/wall,/area/ruin/derelictoutpost/cargostorage) "dM" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 9},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/ruin/derelictoutpost) diff --git a/_maps/RandomRuins/SpaceRuins/caravanambush.dmm b/_maps/RandomRuins/SpaceRuins/caravanambush.dmm index 664806db2d7..4db800cedc5 100644 --- a/_maps/RandomRuins/SpaceRuins/caravanambush.dmm +++ b/_maps/RandomRuins/SpaceRuins/caravanambush.dmm @@ -57,9 +57,9 @@ "be" = (/turf/open/floor/plasteel/airless/shuttle/red,/area/ruin/unpowered/no_grav) "bf" = (/obj/item/stack/sheet/metal,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) "bg" = (/turf/open/floor/wood/airless,/area/ruin/unpowered/no_grav) -"bh" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/projectile/automatic/pistol/APS,/turf/open/floor/wood/airless,/area/ruin/unpowered/no_grav) +"bh" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/ballistic/automatic/pistol/APS,/turf/open/floor/wood/airless,/area/ruin/unpowered/no_grav) "bi" = (/mob/living/simple_animal/hostile/pirate/space{environment_smash = 0},/turf/open/floor/wood/airless,/area/ruin/unpowered/no_grav) -"bj" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/projectile/shotgun/automatic/dual_tube,/turf/open/floor/wood/airless,/area/ruin/unpowered/no_grav) +"bj" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/ballistic/shotgun/automatic/dual_tube,/turf/open/floor/wood/airless,/area/ruin/unpowered/no_grav) "bk" = (/obj/structure/girder,/turf/open/space,/area/space) "bl" = (/turf/closed/wall/mineral/titanium,/area/ruin/unpowered) "bm" = (/turf/open/floor/plating,/obj/machinery/door/poddoor{id = "caravantrade1"; name = "cargo blastdoor"},/turf/open/floor/plating/airless{icon_plating = "platingdmg2"; icon_state = "platingdmg2"},/area/ruin/unpowered) @@ -112,7 +112,7 @@ "ch" = (/turf/open/space,/obj/item/stack/rods,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg2"; icon_state = "platingdmg2"},/area/ruin/unpowered) "ci" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/area/ruin/unpowered) "cj" = (/turf/open/floor/plating/airless,/area/ruin/unpowered) -"ck" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/projectile/revolver/grenadelauncher/unrestricted,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"ck" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/ballistic/revolver/grenadelauncher/unrestricted,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) "cl" = (/mob/living/simple_animal/hostile/pirate/space{environment_smash = 0},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) "cm" = (/obj/structure/door_assembly/door_assembly_shuttle{density = 0; name = "broken airlock"},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) "cn" = (/obj/structure/table,/obj/item/device/gps{gpstag = "Distress Signal"},/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) @@ -128,9 +128,9 @@ "cx" = (/turf/open/space,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg2"; icon_state = "platingdmg2"},/area/ruin/unpowered) "cy" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/girder,/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/area/ruin/unpowered) "cz" = (/obj/item/stack/sheet/metal,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/area/ruin/unpowered) -"cA" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/projectile/shotgun/riot,/obj/item/weapon/gun/projectile/shotgun/riot,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cA" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/ballistic/shotgun/riot,/obj/item/weapon/gun/ballistic/shotgun/riot,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) "cB" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/syringe/syndicate,/obj/item/weapon/gun/syringe/rapidsyringe,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) -"cC" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/projectile/automatic/c20r/toy/unrestricted,/obj/item/weapon/gun/projectile/automatic/c20r/toy/unrestricted,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cC" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/ballistic/automatic/c20r/toy/unrestricted,/obj/item/weapon/gun/ballistic/automatic/c20r/toy/unrestricted,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) "cD" = (/mob/living/simple_animal/hostile/pirate/space/ranged{environment_smash = 0},/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) "cE" = (/obj/structure/table,/obj/item/weapon/clipboard,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) "cF" = (/obj/structure/shuttle/engine/propulsion/burst/right{tag = "icon-burst_r (EAST)"; icon_state = "burst_r"; dir = 4},/turf/open/floor/plating/airless,/area/ruin/unpowered) diff --git a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm index 20f6c5a649a..5f5b0aa8c4c 100644 --- a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm +++ b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm @@ -22,7 +22,7 @@ "av" = (/obj/structure/toilet{dir = 4},/turf/open/floor/plasteel/freezer,/area/ruin/deepstorage) "aw" = (/obj/structure/mirror{pixel_x = 30},/obj/structure/sink{dir = 4;icon_state = "sink";pixel_x = 11;pixel_y = 0},/turf/open/floor/plasteel/freezer,/area/ruin/deepstorage) "ax" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/drone,/obj/item/device/flashlight,/obj/item/device/flashlight,/turf/open/floor/plasteel,/area/ruin/deepstorage) -"ay" = (/obj/structure/table,/obj/item/weapon/gun/projectile/automatic/wt550{pixel_x = -3;pixel_y = 6},/obj/item/weapon/gun/projectile/automatic/wt550{pixel_x = 2;pixel_y = 0},/obj/structure/reagent_dispensers/peppertank{pixel_y = 30},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"ay" = (/obj/structure/table,/obj/item/weapon/gun/ballistic/automatic/wt550{pixel_x = -3;pixel_y = 6},/obj/item/weapon/gun/ballistic/automatic/wt550{pixel_x = 2;pixel_y = 0},/obj/structure/reagent_dispensers/peppertank{pixel_y = 30},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) "az" = (/obj/structure/table,/obj/item/weapon/storage/backpack/dufflebag/sec{contents = newlist(/obj/item/weapon/scalpel,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/item/weapon/surgical_drapes,/obj/item/clothing/mask/surgical);desc = "A large dufflebag for holding extra supplies - this one has a material inlay with space for various sharp-looking tools.";name = "dufflebag";pixel_y = 5},/turf/open/floor/plasteel,/area/ruin/deepstorage) "aA" = (/obj/structure/table,/obj/item/device/radio{pixel_x = -4},/obj/item/device/radio,/obj/item/device/radio{pixel_x = 4},/turf/open/floor/plasteel,/area/ruin/deepstorage) "aB" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50;pixel_x = 2;pixel_y = 2},/obj/item/stack/rods{amount = 50},/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/turf/open/floor/plasteel,/area/ruin/deepstorage) diff --git a/_maps/RandomRuins/SpaceRuins/listeningstation.dmm b/_maps/RandomRuins/SpaceRuins/listeningstation.dmm index efbcfee9a2c..584962dd38a 100644 --- a/_maps/RandomRuins/SpaceRuins/listeningstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/listeningstation.dmm @@ -15,7 +15,7 @@ "o" = (/obj/structure/table,/obj/item/weapon/paper{info = "Nothing of interest to report.";name = "november report"},/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/awaymission/listeningpost) "p" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly";freerange = 1;frequency = 1213;name = "Syndicate Intercom";pixel_x = 32;subspace_transmission = 1;syndie = 1},/turf/open/floor/plasteel,/area/awaymission/listeningpost) "q" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate,/obj/item/clothing/mask/gas,/obj/item/clothing/head/helmet/space/syndicate,/turf/open/floor/plasteel,/area/awaymission/listeningpost) -"r" = (/obj/machinery/door/airlock,/obj/structure/safe/floor,/obj/item/weapon/paper{info = "I wonder how much longer they will accept my empty reports. They will cancel the case soon without results. When the pickup comes, I will tell them I have lost faith in our cause, and beg them to consider a diplomatic solution. How many nuclear teams have been dispatched with those nukes? I must try and prevent more from ever being sent. If they will not listen to reason, I will detonate the warehouse myself. Maybe some day in the immediate future, space will be peaceful, though I don't intend to live to see it. And that is why I write this down- it is my sacrifice that stabilised your worlds, traveller. Spare a thought for me, and please attempt to prevent nuclear proliferation, should it ever rear it's ugly head again. -Donk Co. Operative #451";name = "odd report"},/obj/item/weapon/gun/projectile/automatic/pistol,/turf/open/floor/plasteel,/area/awaymission/listeningpost) +"r" = (/obj/machinery/door/airlock,/obj/structure/safe/floor,/obj/item/weapon/paper{info = "I wonder how much longer they will accept my empty reports. They will cancel the case soon without results. When the pickup comes, I will tell them I have lost faith in our cause, and beg them to consider a diplomatic solution. How many nuclear teams have been dispatched with those nukes? I must try and prevent more from ever being sent. If they will not listen to reason, I will detonate the warehouse myself. Maybe some day in the immediate future, space will be peaceful, though I don't intend to live to see it. And that is why I write this down- it is my sacrifice that stabilised your worlds, traveller. Spare a thought for me, and please attempt to prevent nuclear proliferation, should it ever rear it's ugly head again. -Donk Co. Operative #451";name = "odd report"},/obj/item/weapon/gun/ballistic/automatic/pistol,/turf/open/floor/plasteel,/area/awaymission/listeningpost) "s" = (/obj/structure/disposalpipe/segment{dir = 4;icon_state = "pipe-c"},/turf/closed/mineral,/area/ruin/unpowered/no_grav) "t" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/mineral,/area/ruin/unpowered/no_grav) "u" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) diff --git a/_maps/RandomZLevels/Academy.dmm b/_maps/RandomZLevels/Academy.dmm index f7026bd84fe..7df0895e72e 100644 --- a/_maps/RandomZLevels/Academy.dmm +++ b/_maps/RandomZLevels/Academy.dmm @@ -2263,14 +2263,14 @@ info = "Grade: A+ Educator's Notes: Excellent form."; name = "Summoning Midterm Exam" }, -/obj/item/weapon/gun/projectile/shotgun/automatic/combat, +/obj/item/weapon/gun/ballistic/shotgun/automatic/combat, /turf/open/floor/plasteel/vault{ dir = 5 }, /area/awaymission/academy/classrooms) "gI" = ( /obj/structure/table, -/obj/item/weapon/gun/projectile/revolver/russian, +/obj/item/weapon/gun/ballistic/revolver/russian, /obj/item/weapon/paper{ info = "Grade: B- Educator's Notes: Keep applying yourself, you're showing improvement."; name = "Summoning Midterm Exam" diff --git a/_maps/RandomZLevels/Cabin.dmm b/_maps/RandomZLevels/Cabin.dmm index 2aa4616c628..f9e40b73fc3 100644 --- a/_maps/RandomZLevels/Cabin.dmm +++ b/_maps/RandomZLevels/Cabin.dmm @@ -310,7 +310,7 @@ /area/awaymission/cabin) "aZ" = ( /obj/structure/guncase/shotgun, -/obj/item/weapon/gun/projectile/shotgun/riot, +/obj/item/weapon/gun/ballistic/shotgun/riot, /turf/open/floor/carpet, /area/awaymission/cabin) "ba" = ( diff --git a/_maps/RandomZLevels/caves.dmm b/_maps/RandomZLevels/caves.dmm index a375cabe157..992ed6dbbfc 100644 --- a/_maps/RandomZLevels/caves.dmm +++ b/_maps/RandomZLevels/caves.dmm @@ -805,7 +805,7 @@ name = "\improper BMP Asteroid Level 3" }) "bG" = ( -/obj/item/weapon/gun/projectile/automatic/pistol/deagle/gold, +/obj/item/weapon/gun/ballistic/automatic/pistol/deagle/gold, /turf/open/floor/plating/asteroid/basalt/lava{ initial_gas_mix = "n2=23;o2=14" }, diff --git a/_maps/RandomZLevels/centcomAway.dmm b/_maps/RandomZLevels/centcomAway.dmm index b5be7862dcb..cd8daceac19 100644 --- a/_maps/RandomZLevels/centcomAway.dmm +++ b/_maps/RandomZLevels/centcomAway.dmm @@ -4160,7 +4160,7 @@ /obj/structure/safe/floor, /obj/item/clothing/under/rank/centcom_officer, /obj/item/clothing/suit/det_suit, -/obj/item/weapon/gun/projectile/revolver/mateba, +/obj/item/weapon/gun/ballistic/revolver/mateba, /turf/open/floor/plasteel/grimy, /area/awaymission/centcomAway/general) "mR" = ( diff --git a/_maps/RandomZLevels/challenge.dmm b/_maps/RandomZLevels/challenge.dmm index 79a8b400cfb..2376fd21fb8 100644 --- a/_maps/RandomZLevels/challenge.dmm +++ b/_maps/RandomZLevels/challenge.dmm @@ -720,7 +720,7 @@ }, /area/awaymission/challenge/end) "bQ" = ( -/obj/item/weapon/gun/projectile/revolver/russian, +/obj/item/weapon/gun/ballistic/revolver/russian, /turf/open/floor/plasteel/white/side{ dir = 2 }, @@ -858,7 +858,7 @@ /area/awaymission/challenge/end) "ck" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/revolver/mateba, +/obj/item/weapon/gun/ballistic/revolver/mateba, /turf/open/floor/wood, /area/awaymission/challenge/end) "cl" = ( @@ -927,7 +927,7 @@ /area/awaymission/challenge/end) "cw" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/l6_saw, +/obj/item/weapon/gun/ballistic/automatic/l6_saw, /turf/open/floor/wood, /area/awaymission/challenge/end) "cx" = ( diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm index 0edafbfe3ad..170681bb1d9 100644 --- a/_maps/RandomZLevels/moonoutpost19.dmm +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -254,7 +254,7 @@ item_state = "facehugger_impregnated"; stat = 2 }, -/obj/item/weapon/gun/projectile/automatic/pistol, +/obj/item/weapon/gun/ballistic/automatic/pistol, /turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; heat_capacity = 1e+006 @@ -8748,7 +8748,7 @@ /obj/effect/decal/remains/human{ desc = "They look like human remains. The skeleton is sitting upright with its legs tucked in and hands still holding onto its arms." }, -/obj/item/weapon/gun/projectile/shotgun/sc_pump, +/obj/item/weapon/gun/ballistic/shotgun/sc_pump, /turf/open/floor/plasteel/showroomfloor{ heat_capacity = 1e+006; temperature = 273.15 diff --git a/_maps/RandomZLevels/research.dmm b/_maps/RandomZLevels/research.dmm index 243ef869fe4..b03bd92f358 100644 --- a/_maps/RandomZLevels/research.dmm +++ b/_maps/RandomZLevels/research.dmm @@ -1433,8 +1433,8 @@ /area/awaymission/research/interior/security) "dU" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/wt550, -/obj/item/weapon/gun/projectile/automatic/wt550, +/obj/item/weapon/gun/ballistic/automatic/wt550, +/obj/item/weapon/gun/ballistic/automatic/wt550, /obj/item/ammo_box/magazine/wt550m9, /obj/item/ammo_box/magazine/wt550m9, /turf/open/floor/plasteel/red, @@ -1563,8 +1563,8 @@ /area/awaymission/research/interior/security) "ep" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/pistol/m1911, -/obj/item/weapon/gun/projectile/automatic/pistol/m1911, +/obj/item/weapon/gun/ballistic/automatic/pistol/m1911, +/obj/item/weapon/gun/ballistic/automatic/pistol/m1911, /obj/item/ammo_box/magazine/m45, /obj/item/ammo_box/magazine/m45, /turf/open/floor/plasteel/red, @@ -3916,7 +3916,7 @@ /turf/open/floor/wood, /area/awaymission/research/interior/dorm) "kt" = ( -/obj/item/weapon/gun/projectile/automatic/pistol/m1911, +/obj/item/weapon/gun/ballistic/automatic/pistol/m1911, /turf/open/floor/plasteel, /area/awaymission/research/interior/dorm) "ku" = ( diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm index 95a067649e7..91f9619b9fc 100644 --- a/_maps/RandomZLevels/snowdin.dmm +++ b/_maps/RandomZLevels/snowdin.dmm @@ -129,7 +129,7 @@ }, /area/awaymission/snowdin/base) "au" = ( -/obj/item/weapon/gun/projectile/shotgun/boltaction, +/obj/item/weapon/gun/ballistic/shotgun/boltaction, /obj/item/ammo_box/a762, /obj/item/ammo_box/a762, /obj/structure/closet/secure_closet{ @@ -363,9 +363,9 @@ /area/awaymission/snowdin) "aY" = ( /obj/structure/guncase/shotgun, -/obj/item/weapon/gun/projectile/shotgun/automatic, -/obj/item/weapon/gun/projectile/shotgun/automatic, -/obj/item/weapon/gun/projectile/shotgun/automatic, +/obj/item/weapon/gun/ballistic/shotgun/automatic, +/obj/item/weapon/gun/ballistic/shotgun/automatic, +/obj/item/weapon/gun/ballistic/shotgun/automatic, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/snow }, @@ -2423,7 +2423,7 @@ name = "Contraband Locker"; req_access_txt = "3" }, -/obj/item/weapon/gun/projectile/automatic/speargun, +/obj/item/weapon/gun/ballistic/automatic/speargun, /obj/item/weapon/twohanded/spear, /obj/item/weapon/twohanded/spear, /obj/item/weapon/twohanded/spear, @@ -2721,7 +2721,7 @@ }, /area/awaymission/snowdin/post) "hm" = ( -/obj/item/weapon/gun/projectile/shotgun/boltaction, +/obj/item/weapon/gun/ballistic/shotgun/boltaction, /obj/item/ammo_box/a762, /obj/item/ammo_box/a762, /obj/structure/closet/secure_closet{ @@ -3080,7 +3080,7 @@ }, /area/awaymission/snowdin/sekret) "ir" = ( -/obj/item/weapon/gun/projectile/shotgun/boltaction, +/obj/item/weapon/gun/ballistic/shotgun/boltaction, /obj/item/ammo_box/a762, /obj/item/ammo_box/a762, /obj/structure/closet/secure_closet{ @@ -3893,7 +3893,7 @@ /area/awaymission/snowdin/sekret) "ku" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/speargun, +/obj/item/weapon/gun/ballistic/automatic/speargun, /obj/item/weapon/twohanded/spear, /obj/item/weapon/twohanded/spear, /turf/open/floor/plasteel/darkwarning{ @@ -3915,7 +3915,7 @@ /area/awaymission/snowdin/sekret) "kx" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/l6_saw/unrestricted, +/obj/item/weapon/gun/ballistic/automatic/l6_saw/unrestricted, /obj/machinery/light/small{ dir = 4 }, @@ -3997,7 +3997,7 @@ }, /area/awaymission/snowdin/sekret) "kH" = ( -/obj/item/weapon/gun/projectile/shotgun/boltaction, +/obj/item/weapon/gun/ballistic/shotgun/boltaction, /obj/item/ammo_box/a762, /obj/item/ammo_box/a762, /obj/structure/closet/secure_closet{ @@ -4015,8 +4015,8 @@ /area/awaymission/snowdin/sekret) "kI" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/c20r/unrestricted, -/obj/item/weapon/gun/projectile/automatic/c20r/unrestricted, +/obj/item/weapon/gun/ballistic/automatic/c20r/unrestricted, +/obj/item/weapon/gun/ballistic/automatic/c20r/unrestricted, /obj/machinery/light/small{ dir = 8 }, @@ -4041,7 +4041,7 @@ /area/awaymission/snowdin/sekret) "kL" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/revolver, +/obj/item/weapon/gun/ballistic/revolver, /obj/machinery/light/small{ dir = 4 }, @@ -4089,8 +4089,8 @@ /area/awaymission/snowdin/sekret) "kS" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/mini_uzi, -/obj/item/weapon/gun/projectile/automatic/mini_uzi, +/obj/item/weapon/gun/ballistic/automatic/mini_uzi, +/obj/item/weapon/gun/ballistic/automatic/mini_uzi, /turf/open/floor/plasteel/darkwarning{ tag = "icon-warndark (SOUTHWEST)"; dir = 10; @@ -4099,8 +4099,8 @@ /area/awaymission/snowdin/sekret) "kT" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/unrestricted, -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/unrestricted, +/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/unrestricted, +/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/unrestricted, /turf/open/floor/plasteel/darkwarning{ tag = "icon-warndark (SOUTHEAST)"; dir = 6; @@ -4467,7 +4467,7 @@ }, /area/awaymission/snowdin) "lN" = ( -/obj/item/weapon/gun/projectile/automatic/pistol, +/obj/item/weapon/gun/ballistic/automatic/pistol, /turf/open/floor/plasteel/shuttle/red{ baseturf = /turf/open/floor/plating/asteroid/snow; temperature = 180 @@ -4573,7 +4573,7 @@ /area/awaymission/snowdin/sekret) "ma" = ( /obj/structure/table/wood, -/obj/item/weapon/gun/projectile/automatic/c20r/toy, +/obj/item/weapon/gun/ballistic/automatic/c20r/toy, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/snow }, @@ -5198,7 +5198,7 @@ /area/awaymission/snowdin/sekret) "nx" = ( /obj/structure/table/reinforced, -/obj/item/weapon/gun/projectile/automatic/pistol, +/obj/item/weapon/gun/ballistic/automatic/pistol, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/snow; wet = 0 @@ -5216,7 +5216,7 @@ /area/awaymission/snowdin/sekret) "nz" = ( /obj/structure/table/reinforced, -/obj/item/weapon/gun/projectile/shotgun/automatic/combat, +/obj/item/weapon/gun/ballistic/shotgun/automatic/combat, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/snow; wet = 0 diff --git a/_maps/RandomZLevels/spacebattle.dmm b/_maps/RandomZLevels/spacebattle.dmm index bef870b8092..1d097a115dd 100644 --- a/_maps/RandomZLevels/spacebattle.dmm +++ b/_maps/RandomZLevels/spacebattle.dmm @@ -79,7 +79,7 @@ /area/awaymission/spacebattle/syndicate2) "ap" = ( /mob/living/simple_animal/hostile/syndicate/ranged{ - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/shield/energy) + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/ballistic/automatic/c20r,/obj/item/weapon/shield/energy) }, /turf/open/floor/plasteel/shuttle/red/syndicate, /area/awaymission/spacebattle/syndicate2) @@ -99,7 +99,7 @@ /area/awaymission/spacebattle/syndicate2) "at" = ( /obj/structure/table/reinforced, -/obj/item/weapon/gun/projectile/automatic/c20r, +/obj/item/weapon/gun/ballistic/automatic/c20r, /turf/open/floor/plasteel/shuttle/red/syndicate, /area/awaymission/spacebattle/syndicate2) "au" = ( @@ -145,7 +145,7 @@ /area/awaymission/spacebattle/syndicate3) "aA" = ( /obj/structure/table/reinforced, -/obj/item/weapon/gun/projectile/automatic/pistol, +/obj/item/weapon/gun/ballistic/automatic/pistol, /turf/open/floor/plasteel/shuttle/red/syndicate, /area/awaymission/spacebattle/syndicate2) "aB" = ( @@ -906,7 +906,7 @@ /area/awaymission/spacebattle/cruiser) "db" = ( /mob/living/simple_animal/hostile/syndicate/ranged{ - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/shield/energy) + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/ballistic/automatic/c20r,/obj/item/weapon/shield/energy) }, /turf/open/floor/plasteel/shuttle/red/syndicate, /area/awaymission/spacebattle/syndicate3) @@ -1374,7 +1374,7 @@ mob_name = "Davis Hume"; name = "Davis Hume" }, -/obj/item/weapon/gun/projectile/shotgun/automatic/combat, +/obj/item/weapon/gun/ballistic/shotgun/automatic/combat, /turf/open/floor/plasteel, /area/awaymission/spacebattle/cruiser) "ez" = ( @@ -1383,7 +1383,7 @@ /area/awaymission/spacebattle/cruiser) "eA" = ( /mob/living/simple_animal/hostile/syndicate/ranged{ - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/shield/energy) + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/ballistic/automatic/c20r,/obj/item/weapon/shield/energy) }, /turf/open/floor/plasteel/shuttle/red/syndicate, /area/awaymission/spacebattle/syndicate1) @@ -1518,7 +1518,7 @@ mob_name = "Kurt Kliest"; name = "Kurt Kliest" }, -/obj/item/weapon/gun/projectile/shotgun/automatic/combat, +/obj/item/weapon/gun/ballistic/shotgun/automatic/combat, /obj/item/ammo_casing/shotgun, /turf/open/floor/plasteel, /area/awaymission/spacebattle/cruiser) @@ -1623,7 +1623,7 @@ /area/awaymission/spacebattle/cruiser) "fp" = ( /obj/effect/mob_spawn/human/syndicatesoldier, -/obj/item/weapon/gun/projectile/automatic/c20r, +/obj/item/weapon/gun/ballistic/automatic/c20r, /obj/item/ammo_casing/c10mm, /obj/item/ammo_casing/c10mm, /obj/effect/decal/cleanable/blood, @@ -1640,7 +1640,7 @@ /area/awaymission/spacebattle/cruiser) "fr" = ( /obj/effect/mob_spawn/human/nanotrasensoldier, -/obj/item/weapon/gun/projectile/automatic/wt550, +/obj/item/weapon/gun/ballistic/automatic/wt550, /turf/open/floor/plasteel, /area/awaymission/spacebattle/cruiser) "fs" = ( @@ -1652,7 +1652,7 @@ "ft" = ( /obj/item/ammo_casing/a357, /obj/item/ammo_casing/a357, -/obj/item/weapon/gun/projectile/revolver/mateba, +/obj/item/weapon/gun/ballistic/revolver/mateba, /obj/effect/mob_spawn/human/commander{ mob_name = "Aaron Bowden"; name = "Aaron Bowden" @@ -1777,7 +1777,7 @@ /area/awaymission/spacebattle/cruiser) "fN" = ( /obj/effect/mob_spawn/human/syndicatesoldier, -/obj/item/weapon/gun/projectile/automatic/c20r, +/obj/item/weapon/gun/ballistic/automatic/c20r, /obj/item/ammo_casing/c10mm, /obj/item/ammo_casing/c10mm, /obj/effect/decal/cleanable/blood, @@ -2012,7 +2012,7 @@ /turf/open/floor/wood, /area/awaymission/spacebattle/cruiser) "gz" = ( -/obj/item/weapon/gun/projectile/shotgun/automatic/combat, +/obj/item/weapon/gun/ballistic/shotgun/automatic/combat, /turf/open/floor/plasteel, /area/awaymission/spacebattle/cruiser) "gA" = ( @@ -2413,7 +2413,7 @@ /area/awaymission/spacebattle/cruiser) "hR" = ( /mob/living/simple_animal/hostile/syndicate/ranged{ - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/shield/energy) + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/ballistic/automatic/c20r,/obj/item/weapon/shield/energy) }, /turf/open/floor/plasteel, /area/awaymission/spacebattle/cruiser) @@ -2584,7 +2584,7 @@ /area/awaymission/spacebattle/cruiser) "iu" = ( /obj/effect/mob_spawn/human/syndicatesoldier, -/obj/item/weapon/gun/projectile/automatic/c20r, +/obj/item/weapon/gun/ballistic/automatic/c20r, /turf/open/floor/plasteel{ icon_state = "damaged2" }, @@ -2846,12 +2846,12 @@ /area/awaymission/spacebattle/cruiser) "js" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/laser, +/obj/item/weapon/gun/ballistic/automatic/laser, /turf/open/floor/engine, /area/awaymission/spacebattle/cruiser) "jt" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun/advtaser, +/obj/item/weapon/gun/energy/e_gun/advtaser, /turf/open/floor/engine, /area/awaymission/spacebattle/cruiser) "ju" = ( @@ -2916,7 +2916,7 @@ "jB" = ( /obj/structure/rack, /obj/structure/window/reinforced, -/obj/item/weapon/gun/energy/gun/advtaser, +/obj/item/weapon/gun/energy/e_gun/advtaser, /turf/open/floor/engine, /area/awaymission/spacebattle/cruiser) "jC" = ( @@ -2986,7 +2986,7 @@ mob_name = "Walter Strider"; name = "Walter Strider" }, -/obj/item/weapon/gun/projectile/shotgun/automatic/combat, +/obj/item/weapon/gun/ballistic/shotgun/automatic/combat, /obj/item/ammo_casing/c10mm, /obj/item/ammo_casing/c10mm, /obj/effect/decal/cleanable/blood, @@ -3033,7 +3033,7 @@ /area/awaymission/spacebattle/cruiser) "jU" = ( /mob/living/simple_animal/hostile/syndicate/ranged/space{ - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatecommando,/obj/item/weapon/gun/projectile/automatic/c20r) + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatecommando,/obj/item/weapon/gun/ballistic/automatic/c20r) }, /turf/open/floor/plasteel/airless, /area/awaymission/spacebattle/cruiser) @@ -3060,14 +3060,14 @@ /area/awaymission/spacebattle/cruiser) "jY" = ( /mob/living/simple_animal/hostile/syndicate/ranged/space{ - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatecommando,/obj/item/weapon/gun/projectile/automatic/c20r) + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatecommando,/obj/item/weapon/gun/ballistic/automatic/c20r) }, /turf/open/floor/plating/airless, /area/awaymission/spacebattle/cruiser) "jZ" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/automatic/laser, -/obj/item/weapon/gun/projectile/automatic/laser, +/obj/item/weapon/gun/ballistic/automatic/laser, +/obj/item/weapon/gun/ballistic/automatic/laser, /turf/open/floor/engine, /area/awaymission/spacebattle/cruiser) "ka" = ( @@ -3127,7 +3127,7 @@ /area/awaymission/spacebattle/cruiser) "kl" = ( /obj/effect/mob_spawn/human/nanotrasensoldier, -/obj/item/weapon/gun/projectile/automatic/wt550, +/obj/item/weapon/gun/ballistic/automatic/wt550, /obj/effect/decal/cleanable/blood, /turf/open/floor/plasteel, /area/awaymission/spacebattle/cruiser) @@ -3193,7 +3193,7 @@ /area/awaymission/spacebattle/cruiser) "ku" = ( /mob/living/simple_animal/hostile/syndicate/ranged{ - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/shield/energy) + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/ballistic/automatic/c20r,/obj/item/weapon/shield/energy) }, /turf/open/floor/plasteel/white, /area/awaymission/spacebattle/cruiser) diff --git a/_maps/RandomZLevels/wildwest.dmm b/_maps/RandomZLevels/wildwest.dmm index 025f32aeb63..cefd6b67e80 100644 --- a/_maps/RandomZLevels/wildwest.dmm +++ b/_maps/RandomZLevels/wildwest.dmm @@ -366,7 +366,7 @@ /area/awaymission/wwmines) "bC" = ( /obj/structure/table/wood, -/obj/item/weapon/gun/projectile, +/obj/item/weapon/gun/ballistic, /turf/open/floor/wood, /area/awaymission/wwmines) "bD" = ( @@ -620,7 +620,7 @@ /area/awaymission/wwmines) "ch" = ( /obj/structure/table/wood, -/obj/item/weapon/gun/projectile, +/obj/item/weapon/gun/ballistic, /turf/open/floor/plasteel/cafeteria{ dir = 5 }, @@ -1307,7 +1307,7 @@ /turf/open/floor/carpet, /area/awaymission/wwmines) "eq" = ( -/obj/item/weapon/gun/projectile/shotgun, +/obj/item/weapon/gun/ballistic/shotgun, /turf/open/floor/wood, /area/awaymission/wwmines) "er" = ( @@ -1387,7 +1387,7 @@ "eE" = ( /obj/structure/bed, /obj/item/weapon/bedsheet/blue, -/obj/item/weapon/gun/projectile, +/obj/item/weapon/gun/ballistic, /turf/open/floor/wood, /area/awaymission/wwmines) "eF" = ( @@ -1839,7 +1839,7 @@ /area/awaymission/wwmines) "fS" = ( /obj/structure/table/wood, -/obj/item/weapon/gun/projectile/shotgun, +/obj/item/weapon/gun/ballistic/shotgun, /turf/open/floor/wood, /area/awaymission/wwmines) "fT" = ( @@ -1928,7 +1928,7 @@ /area/awaymission/wwmines) "gg" = ( /obj/structure/table/wood, -/obj/item/weapon/gun/projectile/revolver/russian, +/obj/item/weapon/gun/ballistic/revolver/russian, /turf/open/floor/wood, /area/awaymission/wwmines) "gh" = ( @@ -1956,7 +1956,7 @@ /turf/open/floor/wood, /area/awaymission/wwmines) "gm" = ( -/obj/item/weapon/gun/projectile, +/obj/item/weapon/gun/ballistic, /turf/open/floor/wood, /area/awaymission/wwmines) "gn" = ( @@ -2007,11 +2007,11 @@ /turf/open/floor/wood, /area/awaymission/wwmines) "gw" = ( -/obj/item/weapon/gun/projectile/automatic/pistol, +/obj/item/weapon/gun/ballistic/automatic/pistol, /turf/open/floor/wood, /area/awaymission/wwmines) "gx" = ( -/obj/item/weapon/gun/projectile/shotgun, +/obj/item/weapon/gun/ballistic/shotgun, /turf/open/floor/plating/ironsand{ icon_state = "ironsand1" }, diff --git a/_maps/map_files/BirdStation/BirdStation.dmm b/_maps/map_files/BirdStation/BirdStation.dmm index d3e61a2caaf..aa63064c3b7 100644 --- a/_maps/map_files/BirdStation/BirdStation.dmm +++ b/_maps/map_files/BirdStation/BirdStation.dmm @@ -6570,7 +6570,7 @@ /turf/open/floor/wood, /area/maintenance/fsmaint) "aqc" = ( -/obj/item/weapon/gun/projectile/shotgun/toy, +/obj/item/weapon/gun/ballistic/shotgun/toy, /turf/open/floor/wood, /area/maintenance/fsmaint) "aqd" = ( @@ -12643,7 +12643,7 @@ }) "aFh" = ( /obj/structure/table/wood, -/obj/item/weapon/gun/projectile/revolver/doublebarrel, +/obj/item/weapon/gun/ballistic/revolver/doublebarrel, /turf/open/floor/wood, /area/crew_quarters/bar{ name = "\improper Bar and Kitchen" @@ -17155,8 +17155,8 @@ /area/toxins/xenobiology) "aQz" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun/advtaser, -/obj/item/weapon/gun/energy/gun/advtaser{ +/obj/item/weapon/gun/energy/e_gun/advtaser, +/obj/item/weapon/gun/energy/e_gun/advtaser{ pixel_x = 5; pixel_y = -5 }, @@ -20557,7 +20557,7 @@ }) "aYD" = ( /obj/structure/table/wood, -/obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised, +/obj/item/weapon/gun/ballistic/revolver/doublebarrel/improvised, /turf/open/floor/wood, /area/maintenance/fore{ name = "Security Maintenance" @@ -23169,7 +23169,7 @@ /area/toxins/xenobiology) "beI" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun/dragnet, +/obj/item/weapon/gun/energy/e_gun/dragnet, /turf/open/floor/plasteel/bot, /area/security/warden) "beJ" = ( @@ -23179,11 +23179,11 @@ /obj/item/weapon/storage/box/rubbershot, /obj/item/weapon/storage/box/rubbershot, /obj/item/weapon/storage/box/rubbershot, -/obj/item/weapon/gun/projectile/shotgun/riot{ +/obj/item/weapon/gun/ballistic/shotgun/riot{ pixel_x = -5; pixel_y = 5 }, -/obj/item/weapon/gun/projectile/shotgun/riot, +/obj/item/weapon/gun/ballistic/shotgun/riot, /turf/open/floor/plasteel/bot, /area/security/warden) "beK" = ( @@ -23233,7 +23233,7 @@ lootcount = 3; name = "teargas clusterbuster spawner" }, -/obj/item/weapon/gun/energy/gun/hos, +/obj/item/weapon/gun/energy/e_gun/hos, /obj/item/weapon/storage/box/lethalshot, /obj/item/weapon/storage/box/lethalshot, /turf/open/floor/plasteel, diff --git a/_maps/map_files/DreamStation/dreamstation04.dmm b/_maps/map_files/DreamStation/dreamstation04.dmm index fd247eea4bd..17a76c2cfa6 100644 --- a/_maps/map_files/DreamStation/dreamstation04.dmm +++ b/_maps/map_files/DreamStation/dreamstation04.dmm @@ -39854,7 +39854,7 @@ "bCK" = ( /obj/structure/table/wood, /obj/item/weapon/reagent_containers/food/drinks/shaker, -/obj/item/weapon/gun/projectile/revolver/doublebarrel, +/obj/item/weapon/gun/ballistic/revolver/doublebarrel, /obj/item/stack/sheet/metal{ amount = 50 }, @@ -45110,11 +45110,11 @@ /obj/item/weapon/storage/box/rubbershot, /obj/item/weapon/storage/box/rubbershot, /obj/item/weapon/storage/box/rubbershot, -/obj/item/weapon/gun/projectile/shotgun/riot{ +/obj/item/weapon/gun/ballistic/shotgun/riot{ pixel_x = 3; pixel_y = 3 }, -/obj/item/weapon/gun/projectile/shotgun/riot, +/obj/item/weapon/gun/ballistic/shotgun/riot, /turf/open/floor/plasteel/vault{ tag = "icon-vault (WEST)"; dir = 8 @@ -46884,12 +46884,12 @@ /area/security/armory) "bPk" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun/advtaser{ +/obj/item/weapon/gun/energy/e_gun/advtaser{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/energy/gun/advtaser, -/obj/item/weapon/gun/energy/gun/advtaser{ +/obj/item/weapon/gun/energy/e_gun/advtaser, +/obj/item/weapon/gun/energy/e_gun/advtaser{ pixel_x = 3; pixel_y = -3 }, @@ -46922,12 +46922,12 @@ /area/security/armory) "bPm" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun{ +/obj/item/weapon/gun/energy/e_gun{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/energy/gun, -/obj/item/weapon/gun/energy/gun{ +/obj/item/weapon/gun/energy/e_gun, +/obj/item/weapon/gun/energy/e_gun{ pixel_x = 3; pixel_y = -3 }, @@ -48792,8 +48792,8 @@ pixel_y = -24 }, /obj/machinery/light, -/obj/item/weapon/gun/energy/gun/dragnet, -/obj/item/weapon/gun/energy/gun/dragnet, +/obj/item/weapon/gun/energy/e_gun/dragnet, +/obj/item/weapon/gun/energy/e_gun/dragnet, /turf/open/floor/plasteel/vault{ dir = 8 }, diff --git a/_maps/map_files/EfficiencyStation/EfficiencyStation.dmm b/_maps/map_files/EfficiencyStation/EfficiencyStation.dmm index 536b9cdaefe..37b2c3283dd 100644 --- a/_maps/map_files/EfficiencyStation/EfficiencyStation.dmm +++ b/_maps/map_files/EfficiencyStation/EfficiencyStation.dmm @@ -31581,7 +31581,7 @@ /area/crew_quarters/kitchen) "bkV" = ( /obj/structure/table, -/obj/item/weapon/gun/projectile/revolver/doublebarrel, +/obj/item/weapon/gun/ballistic/revolver/doublebarrel, /obj/item/weapon/storage/belt/bandolier, /obj/item/weapon/reagent_containers/food/drinks/shaker, /turf/open/floor/plasteel/black, @@ -41900,8 +41900,8 @@ pixel_x = -2; pixel_y = -2 }, -/obj/item/weapon/gun/energy/gun/dragnet, -/obj/item/weapon/gun/energy/gun/dragnet, +/obj/item/weapon/gun/energy/e_gun/dragnet, +/obj/item/weapon/gun/energy/e_gun/dragnet, /turf/open/floor/plasteel/black, /area/security/warden) "bFG" = ( @@ -43328,12 +43328,12 @@ /area/security/warden) "bIq" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun{ +/obj/item/weapon/gun/energy/e_gun{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/energy/gun, -/obj/item/weapon/gun/energy/gun{ +/obj/item/weapon/gun/energy/e_gun, +/obj/item/weapon/gun/energy/e_gun{ pixel_x = 3; pixel_y = -3 }, @@ -44008,12 +44008,12 @@ /obj/structure/reagent_dispensers/peppertank{ pixel_x = 30 }, -/obj/item/weapon/gun/projectile/shotgun/riot{ +/obj/item/weapon/gun/ballistic/shotgun/riot{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/projectile/shotgun/riot, -/obj/item/weapon/gun/projectile/shotgun/riot{ +/obj/item/weapon/gun/ballistic/shotgun/riot, +/obj/item/weapon/gun/ballistic/shotgun/riot{ pixel_x = 3; pixel_y = -3 }, @@ -44657,12 +44657,12 @@ /area/security/warden) "bKI" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun/advtaser{ +/obj/item/weapon/gun/energy/e_gun/advtaser{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/energy/gun/advtaser, -/obj/item/weapon/gun/energy/gun/advtaser{ +/obj/item/weapon/gun/energy/e_gun/advtaser, +/obj/item/weapon/gun/energy/e_gun/advtaser{ pixel_x = 3; pixel_y = -3 }, diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index c9481b69bef..c2885b4335d 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -2389,7 +2389,7 @@ 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/syndie_kit/throwing_weapons = 3) + loot = list(/obj/item/weapon/gun/ballistic/automatic/pistol = 5, /obj/item/weapon/gun/ballistic/shotgun/automatic/combat = 5, /obj/item/weapon/gun/ballistic/revolver/mateba, /obj/item/weapon/gun/ballistic/automatic/pistol/deagle, /obj/item/weapon/storage/box/syndie_kit/throwing_weapons = 3) }, /turf/open/floor/plasteel/vault{ dir = 4 @@ -3471,12 +3471,12 @@ /area/ai_monitored/security/armory) "agh" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun/advtaser{ +/obj/item/weapon/gun/energy/e_gun/advtaser{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/energy/gun/advtaser, -/obj/item/weapon/gun/energy/gun/advtaser{ +/obj/item/weapon/gun/energy/e_gun/advtaser, +/obj/item/weapon/gun/energy/e_gun/advtaser{ pixel_x = 3; pixel_y = -3 }, @@ -3943,23 +3943,23 @@ /obj/item/weapon/storage/box/rubbershot, /obj/item/weapon/storage/box/rubbershot, /obj/item/weapon/storage/box/rubbershot, -/obj/item/weapon/gun/projectile/shotgun/riot{ +/obj/item/weapon/gun/ballistic/shotgun/riot{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/projectile/shotgun/riot, +/obj/item/weapon/gun/ballistic/shotgun/riot, /turf/open/floor/plasteel/vault{ dir = 1 }, /area/ai_monitored/security/armory) "aha" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun{ +/obj/item/weapon/gun/energy/e_gun{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/energy/gun, -/obj/item/weapon/gun/energy/gun{ +/obj/item/weapon/gun/energy/e_gun, +/obj/item/weapon/gun/energy/e_gun{ pixel_x = 3; pixel_y = -3 }, @@ -8279,7 +8279,7 @@ pixel_x = 28 }, /obj/structure/closet/secure_closet/warden, -/obj/item/weapon/gun/projectile/automatic/wt550, +/obj/item/weapon/gun/ballistic/automatic/wt550, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "aoH" = ( @@ -16431,7 +16431,7 @@ "aCy" = ( /obj/structure/safe, /obj/item/weapon/storage/secure/briefcase{ - contents = newlist(/obj/item/clothing/suit/armor/vest,/obj/item/weapon/gun/projectile/automatic/pistol,/obj/item/weapon/suppressor,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/clothing/mask/balaclava,/obj/item/bodybag,/obj/item/weapon/soap/nanotrasen) + contents = newlist(/obj/item/clothing/suit/armor/vest,/obj/item/weapon/gun/ballistic/automatic/pistol,/obj/item/weapon/suppressor,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/clothing/mask/balaclava,/obj/item/bodybag,/obj/item/weapon/soap/nanotrasen) }, /obj/item/weapon/storage/backpack/dufflebag{ contents = newlist(/obj/item/clothing/under/lawyer/blacksuit,/obj/item/clothing/tie/waistcoat,/obj/item/clothing/suit/toggle/lawyer/black,/obj/item/clothing/shoes/laceup,/obj/item/clothing/gloves/color/black,/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/head/fedora); @@ -16446,8 +16446,8 @@ registered_name = "Thirteen" }, /obj/item/weapon/lazarus_injector, -/obj/item/weapon/gun/energy/gun/advtaser, -/obj/item/weapon/gun/projectile/revolver/russian, +/obj/item/weapon/gun/energy/e_gun/advtaser, +/obj/item/weapon/gun/ballistic/revolver/russian, /obj/item/ammo_box/a357, /obj/item/clothing/neck/stethoscope, /obj/item/weapon/book{ @@ -39791,7 +39791,7 @@ /obj/structure/table/wood, /obj/item/stack/packageWrap, /obj/item/stack/packageWrap, -/obj/item/weapon/gun/projectile/revolver/doublebarrel, +/obj/item/weapon/gun/ballistic/revolver/doublebarrel, /obj/machinery/camera{ c_tag = "Bar - Backroom"; dir = 2; @@ -46729,7 +46729,7 @@ "bCu" = ( /obj/structure/table/wood/poker, /obj/effect/spawner/lootdrop{ - loot = list(/obj/item/weapon/gun/projectile/revolver/russian = 5, /obj/item/weapon/storage/box/syndie_kit/throwing_weapons, /obj/item/toy/cards/deck/syndicate = 2); + loot = list(/obj/item/weapon/gun/ballistic/revolver/russian = 5, /obj/item/weapon/storage/box/syndie_kit/throwing_weapons, /obj/item/toy/cards/deck/syndicate = 2); name = "gambling valuables spawner" }, /turf/open/floor/wood, diff --git a/_maps/map_files/MiniStation/MiniStation.dmm b/_maps/map_files/MiniStation/MiniStation.dmm index 86824d3f85d..d23543cb8b4 100644 --- a/_maps/map_files/MiniStation/MiniStation.dmm +++ b/_maps/map_files/MiniStation/MiniStation.dmm @@ -10679,7 +10679,7 @@ /area/engine/engineering) "xU" = ( /obj/structure/table/wood, -/obj/item/weapon/gun/projectile/revolver/doublebarrel, +/obj/item/weapon/gun/ballistic/revolver/doublebarrel, /obj/item/weapon/reagent_containers/food/drinks/shaker, /turf/open/floor/wood, /area/crew_quarters/bar) diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 8d63ea85dd7..fc536d95b46 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -4224,12 +4224,12 @@ /area/security/brig) "ajk" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun{ +/obj/item/weapon/gun/energy/e_gun{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/energy/gun, -/obj/item/weapon/gun/energy/gun{ +/obj/item/weapon/gun/energy/e_gun, +/obj/item/weapon/gun/energy/e_gun{ pixel_x = 3; pixel_y = -3 }, @@ -4677,12 +4677,12 @@ /area/security/brig) "ajY" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun/advtaser{ +/obj/item/weapon/gun/energy/e_gun/advtaser{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/energy/gun/advtaser, -/obj/item/weapon/gun/energy/gun/advtaser{ +/obj/item/weapon/gun/energy/e_gun/advtaser, +/obj/item/weapon/gun/energy/e_gun/advtaser{ pixel_x = 3; pixel_y = -3 }, @@ -4716,12 +4716,12 @@ /area/security/armory) "akc" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/shotgun/riot{ +/obj/item/weapon/gun/ballistic/shotgun/riot{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/projectile/shotgun/riot, -/obj/item/weapon/gun/projectile/shotgun/riot{ +/obj/item/weapon/gun/ballistic/shotgun/riot, +/obj/item/weapon/gun/ballistic/shotgun/riot{ pixel_x = 3; pixel_y = -3 }, @@ -19900,7 +19900,7 @@ /area/maintenance/fsmaint2) "aOK" = ( /obj/item/weapon/reagent_containers/food/drinks/shaker, -/obj/item/weapon/gun/projectile/revolver/doublebarrel, +/obj/item/weapon/gun/ballistic/revolver/doublebarrel, /obj/structure/table/wood, /obj/item/weapon/coin/silver, /obj/item/stack/spacecash/c10, @@ -43942,7 +43942,7 @@ /obj/item/weapon/kitchen/knife, /obj/item/candle, /obj/item/pipe, -/obj/item/weapon/gun/projectile/revolver/russian, +/obj/item/weapon/gun/ballistic/revolver/russian, /obj/item/stack/cable_coil/white, /obj/item/weapon/wrench, /obj/effect/decal/cleanable/cobweb{ diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm index 440aff34c0b..075efa3cc66 100644 --- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm +++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm @@ -420,8 +420,8 @@ /obj/machinery/firealarm{ pixel_y = 24 }, -/obj/item/weapon/gun/energy/gun/dragnet, -/obj/item/weapon/gun/energy/gun/dragnet, +/obj/item/weapon/gun/energy/e_gun/dragnet, +/obj/item/weapon/gun/energy/e_gun/dragnet, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -1126,12 +1126,12 @@ /area/ai_monitored/security/armory) "acM" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun{ +/obj/item/weapon/gun/energy/e_gun{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/energy/gun, -/obj/item/weapon/gun/energy/gun{ +/obj/item/weapon/gun/energy/e_gun, +/obj/item/weapon/gun/energy/e_gun{ pixel_x = 3; pixel_y = -3 }, @@ -1322,12 +1322,12 @@ /area/ai_monitored/security/armory) "adj" = ( /obj/structure/rack, -/obj/item/weapon/gun/energy/gun/advtaser{ +/obj/item/weapon/gun/energy/e_gun/advtaser{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/energy/gun/advtaser, -/obj/item/weapon/gun/energy/gun/advtaser{ +/obj/item/weapon/gun/energy/e_gun/advtaser, +/obj/item/weapon/gun/energy/e_gun/advtaser{ pixel_x = 3; pixel_y = -3 }, @@ -1337,12 +1337,12 @@ /area/ai_monitored/security/armory) "adk" = ( /obj/structure/rack, -/obj/item/weapon/gun/projectile/shotgun/riot{ +/obj/item/weapon/gun/ballistic/shotgun/riot{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/gun/projectile/shotgun/riot, -/obj/item/weapon/gun/projectile/shotgun/riot{ +/obj/item/weapon/gun/ballistic/shotgun/riot, +/obj/item/weapon/gun/ballistic/shotgun/riot{ pixel_x = 3; pixel_y = -3 }, @@ -14675,7 +14675,7 @@ /obj/item/clothing/head/bearpelt, /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, -/obj/item/weapon/gun/projectile/revolver/russian, +/obj/item/weapon/gun/ballistic/revolver/russian, /obj/item/ammo_box/a357, /obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka, /turf/open/floor/plasteel/vault{ @@ -16331,7 +16331,7 @@ /area/maintenance/fsmaint2) "aJE" = ( /obj/item/weapon/reagent_containers/food/drinks/shaker, -/obj/item/weapon/gun/projectile/revolver/doublebarrel, +/obj/item/weapon/gun/ballistic/revolver/doublebarrel, /obj/structure/table/wood, /obj/item/stack/spacecash/c10, /obj/item/stack/spacecash/c100, @@ -57763,7 +57763,7 @@ "cvG" = ( /obj/machinery/porta_turret/ai{ dir = 4; - installation = /obj/item/weapon/gun/energy/gun + installation = /obj/item/weapon/gun/energy/e_gun }, /obj/machinery/light{ icon_state = "tube1"; @@ -57803,7 +57803,7 @@ "cvJ" = ( /obj/machinery/porta_turret/ai{ dir = 4; - installation = /obj/item/weapon/gun/energy/gun + installation = /obj/item/weapon/gun/energy/e_gun }, /obj/machinery/light{ icon_state = "tube1"; diff --git a/_maps/map_files/generic/z2.dmm b/_maps/map_files/generic/z2.dmm index fedee36221d..66ab65a9d9c 100644 --- a/_maps/map_files/generic/z2.dmm +++ b/_maps/map_files/generic/z2.dmm @@ -1,1298 +1,1298 @@ -"aa" = (/turf/open/space,/area/space) -"ab" = (/turf/closed/indestructible/riveted,/area/space) -"ac" = (/obj/structure/window/reinforced,/turf/closed/indestructible/riveted,/area/space) -"ad" = (/obj/effect/landmark/transit,/turf/open/space,/area/space) -"ae" = (/obj/structure/window/reinforced{dir = 4},/turf/closed/indestructible/riveted,/area/space) -"af" = (/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) -"ag" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/closed/indestructible/riveted,/area/space) -"ah" = (/obj/structure/foamedmetal,/obj/structure/window{icon_state = "rwindow"; dir = 8},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/bunker) -"ai" = (/obj/structure/foamedmetal,/obj/structure/window{icon_state = "rwindow"; dir = 4},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/bunker) -"aj" = (/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/bunker) -"ak" = (/turf/open/floor/holofloor{tag = "icon-asteroid_warn_side (WEST)"; icon_state = "asteroid_warn_side"; dir = 8},/area/holodeck/rec_center/bunker) -"al" = (/obj/structure/table,/obj/item/stack/medical/ointment{heal_burn = 10},/turf/open/floor/holofloor{tag = "icon-asteroid_warn_side (WEST)"; icon_state = "asteroid_warn_side"; dir = 8},/area/holodeck/rec_center/bunker) -"am" = (/obj/structure/table/wood{layer = 3.3},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-05"; layer = 4.1; pixel_y = 4},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"an" = (/obj/structure/closet/crate/bin,/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"ao" = (/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"ap" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{layer = 3.3; pixel_y = 0},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"aq" = (/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/wildlife) -"ar" = (/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/offline) -"as" = (/turf/open/floor/holofloor/plating/burnmix,/area/holodeck/rec_center/burn) -"at" = (/turf/open/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/rec_center/court) -"au" = (/turf/open/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/rec_center/court) -"av" = (/turf/open/floor/holofloor{dir = 5; icon_state = "red"},/area/holodeck/rec_center/court) -"aw" = (/obj/structure/window/reinforced{dir = 8},/turf/closed/indestructible/riveted,/area/space) -"ax" = (/obj/structure/flora/bush,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) -"ay" = (/obj/item/toy/snowball{pixel_x = 0; pixel_y = 6},/obj/item/toy/snowball{pixel_x = 5; pixel_y = 0},/obj/item/toy/snowball{pixel_x = -4},/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) -"az" = (/turf/open/floor/holofloor{tag = "icon-asteroid_warn (WEST)"; icon_state = "asteroid_warn"; dir = 8},/area/holodeck/rec_center/bunker) -"aA" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/holofloor{tag = "icon-asteroidfloor (WEST)"; icon_state = "asteroidfloor"; dir = 8},/area/holodeck/rec_center/bunker) -"aB" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/matches{pixel_x = -4; pixel_y = 8},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"aC" = (/obj/structure/chair/wood/normal,/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"aD" = (/obj/effect/holodeck_effect/mobspawner,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/wildlife) -"aE" = (/obj/effect/holodeck_effect/sparks,/turf/open/floor/holofloor/plating/burnmix,/area/holodeck/rec_center/burn) -"aF" = (/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/court) -"aG" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/court) -"aH" = (/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/court) -"aI" = (/obj/structure/flora/grass/brown,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) -"aJ" = (/obj/structure/table,/obj/item/weapon/gun/energy/laser,/turf/open/floor/holofloor{tag = "icon-asteroidfloor (WEST)"; icon_state = "asteroidfloor"; dir = 8},/area/holodeck/rec_center/bunker) -"aK" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 4},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"aL" = (/obj/structure/table/wood/poker,/obj/item/clothing/mask/cigarette/pipe,/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"aM" = (/obj/structure/table/wood/poker,/obj/structure/table/wood/poker,/obj/effect/holodeck_effect/cards,/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"aN" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 8},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"aO" = (/obj/structure/statue/snow/snowman{anchored = 1},/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) -"aP" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 1},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"aQ" = (/obj/structure/chair/wood/wings,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) -"aR" = (/obj/structure/window/reinforced/tinted{icon_state = "rwindow"; dir = 4},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"aS" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"aT" = (/obj/structure/flora/tree/pine,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) -"aU" = (/obj/structure/chair/wood,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) -"aV" = (/obj/structure/table/wood,/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-05"; layer = 4.1; pixel_y = 10},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) -"aW" = (/turf/open/floor/holofloor{dir = 9; icon_state = "stairs-l"},/area/holodeck/rec_center/lounge) -"aX" = (/turf/open/floor/holofloor{dir = 9; icon_state = "stairs-r"},/area/holodeck/rec_center/lounge) -"aY" = (/turf/open/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/rec_center/court) -"aZ" = (/turf/open/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/rec_center/court) -"ba" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_y = 4},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) -"bb" = (/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) -"bc" = (/obj/structure/chair/comfy/brown{dir = 4},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) -"bd" = (/obj/structure/chair/comfy/brown{dir = 8},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) -"be" = (/obj/structure/table,/obj/item/stack/medical/bruise_pack{heal_brute = 10},/turf/open/floor/holofloor{tag = "icon-asteroid_warn_side (WEST)"; icon_state = "asteroid_warn_side"; dir = 8},/area/holodeck/rec_center/bunker) -"bf" = (/obj/structure/table/wood,/obj/item/device/instrument/violin,/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) -"bg" = (/obj/structure/chair/comfy/brown{buildstackamount = 0; dir = 1},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) -"bh" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/barman_recipes,/obj/item/clothing/mask/cigarette/pipe,/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) -"bi" = (/turf/open/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/rec_center/court) -"bj" = (/turf/open/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/rec_center/court) -"bk" = (/turf/open/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/rec_center/court) -"bl" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/closed/indestructible/riveted,/area/space) -"bm" = (/obj/effect/holodeck_effect/mobspawner/bee,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/anthophila) -"bn" = (/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"bo" = (/obj/structure/flora/ausbushes/sunnybush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"bp" = (/obj/structure/flora/ausbushes/genericbush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"bq" = (/obj/structure/table/glass,/obj/item/weapon/surgicaldrill,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHWEST)"; icon_state = "white_warn"; dir = 9},/area/holodeck/rec_center/medical) -"br" = (/obj/structure/table/glass,/obj/item/weapon/hemostat,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) -"bs" = (/obj/structure/table/glass,/obj/item/weapon/scalpel{pixel_y = 10},/obj/item/weapon/circular_saw,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) -"bt" = (/obj/structure/table/glass,/obj/item/weapon/retractor,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) -"bu" = (/obj/structure/table/glass,/obj/item/stack/medical/gauze,/obj/item/weapon/cautery,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHEAST)"; icon_state = "white_warn"; dir = 5},/area/holodeck/rec_center/medical) -"bv" = (/turf/open/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/rec_center/basketball) -"bw" = (/obj/structure/holohoop{layer = 3.9},/turf/open/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/rec_center/basketball) -"bx" = (/turf/open/floor/holofloor{dir = 5; icon_state = "red"},/area/holodeck/rec_center/basketball) -"by" = (/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) -"bz" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/obj/machinery/readybutton,/turf/open/floor/holofloor{tag = "icon-warningline"; icon_state = "warningline"; dir = 2},/area/holodeck/rec_center/thunderdome) -"bA" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/under/color/red,/obj/item/weapon/holo/esword/red,/turf/open/floor/holofloor{tag = "icon-warningline"; icon_state = "warningline"; dir = 2},/area/holodeck/rec_center/thunderdome) -"bB" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/turf/open/floor/holofloor{tag = "icon-warningline"; icon_state = "warningline"; dir = 2},/area/holodeck/rec_center/thunderdome) -"bC" = (/obj/machinery/readybutton,/turf/open/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/rec_center/dodgeball) -"bD" = (/turf/open/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/rec_center/dodgeball) -"bE" = (/turf/open/floor/holofloor{dir = 5; icon_state = "red"},/area/holodeck/rec_center/dodgeball) -"bF" = (/obj/effect/holodeck_effect/mobspawner/pet,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"bG" = (/obj/structure/flora/ausbushes/ppflowers,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"bH" = (/obj/effect/holodeck_effect/mobspawner/pet,/obj/structure/flora/ausbushes/brflowers,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"bI" = (/obj/structure/table/glass,/obj/item/weapon/surgical_drapes,/obj/item/weapon/razor,/turf/open/floor/holofloor{tag = "icon-white_warn (WEST)"; icon_state = "white_warn"; dir = 8},/area/holodeck/rec_center/medical) -"bJ" = (/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) -"bK" = (/turf/open/floor/holofloor{tag = "icon-white_warn (EAST)"; icon_state = "white_warn"; dir = 4},/area/holodeck/rec_center/medical) -"bL" = (/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/basketball) -"bM" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/basketball) -"bN" = (/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/basketball) -"bO" = (/obj/effect/overlay/palmtree_r,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) -"bP" = (/obj/effect/overlay/palmtree_l,/obj/effect/overlay/coconut,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) -"bQ" = (/turf/open/floor/holofloor/basalt,/area/holodeck/rec_center/thunderdome) -"bR" = (/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/dodgeball) -"bS" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/dodgeball) -"bT" = (/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/dodgeball) -"bU" = (/obj/structure/flora/ausbushes/brflowers,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"bV" = (/obj/item/weapon/storage/bag/easterbasket{name = "picnic basket"; pixel_y = 6},/turf/open/floor/holofloor{icon_state = "redbluefull"},/area/holodeck/rec_center/pet_lounge) -"bW" = (/obj/item/trash/plate,/turf/open/floor/holofloor{icon_state = "redbluefull"},/area/holodeck/rec_center/pet_lounge) -"bX" = (/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHWEST)"; icon_state = "white_warn"; dir = 10},/area/holodeck/rec_center/medical) -"bY" = (/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) -"bZ" = (/obj/structure/table/optable,/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) -"ca" = (/obj/machinery/computer/operating,/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) -"cb" = (/obj/structure/table/glass,/obj/item/clothing/gloves/color/latex/nitrile,/obj/item/clothing/suit/apron/surgical,/obj/item/clothing/mask/surgical,/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHEAST)"; icon_state = "white_warn"; dir = 6},/area/holodeck/rec_center/medical) -"cc" = (/turf/open/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/rec_center/basketball) -"cd" = (/obj/effect/holodeck_effect/mobspawner/monkey,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) -"ce" = (/turf/open/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/rec_center/dodgeball) -"cf" = (/obj/structure/flora/ausbushes/palebush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"cg" = (/obj/effect/holodeck_effect/mobspawner/pet,/turf/open/floor/holofloor{icon_state = "redbluefull"},/area/holodeck/rec_center/pet_lounge) -"ch" = (/obj/item/weapon/shovel/spade{pixel_x = 2; pixel_y = -2},/turf/open/floor/holofloor{icon_state = "redbluefull"},/area/holodeck/rec_center/pet_lounge) -"ci" = (/obj/structure/window{dir = 1},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) -"cj" = (/obj/effect/holodeck_effect/mobspawner/bee,/obj/item/clothing/head/beekeeper_head,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/anthophila) -"ck" = (/obj/structure/table/glass,/obj/machinery/reagentgrinder,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHWEST)"; icon_state = "white_warn"; dir = 9},/area/holodeck/rec_center/medical) -"cl" = (/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHEAST)"; icon_state = "white_warn"; dir = 5},/area/holodeck/rec_center/medical) -"cm" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/syringes{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/beakers,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) -"cn" = (/obj/machinery/washing_machine,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) -"co" = (/turf/open/floor/holofloor{dir = 10; icon_state = "red"},/area/holodeck/rec_center/basketball) -"cp" = (/turf/open/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/rec_center/basketball) -"cq" = (/turf/open/floor/holofloor{dir = 6; icon_state = "red"},/area/holodeck/rec_center/basketball) -"cr" = (/obj/item/clothing/under/color/rainbow,/obj/item/clothing/glasses/sunglasses,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) -"cs" = (/obj/structure/window,/turf/open/floor/holofloor/basalt,/area/holodeck/rec_center/thunderdome) -"ct" = (/obj/structure/window{dir = 1},/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 10; icon_state = "red"},/area/holodeck/rec_center/dodgeball) -"cu" = (/obj/structure/window{dir = 1},/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/rec_center/dodgeball) -"cv" = (/obj/structure/window{dir = 1},/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 6; icon_state = "red"},/area/holodeck/rec_center/dodgeball) -"cw" = (/obj/effect/holodeck_effect/mobspawner/bee,/obj/effect/decal/remains/human,/obj/item/clothing/suit/beekeeper_suit,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/anthophila) -"cx" = (/obj/effect/holodeck_effect/mobspawner/bee,/obj/item/weapon/melee/flyswatter,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/anthophila) -"cy" = (/obj/machinery/chem_master,/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHWEST)"; icon_state = "white_warn"; dir = 10},/area/holodeck/rec_center/medical) -"cz" = (/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHEAST)"; icon_state = "white_warn"; dir = 6},/area/holodeck/rec_center/medical) -"cA" = (/obj/structure/table/glass,/obj/item/device/healthanalyzer,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) -"cB" = (/obj/structure/closet/wardrobe/white,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) -"cC" = (/turf/open/floor/holofloor{dir = 9; icon_state = "green"},/area/holodeck/rec_center/basketball) -"cD" = (/turf/open/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/rec_center/basketball) -"cE" = (/turf/open/floor/holofloor{dir = 5; icon_state = "green"},/area/holodeck/rec_center/basketball) -"cF" = (/obj/item/toy/beach_ball,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) -"cG" = (/obj/structure/window{dir = 1},/turf/open/floor/holofloor/basalt,/area/holodeck/rec_center/thunderdome) -"cH" = (/obj/structure/window,/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 9; icon_state = "green"},/area/holodeck/rec_center/dodgeball) -"cI" = (/obj/structure/window,/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/rec_center/dodgeball) -"cJ" = (/obj/structure/window,/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 5; icon_state = "green"},/area/holodeck/rec_center/dodgeball) -"cK" = (/obj/structure/sink/puddle,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"cL" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"cM" = (/turf/open/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/rec_center/basketball) -"cN" = (/obj/item/toy/beach_ball/holoball,/turf/open/floor/holofloor,/area/holodeck/rec_center/basketball) -"cO" = (/turf/open/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/rec_center/basketball) -"cP" = (/turf/open/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/rec_center/dodgeball) -"cQ" = (/turf/open/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/rec_center/dodgeball) -"cR" = (/obj/machinery/hydroponics/soil,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"cS" = (/obj/machinery/hydroponics/soil,/obj/item/weapon/cultivator,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"cT" = (/obj/machinery/hydroponics/soil,/obj/effect/holodeck_effect/mobspawner/pet,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"cU" = (/obj/structure/flora/ausbushes/grassybush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"cV" = (/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/structure/window{dir = 1},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHWEST)"; icon_state = "white_warn"; dir = 9},/area/holodeck/rec_center/medical) -"cW" = (/obj/structure/window{icon_state = "rwindow"; dir = 8},/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/structure/window{dir = 1},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHEAST)"; icon_state = "white_warn"; dir = 5},/area/holodeck/rec_center/medical) -"cX" = (/obj/structure/window{icon_state = "rwindow"; dir = 8},/obj/machinery/computer/pandemic,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) -"cY" = (/turf/open/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/rec_center/basketball) -"cZ" = (/turf/open/floor/holofloor/beach/coast_t,/area/holodeck/rec_center/beach) -"da" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/holofloor/beach/coast_t,/area/holodeck/rec_center/beach) -"db" = (/obj/item/weapon/shovel/spade,/turf/open/floor/holofloor/beach/coast_t,/area/holodeck/rec_center/beach) -"dc" = (/turf/open/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/rec_center/dodgeball) -"dd" = (/obj/structure/flora/ausbushes/pointybush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) -"de" = (/turf/open/floor/holofloor{tag = "icon-white_warn (WEST)"; icon_state = "white_warn"; dir = 8},/area/holodeck/rec_center/medical) -"df" = (/turf/open/floor/holofloor{dir = 8; icon_state = "white_warn_corner"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/medical) -"dg" = (/obj/machinery/door/window/westleft,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) -"dh" = (/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) -"di" = (/turf/open/floor/holofloor/beach/coast_b,/area/holodeck/rec_center/beach) -"dj" = (/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/iv_drip{density = 0},/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHWEST)"; icon_state = "white_warn"; dir = 10},/area/holodeck/rec_center/medical) -"dk" = (/obj/structure/window{icon_state = "rwindow"; dir = 8},/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/iv_drip{density = 0},/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) -"dl" = (/obj/structure/window{icon_state = "rwindow"; dir = 8},/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 1},/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) -"dm" = (/obj/machinery/iv_drip{density = 0},/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) -"dn" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 1},/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHEAST)"; icon_state = "white_warn"; dir = 6},/area/holodeck/rec_center/medical) -"do" = (/turf/open/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/rec_center/basketball) -"dp" = (/obj/structure/holohoop{dir = 1; layer = 4.1},/turf/open/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/rec_center/basketball) -"dq" = (/turf/open/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/rec_center/basketball) -"dr" = (/turf/open/floor/holofloor/beach/water,/area/holodeck/rec_center/beach) -"ds" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/turf/open/floor/holofloor{tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1},/area/holodeck/rec_center/thunderdome) -"dt" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/under/color/green,/obj/item/weapon/holo/esword/green,/turf/open/floor/holofloor{tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1},/area/holodeck/rec_center/thunderdome) -"du" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/obj/machinery/readybutton,/turf/open/floor/holofloor{tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1},/area/holodeck/rec_center/thunderdome) -"dv" = (/turf/open/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/rec_center/dodgeball) -"dw" = (/turf/open/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/rec_center/dodgeball) -"dx" = (/obj/machinery/readybutton,/turf/open/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/rec_center/dodgeball) -"dy" = (/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/refuel) -"dz" = (/turf/open/floor/holofloor/grass,/turf/open/floor/holofloor{tag = "icon-warningline"; icon_state = "warningline"; dir = 2},/area/holodeck/rec_center/spacechess) -"dA" = (/obj/item/weapon/banner/blue,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) -"dB" = (/obj/structure/table/wood/fancy,/obj/item/clothing/suit/armor/riot/knight/blue,/obj/item/clothing/head/helmet/knight/blue,/obj/item/weapon/claymore/weak,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) -"dC" = (/obj/structure/table/wood/fancy,/obj/item/clothing/head/crown/fancy{pixel_y = 6},/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) -"dD" = (/obj/structure/table/wood/fancy,/obj/item/clothing/suit/armor/riot/knight/red,/obj/item/clothing/head/helmet/knight/red,/obj/item/weapon/claymore/weak,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) -"dE" = (/obj/item/weapon/banner/red,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) -"dF" = (/turf/open/floor/holofloor/hyperspace,/area/holodeck/rec_center/kobayashi) -"dG" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor/hyperspace,/area/holodeck/rec_center/kobayashi) -"dH" = (/obj/structure/closet{density = 0; opened = 1},/obj/item/clothing/suit/judgerobe,/obj/item/clothing/head/powdered_wig,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) -"dI" = (/obj/structure/table/wood/fancy,/obj/item/clothing/suit/nun,/obj/item/clothing/head/nun_hood,/obj/item/clothing/suit/holidaypriest,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) -"dJ" = (/obj/structure/table/wood/fancy,/obj/item/weapon/storage/book/bible,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) -"dK" = (/obj/structure/table/wood/fancy,/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) -"dL" = (/obj/structure/closet{name = "Evidence Closet"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) -"dM" = (/obj/machinery/conveyor/holodeck{dir = 5; icon_state = "conveyor0"; id = "holocoaster"; movedir = null; verted = -1},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) -"dN" = (/obj/machinery/conveyor/holodeck{dir = 8; id = "holocoaster"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) -"dO" = (/obj/machinery/conveyor/holodeck{dir = 6; id = "holocoaster"; movedir = null; verted = -1},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) -"dP" = (/turf/open/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/rec_center/firingrange) -"dQ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHWEST)"; icon_state = "white_warn"; dir = 9},/area/holodeck/rec_center/firingrange) -"dR" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/firingrange) -"dS" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHEAST)"; icon_state = "white_warn"; dir = 5},/area/holodeck/rec_center/firingrange) -"dT" = (/turf/open/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/rec_center/firingrange) -"dU" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/refuel) -"dV" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_viva"; name = "Black Rook"; tag = "icon-cutout_viva"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) -"dW" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_mime"; name = "Black Queen"; tag = "icon-cutout_mime"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) -"dX" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_clown"; name = "Black King"; tag = "icon-cutout_clown"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) -"dY" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_ian"; name = "Black Knight"; tag = "icon-cutout_ian"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) -"dZ" = (/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) -"ea" = (/obj/structure/chair/wood/wings,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) -"eb" = (/obj/structure/window/reinforced,/obj/machinery/mass_driver{dir = 1; icon_state = "mass_driver"; id = "trektorpedo1"; name = "photon torpedo tube"; tag = "icon-mass_driver (NORTH)"},/obj/item/toy/minimeteor{color = ""; icon = 'icons/effects/effects.dmi'; icon_state = "impact_laser"; name = "photon torpedo"},/turf/open/floor/holofloor/hyperspace,/area/holodeck/rec_center/kobayashi) -"ec" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/computer/arcade/orion_trail{desc = "A test for cadets"; events = list("Raiders" = 3, "Interstellar Flux" = 1, "Illness" = 3, "Breakdown" = 2, "Malfunction" = 2, "Collision" = 1, "Spaceport" = 2); icon = 'icons/obj/machines/particle_accelerator.dmi'; icon_state = "control_boxp"; name = "Kobayashi Maru control computer"; prizes = list(/obj/item/weapon/paper/trek_diploma = 1); settlers = list("Kirk","Worf","Gene")},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"ed" = (/obj/machinery/button/massdriver{id = "trektorpedo1"; layer = 3.9; name = "photon torpedo button"; pixel_x = -16; pixel_y = -5},/obj/machinery/button/massdriver{id = "trektorpedo2"; layer = 3.9; name = "photon torpedo button"; pixel_x = 16; pixel_y = -5},/obj/machinery/computer/arcade/orion_trail{desc = "A test for cadets"; events = list("Raiders" = 3, "Interstellar Flux" = 1, "Illness" = 3, "Breakdown" = 2, "Malfunction" = 2, "Collision" = 1, "Spaceport" = 2); icon = 'icons/obj/machines/particle_accelerator.dmi'; icon_state = "control_boxp"; name = "Kobayashi Maru control computer"; prizes = list(/obj/item/weapon/paper/trek_diploma = 1); settlers = list("Kirk","Worf","Gene")},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"ee" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/computer/arcade/orion_trail{desc = "A test for cadets"; events = list("Raiders" = 3, "Interstellar Flux" = 1, "Illness" = 3, "Breakdown" = 2, "Malfunction" = 2, "Collision" = 1, "Spaceport" = 2); icon = 'icons/obj/machines/particle_accelerator.dmi'; icon_state = "control_boxp"; name = "Kobayashi Maru control computer"; prizes = list(/obj/item/weapon/paper/trek_diploma = 1); settlers = list("Kirk","Worf","Gene")},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"ef" = (/obj/structure/window/reinforced,/obj/machinery/mass_driver{dir = 1; icon_state = "mass_driver"; id = "trektorpedo2"; name = "photon torpedo tube"; tag = "icon-mass_driver (NORTH)"},/obj/item/toy/minimeteor{color = ""; icon = 'icons/effects/effects.dmi'; icon_state = "impact_laser"; name = "photon torpedo"},/turf/open/floor/holofloor/hyperspace,/area/holodeck/rec_center/kobayashi) -"eg" = (/obj/structure/chair{dir = 4},/turf/open/floor/holofloor{tag = "icon-chapel (NORTH)"; icon_state = "chapel"; dir = 1},/area/holodeck/rec_center/chapelcourt) -"eh" = (/turf/open/floor/holofloor{tag = "icon-chapel (EAST)"; icon_state = "chapel"; dir = 4},/area/holodeck/rec_center/chapelcourt) -"ei" = (/obj/structure/chair,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) -"ej" = (/turf/open/floor/holofloor{tag = "icon-chapel (NORTH)"; icon_state = "chapel"; dir = 1},/area/holodeck/rec_center/chapelcourt) -"ek" = (/obj/structure/chair{dir = 8},/turf/open/floor/holofloor{tag = "icon-chapel (EAST)"; icon_state = "chapel"; dir = 4},/area/holodeck/rec_center/chapelcourt) -"el" = (/obj/machinery/conveyor/holodeck{id = "holocoaster"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) -"em" = (/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) -"en" = (/obj/machinery/conveyor/holodeck{dir = 1; id = "holocoaster"; layer = 2.5},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) -"eo" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{tag = "icon-white_warn (WEST)"; icon_state = "white_warn"; dir = 8},/area/holodeck/rec_center/firingrange) -"ep" = (/obj/structure/target_stake,/obj/machinery/magnetic_module,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/firingrange) -"eq" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/holofloor{tag = "icon-white_warn (EAST)"; icon_state = "white_warn"; dir = 4},/area/holodeck/rec_center/firingrange) -"er" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_greytide"; name = "Black Pawn"; tag = "icon-cutout_greytide"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) -"es" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_greytide"; name = "Black Pawn"; tag = "icon-cutout_greytide"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) -"et" = (/obj/machinery/door/window/westleft{dir = 2; icon_state = "right"},/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) -"eu" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) -"ev" = (/obj/machinery/door/window/westleft{dir = 2},/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) -"ew" = (/obj/structure/table/glass,/obj/machinery/recharger,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"ex" = (/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"ey" = (/obj/structure/chair/comfy{tag = "icon-comfychair (NORTH)"; icon_state = "comfychair"; dir = 1},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"ez" = (/obj/structure/table/glass,/obj/item/weapon/gun/energy/gun/mini/practice_phaser,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"eA" = (/obj/structure/chair{dir = 4},/turf/open/floor/holofloor{dir = 8; icon_state = "chapel"; tag = "icon-chapel"},/area/holodeck/rec_center/chapelcourt) -"eB" = (/turf/open/floor/holofloor{tag = "icon-chapel"; icon_state = "chapel"; dir = 2},/area/holodeck/rec_center/chapelcourt) -"eC" = (/obj/item/weapon/gavelblock,/obj/item/weapon/gavelhammer,/obj/structure/table/wood,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) -"eD" = (/turf/open/floor/holofloor{dir = 8; icon_state = "chapel"; tag = "icon-chapel"},/area/holodeck/rec_center/chapelcourt) -"eE" = (/obj/structure/chair{dir = 8},/turf/open/floor/holofloor{tag = "icon-chapel"; icon_state = "chapel"; dir = 2},/area/holodeck/rec_center/chapelcourt) -"eF" = (/obj/item/weapon/shovel,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) -"eG" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHWEST)"; icon_state = "white_warn"; dir = 10},/area/holodeck/rec_center/firingrange) -"eH" = (/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/firingrange) -"eI" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHEAST)"; icon_state = "white_warn"; dir = 6},/area/holodeck/rec_center/firingrange) -"eJ" = (/obj/item/weapon/weldingtool,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/refuel) -"eK" = (/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) -"eL" = (/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) -"eM" = (/turf/open/floor/holofloor{tag = "icon-stairs-old (WEST)"; icon_state = "stairs-old"; dir = 8},/area/holodeck/rec_center/thunderdome1218) -"eN" = (/obj/structure/table/wood,/obj/item/weapon/melee/chainofcommand{name = "chain whip"},/obj/item/weapon/twohanded/spear,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) -"eO" = (/obj/structure/table/wood,/obj/item/weapon/scythe,/obj/item/weapon/twohanded/spear,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) -"eP" = (/obj/structure/table/wood,/obj/item/weapon/tailclub,/obj/item/weapon/twohanded/spear,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) -"eQ" = (/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) -"eR" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/firingrange) -"eS" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) -"eT" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/firingrange) -"eU" = (/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) -"eV" = (/obj/machinery/modular_computer/console/preset/civilian,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"eW" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"eX" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"eY" = (/obj/machinery/computer/station_alert,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"eZ" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor{tag = "icon-chapel (NORTH)"; icon_state = "chapel"; dir = 1},/area/holodeck/rec_center/chapelcourt) -"fa" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor{tag = "icon-chapel (EAST)"; icon_state = "chapel"; dir = 4},/area/holodeck/rec_center/chapelcourt) -"fb" = (/obj/machinery/modular_computer/console/preset/civilian,/obj/structure/window/reinforced,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"fc" = (/obj/machinery/computer/atmos_alert,/obj/structure/window/reinforced,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"fd" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor{dir = 8; icon_state = "chapel"; tag = "icon-chapel"},/area/holodeck/rec_center/chapelcourt) -"fe" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor{tag = "icon-chapel"; icon_state = "chapel"; dir = 2},/area/holodeck/rec_center/chapelcourt) -"ff" = (/obj/machinery/conveyor/holodeck{id = "holocoaster"},/obj/structure/chair/office{dir = 1; name = "coaster car"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) -"fg" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "holocoaster"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) -"fh" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"fi" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_greytide"; name = "White Pawn"; tag = "icon-cutout_greytide"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) -"fj" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_greytide"; name = "White Pawn"; tag = "icon-cutout_greytide"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) -"fk" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) -"fl" = (/obj/machinery/door/window/westleft{dir = 2},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) -"fm" = (/obj/machinery/door/window/westleft{dir = 2; icon_state = "right"},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"fn" = (/obj/structure/table,/obj/item/weapon/folder,/obj/item/weapon/pen/blue,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) -"fo" = (/obj/structure/table,/obj/item/weapon/folder,/obj/item/weapon/pen,/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) -"fp" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/folder,/obj/item/weapon/pen/red,/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) -"fq" = (/obj/machinery/door/window/westleft{dir = 2},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) -"fr" = (/obj/structure/closet/crate/miningcar{can_buckle = 1; desc = "Great for mining!"; name = "minecart"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) -"fs" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/firingrange) -"ft" = (/obj/item/weapon/paper/range,/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) -"fu" = (/obj/structure/table/reinforced,/obj/machinery/magnetic_controller{autolink = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/firingrange) -"fv" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_viva"; name = "White Rook"; tag = "icon-cutout_viva"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) -"fw" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_mime"; name = "White Queen"; tag = "icon-cutout_mime"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) -"fx" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_clown"; name = "White King"; tag = "icon-cutout_clown"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) -"fy" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_ian"; name = "White Knight"; tag = "icon-cutout_ian"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) -"fz" = (/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) -"fA" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor,/area/holodeck/rec_center/kobayashi) -"fB" = (/turf/open/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/rec_center/firingrange) -"fC" = (/turf/open/floor/holofloor/grass,/turf/open/floor/holofloor{tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1},/area/holodeck/rec_center/spacechess) -"fD" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 1},/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) -"fE" = (/obj/structure/rack,/obj/item/clothing/under/trek/medsci,/obj/item/clothing/under/trek/medsci,/obj/item/clothing/under/trek/command,/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) -"fF" = (/turf/open/floor/holofloor{tag = "icon-neutral"; icon_state = "neutral"; dir = 2},/area/holodeck/rec_center/kobayashi) -"fG" = (/obj/structure/rack,/obj/item/clothing/under/trek/engsec,/obj/item/clothing/under/trek/engsec,/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) -"fH" = (/obj/machinery/conveyor/holodeck{dir = 9; icon_state = "conveyor0"; id = "holocoaster"; tag = "icon-conveyor0 (NORTHWEST)"; verted = -1},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) -"fI" = (/obj/machinery/conveyor/holodeck{dir = 4; id = "holocoaster"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) -"fJ" = (/obj/machinery/conveyor/holodeck{dir = 10; id = "holocoaster"; verted = -1},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) -"fK" = (/obj/item/target,/obj/item/target/clown,/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) -"fL" = (/obj/item/target,/obj/item/target/syndicate,/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) -"fM" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser/practice,/obj/item/clothing/ears/earmuffs,/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) -"fN" = (/obj/structure/window/reinforced{dir = 1},/turf/closed/indestructible/riveted,/area/space) -"fO" = (/turf/closed/indestructible/riveted,/area/tdome/arena_source) -"fP" = (/obj/machinery/igniter,/turf/open/floor/plasteel,/area/tdome/arena_source) -"fQ" = (/turf/open/floor/plasteel,/area/tdome/arena_source) -"fR" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/red,/turf/open/floor/plasteel/black,/area/tdome/arena_source) -"fS" = (/obj/machinery/door/poddoor{id = "thunderdomegen"; name = "General Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena_source) -"fT" = (/obj/machinery/door/poddoor{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/open/floor/plasteel,/area/tdome/arena_source) -"fU" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/arena_source) -"fV" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/arena_source) -"fW" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/green,/turf/open/floor/plasteel/black,/area/tdome/arena_source) -"fX" = (/turf/open/floor/bluegrid,/area/tdome/arena_source) -"fY" = (/obj/machinery/flasher{id = "tdomeflash"; name = "Thunderdome Flash"},/turf/open/floor/bluegrid,/area/tdome/arena_source) -"fZ" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena_source) -"ga" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena_source) -"gb" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena_source) -"gc" = (/turf/closed/indestructible/riveted,/area/start) -"gd" = (/obj/effect/landmark/start,/turf/open/floor/plating,/area/start) -"ge" = (/turf/closed/indestructible/riveted,/area/ctf) -"gf" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHWEST)"; dir = 9},/area/ctf) -"gg" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTH)"; dir = 1},/area/ctf) -"gh" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHEAST)"; dir = 5},/area/ctf) -"gi" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHWEST)"; dir = 9},/area/ctf) -"gj" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTH)"; dir = 1},/area/ctf) -"gk" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHEAST)"; dir = 5},/area/ctf) -"gl" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (WEST)"; dir = 8},/area/ctf) -"gm" = (/turf/open/floor/plasteel/black,/area/ctf) -"gn" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (EAST)"; dir = 4},/area/ctf) -"go" = (/turf/open/floor/plasteel/blue,/area/ctf) -"gp" = (/turf/open/floor/plasteel/darkblue,/area/ctf) -"gq" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/circuit,/area/ctf) -"gr" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/bluespace,/area/ctf) -"gs" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/bluespace,/area/ctf) -"gt" = (/turf/open/floor/plasteel/bluespace,/area/ctf) -"gu" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (WEST)"; dir = 8},/area/ctf) -"gv" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/circuit/rcircuit,/area/ctf) -"gw" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (EAST)"; dir = 4},/area/ctf) -"gx" = (/turf/open/floor/plasteel/red,/area/ctf) -"gy" = (/obj/structure/kitchenspike,/turf/open/floor/plasteel/black,/area/ctf) -"gz" = (/turf/closed/indestructible/splashscreen,/area/start) -"gA" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHWEST)"; dir = 10},/area/ctf) -"gB" = (/turf/open/floor/plasteel/darkblue/side,/area/ctf) -"gC" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHEAST)"; dir = 6},/area/ctf) -"gD" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHWEST)"; dir = 10},/area/ctf) -"gE" = (/turf/open/floor/plasteel/darkred/side,/area/ctf) -"gF" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHEAST)"; dir = 6},/area/ctf) -"gG" = (/obj/structure/window/reinforced/fulltile{obj_integrity = 5000; max_integrity = 5000; name = "hardened window"},/turf/open/floor/plating,/area/ctf) -"gH" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline,/area/ctf) -"gI" = (/turf/open/floor/plasteel/darkblue/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)"; dir = 9},/area/ctf) -"gJ" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"gK" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"gL" = (/turf/open/floor/plasteel/darkblue/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"gM" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) -"gN" = (/obj/machinery/power/emitter/energycannon,/turf/open/floor/plating,/area/ctf) -"gO" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) -"gP" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) -"gQ" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (WEST)"; dir = 8},/area/ctf) -"gR" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)"; dir = 4},/area/ctf) -"gS" = (/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/ctf) -"gT" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) -"gU" = (/turf/open/floor/plating/warnplate{dir = 8},/area/ctf) -"gV" = (/turf/open/floor/plating,/area/ctf) -"gW" = (/turf/open/floor/plating/airless/warnplate{dir = 4; luminosity = 2},/area/ctf) -"gX" = (/turf/open/floor/plasteel/darkblue/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) -"gY" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (NORTH)"; dir = 1},/area/ctf) -"gZ" = (/turf/open/floor/plasteel/darkblue/corner,/area/ctf) -"ha" = (/turf/open/floor/plating/warnplate{dir = 1},/area/ctf) -"hb" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) -"hc" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline,/area/ctf) -"hd" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline,/area/ctf) -"he" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) -"hf" = (/obj/machinery/power/emitter/energycannon{tag = "icon-emitter (NORTH)"; icon_state = "emitter"; dir = 1},/turf/open/floor/plating,/area/ctf) -"hg" = (/obj/structure/trap/ctf/blue,/turf/open/floor/plasteel/blue,/area/ctf) -"hh" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)"; dir = 9},/area/ctf) -"hi" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"hj" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) -"hk" = (/turf/open/floor/plasteel/darkred,/area/ctf) -"hl" = (/obj/structure/trap/ctf/red,/turf/open/floor/plasteel/darkred,/area/ctf) -"hm" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) -"hn" = (/turf/open/floor/plasteel/circuit,/area/ctf) -"ho" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) -"hp" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) -"hq" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline,/area/ctf) -"hr" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) -"hs" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/circuit/gcircuit/off,/area/ctf) -"ht" = (/obj/structure/trap/ctf/red,/turf/open/floor/plasteel/red,/area/ctf) -"hu" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHWEST)"; dir = 9},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)"; dir = 9},/area/ctf) -"hv" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"hw" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHEAST)"; dir = 5},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"hx" = (/turf/open/floor/plasteel/circuit/gcircuit/off,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"hy" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHWEST)"; dir = 9},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"hz" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"hA" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHEAST)"; dir = 5},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) -"hB" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) -"hC" = (/turf/open/floor/plasteel/circuit/gcircuit/off,/area/ctf) -"hD" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) -"hE" = (/turf/open/floor/plasteel/circuit/rcircuit,/area/ctf) -"hF" = (/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) -"hG" = (/obj/machinery/capture_the_flag/blue,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) -"hH" = (/obj/item/weapon/twohanded/required/ctf/blue,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) -"hI" = (/obj/item/weapon/twohanded/required/ctf/red,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) -"hJ" = (/obj/machinery/capture_the_flag/red,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) -"hK" = (/obj/effect/landmark/shuttle_import,/turf/open/space,/area/space) -"hL" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHWEST)"; dir = 10},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) -"hM" = (/turf/open/floor/plasteel/darkblue/side,/turf/open/floor/plasteel/warningline,/area/ctf) -"hN" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHEAST)"; dir = 6},/turf/open/floor/plasteel/warningline,/area/ctf) -"hO" = (/turf/open/floor/plasteel/circuit/gcircuit/off,/turf/open/floor/plasteel/warningline,/area/ctf) -"hP" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHWEST)"; dir = 10},/turf/open/floor/plasteel/warningline,/area/ctf) -"hQ" = (/turf/open/floor/plasteel/darkred/side,/turf/open/floor/plasteel/warningline,/area/ctf) -"hR" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHEAST)"; dir = 6},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) -"hS" = (/turf/closed/wall/mineral/titanium/overspace,/area/centcom/evac) -"hT" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) -"hU" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) -"hV" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) -"hW" = (/obj/docking_port/stationary{dir = 1; dwidth = 1; height = 4; id = "pod4_away"; name = "recovery ship"; width = 3},/turf/open/space,/area/space) -"hX" = (/obj/docking_port/stationary{dir = 1; dwidth = 1; height = 4; id = "pod3_away"; name = "recovery ship"; width = 3},/turf/open/space,/area/space) -"hY" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)"; dir = 9},/area/ctf) -"hZ" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"ia" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) -"ib" = (/turf/closed/wall/mineral/titanium,/area/centcom/evac) -"ic" = (/obj/structure/window/reinforced,/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) -"id" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/plating,/area/centcom/evac) -"ie" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/open/floor/plating,/area/centcom/evac) -"if" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) -"ig" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) -"ih" = (/turf/open/floor/plating,/area/centcom/evac) -"ii" = (/turf/open/floor/plating,/turf/closed/wall/mineral/titanium/interior,/area/centcom/evac) -"ij" = (/turf/open/floor/mineral/titanium/blue,/turf/closed/wall/mineral/titanium/interior,/area/centcom/evac) -"ik" = (/obj/structure/closet/emcloset,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"il" = (/turf/open/floor/mineral/titanium/yellow,/area/centcom/evac) -"im" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"in" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/fire{pixel_x = -2; pixel_y = 4},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"io" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 0},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"ip" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) -"iq" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline,/area/ctf) -"ir" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) -"is" = (/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"it" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"iu" = (/turf/open/floor/plasteel/darkred/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"iv" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) -"iw" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) -"ix" = (/turf/open/floor/plasteel/darkred/corner,/area/ctf) -"iy" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)"; dir = 1},/area/ctf) -"iz" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) -"iA" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) -"iB" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) -"iC" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) -"iD" = (/obj/structure/table/reinforced,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) -"iE" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"iF" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"iG" = (/obj/machinery/computer/secure_data,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) -"iH" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/plastitanium,/area/centcom/evac) -"iI" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/plastitanium,/area/centcom/evac) -"iJ" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/stamp,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) -"iK" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (EAST)"; dir = 4},/area/ctf) -"iL" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)"; dir = 8},/area/ctf) -"iM" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) -"iN" = (/obj/structure/table,/obj/item/device/assembly/flash/handheld,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) -"iO" = (/turf/open/floor/mineral/plastitanium,/area/centcom/evac) -"iP" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"iQ" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) -"iR" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline,/area/ctf) -"iS" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline,/area/ctf) -"iT" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) -"iU" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) -"iV" = (/obj/machinery/door/window/northright{base_state = "right"; dir = 4; icon_state = "right"; name = "Security Desk"; req_access_txt = "103"},/turf/open/floor/mineral/plastitanium,/area/centcom/evac) -"iW" = (/obj/docking_port/stationary{dir = 4; dwidth = 1; height = 4; id = "pod2_away"; name = "recovery ship"; width = 3},/turf/open/space,/area/space) -"iX" = (/obj/structure/bed,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"iY" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/centcom/evac) -"iZ" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/mineral/titanium/yellow,/area/centcom/evac) -"ja" = (/obj/docking_port/stationary{dir = 4; dwidth = 2; height = 7; id = "pod1_away"; name = "recovery ship"; width = 5},/turf/open/space,/area/space) -"jb" = (/obj/structure/table,/obj/structure/bedsheetbin,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"jc" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"jd" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"je" = (/obj/machinery/door/airlock/shuttle{name = "Cockpit"; req_access_txt = "109"},/turf/open/floor/mineral/titanium/yellow,/area/centcom/evac) -"jf" = (/obj/structure/table,/obj/item/device/radio/off,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"jg" = (/obj/structure/chair{dir = 4; name = "Prosecution"},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"jh" = (/obj/structure/filingcabinet,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"ji" = (/obj/structure/chair,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"jj" = (/turf/closed/wall/mineral/titanium,/area/shuttle/escape) -"jk" = (/obj/machinery/status_display,/turf/closed/wall/mineral/titanium,/area/shuttle/escape) -"jl" = (/obj/structure/table,/obj/item/weapon/storage/lockbox,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"jm" = (/obj/structure/table,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"jn" = (/obj/machinery/computer/shuttle,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"jo" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"jp" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) -"jq" = (/turf/closed/indestructible/riveted,/area/centcom/ferry) -"jr" = (/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"js" = (/turf/open/floor/mineral/plastitanium,/area/shuttle/escape) -"jt" = (/turf/open/floor/plasteel/black,/area/centcom/ferry) -"ju" = (/turf/open/floor/plasteel/darkwarning{tag = "icon-warndark (EAST)"; dir = 4},/area/centcom/ferry) -"jv" = (/turf/open/floor/plasteel/delivery,/area/centcom/ferry) -"jw" = (/obj/machinery/door/airlock/external{name = "Backup Emergency Escape Shuttle"},/turf/open/floor/plasteel/delivery,/area/centcom/ferry) -"jx" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/stationary{dir = 4; dwidth = 3; height = 8; id = "backup_away"; name = "Backup Shuttle Dock"; width = 8},/obj/docking_port/mobile/emergency/backup{dwidth = 3},/turf/open/floor/plating,/area/shuttle/escape) -"jy" = (/obj/structure/chair/office/light{dir = 4},/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"jz" = (/obj/structure/table/wood,/obj/item/weapon/paper{info = "Due to circumstances beyond our control, your Emergency Evacuation Shuttle is out of service.

We apologise for the inconvinience this may cause you.

Please enjoy the use of this complementary book.

Sincerely,
Centcom Operations Demolitions Examination Retribution Bugfixing Underlining Services"},/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"jA" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/random,/turf/open/floor/mineral/titanium,/area/shuttle/escape) -"jB" = (/turf/closed/indestructible/fakedoor,/area/centcom/ferry) -"jC" = (/obj/machinery/door/airlock/centcom{name = "Centcom Backup Docks"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"jD" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/black,/area/centcom/ferry) -"jE" = (/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/open/floor/plasteel/black,/area/centcom/ferry) -"jF" = (/obj/structure/reagent_dispensers/water_cooler,/turf/open/floor/plasteel/black,/area/centcom/ferry) -"jG" = (/obj/machinery/status_display{density = 0; pixel_y = 32; supply_display = 1},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"jH" = (/obj/item/weapon/twohanded/required/kirbyplants,/obj/machinery/status_display{pixel_y = 32},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"jI" = (/obj/structure/chair/office/dark,/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"jJ" = (/obj/structure/table/reinforced,/turf/open/floor/vault,/area/centcom/ferry) -"jK" = (/obj/structure/chair/office/dark{dir = 8},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"jL" = (/obj/structure/chair/office/dark{dir = 4},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"jM" = (/obj/machinery/shuttle_manipulator,/turf/open/floor/plasteel/circuit,/area/centcom/ferry) -"jN" = (/turf/open/floor/plasteel/circuit,/area/centcom/ferry) -"jO" = (/obj/structure/extinguisher_cabinet{pixel_x = 28},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"jP" = (/obj/structure/closet/secure_closet/ertCom,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"jQ" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"jR" = (/obj/structure/table/reinforced,/obj/item/weapon/c4,/obj/item/weapon/c4{pixel_x = 7},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"jS" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/gun/syringe/rapidsyringe,/obj/structure/extinguisher_cabinet{pixel_y = 28},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"jT" = (/obj/structure/closet/secure_closet/ertEngi,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"jU" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/obj/item/weapon/reagent_containers/food/drinks/bottle/tequila,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka{pixel_x = -5},/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey{pixel_x = 5},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"jV" = (/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"jW" = (/obj/machinery/door/poddoor/ert,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"jX" = (/obj/structure/chair/office/dark{dir = 1},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"jY" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/drinkingglasses,/turf/open/floor/plasteel/black,/area/centcom/ferry) -"jZ" = (/turf/closed/indestructible/riveted,/area/centcom/prison) -"ka" = (/turf/open/floor/plasteel/darkgreen/side{dir = 4},/area/centcom/ferry) -"kb" = (/obj/machinery/door/poddoor/shutters/preopen{id = "adminshut"; name = "Administrative Shutters"},/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/ferry) -"kc" = (/turf/open/floor/wood,/area/centcom/ferry) -"kd" = (/obj/effect/landmark{name = "prisonwarp"},/turf/open/floor/plasteel,/area/centcom/prison) -"ke" = (/obj/structure/closet/secure_closet/ertSec,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"kf" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/emps,/obj/item/weapon/gun/energy/ionrifle{pin = /obj/item/device/firing_pin},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"kg" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/gun/syringe/rapidsyringe,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"kh" = (/obj/structure/closet/secure_closet/ertMed,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) -"ki" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/open/floor/vault,/area/centcom/ferry) -"kj" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 5},/obj/item/weapon/pen/blue,/turf/open/floor/vault,/area/centcom/ferry) -"kk" = (/obj/machinery/door/airlock/centcom{name = "Administrative Office"; opacity = 1; req_access_txt = "109"},/turf/open/floor/wood,/area/centcom/ferry) -"kl" = (/obj/structure/chair/office/dark,/turf/open/floor/wood,/area/centcom/ferry) -"km" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/ferry) -"kn" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/centcom/ferry) -"ko" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/centcom/ferry) -"kp" = (/obj/machinery/door/airlock/centcom{name = "briefing room"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/ferry) -"kq" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin,/turf/open/floor/carpet,/area/centcom/ferry) -"kr" = (/obj/structure/table/wood,/obj/item/weapon/pen,/turf/open/floor/carpet,/area/centcom/ferry) -"ks" = (/turf/open/floor/carpet,/area/centcom/ferry) -"kt" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/ferry) -"ku" = (/obj/machinery/door/poddoor/shutters/preopen{id = "adminshut"; name = "Administrative Shutters"},/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/ferry) -"kv" = (/obj/machinery/button/door{id = "adminshut"; name = "Administrative Shutter-Control"; pixel_y = 26},/turf/open/floor/carpet,/area/centcom/ferry) -"kw" = (/obj/structure/chair/comfy/black{dir = 1},/turf/open/floor/carpet,/area/centcom/ferry) -"kx" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 9},/area/centcom/ferry) -"ky" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 6},/area/centcom/ferry) -"kz" = (/obj/machinery/door/poddoor/shutters/preopen{id = "adminshut"; name = "Administrative Shutters"},/turf/closed/indestructible/fakeglass,/area/centcom/ferry) -"kA" = (/obj/structure/showcase/fakesec,/turf/open/floor/carpet,/area/centcom/ferry) -"kB" = (/obj/structure/filingcabinet,/turf/open/floor/carpet,/area/centcom/ferry) -"kC" = (/obj/structure/reagent_dispensers/water_cooler,/turf/open/floor/carpet,/area/centcom/ferry) -"kD" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/ferry) -"kE" = (/obj/machinery/computer/shuttle/ferry,/turf/open/floor/plasteel/darkwarning{dir = 8},/area/centcom/ferry) -"kF" = (/turf/closed/indestructible/riveted,/area/centcom/evac) -"kG" = (/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 12; id = "ferry_away"; name = "unknown"; width = 5},/turf/open/space,/area/space) -"kH" = (/obj/machinery/door/airlock/external{name = "Ferry Airlock"; req_access_txt = "0"},/turf/open/floor/plasteel/delivery,/area/centcom/ferry) -"kI" = (/turf/open/floor/plasteel/darkwarning{dir = 8},/area/centcom/ferry) -"kJ" = (/turf/open/floor/plasteel/darkgreen/corner{dir = 4},/area/centcom/ferry) -"kK" = (/obj/structure/mirror{pixel_y = 32},/obj/structure/dresser,/turf/open/floor/wood,/area/centcom/ferry) -"kL" = (/obj/machinery/vending/autodrobe,/turf/open/floor/wood,/area/centcom/ferry) -"kM" = (/turf/open/floor/plasteel/darkred/side{dir = 9},/area/centcom/evac) -"kN" = (/turf/open/floor/plasteel/darkred/side{dir = 1},/area/centcom/evac) -"kO" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/open/floor/plasteel/darkred/side{dir = 5},/area/centcom/evac) -"kP" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 5},/area/centcom/ferry) -"kQ" = (/obj/machinery/door/airlock/centcom{name = "Dressing Room"; opacity = 1; req_access_txt = "0"},/turf/open/floor/wood,/area/centcom/ferry) -"kR" = (/obj/machinery/vending/clothing,/turf/open/floor/wood,/area/centcom/ferry) -"kS" = (/turf/closed/indestructible/fakedoor{name = "Centcom Security"},/area/centcom/evac) -"kT" = (/turf/open/floor/plasteel/black,/area/centcom/evac) -"kU" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 10},/area/centcom/ferry) -"kV" = (/turf/open/floor/plasteel/darkgreen/corner,/area/centcom/ferry) -"kW" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_y = 4},/obj/item/weapon/pen,/turf/open/floor/wood,/area/centcom/ferry) -"kX" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/turf/open/floor/plasteel/darkred/side{dir = 8},/area/centcom/evac) -"kY" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel/black,/area/centcom/evac) -"kZ" = (/obj/structure/showcase/fakesec,/turf/open/floor/plasteel/black,/area/centcom/evac) -"la" = (/turf/closed/indestructible/fakeglass,/area/centcom/ferry) -"lb" = (/obj/structure/chair/comfy/black{dir = 4},/turf/open/floor/wood,/area/centcom/ferry) -"lc" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/centcom/ferry) -"ld" = (/obj/machinery/door/window/northleft{dir = 2; name = "Centcom Security"; req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/evac) -"le" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/darkred/side{dir = 10},/area/centcom/evac) -"lf" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/plasteel/darkred/side{dir = 2},/area/centcom/evac) -"lg" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/darkred/side{dir = 2},/area/centcom/evac) -"lh" = (/obj/machinery/door/airlock/centcom{name = "Transport Shuttle"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel/darkgreen/side{dir = 2},/area/centcom/ferry) -"li" = (/turf/closed/indestructible/riveted,/area/centcom/control) -"lj" = (/obj/structure/flora/ausbushes/brflowers,/turf/open/floor/grass,/area/centcom/control) -"lk" = (/obj/structure/flora/ausbushes/palebush,/turf/open/floor/grass,/area/centcom/control) -"ll" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/control) -"lm" = (/turf/open/floor/plasteel/green/side{dir = 1},/area/centcom/control) -"ln" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 9},/area/centcom/evac) -"lo" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/centcom/evac) -"lp" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/centcom/evac) -"lq" = (/obj/machinery/door/airlock/centcom{name = "Centcom Security"; opacity = 1; req_access_txt = "0"},/turf/open/floor/plasteel/black,/area/centcom/evac) -"lr" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/evac) -"ls" = (/turf/closed/indestructible/fakeglass,/area/centcom/control) -"lt" = (/turf/open/floor/plasteel,/area/centcom/control) -"lu" = (/obj/item/weapon/twohanded/required/kirbyplants,/turf/open/floor/plasteel/red/side{dir = 9},/area/centcom/evac) -"lv" = (/obj/structure/chair,/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) -"lw" = (/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) -"lx" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/toy/crossbow,/obj/item/toy/foamblade,/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) -"ly" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/toy/sword,/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) -"lz" = (/turf/closed/indestructible/fakeglass,/area/centcom/evac) -"lA" = (/turf/open/floor/plasteel/yellowsiding{dir = 8},/area/centcom/evac) -"lB" = (/turf/open/floor/plasteel,/area/centcom/evac) -"lC" = (/turf/open/floor/plasteel/warning{dir = 4},/area/centcom/evac) -"lD" = (/obj/machinery/door/poddoor/shuttledock,/turf/open/floor/engine,/area/centcom/evac) -"lE" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/control) -"lF" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/red/side{dir = 8},/area/centcom/evac) -"lG" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel,/area/centcom/evac) -"lH" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/centcom/evac) -"lI" = (/turf/open/floor/grass,/area/centcom/control) -"lJ" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/green/side{dir = 8},/area/centcom/control) -"lK" = (/turf/open/floor/plasteel/warning{dir = 4},/area/centcom/control) -"lL" = (/obj/machinery/door/airlock/centcom{name = "Centcom Customs"; opacity = 1; req_access_txt = "109"},/turf/open/floor/plasteel/black,/area/centcom/control) -"lM" = (/turf/open/floor/plasteel/black,/area/centcom/control) -"lN" = (/obj/structure/table,/turf/open/floor/plasteel/black,/area/centcom/control) -"lO" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/red/side{dir = 2},/area/centcom/evac) -"lP" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/plasteel/red/side{dir = 2},/area/centcom/evac) -"lQ" = (/obj/structure/table/reinforced,/obj/item/toy/carpplushie,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/red/side{dir = 6},/area/centcom/evac) -"lR" = (/turf/open/space/transit,/area/space) -"lS" = (/turf/closed/indestructible/riveted,/area/centcom/supply) -"lT" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/control) -"lU" = (/turf/open/floor/plasteel/green/corner,/area/centcom/control) -"lV" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/open/floor/plasteel/black,/area/centcom/control) -"lW" = (/turf/open/floor/plasteel/yellowsiding{dir = 1},/area/centcom/evac) -"lX" = (/turf/open/floor/plasteel/yellowsiding/corner{dir = 1},/area/centcom/evac) -"lY" = (/obj/docking_port/stationary{dir = 4; dwidth = 25; height = 50; id = "emergency_away"; name = "Centcom Emergency Shuttle Dock"; width = 50},/turf/open/space,/area/space) -"lZ" = (/turf/closed/indestructible/rock/snow,/area/syndicate_mothership) -"ma" = (/obj/structure/closet,/turf/open/floor/plasteel/warning/corner{dir = 1},/area/centcom/supply) -"mb" = (/obj/structure/closet/wardrobe/cargotech,/turf/open/floor/plasteel/loadingarea,/area/centcom/supply) -"mc" = (/obj/structure/closet/secure_closet/quartermaster,/turf/open/floor/plasteel/loadingarea,/area/centcom/supply) -"md" = (/obj/structure/closet,/turf/open/floor/plasteel,/area/centcom/supply) -"me" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/centcom/control) -"mf" = (/obj/machinery/button/door{desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "CentComPort"; name = "Security Doors"; pixel_y = 28; req_access_txt = "101"},/obj/structure/showcase/fakeid,/turf/open/floor/plasteel/black,/area/centcom/control) -"mg" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/plasteel/black,/area/centcom/control) -"mh" = (/obj/structure/table,/obj/item/weapon/stamp{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stamp/denied{pixel_x = 4; pixel_y = -2},/obj/item/weapon/paper/centcom,/turf/open/floor/plasteel/black,/area/centcom/control) -"mi" = (/turf/open/floor/plasteel/red/corner{dir = 1},/area/centcom/evac) -"mj" = (/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) -"mk" = (/obj/structure/flora/grass/brown,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) -"ml" = (/obj/structure/flora/tree/pine,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) -"mm" = (/obj/structure/flora/grass/both,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) -"mn" = (/obj/item/weapon/disk/data,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) -"mo" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/supply) -"mp" = (/turf/open/floor/plasteel/warning{dir = 8},/area/centcom/supply) -"mq" = (/turf/open/floor/plasteel,/area/centcom/supply) -"mr" = (/turf/open/floor/plasteel/green/corner{dir = 1},/area/centcom/control) -"ms" = (/turf/open/floor/plasteel/green/corner{dir = 4},/area/centcom/control) -"mt" = (/obj/structure/table/reinforced,/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 1; icon_state = "rightsecure"; name = "Centcom Customs"; req_access_txt = "109"},/turf/open/floor/plasteel/black,/area/centcom/control) -"mu" = (/turf/open/floor/plasteel/warning/corner{dir = 1},/area/centcom/evac) -"mv" = (/obj/item/toy/figure/syndie,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) -"mw" = (/obj/machinery/door/airlock/external{name = "Supply Shuttle"; req_access_txt = "106"},/turf/open/floor/plasteel/delivery,/area/centcom/supply) -"mx" = (/obj/machinery/door/airlock/centcom{name = "Centcom Supply"; req_access_txt = "106"},/turf/open/floor/plasteel/brown{dir = 4},/area/centcom/supply) -"my" = (/turf/open/floor/plasteel/brown{dir = 8},/area/centcom/control) -"mz" = (/obj/machinery/door/airlock/centcom{name = "Centcom Docks"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/control) -"mA" = (/obj/machinery/door/poddoor/preopen{id = "CentComPort"; name = "security door"},/turf/open/floor/plasteel/loadingarea{dir = 8},/area/centcom/control) -"mB" = (/turf/open/floor/plasteel/warning{dir = 8},/area/centcom/evac) -"mC" = (/obj/structure/flora/bush,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) -"mD" = (/obj/machinery/computer/cargo,/turf/open/floor/plasteel/warning{dir = 8},/area/centcom/supply) -"mE" = (/turf/open/floor/plasteel/green/corner{dir = 8},/area/centcom/control) -"mF" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plating,/area/centcom/control) -"mG" = (/turf/open/floor/plasteel/warning/corner{dir = 4},/area/centcom/evac) -"mH" = (/obj/docking_port/stationary{dir = 8; dwidth = 5; height = 7; id = "supply_away"; name = "Centcom"; width = 12},/turf/open/space,/area/space) -"mI" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/green/side{dir = 4},/area/centcom/control) -"mJ" = (/turf/open/floor/plasteel/green/corner{dir = 8},/area/centcom/evac) -"mK" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/supply) -"mL" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/green/side{dir = 8},/area/centcom/evac) -"mM" = (/turf/open/floor/plasteel/yellowsiding,/area/centcom/evac) -"mN" = (/turf/open/floor/plasteel/yellowsiding/corner{dir = 8},/area/centcom/evac) -"mO" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/supply) -"mP" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/green/side{dir = 10},/area/centcom/control) -"mQ" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/green/side{dir = 6},/area/centcom/control) -"mR" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/green/side{dir = 1},/area/centcom/evac) -"mS" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/plasteel/green/side{dir = 1},/area/centcom/evac) -"mT" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/green/side{dir = 5},/area/centcom/evac) -"mU" = (/turf/open/floor/plating/asteroid/snow,/area/space) -"mV" = (/turf/closed/indestructible/fakeglass,/area/centcom/supply) -"mW" = (/turf/closed/indestructible/riveted,/area/tdome/tdomeobserve) -"mX" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/tdome/tdomeobserve) -"mY" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/tdome/tdomeobserve) -"mZ" = (/obj/machinery/door/airlock/centcom{name = "Thunderdome"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel,/area/tdome/tdomeobserve) -"na" = (/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/plasteel,/area/centcom/evac) -"nb" = (/obj/structure/table/reinforced,/obj/item/toy/talking/AI,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/green/side{dir = 4},/area/centcom/evac) -"nc" = (/turf/closed/indestructible/riveted,/area/syndicate_mothership) -"nd" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership) -"ne" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/syndicate_mothership) -"nf" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/warning/corner{dir = 4},/area/centcom/supply) -"ng" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/coin/silver,/turf/open/floor/plasteel,/area/centcom/supply) -"nh" = (/obj/structure/table,/obj/item/weapon/pen/blue{pixel_x = 4; pixel_y = 4},/obj/item/weapon/pen/red,/obj/item/weapon/pen{pixel_x = 8; pixel_y = 8},/turf/open/floor/plasteel,/area/centcom/supply) -"ni" = (/obj/structure/table,/turf/open/floor/plasteel/red/side{dir = 9},/area/tdome/tdomeobserve) -"nj" = (/turf/open/floor/plasteel/red/side{dir = 1},/area/tdome/tdomeobserve) -"nk" = (/obj/structure/table,/turf/open/floor/plasteel/red/side{dir = 1},/area/tdome/tdomeobserve) -"nl" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/tdome/tdomeobserve) -"nm" = (/turf/open/floor/plasteel,/area/tdome/tdomeobserve) -"nn" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/tdome/tdomeobserve) -"no" = (/obj/structure/table,/turf/open/floor/plasteel/green/side{dir = 1},/area/tdome/tdomeobserve) -"np" = (/turf/open/floor/plasteel/green/side{dir = 1},/area/tdome/tdomeobserve) -"nq" = (/obj/structure/table,/turf/open/floor/plasteel/green/side{dir = 5},/area/tdome/tdomeobserve) -"nr" = (/obj/item/weapon/twohanded/required/kirbyplants,/turf/open/floor/plasteel/green/side{dir = 10},/area/centcom/evac) -"ns" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/green/side,/area/centcom/evac) -"nt" = (/turf/open/floor/plasteel/green/side,/area/centcom/evac) -"nu" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/toy/crossbow,/obj/item/toy/katana,/turf/open/floor/plasteel/green/side,/area/centcom/evac) -"nv" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/toy/sword,/turf/open/floor/plasteel/green/side,/area/centcom/evac) -"nw" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/evac) -"nx" = (/obj/item/weapon/storage/crayons,/obj/structure/table,/obj/item/weapon/storage/crayons,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) -"ny" = (/obj/machinery/washing_machine,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) -"nz" = (/obj/machinery/door/airlock/centcom{name = "Crate Storage"; req_access_txt = "106"},/turf/open/floor/plasteel/delivery,/area/centcom/supply) -"nA" = (/obj/structure/closet/secure_closet/bar,/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/tdomeobserve) -"nB" = (/obj/structure/table,/turf/open/floor/plasteel,/area/tdome/tdomeobserve) -"nC" = (/obj/structure/closet/secure_closet/freezer/kitchen,/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/tdomeobserve) -"nD" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 10},/area/centcom/evac) -"nE" = (/obj/machinery/door/airlock/centcom{name = "Centcom"; opacity = 1; req_access_txt = "0"},/turf/open/floor/plasteel/black,/area/centcom/evac) -"nF" = (/turf/closed/indestructible/riveted/uranium,/area/wizard_station) -"nG" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 8; icon_state = "fakewindows"},/area/wizard_station) -"nH" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 8; icon_state = "fakewindows2"},/area/wizard_station) -"nI" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 4; icon_state = "fakewindows"},/area/wizard_station) -"nJ" = (/obj/machinery/computer/shuttle/syndicate/recall,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"nK" = (/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"nL" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"nM" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"nN" = (/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/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"nO" = (/obj/structure/urinal{pixel_y = 28},/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) -"nP" = (/obj/item/weapon/soap/syndie,/obj/structure/mopbucket,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) -"nQ" = (/obj/structure/mirror{pixel_x = 28},/obj/item/weapon/mop,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) -"nR" = (/obj/structure/closet/crate,/turf/open/floor/plasteel,/area/centcom/supply) -"nS" = (/obj/structure/table,/obj/item/weapon/storage/box/drinkingglasses,/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/tdomeobserve) -"nT" = (/obj/structure/table,/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/tdomeobserve) -"nU" = (/turf/open/floor/engine/cult,/area/wizard_station) -"nV" = (/obj/machinery/computer/shuttle,/turf/open/floor/engine/cult,/area/wizard_station) -"nW" = (/obj/item/weapon/paper{info = "GET DAT FUKKEN DISK"; name = "memo"},/obj/structure/noticeboard{pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"nX" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"nY" = (/mob/living/simple_animal/hostile/carp/cayenne,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"nZ" = (/obj/machinery/door/airlock/centcom{name = "Restroom"; opacity = 1; req_access_txt = "150"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"oa" = (/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) -"ob" = (/obj/structure/mirror{pixel_x = 28},/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) -"oc" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/tdomeobserve) -"od" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/tdomeobserve) -"oe" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/green/side{dir = 9},/area/centcom/evac) -"of" = (/obj/structure/table/wood,/obj/item/device/paicard,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"og" = (/obj/structure/table/wood,/obj/item/pizzabox,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"oh" = (/obj/structure/chair/stool,/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"oi" = (/obj/machinery/computer/telecrystals/uplinker,/turf/open/floor/plasteel/podhatch{dir = 9},/area/syndicate_mothership) -"oj" = (/obj/structure/toilet{icon_state = "toilet00"; dir = 8},/obj/structure/window/reinforced/tinted{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/obj/machinery/door/window{tag = "icon-right (WEST)"; name = "Tactical Toilet"; icon_state = "right"; dir = 8; opacity = 1},/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) -"ok" = (/turf/open/floor/plating/airless,/area/syndicate_mothership) -"ol" = (/turf/open/floor/plating/airless/warnplate{dir = 2},/area/syndicate_mothership) -"om" = (/turf/open/floor/plasteel/red/side{dir = 10},/area/tdome/tdomeobserve) -"on" = (/turf/open/floor/plasteel/red/side{dir = 2},/area/tdome/tdomeobserve) -"oo" = (/turf/open/floor/plasteel/neutral/side{dir = 8},/area/tdome/tdomeobserve) -"op" = (/turf/open/floor/plasteel/neutral/side{dir = 4},/area/tdome/tdomeobserve) -"oq" = (/turf/open/floor/plasteel/green/side,/area/tdome/tdomeobserve) -"or" = (/turf/open/floor/plasteel/green/side{dir = 6},/area/tdome/tdomeobserve) -"os" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/turf/open/floor/plasteel/green/side{dir = 8},/area/centcom/evac) -"ot" = (/obj/structure/filingcabinet/filingcabinet,/turf/open/floor/plasteel,/area/centcom/evac) -"ou" = (/obj/structure/showcase{desc = "A strange machine supposedly from another world. The Wizard Federation has been meddling with it for years."; icon = 'icons/obj/machines/telecomms.dmi'; icon_state = "processor"; name = "byond random number generator"},/turf/open/floor/engine/cult,/area/wizard_station) -"ov" = (/obj/structure/showcase{desc = "A historical figure of great importance to the wizard federation. He spent his long life learning magic, stealing artifacts, and harassing idiots with swords. May he rest forever, Rodney."; icon = 'icons/mob/mob.dmi'; icon_state = "nim"; name = "wizard of yendor showcase"},/turf/open/floor/engine/cult,/area/wizard_station) -"ow" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 9},/area/syndicate_mothership) -"ox" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/syndicate_mothership) -"oy" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/mushroom,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"oz" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = 5; pixel_y = -2},/obj/item/toy/cards/deck/syndicate{icon_state = "deck_syndicate_full"; pixel_x = -6; pixel_y = 6},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"oA" = (/obj/machinery/computer/telecrystals/uplinker,/turf/open/floor/plasteel/podhatch{dir = 8},/area/syndicate_mothership) -"oB" = (/obj/structure/closet/cardboard,/turf/open/floor/plating/airless,/area/syndicate_mothership) -"oC" = (/turf/open/floor/plating/airless/warnplate{dir = 6},/area/syndicate_mothership) -"oD" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/mineral/plastitanium{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) -"oE" = (/turf/closed/wall/mineral/plastitanium,/area/shuttle/assault_pod) -"oF" = (/obj/machinery/door/airlock/centcom{name = "Assault Pod"; opacity = 1; req_access_txt = "150"},/turf/open/floor/plating,/area/shuttle/assault_pod) -"oG" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/mineral/plastitanium{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) -"oH" = (/turf/open/floor/plating/airless/warnplate{dir = 10},/area/syndicate_mothership) -"oI" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeobserve) -"oJ" = (/turf/closed/indestructible/fakedoor{name = "Centcom"},/area/centcom/evac) -"oK" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 6; icon_state = "fakewindows2"},/area/wizard_station) -"oL" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Cockpit"},/turf/open/floor/engine/cult,/area/wizard_station) -"oM" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/syndicate_mothership) -"oN" = (/turf/open/floor/plating,/area/syndicate_mothership) -"oO" = (/obj/machinery/door/poddoor/shutters{id = "nukeop_ready"; name = "shuttle dock"},/turf/open/floor/plating,/area/syndicate_mothership) -"oP" = (/turf/open/floor/plating/airless/warnplate{dir = 4},/area/syndicate_mothership) -"oQ" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) -"oR" = (/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) -"oS" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) -"oT" = (/turf/open/floor/plating/airless/warnplate{dir = 8},/area/syndicate_mothership) -"oU" = (/turf/open/floor/grass,/area/tdome/tdomeobserve) -"oV" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/tdome/tdomeobserve) -"oW" = (/turf/open/floor/plasteel/green/side{dir = 10},/area/centcom/evac) -"oX" = (/turf/open/floor/plasteel/green/side{dir = 6},/area/centcom/evac) -"oY" = (/obj/machinery/computer/camera_advanced,/turf/open/floor/wood,/area/wizard_station) -"oZ" = (/obj/structure/table/wood/fancy,/obj/item/device/radio/intercom{desc = "Talk smack through this."; syndie = 1},/turf/open/floor/wood,/area/wizard_station) -"pa" = (/turf/open/floor/carpet,/area/wizard_station) -"pb" = (/obj/structure/chair/wood/wings,/turf/open/floor/carpet,/area/wizard_station) -"pc" = (/turf/closed/indestructible/fakeglass,/area/syndicate_mothership) -"pd" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/open/floor/plating,/area/syndicate_mothership) -"pe" = (/obj/machinery/button/door{id = "nukeop_ready"; name = "mission launch control"; pixel_x = -26; pixel_y = 0; req_access_txt = "151"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"pf" = (/obj/machinery/computer/telecrystals/uplinker,/turf/open/floor/plasteel/podhatch{dir = 10},/area/syndicate_mothership) -"pg" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) -"ph" = (/turf/open/floor/wood,/area/wizard_station) -"pi" = (/obj/structure/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 1},/turf/open/floor/wood,/area/wizard_station) -"pj" = (/obj/structure/chair/wood/wings{tag = "icon-wooden_chair_wings (EAST)"; icon_state = "wooden_chair_wings"; dir = 4},/turf/open/floor/carpet,/area/wizard_station) -"pk" = (/obj/structure/table/wood/poker,/obj/item/toy/figure/wizard,/turf/open/floor/carpet,/area/wizard_station) -"pl" = (/obj/structure/chair/wood/wings{tag = "icon-wooden_chair_wings (WEST)"; icon_state = "wooden_chair_wings"; dir = 8},/turf/open/floor/carpet,/area/wizard_station) -"pm" = (/obj/docking_port/stationary{area_type = /area/syndicate_mothership; dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_away"; name = "syndicate recon outpost"; turf_type = /turf/open/floor/plating/asteroid/snow; width = 18},/turf/open/floor/plating/asteroid/snow,/area/space) -"pn" = (/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/obj/structure/table/wood,/turf/open/floor/wood,/area/syndicate_mothership) -"po" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/syndicate_mothership) -"pp" = (/obj/structure/table/wood,/obj/item/device/syndicatedetonator{desc = "This gaudy button can be used to instantly detonate syndicate bombs that have been activated on the station. It is also fun to press."},/turf/open/floor/wood,/area/syndicate_mothership) -"pq" = (/obj/structure/table/wood,/obj/item/toy/nuke,/turf/open/floor/wood,/area/syndicate_mothership) -"pr" = (/obj/machinery/door/airlock/centcom{aiControlDisabled = 1; name = "Assault Pod"; opacity = 1; req_access_txt = "150"},/turf/open/floor/plating,/area/shuttle/assault_pod) -"ps" = (/obj/machinery/computer/shuttle/syndicate/drop_pod,/turf/closed/wall/shuttle{tag = "icon-wall3"; icon_state = "wall3"; dir = 2},/area/shuttle/assault_pod) -"pt" = (/turf/open/floor/plasteel/redblue,/area/tdome/tdomeobserve) -"pu" = (/obj/structure/chair,/obj/effect/landmark{name = "tdomeobserve"},/turf/open/floor/plasteel/redblue,/area/tdome/tdomeobserve) -"pv" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Observation Room"},/turf/open/floor/engine/cult,/area/wizard_station) -"pw" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Game Room"},/turf/open/floor/engine/cult,/area/wizard_station) -"px" = (/obj/structure/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 1},/turf/open/floor/carpet,/area/wizard_station) -"py" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'FOURTH WALL'."; name = "\improper FOURTH WALL"; pixel_x = -32},/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) -"pz" = (/turf/open/floor/wood,/area/syndicate_mothership) -"pA" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/open/floor/wood,/area/syndicate_mothership) -"pB" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Uplink Management Control"; req_access_txt = "151"},/turf/open/floor/wood,/area/syndicate_mothership) -"pC" = (/obj/structure/chair,/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) -"pD" = (/turf/closed/indestructible/fakedoor{name = "Thunderdome"},/area/tdome/tdomeobserve) -"pE" = (/obj/machinery/computer/security/telescreen,/turf/open/floor/plasteel/redblue,/area/tdome/tdomeobserve) -"pF" = (/obj/structure/chair/wood/wings{tag = "icon-wooden_chair_wings (WEST)"; icon_state = "wooden_chair_wings"; dir = 8},/turf/open/floor/wood,/area/wizard_station) -"pG" = (/obj/structure/table/wood/fancy,/obj/item/device/camera/spooky,/turf/open/floor/carpet,/area/wizard_station) -"pH" = (/obj/structure/table/wood/poker,/obj/item/toy/cards/deck,/turf/open/floor/carpet,/area/wizard_station) -"pI" = (/obj/machinery/computer/telecrystals/boss,/turf/open/floor/plasteel/podhatch{dir = 5},/area/syndicate_mothership) -"pJ" = (/obj/structure/sign/map/left{pixel_y = -32},/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_left"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka,/turf/open/floor/wood,/area/syndicate_mothership) -"pK" = (/obj/structure/sign/map/right{pixel_y = -32},/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_right"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/gin,/turf/open/floor/wood,/area/syndicate_mothership) -"pL" = (/obj/machinery/door/airlock/centcom{name = "Equipment Room"; opacity = 1; req_access_txt = "150"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) -"pM" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/mineral/plastitanium{icon_state = "diagonalWall3"},/area/shuttle/assault_pod) -"pN" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/mineral/plastitanium{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) -"pO" = (/obj/item/weapon/statuebust{pixel_y = 12},/obj/structure/table/wood/fancy,/turf/open/floor/wood,/area/wizard_station) -"pP" = (/obj/machinery/vending/magivend,/turf/open/floor/engine/cult,/area/wizard_station) -"pQ" = (/obj/machinery/vending/snack,/turf/open/floor/engine/cult,/area/wizard_station) -"pR" = (/obj/structure/table/wood/fancy,/obj/item/weapon/storage/pill_bottle/dice{icon_state = "magicdicebag"},/turf/open/floor/carpet,/area/wizard_station) -"pS" = (/obj/structure/table/wood/fancy,/obj/item/weapon/storage/photo_album,/turf/open/floor/carpet,/area/wizard_station) -"pT" = (/turf/open/floor/plasteel/black,/area/syndicate_mothership) -"pU" = (/obj/machinery/mech_bay_recharge_port,/turf/open/floor/plating,/area/syndicate_mothership) -"pV" = (/turf/open/floor/mech_bay_recharge_floor,/area/syndicate_mothership) -"pW" = (/obj/machinery/computer/mech_bay_power_console,/turf/open/floor/plating,/area/syndicate_mothership) -"pX" = (/obj/machinery/vending/tool,/turf/open/floor/plasteel/black,/area/syndicate_mothership) -"pY" = (/obj/structure/closet/cardboard/metal,/turf/open/floor/plating/airless,/area/syndicate_mothership) -"pZ" = (/turf/open/floor/plating/airless/warnplate{dir = 5},/area/syndicate_mothership) -"qa" = (/obj/machinery/door/airlock/centcom{aiControlDisabled = 1; name = "Assault Pod"; opacity = 1; req_access_txt = "150"},/obj/docking_port/mobile/assault_pod{dwidth = 3; name = "steel rain"; port_angle = 90; preferred_direction = 4},/turf/open/floor/plating,/area/shuttle/assault_pod) -"qb" = (/turf/open/floor/plating/airless/warnplate{dir = 9},/area/syndicate_mothership) -"qc" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Study"},/turf/open/floor/engine/cult,/area/wizard_station) -"qd" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Break Room"},/turf/open/floor/engine/cult,/area/wizard_station) -"qe" = (/turf/open/floor/plating/airless/warnplate{dir = 1},/area/syndicate_mothership) -"qf" = (/turf/closed/indestructible/riveted,/area/tdome/arena) -"qg" = (/obj/machinery/igniter,/turf/open/floor/plasteel,/area/tdome/arena) -"qh" = (/turf/open/floor/plasteel,/area/tdome/arena) -"qi" = (/obj/structure/chair/wood/wings,/turf/open/floor/engine/cult,/area/wizard_station) -"qj" = (/obj/structure/table/wood,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/ointment,/turf/open/floor/engine/cult,/area/wizard_station) -"qk" = (/obj/structure/table/wood,/obj/item/weapon/retractor,/turf/open/floor/engine/cult,/area/wizard_station) -"ql" = (/obj/structure/table/wood,/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/obj/structure/mirror/magic{pixel_y = 28},/turf/open/floor/engine/cult,/area/wizard_station) -"qm" = (/obj/structure/table/wood,/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/open/floor/engine/cult,/area/wizard_station) -"qn" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/turf/open/floor/grass,/area/wizard_station) -"qo" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/cleanable/blood/gibs/body,/turf/open/floor/grass,/area/wizard_station) -"qp" = (/obj/effect/decal/remains/xeno/larva,/turf/open/floor/grass,/area/wizard_station) -"qq" = (/obj/effect/decal/cleanable/blood/splatter,/turf/open/floor/grass,/area/wizard_station) -"qr" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/syndicate_mothership) -"qs" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/black,/area/syndicate_mothership) -"qt" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/red,/turf/open/floor/plasteel/black,/area/tdome/arena) -"qu" = (/obj/machinery/door/poddoor{id = "thunderdomegen"; name = "General Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena) -"qv" = (/obj/effect/landmark{name = "tdome2"},/turf/open/floor/plasteel,/area/tdome/tdome2) -"qw" = (/obj/machinery/door/poddoor{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/open/floor/plasteel,/area/tdome/arena) -"qx" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/arena) -"qy" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/arena) -"qz" = (/obj/effect/landmark{name = "tdome1"},/turf/open/floor/plasteel,/area/tdome/tdome1) -"qA" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/green,/turf/open/floor/plasteel/black,/area/tdome/arena) -"qB" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 1; icon_state = "fakewindows"},/area/wizard_station) -"qC" = (/obj/structure/destructible/cult/tome,/turf/open/floor/engine/cult,/area/wizard_station) -"qD" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/head/wizard/red,/obj/item/weapon/staff,/obj/item/clothing/shoes/sandal,/turf/open/floor/engine/cult,/area/wizard_station) -"qE" = (/turf/open/floor/grass,/area/wizard_station) -"qF" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi,/turf/open/floor/grass,/area/wizard_station) -"qG" = (/obj/structure/closet/syndicate/personal,/turf/open/floor/plasteel/darkwarning{dir = 1},/area/syndicate_mothership) -"qH" = (/obj/structure/table,/obj/item/weapon/gun/energy/ionrifle{pin = /obj/item/device/firing_pin},/turf/open/floor/plasteel/darkwarning{dir = 1},/area/syndicate_mothership) -"qI" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome2"},/turf/open/floor/plasteel,/area/tdome/tdome2) -"qJ" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome1"},/turf/open/floor/plasteel,/area/tdome/tdome1) -"qK" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 1; icon_state = "fakewindows2"},/area/wizard_station) -"qL" = (/obj/structure/bookcase/random/reference,/turf/open/floor/engine/cult,/area/wizard_station) -"qM" = (/obj/structure/destructible/cult/talisman{desc = "A altar dedicated to the Wizard's Federation"},/obj/item/weapon/kitchen/knife/ritual,/turf/open/floor/engine/cult,/area/wizard_station) -"qN" = (/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/head/wizard/marisa,/obj/item/weapon/staff/broom,/turf/open/floor/engine/cult,/area/wizard_station) -"qO" = (/obj/effect/decal/cleanable/blood/splatter,/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/turf/open/floor/grass,/area/wizard_station) -"qP" = (/obj/machinery/camera{pixel_x = 11; pixel_y = -9; network = list("thunder"); c_tag = "Red Team"},/obj/effect/landmark{name = "tdome2"},/turf/open/floor/plasteel,/area/tdome/tdome2) -"qQ" = (/turf/open/floor/bluegrid,/area/tdome/arena) -"qR" = (/obj/machinery/flasher{id = "tdomeflash"; name = "Thunderdome Flash"},/turf/open/floor/bluegrid,/area/tdome/arena) -"qS" = (/obj/machinery/camera{pixel_x = 12; pixel_y = -10; network = list("thunder"); c_tag = "Green Team"},/obj/effect/landmark{name = "tdome1"},/turf/open/floor/plasteel,/area/tdome/tdome1) -"qT" = (/turf/closed/indestructible/fakeglass{color = "#008000"},/area/wizard_station) -"qU" = (/obj/effect/landmark/start{name = "wizard"},/turf/open/floor/engine/cult,/area/wizard_station) -"qV" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/splatter,/turf/open/floor/grass,/area/wizard_station) -"qW" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/slime,/turf/open/floor/grass,/area/wizard_station) -"qX" = (/obj/effect/decal/remains/xeno,/turf/open/floor/grass,/area/wizard_station) -"qY" = (/obj/machinery/camera{pixel_x = 10; network = list("thunder"); c_tag = "Arena"},/turf/open/floor/bluegrid,/area/tdome/arena) -"qZ" = (/obj/structure/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 1},/turf/open/floor/engine/cult,/area/wizard_station) -"ra" = (/mob/living/simple_animal/bot/medbot/mysterious{desc = "If you don't accidentally blow yourself up from time to time you're not really a wizard anyway."; faction = list("neutral","silicon","creature"); name = "Nobody's Perfect"},/turf/open/floor/engine/cult,/area/wizard_station) -"rb" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno,/turf/open/floor/grass,/area/wizard_station) -"rc" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Observation Deck"},/turf/open/floor/engine/cult,/area/wizard_station) -"rd" = (/obj/structure/statue/uranium/nuke,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) -"re" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena) -"rf" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena) -"rg" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/tdome/tdomeadmin) -"rh" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeadmin) -"ri" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/tdome/tdomeadmin) -"rj" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena) -"rk" = (/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) -"rl" = (/obj/structure/chair{dir = 1},/obj/effect/landmark{name = "tdomeadmin"},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) -"rm" = (/obj/structure/table,/obj/machinery/computer/security/telescreen{pixel_y = 0},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) -"rn" = (/obj/structure/chair/comfy/brown{dir = 1},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) -"ro" = (/obj/machinery/button/flasher{id = "tdomeflash"; pixel_x = 0; pixel_y = 0},/obj/structure/table,/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) -"rp" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Storage"},/turf/open/floor/engine/cult,/area/wizard_station) -"rq" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Personal Quarters"},/turf/open/floor/engine/cult,/area/wizard_station) -"rr" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Bathroom"},/turf/open/floor/engine/cult,/area/wizard_station) -"rs" = (/turf/closed/indestructible/riveted,/area/tdome/tdomeadmin) -"rt" = (/obj/machinery/computer/security/telescreen{pixel_y = -32},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) -"ru" = (/turf/open/floor/plasteel,/area/tdome/tdomeadmin) -"rv" = (/obj/item/clothing/suit/wizrobe/black,/obj/item/clothing/head/wizard/black,/turf/open/floor/plasteel/bot,/area/wizard_station) -"rw" = (/turf/open/floor/plasteel/bot,/area/wizard_station) -"rx" = (/obj/item/cardboard_cutout,/turf/open/floor/plasteel/bot,/area/wizard_station) -"ry" = (/obj/structure/table/wood,/obj/effect/landmark{name = "Teleport-Scroll"},/obj/item/weapon/dice/d20,/obj/item/weapon/dice,/turf/open/floor/carpet,/area/wizard_station) -"rz" = (/obj/structure/punching_bag,/turf/open/floor/carpet,/area/wizard_station) -"rA" = (/obj/structure/urinal{pixel_y = 28},/turf/open/floor/plasteel/white,/area/wizard_station) -"rB" = (/turf/open/floor/plasteel/white,/area/wizard_station) -"rC" = (/obj/structure/mirror/magic{pixel_y = 28},/obj/structure/sink{pixel_y = 20},/turf/open/floor/plasteel/white,/area/wizard_station) -"rD" = (/turf/closed/indestructible/fakedoor{name = "Thunderdome Admin"},/area/tdome/tdomeadmin) -"rE" = (/obj/structure/table,/obj/machinery/button/door{id = "thunderdomehea"; name = "Heavy Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/open/floor/plasteel,/area/tdome/tdomeadmin) -"rF" = (/obj/structure/table,/obj/machinery/button/door{id = "thunderdome"; name = "Main Blast Doors Control"; pixel_y = 0; req_access_txt = "102"},/turf/open/floor/plasteel,/area/tdome/tdomeadmin) -"rG" = (/obj/structure/table,/obj/machinery/button/door{id = "thunderdomegen"; name = "General Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/open/floor/plasteel,/area/tdome/tdomeadmin) -"rH" = (/obj/item/weapon/cautery/alien,/turf/open/floor/plasteel/bot,/area/wizard_station) -"rI" = (/obj/item/weapon/coin/antagtoken,/turf/open/floor/plasteel/bot,/area/wizard_station) -"rJ" = (/obj/structure/bed,/obj/item/weapon/bedsheet/wiz,/turf/open/floor/carpet,/area/wizard_station) -"rK" = (/obj/item/weapon/soap/homemade,/turf/open/floor/plasteel/white,/area/wizard_station) -"rL" = (/obj/structure/closet/cardboard,/obj/item/weapon/banhammer,/turf/open/floor/plasteel/warning,/area/wizard_station) -"rM" = (/turf/open/floor/plasteel/warning,/area/wizard_station) -"rN" = (/obj/vehicle/scooter/skateboard{tag = "icon-skateboard (EAST)"; icon_state = "skateboard"; dir = 4},/turf/open/floor/plasteel/warning,/area/wizard_station) -"rO" = (/obj/structure/dresser,/obj/item/weapon/storage/backpack/satchel,/turf/open/floor/carpet,/area/wizard_station) -"rP" = (/obj/structure/table/wood,/obj/item/weapon/storage/bag/tray,/obj/item/weapon/reagent_containers/food/snacks/burger/spell,/turf/open/floor/carpet,/area/wizard_station) -"rQ" = (/obj/structure/bookcase/random/adult,/turf/open/floor/plasteel/white,/area/wizard_station) -"rR" = (/obj/structure/toilet{tag = "icon-toilet00 (NORTH)"; icon_state = "toilet00"; dir = 1},/turf/open/floor/plasteel/white,/area/wizard_station) -"rS" = (/obj/structure/table/wood/fancy,/obj/item/weapon/skub{pixel_y = 16},/turf/open/floor/plasteel/white,/area/wizard_station) -"rT" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Engine Room"},/obj/structure/barricade/wooden,/turf/open/floor/engine/cult,/area/wizard_station) -"rU" = (/turf/closed/indestructible/riveted,/area/centcom/holding) -"rV" = (/obj/structure/table/wood,/turf/open/floor/engine/cult,/area/wizard_station) -"rW" = (/obj/structure/table/wood,/obj/item/weapon/gun/magic/wand{desc = "Used in emergencies to reignite magma engines."; max_charges = 0; name = "wand of emergency engine ignition"},/turf/open/floor/engine/cult,/area/wizard_station) -"rX" = (/obj/structure/table/wood,/obj/item/weapon/bikehorn/golden{pixel_x = -8; pixel_y = 8},/turf/open/floor/engine/cult,/area/wizard_station) -"rY" = (/obj/structure/table,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"rZ" = (/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"sa" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"sb" = (/obj/structure/reagent_dispensers/beerkeg,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"sc" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"sd" = (/obj/structure/rack,/obj/item/device/camera,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"se" = (/obj/structure/rack,/obj/item/toy/sword,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"sf" = (/obj/structure/rack,/obj/item/toy/gun,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"sg" = (/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"sh" = (/turf/open/floor/plating/beach/sand,/area/centcom/holding) -"si" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/open/floor/plating/beach/sand,/area/centcom/holding) -"sj" = (/obj/effect/overlay/palmtree_l,/turf/open/floor/plating/beach/sand,/area/centcom/holding) -"sk" = (/obj/structure/table,/obj/item/clothing/head/that,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"sl" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"sm" = (/obj/item/device/camera,/turf/open/floor/plating/beach/sand,/area/centcom/holding) -"sn" = (/obj/structure/destructible/cult/forge{desc = "A engine used in powering the wizards ship"; name = "magma engine"},/turf/open/floor/engine/cult,/area/wizard_station) -"so" = (/obj/structure/table,/obj/item/ammo_box/foambox,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"sp" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"sq" = (/obj/structure/table,/obj/item/weapon/lighter,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"sr" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"ss" = (/obj/structure/table,/obj/item/weapon/dice/d20,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) -"st" = (/obj/structure/chair/stool{pixel_y = 8},/obj/item/clothing/head/bandana{pixel_y = -10},/obj/item/clothing/glasses/sunglasses,/turf/open/floor/plating/beach/sand,/area/centcom/holding) -"su" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plating/beach/sand,/area/centcom/holding) -"sv" = (/obj/structure/window/reinforced{resistance_flags = 3; color = "#008000"; dir = 1},/turf/open/floor/plating/lava,/area/wizard_station) -"sw" = (/obj/structure/rack,/obj/item/clothing/head/that,/obj/item/clothing/under/suit_jacket,/obj/item/clothing/tie/waistcoat,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"sx" = (/obj/item/toy/beach_ball,/turf/open/floor/plating/beach/sand,/area/centcom/holding) -"sy" = (/obj/structure/shuttle/engine/heater{resistance_flags = 3},/turf/open/floor/plating/lava,/area/wizard_station) -"sz" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/weapon/gun/projectile/automatic/toy/pistol,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"sA" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"sB" = (/obj/structure/shuttle/engine/propulsion,/turf/open/space,/area/wizard_station) -"sC" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/weapon/gun/projectile/shotgun/toy/crossbow,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"sD" = (/turf/open/floor/plating/beach/coastline_b,/area/centcom/holding) -"sE" = (/obj/item/clothing/head/collectable/paper,/turf/open/floor/plating/beach/coastline_b,/area/centcom/holding) -"sF" = (/obj/structure/rack,/obj/item/clothing/shoes/laceup,/obj/item/clothing/under/suit_jacket/female{desc = "A black trouser suit for women. Very formal."; name = "black suit"; pixel_x = 3; pixel_y = 1},/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"sG" = (/obj/structure/table,/obj/item/weapon/gun/projectile/automatic/toy/pistol,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) -"sH" = (/turf/open/floor/plating/beach/water,/area/centcom/holding) -"sI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/centcom/holding) -"sJ" = (/turf/open/floor/plasteel/delivery,/area/centcom/holding) -"sK" = (/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},/turf/open/floor/plasteel,/area/centcom/holding) -"sL" = (/obj/item/weapon/reagent_containers/food/snacks/egg/rainbow{desc = "I bet you think you're pretty clever... well you are."; name = "easter egg"},/turf/open/space,/area/space) -"sM" = (/obj/effect/landmark{name = "Holding Facility"},/turf/open/floor/engine,/area/centcom/holding) -"sN" = (/turf/closed/indestructible/abductor{icon_state = "alien20"},/area/abductor_ship) -"sO" = (/turf/closed/indestructible/abductor{icon_state = "alien21"},/area/abductor_ship) -"sP" = (/turf/closed/indestructible/abductor{icon_state = "alien22"},/area/abductor_ship) -"sQ" = (/turf/closed/indestructible/abductor{icon_state = "alien23"},/area/abductor_ship) -"sR" = (/turf/closed/indestructible/abductor{icon_state = "alien24"},/area/abductor_ship) -"sS" = (/turf/closed/indestructible/abductor{icon_state = "alien16"},/area/abductor_ship) -"sT" = (/turf/closed/indestructible/abductor{icon_state = "alien17"},/area/abductor_ship) -"sU" = (/obj/machinery/abductor/experiment{team = 1},/turf/open/floor/plating/abductor,/area/abductor_ship) -"sV" = (/obj/effect/landmark/abductor/console,/turf/open/floor/plating/abductor,/area/abductor_ship) -"sW" = (/obj/machinery/abductor/pad{team = 1},/turf/open/floor/plating/abductor,/area/abductor_ship) -"sX" = (/turf/closed/indestructible/abductor{icon_state = "alien18"},/area/abductor_ship) -"sY" = (/turf/closed/indestructible/abductor{icon_state = "alien19"},/area/abductor_ship) -"sZ" = (/obj/machinery/abductor/experiment{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) -"ta" = (/obj/effect/landmark/abductor/console{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tb" = (/obj/machinery/abductor/pad{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tc" = (/turf/closed/indestructible/abductor{icon_state = "alien14"},/area/abductor_ship) -"td" = (/obj/machinery/computer/camera_advanced/abductor{team = 1},/turf/open/floor/plating/abductor,/area/abductor_ship) -"te" = (/turf/open/floor/plating/abductor,/area/abductor_ship) -"tf" = (/obj/structure/closet/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) -"tg" = (/turf/closed/indestructible/abductor{icon_state = "alien15"},/area/abductor_ship) -"th" = (/obj/machinery/computer/camera_advanced/abductor{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) -"ti" = (/turf/closed/indestructible/abductor{icon_state = "alien12"},/area/abductor_ship) -"tj" = (/obj/item/weapon/retractor/alien,/obj/item/weapon/hemostat/alien,/obj/structure/table/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) -"tk" = (/obj/effect/landmark/abductor/scientist,/turf/open/floor/plating/abductor,/area/abductor_ship) -"tl" = (/obj/structure/table/optable/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) -"tm" = (/obj/effect/landmark/abductor/agent,/turf/open/floor/plating/abductor,/area/abductor_ship) -"tn" = (/obj/structure/table/abductor,/obj/item/weapon/storage/box/alienhandcuffs,/turf/open/floor/plating/abductor,/area/abductor_ship) -"to" = (/turf/closed/indestructible/abductor{icon_state = "alien13"},/area/abductor_ship) -"tp" = (/obj/effect/landmark/abductor/scientist{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tq" = (/obj/effect/landmark/abductor/agent{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tr" = (/turf/closed/indestructible/abductor{icon_state = "alien10"},/area/abductor_ship) -"ts" = (/obj/item/weapon/surgical_drapes,/obj/item/weapon/paper/abductor,/obj/item/weapon/scalpel/alien,/obj/structure/table/abductor,/obj/item/weapon/cautery/alien,/turf/open/floor/plating/abductor,/area/abductor_ship) -"tt" = (/turf/closed/indestructible/abductor{icon_state = "alien11"},/area/abductor_ship) -"tu" = (/turf/closed/indestructible/abductor{icon_state = "alien6"},/area/abductor_ship) -"tv" = (/turf/closed/indestructible/abductor{icon_state = "alien7"},/area/abductor_ship) -"tw" = (/obj/machinery/abductor/gland_dispenser,/turf/open/floor/plating/abductor,/area/abductor_ship) -"tx" = (/obj/structure/table/abductor,/obj/item/weapon/surgicaldrill/alien,/obj/item/weapon/circular_saw/alien,/turf/open/floor/plating/abductor,/area/abductor_ship) -"ty" = (/obj/structure/bed/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) -"tz" = (/turf/closed/indestructible/abductor{icon_state = "alien8"},/area/abductor_ship) -"tA" = (/turf/closed/indestructible/abductor{icon_state = "alien9"},/area/abductor_ship) -"tB" = (/turf/closed/indestructible/abductor,/area/abductor_ship) -"tC" = (/turf/closed/indestructible/abductor{icon_state = "alien2"},/area/abductor_ship) -"tD" = (/turf/closed/indestructible/abductor{icon_state = "alien3"},/area/abductor_ship) -"tE" = (/turf/closed/indestructible/abductor{icon_state = "alien4"},/area/abductor_ship) -"tF" = (/turf/closed/indestructible/abductor{icon_state = "alien5"},/area/abductor_ship) -"tG" = (/obj/machinery/abductor/experiment{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tH" = (/obj/effect/landmark/abductor/console{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tI" = (/obj/machinery/abductor/pad{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tJ" = (/obj/machinery/abductor/experiment{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tK" = (/obj/effect/landmark/abductor/console{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tL" = (/obj/machinery/abductor/pad{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tM" = (/obj/machinery/computer/camera_advanced/abductor{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tN" = (/obj/machinery/computer/camera_advanced/abductor{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tO" = (/obj/effect/landmark/abductor/scientist{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tP" = (/obj/effect/landmark/abductor/agent{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tQ" = (/obj/effect/landmark/abductor/scientist{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tR" = (/obj/effect/landmark/abductor/agent{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) -"tS" = (/turf/closed/indestructible/riveted,/area/awaymission/errorroom) -"tT" = (/turf/closed/mineral/ash_rock,/area/awaymission/errorroom) -"tU" = (/obj/structure/speaking_tile,/turf/closed/mineral/ash_rock,/area/awaymission/errorroom) -"tV" = (/obj/item/rupee,/turf/open/floor/plating/ashplanet/wateryrock{initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; planetary_atmos = 0},/area/awaymission/errorroom) -"tW" = (/turf/open/floor/plating/ashplanet/wateryrock{initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; planetary_atmos = 0},/area/awaymission/errorroom) -"tX" = (/obj/effect/landmark/error,/turf/open/floor/plating/ashplanet/wateryrock{initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; planetary_atmos = 0},/area/awaymission/errorroom) -"tY" = (/obj/structure/signpost/salvation{icon = 'icons/obj/structures.dmi'; icon_state = "ladder10"; invisibility = 100},/turf/open/floor/plating/ashplanet/wateryrock{initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; planetary_atmos = 0},/area/awaymission/errorroom) -"tZ" = (/obj/structure/lattice,/turf/open/space,/area/space) - -(1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacabacacacacacabacacacacacabacacacacacabacacacacacabacacacacacabacacacacacab -aaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafafafagahaiajakalagamanaoaoapagaqaqaqaqaqagarararararagasasasasasagatauauauavaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafaxayayafagahaiajazaAagaBaoaCaCaoagaqaDaqaDaqagarararararagasaEasaEasagaFaGaGaGaHaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafaIafagahaiajazaJagaoaKaLaMaNagaqaqaqaqaqagarararararagasasasasasagaFaGaGaGaHaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafaOafagahaiajakakagaoaoaPaPaoagaqaqaqaqaqagarararararagasasaEasasagaFaGaGaGaHaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafaQafafafagahaiajazaJagaRaSaoaoaSagaqaqaDaqaqagarararararagasasasasasagaFaGaGaGaHaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafaTafaUaxagahaiajazaJagaRaVaWaXaVagaqaqaDaqaqagarararararagasasasasasagaYaGaGaGaZaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafaIafafafagahaiajakakagaRbabbbbbbagaqaqaqaqaqagarararararagasasaEasasagaYaGaGaGaZaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafafafagahaiajazaJagaRbcbbbbbdagaqaqaqaqaqagarararararagasasasasasagaYaGaGaGaZaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafayayaIafagahaiajazaAagaRbcbbbbbdagaqaDaqaDaqagarararararagasaEasaEasagaYaGaGaGaZaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafafafagahaiajakbeagaRbfbgbgbhagaqaqaqaqaqagarararararagasasasasasagbibjbjbjbkaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabblblblblblabblblblblblabblblblblblabblblblblblabblblblblblabblblblblblabblblblblblab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbnbobnbpbnagbqbrbsbtbuagbvbvbwbxbxagbybybybybyagbzbAbAbAbBagbCbDbDbDbEaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbpbFbGbHbnagbIbJbJbJbKagbLbLbMbNbNagbybObybPbyagbQbQbQbQbQagbRbSbSbSbTaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbFbUbVbWbFagbXbYbZcacbagbLccccccbNagbycdbycdbyagbQbQbQbQbQagbRcececebTaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagcfbncgchcfagbJbJciciciagbLbMbMbMbNagbybybybybyagbQbQbQbQbQagbRbSbSbSbTaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmcjbmbmagbFbnbnbnbnagckclcmbJcnagcocpcpcpcqagbycrbybybyagcscscscscsagctcucucucvaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmcwcxbmagbnbGbnbobFagcyczcAbJcBagcCcDcDcDcEagbybybycFbyagcGcGcGcGcGagcHcIcIcIcJaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagcfcKbUcLbnagbJbJbJbJbJagcMbMcNbMcOagbybybybybyagbQbQbQbQbQagcPbSbSbScQaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbFcRcScTcUagcVcWcXbJbJagcMcYcYcYcOagcZdadbcZcZagbQbQbQbQbQagcPdcdcdccQaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbocRcTcRddagdedfdgdhclagcMcMbMcOcOagdididididiagbQbQbQbQbQagcPbSbSbScQaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbncfbnbpbnagdjdkdldmdnagdododpdqdqagdrdrdrdrdragdsdtdtdtduagdvdwdwdwdxaw -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabblblblblblabblblblblblabacacacacacabblblblblblabblblblblblabblblblblblabblblblblblab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydydydydyagdzdzdzdzdzagdAdBdCdDdEagdFdGdGdGdFagdHdIdJdKdLagdMdNdNdNdOagdPdQdRdSdTag -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyagdVdWdXdYdVagdZdZeadZdZagebecedeeefagegeheiejekagelemememenagdPeoepeqdTag -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyageresereserageteueueuevagewexeyexezageAeBeCeDeEageleFememenagdPeGeHeIdTag -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydyeJdydyageKeLeKeLeKageMeNeOePeMagexexexexexageQeQeQeQeQagelemememenagdPeReSeTdTag -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyageLeKeLeKeLageUeUeUeUeUageVeWexeXeYageZfaeQeZfaagelemememenagdPeReSeTdTag -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyageKeLeKeLeKageUeUeUeUeUagfbeWexeXfcagfdfeeQfdfeagfffgememenagdPeReSeTdTag -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydyeJdydyageLeKeLeKeLageUeUeUeUeUagexfhfhfhexageZfaeQeZfaagffemememenagdPeReSeTdTag -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyagfifjfifjfiagfkfkflfkfkagfmfnfofpfqagfdfeeQfdfeagffememfrenagdPfsftfudTag -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyagfvfwfxfyfvagdZdZdZdZdZagfzfAfAfAfzageZfaeQeZfaagffemememenagdPfBfBfBdTag -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydydydydyagfCfCfCfCfCagfDfDfDfDfDagfEfFfFfFfGageDeBeQeDeBagfHfIfIfIfJagdPfKfLfMdTag -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNab -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfOfOfOfOfOfOfOfOfPfQfQfQfQfQfQfQfQfQfQfQfQfQfPfOfOfOfOfOfOfOfOfO -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfQfQfQfQfQfQfQfQfVfTabababababfSfWfO -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfQfQfQfQfQfQfQfQfVfTabababababfSfWfO -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfXfYfXfQfQfQfQfQfVfTabababababfSfWfO -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfXfXfXfQfQfQfQfQfVfTabababababfSfWfO -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfQfQfQfQfQfQfQfQfVfTabababababfSfWfO -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfQfQfQfQfQfQfQfQfVfTabababababfSfWfO -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfOfOfZfZfZfZfZfOfPfQfQfQfQfQfQfQfQfQfQfQfQfQfPfOfZfZfZfZfZfOfOfO -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOgagagagagafOabababababababababababababababfOgbgbgbgbgbfOaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfOfOfOfOfOfOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfOfOfOfOfOfOaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -gcgcgcgcgcgcgcgdgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegeaa -gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegfggggggggggghgegfggggggghgegfggggggghgegfggggggghgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegigjgjgjgkgegigjgjgjgkgegigjgjgjgkgegigjgjgjgjgjgkgeaa -gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgpgqgpgngoglgpgqgpgngoglgpgqgpgngrgrgrgrgrgsgsgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgsgsgrgrgrgrgrgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa -gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngoglgpgqgqgngoglgqgqgqgngoglgqgqgpgngrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgugmgvgvgwgxgugvgvgvgwgxgugvgvgmgwgxgugmgygygygmgwgeaa -gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgpgqgpgngoglgpgqgpgngoglgpgqgpgngrgrgrgrgrgsgsgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgsgsgrgrgrgrgrgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa -gzgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngegAgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegmgmgmgegegegegmgmgmgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgFgegugmgygygygmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngegegogogogegegegGgGgGgegegegogogogegegHgHgHgegegegegHgHgHgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegxgxgxgegegegGgGgGgegegegxgxgxgegegugmgmgmgmgmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngegfggggggghgegfggggggghgegfggggggghgegIgJgKgKgLgJgKgKgLgJgKgKgLgJgKgKgLgJgKgMgegegNgegegegNgegegegNgegegegegNgegegegegNgegegegNgegegegNgegegegegegigjgjgjgkgegigjgjgjgkgegigjgjgjgkgegugmgygygygmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgpgqgpgngoglgpgqgpgngoglgpgqgpgngOgPgpgQgmgRgpgQgmgRgpgQgmgRgpgQgmgRgqgQgOgegegSgegegegSgegegegSgegegegegSgegegegegSgegegegSgegegegSgegegegegegugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngoglgpgqgqgngoglgqgqgqgngoglgqgqgpgngOgTgngpgmgmgngpgmgmgngpgmgmgngpgmgmgqgpgOgUgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgWgugmgvgvgwgxgugvgvgvgwgxgugvgvgmgwgxgugmgygygygmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgpgqgpgngoglgpgqgpgngoglgpgqgpgngOgXgpgYgmgZgpgYgmgZgpgYgmgZgpgYgmgZgqgYgOgegehagegGgehagegGgehagegegGgehagegGgegehagegGgehagegGgehagegegGgegegugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegAgBgBgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgehbhcgHgHhdhcgHgHhdhcgHgHhdhcgHgHhdhcgHhegegehfgegGgehfgegGgehfgegegGgehfgegGgegehfgegGgehfgegGgehfgegegGgegegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgEgEgFgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagehggegegegegehggegegogogogegegegpgpgpgegegegegVgegegegegKgegegegegegqgqgqgegegegegehhhihihihjgegegGgegGgegGgegGgegGgegegGgegGgegGgegegGgegGgegGgegGgegGgegegGgegegegegVgegegegehkhkhkgegegegxgxgxgegehlgegegegegehlgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegfggggggghgegpgpgpgpgpgegegegVgegegegegmgtgtgtgtgtgtgtgtgtgtgtgtgthmhnhnhnhogtgtgtgtgtgtgtgtgtgtgtgtgtgmgegegegmgtgtgtgtgtgtgtgtgtgtgtgtgtgmgegegegegVgegegehkhkhkhkhkgegigjgjgjgkgehkhkhkhkhkhkhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgqgqgqgqgphgglgpgqgpgngegpgmgmgmgpgegegegVgegegegegmgegGgGgGgegqgqgqgegGgGgGgehphqhqhqhrgegGgGgGgehshshsgegGgGgGgegmgegegegmgegGgGgGgegvgvgvgegGgGgGgegmgegegegegVgegegehkgmgmgmhkgegugmgvgmgwhthkgvgvgvgvgvhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgpgpgpgqgphgglgqgqgqgngegpgegqgegpgegVgVgVgVgVgVgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmhuhvhvhvhwhxhxhxhxhxhxhxhxhxhxhxhxhxhyhzhzhzhAgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgVgVgVgVgVgVgehkgegvgehkgegugvgvgvgwhthkgvhkhkhkgvhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgpgpgpgqgphgglgpgqgpgngegpgmgmgmgpgegegegVgegGgegmgmgmhnhnhnhnhnhnhnhnhnhnhngmhBgpgpgpgnhChChChChCgehCgehChChChChCguhkhkhkhDgmhEhEhEhEhEhEhEhEhEhEhEgmgmgmgegGgegVgegegehkgmgmgmhkgegugmgvgmgwhthkgvhkhkhkgvhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegAgBgBgBgCgegpgpgpgpgpgegegegVgGgGgGgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmhBgpgqgpgnhChChChChChCgehChChChChChCguhkgvhkhDgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgGgGgGgVgegegehkhkhkhkhkgegDgEgEgEgFgehkhkhkhkhkhkhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegegogogogogogegegegegegegegegegpgpgpgegegegegegegGgegmgmgegpgogpgegGgGgGgegpgogpgehBgpgpgpgngehChngqhChChChChCgvhEhCgeguhkhkhkhDgehkgxhkgegGgGgGgehkgxhkgegmgmgegGgegegegegegehkhkhkgegegegegegegegegehkhkhkhkhkgegeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegpgpgpgpgpgegpgpgpgpgpgegpgpgpgpgpgegmgmgegogpgogqhnhnhngqgogpgogehBgpgegpgngehChChngqhChChCgvhEhChCgeguhkgehkhDgegxhkgxgvhEhEhEgvgxhkgxgegmgmgehkhkhkhkhkgehkhkhkhkhkgehkhkhkhkhkgehkhkhkhkhkhkhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgphFgpgpgpgegpgmgegmgpgpgpgqhFgqgpgpgpgmgegmgpgpgmgmgGgpgogphnhnhnhnhngpgogpgehBgpgqgpgngehnhChChngqhCgvhEhChChEgeguhkgvhkhDgehkgxhkhEhEhEhEhEhkgxhkgGgmgmhkhkgmgegmhkhkhkgvhFgvhkhkhkgmgegmhkgehkhkhkhFhkhkhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgphFhGhFgpgpgegpgmgqgmgpgpgphFhHhFgpgpgpgmgqgmgpgpgmgmgGgogpgohnhngqhnhngogpgogehBgpgqgpgngegqhnhChChnhChEhChChEgvgeguhkgvhkhDgegxhkgxhEhEgvhEhEgxhkgxgGgmgmhkhkgmgvgmhkhkhkhFhIhFhkhkhkgmgvgmhkgehkhkhFhJhFhkhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgphFgpgpgpgegpgmgegmgpgpgpgqhFgqgpgpgpgmgegmgpgpgmgmgGgpgogphnhnhnhnhngpgogpgehBgpgqgpgngehnhChChngqhCgvhEhChChEgeguhkgvhkhDgehkgxhkhEhEhEhEhEhkgxhkgGgmgmhkhkgmgegmhkhkhkgvhFgvhkhkhkgmgegmhkgehkhkhkhFhkhkhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegpgpgpgpgpgegpgpgpgpgpgegpgpgpgpgpgegmgmgegogpgogqhnhnhngqgogpgogehBgpgegpgngehChChngqhChChCgvhEhChCgeguhkgehkhDgegxhkgxgvhEhEhEgvgxhkgxgegmgmgehkhkhkhkhkgehkhkhkhkhkgehkhkhkhkhkgehkhkhkhkhkhkhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegegogogogogogegegegegegegegegegpgpgpgegegegegegegGgegmgmgegpgogpgegGgGgGgegpgogpgehBgpgpgpgngehChngqhChChChChCgvhEhCgeguhkhkhkhDgehkgxhkgegGgGgGgehkgxhkgegmgmgegGgegegegegegehkhkhkgegegegegegegegegehkhkhkhkhkgegeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegfggggggghgegpgpgpgpgpgegegegVgGgGgGgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmhBgpgqgpgnhChChChChChCgehChChChChChCguhkgvhkhDgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgGgGgGgVgegegehkhkhkhkhkgegigjgjgjgkgehkhkhkhkhkhkhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgpgpgpgqgphgglgmgqgmgngegpgmgmgmgpgegegegVgegGgegmgmgmhnhnhnhnhnhnhnhnhnhnhngmhBgpgpgpgnhChChChChCgehCgehChChChChCguhkhkhkhDgmhEhEhEhEhEhEhEhEhEhEhEgmgmgmgegGgegVgegegehkgmgmgmhkgeguhkgvhkgwhthkgvhkhkhkgvhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgpgpgpgqgphgglgqgqgqgngegpgegqgegpgegVgVgVgVgVgVgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmhLhMhMhMhNhOhOhOhOhOhOhOhOhOhOhOhOhOhPhQhQhQhRgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgVgVgVgVgVgVgehkgegvgehkgegugvgvgvgwhthkgvhkhkhkgvhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahShThUhVhSaahWaaaaaahXaahShThUhVhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgqgqgqgqgphgglgmgqgmgngegpgmgmgmgpgegegegVgegegegegmgegGgGgGgegqgqgqgegGgGgGgegmgegegegmgegGgGgGgehshshsgegGgGgGgehYhZhZhZiagegGgGgGgegvgvgvgegGgGgGgegmgegegegegVgegegehkgmgmgmhkgeguhkgvhkgwhthkgvgvgvgvgvhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibicicicibibidibieibidibibicicicibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegAgBgBgBgCgegpgpgpgpgpgegegegVgegegegegmgtgtgtgtgtgtgtgtgtgtgtgtgtgmgegegegmgtgtgtgtgtgtgtgtgtgtgtgtgtifhEhEhEiggtgtgtgtgtgtgtgtgtgtgtgtgtgmgegegegegVgegegehkhkhkhkhkgegDgEgEgEgFgehkhkhkhkhkhkhkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibihihiiijikiliminioilikijiiihihibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagehggegegegegehggegegogogogegegegpgpgpgegegegegVgegegegegGgegegGgegGgegGgegGgegGgegegGgegegegGgegegGgegGgegGgegGgegGgegeipiqiqiqirgegegegegegvgvgvgegegegegegHgegegegegVgegegegehkhkhkgegegegxgxgxgegehlgegegegegehlgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibihihibisisilisisisilisisibihihibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegfggggggggggghgegfggggggghgegfggggggghgegfggggggghgegegGgegegNgegGgegNgegGgegNgegegGgegNgegGgegegNgegGgegNgegGgegNgegeitgKiuivgKgKiuivgKgKiuivgKgKiuivgKgKiuiwgegigjgjgjgkgegigjgjgjgkgegigjgjgjgkgegigjgjgjgjgjgkgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahSihihidisilililililililisidihihhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgmgqgmgngoglgmgqgmgngoglgmgqgmgngegegGgegegSgegGgegSgegGgegSgegegGgegSgegGgegegSgegGgegSgegGgegSgegegTixgviygmixhkiygmixhkiygmixhkiygmixhkizgTgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahSibibiAiBiCiDiliEisiliFibibhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngoglgmgqgqgngoglgqgqgqgngoglgqgqgmgngUgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgWgThkgvgmgmhkgugmgmhkgugmgmhkgugmgmhkgugOgTgugmgvgvgwgxgugvgvgvgwgxgugvgvgmgwgxgugmgygygygmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiGiHiIiJilisisiliFibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgmgqgmgngoglgmgqgmgngoglgmgqgmgngegegegegehagegegehagegegehagegegegehagegegegehagegegehagegegehagegegTiKgviLgmiKhkiLgmiKhkiLgmiKhkiLgmiKhkiMgTgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiNiOiOiDiliFiPiliFibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngegAgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegegegegehfgegegehfgegegehfgegegegehfgegegegehfgegegehfgegegehfgegeiQgHiRiSgHgHiRiSgHgHiRiSgHgHiRiSgHgHiRiTgegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgFgegugmgygygygmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiUiOiOiViliFiPililidiWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngegegogogogegegegGgGgGgegegegogogogegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegKgKgKgegegegegKgKgKgegegxgxgxgegegegGgGgGgegegegxgxgxgegegugmgmgmgmgmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibibibibibilisisiliFibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngegfggggggghgegfggggggghgegfggggggghgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegmgmgmgegegegegmgmgmgegigjgjgjgkgegigjgjgjgkgegigjgjgjgkgegugmgygygygmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiXiliXibiliFiPiliFiYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgmgqgmgngoglgmgqgmgngoglgmgqgmgngmgrgrgrgrgsgsgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgsgsgrgrgrgrgrgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiXiliXibiliFiPiliFibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngoglgmgqgqgngoglgqgqgqgngoglgqgqgmgngmgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgugmgvgvgwgxgugvgvgvgwgxgugvgvgmgwgxgugmgygygygmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiXililiZilililililidjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgmgqgmgngoglgmgqgmgngoglgmgqgmgngmgrgrgrgrgsgsgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgsgsgrgrgrgrgrgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiXiliXibilisisisisibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegAgBgBgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgEgEgFgeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiXiliXibiljbjcjdikibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegeaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahSibibibibjeibibibibhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahSibjfiFiljgjhibhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibjdisjiisjfibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajjjkjjjjjjjjjkjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibjljmjnjojpibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqjqjqjqjjjrjrjsjsjrjrjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahSiYiYiYiYiYhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjtjujvjwjxjrjrjsjsjyjzjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjtjqjqjqjjjrjrjsjsjrjAjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqjqjqjqjBjqjqjqjCjqaaaajjjrjrjsjsjrjrjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjDjEjFjtjtjtjGjHjtjqaaaajjjrjrjrjrjrjrjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjtjtjtjIjtjIjtjtjtjqaaaajjjrjrjsjsjrjrjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjtjtjJjJjJjJjKjtjtjqaaaajjjkjjjjjjjjjkjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqjqjqjqjqjqjqjtjLjJjMjNjJjtjtjOjqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjPjQjRjSjTjTjqjtjtjJjJjJjJjKjtjUjqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjVjVjVjVjVjVjWjtjtjXjtjXjtjtjtjYjqjqjqjqjqjZjZjZjZjZjZjZjZjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjVjVjVjVjVjVjWjtjtjtjtjtjtjtjtkakbkckckcjqjZkdjZkdjZkdjZkdjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqkekekfkgkhkhjqkikjjtjtjtjtjtjtkakkkcklkcjqjZjZjZjZjZjZjZjZjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqkmknknkojqjqkmknknkojqjqjqkpjqjqkqkrksjqjZkdjZkdjZkdjZkdjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaktjtjtkakukvkwksjqjZjZjZjZjZjZjZjZjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakxkyjtjtkakzkAkBkCjqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakDkykEjtjtkajqjqjqjqjqjZjZjZjZjZjZjZjZjZaakFkFkFkFkFkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakGkHjvkIjtjtkJjqkKkckLjqjZkdjZkdjZkdjZkdjZaakFkMkNkNkOkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakDkPkIjtjtjtkQkckckRjqjZjZjZjZjZjZjZjZjZaakSkTkTkTkTkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakUkPjtjtkVjqkckckWjqjZkdjZkdjZkdjZkdjZaakFkTkXkYkZkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalajtjtkajqkclblcjqjZjZjZjZjZjZjZjZjZaakFldlelflgkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqjqjqjqlhjqjqjqjqjqjqaaaaaaaaaaaaaaaaaaaakFkTkTkTkTkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaliljlkljlllmllljlkljliaaaaaakFkFkFkFkFkFkFkFlnlolplqlrkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaliljljljlsltlsljljljliaaaaaakFlulvlvlvlwlxlylzlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalilElilEliltlilElilElilililikFlFlBlBlBlBlBlGlHlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalilIlllJltltltltltlKlLlMlMlNkFlFlBlBlBlBlOlPlQlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSlSlSlSlSlSlSlIlTlJltltltlUlilElililMlVkFlFlBlBlBlBlWlWlWlXlBlBlClDlYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSmambmcmbmdlSlIlslJltltltmelElIlimfmgmhkFmilBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmkmjmjmjmlmmmjmjmjmjmjmlmjmjmjmjmjmnmlmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamompmqmqmqmqlSlElimrltltltmslilElilEmtlEkFmulBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmkmjmjmjmjmjmjmjmjmjmjmjmlmjmjmjmjmjmjmjmlmjmvmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamwmpmqmqmqmqmxmyltltltltltltltlKmzlMlMlMmAmBlBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmCmjmjmjmjmjmkmjmjmmmjmjmlmjmjmlmjmjmlmmmjmlmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamomDmqmqmqmqlSlElimEltltltlUlimFlilililikFmGlBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmlmjmjmkmjmjmlmmmjmjmlmjmmlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmwmpmqmqmqmqlSlIlllJltltltmIlllIliaaaaaakFmJlBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmkmjmjmjmjmjmjmjmmmjmlmmmjmlmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamKmpmqmqmqmqlSlIlTlJltltltmIlTlIliaaaaaakFmLlBlBlBlBmMmMmMmNlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmmmjmjmjmlmjmjmCmmmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamOmpmqmqmqmqlSlIlsmPmEltlUmQlslIliaaaaaakFmLlBlBlBlBmRmSmTlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmUmUmUmUmUmUmUmUmUmjmjmjmjmjmjmCmjmjmkmjmkmjmlmjmllZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamVmpmqmqmqmqlSmWmWmXmYmZmXmYmWmWmWaaaaaakFmLlBlBlBlBlBnanblAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmUmUmUmUmUmUmUmUmUmjmjmjmjmjmjncncndnencncmjmmmlmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSnfngnhmqmqlSninjnknlnmnnnonpnqmWaaaaaakFnrnsnsnsntnunvnwlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmUmUmUmUmUmUmUmUmUmjmjmjmjmjncncnxnynynxncncncncncncncncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSlSlSlSnzlSlSnAnmnBnlnmnnnBnmnCmWaaaaaakFkFkFkFkFkFkFkFnDlolpnElrkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRnFnGnHnInFlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmUmUmUmUmUmUmUmUmUmjmCmjmjmjncnJnKnKnKnKnLnMnNncnOnPnQncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSnRnRnRlSnSnmnBnlnmnnnBnmnTmWaaaaaaaaaaaaaaaaaaaaaakFlBlBlBlBkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFnFnUnVnUnFnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmUmUmUmUmUmUmUmUmUmjmjmjmjmkncnWnKnXnXnYnKnKnKnZoaoaobncncncncncncncncncncncncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSnRnRnRlSocnmnBnlnmnnnBnmodmWaaaaaaaaaaaaaaaaaaaaaakFlBoemSmRkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFnUnUnUnUnUnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmUmUmUmUmUmUmUmjmjmjmjmjmjncnKnXofognXnKohoincoaojncncokokokolololololokokncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSnRnRnRlSomononoonmopoqoqormWaaaaaaaaaaaaaaaaaaaaaakFlBosnaotkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFounUnUnUovnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmUmUmUmUmUowoxoxoxoxoxnencnKnXoyoznXnKohoAncncncncncokoBoCoDoEoFoEoGoHokncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSlSlSlSlSmXoImYmWnmmWmXoImYmWaaaaaaaaaaaaaaaaaaaaaaoJlBlBlBlBkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRnFnFnFnFoKoLoKnFnFnFnFlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUoMoNoNoNoNoNoNoOnKnKnKnKnKnKohoAncncncncncokoPoDoEoQoRoSoEoGoTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWoUoUoUoVnmoVoUoUoUmWaaaaaaaaaaaaaaaaaaaaaakFoWntntoXkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFnFoYoZnFnUnUnUnFpapbnFnFlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUpcpdndoxoxoxnencpenXnXnXnKnKohpfndoxoxoxoxoxoxoEoQoRpgoRoSoEoTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWmWmWmWmWmWmWmWmZmWmWmWmWmWmWmWmWaaaaaaaaaaaaaaaakFkFkFkFkFkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRnFnFphpiphnFnUnUnUnFpjpkplnFnFlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUmUpmmUmUmjmjmjncpnpopppopqnKnKnKpdoNoNoNoNoNpdproRoSpsoQoRproTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWptpupupupupuptptptpupupupupuptmWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRnFnFoZphphphpvnUnUnUpwpapxpapbnFnFlRlRlRlRlRlRlRaaaaaaaalZpymjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmkncpzpApzpzpBnKnKnKndoxoxoxoxoxoxoEoQoRpCoRoSoEoTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapDptptptpEptptptptptptptpEptptptpDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRnFoYpFphphphnFnUnUnUnFpGpapjpHplnFlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmCmjncncoipIpJpKncpLncncncncncncokoPpMoEoQoRoSoEpNoTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWptpupupupupuptptptpupupupupuptmWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRnFphphphphpOnFpPnUpQnFpRpSpapxpanFlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjncncncncncncpTpTpUpVpWpXncokpYpZpMoEqaoEpNqbokncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWmXoIoIoIoIoIoIoIoIoIoIoIoIoImYmWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRnFnFqcnFnFnFnFnFnFqdnFnFnFnFnGnHnInFnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmjmjmCmjncpTpTpTpTpTpTncokokokqeqeqeqeqeokokncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqfqfqfqfqfqfqfqfqgqhqhqhqhqhqhqhqhqhqhqhqhqhqgqfqfqfqfqfqfqfqfqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRnFqinUnUqinFqjqknUnUnUqlqmnFqnqoqpqqnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmkmjmjmmqrpTpTpTpTpTqsncncncncncncncncncncncncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqvqvqvqvqwqxqhqhqhqhqhqhqhqhqhqhqhqhqhqyqwqzqzqzqzqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRqBqCnUnUqCqBnUnUnUnUnUnUqDqBqqqEqFqEnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmCmlmkmCncqGqGqGqGqGqHncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqIqvqIqvqwqxqhqhqhqhqhqhqhqhqhqhqhqhqhqyqwqzqJqzqJqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRqKqLnUnUnUqKnUnUnUqMnUnUqNqKqOqoqqqonFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmjmjmlmjncncncncncncncncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqvqPqvqvqwqxqhqhqhqhqhqQqRqQqhqhqhqhqhqyqwqzqzqSqzqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRqTqCnUnUqCqTnUnUnUqUnUnUnUqTqVqWqEqXnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmlmjmCmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqvqvqvqvqwqxqhqhqhqhqhqQqYqQqhqhqhqhqhqyqwqzqzqzqzqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRnFqZnUnUqZnFranUnUnUnUnUnUnFqqqoqqrbnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqIqvqIqvqwqxqhqhqhqhqhqhqhqhqhqhqhqhqhqyqwqzqJqzqJqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRnFnFrcnFnFnFnFnFoKrcoKnFnFnFnGnHnInFnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmjmUmUmUmUmUmUmUmUmUmUmUmjmjmjmjmvmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqvqvqvqvqwqxqhqhqhqhqhqhqhqhqhqhqhqhqhqyqwqzqzqzqzqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRqBnUnUnUnUnUnUnUnUnUnUnUnUnUnUnUqBlRlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmjmUmUmUmUmUmjmUmUmUmUmUmjmjmjmvrdmvmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqfqfrerererereqfqgqhqhqhqhqhqhqhqhqhqhqhqhqhqgqfrerererereqfqfqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRqTnUpanUpanUpanUpanUpanUpanUpanUqTlRlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmjmjmjmjmjmjmjmUmUmUmUmUmjmjmjmjmvmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfrfrfrfrfrfqfrgrhrhrhrhrhrhrhrhrhrhrhrhrhriqfrjrjrjrjrjqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRnFnFnUnUnUnUnUnUnUnUnUnUnUnUnUnFnFlRlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmjmjmjmjmjmjmjmUmUmUmUmUmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqfqfqfqfqfqfrkrlrlrlrlrlrmrnrorlrlrlrlrlrkqfqfqfqfqfqfqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRnFnFnFrpnFnFnFrqnFnFnFrrnFnFnFlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarsrkrkrkrtrkrurururururkrtrkrkrkrsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFrvrwrxnFryparznFrArBrCnFlRlRlRlRlRlRlRlRlRaaaaaaaalZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarsrsrDrsrsrsrsrErFrGrsrsrsrsrDrsrsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFrHrwrInFparJpanFrKrBrBnFlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarsrsrsrsrsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFrLrMrNnFrOparPnFrQrRrSnFlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFnFrTnFnFnFoKnFnFnFnFnFnFlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrUrUrUrUrUrUrUrUrUrUrUrUrUrUrUrUrUrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRnFnUnFnUrVrWrVrXnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrYrZsasbsbrZscsdsesfsgshsishshshsjrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRoKnUrTnUnUnUnUnUoKlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrYrZrZrZrZrZsksgsgsgslshshshsmshshrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRnFnFnFsnnUnUnUsnnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsorZsprYsqsrsssgsgsgsgshshstshsusirUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFsvsvsvsvsvnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUswsgslslslslslsgsgsgsgshshshsxshshrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFnFsysysynFnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUszsgsgsgsgsgsgsgsgsgsgsAshshshshshrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRsBsBsBlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsCsgsgsgsgsgsgsgsgslsgsAsDsDsDsEsDrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsFsgsgsgsgsgsgsgslsGslsAsHsHsHsHsHrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrUsIsJsJsKrUrUrUrUrUrUrUrUrUrUrUrUrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsMsMsMsMrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsMsMsMsMrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrUrUrUrUrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasNsOsPsQsRaaaaaasNsOsPsQsRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSsTsUsVsWsXsYaasSsTsZtatbsXsYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatctdtetetetftgaatcthtetetetftgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatitjtktltmtntoaatitjtptltqtntoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatrtstetetetfttaatrtstetetetfttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatutvtwtxtytztAaatutvtwtxtytztAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatBtCtDtEtFaaaaaatBtCtDtEtFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasNsOsPsQsRaaaaaasNsOsPsQsRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSsTtGtHtIsXsYaasSsTtJtKtLsXsYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatctMtetetetftgaatctNtetetetftgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatitjtOtltPtntoaatitjtQtltRtntoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatrtstetetetfttaatrtstetetetfttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatutvtwtxtytztAaatutvtwtxtytztAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatBtCtDtEtFaaaaaatBtCtDtEtFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aatStStStStStStStStStStStStStStSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aatStTtTtTtTtTtTtUtTtTtTtTtTtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aatStTtVtVtVtWtVtVtVtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aatStTtVtVtVtWtVtVtVtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aatStTtVtVtVtWtVtVtVtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aatStTtWtWtWtWtWtWtWtWtWtWtWtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aatStTtVtVtVtWtWtWtWtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aatStTtVtVtVtWtWtXtWtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aatStTtVtVtVtWtWtYtWtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aatStTtTtTtTtTtTtTtTtTtTtTtTtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aatStStStStStStStStStStStStStStSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatZ -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatZ -"} +"aa" = (/turf/open/space,/area/space) +"ab" = (/turf/closed/indestructible/riveted,/area/space) +"ac" = (/obj/structure/window/reinforced,/turf/closed/indestructible/riveted,/area/space) +"ad" = (/obj/effect/landmark/transit,/turf/open/space,/area/space) +"ae" = (/obj/structure/window/reinforced{dir = 4},/turf/closed/indestructible/riveted,/area/space) +"af" = (/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"ag" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/closed/indestructible/riveted,/area/space) +"ah" = (/obj/structure/foamedmetal,/obj/structure/window{icon_state = "rwindow"; dir = 8},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/bunker) +"ai" = (/obj/structure/foamedmetal,/obj/structure/window{icon_state = "rwindow"; dir = 4},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/bunker) +"aj" = (/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/bunker) +"ak" = (/turf/open/floor/holofloor{tag = "icon-asteroid_warn_side (WEST)"; icon_state = "asteroid_warn_side"; dir = 8},/area/holodeck/rec_center/bunker) +"al" = (/obj/structure/table,/obj/item/stack/medical/ointment{heal_burn = 10},/turf/open/floor/holofloor{tag = "icon-asteroid_warn_side (WEST)"; icon_state = "asteroid_warn_side"; dir = 8},/area/holodeck/rec_center/bunker) +"am" = (/obj/structure/table/wood{layer = 3.3},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-05"; layer = 4.1; pixel_y = 4},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"an" = (/obj/structure/closet/crate/bin,/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"ao" = (/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"ap" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{layer = 3.3; pixel_y = 0},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aq" = (/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/wildlife) +"ar" = (/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/offline) +"as" = (/turf/open/floor/holofloor/plating/burnmix,/area/holodeck/rec_center/burn) +"at" = (/turf/open/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/rec_center/court) +"au" = (/turf/open/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/rec_center/court) +"av" = (/turf/open/floor/holofloor{dir = 5; icon_state = "red"},/area/holodeck/rec_center/court) +"aw" = (/obj/structure/window/reinforced{dir = 8},/turf/closed/indestructible/riveted,/area/space) +"ax" = (/obj/structure/flora/bush,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"ay" = (/obj/item/toy/snowball{pixel_x = 0; pixel_y = 6},/obj/item/toy/snowball{pixel_x = 5; pixel_y = 0},/obj/item/toy/snowball{pixel_x = -4},/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"az" = (/turf/open/floor/holofloor{tag = "icon-asteroid_warn (WEST)"; icon_state = "asteroid_warn"; dir = 8},/area/holodeck/rec_center/bunker) +"aA" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/holofloor{tag = "icon-asteroidfloor (WEST)"; icon_state = "asteroidfloor"; dir = 8},/area/holodeck/rec_center/bunker) +"aB" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/matches{pixel_x = -4; pixel_y = 8},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aC" = (/obj/structure/chair/wood/normal,/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aD" = (/obj/effect/holodeck_effect/mobspawner,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/wildlife) +"aE" = (/obj/effect/holodeck_effect/sparks,/turf/open/floor/holofloor/plating/burnmix,/area/holodeck/rec_center/burn) +"aF" = (/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/court) +"aG" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/court) +"aH" = (/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/court) +"aI" = (/obj/structure/flora/grass/brown,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"aJ" = (/obj/structure/table,/obj/item/weapon/gun/energy/laser,/turf/open/floor/holofloor{tag = "icon-asteroidfloor (WEST)"; icon_state = "asteroidfloor"; dir = 8},/area/holodeck/rec_center/bunker) +"aK" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 4},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aL" = (/obj/structure/table/wood/poker,/obj/item/clothing/mask/cigarette/pipe,/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aM" = (/obj/structure/table/wood/poker,/obj/structure/table/wood/poker,/obj/effect/holodeck_effect/cards,/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aN" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 8},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aO" = (/obj/structure/statue/snow/snowman{anchored = 1},/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"aP" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 1},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aQ" = (/obj/structure/chair/wood/wings,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"aR" = (/obj/structure/window/reinforced/tinted{icon_state = "rwindow"; dir = 4},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aS" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aT" = (/obj/structure/flora/tree/pine,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"aU" = (/obj/structure/chair/wood,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"aV" = (/obj/structure/table/wood,/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-05"; layer = 4.1; pixel_y = 10},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aW" = (/turf/open/floor/holofloor{dir = 9; icon_state = "stairs-l"},/area/holodeck/rec_center/lounge) +"aX" = (/turf/open/floor/holofloor{dir = 9; icon_state = "stairs-r"},/area/holodeck/rec_center/lounge) +"aY" = (/turf/open/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/rec_center/court) +"aZ" = (/turf/open/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/rec_center/court) +"ba" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_y = 4},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"bb" = (/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"bc" = (/obj/structure/chair/comfy/brown{dir = 4},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"bd" = (/obj/structure/chair/comfy/brown{dir = 8},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"be" = (/obj/structure/table,/obj/item/stack/medical/bruise_pack{heal_brute = 10},/turf/open/floor/holofloor{tag = "icon-asteroid_warn_side (WEST)"; icon_state = "asteroid_warn_side"; dir = 8},/area/holodeck/rec_center/bunker) +"bf" = (/obj/structure/table/wood,/obj/item/device/instrument/violin,/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"bg" = (/obj/structure/chair/comfy/brown{buildstackamount = 0; dir = 1},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"bh" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/barman_recipes,/obj/item/clothing/mask/cigarette/pipe,/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"bi" = (/turf/open/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/rec_center/court) +"bj" = (/turf/open/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/rec_center/court) +"bk" = (/turf/open/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/rec_center/court) +"bl" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/closed/indestructible/riveted,/area/space) +"bm" = (/obj/effect/holodeck_effect/mobspawner/bee,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/anthophila) +"bn" = (/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bo" = (/obj/structure/flora/ausbushes/sunnybush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bp" = (/obj/structure/flora/ausbushes/genericbush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bq" = (/obj/structure/table/glass,/obj/item/weapon/surgicaldrill,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHWEST)"; icon_state = "white_warn"; dir = 9},/area/holodeck/rec_center/medical) +"br" = (/obj/structure/table/glass,/obj/item/weapon/hemostat,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) +"bs" = (/obj/structure/table/glass,/obj/item/weapon/scalpel{pixel_y = 10},/obj/item/weapon/circular_saw,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) +"bt" = (/obj/structure/table/glass,/obj/item/weapon/retractor,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) +"bu" = (/obj/structure/table/glass,/obj/item/stack/medical/gauze,/obj/item/weapon/cautery,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHEAST)"; icon_state = "white_warn"; dir = 5},/area/holodeck/rec_center/medical) +"bv" = (/turf/open/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/rec_center/basketball) +"bw" = (/obj/structure/holohoop{layer = 3.9},/turf/open/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/rec_center/basketball) +"bx" = (/turf/open/floor/holofloor{dir = 5; icon_state = "red"},/area/holodeck/rec_center/basketball) +"by" = (/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) +"bz" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/obj/machinery/readybutton,/turf/open/floor/holofloor{tag = "icon-warningline"; icon_state = "warningline"; dir = 2},/area/holodeck/rec_center/thunderdome) +"bA" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/under/color/red,/obj/item/weapon/holo/esword/red,/turf/open/floor/holofloor{tag = "icon-warningline"; icon_state = "warningline"; dir = 2},/area/holodeck/rec_center/thunderdome) +"bB" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/turf/open/floor/holofloor{tag = "icon-warningline"; icon_state = "warningline"; dir = 2},/area/holodeck/rec_center/thunderdome) +"bC" = (/obj/machinery/readybutton,/turf/open/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"bD" = (/turf/open/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"bE" = (/turf/open/floor/holofloor{dir = 5; icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"bF" = (/obj/effect/holodeck_effect/mobspawner/pet,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bG" = (/obj/structure/flora/ausbushes/ppflowers,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bH" = (/obj/effect/holodeck_effect/mobspawner/pet,/obj/structure/flora/ausbushes/brflowers,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bI" = (/obj/structure/table/glass,/obj/item/weapon/surgical_drapes,/obj/item/weapon/razor,/turf/open/floor/holofloor{tag = "icon-white_warn (WEST)"; icon_state = "white_warn"; dir = 8},/area/holodeck/rec_center/medical) +"bJ" = (/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"bK" = (/turf/open/floor/holofloor{tag = "icon-white_warn (EAST)"; icon_state = "white_warn"; dir = 4},/area/holodeck/rec_center/medical) +"bL" = (/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/basketball) +"bM" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/basketball) +"bN" = (/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/basketball) +"bO" = (/obj/effect/overlay/palmtree_r,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) +"bP" = (/obj/effect/overlay/palmtree_l,/obj/effect/overlay/coconut,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) +"bQ" = (/turf/open/floor/holofloor/basalt,/area/holodeck/rec_center/thunderdome) +"bR" = (/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"bS" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/dodgeball) +"bT" = (/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"bU" = (/obj/structure/flora/ausbushes/brflowers,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bV" = (/obj/item/weapon/storage/bag/easterbasket{name = "picnic basket"; pixel_y = 6},/turf/open/floor/holofloor{icon_state = "redbluefull"},/area/holodeck/rec_center/pet_lounge) +"bW" = (/obj/item/trash/plate,/turf/open/floor/holofloor{icon_state = "redbluefull"},/area/holodeck/rec_center/pet_lounge) +"bX" = (/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHWEST)"; icon_state = "white_warn"; dir = 10},/area/holodeck/rec_center/medical) +"bY" = (/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) +"bZ" = (/obj/structure/table/optable,/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) +"ca" = (/obj/machinery/computer/operating,/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) +"cb" = (/obj/structure/table/glass,/obj/item/clothing/gloves/color/latex/nitrile,/obj/item/clothing/suit/apron/surgical,/obj/item/clothing/mask/surgical,/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHEAST)"; icon_state = "white_warn"; dir = 6},/area/holodeck/rec_center/medical) +"cc" = (/turf/open/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/rec_center/basketball) +"cd" = (/obj/effect/holodeck_effect/mobspawner/monkey,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) +"ce" = (/turf/open/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"cf" = (/obj/structure/flora/ausbushes/palebush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cg" = (/obj/effect/holodeck_effect/mobspawner/pet,/turf/open/floor/holofloor{icon_state = "redbluefull"},/area/holodeck/rec_center/pet_lounge) +"ch" = (/obj/item/weapon/shovel/spade{pixel_x = 2; pixel_y = -2},/turf/open/floor/holofloor{icon_state = "redbluefull"},/area/holodeck/rec_center/pet_lounge) +"ci" = (/obj/structure/window{dir = 1},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"cj" = (/obj/effect/holodeck_effect/mobspawner/bee,/obj/item/clothing/head/beekeeper_head,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/anthophila) +"ck" = (/obj/structure/table/glass,/obj/machinery/reagentgrinder,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHWEST)"; icon_state = "white_warn"; dir = 9},/area/holodeck/rec_center/medical) +"cl" = (/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHEAST)"; icon_state = "white_warn"; dir = 5},/area/holodeck/rec_center/medical) +"cm" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/syringes{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/beakers,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"cn" = (/obj/machinery/washing_machine,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"co" = (/turf/open/floor/holofloor{dir = 10; icon_state = "red"},/area/holodeck/rec_center/basketball) +"cp" = (/turf/open/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/rec_center/basketball) +"cq" = (/turf/open/floor/holofloor{dir = 6; icon_state = "red"},/area/holodeck/rec_center/basketball) +"cr" = (/obj/item/clothing/under/color/rainbow,/obj/item/clothing/glasses/sunglasses,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) +"cs" = (/obj/structure/window,/turf/open/floor/holofloor/basalt,/area/holodeck/rec_center/thunderdome) +"ct" = (/obj/structure/window{dir = 1},/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 10; icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"cu" = (/obj/structure/window{dir = 1},/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"cv" = (/obj/structure/window{dir = 1},/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 6; icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"cw" = (/obj/effect/holodeck_effect/mobspawner/bee,/obj/effect/decal/remains/human,/obj/item/clothing/suit/beekeeper_suit,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/anthophila) +"cx" = (/obj/effect/holodeck_effect/mobspawner/bee,/obj/item/weapon/melee/flyswatter,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/anthophila) +"cy" = (/obj/machinery/chem_master,/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHWEST)"; icon_state = "white_warn"; dir = 10},/area/holodeck/rec_center/medical) +"cz" = (/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHEAST)"; icon_state = "white_warn"; dir = 6},/area/holodeck/rec_center/medical) +"cA" = (/obj/structure/table/glass,/obj/item/device/healthanalyzer,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"cB" = (/obj/structure/closet/wardrobe/white,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"cC" = (/turf/open/floor/holofloor{dir = 9; icon_state = "green"},/area/holodeck/rec_center/basketball) +"cD" = (/turf/open/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/rec_center/basketball) +"cE" = (/turf/open/floor/holofloor{dir = 5; icon_state = "green"},/area/holodeck/rec_center/basketball) +"cF" = (/obj/item/toy/beach_ball,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) +"cG" = (/obj/structure/window{dir = 1},/turf/open/floor/holofloor/basalt,/area/holodeck/rec_center/thunderdome) +"cH" = (/obj/structure/window,/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 9; icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"cI" = (/obj/structure/window,/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"cJ" = (/obj/structure/window,/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 5; icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"cK" = (/obj/structure/sink/puddle,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cL" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cM" = (/turf/open/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/rec_center/basketball) +"cN" = (/obj/item/toy/beach_ball/holoball,/turf/open/floor/holofloor,/area/holodeck/rec_center/basketball) +"cO" = (/turf/open/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/rec_center/basketball) +"cP" = (/turf/open/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"cQ" = (/turf/open/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"cR" = (/obj/machinery/hydroponics/soil,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cS" = (/obj/machinery/hydroponics/soil,/obj/item/weapon/cultivator,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cT" = (/obj/machinery/hydroponics/soil,/obj/effect/holodeck_effect/mobspawner/pet,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cU" = (/obj/structure/flora/ausbushes/grassybush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cV" = (/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/structure/window{dir = 1},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHWEST)"; icon_state = "white_warn"; dir = 9},/area/holodeck/rec_center/medical) +"cW" = (/obj/structure/window{icon_state = "rwindow"; dir = 8},/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/structure/window{dir = 1},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHEAST)"; icon_state = "white_warn"; dir = 5},/area/holodeck/rec_center/medical) +"cX" = (/obj/structure/window{icon_state = "rwindow"; dir = 8},/obj/machinery/computer/pandemic,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"cY" = (/turf/open/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/rec_center/basketball) +"cZ" = (/turf/open/floor/holofloor/beach/coast_t,/area/holodeck/rec_center/beach) +"da" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/holofloor/beach/coast_t,/area/holodeck/rec_center/beach) +"db" = (/obj/item/weapon/shovel/spade,/turf/open/floor/holofloor/beach/coast_t,/area/holodeck/rec_center/beach) +"dc" = (/turf/open/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"dd" = (/obj/structure/flora/ausbushes/pointybush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"de" = (/turf/open/floor/holofloor{tag = "icon-white_warn (WEST)"; icon_state = "white_warn"; dir = 8},/area/holodeck/rec_center/medical) +"df" = (/turf/open/floor/holofloor{dir = 8; icon_state = "white_warn_corner"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/medical) +"dg" = (/obj/machinery/door/window/westleft,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) +"dh" = (/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) +"di" = (/turf/open/floor/holofloor/beach/coast_b,/area/holodeck/rec_center/beach) +"dj" = (/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/iv_drip{density = 0},/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHWEST)"; icon_state = "white_warn"; dir = 10},/area/holodeck/rec_center/medical) +"dk" = (/obj/structure/window{icon_state = "rwindow"; dir = 8},/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/iv_drip{density = 0},/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) +"dl" = (/obj/structure/window{icon_state = "rwindow"; dir = 8},/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 1},/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) +"dm" = (/obj/machinery/iv_drip{density = 0},/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) +"dn" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 1},/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHEAST)"; icon_state = "white_warn"; dir = 6},/area/holodeck/rec_center/medical) +"do" = (/turf/open/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/rec_center/basketball) +"dp" = (/obj/structure/holohoop{dir = 1; layer = 4.1},/turf/open/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/rec_center/basketball) +"dq" = (/turf/open/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/rec_center/basketball) +"dr" = (/turf/open/floor/holofloor/beach/water,/area/holodeck/rec_center/beach) +"ds" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/turf/open/floor/holofloor{tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1},/area/holodeck/rec_center/thunderdome) +"dt" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/under/color/green,/obj/item/weapon/holo/esword/green,/turf/open/floor/holofloor{tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1},/area/holodeck/rec_center/thunderdome) +"du" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/obj/machinery/readybutton,/turf/open/floor/holofloor{tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1},/area/holodeck/rec_center/thunderdome) +"dv" = (/turf/open/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"dw" = (/turf/open/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"dx" = (/obj/machinery/readybutton,/turf/open/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"dy" = (/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/refuel) +"dz" = (/turf/open/floor/holofloor/grass,/turf/open/floor/holofloor{tag = "icon-warningline"; icon_state = "warningline"; dir = 2},/area/holodeck/rec_center/spacechess) +"dA" = (/obj/item/weapon/banner/blue,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"dB" = (/obj/structure/table/wood/fancy,/obj/item/clothing/suit/armor/riot/knight/blue,/obj/item/clothing/head/helmet/knight/blue,/obj/item/weapon/claymore/weak,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"dC" = (/obj/structure/table/wood/fancy,/obj/item/clothing/head/crown/fancy{pixel_y = 6},/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"dD" = (/obj/structure/table/wood/fancy,/obj/item/clothing/suit/armor/riot/knight/red,/obj/item/clothing/head/helmet/knight/red,/obj/item/weapon/claymore/weak,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"dE" = (/obj/item/weapon/banner/red,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"dF" = (/turf/open/floor/holofloor/hyperspace,/area/holodeck/rec_center/kobayashi) +"dG" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor/hyperspace,/area/holodeck/rec_center/kobayashi) +"dH" = (/obj/structure/closet{density = 0; opened = 1},/obj/item/clothing/suit/judgerobe,/obj/item/clothing/head/powdered_wig,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"dI" = (/obj/structure/table/wood/fancy,/obj/item/clothing/suit/nun,/obj/item/clothing/head/nun_hood,/obj/item/clothing/suit/holidaypriest,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"dJ" = (/obj/structure/table/wood/fancy,/obj/item/weapon/storage/book/bible,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"dK" = (/obj/structure/table/wood/fancy,/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"dL" = (/obj/structure/closet{name = "Evidence Closet"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"dM" = (/obj/machinery/conveyor/holodeck{dir = 5; icon_state = "conveyor0"; id = "holocoaster"; movedir = null; verted = -1},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"dN" = (/obj/machinery/conveyor/holodeck{dir = 8; id = "holocoaster"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"dO" = (/obj/machinery/conveyor/holodeck{dir = 6; id = "holocoaster"; movedir = null; verted = -1},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"dP" = (/turf/open/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/rec_center/firingrange) +"dQ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHWEST)"; icon_state = "white_warn"; dir = 9},/area/holodeck/rec_center/firingrange) +"dR" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/firingrange) +"dS" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHEAST)"; icon_state = "white_warn"; dir = 5},/area/holodeck/rec_center/firingrange) +"dT" = (/turf/open/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/rec_center/firingrange) +"dU" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/refuel) +"dV" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_viva"; name = "Black Rook"; tag = "icon-cutout_viva"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"dW" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_mime"; name = "Black Queen"; tag = "icon-cutout_mime"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"dX" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_clown"; name = "Black King"; tag = "icon-cutout_clown"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"dY" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_ian"; name = "Black Knight"; tag = "icon-cutout_ian"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"dZ" = (/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"ea" = (/obj/structure/chair/wood/wings,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"eb" = (/obj/structure/window/reinforced,/obj/machinery/mass_driver{dir = 1; icon_state = "mass_driver"; id = "trektorpedo1"; name = "photon torpedo tube"; tag = "icon-mass_driver (NORTH)"},/obj/item/toy/minimeteor{color = ""; icon = 'icons/effects/effects.dmi'; icon_state = "impact_laser"; name = "photon torpedo"},/turf/open/floor/holofloor/hyperspace,/area/holodeck/rec_center/kobayashi) +"ec" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/computer/arcade/orion_trail{desc = "A test for cadets"; events = list("Raiders" = 3, "Interstellar Flux" = 1, "Illness" = 3, "Breakdown" = 2, "Malfunction" = 2, "Collision" = 1, "Spaceport" = 2); icon = 'icons/obj/machines/particle_accelerator.dmi'; icon_state = "control_boxp"; name = "Kobayashi Maru control computer"; prizes = list(/obj/item/weapon/paper/trek_diploma = 1); settlers = list("Kirk","Worf","Gene")},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"ed" = (/obj/machinery/button/massdriver{id = "trektorpedo1"; layer = 3.9; name = "photon torpedo button"; pixel_x = -16; pixel_y = -5},/obj/machinery/button/massdriver{id = "trektorpedo2"; layer = 3.9; name = "photon torpedo button"; pixel_x = 16; pixel_y = -5},/obj/machinery/computer/arcade/orion_trail{desc = "A test for cadets"; events = list("Raiders" = 3, "Interstellar Flux" = 1, "Illness" = 3, "Breakdown" = 2, "Malfunction" = 2, "Collision" = 1, "Spaceport" = 2); icon = 'icons/obj/machines/particle_accelerator.dmi'; icon_state = "control_boxp"; name = "Kobayashi Maru control computer"; prizes = list(/obj/item/weapon/paper/trek_diploma = 1); settlers = list("Kirk","Worf","Gene")},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"ee" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/computer/arcade/orion_trail{desc = "A test for cadets"; events = list("Raiders" = 3, "Interstellar Flux" = 1, "Illness" = 3, "Breakdown" = 2, "Malfunction" = 2, "Collision" = 1, "Spaceport" = 2); icon = 'icons/obj/machines/particle_accelerator.dmi'; icon_state = "control_boxp"; name = "Kobayashi Maru control computer"; prizes = list(/obj/item/weapon/paper/trek_diploma = 1); settlers = list("Kirk","Worf","Gene")},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"ef" = (/obj/structure/window/reinforced,/obj/machinery/mass_driver{dir = 1; icon_state = "mass_driver"; id = "trektorpedo2"; name = "photon torpedo tube"; tag = "icon-mass_driver (NORTH)"},/obj/item/toy/minimeteor{color = ""; icon = 'icons/effects/effects.dmi'; icon_state = "impact_laser"; name = "photon torpedo"},/turf/open/floor/holofloor/hyperspace,/area/holodeck/rec_center/kobayashi) +"eg" = (/obj/structure/chair{dir = 4},/turf/open/floor/holofloor{tag = "icon-chapel (NORTH)"; icon_state = "chapel"; dir = 1},/area/holodeck/rec_center/chapelcourt) +"eh" = (/turf/open/floor/holofloor{tag = "icon-chapel (EAST)"; icon_state = "chapel"; dir = 4},/area/holodeck/rec_center/chapelcourt) +"ei" = (/obj/structure/chair,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"ej" = (/turf/open/floor/holofloor{tag = "icon-chapel (NORTH)"; icon_state = "chapel"; dir = 1},/area/holodeck/rec_center/chapelcourt) +"ek" = (/obj/structure/chair{dir = 8},/turf/open/floor/holofloor{tag = "icon-chapel (EAST)"; icon_state = "chapel"; dir = 4},/area/holodeck/rec_center/chapelcourt) +"el" = (/obj/machinery/conveyor/holodeck{id = "holocoaster"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"em" = (/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"en" = (/obj/machinery/conveyor/holodeck{dir = 1; id = "holocoaster"; layer = 2.5},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"eo" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{tag = "icon-white_warn (WEST)"; icon_state = "white_warn"; dir = 8},/area/holodeck/rec_center/firingrange) +"ep" = (/obj/structure/target_stake,/obj/machinery/magnetic_module,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/firingrange) +"eq" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/holofloor{tag = "icon-white_warn (EAST)"; icon_state = "white_warn"; dir = 4},/area/holodeck/rec_center/firingrange) +"er" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_greytide"; name = "Black Pawn"; tag = "icon-cutout_greytide"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"es" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_greytide"; name = "Black Pawn"; tag = "icon-cutout_greytide"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"et" = (/obj/machinery/door/window/westleft{dir = 2; icon_state = "right"},/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"eu" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"ev" = (/obj/machinery/door/window/westleft{dir = 2},/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"ew" = (/obj/structure/table/glass,/obj/machinery/recharger,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"ex" = (/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"ey" = (/obj/structure/chair/comfy{tag = "icon-comfychair (NORTH)"; icon_state = "comfychair"; dir = 1},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"ez" = (/obj/structure/table/glass,/obj/item/weapon/gun/energy/e_gun/mini/practice_phaser,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"eA" = (/obj/structure/chair{dir = 4},/turf/open/floor/holofloor{dir = 8; icon_state = "chapel"; tag = "icon-chapel"},/area/holodeck/rec_center/chapelcourt) +"eB" = (/turf/open/floor/holofloor{tag = "icon-chapel"; icon_state = "chapel"; dir = 2},/area/holodeck/rec_center/chapelcourt) +"eC" = (/obj/item/weapon/gavelblock,/obj/item/weapon/gavelhammer,/obj/structure/table/wood,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"eD" = (/turf/open/floor/holofloor{dir = 8; icon_state = "chapel"; tag = "icon-chapel"},/area/holodeck/rec_center/chapelcourt) +"eE" = (/obj/structure/chair{dir = 8},/turf/open/floor/holofloor{tag = "icon-chapel"; icon_state = "chapel"; dir = 2},/area/holodeck/rec_center/chapelcourt) +"eF" = (/obj/item/weapon/shovel,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"eG" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHWEST)"; icon_state = "white_warn"; dir = 10},/area/holodeck/rec_center/firingrange) +"eH" = (/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/firingrange) +"eI" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHEAST)"; icon_state = "white_warn"; dir = 6},/area/holodeck/rec_center/firingrange) +"eJ" = (/obj/item/weapon/weldingtool,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/refuel) +"eK" = (/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"eL" = (/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"eM" = (/turf/open/floor/holofloor{tag = "icon-stairs-old (WEST)"; icon_state = "stairs-old"; dir = 8},/area/holodeck/rec_center/thunderdome1218) +"eN" = (/obj/structure/table/wood,/obj/item/weapon/melee/chainofcommand{name = "chain whip"},/obj/item/weapon/twohanded/spear,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) +"eO" = (/obj/structure/table/wood,/obj/item/weapon/scythe,/obj/item/weapon/twohanded/spear,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) +"eP" = (/obj/structure/table/wood,/obj/item/weapon/tailclub,/obj/item/weapon/twohanded/spear,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) +"eQ" = (/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"eR" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/firingrange) +"eS" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) +"eT" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/firingrange) +"eU" = (/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) +"eV" = (/obj/machinery/modular_computer/console/preset/civilian,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"eW" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"eX" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"eY" = (/obj/machinery/computer/station_alert,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"eZ" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor{tag = "icon-chapel (NORTH)"; icon_state = "chapel"; dir = 1},/area/holodeck/rec_center/chapelcourt) +"fa" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor{tag = "icon-chapel (EAST)"; icon_state = "chapel"; dir = 4},/area/holodeck/rec_center/chapelcourt) +"fb" = (/obj/machinery/modular_computer/console/preset/civilian,/obj/structure/window/reinforced,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"fc" = (/obj/machinery/computer/atmos_alert,/obj/structure/window/reinforced,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"fd" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor{dir = 8; icon_state = "chapel"; tag = "icon-chapel"},/area/holodeck/rec_center/chapelcourt) +"fe" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor{tag = "icon-chapel"; icon_state = "chapel"; dir = 2},/area/holodeck/rec_center/chapelcourt) +"ff" = (/obj/machinery/conveyor/holodeck{id = "holocoaster"},/obj/structure/chair/office{dir = 1; name = "coaster car"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"fg" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "holocoaster"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"fh" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"fi" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_greytide"; name = "White Pawn"; tag = "icon-cutout_greytide"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"fj" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_greytide"; name = "White Pawn"; tag = "icon-cutout_greytide"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"fk" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) +"fl" = (/obj/machinery/door/window/westleft{dir = 2},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) +"fm" = (/obj/machinery/door/window/westleft{dir = 2; icon_state = "right"},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"fn" = (/obj/structure/table,/obj/item/weapon/folder,/obj/item/weapon/pen/blue,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) +"fo" = (/obj/structure/table,/obj/item/weapon/folder,/obj/item/weapon/pen,/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) +"fp" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/folder,/obj/item/weapon/pen/red,/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) +"fq" = (/obj/machinery/door/window/westleft{dir = 2},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"fr" = (/obj/structure/closet/crate/miningcar{can_buckle = 1; desc = "Great for mining!"; name = "minecart"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"fs" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/firingrange) +"ft" = (/obj/item/weapon/paper/range,/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) +"fu" = (/obj/structure/table/reinforced,/obj/machinery/magnetic_controller{autolink = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/firingrange) +"fv" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_viva"; name = "White Rook"; tag = "icon-cutout_viva"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"fw" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_mime"; name = "White Queen"; tag = "icon-cutout_mime"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"fx" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_clown"; name = "White King"; tag = "icon-cutout_clown"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"fy" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_ian"; name = "White Knight"; tag = "icon-cutout_ian"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"fz" = (/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) +"fA" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor,/area/holodeck/rec_center/kobayashi) +"fB" = (/turf/open/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/rec_center/firingrange) +"fC" = (/turf/open/floor/holofloor/grass,/turf/open/floor/holofloor{tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1},/area/holodeck/rec_center/spacechess) +"fD" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 1},/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"fE" = (/obj/structure/rack,/obj/item/clothing/under/trek/medsci,/obj/item/clothing/under/trek/medsci,/obj/item/clothing/under/trek/command,/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) +"fF" = (/turf/open/floor/holofloor{tag = "icon-neutral"; icon_state = "neutral"; dir = 2},/area/holodeck/rec_center/kobayashi) +"fG" = (/obj/structure/rack,/obj/item/clothing/under/trek/engsec,/obj/item/clothing/under/trek/engsec,/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) +"fH" = (/obj/machinery/conveyor/holodeck{dir = 9; icon_state = "conveyor0"; id = "holocoaster"; tag = "icon-conveyor0 (NORTHWEST)"; verted = -1},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"fI" = (/obj/machinery/conveyor/holodeck{dir = 4; id = "holocoaster"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"fJ" = (/obj/machinery/conveyor/holodeck{dir = 10; id = "holocoaster"; verted = -1},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"fK" = (/obj/item/target,/obj/item/target/clown,/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) +"fL" = (/obj/item/target,/obj/item/target/syndicate,/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) +"fM" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser/practice,/obj/item/clothing/ears/earmuffs,/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) +"fN" = (/obj/structure/window/reinforced{dir = 1},/turf/closed/indestructible/riveted,/area/space) +"fO" = (/turf/closed/indestructible/riveted,/area/tdome/arena_source) +"fP" = (/obj/machinery/igniter,/turf/open/floor/plasteel,/area/tdome/arena_source) +"fQ" = (/turf/open/floor/plasteel,/area/tdome/arena_source) +"fR" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/red,/turf/open/floor/plasteel/black,/area/tdome/arena_source) +"fS" = (/obj/machinery/door/poddoor{id = "thunderdomegen"; name = "General Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena_source) +"fT" = (/obj/machinery/door/poddoor{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/open/floor/plasteel,/area/tdome/arena_source) +"fU" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/arena_source) +"fV" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/arena_source) +"fW" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/green,/turf/open/floor/plasteel/black,/area/tdome/arena_source) +"fX" = (/turf/open/floor/bluegrid,/area/tdome/arena_source) +"fY" = (/obj/machinery/flasher{id = "tdomeflash"; name = "Thunderdome Flash"},/turf/open/floor/bluegrid,/area/tdome/arena_source) +"fZ" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena_source) +"ga" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena_source) +"gb" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena_source) +"gc" = (/turf/closed/indestructible/riveted,/area/start) +"gd" = (/obj/effect/landmark/start,/turf/open/floor/plating,/area/start) +"ge" = (/turf/closed/indestructible/riveted,/area/ctf) +"gf" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHWEST)"; dir = 9},/area/ctf) +"gg" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTH)"; dir = 1},/area/ctf) +"gh" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHEAST)"; dir = 5},/area/ctf) +"gi" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHWEST)"; dir = 9},/area/ctf) +"gj" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTH)"; dir = 1},/area/ctf) +"gk" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHEAST)"; dir = 5},/area/ctf) +"gl" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (WEST)"; dir = 8},/area/ctf) +"gm" = (/turf/open/floor/plasteel/black,/area/ctf) +"gn" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (EAST)"; dir = 4},/area/ctf) +"go" = (/turf/open/floor/plasteel/blue,/area/ctf) +"gp" = (/turf/open/floor/plasteel/darkblue,/area/ctf) +"gq" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/circuit,/area/ctf) +"gr" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/bluespace,/area/ctf) +"gs" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/bluespace,/area/ctf) +"gt" = (/turf/open/floor/plasteel/bluespace,/area/ctf) +"gu" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (WEST)"; dir = 8},/area/ctf) +"gv" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/circuit/rcircuit,/area/ctf) +"gw" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (EAST)"; dir = 4},/area/ctf) +"gx" = (/turf/open/floor/plasteel/red,/area/ctf) +"gy" = (/obj/structure/kitchenspike,/turf/open/floor/plasteel/black,/area/ctf) +"gz" = (/turf/closed/indestructible/splashscreen,/area/start) +"gA" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHWEST)"; dir = 10},/area/ctf) +"gB" = (/turf/open/floor/plasteel/darkblue/side,/area/ctf) +"gC" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHEAST)"; dir = 6},/area/ctf) +"gD" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHWEST)"; dir = 10},/area/ctf) +"gE" = (/turf/open/floor/plasteel/darkred/side,/area/ctf) +"gF" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHEAST)"; dir = 6},/area/ctf) +"gG" = (/obj/structure/window/reinforced/fulltile{obj_integrity = 5000; max_integrity = 5000; name = "hardened window"},/turf/open/floor/plating,/area/ctf) +"gH" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline,/area/ctf) +"gI" = (/turf/open/floor/plasteel/darkblue/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)"; dir = 9},/area/ctf) +"gJ" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"gK" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"gL" = (/turf/open/floor/plasteel/darkblue/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"gM" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) +"gN" = (/obj/machinery/power/emitter/energycannon,/turf/open/floor/plating,/area/ctf) +"gO" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) +"gP" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) +"gQ" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (WEST)"; dir = 8},/area/ctf) +"gR" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)"; dir = 4},/area/ctf) +"gS" = (/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/ctf) +"gT" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) +"gU" = (/turf/open/floor/plating/warnplate{dir = 8},/area/ctf) +"gV" = (/turf/open/floor/plating,/area/ctf) +"gW" = (/turf/open/floor/plating/airless/warnplate{dir = 4; luminosity = 2},/area/ctf) +"gX" = (/turf/open/floor/plasteel/darkblue/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) +"gY" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (NORTH)"; dir = 1},/area/ctf) +"gZ" = (/turf/open/floor/plasteel/darkblue/corner,/area/ctf) +"ha" = (/turf/open/floor/plating/warnplate{dir = 1},/area/ctf) +"hb" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) +"hc" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline,/area/ctf) +"hd" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline,/area/ctf) +"he" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) +"hf" = (/obj/machinery/power/emitter/energycannon{tag = "icon-emitter (NORTH)"; icon_state = "emitter"; dir = 1},/turf/open/floor/plating,/area/ctf) +"hg" = (/obj/structure/trap/ctf/blue,/turf/open/floor/plasteel/blue,/area/ctf) +"hh" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)"; dir = 9},/area/ctf) +"hi" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"hj" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) +"hk" = (/turf/open/floor/plasteel/darkred,/area/ctf) +"hl" = (/obj/structure/trap/ctf/red,/turf/open/floor/plasteel/darkred,/area/ctf) +"hm" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) +"hn" = (/turf/open/floor/plasteel/circuit,/area/ctf) +"ho" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) +"hp" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) +"hq" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline,/area/ctf) +"hr" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) +"hs" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/circuit/gcircuit/off,/area/ctf) +"ht" = (/obj/structure/trap/ctf/red,/turf/open/floor/plasteel/red,/area/ctf) +"hu" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHWEST)"; dir = 9},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)"; dir = 9},/area/ctf) +"hv" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"hw" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHEAST)"; dir = 5},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"hx" = (/turf/open/floor/plasteel/circuit/gcircuit/off,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"hy" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHWEST)"; dir = 9},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"hz" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"hA" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHEAST)"; dir = 5},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) +"hB" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) +"hC" = (/turf/open/floor/plasteel/circuit/gcircuit/off,/area/ctf) +"hD" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) +"hE" = (/turf/open/floor/plasteel/circuit/rcircuit,/area/ctf) +"hF" = (/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) +"hG" = (/obj/machinery/capture_the_flag/blue,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) +"hH" = (/obj/item/weapon/twohanded/required/ctf/blue,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) +"hI" = (/obj/item/weapon/twohanded/required/ctf/red,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) +"hJ" = (/obj/machinery/capture_the_flag/red,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) +"hK" = (/obj/effect/landmark/shuttle_import,/turf/open/space,/area/space) +"hL" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHWEST)"; dir = 10},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) +"hM" = (/turf/open/floor/plasteel/darkblue/side,/turf/open/floor/plasteel/warningline,/area/ctf) +"hN" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHEAST)"; dir = 6},/turf/open/floor/plasteel/warningline,/area/ctf) +"hO" = (/turf/open/floor/plasteel/circuit/gcircuit/off,/turf/open/floor/plasteel/warningline,/area/ctf) +"hP" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHWEST)"; dir = 10},/turf/open/floor/plasteel/warningline,/area/ctf) +"hQ" = (/turf/open/floor/plasteel/darkred/side,/turf/open/floor/plasteel/warningline,/area/ctf) +"hR" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHEAST)"; dir = 6},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) +"hS" = (/turf/closed/wall/mineral/titanium/overspace,/area/centcom/evac) +"hT" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) +"hU" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) +"hV" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) +"hW" = (/obj/docking_port/stationary{dir = 1; dwidth = 1; height = 4; id = "pod4_away"; name = "recovery ship"; width = 3},/turf/open/space,/area/space) +"hX" = (/obj/docking_port/stationary{dir = 1; dwidth = 1; height = 4; id = "pod3_away"; name = "recovery ship"; width = 3},/turf/open/space,/area/space) +"hY" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)"; dir = 9},/area/ctf) +"hZ" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"ia" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) +"ib" = (/turf/closed/wall/mineral/titanium,/area/centcom/evac) +"ic" = (/obj/structure/window/reinforced,/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) +"id" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/plating,/area/centcom/evac) +"ie" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/open/floor/plating,/area/centcom/evac) +"if" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) +"ig" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) +"ih" = (/turf/open/floor/plating,/area/centcom/evac) +"ii" = (/turf/open/floor/plating,/turf/closed/wall/mineral/titanium/interior,/area/centcom/evac) +"ij" = (/turf/open/floor/mineral/titanium/blue,/turf/closed/wall/mineral/titanium/interior,/area/centcom/evac) +"ik" = (/obj/structure/closet/emcloset,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"il" = (/turf/open/floor/mineral/titanium/yellow,/area/centcom/evac) +"im" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"in" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/fire{pixel_x = -2; pixel_y = 4},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"io" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 0},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"ip" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) +"iq" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline,/area/ctf) +"ir" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) +"is" = (/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"it" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"iu" = (/turf/open/floor/plasteel/darkred/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"iv" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"iw" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) +"ix" = (/turf/open/floor/plasteel/darkred/corner,/area/ctf) +"iy" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)"; dir = 1},/area/ctf) +"iz" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) +"iA" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iB" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iC" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iD" = (/obj/structure/table/reinforced,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iE" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"iF" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"iG" = (/obj/machinery/computer/secure_data,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iH" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iI" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iJ" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/stamp,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iK" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (EAST)"; dir = 4},/area/ctf) +"iL" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)"; dir = 8},/area/ctf) +"iM" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) +"iN" = (/obj/structure/table,/obj/item/device/assembly/flash/handheld,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iO" = (/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iP" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"iQ" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) +"iR" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline,/area/ctf) +"iS" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline,/area/ctf) +"iT" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) +"iU" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iV" = (/obj/machinery/door/window/northright{base_state = "right"; dir = 4; icon_state = "right"; name = "Security Desk"; req_access_txt = "103"},/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iW" = (/obj/docking_port/stationary{dir = 4; dwidth = 1; height = 4; id = "pod2_away"; name = "recovery ship"; width = 3},/turf/open/space,/area/space) +"iX" = (/obj/structure/bed,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"iY" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/centcom/evac) +"iZ" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/mineral/titanium/yellow,/area/centcom/evac) +"ja" = (/obj/docking_port/stationary{dir = 4; dwidth = 2; height = 7; id = "pod1_away"; name = "recovery ship"; width = 5},/turf/open/space,/area/space) +"jb" = (/obj/structure/table,/obj/structure/bedsheetbin,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jc" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jd" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"je" = (/obj/machinery/door/airlock/shuttle{name = "Cockpit"; req_access_txt = "109"},/turf/open/floor/mineral/titanium/yellow,/area/centcom/evac) +"jf" = (/obj/structure/table,/obj/item/device/radio/off,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jg" = (/obj/structure/chair{dir = 4; name = "Prosecution"},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jh" = (/obj/structure/filingcabinet,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"ji" = (/obj/structure/chair,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jj" = (/turf/closed/wall/mineral/titanium,/area/shuttle/escape) +"jk" = (/obj/machinery/status_display,/turf/closed/wall/mineral/titanium,/area/shuttle/escape) +"jl" = (/obj/structure/table,/obj/item/weapon/storage/lockbox,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jm" = (/obj/structure/table,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jn" = (/obj/machinery/computer/shuttle,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jo" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jp" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jq" = (/turf/closed/indestructible/riveted,/area/centcom/ferry) +"jr" = (/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"js" = (/turf/open/floor/mineral/plastitanium,/area/shuttle/escape) +"jt" = (/turf/open/floor/plasteel/black,/area/centcom/ferry) +"ju" = (/turf/open/floor/plasteel/darkwarning{tag = "icon-warndark (EAST)"; dir = 4},/area/centcom/ferry) +"jv" = (/turf/open/floor/plasteel/delivery,/area/centcom/ferry) +"jw" = (/obj/machinery/door/airlock/external{name = "Backup Emergency Escape Shuttle"},/turf/open/floor/plasteel/delivery,/area/centcom/ferry) +"jx" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/stationary{dir = 4; dwidth = 3; height = 8; id = "backup_away"; name = "Backup Shuttle Dock"; width = 8},/obj/docking_port/mobile/emergency/backup{dwidth = 3},/turf/open/floor/plating,/area/shuttle/escape) +"jy" = (/obj/structure/chair/office/light{dir = 4},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"jz" = (/obj/structure/table/wood,/obj/item/weapon/paper{info = "Due to circumstances beyond our control, your Emergency Evacuation Shuttle is out of service.

We apologise for the inconvinience this may cause you.

Please enjoy the use of this complementary book.

Sincerely,
Centcom Operations Demolitions Examination Retribution Bugfixing Underlining Services"},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"jA" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/random,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"jB" = (/turf/closed/indestructible/fakedoor,/area/centcom/ferry) +"jC" = (/obj/machinery/door/airlock/centcom{name = "Centcom Backup Docks"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jD" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jE" = (/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/open/floor/plasteel/black,/area/centcom/ferry) +"jF" = (/obj/structure/reagent_dispensers/water_cooler,/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jG" = (/obj/machinery/status_display{density = 0; pixel_y = 32; supply_display = 1},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jH" = (/obj/item/weapon/twohanded/required/kirbyplants,/obj/machinery/status_display{pixel_y = 32},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jI" = (/obj/structure/chair/office/dark,/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jJ" = (/obj/structure/table/reinforced,/turf/open/floor/vault,/area/centcom/ferry) +"jK" = (/obj/structure/chair/office/dark{dir = 8},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jL" = (/obj/structure/chair/office/dark{dir = 4},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jM" = (/obj/machinery/shuttle_manipulator,/turf/open/floor/plasteel/circuit,/area/centcom/ferry) +"jN" = (/turf/open/floor/plasteel/circuit,/area/centcom/ferry) +"jO" = (/obj/structure/extinguisher_cabinet{pixel_x = 28},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jP" = (/obj/structure/closet/secure_closet/ertCom,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jQ" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jR" = (/obj/structure/table/reinforced,/obj/item/weapon/c4,/obj/item/weapon/c4{pixel_x = 7},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jS" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/gun/syringe/rapidsyringe,/obj/structure/extinguisher_cabinet{pixel_y = 28},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jT" = (/obj/structure/closet/secure_closet/ertEngi,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jU" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/obj/item/weapon/reagent_containers/food/drinks/bottle/tequila,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka{pixel_x = -5},/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey{pixel_x = 5},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jV" = (/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jW" = (/obj/machinery/door/poddoor/ert,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jX" = (/obj/structure/chair/office/dark{dir = 1},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jY" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/drinkingglasses,/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jZ" = (/turf/closed/indestructible/riveted,/area/centcom/prison) +"ka" = (/turf/open/floor/plasteel/darkgreen/side{dir = 4},/area/centcom/ferry) +"kb" = (/obj/machinery/door/poddoor/shutters/preopen{id = "adminshut"; name = "Administrative Shutters"},/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/ferry) +"kc" = (/turf/open/floor/wood,/area/centcom/ferry) +"kd" = (/obj/effect/landmark{name = "prisonwarp"},/turf/open/floor/plasteel,/area/centcom/prison) +"ke" = (/obj/structure/closet/secure_closet/ertSec,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"kf" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/emps,/obj/item/weapon/gun/energy/ionrifle{pin = /obj/item/device/firing_pin},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"kg" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/gun/syringe/rapidsyringe,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"kh" = (/obj/structure/closet/secure_closet/ertMed,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"ki" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/open/floor/vault,/area/centcom/ferry) +"kj" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 5},/obj/item/weapon/pen/blue,/turf/open/floor/vault,/area/centcom/ferry) +"kk" = (/obj/machinery/door/airlock/centcom{name = "Administrative Office"; opacity = 1; req_access_txt = "109"},/turf/open/floor/wood,/area/centcom/ferry) +"kl" = (/obj/structure/chair/office/dark,/turf/open/floor/wood,/area/centcom/ferry) +"km" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/ferry) +"kn" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/centcom/ferry) +"ko" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/centcom/ferry) +"kp" = (/obj/machinery/door/airlock/centcom{name = "briefing room"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"kq" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin,/turf/open/floor/carpet,/area/centcom/ferry) +"kr" = (/obj/structure/table/wood,/obj/item/weapon/pen,/turf/open/floor/carpet,/area/centcom/ferry) +"ks" = (/turf/open/floor/carpet,/area/centcom/ferry) +"kt" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/ferry) +"ku" = (/obj/machinery/door/poddoor/shutters/preopen{id = "adminshut"; name = "Administrative Shutters"},/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/ferry) +"kv" = (/obj/machinery/button/door{id = "adminshut"; name = "Administrative Shutter-Control"; pixel_y = 26},/turf/open/floor/carpet,/area/centcom/ferry) +"kw" = (/obj/structure/chair/comfy/black{dir = 1},/turf/open/floor/carpet,/area/centcom/ferry) +"kx" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 9},/area/centcom/ferry) +"ky" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 6},/area/centcom/ferry) +"kz" = (/obj/machinery/door/poddoor/shutters/preopen{id = "adminshut"; name = "Administrative Shutters"},/turf/closed/indestructible/fakeglass,/area/centcom/ferry) +"kA" = (/obj/structure/showcase/fakesec,/turf/open/floor/carpet,/area/centcom/ferry) +"kB" = (/obj/structure/filingcabinet,/turf/open/floor/carpet,/area/centcom/ferry) +"kC" = (/obj/structure/reagent_dispensers/water_cooler,/turf/open/floor/carpet,/area/centcom/ferry) +"kD" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/ferry) +"kE" = (/obj/machinery/computer/shuttle/ferry,/turf/open/floor/plasteel/darkwarning{dir = 8},/area/centcom/ferry) +"kF" = (/turf/closed/indestructible/riveted,/area/centcom/evac) +"kG" = (/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 12; id = "ferry_away"; name = "unknown"; width = 5},/turf/open/space,/area/space) +"kH" = (/obj/machinery/door/airlock/external{name = "Ferry Airlock"; req_access_txt = "0"},/turf/open/floor/plasteel/delivery,/area/centcom/ferry) +"kI" = (/turf/open/floor/plasteel/darkwarning{dir = 8},/area/centcom/ferry) +"kJ" = (/turf/open/floor/plasteel/darkgreen/corner{dir = 4},/area/centcom/ferry) +"kK" = (/obj/structure/mirror{pixel_y = 32},/obj/structure/dresser,/turf/open/floor/wood,/area/centcom/ferry) +"kL" = (/obj/machinery/vending/autodrobe,/turf/open/floor/wood,/area/centcom/ferry) +"kM" = (/turf/open/floor/plasteel/darkred/side{dir = 9},/area/centcom/evac) +"kN" = (/turf/open/floor/plasteel/darkred/side{dir = 1},/area/centcom/evac) +"kO" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/open/floor/plasteel/darkred/side{dir = 5},/area/centcom/evac) +"kP" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 5},/area/centcom/ferry) +"kQ" = (/obj/machinery/door/airlock/centcom{name = "Dressing Room"; opacity = 1; req_access_txt = "0"},/turf/open/floor/wood,/area/centcom/ferry) +"kR" = (/obj/machinery/vending/clothing,/turf/open/floor/wood,/area/centcom/ferry) +"kS" = (/turf/closed/indestructible/fakedoor{name = "Centcom Security"},/area/centcom/evac) +"kT" = (/turf/open/floor/plasteel/black,/area/centcom/evac) +"kU" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 10},/area/centcom/ferry) +"kV" = (/turf/open/floor/plasteel/darkgreen/corner,/area/centcom/ferry) +"kW" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_y = 4},/obj/item/weapon/pen,/turf/open/floor/wood,/area/centcom/ferry) +"kX" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/turf/open/floor/plasteel/darkred/side{dir = 8},/area/centcom/evac) +"kY" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel/black,/area/centcom/evac) +"kZ" = (/obj/structure/showcase/fakesec,/turf/open/floor/plasteel/black,/area/centcom/evac) +"la" = (/turf/closed/indestructible/fakeglass,/area/centcom/ferry) +"lb" = (/obj/structure/chair/comfy/black{dir = 4},/turf/open/floor/wood,/area/centcom/ferry) +"lc" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/centcom/ferry) +"ld" = (/obj/machinery/door/window/northleft{dir = 2; name = "Centcom Security"; req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/evac) +"le" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/darkred/side{dir = 10},/area/centcom/evac) +"lf" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/plasteel/darkred/side{dir = 2},/area/centcom/evac) +"lg" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/darkred/side{dir = 2},/area/centcom/evac) +"lh" = (/obj/machinery/door/airlock/centcom{name = "Transport Shuttle"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel/darkgreen/side{dir = 2},/area/centcom/ferry) +"li" = (/turf/closed/indestructible/riveted,/area/centcom/control) +"lj" = (/obj/structure/flora/ausbushes/brflowers,/turf/open/floor/grass,/area/centcom/control) +"lk" = (/obj/structure/flora/ausbushes/palebush,/turf/open/floor/grass,/area/centcom/control) +"ll" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/control) +"lm" = (/turf/open/floor/plasteel/green/side{dir = 1},/area/centcom/control) +"ln" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 9},/area/centcom/evac) +"lo" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/centcom/evac) +"lp" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/centcom/evac) +"lq" = (/obj/machinery/door/airlock/centcom{name = "Centcom Security"; opacity = 1; req_access_txt = "0"},/turf/open/floor/plasteel/black,/area/centcom/evac) +"lr" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/evac) +"ls" = (/turf/closed/indestructible/fakeglass,/area/centcom/control) +"lt" = (/turf/open/floor/plasteel,/area/centcom/control) +"lu" = (/obj/item/weapon/twohanded/required/kirbyplants,/turf/open/floor/plasteel/red/side{dir = 9},/area/centcom/evac) +"lv" = (/obj/structure/chair,/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) +"lw" = (/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) +"lx" = (/obj/structure/rack,/obj/item/weapon/gun/ballistic/shotgun/toy/crossbow,/obj/item/toy/foamblade,/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) +"ly" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/toy/sword,/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) +"lz" = (/turf/closed/indestructible/fakeglass,/area/centcom/evac) +"lA" = (/turf/open/floor/plasteel/yellowsiding{dir = 8},/area/centcom/evac) +"lB" = (/turf/open/floor/plasteel,/area/centcom/evac) +"lC" = (/turf/open/floor/plasteel/warning{dir = 4},/area/centcom/evac) +"lD" = (/obj/machinery/door/poddoor/shuttledock,/turf/open/floor/engine,/area/centcom/evac) +"lE" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/control) +"lF" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/red/side{dir = 8},/area/centcom/evac) +"lG" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel,/area/centcom/evac) +"lH" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/centcom/evac) +"lI" = (/turf/open/floor/grass,/area/centcom/control) +"lJ" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/green/side{dir = 8},/area/centcom/control) +"lK" = (/turf/open/floor/plasteel/warning{dir = 4},/area/centcom/control) +"lL" = (/obj/machinery/door/airlock/centcom{name = "Centcom Customs"; opacity = 1; req_access_txt = "109"},/turf/open/floor/plasteel/black,/area/centcom/control) +"lM" = (/turf/open/floor/plasteel/black,/area/centcom/control) +"lN" = (/obj/structure/table,/turf/open/floor/plasteel/black,/area/centcom/control) +"lO" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/red/side{dir = 2},/area/centcom/evac) +"lP" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/plasteel/red/side{dir = 2},/area/centcom/evac) +"lQ" = (/obj/structure/table/reinforced,/obj/item/toy/carpplushie,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/red/side{dir = 6},/area/centcom/evac) +"lR" = (/turf/open/space/transit,/area/space) +"lS" = (/turf/closed/indestructible/riveted,/area/centcom/supply) +"lT" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/control) +"lU" = (/turf/open/floor/plasteel/green/corner,/area/centcom/control) +"lV" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/open/floor/plasteel/black,/area/centcom/control) +"lW" = (/turf/open/floor/plasteel/yellowsiding{dir = 1},/area/centcom/evac) +"lX" = (/turf/open/floor/plasteel/yellowsiding/corner{dir = 1},/area/centcom/evac) +"lY" = (/obj/docking_port/stationary{dir = 4; dwidth = 25; height = 50; id = "emergency_away"; name = "Centcom Emergency Shuttle Dock"; width = 50},/turf/open/space,/area/space) +"lZ" = (/turf/closed/indestructible/rock/snow,/area/syndicate_mothership) +"ma" = (/obj/structure/closet,/turf/open/floor/plasteel/warning/corner{dir = 1},/area/centcom/supply) +"mb" = (/obj/structure/closet/wardrobe/cargotech,/turf/open/floor/plasteel/loadingarea,/area/centcom/supply) +"mc" = (/obj/structure/closet/secure_closet/quartermaster,/turf/open/floor/plasteel/loadingarea,/area/centcom/supply) +"md" = (/obj/structure/closet,/turf/open/floor/plasteel,/area/centcom/supply) +"me" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/centcom/control) +"mf" = (/obj/machinery/button/door{desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "CentComPort"; name = "Security Doors"; pixel_y = 28; req_access_txt = "101"},/obj/structure/showcase/fakeid,/turf/open/floor/plasteel/black,/area/centcom/control) +"mg" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/plasteel/black,/area/centcom/control) +"mh" = (/obj/structure/table,/obj/item/weapon/stamp{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stamp/denied{pixel_x = 4; pixel_y = -2},/obj/item/weapon/paper/centcom,/turf/open/floor/plasteel/black,/area/centcom/control) +"mi" = (/turf/open/floor/plasteel/red/corner{dir = 1},/area/centcom/evac) +"mj" = (/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) +"mk" = (/obj/structure/flora/grass/brown,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) +"ml" = (/obj/structure/flora/tree/pine,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) +"mm" = (/obj/structure/flora/grass/both,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) +"mn" = (/obj/item/weapon/disk/data,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) +"mo" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/supply) +"mp" = (/turf/open/floor/plasteel/warning{dir = 8},/area/centcom/supply) +"mq" = (/turf/open/floor/plasteel,/area/centcom/supply) +"mr" = (/turf/open/floor/plasteel/green/corner{dir = 1},/area/centcom/control) +"ms" = (/turf/open/floor/plasteel/green/corner{dir = 4},/area/centcom/control) +"mt" = (/obj/structure/table/reinforced,/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 1; icon_state = "rightsecure"; name = "Centcom Customs"; req_access_txt = "109"},/turf/open/floor/plasteel/black,/area/centcom/control) +"mu" = (/turf/open/floor/plasteel/warning/corner{dir = 1},/area/centcom/evac) +"mv" = (/obj/item/toy/figure/syndie,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) +"mw" = (/obj/machinery/door/airlock/external{name = "Supply Shuttle"; req_access_txt = "106"},/turf/open/floor/plasteel/delivery,/area/centcom/supply) +"mx" = (/obj/machinery/door/airlock/centcom{name = "Centcom Supply"; req_access_txt = "106"},/turf/open/floor/plasteel/brown{dir = 4},/area/centcom/supply) +"my" = (/turf/open/floor/plasteel/brown{dir = 8},/area/centcom/control) +"mz" = (/obj/machinery/door/airlock/centcom{name = "Centcom Docks"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/control) +"mA" = (/obj/machinery/door/poddoor/preopen{id = "CentComPort"; name = "security door"},/turf/open/floor/plasteel/loadingarea{dir = 8},/area/centcom/control) +"mB" = (/turf/open/floor/plasteel/warning{dir = 8},/area/centcom/evac) +"mC" = (/obj/structure/flora/bush,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) +"mD" = (/obj/machinery/computer/cargo,/turf/open/floor/plasteel/warning{dir = 8},/area/centcom/supply) +"mE" = (/turf/open/floor/plasteel/green/corner{dir = 8},/area/centcom/control) +"mF" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plating,/area/centcom/control) +"mG" = (/turf/open/floor/plasteel/warning/corner{dir = 4},/area/centcom/evac) +"mH" = (/obj/docking_port/stationary{dir = 8; dwidth = 5; height = 7; id = "supply_away"; name = "Centcom"; width = 12},/turf/open/space,/area/space) +"mI" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/green/side{dir = 4},/area/centcom/control) +"mJ" = (/turf/open/floor/plasteel/green/corner{dir = 8},/area/centcom/evac) +"mK" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/supply) +"mL" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/green/side{dir = 8},/area/centcom/evac) +"mM" = (/turf/open/floor/plasteel/yellowsiding,/area/centcom/evac) +"mN" = (/turf/open/floor/plasteel/yellowsiding/corner{dir = 8},/area/centcom/evac) +"mO" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/supply) +"mP" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/green/side{dir = 10},/area/centcom/control) +"mQ" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/green/side{dir = 6},/area/centcom/control) +"mR" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/green/side{dir = 1},/area/centcom/evac) +"mS" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/plasteel/green/side{dir = 1},/area/centcom/evac) +"mT" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/green/side{dir = 5},/area/centcom/evac) +"mU" = (/turf/open/floor/plating/asteroid/snow,/area/space) +"mV" = (/turf/closed/indestructible/fakeglass,/area/centcom/supply) +"mW" = (/turf/closed/indestructible/riveted,/area/tdome/tdomeobserve) +"mX" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/tdome/tdomeobserve) +"mY" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/tdome/tdomeobserve) +"mZ" = (/obj/machinery/door/airlock/centcom{name = "Thunderdome"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel,/area/tdome/tdomeobserve) +"na" = (/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/plasteel,/area/centcom/evac) +"nb" = (/obj/structure/table/reinforced,/obj/item/toy/talking/AI,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/green/side{dir = 4},/area/centcom/evac) +"nc" = (/turf/closed/indestructible/riveted,/area/syndicate_mothership) +"nd" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership) +"ne" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/syndicate_mothership) +"nf" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/warning/corner{dir = 4},/area/centcom/supply) +"ng" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/coin/silver,/turf/open/floor/plasteel,/area/centcom/supply) +"nh" = (/obj/structure/table,/obj/item/weapon/pen/blue{pixel_x = 4; pixel_y = 4},/obj/item/weapon/pen/red,/obj/item/weapon/pen{pixel_x = 8; pixel_y = 8},/turf/open/floor/plasteel,/area/centcom/supply) +"ni" = (/obj/structure/table,/turf/open/floor/plasteel/red/side{dir = 9},/area/tdome/tdomeobserve) +"nj" = (/turf/open/floor/plasteel/red/side{dir = 1},/area/tdome/tdomeobserve) +"nk" = (/obj/structure/table,/turf/open/floor/plasteel/red/side{dir = 1},/area/tdome/tdomeobserve) +"nl" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/tdome/tdomeobserve) +"nm" = (/turf/open/floor/plasteel,/area/tdome/tdomeobserve) +"nn" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/tdome/tdomeobserve) +"no" = (/obj/structure/table,/turf/open/floor/plasteel/green/side{dir = 1},/area/tdome/tdomeobserve) +"np" = (/turf/open/floor/plasteel/green/side{dir = 1},/area/tdome/tdomeobserve) +"nq" = (/obj/structure/table,/turf/open/floor/plasteel/green/side{dir = 5},/area/tdome/tdomeobserve) +"nr" = (/obj/item/weapon/twohanded/required/kirbyplants,/turf/open/floor/plasteel/green/side{dir = 10},/area/centcom/evac) +"ns" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/green/side,/area/centcom/evac) +"nt" = (/turf/open/floor/plasteel/green/side,/area/centcom/evac) +"nu" = (/obj/structure/rack,/obj/item/weapon/gun/ballistic/shotgun/toy/crossbow,/obj/item/toy/katana,/turf/open/floor/plasteel/green/side,/area/centcom/evac) +"nv" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/toy/sword,/turf/open/floor/plasteel/green/side,/area/centcom/evac) +"nw" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/evac) +"nx" = (/obj/item/weapon/storage/crayons,/obj/structure/table,/obj/item/weapon/storage/crayons,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"ny" = (/obj/machinery/washing_machine,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"nz" = (/obj/machinery/door/airlock/centcom{name = "Crate Storage"; req_access_txt = "106"},/turf/open/floor/plasteel/delivery,/area/centcom/supply) +"nA" = (/obj/structure/closet/secure_closet/bar,/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/tdomeobserve) +"nB" = (/obj/structure/table,/turf/open/floor/plasteel,/area/tdome/tdomeobserve) +"nC" = (/obj/structure/closet/secure_closet/freezer/kitchen,/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/tdomeobserve) +"nD" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 10},/area/centcom/evac) +"nE" = (/obj/machinery/door/airlock/centcom{name = "Centcom"; opacity = 1; req_access_txt = "0"},/turf/open/floor/plasteel/black,/area/centcom/evac) +"nF" = (/turf/closed/indestructible/riveted/uranium,/area/wizard_station) +"nG" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 8; icon_state = "fakewindows"},/area/wizard_station) +"nH" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 8; icon_state = "fakewindows2"},/area/wizard_station) +"nI" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 4; icon_state = "fakewindows"},/area/wizard_station) +"nJ" = (/obj/machinery/computer/shuttle/syndicate/recall,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nK" = (/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nL" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nM" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nN" = (/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/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nO" = (/obj/structure/urinal{pixel_y = 28},/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"nP" = (/obj/item/weapon/soap/syndie,/obj/structure/mopbucket,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"nQ" = (/obj/structure/mirror{pixel_x = 28},/obj/item/weapon/mop,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"nR" = (/obj/structure/closet/crate,/turf/open/floor/plasteel,/area/centcom/supply) +"nS" = (/obj/structure/table,/obj/item/weapon/storage/box/drinkingglasses,/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/tdomeobserve) +"nT" = (/obj/structure/table,/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/tdomeobserve) +"nU" = (/turf/open/floor/engine/cult,/area/wizard_station) +"nV" = (/obj/machinery/computer/shuttle,/turf/open/floor/engine/cult,/area/wizard_station) +"nW" = (/obj/item/weapon/paper{info = "GET DAT FUKKEN DISK"; name = "memo"},/obj/structure/noticeboard{pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nX" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nY" = (/mob/living/simple_animal/hostile/carp/cayenne,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nZ" = (/obj/machinery/door/airlock/centcom{name = "Restroom"; opacity = 1; req_access_txt = "150"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"oa" = (/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"ob" = (/obj/structure/mirror{pixel_x = 28},/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"oc" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/tdomeobserve) +"od" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/tdomeobserve) +"oe" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/green/side{dir = 9},/area/centcom/evac) +"of" = (/obj/structure/table/wood,/obj/item/device/paicard,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"og" = (/obj/structure/table/wood,/obj/item/pizzabox,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"oh" = (/obj/structure/chair/stool,/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"oi" = (/obj/machinery/computer/telecrystals/uplinker,/turf/open/floor/plasteel/podhatch{dir = 9},/area/syndicate_mothership) +"oj" = (/obj/structure/toilet{icon_state = "toilet00"; dir = 8},/obj/structure/window/reinforced/tinted{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/obj/machinery/door/window{tag = "icon-right (WEST)"; name = "Tactical Toilet"; icon_state = "right"; dir = 8; opacity = 1},/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"ok" = (/turf/open/floor/plating/airless,/area/syndicate_mothership) +"ol" = (/turf/open/floor/plating/airless/warnplate{dir = 2},/area/syndicate_mothership) +"om" = (/turf/open/floor/plasteel/red/side{dir = 10},/area/tdome/tdomeobserve) +"on" = (/turf/open/floor/plasteel/red/side{dir = 2},/area/tdome/tdomeobserve) +"oo" = (/turf/open/floor/plasteel/neutral/side{dir = 8},/area/tdome/tdomeobserve) +"op" = (/turf/open/floor/plasteel/neutral/side{dir = 4},/area/tdome/tdomeobserve) +"oq" = (/turf/open/floor/plasteel/green/side,/area/tdome/tdomeobserve) +"or" = (/turf/open/floor/plasteel/green/side{dir = 6},/area/tdome/tdomeobserve) +"os" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/turf/open/floor/plasteel/green/side{dir = 8},/area/centcom/evac) +"ot" = (/obj/structure/filingcabinet/filingcabinet,/turf/open/floor/plasteel,/area/centcom/evac) +"ou" = (/obj/structure/showcase{desc = "A strange machine supposedly from another world. The Wizard Federation has been meddling with it for years."; icon = 'icons/obj/machines/telecomms.dmi'; icon_state = "processor"; name = "byond random number generator"},/turf/open/floor/engine/cult,/area/wizard_station) +"ov" = (/obj/structure/showcase{desc = "A historical figure of great importance to the wizard federation. He spent his long life learning magic, stealing artifacts, and harassing idiots with swords. May he rest forever, Rodney."; icon = 'icons/mob/mob.dmi'; icon_state = "nim"; name = "wizard of yendor showcase"},/turf/open/floor/engine/cult,/area/wizard_station) +"ow" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 9},/area/syndicate_mothership) +"ox" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/syndicate_mothership) +"oy" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/mushroom,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"oz" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = 5; pixel_y = -2},/obj/item/toy/cards/deck/syndicate{icon_state = "deck_syndicate_full"; pixel_x = -6; pixel_y = 6},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"oA" = (/obj/machinery/computer/telecrystals/uplinker,/turf/open/floor/plasteel/podhatch{dir = 8},/area/syndicate_mothership) +"oB" = (/obj/structure/closet/cardboard,/turf/open/floor/plating/airless,/area/syndicate_mothership) +"oC" = (/turf/open/floor/plating/airless/warnplate{dir = 6},/area/syndicate_mothership) +"oD" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/mineral/plastitanium{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) +"oE" = (/turf/closed/wall/mineral/plastitanium,/area/shuttle/assault_pod) +"oF" = (/obj/machinery/door/airlock/centcom{name = "Assault Pod"; opacity = 1; req_access_txt = "150"},/turf/open/floor/plating,/area/shuttle/assault_pod) +"oG" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/mineral/plastitanium{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) +"oH" = (/turf/open/floor/plating/airless/warnplate{dir = 10},/area/syndicate_mothership) +"oI" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeobserve) +"oJ" = (/turf/closed/indestructible/fakedoor{name = "Centcom"},/area/centcom/evac) +"oK" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 6; icon_state = "fakewindows2"},/area/wizard_station) +"oL" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Cockpit"},/turf/open/floor/engine/cult,/area/wizard_station) +"oM" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/syndicate_mothership) +"oN" = (/turf/open/floor/plating,/area/syndicate_mothership) +"oO" = (/obj/machinery/door/poddoor/shutters{id = "nukeop_ready"; name = "shuttle dock"},/turf/open/floor/plating,/area/syndicate_mothership) +"oP" = (/turf/open/floor/plating/airless/warnplate{dir = 4},/area/syndicate_mothership) +"oQ" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) +"oR" = (/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) +"oS" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) +"oT" = (/turf/open/floor/plating/airless/warnplate{dir = 8},/area/syndicate_mothership) +"oU" = (/turf/open/floor/grass,/area/tdome/tdomeobserve) +"oV" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/tdome/tdomeobserve) +"oW" = (/turf/open/floor/plasteel/green/side{dir = 10},/area/centcom/evac) +"oX" = (/turf/open/floor/plasteel/green/side{dir = 6},/area/centcom/evac) +"oY" = (/obj/machinery/computer/camera_advanced,/turf/open/floor/wood,/area/wizard_station) +"oZ" = (/obj/structure/table/wood/fancy,/obj/item/device/radio/intercom{desc = "Talk smack through this."; syndie = 1},/turf/open/floor/wood,/area/wizard_station) +"pa" = (/turf/open/floor/carpet,/area/wizard_station) +"pb" = (/obj/structure/chair/wood/wings,/turf/open/floor/carpet,/area/wizard_station) +"pc" = (/turf/closed/indestructible/fakeglass,/area/syndicate_mothership) +"pd" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/open/floor/plating,/area/syndicate_mothership) +"pe" = (/obj/machinery/button/door{id = "nukeop_ready"; name = "mission launch control"; pixel_x = -26; pixel_y = 0; req_access_txt = "151"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"pf" = (/obj/machinery/computer/telecrystals/uplinker,/turf/open/floor/plasteel/podhatch{dir = 10},/area/syndicate_mothership) +"pg" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) +"ph" = (/turf/open/floor/wood,/area/wizard_station) +"pi" = (/obj/structure/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 1},/turf/open/floor/wood,/area/wizard_station) +"pj" = (/obj/structure/chair/wood/wings{tag = "icon-wooden_chair_wings (EAST)"; icon_state = "wooden_chair_wings"; dir = 4},/turf/open/floor/carpet,/area/wizard_station) +"pk" = (/obj/structure/table/wood/poker,/obj/item/toy/figure/wizard,/turf/open/floor/carpet,/area/wizard_station) +"pl" = (/obj/structure/chair/wood/wings{tag = "icon-wooden_chair_wings (WEST)"; icon_state = "wooden_chair_wings"; dir = 8},/turf/open/floor/carpet,/area/wizard_station) +"pm" = (/obj/docking_port/stationary{area_type = /area/syndicate_mothership; dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_away"; name = "syndicate recon outpost"; turf_type = /turf/open/floor/plating/asteroid/snow; width = 18},/turf/open/floor/plating/asteroid/snow,/area/space) +"pn" = (/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/obj/structure/table/wood,/turf/open/floor/wood,/area/syndicate_mothership) +"po" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/syndicate_mothership) +"pp" = (/obj/structure/table/wood,/obj/item/device/syndicatedetonator{desc = "This gaudy button can be used to instantly detonate syndicate bombs that have been activated on the station. It is also fun to press."},/turf/open/floor/wood,/area/syndicate_mothership) +"pq" = (/obj/structure/table/wood,/obj/item/toy/nuke,/turf/open/floor/wood,/area/syndicate_mothership) +"pr" = (/obj/machinery/door/airlock/centcom{aiControlDisabled = 1; name = "Assault Pod"; opacity = 1; req_access_txt = "150"},/turf/open/floor/plating,/area/shuttle/assault_pod) +"ps" = (/obj/machinery/computer/shuttle/syndicate/drop_pod,/turf/closed/wall/shuttle{tag = "icon-wall3"; icon_state = "wall3"; dir = 2},/area/shuttle/assault_pod) +"pt" = (/turf/open/floor/plasteel/redblue,/area/tdome/tdomeobserve) +"pu" = (/obj/structure/chair,/obj/effect/landmark{name = "tdomeobserve"},/turf/open/floor/plasteel/redblue,/area/tdome/tdomeobserve) +"pv" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Observation Room"},/turf/open/floor/engine/cult,/area/wizard_station) +"pw" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Game Room"},/turf/open/floor/engine/cult,/area/wizard_station) +"px" = (/obj/structure/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 1},/turf/open/floor/carpet,/area/wizard_station) +"py" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'FOURTH WALL'."; name = "\improper FOURTH WALL"; pixel_x = -32},/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) +"pz" = (/turf/open/floor/wood,/area/syndicate_mothership) +"pA" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/open/floor/wood,/area/syndicate_mothership) +"pB" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Uplink Management Control"; req_access_txt = "151"},/turf/open/floor/wood,/area/syndicate_mothership) +"pC" = (/obj/structure/chair,/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) +"pD" = (/turf/closed/indestructible/fakedoor{name = "Thunderdome"},/area/tdome/tdomeobserve) +"pE" = (/obj/machinery/computer/security/telescreen,/turf/open/floor/plasteel/redblue,/area/tdome/tdomeobserve) +"pF" = (/obj/structure/chair/wood/wings{tag = "icon-wooden_chair_wings (WEST)"; icon_state = "wooden_chair_wings"; dir = 8},/turf/open/floor/wood,/area/wizard_station) +"pG" = (/obj/structure/table/wood/fancy,/obj/item/device/camera/spooky,/turf/open/floor/carpet,/area/wizard_station) +"pH" = (/obj/structure/table/wood/poker,/obj/item/toy/cards/deck,/turf/open/floor/carpet,/area/wizard_station) +"pI" = (/obj/machinery/computer/telecrystals/boss,/turf/open/floor/plasteel/podhatch{dir = 5},/area/syndicate_mothership) +"pJ" = (/obj/structure/sign/map/left{pixel_y = -32},/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_left"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka,/turf/open/floor/wood,/area/syndicate_mothership) +"pK" = (/obj/structure/sign/map/right{pixel_y = -32},/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_right"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/gin,/turf/open/floor/wood,/area/syndicate_mothership) +"pL" = (/obj/machinery/door/airlock/centcom{name = "Equipment Room"; opacity = 1; req_access_txt = "150"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"pM" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/mineral/plastitanium{icon_state = "diagonalWall3"},/area/shuttle/assault_pod) +"pN" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/mineral/plastitanium{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) +"pO" = (/obj/item/weapon/statuebust{pixel_y = 12},/obj/structure/table/wood/fancy,/turf/open/floor/wood,/area/wizard_station) +"pP" = (/obj/machinery/vending/magivend,/turf/open/floor/engine/cult,/area/wizard_station) +"pQ" = (/obj/machinery/vending/snack,/turf/open/floor/engine/cult,/area/wizard_station) +"pR" = (/obj/structure/table/wood/fancy,/obj/item/weapon/storage/pill_bottle/dice{icon_state = "magicdicebag"},/turf/open/floor/carpet,/area/wizard_station) +"pS" = (/obj/structure/table/wood/fancy,/obj/item/weapon/storage/photo_album,/turf/open/floor/carpet,/area/wizard_station) +"pT" = (/turf/open/floor/plasteel/black,/area/syndicate_mothership) +"pU" = (/obj/machinery/mech_bay_recharge_port,/turf/open/floor/plating,/area/syndicate_mothership) +"pV" = (/turf/open/floor/mech_bay_recharge_floor,/area/syndicate_mothership) +"pW" = (/obj/machinery/computer/mech_bay_power_console,/turf/open/floor/plating,/area/syndicate_mothership) +"pX" = (/obj/machinery/vending/tool,/turf/open/floor/plasteel/black,/area/syndicate_mothership) +"pY" = (/obj/structure/closet/cardboard/metal,/turf/open/floor/plating/airless,/area/syndicate_mothership) +"pZ" = (/turf/open/floor/plating/airless/warnplate{dir = 5},/area/syndicate_mothership) +"qa" = (/obj/machinery/door/airlock/centcom{aiControlDisabled = 1; name = "Assault Pod"; opacity = 1; req_access_txt = "150"},/obj/docking_port/mobile/assault_pod{dwidth = 3; name = "steel rain"; port_angle = 90; preferred_direction = 4},/turf/open/floor/plating,/area/shuttle/assault_pod) +"qb" = (/turf/open/floor/plating/airless/warnplate{dir = 9},/area/syndicate_mothership) +"qc" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Study"},/turf/open/floor/engine/cult,/area/wizard_station) +"qd" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Break Room"},/turf/open/floor/engine/cult,/area/wizard_station) +"qe" = (/turf/open/floor/plating/airless/warnplate{dir = 1},/area/syndicate_mothership) +"qf" = (/turf/closed/indestructible/riveted,/area/tdome/arena) +"qg" = (/obj/machinery/igniter,/turf/open/floor/plasteel,/area/tdome/arena) +"qh" = (/turf/open/floor/plasteel,/area/tdome/arena) +"qi" = (/obj/structure/chair/wood/wings,/turf/open/floor/engine/cult,/area/wizard_station) +"qj" = (/obj/structure/table/wood,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/ointment,/turf/open/floor/engine/cult,/area/wizard_station) +"qk" = (/obj/structure/table/wood,/obj/item/weapon/retractor,/turf/open/floor/engine/cult,/area/wizard_station) +"ql" = (/obj/structure/table/wood,/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/obj/structure/mirror/magic{pixel_y = 28},/turf/open/floor/engine/cult,/area/wizard_station) +"qm" = (/obj/structure/table/wood,/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/open/floor/engine/cult,/area/wizard_station) +"qn" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/turf/open/floor/grass,/area/wizard_station) +"qo" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/cleanable/blood/gibs/body,/turf/open/floor/grass,/area/wizard_station) +"qp" = (/obj/effect/decal/remains/xeno/larva,/turf/open/floor/grass,/area/wizard_station) +"qq" = (/obj/effect/decal/cleanable/blood/splatter,/turf/open/floor/grass,/area/wizard_station) +"qr" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/syndicate_mothership) +"qs" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/black,/area/syndicate_mothership) +"qt" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/red,/turf/open/floor/plasteel/black,/area/tdome/arena) +"qu" = (/obj/machinery/door/poddoor{id = "thunderdomegen"; name = "General Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena) +"qv" = (/obj/effect/landmark{name = "tdome2"},/turf/open/floor/plasteel,/area/tdome/tdome2) +"qw" = (/obj/machinery/door/poddoor{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/open/floor/plasteel,/area/tdome/arena) +"qx" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/arena) +"qy" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/arena) +"qz" = (/obj/effect/landmark{name = "tdome1"},/turf/open/floor/plasteel,/area/tdome/tdome1) +"qA" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/green,/turf/open/floor/plasteel/black,/area/tdome/arena) +"qB" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 1; icon_state = "fakewindows"},/area/wizard_station) +"qC" = (/obj/structure/destructible/cult/tome,/turf/open/floor/engine/cult,/area/wizard_station) +"qD" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/head/wizard/red,/obj/item/weapon/staff,/obj/item/clothing/shoes/sandal,/turf/open/floor/engine/cult,/area/wizard_station) +"qE" = (/turf/open/floor/grass,/area/wizard_station) +"qF" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi,/turf/open/floor/grass,/area/wizard_station) +"qG" = (/obj/structure/closet/syndicate/personal,/turf/open/floor/plasteel/darkwarning{dir = 1},/area/syndicate_mothership) +"qH" = (/obj/structure/table,/obj/item/weapon/gun/energy/ionrifle{pin = /obj/item/device/firing_pin},/turf/open/floor/plasteel/darkwarning{dir = 1},/area/syndicate_mothership) +"qI" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome2"},/turf/open/floor/plasteel,/area/tdome/tdome2) +"qJ" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome1"},/turf/open/floor/plasteel,/area/tdome/tdome1) +"qK" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 1; icon_state = "fakewindows2"},/area/wizard_station) +"qL" = (/obj/structure/bookcase/random/reference,/turf/open/floor/engine/cult,/area/wizard_station) +"qM" = (/obj/structure/destructible/cult/talisman{desc = "A altar dedicated to the Wizard's Federation"},/obj/item/weapon/kitchen/knife/ritual,/turf/open/floor/engine/cult,/area/wizard_station) +"qN" = (/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/head/wizard/marisa,/obj/item/weapon/staff/broom,/turf/open/floor/engine/cult,/area/wizard_station) +"qO" = (/obj/effect/decal/cleanable/blood/splatter,/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/turf/open/floor/grass,/area/wizard_station) +"qP" = (/obj/machinery/camera{pixel_x = 11; pixel_y = -9; network = list("thunder"); c_tag = "Red Team"},/obj/effect/landmark{name = "tdome2"},/turf/open/floor/plasteel,/area/tdome/tdome2) +"qQ" = (/turf/open/floor/bluegrid,/area/tdome/arena) +"qR" = (/obj/machinery/flasher{id = "tdomeflash"; name = "Thunderdome Flash"},/turf/open/floor/bluegrid,/area/tdome/arena) +"qS" = (/obj/machinery/camera{pixel_x = 12; pixel_y = -10; network = list("thunder"); c_tag = "Green Team"},/obj/effect/landmark{name = "tdome1"},/turf/open/floor/plasteel,/area/tdome/tdome1) +"qT" = (/turf/closed/indestructible/fakeglass{color = "#008000"},/area/wizard_station) +"qU" = (/obj/effect/landmark/start{name = "wizard"},/turf/open/floor/engine/cult,/area/wizard_station) +"qV" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/splatter,/turf/open/floor/grass,/area/wizard_station) +"qW" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/slime,/turf/open/floor/grass,/area/wizard_station) +"qX" = (/obj/effect/decal/remains/xeno,/turf/open/floor/grass,/area/wizard_station) +"qY" = (/obj/machinery/camera{pixel_x = 10; network = list("thunder"); c_tag = "Arena"},/turf/open/floor/bluegrid,/area/tdome/arena) +"qZ" = (/obj/structure/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 1},/turf/open/floor/engine/cult,/area/wizard_station) +"ra" = (/mob/living/simple_animal/bot/medbot/mysterious{desc = "If you don't accidentally blow yourself up from time to time you're not really a wizard anyway."; faction = list("neutral","silicon","creature"); name = "Nobody's Perfect"},/turf/open/floor/engine/cult,/area/wizard_station) +"rb" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno,/turf/open/floor/grass,/area/wizard_station) +"rc" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Observation Deck"},/turf/open/floor/engine/cult,/area/wizard_station) +"rd" = (/obj/structure/statue/uranium/nuke,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) +"re" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena) +"rf" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena) +"rg" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/tdome/tdomeadmin) +"rh" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeadmin) +"ri" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/tdome/tdomeadmin) +"rj" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena) +"rk" = (/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) +"rl" = (/obj/structure/chair{dir = 1},/obj/effect/landmark{name = "tdomeadmin"},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) +"rm" = (/obj/structure/table,/obj/machinery/computer/security/telescreen{pixel_y = 0},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) +"rn" = (/obj/structure/chair/comfy/brown{dir = 1},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) +"ro" = (/obj/machinery/button/flasher{id = "tdomeflash"; pixel_x = 0; pixel_y = 0},/obj/structure/table,/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) +"rp" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Storage"},/turf/open/floor/engine/cult,/area/wizard_station) +"rq" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Personal Quarters"},/turf/open/floor/engine/cult,/area/wizard_station) +"rr" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Bathroom"},/turf/open/floor/engine/cult,/area/wizard_station) +"rs" = (/turf/closed/indestructible/riveted,/area/tdome/tdomeadmin) +"rt" = (/obj/machinery/computer/security/telescreen{pixel_y = -32},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) +"ru" = (/turf/open/floor/plasteel,/area/tdome/tdomeadmin) +"rv" = (/obj/item/clothing/suit/wizrobe/black,/obj/item/clothing/head/wizard/black,/turf/open/floor/plasteel/bot,/area/wizard_station) +"rw" = (/turf/open/floor/plasteel/bot,/area/wizard_station) +"rx" = (/obj/item/cardboard_cutout,/turf/open/floor/plasteel/bot,/area/wizard_station) +"ry" = (/obj/structure/table/wood,/obj/effect/landmark{name = "Teleport-Scroll"},/obj/item/weapon/dice/d20,/obj/item/weapon/dice,/turf/open/floor/carpet,/area/wizard_station) +"rz" = (/obj/structure/punching_bag,/turf/open/floor/carpet,/area/wizard_station) +"rA" = (/obj/structure/urinal{pixel_y = 28},/turf/open/floor/plasteel/white,/area/wizard_station) +"rB" = (/turf/open/floor/plasteel/white,/area/wizard_station) +"rC" = (/obj/structure/mirror/magic{pixel_y = 28},/obj/structure/sink{pixel_y = 20},/turf/open/floor/plasteel/white,/area/wizard_station) +"rD" = (/turf/closed/indestructible/fakedoor{name = "Thunderdome Admin"},/area/tdome/tdomeadmin) +"rE" = (/obj/structure/table,/obj/machinery/button/door{id = "thunderdomehea"; name = "Heavy Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/open/floor/plasteel,/area/tdome/tdomeadmin) +"rF" = (/obj/structure/table,/obj/machinery/button/door{id = "thunderdome"; name = "Main Blast Doors Control"; pixel_y = 0; req_access_txt = "102"},/turf/open/floor/plasteel,/area/tdome/tdomeadmin) +"rG" = (/obj/structure/table,/obj/machinery/button/door{id = "thunderdomegen"; name = "General Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/open/floor/plasteel,/area/tdome/tdomeadmin) +"rH" = (/obj/item/weapon/cautery/alien,/turf/open/floor/plasteel/bot,/area/wizard_station) +"rI" = (/obj/item/weapon/coin/antagtoken,/turf/open/floor/plasteel/bot,/area/wizard_station) +"rJ" = (/obj/structure/bed,/obj/item/weapon/bedsheet/wiz,/turf/open/floor/carpet,/area/wizard_station) +"rK" = (/obj/item/weapon/soap/homemade,/turf/open/floor/plasteel/white,/area/wizard_station) +"rL" = (/obj/structure/closet/cardboard,/obj/item/weapon/banhammer,/turf/open/floor/plasteel/warning,/area/wizard_station) +"rM" = (/turf/open/floor/plasteel/warning,/area/wizard_station) +"rN" = (/obj/vehicle/scooter/skateboard{tag = "icon-skateboard (EAST)"; icon_state = "skateboard"; dir = 4},/turf/open/floor/plasteel/warning,/area/wizard_station) +"rO" = (/obj/structure/dresser,/obj/item/weapon/storage/backpack/satchel,/turf/open/floor/carpet,/area/wizard_station) +"rP" = (/obj/structure/table/wood,/obj/item/weapon/storage/bag/tray,/obj/item/weapon/reagent_containers/food/snacks/burger/spell,/turf/open/floor/carpet,/area/wizard_station) +"rQ" = (/obj/structure/bookcase/random/adult,/turf/open/floor/plasteel/white,/area/wizard_station) +"rR" = (/obj/structure/toilet{tag = "icon-toilet00 (NORTH)"; icon_state = "toilet00"; dir = 1},/turf/open/floor/plasteel/white,/area/wizard_station) +"rS" = (/obj/structure/table/wood/fancy,/obj/item/weapon/skub{pixel_y = 16},/turf/open/floor/plasteel/white,/area/wizard_station) +"rT" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Engine Room"},/obj/structure/barricade/wooden,/turf/open/floor/engine/cult,/area/wizard_station) +"rU" = (/turf/closed/indestructible/riveted,/area/centcom/holding) +"rV" = (/obj/structure/table/wood,/turf/open/floor/engine/cult,/area/wizard_station) +"rW" = (/obj/structure/table/wood,/obj/item/weapon/gun/magic/wand{desc = "Used in emergencies to reignite magma engines."; max_charges = 0; name = "wand of emergency engine ignition"},/turf/open/floor/engine/cult,/area/wizard_station) +"rX" = (/obj/structure/table/wood,/obj/item/weapon/bikehorn/golden{pixel_x = -8; pixel_y = 8},/turf/open/floor/engine/cult,/area/wizard_station) +"rY" = (/obj/structure/table,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"rZ" = (/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sa" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sb" = (/obj/structure/reagent_dispensers/beerkeg,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sc" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sd" = (/obj/structure/rack,/obj/item/device/camera,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"se" = (/obj/structure/rack,/obj/item/toy/sword,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sf" = (/obj/structure/rack,/obj/item/toy/gun,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sg" = (/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sh" = (/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"si" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"sj" = (/obj/effect/overlay/palmtree_l,/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"sk" = (/obj/structure/table,/obj/item/clothing/head/that,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sl" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sm" = (/obj/item/device/camera,/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"sn" = (/obj/structure/destructible/cult/forge{desc = "A engine used in powering the wizards ship"; name = "magma engine"},/turf/open/floor/engine/cult,/area/wizard_station) +"so" = (/obj/structure/table,/obj/item/ammo_box/foambox,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sp" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sq" = (/obj/structure/table,/obj/item/weapon/lighter,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sr" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"ss" = (/obj/structure/table,/obj/item/weapon/dice/d20,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"st" = (/obj/structure/chair/stool{pixel_y = 8},/obj/item/clothing/head/bandana{pixel_y = -10},/obj/item/clothing/glasses/sunglasses,/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"su" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"sv" = (/obj/structure/window/reinforced{resistance_flags = 3; color = "#008000"; dir = 1},/turf/open/floor/plating/lava,/area/wizard_station) +"sw" = (/obj/structure/rack,/obj/item/clothing/head/that,/obj/item/clothing/under/suit_jacket,/obj/item/clothing/tie/waistcoat,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sx" = (/obj/item/toy/beach_ball,/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"sy" = (/obj/structure/shuttle/engine/heater{resistance_flags = 3},/turf/open/floor/plating/lava,/area/wizard_station) +"sz" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/weapon/gun/ballistic/automatic/toy/pistol,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sA" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sB" = (/obj/structure/shuttle/engine/propulsion,/turf/open/space,/area/wizard_station) +"sC" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/weapon/gun/ballistic/shotgun/toy/crossbow,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sD" = (/turf/open/floor/plating/beach/coastline_b,/area/centcom/holding) +"sE" = (/obj/item/clothing/head/collectable/paper,/turf/open/floor/plating/beach/coastline_b,/area/centcom/holding) +"sF" = (/obj/structure/rack,/obj/item/clothing/shoes/laceup,/obj/item/clothing/under/suit_jacket/female{desc = "A black trouser suit for women. Very formal."; name = "black suit"; pixel_x = 3; pixel_y = 1},/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sG" = (/obj/structure/table,/obj/item/weapon/gun/ballistic/automatic/toy/pistol,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sH" = (/turf/open/floor/plating/beach/water,/area/centcom/holding) +"sI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/centcom/holding) +"sJ" = (/turf/open/floor/plasteel/delivery,/area/centcom/holding) +"sK" = (/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},/turf/open/floor/plasteel,/area/centcom/holding) +"sL" = (/obj/item/weapon/reagent_containers/food/snacks/egg/rainbow{desc = "I bet you think you're pretty clever... well you are."; name = "easter egg"},/turf/open/space,/area/space) +"sM" = (/obj/effect/landmark{name = "Holding Facility"},/turf/open/floor/engine,/area/centcom/holding) +"sN" = (/turf/closed/indestructible/abductor{icon_state = "alien20"},/area/abductor_ship) +"sO" = (/turf/closed/indestructible/abductor{icon_state = "alien21"},/area/abductor_ship) +"sP" = (/turf/closed/indestructible/abductor{icon_state = "alien22"},/area/abductor_ship) +"sQ" = (/turf/closed/indestructible/abductor{icon_state = "alien23"},/area/abductor_ship) +"sR" = (/turf/closed/indestructible/abductor{icon_state = "alien24"},/area/abductor_ship) +"sS" = (/turf/closed/indestructible/abductor{icon_state = "alien16"},/area/abductor_ship) +"sT" = (/turf/closed/indestructible/abductor{icon_state = "alien17"},/area/abductor_ship) +"sU" = (/obj/machinery/abductor/experiment{team = 1},/turf/open/floor/plating/abductor,/area/abductor_ship) +"sV" = (/obj/effect/landmark/abductor/console,/turf/open/floor/plating/abductor,/area/abductor_ship) +"sW" = (/obj/machinery/abductor/pad{team = 1},/turf/open/floor/plating/abductor,/area/abductor_ship) +"sX" = (/turf/closed/indestructible/abductor{icon_state = "alien18"},/area/abductor_ship) +"sY" = (/turf/closed/indestructible/abductor{icon_state = "alien19"},/area/abductor_ship) +"sZ" = (/obj/machinery/abductor/experiment{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) +"ta" = (/obj/effect/landmark/abductor/console{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tb" = (/obj/machinery/abductor/pad{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tc" = (/turf/closed/indestructible/abductor{icon_state = "alien14"},/area/abductor_ship) +"td" = (/obj/machinery/computer/camera_advanced/abductor{team = 1},/turf/open/floor/plating/abductor,/area/abductor_ship) +"te" = (/turf/open/floor/plating/abductor,/area/abductor_ship) +"tf" = (/obj/structure/closet/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tg" = (/turf/closed/indestructible/abductor{icon_state = "alien15"},/area/abductor_ship) +"th" = (/obj/machinery/computer/camera_advanced/abductor{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) +"ti" = (/turf/closed/indestructible/abductor{icon_state = "alien12"},/area/abductor_ship) +"tj" = (/obj/item/weapon/retractor/alien,/obj/item/weapon/hemostat/alien,/obj/structure/table/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tk" = (/obj/effect/landmark/abductor/scientist,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tl" = (/obj/structure/table/optable/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tm" = (/obj/effect/landmark/abductor/agent,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tn" = (/obj/structure/table/abductor,/obj/item/weapon/storage/box/alienhandcuffs,/turf/open/floor/plating/abductor,/area/abductor_ship) +"to" = (/turf/closed/indestructible/abductor{icon_state = "alien13"},/area/abductor_ship) +"tp" = (/obj/effect/landmark/abductor/scientist{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tq" = (/obj/effect/landmark/abductor/agent{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tr" = (/turf/closed/indestructible/abductor{icon_state = "alien10"},/area/abductor_ship) +"ts" = (/obj/item/weapon/surgical_drapes,/obj/item/weapon/paper/abductor,/obj/item/weapon/scalpel/alien,/obj/structure/table/abductor,/obj/item/weapon/cautery/alien,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tt" = (/turf/closed/indestructible/abductor{icon_state = "alien11"},/area/abductor_ship) +"tu" = (/turf/closed/indestructible/abductor{icon_state = "alien6"},/area/abductor_ship) +"tv" = (/turf/closed/indestructible/abductor{icon_state = "alien7"},/area/abductor_ship) +"tw" = (/obj/machinery/abductor/gland_dispenser,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tx" = (/obj/structure/table/abductor,/obj/item/weapon/surgicaldrill/alien,/obj/item/weapon/circular_saw/alien,/turf/open/floor/plating/abductor,/area/abductor_ship) +"ty" = (/obj/structure/bed/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tz" = (/turf/closed/indestructible/abductor{icon_state = "alien8"},/area/abductor_ship) +"tA" = (/turf/closed/indestructible/abductor{icon_state = "alien9"},/area/abductor_ship) +"tB" = (/turf/closed/indestructible/abductor,/area/abductor_ship) +"tC" = (/turf/closed/indestructible/abductor{icon_state = "alien2"},/area/abductor_ship) +"tD" = (/turf/closed/indestructible/abductor{icon_state = "alien3"},/area/abductor_ship) +"tE" = (/turf/closed/indestructible/abductor{icon_state = "alien4"},/area/abductor_ship) +"tF" = (/turf/closed/indestructible/abductor{icon_state = "alien5"},/area/abductor_ship) +"tG" = (/obj/machinery/abductor/experiment{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tH" = (/obj/effect/landmark/abductor/console{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tI" = (/obj/machinery/abductor/pad{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tJ" = (/obj/machinery/abductor/experiment{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tK" = (/obj/effect/landmark/abductor/console{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tL" = (/obj/machinery/abductor/pad{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tM" = (/obj/machinery/computer/camera_advanced/abductor{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tN" = (/obj/machinery/computer/camera_advanced/abductor{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tO" = (/obj/effect/landmark/abductor/scientist{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tP" = (/obj/effect/landmark/abductor/agent{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tQ" = (/obj/effect/landmark/abductor/scientist{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tR" = (/obj/effect/landmark/abductor/agent{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tS" = (/turf/closed/indestructible/riveted,/area/awaymission/errorroom) +"tT" = (/turf/closed/mineral/ash_rock,/area/awaymission/errorroom) +"tU" = (/obj/structure/speaking_tile,/turf/closed/mineral/ash_rock,/area/awaymission/errorroom) +"tV" = (/obj/item/rupee,/turf/open/floor/plating/ashplanet/wateryrock{initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; planetary_atmos = 0},/area/awaymission/errorroom) +"tW" = (/turf/open/floor/plating/ashplanet/wateryrock{initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; planetary_atmos = 0},/area/awaymission/errorroom) +"tX" = (/obj/effect/landmark/error,/turf/open/floor/plating/ashplanet/wateryrock{initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; planetary_atmos = 0},/area/awaymission/errorroom) +"tY" = (/obj/structure/signpost/salvation{icon = 'icons/obj/structures.dmi'; icon_state = "ladder10"; invisibility = 100},/turf/open/floor/plating/ashplanet/wateryrock{initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; planetary_atmos = 0},/area/awaymission/errorroom) +"tZ" = (/obj/structure/lattice,/turf/open/space,/area/space) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacabacacacacacabacacacacacabacacacacacabacacacacacabacacacacacabacacacacacab +aaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafafafagahaiajakalagamanaoaoapagaqaqaqaqaqagarararararagasasasasasagatauauauavaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafaxayayafagahaiajazaAagaBaoaCaCaoagaqaDaqaDaqagarararararagasaEasaEasagaFaGaGaGaHaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafaIafagahaiajazaJagaoaKaLaMaNagaqaqaqaqaqagarararararagasasasasasagaFaGaGaGaHaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafaOafagahaiajakakagaoaoaPaPaoagaqaqaqaqaqagarararararagasasaEasasagaFaGaGaGaHaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafaQafafafagahaiajazaJagaRaSaoaoaSagaqaqaDaqaqagarararararagasasasasasagaFaGaGaGaHaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafaTafaUaxagahaiajazaJagaRaVaWaXaVagaqaqaDaqaqagarararararagasasasasasagaYaGaGaGaZaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafaIafafafagahaiajakakagaRbabbbbbbagaqaqaqaqaqagarararararagasasaEasasagaYaGaGaGaZaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafafafagahaiajazaJagaRbcbbbbbdagaqaqaqaqaqagarararararagasasasasasagaYaGaGaGaZaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafayayaIafagahaiajazaAagaRbcbbbbbdagaqaDaqaDaqagarararararagasaEasaEasagaYaGaGaGaZaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafafafagahaiajakbeagaRbfbgbgbhagaqaqaqaqaqagarararararagasasasasasagbibjbjbjbkaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabblblblblblabblblblblblabblblblblblabblblblblblabblblblblblabblblblblblabblblblblblab +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbnbobnbpbnagbqbrbsbtbuagbvbvbwbxbxagbybybybybyagbzbAbAbAbBagbCbDbDbDbEaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbpbFbGbHbnagbIbJbJbJbKagbLbLbMbNbNagbybObybPbyagbQbQbQbQbQagbRbSbSbSbTaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbFbUbVbWbFagbXbYbZcacbagbLccccccbNagbycdbycdbyagbQbQbQbQbQagbRcececebTaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagcfbncgchcfagbJbJciciciagbLbMbMbMbNagbybybybybyagbQbQbQbQbQagbRbSbSbSbTaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmcjbmbmagbFbnbnbnbnagckclcmbJcnagcocpcpcpcqagbycrbybybyagcscscscscsagctcucucucvaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmcwcxbmagbnbGbnbobFagcyczcAbJcBagcCcDcDcDcEagbybybycFbyagcGcGcGcGcGagcHcIcIcIcJaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagcfcKbUcLbnagbJbJbJbJbJagcMbMcNbMcOagbybybybybyagbQbQbQbQbQagcPbSbSbScQaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbFcRcScTcUagcVcWcXbJbJagcMcYcYcYcOagcZdadbcZcZagbQbQbQbQbQagcPdcdcdccQaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbocRcTcRddagdedfdgdhclagcMcMbMcOcOagdididididiagbQbQbQbQbQagcPbSbSbScQaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbncfbnbpbnagdjdkdldmdnagdododpdqdqagdrdrdrdrdragdsdtdtdtduagdvdwdwdwdxaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabblblblblblabblblblblblabacacacacacabblblblblblabblblblblblabblblblblblabblblblblblab +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydydydydyagdzdzdzdzdzagdAdBdCdDdEagdFdGdGdGdFagdHdIdJdKdLagdMdNdNdNdOagdPdQdRdSdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyagdVdWdXdYdVagdZdZeadZdZagebecedeeefagegeheiejekagelemememenagdPeoepeqdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyageresereserageteueueuevagewexeyexezageAeBeCeDeEageleFememenagdPeGeHeIdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydyeJdydyageKeLeKeLeKageMeNeOePeMagexexexexexageQeQeQeQeQagelemememenagdPeReSeTdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyageLeKeLeKeLageUeUeUeUeUageVeWexeXeYageZfaeQeZfaagelemememenagdPeReSeTdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyageKeLeKeLeKageUeUeUeUeUagfbeWexeXfcagfdfeeQfdfeagfffgememenagdPeReSeTdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydyeJdydyageLeKeLeKeLageUeUeUeUeUagexfhfhfhexageZfaeQeZfaagffemememenagdPeReSeTdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyagfifjfifjfiagfkfkflfkfkagfmfnfofpfqagfdfeeQfdfeagffememfrenagdPfsftfudTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyagfvfwfxfyfvagdZdZdZdZdZagfzfAfAfAfzageZfaeQeZfaagffemememenagdPfBfBfBdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydydydydyagfCfCfCfCfCagfDfDfDfDfDagfEfFfFfFfGageDeBeQeDeBagfHfIfIfIfJagdPfKfLfMdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNab +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfOfOfOfOfOfOfOfOfPfQfQfQfQfQfQfQfQfQfQfQfQfQfPfOfOfOfOfOfOfOfOfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfQfQfQfQfQfQfQfQfVfTabababababfSfWfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfQfQfQfQfQfQfQfQfVfTabababababfSfWfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfXfYfXfQfQfQfQfQfVfTabababababfSfWfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfXfXfXfQfQfQfQfQfVfTabababababfSfWfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfQfQfQfQfQfQfQfQfVfTabababababfSfWfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfQfQfQfQfQfQfQfQfVfTabababababfSfWfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfOfOfZfZfZfZfZfOfPfQfQfQfQfQfQfQfQfQfQfQfQfQfPfOfZfZfZfZfZfOfOfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOgagagagagafOabababababababababababababababfOgbgbgbgbgbfOaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfOfOfOfOfOfOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfOfOfOfOfOfOaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgdgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegeaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegfggggggggggghgegfggggggghgegfggggggghgegfggggggghgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegigjgjgjgkgegigjgjgjgkgegigjgjgjgkgegigjgjgjgjgjgkgeaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgpgqgpgngoglgpgqgpgngoglgpgqgpgngrgrgrgrgrgsgsgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgsgsgrgrgrgrgrgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngoglgpgqgqgngoglgqgqgqgngoglgqgqgpgngrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgugmgvgvgwgxgugvgvgvgwgxgugvgvgmgwgxgugmgygygygmgwgeaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgpgqgpgngoglgpgqgpgngoglgpgqgpgngrgrgrgrgrgsgsgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgsgsgrgrgrgrgrgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +gzgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngegAgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegmgmgmgegegegegmgmgmgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgFgegugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngegegogogogegegegGgGgGgegegegogogogegegHgHgHgegegegegHgHgHgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegxgxgxgegegegGgGgGgegegegxgxgxgegegugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngegfggggggghgegfggggggghgegfggggggghgegIgJgKgKgLgJgKgKgLgJgKgKgLgJgKgKgLgJgKgMgegegNgegegegNgegegegNgegegegegNgegegegegNgegegegNgegegegNgegegegegegigjgjgjgkgegigjgjgjgkgegigjgjgjgkgegugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgpgqgpgngoglgpgqgpgngoglgpgqgpgngOgPgpgQgmgRgpgQgmgRgpgQgmgRgpgQgmgRgqgQgOgegegSgegegegSgegegegSgegegegegSgegegegegSgegegegSgegegegSgegegegegegugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngoglgpgqgqgngoglgqgqgqgngoglgqgqgpgngOgTgngpgmgmgngpgmgmgngpgmgmgngpgmgmgqgpgOgUgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgWgugmgvgvgwgxgugvgvgvgwgxgugvgvgmgwgxgugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgpgqgpgngoglgpgqgpgngoglgpgqgpgngOgXgpgYgmgZgpgYgmgZgpgYgmgZgpgYgmgZgqgYgOgegehagegGgehagegGgehagegegGgehagegGgegehagegGgehagegGgehagegegGgegegugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegAgBgBgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgehbhcgHgHhdhcgHgHhdhcgHgHhdhcgHgHhdhcgHhegegehfgegGgehfgegGgehfgegegGgehfgegGgegehfgegGgehfgegGgehfgegegGgegegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgEgEgFgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagehggegegegegehggegegogogogegegegpgpgpgegegegegVgegegegegKgegegegegegqgqgqgegegegegehhhihihihjgegegGgegGgegGgegGgegGgegegGgegGgegGgegegGgegGgegGgegGgegGgegegGgegegegegVgegegegehkhkhkgegegegxgxgxgegehlgegegegegehlgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegfggggggghgegpgpgpgpgpgegegegVgegegegegmgtgtgtgtgtgtgtgtgtgtgtgtgthmhnhnhnhogtgtgtgtgtgtgtgtgtgtgtgtgtgmgegegegmgtgtgtgtgtgtgtgtgtgtgtgtgtgmgegegegegVgegegehkhkhkhkhkgegigjgjgjgkgehkhkhkhkhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgqgqgqgqgphgglgpgqgpgngegpgmgmgmgpgegegegVgegegegegmgegGgGgGgegqgqgqgegGgGgGgehphqhqhqhrgegGgGgGgehshshsgegGgGgGgegmgegegegmgegGgGgGgegvgvgvgegGgGgGgegmgegegegegVgegegehkgmgmgmhkgegugmgvgmgwhthkgvgvgvgvgvhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgpgpgpgqgphgglgqgqgqgngegpgegqgegpgegVgVgVgVgVgVgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmhuhvhvhvhwhxhxhxhxhxhxhxhxhxhxhxhxhxhyhzhzhzhAgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgVgVgVgVgVgVgehkgegvgehkgegugvgvgvgwhthkgvhkhkhkgvhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgpgpgpgqgphgglgpgqgpgngegpgmgmgmgpgegegegVgegGgegmgmgmhnhnhnhnhnhnhnhnhnhnhngmhBgpgpgpgnhChChChChCgehCgehChChChChCguhkhkhkhDgmhEhEhEhEhEhEhEhEhEhEhEgmgmgmgegGgegVgegegehkgmgmgmhkgegugmgvgmgwhthkgvhkhkhkgvhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegAgBgBgBgCgegpgpgpgpgpgegegegVgGgGgGgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmhBgpgqgpgnhChChChChChCgehChChChChChCguhkgvhkhDgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgGgGgGgVgegegehkhkhkhkhkgegDgEgEgEgFgehkhkhkhkhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegegogogogogogegegegegegegegegegpgpgpgegegegegegegGgegmgmgegpgogpgegGgGgGgegpgogpgehBgpgpgpgngehChngqhChChChChCgvhEhCgeguhkhkhkhDgehkgxhkgegGgGgGgehkgxhkgegmgmgegGgegegegegegehkhkhkgegegegegegegegegehkhkhkhkhkgegeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegpgpgpgpgpgegpgpgpgpgpgegpgpgpgpgpgegmgmgegogpgogqhnhnhngqgogpgogehBgpgegpgngehChChngqhChChCgvhEhChCgeguhkgehkhDgegxhkgxgvhEhEhEgvgxhkgxgegmgmgehkhkhkhkhkgehkhkhkhkhkgehkhkhkhkhkgehkhkhkhkhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgphFgpgpgpgegpgmgegmgpgpgpgqhFgqgpgpgpgmgegmgpgpgmgmgGgpgogphnhnhnhnhngpgogpgehBgpgqgpgngehnhChChngqhCgvhEhChChEgeguhkgvhkhDgehkgxhkhEhEhEhEhEhkgxhkgGgmgmhkhkgmgegmhkhkhkgvhFgvhkhkhkgmgegmhkgehkhkhkhFhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgphFhGhFgpgpgegpgmgqgmgpgpgphFhHhFgpgpgpgmgqgmgpgpgmgmgGgogpgohnhngqhnhngogpgogehBgpgqgpgngegqhnhChChnhChEhChChEgvgeguhkgvhkhDgegxhkgxhEhEgvhEhEgxhkgxgGgmgmhkhkgmgvgmhkhkhkhFhIhFhkhkhkgmgvgmhkgehkhkhFhJhFhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgphFgpgpgpgegpgmgegmgpgpgpgqhFgqgpgpgpgmgegmgpgpgmgmgGgpgogphnhnhnhnhngpgogpgehBgpgqgpgngehnhChChngqhCgvhEhChChEgeguhkgvhkhDgehkgxhkhEhEhEhEhEhkgxhkgGgmgmhkhkgmgegmhkhkhkgvhFgvhkhkhkgmgegmhkgehkhkhkhFhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegpgpgpgpgpgegpgpgpgpgpgegpgpgpgpgpgegmgmgegogpgogqhnhnhngqgogpgogehBgpgegpgngehChChngqhChChCgvhEhChCgeguhkgehkhDgegxhkgxgvhEhEhEgvgxhkgxgegmgmgehkhkhkhkhkgehkhkhkhkhkgehkhkhkhkhkgehkhkhkhkhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegegogogogogogegegegegegegegegegpgpgpgegegegegegegGgegmgmgegpgogpgegGgGgGgegpgogpgehBgpgpgpgngehChngqhChChChChCgvhEhCgeguhkhkhkhDgehkgxhkgegGgGgGgehkgxhkgegmgmgegGgegegegegegehkhkhkgegegegegegegegegehkhkhkhkhkgegeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegfggggggghgegpgpgpgpgpgegegegVgGgGgGgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmhBgpgqgpgnhChChChChChCgehChChChChChCguhkgvhkhDgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgGgGgGgVgegegehkhkhkhkhkgegigjgjgjgkgehkhkhkhkhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgpgpgpgqgphgglgmgqgmgngegpgmgmgmgpgegegegVgegGgegmgmgmhnhnhnhnhnhnhnhnhnhnhngmhBgpgpgpgnhChChChChCgehCgehChChChChCguhkhkhkhDgmhEhEhEhEhEhEhEhEhEhEhEgmgmgmgegGgegVgegegehkgmgmgmhkgeguhkgvhkgwhthkgvhkhkhkgvhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgpgpgpgqgphgglgqgqgqgngegpgegqgegpgegVgVgVgVgVgVgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmhLhMhMhMhNhOhOhOhOhOhOhOhOhOhOhOhOhOhPhQhQhQhRgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgVgVgVgVgVgVgehkgegvgehkgegugvgvgvgwhthkgvhkhkhkgvhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahShThUhVhSaahWaaaaaahXaahShThUhVhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgqgqgqgqgphgglgmgqgmgngegpgmgmgmgpgegegegVgegegegegmgegGgGgGgegqgqgqgegGgGgGgegmgegegegmgegGgGgGgehshshsgegGgGgGgehYhZhZhZiagegGgGgGgegvgvgvgegGgGgGgegmgegegegegVgegegehkgmgmgmhkgeguhkgvhkgwhthkgvgvgvgvgvhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibicicicibibidibieibidibibicicicibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegAgBgBgBgCgegpgpgpgpgpgegegegVgegegegegmgtgtgtgtgtgtgtgtgtgtgtgtgtgmgegegegmgtgtgtgtgtgtgtgtgtgtgtgtgtifhEhEhEiggtgtgtgtgtgtgtgtgtgtgtgtgtgmgegegegegVgegegehkhkhkhkhkgegDgEgEgEgFgehkhkhkhkhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibihihiiijikiliminioilikijiiihihibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagehggegegegegehggegegogogogegegegpgpgpgegegegegVgegegegegGgegegGgegGgegGgegGgegGgegegGgegegegGgegegGgegGgegGgegGgegGgegeipiqiqiqirgegegegegegvgvgvgegegegegegHgegegegegVgegegegehkhkhkgegegegxgxgxgegehlgegegegegehlgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibihihibisisilisisisilisisibihihibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegfggggggggggghgegfggggggghgegfggggggghgegfggggggghgegegGgegegNgegGgegNgegGgegNgegegGgegNgegGgegegNgegGgegNgegGgegNgegeitgKiuivgKgKiuivgKgKiuivgKgKiuivgKgKiuiwgegigjgjgjgkgegigjgjgjgkgegigjgjgjgkgegigjgjgjgjgjgkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahSihihidisilililililililisidihihhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgmgqgmgngoglgmgqgmgngoglgmgqgmgngegegGgegegSgegGgegSgegGgegSgegegGgegSgegGgegegSgegGgegSgegGgegSgegegTixgviygmixhkiygmixhkiygmixhkiygmixhkizgTgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahSibibiAiBiCiDiliEisiliFibibhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngoglgmgqgqgngoglgqgqgqgngoglgqgqgmgngUgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgWgThkgvgmgmhkgugmgmhkgugmgmhkgugmgmhkgugOgTgugmgvgvgwgxgugvgvgvgwgxgugvgvgmgwgxgugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiGiHiIiJilisisiliFibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgmgqgmgngoglgmgqgmgngoglgmgqgmgngegegegegehagegegehagegegehagegegegehagegegegehagegegehagegegehagegegTiKgviLgmiKhkiLgmiKhkiLgmiKhkiLgmiKhkiMgTgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiNiOiOiDiliFiPiliFibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngegAgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegegegegehfgegegehfgegegehfgegegegehfgegegegehfgegegehfgegegehfgegeiQgHiRiSgHgHiRiSgHgHiRiSgHgHiRiSgHgHiRiTgegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgFgegugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiUiOiOiViliFiPililidiWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngegegogogogegegegGgGgGgegegegogogogegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegKgKgKgegegegegKgKgKgegegxgxgxgegegegGgGgGgegegegxgxgxgegegugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibibibibibilisisiliFibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngegfggggggghgegfggggggghgegfggggggghgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegmgmgmgegegegegmgmgmgegigjgjgjgkgegigjgjgjgkgegigjgjgjgkgegugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiXiliXibiliFiPiliFiYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgmgqgmgngoglgmgqgmgngoglgmgqgmgngmgrgrgrgrgsgsgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgsgsgrgrgrgrgrgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiXiliXibiliFiPiliFibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngoglgmgqgqgngoglgqgqgqgngoglgqgqgmgngmgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgugmgvgvgwgxgugvgvgvgwgxgugvgvgmgwgxgugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiXililiZilililililidjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgmgqgmgngoglgmgqgmgngoglgmgqgmgngmgrgrgrgrgsgsgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgsgsgrgrgrgrgrgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiXiliXibilisisisisibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegAgBgBgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgEgEgFgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiXiliXibiljbjcjdikibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahSibibibibjeibibibibhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahSibjfiFiljgjhibhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibjdisjiisjfibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajjjkjjjjjjjjjkjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibjljmjnjojpibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqjqjqjqjjjrjrjsjsjrjrjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahSiYiYiYiYiYhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjtjujvjwjxjrjrjsjsjyjzjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjtjqjqjqjjjrjrjsjsjrjAjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqjqjqjqjBjqjqjqjCjqaaaajjjrjrjsjsjrjrjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjDjEjFjtjtjtjGjHjtjqaaaajjjrjrjrjrjrjrjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjtjtjtjIjtjIjtjtjtjqaaaajjjrjrjsjsjrjrjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjtjtjJjJjJjJjKjtjtjqaaaajjjkjjjjjjjjjkjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqjqjqjqjqjqjqjtjLjJjMjNjJjtjtjOjqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjPjQjRjSjTjTjqjtjtjJjJjJjJjKjtjUjqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjVjVjVjVjVjVjWjtjtjXjtjXjtjtjtjYjqjqjqjqjqjZjZjZjZjZjZjZjZjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjVjVjVjVjVjVjWjtjtjtjtjtjtjtjtkakbkckckcjqjZkdjZkdjZkdjZkdjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqkekekfkgkhkhjqkikjjtjtjtjtjtjtkakkkcklkcjqjZjZjZjZjZjZjZjZjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqkmknknkojqjqkmknknkojqjqjqkpjqjqkqkrksjqjZkdjZkdjZkdjZkdjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaktjtjtkakukvkwksjqjZjZjZjZjZjZjZjZjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakxkyjtjtkakzkAkBkCjqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakDkykEjtjtkajqjqjqjqjqjZjZjZjZjZjZjZjZjZaakFkFkFkFkFkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakGkHjvkIjtjtkJjqkKkckLjqjZkdjZkdjZkdjZkdjZaakFkMkNkNkOkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakDkPkIjtjtjtkQkckckRjqjZjZjZjZjZjZjZjZjZaakSkTkTkTkTkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakUkPjtjtkVjqkckckWjqjZkdjZkdjZkdjZkdjZaakFkTkXkYkZkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalajtjtkajqkclblcjqjZjZjZjZjZjZjZjZjZaakFldlelflgkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqjqjqjqlhjqjqjqjqjqjqaaaaaaaaaaaaaaaaaaaakFkTkTkTkTkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaliljlkljlllmllljlkljliaaaaaakFkFkFkFkFkFkFkFlnlolplqlrkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaliljljljlsltlsljljljliaaaaaakFlulvlvlvlwlxlylzlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalilElilEliltlilElilElilililikFlFlBlBlBlBlBlGlHlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalilIlllJltltltltltlKlLlMlMlNkFlFlBlBlBlBlOlPlQlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSlSlSlSlSlSlSlIlTlJltltltlUlilElililMlVkFlFlBlBlBlBlWlWlWlXlBlBlClDlYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSmambmcmbmdlSlIlslJltltltmelElIlimfmgmhkFmilBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmkmjmjmjmlmmmjmjmjmjmjmlmjmjmjmjmjmnmlmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamompmqmqmqmqlSlElimrltltltmslilElilEmtlEkFmulBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmkmjmjmjmjmjmjmjmjmjmjmjmlmjmjmjmjmjmjmjmlmjmvmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamwmpmqmqmqmqmxmyltltltltltltltlKmzlMlMlMmAmBlBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmCmjmjmjmjmjmkmjmjmmmjmjmlmjmjmlmjmjmlmmmjmlmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamomDmqmqmqmqlSlElimEltltltlUlimFlilililikFmGlBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmlmjmjmkmjmjmlmmmjmjmlmjmmlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmwmpmqmqmqmqlSlIlllJltltltmIlllIliaaaaaakFmJlBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmkmjmjmjmjmjmjmjmmmjmlmmmjmlmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamKmpmqmqmqmqlSlIlTlJltltltmIlTlIliaaaaaakFmLlBlBlBlBmMmMmMmNlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmmmjmjmjmlmjmjmCmmmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamOmpmqmqmqmqlSlIlsmPmEltlUmQlslIliaaaaaakFmLlBlBlBlBmRmSmTlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmUmUmUmUmUmUmUmUmUmjmjmjmjmjmjmCmjmjmkmjmkmjmlmjmllZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamVmpmqmqmqmqlSmWmWmXmYmZmXmYmWmWmWaaaaaakFmLlBlBlBlBlBnanblAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmUmUmUmUmUmUmUmUmUmjmjmjmjmjmjncncndnencncmjmmmlmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSnfngnhmqmqlSninjnknlnmnnnonpnqmWaaaaaakFnrnsnsnsntnunvnwlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmUmUmUmUmUmUmUmUmUmjmjmjmjmjncncnxnynynxncncncncncncncncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSlSlSlSnzlSlSnAnmnBnlnmnnnBnmnCmWaaaaaakFkFkFkFkFkFkFkFnDlolpnElrkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRnFnGnHnInFlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmUmUmUmUmUmUmUmUmUmjmCmjmjmjncnJnKnKnKnKnLnMnNncnOnPnQncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSnRnRnRlSnSnmnBnlnmnnnBnmnTmWaaaaaaaaaaaaaaaaaaaaaakFlBlBlBlBkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFnFnUnVnUnFnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmUmUmUmUmUmUmUmUmUmjmjmjmjmkncnWnKnXnXnYnKnKnKnZoaoaobncncncncncncncncncncncncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSnRnRnRlSocnmnBnlnmnnnBnmodmWaaaaaaaaaaaaaaaaaaaaaakFlBoemSmRkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFnUnUnUnUnUnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmUmUmUmUmUmUmUmjmjmjmjmjmjncnKnXofognXnKohoincoaojncncokokokolololololokokncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSnRnRnRlSomononoonmopoqoqormWaaaaaaaaaaaaaaaaaaaaaakFlBosnaotkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFounUnUnUovnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmUmUmUmUmUowoxoxoxoxoxnencnKnXoyoznXnKohoAncncncncncokoBoCoDoEoFoEoGoHokncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSlSlSlSlSmXoImYmWnmmWmXoImYmWaaaaaaaaaaaaaaaaaaaaaaoJlBlBlBlBkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRnFnFnFnFoKoLoKnFnFnFnFlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUoMoNoNoNoNoNoNoOnKnKnKnKnKnKohoAncncncncncokoPoDoEoQoRoSoEoGoTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWoUoUoUoVnmoVoUoUoUmWaaaaaaaaaaaaaaaaaaaaaakFoWntntoXkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFnFoYoZnFnUnUnUnFpapbnFnFlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUpcpdndoxoxoxnencpenXnXnXnKnKohpfndoxoxoxoxoxoxoEoQoRpgoRoSoEoTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWmWmWmWmWmWmWmWmZmWmWmWmWmWmWmWmWaaaaaaaaaaaaaaaakFkFkFkFkFkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRnFnFphpiphnFnUnUnUnFpjpkplnFnFlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUmUpmmUmUmjmjmjncpnpopppopqnKnKnKpdoNoNoNoNoNpdproRoSpsoQoRproTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWptpupupupupuptptptpupupupupuptmWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRnFnFoZphphphpvnUnUnUpwpapxpapbnFnFlRlRlRlRlRlRlRaaaaaaaalZpymjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmkncpzpApzpzpBnKnKnKndoxoxoxoxoxoxoEoQoRpCoRoSoEoTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapDptptptpEptptptptptptptpEptptptpDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRnFoYpFphphphnFnUnUnUnFpGpapjpHplnFlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmCmjncncoipIpJpKncpLncncncncncncokoPpMoEoQoRoSoEpNoTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWptpupupupupuptptptpupupupupuptmWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRnFphphphphpOnFpPnUpQnFpRpSpapxpanFlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjncncncncncncpTpTpUpVpWpXncokpYpZpMoEqaoEpNqbokncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWmXoIoIoIoIoIoIoIoIoIoIoIoIoImYmWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRnFnFqcnFnFnFnFnFnFqdnFnFnFnFnGnHnInFnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmjmjmCmjncpTpTpTpTpTpTncokokokqeqeqeqeqeokokncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqfqfqfqfqfqfqfqfqgqhqhqhqhqhqhqhqhqhqhqhqhqhqgqfqfqfqfqfqfqfqfqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRnFqinUnUqinFqjqknUnUnUqlqmnFqnqoqpqqnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmkmjmjmmqrpTpTpTpTpTqsncncncncncncncncncncncncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqvqvqvqvqwqxqhqhqhqhqhqhqhqhqhqhqhqhqhqyqwqzqzqzqzqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRqBqCnUnUqCqBnUnUnUnUnUnUqDqBqqqEqFqEnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmCmlmkmCncqGqGqGqGqGqHncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqIqvqIqvqwqxqhqhqhqhqhqhqhqhqhqhqhqhqhqyqwqzqJqzqJqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRqKqLnUnUnUqKnUnUnUqMnUnUqNqKqOqoqqqonFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmjmjmlmjncncncncncncncncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqvqPqvqvqwqxqhqhqhqhqhqQqRqQqhqhqhqhqhqyqwqzqzqSqzqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRqTqCnUnUqCqTnUnUnUqUnUnUnUqTqVqWqEqXnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmlmjmCmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqvqvqvqvqwqxqhqhqhqhqhqQqYqQqhqhqhqhqhqyqwqzqzqzqzqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRnFqZnUnUqZnFranUnUnUnUnUnUnFqqqoqqrbnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqIqvqIqvqwqxqhqhqhqhqhqhqhqhqhqhqhqhqhqyqwqzqJqzqJqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRnFnFrcnFnFnFnFnFoKrcoKnFnFnFnGnHnInFnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmjmUmUmUmUmUmUmUmUmUmUmUmjmjmjmjmvmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqvqvqvqvqwqxqhqhqhqhqhqhqhqhqhqhqhqhqhqyqwqzqzqzqzqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRqBnUnUnUnUnUnUnUnUnUnUnUnUnUnUnUqBlRlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmjmUmUmUmUmUmjmUmUmUmUmUmjmjmjmvrdmvmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqfqfrerererereqfqgqhqhqhqhqhqhqhqhqhqhqhqhqhqgqfrerererereqfqfqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRqTnUpanUpanUpanUpanUpanUpanUpanUqTlRlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmjmjmjmjmjmjmjmUmUmUmUmUmjmjmjmjmvmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfrfrfrfrfrfqfrgrhrhrhrhrhrhrhrhrhrhrhrhrhriqfrjrjrjrjrjqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRnFnFnUnUnUnUnUnUnUnUnUnUnUnUnUnFnFlRlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmjmjmjmjmjmjmjmUmUmUmUmUmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqfqfqfqfqfqfrkrlrlrlrlrlrmrnrorlrlrlrlrlrkqfqfqfqfqfqfqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRnFnFnFrpnFnFnFrqnFnFnFrrnFnFnFlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarsrkrkrkrtrkrurururururkrtrkrkrkrsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFrvrwrxnFryparznFrArBrCnFlRlRlRlRlRlRlRlRlRaaaaaaaalZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarsrsrDrsrsrsrsrErFrGrsrsrsrsrDrsrsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFrHrwrInFparJpanFrKrBrBnFlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarsrsrsrsrsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFrLrMrNnFrOparPnFrQrRrSnFlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFnFrTnFnFnFoKnFnFnFnFnFnFlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrUrUrUrUrUrUrUrUrUrUrUrUrUrUrUrUrUrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRnFnUnFnUrVrWrVrXnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrYrZsasbsbrZscsdsesfsgshsishshshsjrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRoKnUrTnUnUnUnUnUoKlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrYrZrZrZrZrZsksgsgsgslshshshsmshshrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRnFnFnFsnnUnUnUsnnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsorZsprYsqsrsssgsgsgsgshshstshsusirUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFsvsvsvsvsvnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUswsgslslslslslsgsgsgsgshshshsxshshrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFnFsysysynFnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUszsgsgsgsgsgsgsgsgsgsgsAshshshshshrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRsBsBsBlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsCsgsgsgsgsgsgsgsgslsgsAsDsDsDsEsDrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsFsgsgsgsgsgsgsgslsGslsAsHsHsHsHsHrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrUsIsJsJsKrUrUrUrUrUrUrUrUrUrUrUrUrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsMsMsMsMrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsMsMsMsMrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrUrUrUrUrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasNsOsPsQsRaaaaaasNsOsPsQsRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSsTsUsVsWsXsYaasSsTsZtatbsXsYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatctdtetetetftgaatcthtetetetftgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatitjtktltmtntoaatitjtptltqtntoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatrtstetetetfttaatrtstetetetfttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatutvtwtxtytztAaatutvtwtxtytztAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatBtCtDtEtFaaaaaatBtCtDtEtFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasNsOsPsQsRaaaaaasNsOsPsQsRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSsTtGtHtIsXsYaasSsTtJtKtLsXsYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatctMtetetetftgaatctNtetetetftgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatitjtOtltPtntoaatitjtQtltRtntoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatrtstetetetfttaatrtstetetetfttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatutvtwtxtytztAaatutvtwtxtytztAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatBtCtDtEtFaaaaaatBtCtDtEtFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStStStStStStStStStStStStStStSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtTtTtTtTtTtUtTtTtTtTtTtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtVtVtVtWtVtVtVtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtVtVtVtWtVtVtVtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtVtVtVtWtVtVtVtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtWtWtWtWtWtWtWtWtWtWtWtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtVtVtVtWtWtWtWtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtVtVtVtWtWtXtWtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtVtVtVtWtWtYtWtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtTtTtTtTtTtTtTtTtTtTtTtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStStStStStStStStStStStStStStSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatZ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatZ +"} diff --git a/_maps/map_files/generic/z5.dmm b/_maps/map_files/generic/z5.dmm index b5fa974079b..9b57ffbb870 100644 --- a/_maps/map_files/generic/z5.dmm +++ b/_maps/map_files/generic/z5.dmm @@ -1091,7 +1091,7 @@ /turf/open/floor/plasteel/floorgrime, /area/mine/laborcamp) "dp" = ( -/obj/effect/decal/cleanable/cobweb2, +/obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/chair{ dir = 8 }, diff --git a/_maps/shuttles/emergency_imfedupwiththisworld.dmm b/_maps/shuttles/emergency_imfedupwiththisworld.dmm index aa4719f3ec0..9afc23482c6 100644 --- a/_maps/shuttles/emergency_imfedupwiththisworld.dmm +++ b/_maps/shuttles/emergency_imfedupwiththisworld.dmm @@ -120,7 +120,7 @@ /obj/effect/decal/cleanable/blood/drip, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/mob_spawn/human/corpse, -/obj/item/weapon/gun/projectile/automatic/pistol/m1911, +/obj/item/weapon/gun/ballistic/automatic/pistol/m1911, /obj/machinery/light/small{ dir = 8 }, diff --git a/code/game/asteroid.dm b/code/game/asteroid.dm index c64d0db642d..4624ac07733 100644 --- a/code/game/asteroid.dm +++ b/code/game/asteroid.dm @@ -117,7 +117,7 @@ var/global/max_secret_rooms = 6 if("speakeasy") theme = "speakeasy" floortypes = list(/turf/open/floor/plasteel,/turf/open/floor/wood) - treasureitems = list(/obj/item/weapon/melee/energy/sword/pirate=1,/obj/item/weapon/gun/projectile/revolver/doublebarrel=1,/obj/item/weapon/storage/backpack/satchel/flat=1, + treasureitems = list(/obj/item/weapon/melee/energy/sword/pirate=1,/obj/item/weapon/gun/ballistic/revolver/doublebarrel=1,/obj/item/weapon/storage/backpack/satchel/flat=1, /obj/machinery/reagentgrinder=2, /obj/machinery/computer/security/wooden_tv=4, /obj/machinery/vending/coffee=3) fluffitems = list(/obj/structure/table/wood=2,/obj/structure/reagent_dispensers/beerkeg=1,/obj/item/stack/spacecash/c500=4, /obj/item/weapon/reagent_containers/food/drinks/shaker=1,/obj/item/weapon/reagent_containers/food/drinks/bottle/wine=3, diff --git a/code/game/gamemodes/gang/recaller.dm b/code/game/gamemodes/gang/recaller.dm index 4b54ad3e62c..375075ce85e 100644 --- a/code/game/gamemodes/gang/recaller.dm +++ b/code/game/gamemodes/gang/recaller.dm @@ -198,7 +198,7 @@ pointcost = 1 if("pistol") if(gang.points >= 25) - item_type = /obj/item/weapon/gun/projectile/automatic/pistol + item_type = /obj/item/weapon/gun/ballistic/automatic/pistol pointcost = 25 if("10mmammo") if(gang.points >= 10) @@ -206,7 +206,7 @@ pointcost = 10 if("uzi") if(gang.points >= 60) - item_type = /obj/item/weapon/gun/projectile/automatic/mini_uzi + item_type = /obj/item/weapon/gun/ballistic/automatic/mini_uzi pointcost = 60 if("9mmammo") if(gang.points >= 40) diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index c07253e0ac8..726c6344564 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -297,7 +297,7 @@ ears = /obj/item/device/radio/headset/syndicate/alt l_pocket = /obj/item/weapon/pinpointer/syndicate id = /obj/item/weapon/card/id/syndicate - belt = /obj/item/weapon/gun/projectile/automatic/pistol + belt = /obj/item/weapon/gun/ballistic/automatic/pistol backpack_contents = list(/obj/item/weapon/storage/box/syndie=1) var/tc = 25 @@ -332,10 +332,10 @@ suit = /obj/item/clothing/suit/space/hardsuit/syndi r_pocket = /obj/item/weapon/tank/internals/emergency_oxygen/engi belt = /obj/item/weapon/storage/belt/military - r_hand = /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog + r_hand = /obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog backpack_contents = list(/obj/item/weapon/storage/box/syndie=1,\ /obj/item/weapon/tank/jetpack/oxygen/harness=1,\ - /obj/item/weapon/gun/projectile/automatic/pistol=1) + /obj/item/weapon/gun/ballistic/automatic/pistol=1) /datum/outfit/syndicate/full/post_equip(mob/living/carbon/human/H) ..() diff --git a/code/game/gamemodes/objective_items.dm b/code/game/gamemodes/objective_items.dm index 25473cce9bb..87ae5497041 100644 --- a/code/game/gamemodes/objective_items.dm +++ b/code/game/gamemodes/objective_items.dm @@ -19,7 +19,7 @@ /datum/objective_item/steal/hoslaser name = "the head of security's personal laser gun" - targetitem = /obj/item/weapon/gun/energy/gun/hos + targetitem = /obj/item/weapon/gun/energy/e_gun/hos difficulty = 10 excludefromjob = list("Head Of Security") @@ -155,7 +155,7 @@ /datum/objective_item/special/aegun name = "an advanced energy gun" - targetitem = /obj/item/weapon/gun/energy/gun/nuclear + targetitem = /obj/item/weapon/gun/energy/e_gun/nuclear difficulty = 10 /datum/objective_item/special/ddrill diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index d23a522cb42..77d2c81bdfa 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -12,7 +12,7 @@ /obj/item/clothing/under/syndicate/tacticool = 2, /obj/item/toy/sword = 2, /obj/item/toy/gun = 2, - /obj/item/weapon/gun/projectile/shotgun/toy/crossbow = 2, + /obj/item/weapon/gun/ballistic/shotgun/toy/crossbow = 2, /obj/item/weapon/storage/box/fakesyndiesuit = 2, /obj/item/weapon/storage/crayons = 2, /obj/item/toy/spinningtoy = 2, @@ -1040,7 +1040,7 @@ desc = "The Premier security forces for all spaceports found along the Orion Trail." faction = list("orion") loot = list(/obj/effect/mob_spawn/human/corpse/orionsecurity, - /obj/item/weapon/gun/projectile/automatic/c20r/unrestricted, + /obj/item/weapon/gun/ballistic/automatic/c20r/unrestricted, /obj/item/weapon/shield/energy) /obj/effect/mob_spawn/human/corpse/orionsecurity diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index a0dfbc790e8..eb7da71d29b 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -32,7 +32,7 @@ var/locked = 1 //if the turret's behaviour control access is locked var/controllock = 0 //if the turret responds to control panels - var/installation = /obj/item/weapon/gun/energy/gun/turret //the type of weapon installed + var/installation = /obj/item/weapon/gun/energy/e_gun/turret //the type of weapon installed var/gun_charge = 0 //the charge of the gun inserted var/projectile = null //holder for bullettype var/eprojectile = null //holder for the shot when emagged @@ -138,21 +138,21 @@ if(/obj/item/weapon/gun/energy/lasercannon) active_state = "Laser" - if(/obj/item/weapon/gun/energy/gun/advtaser) + if(/obj/item/weapon/gun/energy/e_gun/advtaser) eprojectile = /obj/item/projectile/beam eshot_sound = 'sound/weapons/Laser.ogg' - if(/obj/item/weapon/gun/energy/gun) + if(/obj/item/weapon/gun/energy/e_gun) eprojectile = /obj/item/projectile/beam //If it has, going to kill mode eshot_sound = 'sound/weapons/Laser.ogg' egun = 1 - if(/obj/item/weapon/gun/energy/gun/nuclear) + if(/obj/item/weapon/gun/energy/e_gun/nuclear) eprojectile = /obj/item/projectile/beam //If it has, going to kill mode eshot_sound = 'sound/weapons/Laser.ogg' egun = 1 - if(/obj/item/weapon/gun/energy/gun/turret) + if(/obj/item/weapon/gun/energy/e_gun/turret) eprojectile = /obj/item/projectile/beam //If it has, going to copypaste mode eshot_sound = 'sound/weapons/Laser.ogg' egun = 1 @@ -276,9 +276,9 @@ if(prob(70)) user << "You remove the turret and salvage some components." if(installation) - var/obj/item/weapon/gun/energy/Gun = new installation(loc) - Gun.power_supply.charge = gun_charge - Gun.update_icon() + var/obj/item/weapon/gun/energy/EG = new installation(loc) + EG.power_supply.charge = gun_charge + EG.update_icon() lasercolor = null if(prob(50)) new /obj/item/stack/sheet/metal(loc, rand(1,4)) diff --git a/code/game/machinery/porta_turret/portable_turret_construct.dm b/code/game/machinery/porta_turret/portable_turret_construct.dm index 5ac7b22e2e2..27561e43da4 100644 --- a/code/game/machinery/porta_turret/portable_turret_construct.dm +++ b/code/game/machinery/porta_turret/portable_turret_construct.dm @@ -182,12 +182,12 @@ if(PTURRET_GUN_EQUIPPED) build_step = PTURRET_INTERNAL_ARMOUR_ON - var/obj/item/weapon/gun/energy/Gun = new installation(loc) - Gun.power_supply.charge = gun_charge - Gun.update_icon() + var/obj/item/weapon/gun/energy/EG = new installation(loc) + EG.power_supply.charge = gun_charge + EG.update_icon() installation = null gun_charge = 0 - user << "You remove [Gun] from the turret frame." + user << "You remove [EG] from the turret frame." if(PTURRET_SENSORS_ON) user << "You remove the prox sensor from the turret frame." diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index 2067cce19f8..4042ea46f26 100644 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -51,8 +51,8 @@ return 1 if (istype(G, /obj/item/weapon/gun/energy)) - var/obj/item/weapon/gun/energy/gun = G - if(!gun.can_charge) + var/obj/item/weapon/gun/energy/E = G + if(!E.can_charge) user << "Your gun has no external power connector." return 1 @@ -112,6 +112,7 @@ var/obj/item/weapon/gun/energy/E = charging if(E.power_supply.charge < E.power_supply.maxcharge) E.power_supply.give(E.power_supply.chargerate * recharge_coeff) + E.recharge_newshot() use_power(250 * recharge_coeff) using_power = 1 diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 1af51021b48..bd332739a17 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -762,10 +762,10 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C product_slogans = "Liberation Station: Your one-stop shop for all things second ammendment!;Be a patriot today, pick up a gun!;Quality weapons for cheap prices!;Better dead than red!" product_ads = "Float like an astronaut, sting like a bullet!;Express your second ammendment today!;Guns don't kill people, but you can!;Who needs responsibilities when you have guns?" vend_reply = "Remember the name: Liberation Station!" - products = list(/obj/item/weapon/gun/projectile/automatic/pistol/deagle/gold = 2,/obj/item/weapon/gun/projectile/automatic/pistol/deagle/camo = 2, - /obj/item/weapon/gun/projectile/automatic/pistol/m1911 = 2,/obj/item/weapon/gun/projectile/automatic/proto/unrestricted = 2, - /obj/item/weapon/gun/projectile/shotgun/automatic/combat = 2,/obj/item/weapon/gun/projectile/automatic/gyropistol = 1, - /obj/item/weapon/gun/projectile/shotgun = 2,/obj/item/weapon/gun/projectile/automatic/ar = 2) + products = list(/obj/item/weapon/gun/ballistic/automatic/pistol/deagle/gold = 2,/obj/item/weapon/gun/ballistic/automatic/pistol/deagle/camo = 2, + /obj/item/weapon/gun/ballistic/automatic/pistol/m1911 = 2,/obj/item/weapon/gun/ballistic/automatic/proto/unrestricted = 2, + /obj/item/weapon/gun/ballistic/shotgun/automatic/combat = 2,/obj/item/weapon/gun/ballistic/automatic/gyropistol = 1, + /obj/item/weapon/gun/ballistic/shotgun = 2,/obj/item/weapon/gun/ballistic/automatic/ar = 2) premium = list(/obj/item/ammo_box/magazine/smgm9mm = 2,/obj/item/ammo_box/magazine/m50 = 4,/obj/item/ammo_box/magazine/m45 = 2,/obj/item/ammo_box/magazine/m75 = 2) contraband = list(/obj/item/clothing/under/patriotsuit = 1,/obj/item/weapon/bedsheet/patriot = 3) armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index e4bd858f716..0bc28ec7983 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -23,16 +23,16 @@ lootdoubles = 0 loot = list( - /obj/item/weapon/gun/projectile/automatic/pistol = 8, - /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/gun/ballistic/automatic/pistol = 8, + /obj/item/weapon/gun/ballistic/shotgun/automatic/combat = 5, + /obj/item/weapon/gun/ballistic/revolver/mateba, + /obj/item/weapon/gun/ballistic/automatic/pistol/deagle ) /obj/effect/spawner/lootdrop/gambling name = "gambling valuables spawner" loot = list( - /obj/item/weapon/gun/projectile/revolver/russian = 5, + /obj/item/weapon/gun/ballistic/revolver/russian = 5, /obj/item/weapon/storage/box/syndie_kit/throwing_weapons = 1, /obj/item/toy/cards/deck/syndicate = 2 ) @@ -121,7 +121,7 @@ /obj/item/weapon/crowbar = 1, /obj/item/weapon/crowbar/red = 1, /obj/item/weapon/extinguisher = 11, - //obj/item/weapon/gun/projectile/revolver/russian = 1, //disabled until lootdrop is a proper world proc. + //obj/item/weapon/gun/ballistic/revolver/russian = 1, //disabled until lootdrop is a proper world proc. /obj/item/weapon/hand_labeler = 1, /obj/item/weapon/paper/crumpled = 1, /obj/item/weapon/pen = 1, diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index 52b0994af16..6817b591bd0 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -454,7 +454,7 @@ contents = list() new /obj/item/ammo_box/magazine/smgm45(src) new /obj/item/ammo_box/magazine/smgm45(src) - new /obj/item/weapon/gun/projectile/automatic/c20r(src) + new /obj/item/weapon/gun/ballistic/automatic/c20r(src) new /obj/item/weapon/suppressor/specialoffer(src) return @@ -465,7 +465,7 @@ ..() contents = list() new /obj/item/ammo_box/magazine/m12g(src) - new /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog(src) + new /obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog(src) new /obj/item/ammo_box/magazine/m12g/buckshot(src) new /obj/item/clothing/glasses/thermal/syndi(src) return @@ -478,7 +478,7 @@ contents = list() new /obj/item/clothing/shoes/magboots/syndie(src) new /obj/item/weapon/storage/firstaid/tactical(src) - new /obj/item/weapon/gun/projectile/automatic/l6_saw/toy(src) + new /obj/item/weapon/gun/ballistic/automatic/l6_saw/toy(src) new /obj/item/ammo_box/foambox/riot(src) return @@ -490,7 +490,7 @@ contents = list() new /obj/item/clothing/shoes/magboots/syndie(src) new /obj/item/weapon/storage/firstaid/tactical(src) - new /obj/item/weapon/gun/projectile/automatic/l6_saw/toy(src) + new /obj/item/weapon/gun/ballistic/automatic/l6_saw/toy(src) new /obj/item/ammo_box/foambox/riot(src) return @@ -503,7 +503,7 @@ new /obj/item/weapon/reagent_containers/spray/chemsprayer/bioterror(src) new /obj/item/weapon/storage/box/syndie_kit/chemical(src) new /obj/item/weapon/gun/syringe/syndicate(src) - new /obj/item/weapon/gun/projectile/automatic/c20r/toy(src) + new /obj/item/weapon/gun/ballistic/automatic/c20r/toy(src) new /obj/item/weapon/storage/box/syringes(src) new /obj/item/ammo_box/foambox/riot(src) new /obj/item/weapon/grenade/chem_grenade/bioterrorfoam(src) @@ -530,7 +530,7 @@ new /obj/item/clothing/under/syndicate/soviet(src) new /obj/item/weapon/watertank/operator(src) new /obj/item/clothing/suit/space/hardsuit/syndi/elite(src) - new /obj/item/weapon/gun/projectile/automatic/pistol/APS(src) + new /obj/item/weapon/gun/ballistic/automatic/pistol/APS(src) new /obj/item/ammo_box/magazine/pistolm9mm(src) new /obj/item/ammo_box/magazine/pistolm9mm(src) new /obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka(src) diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 361ebd7f360..8d50d0cb814 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -375,8 +375,8 @@ storage_slots = 3 max_w_class = 3 can_hold = list( - /obj/item/weapon/gun/projectile/automatic/pistol, - /obj/item/weapon/gun/projectile/revolver, + /obj/item/weapon/gun/ballistic/automatic/pistol, + /obj/item/weapon/gun/ballistic/revolver, /obj/item/ammo_box, ) alternate_worn_layer = UNDER_SUIT_LAYER diff --git a/code/game/objects/items/weapons/storage/briefcase.dm b/code/game/objects/items/weapons/storage/briefcase.dm index c031886f09f..422e536092e 100644 --- a/code/game/objects/items/weapons/storage/briefcase.dm +++ b/code/game/objects/items/weapons/storage/briefcase.dm @@ -49,7 +49,7 @@ /obj/item/weapon/storage/briefcase/sniperbundle/New() ..() - new /obj/item/weapon/gun/projectile/automatic/sniper_rifle/syndicate(src) + new /obj/item/weapon/gun/ballistic/automatic/sniper_rifle/syndicate(src) new /obj/item/clothing/neck/tie/red(src) new /obj/item/clothing/under/syndicate/sniper(src) new /obj/item/ammo_box/magazine/sniper_rounds/soporific(src) diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index 81228a70e0e..0417028a608 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -28,7 +28,7 @@ return if("bond") // 29 tc - new /obj/item/weapon/gun/projectile/automatic/pistol(src) + new /obj/item/weapon/gun/ballistic/automatic/pistol(src) new /obj/item/weapon/suppressor(src) new /obj/item/ammo_box/magazine/m10mm(src) new /obj/item/ammo_box/magazine/m10mm(src) @@ -48,7 +48,7 @@ return if("guns") // 28 tc now - new /obj/item/weapon/gun/projectile/revolver(src) + new /obj/item/weapon/gun/ballistic/revolver(src) new /obj/item/ammo_box/a357(src) new /obj/item/ammo_box/a357(src) new /obj/item/weapon/card/emag(src) @@ -113,7 +113,7 @@ return if("sniper") //This shit is unique so can't really balance it around tc, also no silencer because getting killed without ANY indicator on what killed you sucks - new /obj/item/weapon/gun/projectile/automatic/sniper_rifle(src) // 12 tc + new /obj/item/weapon/gun/ballistic/automatic/sniper_rifle(src) // 12 tc new /obj/item/ammo_box/magazine/sniper_rounds/penetrator(src) new /obj/item/clothing/glasses/thermal/syndi(src) new /obj/item/clothing/gloves/color/latex/nitrile(src) @@ -123,7 +123,7 @@ if("metaops") // 30 tc new /obj/item/clothing/suit/space/hardsuit/syndi(src) // 8 tc - new /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/unrestricted(src) // 8 tc + new /obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/unrestricted(src) // 8 tc new /obj/item/weapon/implanter/explosive(src) // 2 tc new /obj/item/ammo_box/magazine/m12g/buckshot(src) // 2 tc new /obj/item/ammo_box/magazine/m12g/buckshot(src) // 2 tc diff --git a/code/game/objects/structures/crates_lockers/closets/secure/misc.dm b/code/game/objects/structures/crates_lockers/closets/secure/misc.dm index 0864e8a875f..5ce6d85262c 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/misc.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/misc.dm @@ -13,11 +13,11 @@ if(prob(50)) new /obj/item/ammo_box/magazine/m50(src) new /obj/item/ammo_box/magazine/m50(src) - new /obj/item/weapon/gun/projectile/automatic/pistol/deagle(src) + new /obj/item/weapon/gun/ballistic/automatic/pistol/deagle(src) else new /obj/item/ammo_box/a357(src) new /obj/item/ammo_box/a357(src) - new /obj/item/weapon/gun/projectile/revolver/mateba(src) + new /obj/item/weapon/gun/ballistic/revolver/mateba(src) /obj/structure/closet/secure_closet/ertSec name = "security closet" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index c956f0b3852..d2143b13ba0 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -27,7 +27,7 @@ new /obj/item/clothing/gloves/color/captain(src) new /obj/item/weapon/restraints/handcuffs/cable/zipties(src) new /obj/item/weapon/storage/belt/sabre(src) - new /obj/item/weapon/gun/energy/gun(src) + new /obj/item/weapon/gun/energy/e_gun(src) new /obj/item/weapon/door_remote/captain(src) /obj/structure/closet/secure_closet/hop @@ -49,7 +49,7 @@ new /obj/item/device/assembly/flash/handheld(src) new /obj/item/clothing/glasses/sunglasses(src) new /obj/item/weapon/restraints/handcuffs/cable/zipties(src) - new /obj/item/weapon/gun/energy/gun(src) + new /obj/item/weapon/gun/energy/e_gun(src) new /obj/item/clothing/neck/petcollar(src) new /obj/item/weapon/door_remote/civillian(src) @@ -78,7 +78,7 @@ new /obj/item/weapon/storage/box/flashbangs(src) new /obj/item/weapon/shield/riot/tele(src) new /obj/item/weapon/storage/belt/security/full(src) - new /obj/item/weapon/gun/energy/gun/hos(src) + new /obj/item/weapon/gun/energy/e_gun/hos(src) new /obj/item/device/flashlight/seclite(src) new /obj/item/weapon/pinpointer(src) @@ -182,7 +182,7 @@ new /obj/item/ammo_box/c38(src) new /obj/item/ammo_box/c38(src) new /obj/item/weapon/storage/belt/holster(src) - new /obj/item/weapon/gun/projectile/revolver/detective(src) + new /obj/item/weapon/gun/ballistic/revolver/detective(src) /obj/structure/closet/secure_closet/injection name = "lethal injections" @@ -244,7 +244,7 @@ for(var/i in 1 to 3) new /obj/item/weapon/storage/box/rubbershot(src) for(var/i in 1 to 3) - new /obj/item/weapon/gun/projectile/shotgun/riot(src) + new /obj/item/weapon/gun/ballistic/shotgun/riot(src) /obj/structure/closet/secure_closet/armory3 name = "armory energy gun locker" @@ -256,7 +256,7 @@ new /obj/item/weapon/storage/box/firingpins(src) new /obj/item/weapon/gun/energy/ionrifle(src) for(var/i in 1 to 3) - new /obj/item/weapon/gun/energy/gun(src) + new /obj/item/weapon/gun/energy/e_gun(src) for(var/i in 1 to 3) new /obj/item/weapon/gun/energy/laser(src) @@ -267,7 +267,7 @@ /obj/structure/closet/secure_closet/tac/New() ..() - new /obj/item/weapon/gun/projectile/automatic/wt550(src) + new /obj/item/weapon/gun/ballistic/automatic/wt550(src) new /obj/item/clothing/head/helmet/alt(src) new /obj/item/clothing/mask/gas/sechailer(src) new /obj/item/clothing/suit/armor/bulletproof(src) diff --git a/code/game/objects/structures/guncase.dm b/code/game/objects/structures/guncase.dm index 4ceb1be8a50..c2511923ef3 100644 --- a/code/game/objects/structures/guncase.dm +++ b/code/game/objects/structures/guncase.dm @@ -98,11 +98,11 @@ name = "shotgun locker" desc = "A locker that holds shotguns." case_type = "shotgun" - gun_category = /obj/item/weapon/gun/projectile/shotgun + gun_category = /obj/item/weapon/gun/ballistic/shotgun /obj/structure/guncase/ecase name = "energy gun locker" desc = "A locker that holds energy guns." icon_state = "ecase" case_type = "egun" - gun_category = /obj/item/weapon/gun/energy/gun + gun_category = /obj/item/weapon/gun/energy/e_gun diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm index 5faf8f9497d..8bbe319750f 100644 --- a/code/modules/awaymissions/capture_the_flag.dm +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -330,19 +330,19 @@ CTF.ctf_gear = initial(ctf_gear) CTF.respawn_cooldown = DEFAULT_RESPAWN -/obj/item/weapon/gun/projectile/automatic/pistol/deagle/ctf +/obj/item/weapon/gun/ballistic/automatic/pistol/deagle/ctf desc = "This looks like it could really hurt in melee." force = 75 -/obj/item/weapon/gun/projectile/automatic/pistol/deagle/ctf/dropped() +/obj/item/weapon/gun/ballistic/automatic/pistol/deagle/ctf/dropped() . = ..() addtimer(src, "floor_vanish", 1) -/obj/item/weapon/gun/projectile/automatic/pistol/deagle/ctf/proc/floor_vanish() +/obj/item/weapon/gun/ballistic/automatic/pistol/deagle/ctf/proc/floor_vanish() if(isturf(loc)) qdel(src) -/obj/item/weapon/gun/projectile/automatic/laser/ctf +/obj/item/weapon/gun/ballistic/automatic/laser/ctf mag_type = /obj/item/ammo_box/magazine/recharge/ctf desc = "This looks like it could really hurt in melee." force = 50 @@ -368,7 +368,7 @@ // RED TEAM GUNS -/obj/item/weapon/gun/projectile/automatic/laser/ctf/red +/obj/item/weapon/gun/ballistic/automatic/laser/ctf/red mag_type = /obj/item/ammo_box/magazine/recharge/ctf/red /obj/item/ammo_box/magazine/recharge/ctf/red @@ -382,7 +382,7 @@ // BLUE TEAM GUNS -/obj/item/weapon/gun/projectile/automatic/laser/ctf/blue +/obj/item/weapon/gun/ballistic/automatic/laser/ctf/blue mag_type = /obj/item/ammo_box/magazine/recharge/ctf/blue /obj/item/ammo_box/magazine/recharge/ctf/blue @@ -402,10 +402,10 @@ shoes = /obj/item/clothing/shoes/combat gloves = /obj/item/clothing/gloves/combat id = /obj/item/weapon/card/id/syndicate - belt = /obj/item/weapon/gun/projectile/automatic/pistol/deagle/ctf + belt = /obj/item/weapon/gun/ballistic/automatic/pistol/deagle/ctf l_pocket = /obj/item/ammo_box/magazine/recharge/ctf r_pocket = /obj/item/ammo_box/magazine/recharge/ctf - r_hand = /obj/item/weapon/gun/projectile/automatic/laser/ctf + r_hand = /obj/item/weapon/gun/ballistic/automatic/laser/ctf /datum/outfit/ctf/post_equip(mob/living/carbon/human/H, visualsOnly=FALSE) if(visualsOnly) @@ -432,7 +432,7 @@ /datum/outfit/ctf/red ears = /obj/item/device/radio/headset/syndicate/alt suit = /obj/item/clothing/suit/space/hardsuit/shielded/ctf/red - r_hand = /obj/item/weapon/gun/projectile/automatic/laser/ctf/red + r_hand = /obj/item/weapon/gun/ballistic/automatic/laser/ctf/red l_pocket = /obj/item/ammo_box/magazine/recharge/ctf/red r_pocket = /obj/item/ammo_box/magazine/recharge/ctf/red @@ -443,7 +443,7 @@ /datum/outfit/ctf/blue ears = /obj/item/device/radio/headset/headset_cent/commander suit = /obj/item/clothing/suit/space/hardsuit/shielded/ctf/blue - r_hand = /obj/item/weapon/gun/projectile/automatic/laser/ctf/blue + r_hand = /obj/item/weapon/gun/ballistic/automatic/laser/ctf/blue l_pocket = /obj/item/ammo_box/magazine/recharge/ctf/blue r_pocket = /obj/item/ammo_box/magazine/recharge/ctf/blue diff --git a/code/modules/awaymissions/mission_code/Academy.dm b/code/modules/awaymissions/mission_code/Academy.dm index 08815bda3fd..7266b4a0c6e 100644 --- a/code/modules/awaymissions/mission_code/Academy.dm +++ b/code/modules/awaymissions/mission_code/Academy.dm @@ -213,7 +213,7 @@ new /obj/item/weapon/coin/gold(M) if(14) //Free Gun - new /obj/item/weapon/gun/projectile/revolver/mateba(get_turf(src)) + new /obj/item/weapon/gun/ballistic/revolver/mateba(get_turf(src)) if(15) //Random One-use spellbook new /obj/item/weapon/spellbook/oneuse/random(get_turf(src)) diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm index 6314d18de4f..f88f05e7e79 100644 --- a/code/modules/awaymissions/mission_code/snowdin.dm +++ b/code/modules/awaymissions/mission_code/snowdin.dm @@ -130,7 +130,7 @@ obj/item/weapon/paper/crumpled/snowdin/shovel /obj/item/organ/brain/alien = 17, /obj/item/weapon/twohanded/dualsaber = 15, /obj/item/organ/heart/demon = 7, - /obj/item/weapon/gun/projectile/automatic/c20r/unrestricted = 16, + /obj/item/weapon/gun/ballistic/automatic/c20r/unrestricted = 16, /obj/item/weapon/gun/magic/wand/resurrection/inert = 15, /obj/item/weapon/gun/magic/wand/resurrection = 10, /obj/item/device/radio/uplink/old = 2, @@ -189,7 +189,7 @@ obj/effect/mob_spawn/human/syndicatesoldier/coldres uniform = /obj/item/clothing/under/syndicate/coldres shoes = /obj/item/clothing/shoes/combat/coldres radio = /obj/item/device/radio/headset/syndicate/alt - pocket1 = /obj/item/weapon/gun/projectile/automatic/pistol + pocket1 = /obj/item/weapon/gun/ballistic/automatic/pistol pocket2 = /obj/item/weapon/card/id/syndicate has_id = 0 diff --git a/code/modules/awaymissions/mission_code/stationCollision.dm b/code/modules/awaymissions/mission_code/stationCollision.dm index e89761e92bf..5fb3e59683b 100644 --- a/code/modules/awaymissions/mission_code/stationCollision.dm +++ b/code/modules/awaymissions/mission_code/stationCollision.dm @@ -44,18 +44,18 @@ obj/item/weapon/gun/energy/laser/retro/sc_retro clumsy_check = 0 //No sense in having a harmless gun blow up in the clowns face //Syndicate sub-machine guns. -/obj/item/weapon/gun/projectile/automatic/c20r/sc_c20r +/obj/item/weapon/gun/ballistic/automatic/c20r/sc_c20r -/obj/item/weapon/gun/projectile/automatic/c20r/sc_c20r/New() +/obj/item/weapon/gun/ballistic/automatic/c20r/sc_c20r/New() ..() for(var/ammo in magazine.stored_ammo) if(prob(95)) //95% chance magazine.stored_ammo -= ammo //Barman's shotgun -/obj/item/weapon/gun/projectile/shotgun/sc_pump +/obj/item/weapon/gun/ballistic/shotgun/sc_pump -/obj/item/weapon/gun/projectile/shotgun/sc_pump/New() +/obj/item/weapon/gun/ballistic/shotgun/sc_pump/New() ..() for(var/ammo in magazine.stored_ammo) if(prob(95)) //95% chance diff --git a/code/modules/cargo/exports/weapons.dm b/code/modules/cargo/exports/weapons.dm index 33f25238efc..73baec09fca 100644 --- a/code/modules/cargo/exports/weapons.dm +++ b/code/modules/cargo/exports/weapons.dm @@ -19,7 +19,7 @@ /datum/export/weapon/taser cost = 250 unit_name = "advanced taser" - export_types = list(/obj/item/weapon/gun/energy/gun/advtaser) + export_types = list(/obj/item/weapon/gun/energy/e_gun/advtaser) /datum/export/weapon/laser cost = 250 @@ -34,18 +34,18 @@ /datum/export/weapon/energy_gun cost = 900 unit_name = "energy gun" - export_types = list(/obj/item/weapon/gun/energy/gun) + export_types = list(/obj/item/weapon/gun/energy/e_gun) /datum/export/weapon/wt550 cost = 1400 unit_name = "WT-550 automatic rifle" - export_types = list(/obj/item/weapon/gun/projectile/automatic/wt550) + export_types = list(/obj/item/weapon/gun/ballistic/automatic/wt550) /datum/export/weapon/shotgun cost = 350 unit_name = "combat shotgun" - export_types = list(/obj/item/weapon/gun/projectile/shotgun/automatic/combat) + export_types = list(/obj/item/weapon/gun/ballistic/shotgun/automatic/combat) /datum/export/weapon/flashbang diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index f6e09e0d177..d643ff43c16 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -245,9 +245,9 @@ datum/supply_pack /datum/supply_pack/security/taser name = "Taser Crate" cost = 1500 - contains = list(/obj/item/weapon/gun/energy/gun/advtaser, - /obj/item/weapon/gun/energy/gun/advtaser, - /obj/item/weapon/gun/energy/gun/advtaser) + contains = list(/obj/item/weapon/gun/energy/e_gun/advtaser, + /obj/item/weapon/gun/energy/e_gun/advtaser, + /obj/item/weapon/gun/energy/e_gun/advtaser) crate_name = "taser crate" /datum/supply_pack/security/disabler @@ -339,9 +339,9 @@ datum/supply_pack /datum/supply_pack/security/armory/ballistic name = "Combat Shotguns Crate" cost = 2000 - 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, + contains = list(/obj/item/weapon/gun/ballistic/shotgun/automatic/combat, + /obj/item/weapon/gun/ballistic/shotgun/automatic/combat, + /obj/item/weapon/gun/ballistic/shotgun/automatic/combat, /obj/item/weapon/storage/belt/bandolier, /obj/item/weapon/storage/belt/bandolier, /obj/item/weapon/storage/belt/bandolier) @@ -350,8 +350,8 @@ datum/supply_pack /datum/supply_pack/security/armory/energy name = "Energy Guns Crate" cost = 2500 - contains = list(/obj/item/weapon/gun/energy/gun, - /obj/item/weapon/gun/energy/gun) + contains = list(/obj/item/weapon/gun/energy/e_gun, + /obj/item/weapon/gun/energy/e_gun) crate_name = "energy gun crate" crate_type = /obj/structure/closet/crate/secure/plasma @@ -373,8 +373,8 @@ datum/supply_pack /datum/supply_pack/security/armory/wt550 name = "WT-550 Auto Rifle Crate" cost = 3500 - contains = list(/obj/item/weapon/gun/projectile/automatic/wt550, - /obj/item/weapon/gun/projectile/automatic/wt550) + contains = list(/obj/item/weapon/gun/ballistic/automatic/wt550, + /obj/item/weapon/gun/ballistic/automatic/wt550) crate_name = "auto rifle crate" /datum/supply_pack/security/armory/wt550ammo @@ -1565,7 +1565,7 @@ datum/supply_pack /obj/item/toy/carpplushie, /obj/item/weapon/coin/antagtoken, /obj/item/stack/tile/fakespace/loaded, - /obj/item/weapon/gun/projectile/shotgun/toy/crossbow, + /obj/item/weapon/gun/ballistic/shotgun/toy/crossbow, /obj/item/toy/redbutton) crate_name = "toy crate" @@ -1611,22 +1611,22 @@ datum/supply_pack /datum/supply_pack/misc/foamforce name = "Foam Force Crate" cost = 1000 - contains = list(/obj/item/weapon/gun/projectile/shotgun/toy, - /obj/item/weapon/gun/projectile/shotgun/toy, - /obj/item/weapon/gun/projectile/shotgun/toy, - /obj/item/weapon/gun/projectile/shotgun/toy, - /obj/item/weapon/gun/projectile/shotgun/toy, - /obj/item/weapon/gun/projectile/shotgun/toy, - /obj/item/weapon/gun/projectile/shotgun/toy, - /obj/item/weapon/gun/projectile/shotgun/toy) + contains = list(/obj/item/weapon/gun/ballistic/shotgun/toy, + /obj/item/weapon/gun/ballistic/shotgun/toy, + /obj/item/weapon/gun/ballistic/shotgun/toy, + /obj/item/weapon/gun/ballistic/shotgun/toy, + /obj/item/weapon/gun/ballistic/shotgun/toy, + /obj/item/weapon/gun/ballistic/shotgun/toy, + /obj/item/weapon/gun/ballistic/shotgun/toy, + /obj/item/weapon/gun/ballistic/shotgun/toy) crate_name = "foam force crate" /datum/supply_pack/misc/foamforce/bonus name = "Foam Force Pistols Crate" contraband = TRUE cost = 4000 - contains = list(/obj/item/weapon/gun/projectile/automatic/toy/pistol, - /obj/item/weapon/gun/projectile/automatic/toy/pistol, + contains = list(/obj/item/weapon/gun/ballistic/automatic/toy/pistol, + /obj/item/weapon/gun/ballistic/automatic/toy/pistol, /obj/item/ammo_box/magazine/toy/pistol, /obj/item/ammo_box/magazine/toy/pistol) crate_name = "foam force crate" diff --git a/code/modules/clothing/outfits/ert.dm b/code/modules/clothing/outfits/ert.dm index e3a9f4f7dee..3e82a2e02b0 100644 --- a/code/modules/clothing/outfits/ert.dm +++ b/code/modules/clothing/outfits/ert.dm @@ -32,7 +32,7 @@ backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\ /obj/item/weapon/melee/baton/loaded=1,\ /obj/item/clothing/mask/gas/sechailer=1,\ - /obj/item/weapon/gun/energy/gun=1) + /obj/item/weapon/gun/energy/e_gun=1) l_pocket = /obj/item/weapon/switchblade /datum/outfit/ert/commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -65,9 +65,9 @@ backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\ /obj/item/weapon/storage/box/handcuffs=1,\ /obj/item/clothing/mask/gas/sechailer=1,\ - /obj/item/weapon/gun/energy/gun=1,\ + /obj/item/weapon/gun/energy/e_gun=1,\ /obj/item/weapon/melee/baton/loaded=1,\ - /obj/item/weapon/gun/energy/gun/advtaser=1) + /obj/item/weapon/gun/energy/e_gun/advtaser=1) /datum/outfit/ert/security/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() @@ -101,7 +101,7 @@ backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\ /obj/item/weapon/melee/baton/loaded=1,\ /obj/item/clothing/mask/gas/sechailer=1,\ - /obj/item/weapon/gun/energy/gun=1,\ + /obj/item/weapon/gun/energy/e_gun=1,\ /obj/item/weapon/reagent_containers/hypospray/combat=1,\ /obj/item/weapon/gun/medbeam=1) @@ -138,7 +138,7 @@ backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\ /obj/item/weapon/melee/baton/loaded=1,\ /obj/item/clothing/mask/gas/sechailer=1,\ - /obj/item/weapon/gun/energy/gun=1,\ + /obj/item/weapon/gun/energy/e_gun=1,\ /obj/item/weapon/rcd/loaded=1) /datum/outfit/ert/engineer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -169,7 +169,7 @@ gloves = /obj/item/clothing/gloves/color/black ears = /obj/item/device/radio/headset/headset_cent glasses = /obj/item/clothing/glasses/sunglasses - belt = /obj/item/weapon/gun/energy/gun + belt = /obj/item/weapon/gun/energy/e_gun l_pocket = /obj/item/weapon/pen back = /obj/item/weapon/storage/backpack/satchel r_pocket = /obj/item/device/pda/heads diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index 09dac1c292a..b807656a22e 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -31,7 +31,7 @@ suit = /obj/item/clothing/suit/det_suit glasses = /obj/item/clothing/glasses/thermal/monocle head = /obj/item/clothing/head/det_hat - r_hand = /obj/item/weapon/gun/projectile + r_hand = /obj/item/weapon/gun/ballistic l_hand = null r_pocket = /obj/item/ammo_box/c10mm @@ -166,7 +166,7 @@ for(var/i = 3 to 0 step -1) sec_briefcase.handle_item_insertion(new /obj/item/stack/spacecash/c1000,1) sec_briefcase.handle_item_insertion(new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow,1) - sec_briefcase.handle_item_insertion(new /obj/item/weapon/gun/projectile/revolver/mateba,1) + sec_briefcase.handle_item_insertion(new /obj/item/weapon/gun/ballistic/revolver/mateba,1) sec_briefcase.handle_item_insertion(new /obj/item/ammo_box/a357,1) sec_briefcase.handle_item_insertion(new /obj/item/weapon/grenade/plastic/x4,1) @@ -192,7 +192,7 @@ glasses = /obj/item/clothing/glasses/eyepatch mask = /obj/item/clothing/mask/cigarette/cigar/cohiba head = /obj/item/clothing/head/centhat - belt = /obj/item/weapon/gun/projectile/revolver/mateba + belt = /obj/item/weapon/gun/ballistic/revolver/mateba r_pocket = /obj/item/weapon/lighter l_pocket = /obj/item/ammo_box/a357 back = /obj/item/weapon/storage/backpack/satchel/leather @@ -280,7 +280,7 @@ glasses = /obj/item/clothing/glasses/thermal/eyepatch suit = /obj/item/clothing/suit/pirate/captain back = /obj/item/weapon/storage/backpack/satchel/leather - belt = /obj/item/weapon/gun/projectile/revolver/mateba + belt = /obj/item/weapon/gun/ballistic/revolver/mateba id = /obj/item/weapon/card/id @@ -305,7 +305,7 @@ gloves = /obj/item/clothing/gloves/color/black ears = /obj/item/device/radio/headset glasses = /obj/item/clothing/glasses/sunglasses - r_hand = /obj/item/weapon/gun/projectile/automatic/tommygun + r_hand = /obj/item/weapon/gun/ballistic/automatic/tommygun id = /obj/item/weapon/card/id /datum/outfit/mobster/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -338,7 +338,7 @@ l_pocket = /obj/item/weapon/melee/energy/sword/saber r_pocket = /obj/item/weapon/shield/energy suit_store = /obj/item/weapon/tank/internals/emergency_oxygen - belt = /obj/item/weapon/gun/projectile/revolver/mateba + belt = /obj/item/weapon/gun/ballistic/revolver/mateba r_hand = /obj/item/weapon/gun/energy/pulse/loyalpin id = /obj/item/weapon/card/id ears = /obj/item/device/radio/headset/headset_cent/alt diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 2acc7cc9ccb..9a7ea4db617 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -477,7 +477,7 @@ name = "security hardsuit" desc = "A special suit that protects against hazardous, low pressure environments. Has an additional layer of armor." item_state = "sec_hardsuit" - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50, fire = 75, acid = 75) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security @@ -514,7 +514,7 @@ desc = "A bulky, heavy-duty piece of exclusive Nanotrasen hardsuit armor. YOU are in charge!" icon_state = "caparmor" item_state = "capspacesuit" - allowed = list(/obj/item/weapon/tank/internals, /obj/item/device/flashlight,/obj/item/weapon/gun/energy, /obj/item/weapon/gun/projectile, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) + allowed = list(/obj/item/weapon/tank/internals, /obj/item/device/flashlight,/obj/item/weapon/gun/energy, /obj/item/weapon/gun/ballistic, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) armor = list(melee = 40, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50, fire = 100, acid = 100) resistance_flags = FIRE_PROOF | ACID_PROOF helmettype = /obj/item/clothing/head/helmet/space/hardsuit/captain diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index afea89290f2..e1c21872f17 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -258,7 +258,7 @@ Contains: item_state = "space_suit_syndicate" slowdown = 0 //Space carp magic, never stop believing armor = list(melee = -20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 75, fire = 60, acid = 75) //As whimpy whimpy whoo - allowed = list(/obj/item/weapon/tank/internals, /obj/item/weapon/gun/projectile/automatic/speargun) //I'm giving you a hint here + allowed = list(/obj/item/weapon/tank/internals, /obj/item/weapon/gun/ballistic/automatic/speargun) //I'm giving you a hint here helmettype = /obj/item/clothing/head/helmet/space/hardsuit/carp diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 13220235c0f..9fff4051720 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -1,5 +1,5 @@ /obj/item/clothing/suit/armor - allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/weapon/kitchen/knife/combat,/obj/item/weapon/tank/internals/emergency_oxygen) + allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/weapon/kitchen/knife/combat,/obj/item/weapon/tank/internals/emergency_oxygen) body_parts_covered = CHEST cold_protection = CHEST|GROIN min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT @@ -143,7 +143,7 @@ name = "armor" desc = "An armored vest with a detective's badge on it." icon_state = "detective-armor" - allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton/telescopic) + allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton/telescopic) resistance_flags = FLAMMABLE dog_fashion = null diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index 057752822f3..0cf15c7a6e4 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -26,7 +26,7 @@ name = "head of security's cloak" desc = "Worn by Securistan, ruling the station with an iron fist. It's slightly armored." icon_state = "hoscloak" - allowed = list(/obj/item/weapon/gun/energy/gun/hos) + allowed = list(/obj/item/weapon/gun/energy/e_gun/hos) armor = list(melee = 30, bullet = 30, laser = 10, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 0, acid = 60) /obj/item/clothing/suit/cloak/qm diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index ec4b145f18b..ae184e0dd94 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -81,7 +81,7 @@ item_state = "det_suit" blood_overlay_type = "coat" body_parts_covered = CHEST|GROIN|LEGS|ARMS - allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton/telescopic) + allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton/telescopic) armor = list(melee = 25, bullet = 10, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 45) cold_protection = CHEST|GROIN|LEGS|ARMS heat_protection = CHEST|GROIN|LEGS|ARMS diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 43ccf1c59ae..d7753e751c5 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -134,7 +134,7 @@ item_state = "owl_wings" togglename = "wings" body_parts_covered = ARMS|CHEST - allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic) + allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic) actions_types = list(/datum/action/item_action/toggle_wings) /obj/item/clothing/suit/toggle/owlwings/griffinwings @@ -231,7 +231,7 @@ body_parts_covered = CHEST|GROIN|ARMS cold_protection = CHEST|GROIN|ARMS min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT //Space carp like space, so you should too - allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/weapon/gun/projectile/automatic/speargun) + allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/weapon/gun/ballistic/automatic/speargun) hooded = 1 hoodtype = /obj/item/clothing/head/carp_hood @@ -363,7 +363,7 @@ item_state = "hostrench" resistance_flags = 0 max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/weapon/gun/projectile/automatic/pistol,/obj/item/weapon/gun/projectile/revolver,/obj/item/weapon/gun/projectile/revolver/detective,/obj/item/device/radio) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/weapon/gun/ballistic/automatic/pistol,/obj/item/weapon/gun/ballistic/revolver,/obj/item/weapon/gun/ballistic/revolver/detective,/obj/item/device/radio) /obj/item/clothing/suit/jacket/leather/overcoat name = "leather overcoat" @@ -393,7 +393,7 @@ desc = "A canvas jacket styled after classical American military garb. Feels sturdy, yet comfortable." icon_state = "militaryjacket" item_state = "militaryjacket" - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/weapon/gun/projectile/automatic/pistol,/obj/item/weapon/gun/projectile/revolver,/obj/item/weapon/gun/projectile/revolver/detective,/obj/item/device/radio) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/weapon/gun/ballistic/automatic/pistol,/obj/item/weapon/gun/ballistic/revolver,/obj/item/weapon/gun/ballistic/revolver/detective,/obj/item/device/radio) /obj/item/clothing/suit/jacket/letterman name = "letterman jacket" @@ -457,7 +457,7 @@ name = "captain's winter coat" icon_state = "coatcaptain" armor = list(melee = 25, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 0, acid = 50) - allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic) + allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic) hoodtype = /obj/item/clothing/head/winterhood/captain /obj/item/clothing/head/winterhood/captain @@ -467,7 +467,7 @@ name = "security winter coat" icon_state = "coatsecurity" armor = list(melee = 25, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 0, acid = 45) - allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic) + allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic) hoodtype = /obj/item/clothing/head/winterhood/security /obj/item/clothing/head/winterhood/security diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index 0de21d6d3f0..84f94fcba65 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -101,7 +101,7 @@ /obj/item/bodypart/r_leg/robot = 1, /obj/item/stack/sheet/metal = 5, /obj/item/stack/cable_coil = 5, - /obj/item/weapon/gun/energy/gun/advtaser = 1, + /obj/item/weapon/gun/energy/e_gun/advtaser = 1, /obj/item/weapon/stock_parts/cell = 1, /obj/item/device/assembly/prox_sensor = 1, /obj/item/bodypart/r_arm/robot = 1) @@ -245,7 +245,7 @@ /datum/crafting_recipe/ishotgun name = "Improvised Shotgun" - result = /obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised + result = /obj/item/weapon/gun/ballistic/revolver/doublebarrel/improvised reqs = list(/obj/item/weaponcrafting/reciever = 1, /obj/item/pipe = 1, /obj/item/weaponcrafting/stock = 1, diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index cdcb8983ef1..bdce37094ca 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -464,7 +464,7 @@ Gunshots/explosions/opening doors/less rare audio (done) target << I QDEL_IN(O, 300) -var/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/projectile, /obj/item/ammo_box/a357,\ +var/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/ballistic, /obj/item/ammo_box/a357,\ /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow, /obj/item/weapon/melee/energy/sword/saber,\ /obj/item/weapon/storage/box/syndicate, /obj/item/weapon/storage/box/emps,\ /obj/item/weapon/cartridge/syndicate, /obj/item/clothing/under/chameleon,\ diff --git a/code/modules/holodeck/items.dm b/code/modules/holodeck/items.dm index 69abe11b224..66110cd77f2 100644 --- a/code/modules/holodeck/items.dm +++ b/code/modules/holodeck/items.dm @@ -216,9 +216,4 @@ name = "paper - Starfleet Academy Diploma" info = {"

Starfleet Academy


Official Diploma


"} -/obj/item/weapon/gun/energy/gun/mini/practice_phaser - name = "practice phaser" - desc = "A modified version of the basic phaser gun, this one fires less concentrated energy bolts designed for target practice." - ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser/practice) - icon_state = "decloner" diff --git a/code/modules/hydroponics/grown/misc.dm b/code/modules/hydroponics/grown/misc.dm index 508880f5c6e..9bedb5a97a8 100644 --- a/code/modules/hydroponics/grown/misc.dm +++ b/code/modules/hydroponics/grown/misc.dm @@ -92,7 +92,7 @@ desc = "It smells like burning." icon_state = "gatfruit" origin_tech = "combat=6" - trash = /obj/item/weapon/gun/projectile/revolver + trash = /obj/item/weapon/gun/ballistic/revolver bitesize_mod = 2 //Cherry Bombs diff --git a/code/modules/jobs/job_types/security.dm b/code/modules/jobs/job_types/security.dm index 05a892a58a5..4d39b864a54 100644 --- a/code/modules/jobs/job_types/security.dm +++ b/code/modules/jobs/job_types/security.dm @@ -43,7 +43,7 @@ Head of Security gloves = /obj/item/clothing/gloves/color/black/hos head = /obj/item/clothing/head/HoS/beret glasses = /obj/item/clothing/glasses/hud/security/sunglasses - suit_store = /obj/item/weapon/gun/energy/gun + suit_store = /obj/item/weapon/gun/energy/e_gun r_pocket = /obj/item/device/assembly/flash/handheld l_pocket = /obj/item/weapon/restraints/handcuffs backpack_contents = list(/obj/item/weapon/melee/baton/loaded=1) @@ -101,7 +101,7 @@ Warden glasses = /obj/item/clothing/glasses/hud/security/sunglasses r_pocket = /obj/item/device/assembly/flash/handheld l_pocket = /obj/item/weapon/restraints/handcuffs - suit_store = /obj/item/weapon/gun/energy/gun/advtaser + suit_store = /obj/item/weapon/gun/energy/e_gun/advtaser backpack_contents = list(/obj/item/weapon/melee/baton/loaded=1) backpack = /obj/item/weapon/storage/backpack/security @@ -207,7 +207,7 @@ var/list/sec_departments = list("engineering", "supply", "medical", "science") shoes = /obj/item/clothing/shoes/jackboots l_pocket = /obj/item/weapon/restraints/handcuffs r_pocket = /obj/item/device/assembly/flash/handheld - suit_store = /obj/item/weapon/gun/energy/gun/advtaser + suit_store = /obj/item/weapon/gun/energy/e_gun/advtaser backpack_contents = list(/obj/item/weapon/melee/baton/loaded=1) backpack = /obj/item/weapon/storage/backpack/security diff --git a/code/modules/mining/abandoned_crates.dm b/code/modules/mining/abandoned_crates.dm index 2897d6849e3..9d0b804cd38 100644 --- a/code/modules/mining/abandoned_crates.dm +++ b/code/modules/mining/abandoned_crates.dm @@ -142,7 +142,7 @@ new /obj/item/weapon/hand_tele(src) if(97) new /obj/item/clothing/mask/balaclava - new /obj/item/weapon/gun/projectile/automatic/pistol(src) + new /obj/item/weapon/gun/ballistic/automatic/pistol(src) new /obj/item/ammo_box/magazine/m10mm(src) if(98) new /obj/item/weapon/katana/cursed(src) diff --git a/code/modules/mob/interactive.dm b/code/modules/mob/interactive.dm index 88460087f17..3f72bef2d97 100644 --- a/code/modules/mob/interactive.dm +++ b/code/modules/mob/interactive.dm @@ -1547,8 +1547,8 @@ if(istype(main_hand,/obj/item/weapon/gun)) var/obj/item/weapon/gun/G = main_hand if(G.can_trigger_gun(src)) - if(istype(main_hand,/obj/item/weapon/gun/projectile)) - var/obj/item/weapon/gun/projectile/P = main_hand + if(istype(main_hand,/obj/item/weapon/gun/ballistic)) + var/obj/item/weapon/gun/ballistic/P = main_hand if(!P.chambered) P.chamber_round() P.update_icon() diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index a8669a4f25f..3cf308b180d 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -94,10 +94,14 @@ F.times_used = 0 F.crit_fail = 0 F.update_icon() - if(istype(I, /obj/item/weapon/melee/baton)) + else if(istype(I, /obj/item/weapon/melee/baton)) var/obj/item/weapon/melee/baton/B = I if(B.bcell) B.bcell.charge = B.bcell.maxcharge + else if(istype(I, /obj/item/weapon/gun/energy)) + var/obj/item/weapon/gun/energy/EG = I + if(!EG.chambered) + EG.recharge_newshot() //try to reload a new shot. R.toner = R.tonermax @@ -222,7 +226,7 @@ /obj/item/weapon/robot_module/security/respawn_consumable(mob/living/silicon/robot/R, coeff = 1) ..() - var/obj/item/weapon/gun/energy/gun/advtaser/cyborg/T = locate(/obj/item/weapon/gun/energy/gun/advtaser/cyborg) in get_usable_modules() + var/obj/item/weapon/gun/energy/e_gun/advtaser/cyborg/T = locate(/obj/item/weapon/gun/energy/e_gun/advtaser/cyborg) in get_usable_modules() if(T) if(T.power_supply.charge < T.power_supply.maxcharge) var/obj/item/ammo_casing/energy/S = T.ammo_type[T.select] @@ -334,7 +338,7 @@ ..() modules += new /obj/item/weapon/melee/energy/sword/cyborg(src) modules += new /obj/item/weapon/gun/energy/printer(src) - modules += new /obj/item/weapon/gun/projectile/revolver/grenadelauncher/cyborg(src) + modules += new /obj/item/weapon/gun/ballistic/revolver/grenadelauncher/cyborg(src) modules += new /obj/item/weapon/card/emag(src) modules += new /obj/item/weapon/crowbar/cyborg(src) modules += new /obj/item/weapon/pinpointer/syndicate/cyborg(src) diff --git a/code/modules/mob/living/simple_animal/bot/construction.dm b/code/modules/mob/living/simple_animal/bot/construction.dm index 4e12d7c2fab..e929a7040e2 100644 --- a/code/modules/mob/living/simple_animal/bot/construction.dm +++ b/code/modules/mob/living/simple_animal/bot/construction.dm @@ -158,7 +158,7 @@ return newname = "redtag ED-209 assembly" if("") - if(!istype(W, /obj/item/weapon/gun/energy/gun/advtaser)) + if(!istype(W, /obj/item/weapon/gun/energy/e_gun/advtaser)) return newname = "taser ED-209 assembly" else diff --git a/code/modules/mob/living/simple_animal/bot/ed209bot.dm b/code/modules/mob/living/simple_animal/bot/ed209bot.dm index 7d38d0c7792..2ae182b7c06 100644 --- a/code/modules/mob/living/simple_animal/bot/ed209bot.dm +++ b/code/modules/mob/living/simple_animal/bot/ed209bot.dm @@ -363,7 +363,7 @@ Auto Patrol[]"}, new /obj/item/device/assembly/prox_sensor(Tsec) if(!lasercolor) - var/obj/item/weapon/gun/energy/gun/advtaser/G = new /obj/item/weapon/gun/energy/gun/advtaser(Tsec) + var/obj/item/weapon/gun/energy/e_gun/advtaser/G = new /obj/item/weapon/gun/energy/e_gun/advtaser(Tsec) G.power_supply.charge = 0 G.update_icon() else if(lasercolor == "b") diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 2f9edf13a14..76e12b72840 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -331,7 +331,7 @@ if(casingtype) var/obj/item/ammo_casing/casing = new casingtype(startloc) playsound(src, projectilesound, 100, 1) - casing.fire(targeted_atom, src, zone_override = ran_zone()) + casing.fire_casing(targeted_atom, src, null, null, null, zone_override = ran_zone()) else if(projectiletype) var/obj/item/projectile/P = new projectiletype(startloc) playsound(src, projectilesound, 100, 1) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index c9a7c9d61bf..1409234b840 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -481,7 +481,7 @@ Difficulty: Very Hard NewTerrainTables = /obj/structure/table/wood NewFlora = list(/obj/structure/flora/ausbushes/sparsegrass, /obj/structure/flora/ausbushes/fernybush, /obj/structure/flora/ausbushes/leafybush, /obj/structure/flora/ausbushes/grassybush, /obj/structure/flora/ausbushes/sunnybush, /obj/structure/flora/tree/palm, /mob/living/carbon/monkey, - /obj/item/weapon/gun/projectile/bow, /obj/item/weapon/storage/backpack/quiver/full) + /obj/item/weapon/gun/ballistic/bow, /obj/item/weapon/storage/backpack/quiver/full) florachance = 20 if("ayy lmao") //Beneficial, turns stuff into alien alloy which is useful to cargo and research. Also repairs atmos. NewTerrainFloors = /turf/open/floor/plating/abductor diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm index e2d3afd545a..e2e3e90c384 100644 --- a/code/modules/mob/living/simple_animal/hostile/mimic.dm +++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm @@ -210,7 +210,7 @@ var/global/list/protected_objects = list(/obj/structure/table, /obj/structure/ca /mob/living/simple_animal/hostile/mimic/copy/ranged var/obj/item/weapon/gun/TrueGun = null var/obj/item/weapon/gun/magic/Zapstick - var/obj/item/weapon/gun/projectile/Pewgun + var/obj/item/weapon/gun/ballistic/Pewgun var/obj/item/weapon/gun/energy/Zapgun /mob/living/simple_animal/hostile/mimic/copy/ranged/CopyObject(obj/O, mob/living/creator, destroy_original = 0) @@ -231,7 +231,7 @@ var/global/list/protected_objects = list(/obj/structure/table, /obj/structure/ca Zapstick = G var/obj/item/ammo_casing/magic/M = Zapstick.ammo_type projectiletype = initial(M.projectile_type) - if(istype(G, /obj/item/weapon/gun/projectile)) + if(istype(G, /obj/item/weapon/gun/ballistic)) Pewgun = G var/obj/item/ammo_box/magazine/M = Pewgun.mag_type casingtype = initial(M.ammo_type) diff --git a/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm b/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm index 326359bcc15..e935422f151 100644 --- a/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm +++ b/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm @@ -44,7 +44,7 @@ minimum_distance = 5 casingtype = /obj/item/ammo_casing/c45 projectilesound = 'sound/weapons/Gunshot.ogg' - loot = list(/obj/item/weapon/gun/projectile/automatic/pistol/m1911, + loot = list(/obj/item/weapon/gun/ballistic/automatic/pistol/m1911, /obj/effect/mob_spawn/human/corpse/nanotrasensoldier) @@ -54,5 +54,5 @@ rapid = 1 casingtype = /obj/item/ammo_casing/c46x30mm projectilesound = 'sound/weapons/Gunshot_smg.ogg' - loot = list(/obj/item/weapon/gun/projectile/automatic/wt550, + loot = list(/obj/item/weapon/gun/ballistic/automatic/wt550, /obj/effect/mob_spawn/human/corpse/nanotrasensoldier) \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/russian.dm b/code/modules/mob/living/simple_animal/hostile/russian.dm index 088dbf2b0ef..524c7317e95 100644 --- a/code/modules/mob/living/simple_animal/hostile/russian.dm +++ b/code/modules/mob/living/simple_animal/hostile/russian.dm @@ -32,7 +32,7 @@ icon_state = "russianranged" icon_living = "russianranged" loot = list(/obj/effect/mob_spawn/human/corpse/russian/ranged, - /obj/item/weapon/gun/projectile/revolver/nagant) + /obj/item/weapon/gun/ballistic/revolver/nagant) ranged = 1 retreat_distance = 5 minimum_distance = 5 @@ -42,7 +42,7 @@ /mob/living/simple_animal/hostile/russian/ranged/mosin loot = list(/obj/effect/mob_spawn/human/corpse/russian/ranged, - /obj/item/weapon/gun/projectile/shotgun/boltaction) + /obj/item/weapon/gun/ballistic/shotgun/boltaction) casingtype = /obj/item/ammo_casing/a762 /mob/living/simple_animal/hostile/russian/ranged/trooper @@ -52,7 +52,7 @@ health = 150 casingtype = /obj/item/ammo_casing/shotgun/buckshot loot = list(/obj/effect/mob_spawn/human/corpse/russian/ranged/trooper, - /obj/item/weapon/gun/projectile/shotgun/lethal) + /obj/item/weapon/gun/ballistic/shotgun/lethal) /mob/living/simple_animal/hostile/russian/ranged/officer name = "Russian Officer" @@ -63,7 +63,7 @@ rapid = 1 casingtype = /obj/item/ammo_casing/c9mm loot = list(/obj/effect/mob_spawn/human/corpse/russian/ranged/officer, - /obj/item/weapon/gun/projectile/automatic/pistol/APS) + /obj/item/weapon/gun/ballistic/automatic/pistol/APS) /mob/living/simple_animal/hostile/russian/ranged/officer/Aggro() ..() diff --git a/code/modules/mob/living/simple_animal/hostile/stickman.dm b/code/modules/mob/living/simple_animal/hostile/stickman.dm index 2f17fa57523..2d9b3d189ff 100644 --- a/code/modules/mob/living/simple_animal/hostile/stickman.dm +++ b/code/modules/mob/living/simple_animal/hostile/stickman.dm @@ -40,7 +40,7 @@ icon_living = "stickmanranged" casingtype = /obj/item/ammo_casing/c45nostamina projectilesound = 'sound/misc/bang.ogg' - loot = list(/obj/item/weapon/gun/projectile/automatic/pistol/stickman) + loot = list(/obj/item/weapon/gun/ballistic/automatic/pistol/stickman) /mob/living/simple_animal/hostile/stickman/dog diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index b6f99faf0cb..f61ea5be1d0 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -128,7 +128,7 @@ projectilesound = 'sound/weapons/Gunshot.ogg' casingtype = /obj/item/ammo_casing/shotgun/buckshot loot = list(/obj/effect/mob_spawn/human/corpse/syndicatestormtrooper, - /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/unrestricted, + /obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/unrestricted, /obj/item/weapon/shield/energy) ///////////////Misc//////////// diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm index 675f404282b..03d3033c30a 100644 --- a/code/modules/projectiles/ammunition.dm +++ b/code/modules/projectiles/ammunition.dm @@ -33,7 +33,8 @@ icon_state = "[initial(icon_state)][BB ? "-live" : ""]" desc = "[initial(desc)][BB ? "" : " This one is spent"]" -/obj/item/ammo_casing/proc/newshot() //For energy weapons, shotgun shells and wands (!). +//proc to magically refill a casing with a new projectile +/obj/item/ammo_casing/proc/newshot() //For energy weapons, syringe gun, shotgun shells and wands (!). if(!BB) BB = new projectile_type(src) @@ -57,119 +58,3 @@ user << "You fail to collect anything!" else return ..() - -//Boxes of ammo -/obj/item/ammo_box - name = "ammo box (null_reference_exception)" - desc = "A box of ammo." - icon_state = "357" - icon = 'icons/obj/ammo.dmi' - flags = CONDUCT - slot_flags = SLOT_BELT - item_state = "syringe_kit" - materials = list(MAT_METAL=30000) - throwforce = 2 - w_class = 1 - throw_speed = 3 - throw_range = 7 - var/list/stored_ammo = list() - var/ammo_type = /obj/item/ammo_casing - var/max_ammo = 7 - var/multiple_sprites = 0 - var/caliber - var/multiload = 1 - -/obj/item/ammo_box/New() - ..() - for(var/i = 1, i <= max_ammo, i++) - stored_ammo += new ammo_type(src) - update_icon() - -/obj/item/ammo_box/proc/get_round(keep = 0) - if (!stored_ammo.len) - return null - else - var/b = stored_ammo[stored_ammo.len] - stored_ammo -= b - if (keep) - stored_ammo.Insert(1,b) - return b - -/obj/item/ammo_box/proc/give_round(obj/item/ammo_casing/R, replace_spent = 0) - // Boxes don't have a caliber type, magazines do. Not sure if it's intended or not, but if we fail to find a caliber, then we fall back to ammo_type. - if(!R || (caliber && R.caliber != caliber) || (!caliber && R.type != ammo_type)) - return 0 - - if (stored_ammo.len < max_ammo) - stored_ammo += R - R.loc = src - return 1 - - //for accessibles magazines (e.g internal ones) when full, start replacing spent ammo - else if(replace_spent) - for(var/obj/item/ammo_casing/AC in stored_ammo) - if(!AC.BB)//found a spent ammo - stored_ammo -= AC - AC.loc = get_turf(src.loc) - - stored_ammo += R - R.loc = src - return 1 - - return 0 - -/obj/item/ammo_box/proc/can_load(mob/user) - return 1 - -/obj/item/ammo_box/attackby(obj/item/A, mob/user, params, silent = 0, replace_spent = 0) - var/num_loaded = 0 - if(!can_load(user)) - return - if(istype(A, /obj/item/ammo_box)) - var/obj/item/ammo_box/AM = A - for(var/obj/item/ammo_casing/AC in AM.stored_ammo) - var/did_load = give_round(AC, replace_spent) - if(did_load) - AM.stored_ammo -= AC - num_loaded++ - if(!did_load || !multiload) - break - if(istype(A, /obj/item/ammo_casing)) - var/obj/item/ammo_casing/AC = A - if(give_round(AC, replace_spent)) - user.drop_item() - AC.loc = src - num_loaded++ - - if(num_loaded) - if(!silent) - user << "You load [num_loaded] shell\s into \the [src]!" - A.update_icon() - update_icon() - - return num_loaded - -/obj/item/ammo_box/attack_self(mob/user) - var/obj/item/ammo_casing/A = get_round() - if(A) - user.put_in_hands(A) - user << "You remove a round from \the [src]!" - update_icon() - -/obj/item/ammo_box/update_icon() - switch(multiple_sprites) - if(1) - icon_state = "[initial(icon_state)]-[stored_ammo.len]" - if(2) - icon_state = "[initial(icon_state)]-[stored_ammo.len ? "[max_ammo]" : "0"]" - desc = "[initial(desc)] There are [stored_ammo.len] shell\s left!" - -//Behavior for magazines -/obj/item/ammo_box/magazine/proc/ammo_count() - return stored_ammo.len - -/obj/item/ammo_box/magazine/proc/empty_magazine() - var/turf_mag = get_turf(src) - for(var/obj/item/ammo in stored_ammo) - ammo.forceMove(turf_mag) - stored_ammo -= ammo \ No newline at end of file diff --git a/code/modules/projectiles/ammunition/ammo_casings.dm b/code/modules/projectiles/ammunition/ammo_casings.dm index f09407cef92..36f4122ac2c 100644 --- a/code/modules/projectiles/ammunition/ammo_casings.dm +++ b/code/modules/projectiles/ammunition/ammo_casings.dm @@ -304,108 +304,3 @@ reagents.add_reagent("mutetoxin", 6) //;HELP OPS IN MAINT reagents.add_reagent("coniine", 6) reagents.add_reagent("sodium_thiopental", 6) - -// Caseless Ammunition - -/obj/item/ammo_casing/caseless - desc = "A caseless bullet casing." - firing_effect_type = null - - -/obj/item/ammo_casing/caseless/fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, params, distro, quiet) - if (..()) - loc = null - return 1 - else - return 0 - -/obj/item/ammo_casing/caseless/update_icon() - ..() - icon_state = "[initial(icon_state)]" - -/obj/item/ammo_casing/caseless/a75 - desc = "A .75 bullet casing." - caliber = "75" - icon_state = "s-casing-live" - projectile_type = /obj/item/projectile/bullet/gyro - -/obj/item/ammo_casing/caseless/magspear - name = "magnetic spear" - desc = "A reusable spear that is typically loaded into kinetic spearguns." - projectile_type = /obj/item/projectile/bullet/reusable/magspear - caliber = "speargun" - icon_state = "magspear" - throwforce = 15 //still deadly when thrown - throw_speed = 3 - - -/obj/item/ammo_casing/caseless/laser - name = "laser casing" - desc = "You shouldn't be seeing this." - caliber = "laser" - icon_state = "s-casing-live" - projectile_type = /obj/item/projectile/beam - fire_sound = 'sound/weapons/Laser.ogg' - firing_effect_type = /obj/effect/overlay/temp/dir_setting/firing_effect/energy - -/obj/item/ammo_casing/caseless/laser/gatling - projectile_type = /obj/item/projectile/beam/weak - variance = 0.8 - click_cooldown_override = 1 - - -/obj/item/ammo_casing/caseless/foam_dart - name = "foam dart" - desc = "Its nerf or nothing! Ages 8 and up." - projectile_type = /obj/item/projectile/bullet/reusable/foam_dart - caliber = "foam_force" - icon = 'icons/obj/guns/toy.dmi' - icon_state = "foamdart" - var/modified = 0 - -/obj/item/ammo_casing/caseless/foam_dart/update_icon() - ..() - if (modified) - icon_state = "foamdart_empty" - desc = "Its nerf or nothing! ... Although, this one doesn't look too safe." - if(BB) - BB.icon_state = "foamdart_empty" - else - icon_state = initial(icon_state) - desc = "Its nerf or nothing! Ages 8 and up." - if(BB) - BB.icon_state = initial(BB.icon_state) - - -/obj/item/ammo_casing/caseless/foam_dart/attackby(obj/item/A, mob/user, params) - var/obj/item/projectile/bullet/reusable/foam_dart/FD = BB - if (istype(A, /obj/item/weapon/screwdriver) && !modified) - modified = 1 - FD.damage_type = BRUTE - user << "You pop the safety cap off of [src]." - update_icon() - else if ((istype(A, /obj/item/weapon/pen)) && modified && !FD.pen) - if(!user.unEquip(A)) - return - A.loc = FD - FD.pen = A - FD.damage = 5 - FD.nodamage = 0 - user << "You insert [A] into [src]." - else - return ..() - -/obj/item/ammo_casing/caseless/foam_dart/attack_self(mob/living/user) - var/obj/item/projectile/bullet/reusable/foam_dart/FD = BB - if(FD.pen) - FD.damage = initial(FD.damage) - FD.nodamage = initial(FD.nodamage) - user.put_in_hands(FD.pen) - user << "You remove [FD.pen] from [src]." - FD.pen = null - -/obj/item/ammo_casing/caseless/foam_dart/riot - name = "riot foam dart" - desc = "Whose smart idea was it to use toys as crowd control? Ages 18 and up." - projectile_type = /obj/item/projectile/bullet/reusable/foam_dart/riot - icon_state = "foamdart_riot" diff --git a/code/modules/projectiles/ammunition/caseless.dm b/code/modules/projectiles/ammunition/caseless.dm new file mode 100644 index 00000000000..f1a392e37c1 --- /dev/null +++ b/code/modules/projectiles/ammunition/caseless.dm @@ -0,0 +1,120 @@ + +// Caseless Ammunition + +/obj/item/ammo_casing/caseless + desc = "A caseless bullet casing." + firing_effect_type = null + +/obj/item/ammo_casing/caseless/fire_casing(atom/target, mob/living/user, params, distro, quiet, zone_override, spread) + if (..()) //successfully firing + loc = null + return 1 + else + return 0 + +/obj/item/ammo_casing/caseless/update_icon() + ..() + icon_state = "[initial(icon_state)]" + +/obj/item/ammo_casing/caseless/a75 + desc = "A .75 bullet casing." + caliber = "75" + icon_state = "s-casing-live" + projectile_type = /obj/item/projectile/bullet/gyro + +/obj/item/ammo_casing/caseless/magspear + name = "magnetic spear" + desc = "A reusable spear that is typically loaded into kinetic spearguns." + projectile_type = /obj/item/projectile/bullet/reusable/magspear + caliber = "speargun" + icon_state = "magspear" + throwforce = 15 //still deadly when thrown + throw_speed = 3 + + +/obj/item/ammo_casing/caseless/laser + name = "laser casing" + desc = "You shouldn't be seeing this." + caliber = "laser" + icon_state = "s-casing-live" + projectile_type = /obj/item/projectile/beam + fire_sound = 'sound/weapons/Laser.ogg' + firing_effect_type = /obj/effect/overlay/temp/dir_setting/firing_effect/energy + +/obj/item/ammo_casing/caseless/laser/gatling + projectile_type = /obj/item/projectile/beam/weak + variance = 0.8 + click_cooldown_override = 1 + + +/obj/item/ammo_casing/caseless/foam_dart + name = "foam dart" + desc = "Its nerf or nothing! Ages 8 and up." + projectile_type = /obj/item/projectile/bullet/reusable/foam_dart + caliber = "foam_force" + icon = 'icons/obj/guns/toy.dmi' + icon_state = "foamdart" + var/modified = 0 + +/obj/item/ammo_casing/caseless/foam_dart/update_icon() + ..() + if (modified) + icon_state = "foamdart_empty" + desc = "Its nerf or nothing! ... Although, this one doesn't look too safe." + if(BB) + BB.icon_state = "foamdart_empty" + else + icon_state = initial(icon_state) + desc = "Its nerf or nothing! Ages 8 and up." + if(BB) + BB.icon_state = initial(BB.icon_state) + + +/obj/item/ammo_casing/caseless/foam_dart/attackby(obj/item/A, mob/user, params) + var/obj/item/projectile/bullet/reusable/foam_dart/FD = BB + if (istype(A, /obj/item/weapon/screwdriver) && !modified) + modified = 1 + FD.modified = 1 + FD.damage_type = BRUTE + user << "You pop the safety cap off of [src]." + update_icon() + else if (istype(A, /obj/item/weapon/pen)) + if(modified) + if(!FD.pen) + if(!user.unEquip(A)) + return + A.forceMove(FD) + FD.pen = A + FD.damage = 5 + FD.nodamage = 0 + user << "You insert [A] into [src]." + else + user << "There's already something in [src]." + else + user << "The safety cap prevents you from inserting [A] into [src]." + else + return ..() + +/obj/item/ammo_casing/caseless/foam_dart/attack_self(mob/living/user) + var/obj/item/projectile/bullet/reusable/foam_dart/FD = BB + if(FD.pen) + FD.damage = initial(FD.damage) + FD.nodamage = initial(FD.nodamage) + user.put_in_hands(FD.pen) + user << "You remove [FD.pen] from [src]." + FD.pen = null + +/obj/item/ammo_casing/caseless/foam_dart/riot + name = "riot foam dart" + desc = "Whose smart idea was it to use toys as crowd control? Ages 18 and up." + projectile_type = /obj/item/projectile/bullet/reusable/foam_dart/riot + icon_state = "foamdart_riot" + +/obj/item/ammo_casing/caseless/arrow + name = "arrow" + desc = "Stab, stab, stab." + icon_state = "arrow" + force = 10 + sharpness = IS_SHARP + projectile_type = /obj/item/projectile/bullet/reusable/arrow + caliber = "arrow" diff --git a/code/modules/projectiles/ammunition/special.dm b/code/modules/projectiles/ammunition/special.dm index 181333af1a1..15e826a01a4 100644 --- a/code/modules/projectiles/ammunition/special.dm +++ b/code/modules/projectiles/ammunition/special.dm @@ -41,9 +41,28 @@ /obj/item/ammo_casing/syringegun name = "syringe gun spring" desc = "A high-power spring that throws syringes." - projectile_type = null + projectile_type = /obj/item/projectile/bullet/dart/syringe firing_effect_type = null +/obj/item/ammo_casing/syringegun/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") + if(!BB) + return + if(istype(loc, /obj/item/weapon/gun/syringe)) + var/obj/item/weapon/gun/syringe/SG = loc + if(!SG.syringes.len) + return + + var/obj/item/weapon/reagent_containers/syringe/S = SG.syringes[1] + + S.reagents.trans_to(BB, S.reagents.total_volume) + BB.name = S.name + var/obj/item/projectile/bullet/dart/D = BB + D.piercing = S.proj_piercing + SG.syringes.Remove(S) + qdel(S) + ..() + + /obj/item/ammo_casing/energy/c3dbullet projectile_type = /obj/item/projectile/bullet/midbullet3 select_name = "spraydown" diff --git a/code/modules/projectiles/box_magazine.dm b/code/modules/projectiles/box_magazine.dm new file mode 100644 index 00000000000..ca690902d2b --- /dev/null +++ b/code/modules/projectiles/box_magazine.dm @@ -0,0 +1,117 @@ +//Boxes of ammo +/obj/item/ammo_box + name = "ammo box (null_reference_exception)" + desc = "A box of ammo." + icon_state = "357" + icon = 'icons/obj/ammo.dmi' + flags = CONDUCT + slot_flags = SLOT_BELT + item_state = "syringe_kit" + materials = list(MAT_METAL=30000) + throwforce = 2 + w_class = 1 + throw_speed = 3 + throw_range = 7 + var/list/stored_ammo = list() + var/ammo_type = /obj/item/ammo_casing + var/max_ammo = 7 + var/multiple_sprites = 0 + var/caliber + var/multiload = 1 + var/start_empty = 0 + +/obj/item/ammo_box/New() + ..() + if(!start_empty) + for(var/i = 1, i <= max_ammo, i++) + stored_ammo += new ammo_type(src) + update_icon() + +/obj/item/ammo_box/proc/get_round(keep = 0) + if (!stored_ammo.len) + return null + else + var/b = stored_ammo[stored_ammo.len] + stored_ammo -= b + if (keep) + stored_ammo.Insert(1,b) + return b + +/obj/item/ammo_box/proc/give_round(obj/item/ammo_casing/R, replace_spent = 0) + // Boxes don't have a caliber type, magazines do. Not sure if it's intended or not, but if we fail to find a caliber, then we fall back to ammo_type. + if(!R || (caliber && R.caliber != caliber) || (!caliber && R.type != ammo_type)) + return 0 + + if (stored_ammo.len < max_ammo) + stored_ammo += R + R.forceMove(src) + return 1 + + //for accessibles magazines (e.g internal ones) when full, start replacing spent ammo + else if(replace_spent) + for(var/obj/item/ammo_casing/AC in stored_ammo) + if(!AC.BB)//found a spent ammo + stored_ammo -= AC + AC.forceMove(get_turf(src.loc)) + + stored_ammo += R + R.forceMove(src) + return 1 + + return 0 + +/obj/item/ammo_box/proc/can_load(mob/user) + return 1 + +/obj/item/ammo_box/attackby(obj/item/A, mob/user, params, silent = 0, replace_spent = 0) + var/num_loaded = 0 + if(!can_load(user)) + return + if(istype(A, /obj/item/ammo_box)) + var/obj/item/ammo_box/AM = A + for(var/obj/item/ammo_casing/AC in AM.stored_ammo) + var/did_load = give_round(AC, replace_spent) + if(did_load) + AM.stored_ammo -= AC + num_loaded++ + if(!did_load || !multiload) + break + if(istype(A, /obj/item/ammo_casing)) + var/obj/item/ammo_casing/AC = A + if(give_round(AC, replace_spent)) + user.drop_item() + AC.forceMove(src) + num_loaded++ + + if(num_loaded) + if(!silent) + user << "You load [num_loaded] shell\s into \the [src]!" + A.update_icon() + update_icon() + + return num_loaded + +/obj/item/ammo_box/attack_self(mob/user) + var/obj/item/ammo_casing/A = get_round() + if(A) + user.put_in_hands(A) + user << "You remove a round from \the [src]!" + update_icon() + +/obj/item/ammo_box/update_icon() + switch(multiple_sprites) + if(1) + icon_state = "[initial(icon_state)]-[stored_ammo.len]" + if(2) + icon_state = "[initial(icon_state)]-[stored_ammo.len ? "[max_ammo]" : "0"]" + desc = "[initial(desc)] There are [stored_ammo.len] shell\s left!" + +//Behavior for magazines +/obj/item/ammo_box/magazine/proc/ammo_count() + return stored_ammo.len + +/obj/item/ammo_box/magazine/proc/empty_magazine() + var/turf_mag = get_turf(src) + for(var/obj/item/ammo in stored_ammo) + ammo.forceMove(turf_mag) + stored_ammo -= ammo \ No newline at end of file diff --git a/code/modules/projectiles/ammunition/boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm similarity index 92% rename from code/modules/projectiles/ammunition/boxes.dm rename to code/modules/projectiles/boxes_magazines/ammo_boxes.dm index ba7b85f1fbd..50769b926e2 100644 --- a/code/modules/projectiles/ammunition/boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -1,69 +1,69 @@ -/obj/item/ammo_box/a357 - name = "speed loader (.357)" - desc = "Designed to quickly reload revolvers." - icon_state = "357" - ammo_type = /obj/item/ammo_casing/a357 - max_ammo = 7 - multiple_sprites = 1 - -/obj/item/ammo_box/c38 - name = "speed loader (.38)" - desc = "Designed to quickly reload revolvers." - icon_state = "38" - ammo_type = /obj/item/ammo_casing/c38 - max_ammo = 6 - multiple_sprites = 1 - -/obj/item/ammo_box/c9mm - name = "ammo box (9mm)" - icon_state = "9mmbox" - origin_tech = "combat=2" - ammo_type = /obj/item/ammo_casing/c9mm - max_ammo = 30 - -/obj/item/ammo_box/c10mm - name = "ammo box (10mm)" - icon_state = "10mmbox" - origin_tech = "combat=2" - ammo_type = /obj/item/ammo_casing/c10mm - max_ammo = 20 - -/obj/item/ammo_box/c45 - name = "ammo box (.45)" - icon_state = "45box" - origin_tech = "combat=2" - ammo_type = /obj/item/ammo_casing/c45 - max_ammo = 20 - -/obj/item/ammo_box/a40mm - name = "ammo box (40mm grenades)" - icon_state = "40mm" - ammo_type = /obj/item/ammo_casing/a40mm - max_ammo = 4 - multiple_sprites = 1 - -/obj/item/ammo_box/a762 - name = "stripper clip (7.62mm)" - desc = "A stripper clip." - icon_state = "762" - ammo_type = /obj/item/ammo_casing/a762 - max_ammo = 5 - multiple_sprites = 1 - -/obj/item/ammo_box/n762 - name = "ammo box (7.62x38mmR)" - icon_state = "10mmbox" - origin_tech = "combat=2" - ammo_type = /obj/item/ammo_casing/n762 - max_ammo = 14 - -/obj/item/ammo_box/foambox - name = "ammo box (Foam Darts)" - icon = 'icons/obj/guns/toy.dmi' - icon_state = "foambox" - ammo_type = /obj/item/ammo_casing/caseless/foam_dart - max_ammo = 40 - -/obj/item/ammo_box/foambox/riot - icon_state = "foambox_riot" +/obj/item/ammo_box/a357 + name = "speed loader (.357)" + desc = "Designed to quickly reload revolvers." + icon_state = "357" + ammo_type = /obj/item/ammo_casing/a357 + max_ammo = 7 + multiple_sprites = 1 + +/obj/item/ammo_box/c38 + name = "speed loader (.38)" + desc = "Designed to quickly reload revolvers." + icon_state = "38" + ammo_type = /obj/item/ammo_casing/c38 + max_ammo = 6 + multiple_sprites = 1 + +/obj/item/ammo_box/c9mm + name = "ammo box (9mm)" + icon_state = "9mmbox" + origin_tech = "combat=2" + ammo_type = /obj/item/ammo_casing/c9mm + max_ammo = 30 + +/obj/item/ammo_box/c10mm + name = "ammo box (10mm)" + icon_state = "10mmbox" + origin_tech = "combat=2" + ammo_type = /obj/item/ammo_casing/c10mm + max_ammo = 20 + +/obj/item/ammo_box/c45 + name = "ammo box (.45)" + icon_state = "45box" + origin_tech = "combat=2" + ammo_type = /obj/item/ammo_casing/c45 + max_ammo = 20 + +/obj/item/ammo_box/a40mm + name = "ammo box (40mm grenades)" + icon_state = "40mm" + ammo_type = /obj/item/ammo_casing/a40mm + max_ammo = 4 + multiple_sprites = 1 + +/obj/item/ammo_box/a762 + name = "stripper clip (7.62mm)" + desc = "A stripper clip." + icon_state = "762" + ammo_type = /obj/item/ammo_casing/a762 + max_ammo = 5 + multiple_sprites = 1 + +/obj/item/ammo_box/n762 + name = "ammo box (7.62x38mmR)" + icon_state = "10mmbox" + origin_tech = "combat=2" + ammo_type = /obj/item/ammo_casing/n762 + max_ammo = 14 + +/obj/item/ammo_box/foambox + name = "ammo box (Foam Darts)" + icon = 'icons/obj/guns/toy.dmi' + icon_state = "foambox" + ammo_type = /obj/item/ammo_casing/caseless/foam_dart + max_ammo = 40 + +/obj/item/ammo_box/foambox/riot + icon_state = "foambox_riot" ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot \ No newline at end of file diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/boxes_magazines/external_mag.dm similarity index 63% rename from code/modules/projectiles/ammunition/magazines.dm rename to code/modules/projectiles/boxes_magazines/external_mag.dm index 8d4def459a4..fb0bd91d7b2 100644 --- a/code/modules/projectiles/ammunition/magazines.dm +++ b/code/modules/projectiles/boxes_magazines/external_mag.dm @@ -1,502 +1,326 @@ -////////////////INTERNAL MAGAZINES////////////////////// - -/obj/item/ammo_box/magazine/internal - desc = "Oh god, this shouldn't be here" - -//internals magazines are accessible, so replace spent ammo if full when trying to put a live one in -/obj/item/ammo_box/magazine/internal/give_round(obj/item/ammo_casing/R) - return ..(R,1) - - - -// Revolver internal mags -/obj/item/ammo_box/magazine/internal/cylinder - name = "revolver cylinder" - ammo_type = /obj/item/ammo_casing/a357 - caliber = "357" - max_ammo = 7 - -/obj/item/ammo_box/magazine/internal/cylinder/ammo_count(countempties = 1) - var/boolets = 0 - for(var/obj/item/ammo_casing/bullet in stored_ammo) - if(bullet && (bullet.BB || countempties)) - boolets++ - - return boolets - -/obj/item/ammo_box/magazine/internal/cylinder/get_round(keep = 0) - rotate() - - var/b = stored_ammo[1] - if(!keep) - stored_ammo[1] = null - - return b - -/obj/item/ammo_box/magazine/internal/cylinder/proc/rotate() - var/b = stored_ammo[1] - stored_ammo.Cut(1,2) - stored_ammo.Insert(0, b) - -/obj/item/ammo_box/magazine/internal/cylinder/proc/spin() - for(var/i in 1 to rand(0, max_ammo*2)) - rotate() - - -/obj/item/ammo_box/magazine/internal/cylinder/give_round(obj/item/ammo_casing/R, replace_spent = 0) - if(!R || (caliber && R.caliber != caliber) || (!caliber && R.type != ammo_type)) - return 0 - - for(var/i in 1 to stored_ammo.len) - var/obj/item/ammo_casing/bullet = stored_ammo[i] - if(!bullet || !bullet.BB) // found a spent ammo - stored_ammo[i] = R - R.loc = src - - if(bullet) - bullet.loc = get_turf(src.loc) - return 1 - - return 0 - -/obj/item/ammo_box/magazine/internal/cylinder/rev38 - name = "detective revolver cylinder" - ammo_type = /obj/item/ammo_casing/c38 - caliber = "38" - max_ammo = 6 - -/obj/item/ammo_box/magazine/internal/cylinder/grenademulti - name = "grenade launcher internal magazine" - ammo_type = /obj/item/ammo_casing/a40mm - caliber = "40mm" - max_ammo = 6 - -/obj/item/ammo_box/magazine/internal/cylinder/rev762 - name = "nagant revolver cylinder" - ammo_type = /obj/item/ammo_casing/n762 - caliber = "n762" - max_ammo = 7 - -// Shotgun internal mags -/obj/item/ammo_box/magazine/internal/shot - name = "shotgun internal magazine" - ammo_type = /obj/item/ammo_casing/shotgun/beanbag - caliber = "shotgun" - max_ammo = 4 - multiload = 0 - -/obj/item/ammo_box/magazine/internal/shot/ammo_count(countempties = 1) - if (!countempties) - var/boolets = 0 - for(var/obj/item/ammo_casing/bullet in stored_ammo) - if(bullet.BB) - boolets++ - return boolets - else - return ..() - - -/obj/item/ammo_box/magazine/internal/shot/tube - name = "dual feed shotgun internal tube" - ammo_type = /obj/item/ammo_casing/shotgun/rubbershot - max_ammo = 4 - -/obj/item/ammo_box/magazine/internal/shot/lethal - ammo_type = /obj/item/ammo_casing/shotgun/buckshot - -/obj/item/ammo_box/magazine/internal/shot/com - name = "combat shotgun internal magazine" - ammo_type = /obj/item/ammo_casing/shotgun/buckshot - max_ammo = 6 - -/obj/item/ammo_box/magazine/internal/shot/dual - name = "double-barrel shotgun internal magazine" - max_ammo = 2 - -/obj/item/ammo_box/magazine/internal/shot/improvised - name = "improvised shotgun internal magazine" - ammo_type = /obj/item/ammo_casing/shotgun/improvised - max_ammo = 1 - -/obj/item/ammo_box/magazine/internal/shot/riot - name = "riot shotgun internal magazine" - ammo_type = /obj/item/ammo_casing/shotgun/rubbershot - max_ammo = 6 - - - - -/obj/item/ammo_box/magazine/internal/grenadelauncher - name = "grenade launcher internal magazine" - ammo_type = /obj/item/ammo_casing/a40mm - caliber = "40mm" - max_ammo = 1 - -/obj/item/ammo_box/magazine/internal/speargun - name = "speargun internal magazine" - ammo_type = /obj/item/ammo_casing/caseless/magspear - caliber = "speargun" - max_ammo = 1 - -/obj/item/ammo_box/magazine/internal/rus357 - name = "russian revolver cylinder" - ammo_type = /obj/item/ammo_casing/a357 - caliber = "357" - max_ammo = 6 - multiload = 0 - -/obj/item/ammo_box/magazine/internal/rus357/New() - stored_ammo += new ammo_type(src) - -/obj/item/ammo_box/magazine/internal/boltaction - name = "bolt action rifle internal magazine" - desc = "Oh god, this shouldn't be here" - ammo_type = /obj/item/ammo_casing/a762 - caliber = "a762" - max_ammo = 5 - multiload = 1 - -/obj/item/ammo_box/magazine/internal/boltaction/enchanted - max_ammo =1 - ammo_type = /obj/item/ammo_casing/a762/enchanted - - -/obj/item/ammo_box/magazine/internal/shot/toy - ammo_type = /obj/item/ammo_casing/caseless/foam_dart - caliber = "foam_force" - max_ammo = 4 - -/obj/item/ammo_box/magazine/internal/shot/toy/crossbow - max_ammo = 5 - -/obj/item/ammo_box/magazine/internal/minigun - name = "gatling gun fusion core" - ammo_type = /obj/item/ammo_casing/caseless/laser/gatling - caliber = "gatling" - max_ammo = 5000 - - - -///////////EXTERNAL MAGAZINES//////////////// - -/obj/item/ammo_box/magazine/m10mm - name = "pistol magazine (10mm)" - desc = "A gun magazine." - icon_state = "9x19p" - origin_tech = "combat=2" - ammo_type = /obj/item/ammo_casing/c10mm - caliber = "10mm" - max_ammo = 8 - multiple_sprites = 2 - -/obj/item/ammo_box/magazine/m45 - name = "handgun magazine (.45)" - icon_state = "45-8" - ammo_type = /obj/item/ammo_casing/c45 - caliber = ".45" - max_ammo = 8 - -/obj/item/ammo_box/magazine/m45/update_icon() - ..() - icon_state = "45-[ammo_count() ? "8" : "0"]" - -/obj/item/ammo_box/magazine/wt550m9 - name = "wt550 magazine (4.6x30mm)" - icon_state = "46x30mmt-20" - ammo_type = /obj/item/ammo_casing/c46x30mm - caliber = "4.6x30mm" - max_ammo = 20 - -/obj/item/ammo_box/magazine/wt550m9/update_icon() - ..() - icon_state = "46x30mmt-[round(ammo_count(),4)]" - -/obj/item/ammo_box/magazine/wt550m9/wtap - name = "wt550 magazine (Armour Piercing 4.6x30mm)" - ammo_type = /obj/item/ammo_casing/c46x30mmap - -/obj/item/ammo_box/magazine/wt550m9/wttx - name = "wt550 magazine (Toxin Tipped 4.6x30mm)" - ammo_type = /obj/item/ammo_casing/c46x30mmtox - -/obj/item/ammo_box/magazine/wt550m9/wtic - name = "wt550 magazine (Incindiary 4.6x30mm)" - ammo_type = /obj/item/ammo_casing/c46x30mminc - -/obj/item/ammo_box/magazine/uzim9mm - name = "uzi magazine (9mm)" - icon_state = "uzi9mm-32" - ammo_type = /obj/item/ammo_casing/c9mm - caliber = "9mm" - max_ammo = 32 - -/obj/item/ammo_box/magazine/uzim9mm/update_icon() - ..() - icon_state = "uzi9mm-[round(ammo_count(),4)]" - -/obj/item/ammo_box/magazine/smgm9mm - name = "SMG magazine (9mm)" - icon_state = "smg9mm-42" - ammo_type = /obj/item/ammo_casing/c9mm - caliber = "9mm" - max_ammo = 21 - -/obj/item/ammo_box/magazine/smgm9mm/update_icon() - ..() - icon_state = "smg9mm-[ammo_count() ? "42" : "0"]" - -/obj/item/ammo_box/magazine/smgm9mm/ap - name = "SMG magazine (Armour Piercing 9mm)" - ammo_type = /obj/item/ammo_casing/c9mmap - -/obj/item/ammo_box/magazine/smgm9mm/toxin - name = "SMG magazine (Toxin Tipped 9mm)" - ammo_type = /obj/item/ammo_casing/c9mmtox - -/obj/item/ammo_box/magazine/smgm9mm/fire - name = "SMG Magazine (Incindiary 9mm)" - ammo_type = /obj/item/ammo_casing/c9mminc - -/obj/item/ammo_box/magazine/pistolm9mm - name = "pistol magazine (9mm)" - icon_state = "9x19p-8" - ammo_type = /obj/item/ammo_casing/c9mm - caliber = "9mm" - max_ammo = 15 - -/obj/item/ammo_box/magazine/pistolm9mm/update_icon() - ..() - icon_state = "9x19p-[ammo_count() ? "8" : "0"]" - -/obj/item/ammo_box/magazine/smgm45 - name = "SMG magazine (.45)" - icon_state = "c20r45-24" - origin_tech = "combat=2" - ammo_type = /obj/item/ammo_casing/c45nostamina - caliber = ".45" - max_ammo = 24 - -/obj/item/ammo_box/magazine/smgm45/update_icon() - ..() - icon_state = "c20r45-[round(ammo_count(),2)]" - -obj/item/ammo_box/magazine/tommygunm45 - name = "drum magazine (.45)" - icon_state = "drum45" - ammo_type = /obj/item/ammo_casing/c45 - caliber = ".45" - max_ammo = 50 - -/obj/item/ammo_box/magazine/m50 - name = "handgun magazine (.50ae)" - icon_state = "50ae" - origin_tech = "combat=2" - ammo_type = /obj/item/ammo_casing/a50 - caliber = ".50" - max_ammo = 7 - multiple_sprites = 1 - -/obj/item/ammo_box/magazine/m75 - name = "specialized magazine (.75)" - icon_state = "75" - ammo_type = /obj/item/ammo_casing/caseless/a75 - caliber = "75" - multiple_sprites = 2 - max_ammo = 8 - -/obj/item/ammo_box/magazine/m556 - name = "toploader magazine (5.56mm)" - icon_state = "5.56m" - origin_tech = "combat=5;syndicate=1" - ammo_type = /obj/item/ammo_casing/a556 - caliber = "a556" - max_ammo = 30 - multiple_sprites = 2 - -/obj/item/ammo_box/magazine/m12g - name = "shotgun magazine (12g taser slugs)" - desc = "A drum magazine." - icon_state = "m12gs" - ammo_type = /obj/item/ammo_casing/shotgun/stunslug - origin_tech = "combat=3;syndicate=1" - caliber = "shotgun" - max_ammo = 8 - -/obj/item/ammo_box/magazine/m12g/update_icon() - ..() - icon_state = "[initial(icon_state)]-[Ceiling(ammo_count(0)/8)*8]" - -/obj/item/ammo_box/magazine/m12g/buckshot - name = "shotgun magazine (12g buckshot slugs)" - icon_state = "m12gb" - ammo_type = /obj/item/ammo_casing/shotgun/buckshot - -/obj/item/ammo_box/magazine/m12g/slug - name = "shotgun magazine (12g slugs)" - icon_state = "m12gb" - ammo_type = /obj/item/ammo_casing/shotgun - -/obj/item/ammo_box/magazine/m12g/dragon - name = "shotgun magazine (12g dragon's breath)" - icon_state = "m12gf" - ammo_type = /obj/item/ammo_casing/shotgun/incendiary/dragonsbreath - -/obj/item/ammo_box/magazine/m12g/bioterror - name = "shotgun magazine (12g bioterror)" - icon_state = "m12gt" - ammo_type = /obj/item/ammo_casing/shotgun/dart/bioterror - -/obj/item/ammo_box/magazine/m12g/breach - name = "shotgun magazine (12g breacher slugs)" - icon_state = "m12gbc" - ammo_type = /obj/item/ammo_casing/shotgun/breaching - - -//// SNIPER MAGAZINES - -/obj/item/ammo_box/magazine/sniper_rounds - name = "sniper rounds (.50)" - icon_state = ".50mag" - origin_tech = "combat=6;syndicate=2" - ammo_type = /obj/item/ammo_casing/point50 - max_ammo = 6 - caliber = ".50" - -/obj/item/ammo_box/magazine/sniper_rounds/update_icon() - if(ammo_count()) - icon_state = "[initial(icon_state)]-ammo" - else - icon_state = "[initial(icon_state)]" - -/obj/item/ammo_box/magazine/sniper_rounds/soporific - name = "sniper rounds (Zzzzz)" - desc = "Soporific sniper rounds, designed for happy days and dead quiet nights..." - icon_state = "soporific" - origin_tech = "combat=6;syndicate=3" - ammo_type = /obj/item/ammo_casing/soporific - max_ammo = 3 - caliber = ".50" - -/obj/item/ammo_box/magazine/sniper_rounds/haemorrhage - name = "sniper rounds (Bleed)" - desc = "Haemorrhage sniper rounds, leaves your target in a pool of crimson pain" - icon_state = "haemorrhage" - ammo_type = /obj/item/ammo_casing/haemorrhage - max_ammo = 5 - caliber = ".50" - -/obj/item/ammo_box/magazine/sniper_rounds/penetrator - name = "sniper rounds (penetrator)" - desc = "An extremely powerful round capable of passing straight through cover and anyone unfortunate enough to be behind it." - ammo_type = /obj/item/ammo_casing/penetrator - origin_tech = "combat=6;syndicate=3" - max_ammo = 5 - - -//// SAW MAGAZINES - -/obj/item/ammo_box/magazine/mm556x45 - name = "box magazine (5.56x45mm)" - icon_state = "a762-50" - origin_tech = "combat=2" - ammo_type = /obj/item/ammo_casing/mm556x45 - caliber = "mm55645" - max_ammo = 50 - -/obj/item/ammo_box/magazine/mm556x45/bleeding - name = "box magazine (Bleeding 5.56x45mm)" - origin_tech = "combat=3" - ammo_type = /obj/item/ammo_casing/mm556x45/bleeding - -/obj/item/ammo_box/magazine/mm556x45/hollow - name = "box magazine (Hollow-Point 5.56x45mm)" - origin_tech = "combat=3" - ammo_type = /obj/item/ammo_casing/mm556x45/hollow - -/obj/item/ammo_box/magazine/mm556x45/ap - name = "box magazine (Armor Penetrating 5.56x45mm)" - origin_tech = "combat=4" - ammo_type = /obj/item/ammo_casing/mm556x45/ap - -/obj/item/ammo_box/magazine/mm556x45/incen - name = "box magazine (Incendiary 5.56x45mm)" - origin_tech = "combat=4" - ammo_type = /obj/item/ammo_casing/mm556x45/incen - -/obj/item/ammo_box/magazine/mm556x45/update_icon() - ..() - icon_state = "a762-[round(ammo_count(),10)]" - - - - -////TOY GUN MAGAZINES - -/obj/item/ammo_box/magazine/toy - name = "foam force META magazine" - ammo_type = /obj/item/ammo_casing/caseless/foam_dart - caliber = "foam_force" - -/obj/item/ammo_box/magazine/toy/smg - name = "foam force SMG magazine" - icon_state = "smg9mm-42" - max_ammo = 20 - -/obj/item/ammo_box/magazine/toy/smg/update_icon() - ..() - if(ammo_count()) - icon_state = "smg9mm-42" - else - icon_state = "smg9mm-0" - -/obj/item/ammo_box/magazine/toy/smg/riot - ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot - -/obj/item/ammo_box/magazine/toy/pistol - name = "foam force pistol magazine" - icon_state = "9x19p" - max_ammo = 8 - multiple_sprites = 2 - -/obj/item/ammo_box/magazine/toy/pistol/riot - ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot - -/obj/item/ammo_box/magazine/toy/smgm45 - name = "donksoft SMG magazine" - caliber = "foam_force" - ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot - max_ammo = 20 - -/obj/item/ammo_box/magazine/toy/smgm45/update_icon() - ..() - icon_state = "c20r45-[round(ammo_count(),2)]" - -/obj/item/ammo_box/magazine/toy/m762 - name = "donksoft box magazine" - caliber = "foam_force" - ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot - max_ammo = 50 - -/obj/item/ammo_box/magazine/toy/m762/update_icon() - ..() - icon_state = "a762-[round(ammo_count(),10)]" - - - - -//// RECHARGEABLE MAGAZINES - -/obj/item/ammo_box/magazine/recharge - name = "power pack" - desc = "A rechargeable, detachable battery that serves as a magazine for laser rifles." - icon_state = "oldrifle-20" - ammo_type = /obj/item/ammo_casing/caseless/laser - caliber = "laser" - max_ammo = 20 - -/obj/item/ammo_box/magazine/recharge/update_icon() - desc = "[initial(desc)] It has [stored_ammo.len] shot\s left." - icon_state = "oldrifle-[round(ammo_count(),4)]" - -/obj/item/ammo_box/magazine/recharge/attack_self() //No popping out the "bullets" + + + +///////////EXTERNAL MAGAZINES//////////////// + +/obj/item/ammo_box/magazine/m10mm + name = "pistol magazine (10mm)" + desc = "A gun magazine." + icon_state = "9x19p" + origin_tech = "combat=2" + ammo_type = /obj/item/ammo_casing/c10mm + caliber = "10mm" + max_ammo = 8 + multiple_sprites = 2 + +/obj/item/ammo_box/magazine/m45 + name = "handgun magazine (.45)" + icon_state = "45-8" + ammo_type = /obj/item/ammo_casing/c45 + caliber = ".45" + max_ammo = 8 + +/obj/item/ammo_box/magazine/m45/update_icon() + ..() + icon_state = "45-[ammo_count() ? "8" : "0"]" + +/obj/item/ammo_box/magazine/wt550m9 + name = "wt550 magazine (4.6x30mm)" + icon_state = "46x30mmt-20" + ammo_type = /obj/item/ammo_casing/c46x30mm + caliber = "4.6x30mm" + max_ammo = 20 + +/obj/item/ammo_box/magazine/wt550m9/update_icon() + ..() + icon_state = "46x30mmt-[round(ammo_count(),4)]" + +/obj/item/ammo_box/magazine/wt550m9/wtap + name = "wt550 magazine (Armour Piercing 4.6x30mm)" + ammo_type = /obj/item/ammo_casing/c46x30mmap + +/obj/item/ammo_box/magazine/wt550m9/wttx + name = "wt550 magazine (Toxin Tipped 4.6x30mm)" + ammo_type = /obj/item/ammo_casing/c46x30mmtox + +/obj/item/ammo_box/magazine/wt550m9/wtic + name = "wt550 magazine (Incindiary 4.6x30mm)" + ammo_type = /obj/item/ammo_casing/c46x30mminc + +/obj/item/ammo_box/magazine/uzim9mm + name = "uzi magazine (9mm)" + icon_state = "uzi9mm-32" + ammo_type = /obj/item/ammo_casing/c9mm + caliber = "9mm" + max_ammo = 32 + +/obj/item/ammo_box/magazine/uzim9mm/update_icon() + ..() + icon_state = "uzi9mm-[round(ammo_count(),4)]" + +/obj/item/ammo_box/magazine/smgm9mm + name = "SMG magazine (9mm)" + icon_state = "smg9mm-42" + ammo_type = /obj/item/ammo_casing/c9mm + caliber = "9mm" + max_ammo = 21 + +/obj/item/ammo_box/magazine/smgm9mm/update_icon() + ..() + icon_state = "smg9mm-[ammo_count() ? "42" : "0"]" + +/obj/item/ammo_box/magazine/smgm9mm/ap + name = "SMG magazine (Armour Piercing 9mm)" + ammo_type = /obj/item/ammo_casing/c9mmap + +/obj/item/ammo_box/magazine/smgm9mm/toxin + name = "SMG magazine (Toxin Tipped 9mm)" + ammo_type = /obj/item/ammo_casing/c9mmtox + +/obj/item/ammo_box/magazine/smgm9mm/fire + name = "SMG Magazine (Incindiary 9mm)" + ammo_type = /obj/item/ammo_casing/c9mminc + +/obj/item/ammo_box/magazine/pistolm9mm + name = "pistol magazine (9mm)" + icon_state = "9x19p-8" + ammo_type = /obj/item/ammo_casing/c9mm + caliber = "9mm" + max_ammo = 15 + +/obj/item/ammo_box/magazine/pistolm9mm/update_icon() + ..() + icon_state = "9x19p-[ammo_count() ? "8" : "0"]" + +/obj/item/ammo_box/magazine/smgm45 + name = "SMG magazine (.45)" + icon_state = "c20r45-24" + origin_tech = "combat=2" + ammo_type = /obj/item/ammo_casing/c45nostamina + caliber = ".45" + max_ammo = 24 + +/obj/item/ammo_box/magazine/smgm45/update_icon() + ..() + icon_state = "c20r45-[round(ammo_count(),2)]" + +obj/item/ammo_box/magazine/tommygunm45 + name = "drum magazine (.45)" + icon_state = "drum45" + ammo_type = /obj/item/ammo_casing/c45 + caliber = ".45" + max_ammo = 50 + +/obj/item/ammo_box/magazine/m50 + name = "handgun magazine (.50ae)" + icon_state = "50ae" + origin_tech = "combat=2" + ammo_type = /obj/item/ammo_casing/a50 + caliber = ".50" + max_ammo = 7 + multiple_sprites = 1 + +/obj/item/ammo_box/magazine/m75 + name = "specialized magazine (.75)" + icon_state = "75" + ammo_type = /obj/item/ammo_casing/caseless/a75 + caliber = "75" + multiple_sprites = 2 + max_ammo = 8 + +/obj/item/ammo_box/magazine/m556 + name = "toploader magazine (5.56mm)" + icon_state = "5.56m" + origin_tech = "combat=5;syndicate=1" + ammo_type = /obj/item/ammo_casing/a556 + caliber = "a556" + max_ammo = 30 + multiple_sprites = 2 + +/obj/item/ammo_box/magazine/m12g + name = "shotgun magazine (12g taser slugs)" + desc = "A drum magazine." + icon_state = "m12gs" + ammo_type = /obj/item/ammo_casing/shotgun/stunslug + origin_tech = "combat=3;syndicate=1" + caliber = "shotgun" + max_ammo = 8 + +/obj/item/ammo_box/magazine/m12g/update_icon() + ..() + icon_state = "[initial(icon_state)]-[Ceiling(ammo_count(0)/8)*8]" + +/obj/item/ammo_box/magazine/m12g/buckshot + name = "shotgun magazine (12g buckshot slugs)" + icon_state = "m12gb" + ammo_type = /obj/item/ammo_casing/shotgun/buckshot + +/obj/item/ammo_box/magazine/m12g/slug + name = "shotgun magazine (12g slugs)" + icon_state = "m12gb" + ammo_type = /obj/item/ammo_casing/shotgun + +/obj/item/ammo_box/magazine/m12g/dragon + name = "shotgun magazine (12g dragon's breath)" + icon_state = "m12gf" + ammo_type = /obj/item/ammo_casing/shotgun/incendiary/dragonsbreath + +/obj/item/ammo_box/magazine/m12g/bioterror + name = "shotgun magazine (12g bioterror)" + icon_state = "m12gt" + ammo_type = /obj/item/ammo_casing/shotgun/dart/bioterror + +/obj/item/ammo_box/magazine/m12g/breach + name = "shotgun magazine (12g breacher slugs)" + icon_state = "m12gbc" + ammo_type = /obj/item/ammo_casing/shotgun/breaching + + +//// SNIPER MAGAZINES + +/obj/item/ammo_box/magazine/sniper_rounds + name = "sniper rounds (.50)" + icon_state = ".50mag" + origin_tech = "combat=6;syndicate=2" + ammo_type = /obj/item/ammo_casing/point50 + max_ammo = 6 + caliber = ".50" + +/obj/item/ammo_box/magazine/sniper_rounds/update_icon() + if(ammo_count()) + icon_state = "[initial(icon_state)]-ammo" + else + icon_state = "[initial(icon_state)]" + +/obj/item/ammo_box/magazine/sniper_rounds/soporific + name = "sniper rounds (Zzzzz)" + desc = "Soporific sniper rounds, designed for happy days and dead quiet nights..." + icon_state = "soporific" + origin_tech = "combat=6;syndicate=3" + ammo_type = /obj/item/ammo_casing/soporific + max_ammo = 3 + caliber = ".50" + +/obj/item/ammo_box/magazine/sniper_rounds/haemorrhage + name = "sniper rounds (Bleed)" + desc = "Haemorrhage sniper rounds, leaves your target in a pool of crimson pain" + icon_state = "haemorrhage" + ammo_type = /obj/item/ammo_casing/haemorrhage + max_ammo = 5 + caliber = ".50" + +/obj/item/ammo_box/magazine/sniper_rounds/penetrator + name = "sniper rounds (penetrator)" + desc = "An extremely powerful round capable of passing straight through cover and anyone unfortunate enough to be behind it." + ammo_type = /obj/item/ammo_casing/penetrator + origin_tech = "combat=6;syndicate=3" + max_ammo = 5 + + +//// SAW MAGAZINES + +/obj/item/ammo_box/magazine/mm556x45 + name = "box magazine (5.56x45mm)" + icon_state = "a762-50" + origin_tech = "combat=2" + ammo_type = /obj/item/ammo_casing/mm556x45 + caliber = "mm55645" + max_ammo = 50 + +/obj/item/ammo_box/magazine/mm556x45/bleeding + name = "box magazine (Bleeding 5.56x45mm)" + origin_tech = "combat=3" + ammo_type = /obj/item/ammo_casing/mm556x45/bleeding + +/obj/item/ammo_box/magazine/mm556x45/hollow + name = "box magazine (Hollow-Point 5.56x45mm)" + origin_tech = "combat=3" + ammo_type = /obj/item/ammo_casing/mm556x45/hollow + +/obj/item/ammo_box/magazine/mm556x45/ap + name = "box magazine (Armor Penetrating 5.56x45mm)" + origin_tech = "combat=4" + ammo_type = /obj/item/ammo_casing/mm556x45/ap + +/obj/item/ammo_box/magazine/mm556x45/incen + name = "box magazine (Incendiary 5.56x45mm)" + origin_tech = "combat=4" + ammo_type = /obj/item/ammo_casing/mm556x45/incen + +/obj/item/ammo_box/magazine/mm556x45/update_icon() + ..() + icon_state = "a762-[round(ammo_count(),10)]" + + + + +////TOY GUN MAGAZINES + +/obj/item/ammo_box/magazine/toy + name = "foam force META magazine" + ammo_type = /obj/item/ammo_casing/caseless/foam_dart + caliber = "foam_force" + +/obj/item/ammo_box/magazine/toy/smg + name = "foam force SMG magazine" + icon_state = "smg9mm-42" + max_ammo = 20 + +/obj/item/ammo_box/magazine/toy/smg/update_icon() + ..() + if(ammo_count()) + icon_state = "smg9mm-42" + else + icon_state = "smg9mm-0" + +/obj/item/ammo_box/magazine/toy/smg/riot + ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot + +/obj/item/ammo_box/magazine/toy/pistol + name = "foam force pistol magazine" + icon_state = "9x19p" + max_ammo = 8 + multiple_sprites = 2 + +/obj/item/ammo_box/magazine/toy/pistol/riot + ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot + +/obj/item/ammo_box/magazine/toy/smgm45 + name = "donksoft SMG magazine" + caliber = "foam_force" + ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot + max_ammo = 20 + +/obj/item/ammo_box/magazine/toy/smgm45/update_icon() + ..() + icon_state = "c20r45-[round(ammo_count(),2)]" + +/obj/item/ammo_box/magazine/toy/m762 + name = "donksoft box magazine" + caliber = "foam_force" + ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot + max_ammo = 50 + +/obj/item/ammo_box/magazine/toy/m762/update_icon() + ..() + icon_state = "a762-[round(ammo_count(),10)]" + + + + +//// RECHARGEABLE MAGAZINES + +/obj/item/ammo_box/magazine/recharge + name = "power pack" + desc = "A rechargeable, detachable battery that serves as a magazine for laser rifles." + icon_state = "oldrifle-20" + ammo_type = /obj/item/ammo_casing/caseless/laser + caliber = "laser" + max_ammo = 20 + +/obj/item/ammo_box/magazine/recharge/update_icon() + desc = "[initial(desc)] It has [stored_ammo.len] shot\s left." + icon_state = "oldrifle-[round(ammo_count(),4)]" + +/obj/item/ammo_box/magazine/recharge/attack_self() //No popping out the "bullets" return \ No newline at end of file diff --git a/code/modules/projectiles/boxes_magazines/internal_mag.dm b/code/modules/projectiles/boxes_magazines/internal_mag.dm new file mode 100644 index 00000000000..88114cac946 --- /dev/null +++ b/code/modules/projectiles/boxes_magazines/internal_mag.dm @@ -0,0 +1,183 @@ +////////////////INTERNAL MAGAZINES////////////////////// + +/obj/item/ammo_box/magazine/internal + desc = "Oh god, this shouldn't be here" + +//internals magazines are accessible, so replace spent ammo if full when trying to put a live one in +/obj/item/ammo_box/magazine/internal/give_round(obj/item/ammo_casing/R) + return ..(R,1) + + + +// Revolver internal mags +/obj/item/ammo_box/magazine/internal/cylinder + name = "revolver cylinder" + ammo_type = /obj/item/ammo_casing/a357 + caliber = "357" + max_ammo = 7 + +/obj/item/ammo_box/magazine/internal/cylinder/ammo_count(countempties = 1) + var/boolets = 0 + for(var/obj/item/ammo_casing/bullet in stored_ammo) + if(bullet && (bullet.BB || countempties)) + boolets++ + + return boolets + +/obj/item/ammo_box/magazine/internal/cylinder/get_round(keep = 0) + rotate() + + var/b = stored_ammo[1] + if(!keep) + stored_ammo[1] = null + + return b + +/obj/item/ammo_box/magazine/internal/cylinder/proc/rotate() + var/b = stored_ammo[1] + stored_ammo.Cut(1,2) + stored_ammo.Insert(0, b) + +/obj/item/ammo_box/magazine/internal/cylinder/proc/spin() + for(var/i in 1 to rand(0, max_ammo*2)) + rotate() + + +/obj/item/ammo_box/magazine/internal/cylinder/give_round(obj/item/ammo_casing/R, replace_spent = 0) + if(!R || (caliber && R.caliber != caliber) || (!caliber && R.type != ammo_type)) + return 0 + + for(var/i in 1 to stored_ammo.len) + var/obj/item/ammo_casing/bullet = stored_ammo[i] + if(!bullet || !bullet.BB) // found a spent ammo + stored_ammo[i] = R + R.loc = src + + if(bullet) + bullet.loc = get_turf(src.loc) + return 1 + + return 0 + +/obj/item/ammo_box/magazine/internal/cylinder/rev38 + name = "detective revolver cylinder" + ammo_type = /obj/item/ammo_casing/c38 + caliber = "38" + max_ammo = 6 + +/obj/item/ammo_box/magazine/internal/cylinder/grenademulti + name = "grenade launcher internal magazine" + ammo_type = /obj/item/ammo_casing/a40mm + caliber = "40mm" + max_ammo = 6 + +/obj/item/ammo_box/magazine/internal/cylinder/rev762 + name = "nagant revolver cylinder" + ammo_type = /obj/item/ammo_casing/n762 + caliber = "n762" + max_ammo = 7 + +// Shotgun internal mags +/obj/item/ammo_box/magazine/internal/shot + name = "shotgun internal magazine" + ammo_type = /obj/item/ammo_casing/shotgun/beanbag + caliber = "shotgun" + max_ammo = 4 + multiload = 0 + +/obj/item/ammo_box/magazine/internal/shot/ammo_count(countempties = 1) + if (!countempties) + var/boolets = 0 + for(var/obj/item/ammo_casing/bullet in stored_ammo) + if(bullet.BB) + boolets++ + return boolets + else + return ..() + + +/obj/item/ammo_box/magazine/internal/shot/tube + name = "dual feed shotgun internal tube" + ammo_type = /obj/item/ammo_casing/shotgun/rubbershot + max_ammo = 4 + +/obj/item/ammo_box/magazine/internal/shot/lethal + ammo_type = /obj/item/ammo_casing/shotgun/buckshot + +/obj/item/ammo_box/magazine/internal/shot/com + name = "combat shotgun internal magazine" + ammo_type = /obj/item/ammo_casing/shotgun/buckshot + max_ammo = 6 + +/obj/item/ammo_box/magazine/internal/shot/dual + name = "double-barrel shotgun internal magazine" + max_ammo = 2 + +/obj/item/ammo_box/magazine/internal/shot/improvised + name = "improvised shotgun internal magazine" + ammo_type = /obj/item/ammo_casing/shotgun/improvised + max_ammo = 1 + +/obj/item/ammo_box/magazine/internal/shot/riot + name = "riot shotgun internal magazine" + ammo_type = /obj/item/ammo_casing/shotgun/rubbershot + max_ammo = 6 + + + + +/obj/item/ammo_box/magazine/internal/grenadelauncher + name = "grenade launcher internal magazine" + ammo_type = /obj/item/ammo_casing/a40mm + caliber = "40mm" + max_ammo = 1 + +/obj/item/ammo_box/magazine/internal/speargun + name = "speargun internal magazine" + ammo_type = /obj/item/ammo_casing/caseless/magspear + caliber = "speargun" + max_ammo = 1 + +/obj/item/ammo_box/magazine/internal/rus357 + name = "russian revolver cylinder" + ammo_type = /obj/item/ammo_casing/a357 + caliber = "357" + max_ammo = 6 + multiload = 0 + +/obj/item/ammo_box/magazine/internal/rus357/New() + stored_ammo += new ammo_type(src) + +/obj/item/ammo_box/magazine/internal/boltaction + name = "bolt action rifle internal magazine" + desc = "Oh god, this shouldn't be here" + ammo_type = /obj/item/ammo_casing/a762 + caliber = "a762" + max_ammo = 5 + multiload = 1 + +/obj/item/ammo_box/magazine/internal/boltaction/enchanted + max_ammo =1 + ammo_type = /obj/item/ammo_casing/a762/enchanted + + +/obj/item/ammo_box/magazine/internal/shot/toy + ammo_type = /obj/item/ammo_casing/caseless/foam_dart + caliber = "foam_force" + max_ammo = 4 + +/obj/item/ammo_box/magazine/internal/shot/toy/crossbow + max_ammo = 5 + +/obj/item/ammo_box/magazine/internal/minigun + name = "gatling gun fusion core" + ammo_type = /obj/item/ammo_casing/caseless/laser/gatling + caliber = "gatling" + max_ammo = 5000 + + +/obj/item/ammo_box/magazine/internal/bow + name = "bow internal magazine" + ammo_type = /obj/item/ammo_casing/caseless/arrow + caliber = "arrow" + max_ammo = 1 diff --git a/code/modules/projectiles/firing.dm b/code/modules/projectiles/firing.dm index d293520cb89..4c44b27bb62 100644 --- a/code/modules/projectiles/firing.dm +++ b/code/modules/projectiles/firing.dm @@ -1,4 +1,4 @@ -/obj/item/ammo_casing/proc/fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, params, distro, quiet, zone_override = "",spread) +/obj/item/ammo_casing/proc/fire_casing(atom/target, mob/living/user, params, distro, quiet, zone_override, spread) distro += variance for (var/i = max(1, pellets), i > 0, i--) var/targloc = get_turf(target) @@ -20,7 +20,7 @@ update_icon() return 1 -/obj/item/ammo_casing/proc/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") +/obj/item/ammo_casing/proc/ready_proj(atom/target, mob/living/user, quiet, zone_override) if (!BB) return BB.original = target @@ -39,7 +39,6 @@ var/turf/curloc = get_turf(user) if (!istype(targloc) || !istype(curloc) || !BB) return 0 - BB.ammo_casing = src var/firing_dir if(BB.firer) @@ -47,16 +46,13 @@ if(!BB.suppressed && firing_effect_type) PoolOrNew(firing_effect_type, list(get_turf(src), firing_dir)) + var/direct_target if(targloc == curloc) - if(target) //if the target is right on our location we go straight to bullet_act() - target.bullet_act(BB, BB.def_zone) - qdel(BB) - BB = null - return 1 - - BB.preparePixelProjectile(target, targloc, user, params, spread) - if(BB) - BB.fire() + if(target) //if the target is right on our location we'll skip the travelling code in the proj's fire() + direct_target = target + if(!direct_target) + BB.preparePixelProjectile(target, targloc, user, params, spread) + BB.fire(null, direct_target) BB = null return 1 @@ -64,42 +60,3 @@ var/dx = abs(target.x - current.x) var/dy = abs(target.y - current.y) return locate(target.x + round(gaussian(0, distro) * (dy+2)/8, 1), target.y + round(gaussian(0, distro) * (dx+2)/8, 1), target.z) - -/obj/item/projectile/proc/preparePixelProjectile(atom/target, var/turf/targloc, mob/living/user, params, spread) - var/turf/curloc = get_turf(user) - src.loc = get_turf(user) - src.starting = get_turf(user) - src.current = curloc - src.yo = targloc.y - curloc.y - src.xo = targloc.x - curloc.x - - if(params) - var/list/mouse_control = params2list(params) - if(mouse_control["icon-x"]) - src.p_x = text2num(mouse_control["icon-x"]) - if(mouse_control["icon-y"]) - src.p_y = text2num(mouse_control["icon-y"]) - if(mouse_control["screen-loc"]) - //Split screen-loc up into X+Pixel_X and Y+Pixel_Y - var/list/screen_loc_params = splittext(mouse_control["screen-loc"], ",") - - //Split X+Pixel_X up into list(X, Pixel_X) - var/list/screen_loc_X = splittext(screen_loc_params[1],":") - - //Split Y+Pixel_Y up into list(Y, Pixel_Y) - var/list/screen_loc_Y = splittext(screen_loc_params[2],":") - // world << "X: [screen_loc_X[1]] PixelX: [screen_loc_X[2]] / Y: [screen_loc_Y[1]] PixelY: [screen_loc_Y[2]]" - var/x = text2num(screen_loc_X[1]) * 32 + text2num(screen_loc_X[2]) - 32 - var/y = text2num(screen_loc_Y[1]) * 32 + text2num(screen_loc_Y[2]) - 32 - - //Calculate the "resolution" of screen based on client's view and world's icon size. This will work if the user can view more tiles than average. - var/screenview = (user.client.view * 2 + 1) * world.icon_size //Refer to http://www.byond.com/docs/ref/info.html#/client/var/view for mad maths - - var/ox = round(screenview/2) //"origin" x - var/oy = round(screenview/2) //"origin" y - // world << "Pixel position: [x] [y]" - var/angle = Atan2(y - oy, x - ox) - // world << "Angle: [angle]" - src.Angle = angle - if(spread) - src.Angle += spread \ No newline at end of file diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 75ccabb1c41..d63f339a5df 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -43,7 +43,7 @@ var/obj/item/device/firing_pin/pin = /obj/item/device/firing_pin //standard firing pin for most guns - var/obj/item/device/flashlight/F = null + var/obj/item/device/flashlight/gun_light = null var/can_flashlight = 0 var/list/upgrades = list() @@ -64,7 +64,7 @@ ..() if(pin) pin = new pin(src) - if(F) + if(gun_light) verbs += /obj/item/weapon/gun/proc/toggle_gunlight new /datum/action/item_action/toggle_gunlight(src) build_zooming() @@ -89,7 +89,7 @@ if(unique_reskin && !current_skin) user << "Alt-click it to reskin it." - +//called after the gun has successfully fired its chambered ammo. /obj/item/weapon/gun/proc/process_chamber() return 0 @@ -146,7 +146,7 @@ if(!can_trigger_gun(L)) return - if(!can_shoot()) //Just because you can pull the trigger doesn't mean it can't shoot. + if(!can_shoot()) //Just because you can pull the trigger doesn't mean it can shoot. shoot_with_empty_chamber(user) return @@ -192,7 +192,7 @@ user << "[src]'s trigger is locked. This weapon doesn't have a firing pin installed!" return 0 -obj/item/weapon/gun/proc/newshot() +obj/item/weapon/gun/proc/recharge_newshot() return /obj/item/weapon/gun/proc/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params, zone_override) @@ -215,13 +215,14 @@ obj/item/weapon/gun/proc/newshot() if(!issilicon(user)) if( i>1 && !(user.is_holding(src))) //for burst firing break - if(chambered) + if(chambered && chambered.BB) var/sprd = 0 if(randomspread) sprd = round((rand() - 0.5) * spread) else //Smart spread sprd = round((i / burst_size - 0.5) * spread) - if(!chambered.fire(target, user, params, ,suppressed, zone_override, sprd)) + + if(!chambered.fire_casing(target, user, params, ,suppressed, zone_override, sprd)) shoot_with_empty_chamber(user) break else @@ -238,7 +239,7 @@ obj/item/weapon/gun/proc/newshot() firing_burst = 0 else if(chambered) - if(!chambered.fire(target, user, params, , suppressed, zone_override, spread)) + if(!chambered.fire_casing(target, user, params, , suppressed, zone_override, spread)) shoot_with_empty_chamber(user) return else @@ -266,16 +267,16 @@ obj/item/weapon/gun/proc/newshot() return /obj/item/weapon/gun/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/device/flashlight/seclite)) - var/obj/item/device/flashlight/seclite/S = I - if(can_flashlight) - if(!F) + if(can_flashlight) + if(istype(I, /obj/item/device/flashlight/seclite)) + var/obj/item/device/flashlight/seclite/S = I + if(!gun_light) if(!user.unEquip(I)) return user << "You click [S] into place on [src]." if(S.on) SetLuminosity(0) - F = S + gun_light = S I.loc = src update_icon() update_gunlight(user) @@ -284,18 +285,18 @@ obj/item/weapon/gun/proc/newshot() if(loc == user) A.Grant(user) - if(istype(I, /obj/item/weapon/screwdriver)) - if(F && can_flashlight) - for(var/obj/item/device/flashlight/seclite/S in src) - user << "You unscrew the seclite from [src]." - F = null - S.loc = get_turf(user) - update_gunlight(user) - S.update_brightness(user) - update_icon() - verbs -= /obj/item/weapon/gun/proc/toggle_gunlight - for(var/datum/action/item_action/toggle_gunlight/TGL in actions) - qdel(TGL) + if(istype(I, /obj/item/weapon/screwdriver)) + if(gun_light) + for(var/obj/item/device/flashlight/seclite/S in src) + user << "You unscrew the seclite from [src]." + gun_light = null + S.forceMove(get_turf(user)) + update_gunlight(user) + S.update_brightness(user) + update_icon() + verbs -= /obj/item/weapon/gun/proc/toggle_gunlight + for(var/datum/action/item_action/toggle_gunlight/TGL in actions) + qdel(TGL) @@ -304,27 +305,27 @@ obj/item/weapon/gun/proc/newshot() set category = "Object" set desc = "Click to toggle your weapon's attached flashlight." - if(!F) + if(!gun_light) return var/mob/living/carbon/human/user = usr - F.on = !F.on - user << "You toggle the gunlight [F.on ? "on":"off"]." + gun_light.on = !gun_light.on + user << "You toggle the gunlight [gun_light.on ? "on":"off"]." playsound(user, 'sound/weapons/empty.ogg', 100, 1) update_gunlight(user) return /obj/item/weapon/gun/proc/update_gunlight(mob/user = null) - if(F) - if(F.on) + if(gun_light) + if(gun_light.on) if(loc == user) - user.AddLuminosity(F.brightness_on) + user.AddLuminosity(gun_light.brightness_on) else if(isturf(loc)) - SetLuminosity(F.brightness_on) + SetLuminosity(gun_light.brightness_on) else if(loc == user) - user.AddLuminosity(-F.brightness_on) + user.AddLuminosity(-gun_light.brightness_on) else if(isturf(loc)) SetLuminosity(0) update_icon() @@ -340,19 +341,19 @@ obj/item/weapon/gun/proc/newshot() /obj/item/weapon/gun/pickup(mob/user) ..() - if(F) - if(F.on) - user.AddLuminosity(F.brightness_on) + if(gun_light) + if(gun_light.on) + user.AddLuminosity(gun_light.brightness_on) SetLuminosity(0) if(azoom) azoom.Grant(user) /obj/item/weapon/gun/dropped(mob/user) ..() - if(F) - if(F.on) - user.AddLuminosity(-F.brightness_on) - SetLuminosity(F.brightness_on) + if(gun_light) + if(gun_light.on) + user.AddLuminosity(-gun_light.brightness_on) + SetLuminosity(gun_light.brightness_on) zoom(user,FALSE) if(azoom) azoom.Remove(user) diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/ballistic.dm similarity index 80% rename from code/modules/projectiles/guns/projectile.dm rename to code/modules/projectiles/guns/ballistic.dm index 1c78936a348..033efaae054 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -1,212 +1,207 @@ -/obj/item/weapon/gun/projectile - desc = "Now comes in flavors like GUN. Uses 10mm ammo, for some reason" - name = "projectile gun" - icon_state = "pistol" - origin_tech = "combat=2;materials=2" - w_class = 3 - var/spawnwithmagazine = 1 - - var/mag_type = /obj/item/ammo_box/magazine/m10mm //Removes the need for max_ammo and caliber info - var/obj/item/ammo_box/magazine/magazine - -/obj/item/weapon/gun/projectile/New() - ..() - if(!spawnwithmagazine) - update_icon() - return - if (!magazine) - magazine = new mag_type(src) - chamber_round() - update_icon() - -/obj/item/weapon/gun/projectile/update_icon() - ..() - if(current_skin) - icon_state = "[current_skin][suppressed ? "-suppressed" : ""][sawn_state ? "-sawn" : ""]" - else - icon_state = "[initial(icon_state)][suppressed ? "-suppressed" : ""][sawn_state ? "-sawn" : ""]" - - -/obj/item/weapon/gun/projectile/process_chamber(eject_casing = 1, empty_chamber = 1) -// if(in_chamber) -// return 1 - var/obj/item/ammo_casing/AC = chambered //Find chambered round - if(isnull(AC) || !istype(AC)) - chamber_round() - return - if(eject_casing) - AC.loc = get_turf(src) //Eject casing onto ground. - AC.SpinAnimation(10, 1) //next gen special effects - - if(empty_chamber) - chambered = null - chamber_round() - return - -/obj/item/weapon/gun/projectile/proc/chamber_round() - if (chambered || !magazine) - return - else if (magazine.ammo_count()) - chambered = magazine.get_round() - chambered.loc = src - return - -/obj/item/weapon/gun/projectile/can_shoot() - if(!magazine || !magazine.ammo_count(0)) - return 0 - return 1 - -/obj/item/weapon/gun/projectile/attackby(obj/item/A, mob/user, params) - ..() - if (istype(A, /obj/item/ammo_box/magazine)) - var/obj/item/ammo_box/magazine/AM = A - if (!magazine && istype(AM, mag_type)) - user.remove_from_mob(AM) - magazine = AM - magazine.loc = src - user << "You load a new magazine into \the [src]." - chamber_round() - A.update_icon() - update_icon() - return 1 - else if (magazine) - user << "There's already a magazine in \the [src]." - if(istype(A, /obj/item/weapon/suppressor)) - var/obj/item/weapon/suppressor/S = A - if(can_suppress) - if(!suppressed) - if(!user.unEquip(A)) - return - user << "You screw [S] onto [src]." - suppressed = A - S.oldsound = fire_sound - S.initial_w_class = w_class - fire_sound = 'sound/weapons/Gunshot_silenced.ogg' - w_class = 3 //so pistols do not fit in pockets when suppressed - A.loc = src - update_icon() - return - else - user << "[src] already has a suppressor!" - return - else - user << "You can't seem to figure out how to fit [S] on [src]!" - return - return 0 - -/obj/item/weapon/gun/projectile/attack_hand(mob/user) - if(loc == user) - if(suppressed && can_unsuppress) - var/obj/item/weapon/suppressor/S = suppressed - if(!user.is_holding(src)) - ..() - return - user << "You unscrew [suppressed] from [src]." - user.put_in_hands(suppressed) - fire_sound = S.oldsound - w_class = S.initial_w_class - suppressed = 0 - update_icon() - return - ..() - -/obj/item/weapon/gun/projectile/attack_self(mob/living/user) - var/obj/item/ammo_casing/AC = chambered //Find chambered round - if(magazine) - magazine.loc = get_turf(src.loc) - user.put_in_hands(magazine) - magazine.update_icon() - magazine = null - user << "You pull the magazine out of \the [src]." - else if(chambered) - AC.loc = get_turf(src) - AC.SpinAnimation(10, 1) - chambered = null - user << "You unload the round from \the [src]'s chamber." - else - user << "There's no magazine in \the [src]." - update_icon() - return - - -/obj/item/weapon/gun/projectile/examine(mob/user) - ..() - user << "Has [get_ammo()] round\s remaining." - -/obj/item/weapon/gun/projectile/proc/get_ammo(countchambered = 1) - var/boolets = 0 //mature var names for mature people - if (chambered && countchambered) - boolets++ - if (magazine) - boolets += magazine.ammo_count() - return boolets - -/obj/item/weapon/gun/projectile/suicide_act(mob/user) - if (src.chambered && src.chambered.BB && !src.chambered.BB.nodamage) - user.visible_message("[user] is putting the barrel of [src] in [user.p_their()] mouth. It looks like [user.p_theyre()] trying to commit suicide!") - sleep(25) - if(user.is_holding(src)) - process_fire(user, user, 0, zone_override = "head") - user.visible_message("[user] blows [user.p_their()] brain[user.p_s()] out with [src]!") - return(BRUTELOSS) - else - user.visible_message("[user] panics and starts choking to death!") - return(OXYLOSS) - else - user.visible_message("[user] is pretending to blow [user.p_their()] brain[user.p_s()] out with [src]! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(loc, 'sound/weapons/empty.ogg', 50, 1, -1) - return (OXYLOSS) - - - -/obj/item/weapon/gun/projectile/proc/sawoff(mob/user) - if(sawn_state == SAWN_OFF) - user << "\The [src] is already shortened!" - return - user.changeNext_move(CLICK_CD_MELEE) - user.visible_message("[user] begins to shorten \the [src].", "You begin to shorten \the [src]...") - - //if there's any live ammo inside the gun, makes it go off - if(blow_up(user)) - user.visible_message("\The [src] goes off!", "\The [src] goes off in your face!") - return - - if(do_after(user, 30, target = src)) - if(sawn_state == SAWN_OFF) - return - user.visible_message("[user] shortens \the [src]!", "You shorten \the [src].") - name = "sawn-off [src.name]" - desc = sawn_desc - w_class = 3 - item_state = "gun" - slot_flags &= ~SLOT_BACK //you can't sling it on your back - slot_flags |= SLOT_BELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally) - sawn_state = SAWN_OFF - update_icon() - return 1 - -// Sawing guns related proc -/obj/item/weapon/gun/projectile/proc/blow_up(mob/user) - . = 0 - for(var/obj/item/ammo_casing/AC in magazine.stored_ammo) - if(AC.BB) - process_fire(user, user,0) - . = 1 - - -/obj/item/weapon/suppressor - name = "suppressor" - desc = "A universal syndicate small-arms suppressor for maximum espionage." - icon = 'icons/obj/guns/projectile.dmi' - icon_state = "suppressor" - w_class = 2 - var/oldsound = null - var/initial_w_class = null - - -/obj/item/weapon/suppressor/specialoffer - name = "cheap suppressor" - desc = "A foreign knock-off suppressor, it feels flimsy, cheap, and brittle. Still fits all weapons." - icon = 'icons/obj/guns/projectile.dmi' - icon_state = "suppressor" - +/obj/item/weapon/gun/ballistic + desc = "Now comes in flavors like GUN. Uses 10mm ammo, for some reason" + name = "projectile gun" + icon_state = "pistol" + origin_tech = "combat=2;materials=2" + w_class = 3 + var/spawnwithmagazine = 1 + var/mag_type = /obj/item/ammo_box/magazine/m10mm //Removes the need for max_ammo and caliber info + var/obj/item/ammo_box/magazine/magazine + var/casing_ejector = 1 //whether the gun ejects the chambered casing + +/obj/item/weapon/gun/ballistic/New() + ..() + if(!spawnwithmagazine) + update_icon() + return + if (!magazine) + magazine = new mag_type(src) + chamber_round() + update_icon() + +/obj/item/weapon/gun/ballistic/update_icon() + ..() + if(current_skin) + icon_state = "[current_skin][suppressed ? "-suppressed" : ""][sawn_state ? "-sawn" : ""]" + else + icon_state = "[initial(icon_state)][suppressed ? "-suppressed" : ""][sawn_state ? "-sawn" : ""]" + + +/obj/item/weapon/gun/ballistic/process_chamber(empty_chamber = 1) + var/obj/item/ammo_casing/AC = chambered //Find chambered round + if(istype(AC)) //there's a chambered round + if(casing_ejector) + AC.forceMove(get_turf(src)) //Eject casing onto ground. + AC.SpinAnimation(10, 1) //next gen special effects + chambered = null + else if(empty_chamber) + chambered = null + chamber_round() + + +/obj/item/weapon/gun/ballistic/proc/chamber_round() + if (chambered || !magazine) + return + else if (magazine.ammo_count()) + chambered = magazine.get_round() + chambered.forceMove(src) + +/obj/item/weapon/gun/ballistic/can_shoot() + if(!magazine || !magazine.ammo_count(0)) + return 0 + return 1 + +/obj/item/weapon/gun/ballistic/attackby(obj/item/A, mob/user, params) + ..() + if (istype(A, /obj/item/ammo_box/magazine)) + var/obj/item/ammo_box/magazine/AM = A + if (!magazine && istype(AM, mag_type)) + user.remove_from_mob(AM) + magazine = AM + magazine.forceMove(src) + user << "You load a new magazine into \the [src]." + chamber_round() + A.update_icon() + update_icon() + return 1 + else if (magazine) + user << "There's already a magazine in \the [src]." + if(istype(A, /obj/item/weapon/suppressor)) + var/obj/item/weapon/suppressor/S = A + if(can_suppress) + if(!suppressed) + if(!user.unEquip(A)) + return + user << "You screw [S] onto [src]." + suppressed = A + S.oldsound = fire_sound + S.initial_w_class = w_class + fire_sound = 'sound/weapons/Gunshot_silenced.ogg' + w_class = 3 //so pistols do not fit in pockets when suppressed + A.loc = src + update_icon() + return + else + user << "[src] already has a suppressor!" + return + else + user << "You can't seem to figure out how to fit [S] on [src]!" + return + return 0 + +/obj/item/weapon/gun/ballistic/attack_hand(mob/user) + if(loc == user) + if(suppressed && can_unsuppress) + var/obj/item/weapon/suppressor/S = suppressed + if(!user.is_holding(src)) + ..() + return + user << "You unscrew [suppressed] from [src]." + user.put_in_hands(suppressed) + fire_sound = S.oldsound + w_class = S.initial_w_class + suppressed = 0 + update_icon() + return + ..() + +/obj/item/weapon/gun/ballistic/attack_self(mob/living/user) + var/obj/item/ammo_casing/AC = chambered //Find chambered round + if(magazine) + magazine.loc = get_turf(src.loc) + user.put_in_hands(magazine) + magazine.update_icon() + magazine = null + user << "You pull the magazine out of \the [src]." + else if(chambered) + AC.loc = get_turf(src) + AC.SpinAnimation(10, 1) + chambered = null + user << "You unload the round from \the [src]'s chamber." + else + user << "There's no magazine in \the [src]." + update_icon() + return + + +/obj/item/weapon/gun/ballistic/examine(mob/user) + ..() + user << "Has [get_ammo()] round\s remaining." + +/obj/item/weapon/gun/ballistic/proc/get_ammo(countchambered = 1) + var/boolets = 0 //mature var names for mature people + if (chambered && countchambered) + boolets++ + if (magazine) + boolets += magazine.ammo_count() + return boolets + +/obj/item/weapon/gun/ballistic/suicide_act(mob/user) + if (chambered && chambered.BB && !chambered.BB.nodamage) + user.visible_message("[user] is putting the barrel of [src] in [user.p_their()] mouth. It looks like [user.p_theyre()] trying to commit suicide!") + sleep(25) + if(user.is_holding(src)) + process_fire(user, user, 0, zone_override = "head") + user.visible_message("[user] blows [user.p_their()] brain[user.p_s()] out with [src]!") + return(BRUTELOSS) + else + user.visible_message("[user] panics and starts choking to death!") + return(OXYLOSS) + else + user.visible_message("[user] is pretending to blow [user.p_their()] brain[user.p_s()] out with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + playsound(loc, 'sound/weapons/empty.ogg', 50, 1, -1) + return (OXYLOSS) + + + +/obj/item/weapon/gun/ballistic/proc/sawoff(mob/user) + if(sawn_state == SAWN_OFF) + user << "\The [src] is already shortened!" + return + user.changeNext_move(CLICK_CD_MELEE) + user.visible_message("[user] begins to shorten \the [src].", "You begin to shorten \the [src]...") + + //if there's any live ammo inside the gun, makes it go off + if(blow_up(user)) + user.visible_message("\The [src] goes off!", "\The [src] goes off in your face!") + return + + if(do_after(user, 30, target = src)) + if(sawn_state == SAWN_OFF) + return + user.visible_message("[user] shortens \the [src]!", "You shorten \the [src].") + name = "sawn-off [src.name]" + desc = sawn_desc + w_class = 3 + item_state = "gun" + slot_flags &= ~SLOT_BACK //you can't sling it on your back + slot_flags |= SLOT_BELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally) + sawn_state = SAWN_OFF + update_icon() + return 1 + +// Sawing guns related proc +/obj/item/weapon/gun/ballistic/proc/blow_up(mob/user) + . = 0 + for(var/obj/item/ammo_casing/AC in magazine.stored_ammo) + if(AC.BB) + process_fire(user, user,0) + . = 1 + + +/obj/item/weapon/suppressor + name = "suppressor" + desc = "A universal syndicate small-arms suppressor for maximum espionage." + icon = 'icons/obj/guns/projectile.dmi' + icon_state = "suppressor" + w_class = 2 + var/oldsound = null + var/initial_w_class = null + + +/obj/item/weapon/suppressor/specialoffer + name = "cheap suppressor" + desc = "A foreign knock-off suppressor, it feels flimsy, cheap, and brittle. Still fits all weapons." + icon = 'icons/obj/guns/projectile.dmi' + icon_state = "suppressor" + diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm similarity index 71% rename from code/modules/projectiles/guns/projectile/automatic.dm rename to code/modules/projectiles/guns/ballistic/automatic.dm index eae57f11fca..1d871e9372d 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -1,410 +1,407 @@ -/obj/item/weapon/gun/projectile/automatic - origin_tech = "combat=4;materials=2" - w_class = 3 - var/alarmed = 0 - var/select = 1 - can_suppress = 1 - burst_size = 3 - fire_delay = 2 - actions_types = list(/datum/action/item_action/toggle_firemode) - -/obj/item/weapon/gun/projectile/automatic/proto - name = "\improper NanoTrasen Saber SMG" - desc = "A prototype three-round burst 9mm submachine gun, designated 'SABR'. Has a threaded barrel for suppressors." - icon_state = "saber" - mag_type = /obj/item/ammo_box/magazine/smgm9mm - pin = null - -/obj/item/weapon/gun/projectile/automatic/proto/unrestricted - pin = /obj/item/device/firing_pin - -/obj/item/weapon/gun/projectile/automatic/update_icon() - ..() - cut_overlays() - if(!select) - add_overlay("[initial(icon_state)]semi") - if(select == 1) - add_overlay("[initial(icon_state)]burst") - icon_state = "[initial(icon_state)][magazine ? "-[magazine.max_ammo]" : ""][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]" - -/obj/item/weapon/gun/projectile/automatic/attackby(obj/item/A, mob/user, params) - . = ..() - if(.) - return - if(istype(A, /obj/item/ammo_box/magazine)) - var/obj/item/ammo_box/magazine/AM = A - if(istype(AM, mag_type)) - if(magazine) - user << "You perform a tactical reload on \the [src], replacing the magazine." - magazine.dropped() - magazine.forceMove(get_turf(src.loc)) - magazine.update_icon() - magazine = null - else - user << "You insert the magazine into \the [src]." - user.remove_from_mob(AM) - magazine = AM - magazine.loc = src - chamber_round() - A.update_icon() - update_icon() - return 1 - -/obj/item/weapon/gun/projectile/automatic/ui_action_click() - burst_select() - -/obj/item/weapon/gun/projectile/automatic/proc/burst_select() - var/mob/living/carbon/human/user = usr - select = !select - if(!select) - burst_size = 1 - fire_delay = 0 - user << "You switch to semi-automatic." - else - burst_size = initial(burst_size) - fire_delay = initial(fire_delay) - user << "You switch to [burst_size]-rnd burst." - - playsound(user, 'sound/weapons/empty.ogg', 100, 1) - update_icon() - for(var/X in actions) - var/datum/action/A = X - A.UpdateButtonIcon() - -/obj/item/weapon/gun/projectile/automatic/can_shoot() - return get_ammo() - -/obj/item/weapon/gun/projectile/automatic/proc/empty_alarm() - if(!chambered && !get_ammo() && !alarmed) - playsound(src.loc, 'sound/weapons/smg_empty_alarm.ogg', 40, 1) - update_icon() - alarmed = 1 - return - -/obj/item/weapon/gun/projectile/automatic/c20r - name = "\improper C-20r SMG" - desc = "A bullpup two-round burst .45 SMG, designated 'C-20r'. Has a 'Scarborough Arms - Per falcis, per pravitas' buttstamp." - icon_state = "c20r" - item_state = "c20r" - origin_tech = "combat=5;materials=2;syndicate=6" - mag_type = /obj/item/ammo_box/magazine/smgm45 - fire_sound = 'sound/weapons/Gunshot_smg.ogg' - fire_delay = 2 - burst_size = 2 - pin = /obj/item/device/firing_pin/implant/pindicate - -/obj/item/weapon/gun/projectile/automatic/c20r/unrestricted - pin = /obj/item/device/firing_pin - -/obj/item/weapon/gun/projectile/automatic/c20r/New() - ..() - update_icon() - return - -/obj/item/weapon/gun/projectile/automatic/c20r/afterattack() - ..() - empty_alarm() - return - -/obj/item/weapon/gun/projectile/automatic/c20r/update_icon() - ..() - icon_state = "c20r[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]" - -/obj/item/weapon/gun/projectile/automatic/wt550 - name = "security auto rifle" - desc = "An outdated personal defence weapon. Uses 4.6x30mm rounds and is designated the WT-550 Automatic Rifle." - icon_state = "wt550" - item_state = "arg" - mag_type = /obj/item/ammo_box/magazine/wt550m9 - fire_delay = 2 - can_suppress = 0 - burst_size = 0 - actions_types = list() - -/obj/item/weapon/gun/projectile/automatic/wt550/update_icon() - ..() - icon_state = "wt550[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""]" - -/obj/item/weapon/gun/projectile/automatic/mini_uzi - name = "\improper 'Type U3' Uzi" - desc = "A lightweight, burst-fire submachine gun, for when you really want someone dead. Uses 9mm rounds." - icon_state = "mini-uzi" - origin_tech = "combat=4;materials=2;syndicate=4" - mag_type = /obj/item/ammo_box/magazine/uzim9mm - burst_size = 2 - -/obj/item/weapon/gun/projectile/automatic/m90 - name = "\improper M-90gl Carbine" - desc = "A three-round burst 5.56 toploading carbine, designated 'M-90gl'. Has an attached underbarrel grenade launcher which can be toggled on and off." - icon_state = "m90" - item_state = "m90" - origin_tech = "combat=5;materials=2;syndicate=6" - mag_type = /obj/item/ammo_box/magazine/m556 - fire_sound = 'sound/weapons/Gunshot_smg.ogg' - can_suppress = 0 - var/obj/item/weapon/gun/projectile/revolver/grenadelauncher/underbarrel - burst_size = 3 - fire_delay = 2 - pin = /obj/item/device/firing_pin/implant/pindicate - -/obj/item/weapon/gun/projectile/automatic/m90/New() - ..() - underbarrel = new /obj/item/weapon/gun/projectile/revolver/grenadelauncher(src) - update_icon() - return - -/obj/item/weapon/gun/projectile/automatic/m90/unrestricted - pin = /obj/item/device/firing_pin - -/obj/item/weapon/gun/projectile/automatic/m90/unrestricted/New() - ..() - underbarrel = new /obj/item/weapon/gun/projectile/revolver/grenadelauncher/unrestricted(src) - update_icon() - return - -/obj/item/weapon/gun/projectile/automatic/m90/afterattack(atom/target, mob/living/user, flag, params) - if(select == 2) - underbarrel.afterattack(target, user, flag, params) - else - ..() - return -/obj/item/weapon/gun/projectile/automatic/m90/attackby(obj/item/A, mob/user, params) - if(istype(A, /obj/item/ammo_casing)) - if(istype(A, underbarrel.magazine.ammo_type)) - underbarrel.attack_self() - underbarrel.attackby(A, user, params) - else - ..() -/obj/item/weapon/gun/projectile/automatic/m90/update_icon() - ..() - cut_overlays() - switch(select) - if(0) - add_overlay("[initial(icon_state)]semi") - if(1) - add_overlay("[initial(icon_state)]burst") - if(2) - add_overlay("[initial(icon_state)]gren") - icon_state = "[initial(icon_state)][magazine ? "" : "-e"]" - return -/obj/item/weapon/gun/projectile/automatic/m90/burst_select() - var/mob/living/carbon/human/user = usr - switch(select) - if(0) - select = 1 - burst_size = initial(burst_size) - fire_delay = initial(fire_delay) - user << "You switch to [burst_size]-rnd burst." - if(1) - select = 2 - user << "You switch to grenades." - if(2) - select = 0 - burst_size = 1 - fire_delay = 0 - user << "You switch to semi-auto." - playsound(user, 'sound/weapons/empty.ogg', 100, 1) - update_icon() - return - -/obj/item/weapon/gun/projectile/automatic/tommygun - name = "\improper Thompson SMG" - desc = "Based on the classic 'Chicago Typewriter'." - icon_state = "tommygun" - item_state = "shotgun" - w_class = 5 - slot_flags = 0 - origin_tech = "combat=5;materials=1;syndicate=3" - mag_type = /obj/item/ammo_box/magazine/tommygunm45 - fire_sound = 'sound/weapons/Gunshot_smg.ogg' - can_suppress = 0 - burst_size = 4 - fire_delay = 1 - -/obj/item/weapon/gun/projectile/automatic/ar - name = "\improper NT-ARG 'Boarder'" - desc = "A robust assault rile used by Nanotrasen fighting forces." - icon_state = "arg" - item_state = "arg" - slot_flags = 0 - origin_tech = "combat=6;engineering=4" - mag_type = /obj/item/ammo_box/magazine/m556 - fire_sound = 'sound/weapons/Gunshot_smg.ogg' - can_suppress = 0 - burst_size = 3 - fire_delay = 1 - - - -// Bulldog shotgun // - -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog - name = "\improper 'Bulldog' Shotgun" - desc = "A semi-auto, mag-fed shotgun for combat in narrow corridors, nicknamed 'Bulldog' by boarding parties. Compatible only with specialized 8-round drum magazines." - icon_state = "bulldog" - item_state = "bulldog" - w_class = 3 - origin_tech = "combat=6;materials=4;syndicate=6" - mag_type = /obj/item/ammo_box/magazine/m12g - fire_sound = 'sound/weapons/Gunshot.ogg' - can_suppress = 0 - burst_size = 1 - fire_delay = 0 - pin = /obj/item/device/firing_pin/implant/pindicate - actions_types = list() - -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/unrestricted - pin = /obj/item/device/firing_pin - -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/New() - ..() - update_icon() - return - -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/proc/update_magazine() - if(magazine) - src.overlays = 0 - add_overlay("[magazine.icon_state]") - return - -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/update_icon() - src.overlays = 0 - update_magazine() - icon_state = "bulldog[chambered ? "" : "-e"]" - -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/afterattack() - ..() - empty_alarm() - return - - - -// L6 SAW // - -/obj/item/weapon/gun/projectile/automatic/l6_saw - name = "\improper L6 SAW" - desc = "A heavily modified 5.56x45mm light machine gun, designated 'L6 SAW'. Has 'Aussec Armoury - 2531' engraved on the receiver below the designation." - icon_state = "l6closed100" - item_state = "l6closedmag" - w_class = 5 - slot_flags = 0 - origin_tech = "combat=6;engineering=3;syndicate=6" - mag_type = /obj/item/ammo_box/magazine/mm556x45 - weapon_weight = WEAPON_MEDIUM - fire_sound = 'sound/weapons/Gunshot_smg.ogg' - var/cover_open = 0 - can_suppress = 0 - burst_size = 3 - fire_delay = 1 - pin = /obj/item/device/firing_pin/implant/pindicate - -/obj/item/weapon/gun/projectile/automatic/l6_saw/unrestricted - pin = /obj/item/device/firing_pin - - -/obj/item/weapon/gun/projectile/automatic/l6_saw/attack_self(mob/user) - cover_open = !cover_open - user << "You [cover_open ? "open" : "close"] [src]'s cover." - update_icon() - - -/obj/item/weapon/gun/projectile/automatic/l6_saw/update_icon() - icon_state = "l6[cover_open ? "open" : "closed"][magazine ? Ceiling(get_ammo(0)/12.5)*25 : "-empty"][suppressed ? "-suppressed" : ""]" - item_state = "l6[cover_open ? "openmag" : "closedmag"]" - - -/obj/item/weapon/gun/projectile/automatic/l6_saw/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, flag, params) //what I tried to do here is just add a check to see if the cover is open or not and add an icon_state change because I can't figure out how c-20rs do it with overlays - if(cover_open) - user << "[src]'s cover is open! Close it before firing!" - else - ..() - update_icon() - - -/obj/item/weapon/gun/projectile/automatic/l6_saw/attack_hand(mob/user) - if(loc != user) - ..() - return //let them pick it up - if(!cover_open || (cover_open && !magazine)) - ..() - else if(cover_open && magazine) - //drop the mag - magazine.update_icon() - magazine.loc = get_turf(src.loc) - user.put_in_hands(magazine) - magazine = null - update_icon() - user << "You remove the magazine from [src]." - - -/obj/item/weapon/gun/projectile/automatic/l6_saw/attackby(obj/item/A, mob/user, params) - . = ..() - if(.) - return - if(!cover_open) - user << "[src]'s cover is closed! You can't insert a new mag." - return - ..() - - - -// SNIPER // - -/obj/item/weapon/gun/projectile/automatic/sniper_rifle - name = "sniper rifle" - desc = "A long ranged weapon that does significant damage. No, you can't quickscope." - icon_state = "sniper" - item_state = "sniper" - recoil = 2 - weapon_weight = WEAPON_MEDIUM - mag_type = /obj/item/ammo_box/magazine/sniper_rounds - fire_delay = 40 - burst_size = 1 - origin_tech = "combat=7" - can_unsuppress = 1 - can_suppress = 1 - w_class = 3 - zoomable = TRUE - zoom_amt = 7 //Long range, enough to see in front of you, but no tiles behind you. - slot_flags = SLOT_BACK - actions_types = list() - - -/obj/item/weapon/gun/projectile/automatic/sniper_rifle/update_icon() - if(magazine) - icon_state = "sniper-mag" - else - icon_state = "sniper" - - -/obj/item/weapon/gun/projectile/automatic/sniper_rifle/syndicate - name = "syndicate sniper rifle" - desc = "An illegally modified .50 cal sniper rifle with supression compatibility. Quickscoping still doesn't work." - pin = /obj/item/device/firing_pin/implant/pindicate - origin_tech = "combat=7;syndicate=6" - - - - -// Laser rifle (rechargeable magazine) // - -/obj/item/weapon/gun/projectile/automatic/laser - name = "laser rifle" - desc = "Though sometimes mocked for the relatively weak firepower of their energy weapons, the logistic miracle of rechargable ammunition has given Nanotrasen a decisive edge over many a foe." - icon_state = "oldrifle" - item_state = "arg" - mag_type = /obj/item/ammo_box/magazine/recharge - fire_delay = 2 - can_suppress = 0 - burst_size = 0 - actions_types = list() - fire_sound = 'sound/weapons/Laser.ogg' - -/obj/item/weapon/gun/projectile/automatic/laser/process_chamber(eject_casing = 0, empty_chamber = 1) - ..() //we changed the default value of the first argument - - -/obj/item/weapon/gun/projectile/automatic/laser/update_icon() - ..() - icon_state = "oldrifle[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""]" - return +/obj/item/weapon/gun/ballistic/automatic + origin_tech = "combat=4;materials=2" + w_class = 3 + var/alarmed = 0 + var/select = 1 + can_suppress = 1 + burst_size = 3 + fire_delay = 2 + actions_types = list(/datum/action/item_action/toggle_firemode) + +/obj/item/weapon/gun/ballistic/automatic/proto + name = "\improper NanoTrasen Saber SMG" + desc = "A prototype three-round burst 9mm submachine gun, designated 'SABR'. Has a threaded barrel for suppressors." + icon_state = "saber" + mag_type = /obj/item/ammo_box/magazine/smgm9mm + pin = null + +/obj/item/weapon/gun/ballistic/automatic/proto/unrestricted + pin = /obj/item/device/firing_pin + +/obj/item/weapon/gun/ballistic/automatic/update_icon() + ..() + cut_overlays() + if(!select) + add_overlay("[initial(icon_state)]semi") + if(select == 1) + add_overlay("[initial(icon_state)]burst") + icon_state = "[initial(icon_state)][magazine ? "-[magazine.max_ammo]" : ""][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]" + +/obj/item/weapon/gun/ballistic/automatic/attackby(obj/item/A, mob/user, params) + . = ..() + if(.) + return + if(istype(A, /obj/item/ammo_box/magazine)) + var/obj/item/ammo_box/magazine/AM = A + if(istype(AM, mag_type)) + if(magazine) + user << "You perform a tactical reload on \the [src], replacing the magazine." + magazine.dropped() + magazine.forceMove(get_turf(src.loc)) + magazine.update_icon() + magazine = null + else + user << "You insert the magazine into \the [src]." + user.remove_from_mob(AM) + magazine = AM + magazine.loc = src + chamber_round() + A.update_icon() + update_icon() + return 1 + +/obj/item/weapon/gun/ballistic/automatic/ui_action_click() + burst_select() + +/obj/item/weapon/gun/ballistic/automatic/proc/burst_select() + var/mob/living/carbon/human/user = usr + select = !select + if(!select) + burst_size = 1 + fire_delay = 0 + user << "You switch to semi-automatic." + else + burst_size = initial(burst_size) + fire_delay = initial(fire_delay) + user << "You switch to [burst_size]-rnd burst." + + playsound(user, 'sound/weapons/empty.ogg', 100, 1) + update_icon() + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + +/obj/item/weapon/gun/ballistic/automatic/can_shoot() + return get_ammo() + +/obj/item/weapon/gun/ballistic/automatic/proc/empty_alarm() + if(!chambered && !get_ammo() && !alarmed) + playsound(src.loc, 'sound/weapons/smg_empty_alarm.ogg', 40, 1) + update_icon() + alarmed = 1 + return + +/obj/item/weapon/gun/ballistic/automatic/c20r + name = "\improper C-20r SMG" + desc = "A bullpup two-round burst .45 SMG, designated 'C-20r'. Has a 'Scarborough Arms - Per falcis, per pravitas' buttstamp." + icon_state = "c20r" + item_state = "c20r" + origin_tech = "combat=5;materials=2;syndicate=6" + mag_type = /obj/item/ammo_box/magazine/smgm45 + fire_sound = 'sound/weapons/Gunshot_smg.ogg' + fire_delay = 2 + burst_size = 2 + pin = /obj/item/device/firing_pin/implant/pindicate + +/obj/item/weapon/gun/ballistic/automatic/c20r/unrestricted + pin = /obj/item/device/firing_pin + +/obj/item/weapon/gun/ballistic/automatic/c20r/New() + ..() + update_icon() + return + +/obj/item/weapon/gun/ballistic/automatic/c20r/afterattack() + ..() + empty_alarm() + return + +/obj/item/weapon/gun/ballistic/automatic/c20r/update_icon() + ..() + icon_state = "c20r[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]" + +/obj/item/weapon/gun/ballistic/automatic/wt550 + name = "security auto rifle" + desc = "An outdated personal defence weapon. Uses 4.6x30mm rounds and is designated the WT-550 Automatic Rifle." + icon_state = "wt550" + item_state = "arg" + mag_type = /obj/item/ammo_box/magazine/wt550m9 + fire_delay = 2 + can_suppress = 0 + burst_size = 0 + actions_types = list() + +/obj/item/weapon/gun/ballistic/automatic/wt550/update_icon() + ..() + icon_state = "wt550[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""]" + +/obj/item/weapon/gun/ballistic/automatic/mini_uzi + name = "\improper 'Type U3' Uzi" + desc = "A lightweight, burst-fire submachine gun, for when you really want someone dead. Uses 9mm rounds." + icon_state = "mini-uzi" + origin_tech = "combat=4;materials=2;syndicate=4" + mag_type = /obj/item/ammo_box/magazine/uzim9mm + burst_size = 2 + +/obj/item/weapon/gun/ballistic/automatic/m90 + name = "\improper M-90gl Carbine" + desc = "A three-round burst 5.56 toploading carbine, designated 'M-90gl'. Has an attached underbarrel grenade launcher which can be toggled on and off." + icon_state = "m90" + item_state = "m90" + origin_tech = "combat=5;materials=2;syndicate=6" + mag_type = /obj/item/ammo_box/magazine/m556 + fire_sound = 'sound/weapons/Gunshot_smg.ogg' + can_suppress = 0 + var/obj/item/weapon/gun/ballistic/revolver/grenadelauncher/underbarrel + burst_size = 3 + fire_delay = 2 + pin = /obj/item/device/firing_pin/implant/pindicate + +/obj/item/weapon/gun/ballistic/automatic/m90/New() + ..() + underbarrel = new /obj/item/weapon/gun/ballistic/revolver/grenadelauncher(src) + update_icon() + return + +/obj/item/weapon/gun/ballistic/automatic/m90/unrestricted + pin = /obj/item/device/firing_pin + +/obj/item/weapon/gun/ballistic/automatic/m90/unrestricted/New() + ..() + underbarrel = new /obj/item/weapon/gun/ballistic/revolver/grenadelauncher/unrestricted(src) + update_icon() + return + +/obj/item/weapon/gun/ballistic/automatic/m90/afterattack(atom/target, mob/living/user, flag, params) + if(select == 2) + underbarrel.afterattack(target, user, flag, params) + else + ..() + return +/obj/item/weapon/gun/ballistic/automatic/m90/attackby(obj/item/A, mob/user, params) + if(istype(A, /obj/item/ammo_casing)) + if(istype(A, underbarrel.magazine.ammo_type)) + underbarrel.attack_self() + underbarrel.attackby(A, user, params) + else + ..() +/obj/item/weapon/gun/ballistic/automatic/m90/update_icon() + ..() + cut_overlays() + switch(select) + if(0) + add_overlay("[initial(icon_state)]semi") + if(1) + add_overlay("[initial(icon_state)]burst") + if(2) + add_overlay("[initial(icon_state)]gren") + icon_state = "[initial(icon_state)][magazine ? "" : "-e"]" + return +/obj/item/weapon/gun/ballistic/automatic/m90/burst_select() + var/mob/living/carbon/human/user = usr + switch(select) + if(0) + select = 1 + burst_size = initial(burst_size) + fire_delay = initial(fire_delay) + user << "You switch to [burst_size]-rnd burst." + if(1) + select = 2 + user << "You switch to grenades." + if(2) + select = 0 + burst_size = 1 + fire_delay = 0 + user << "You switch to semi-auto." + playsound(user, 'sound/weapons/empty.ogg', 100, 1) + update_icon() + return + +/obj/item/weapon/gun/ballistic/automatic/tommygun + name = "\improper Thompson SMG" + desc = "Based on the classic 'Chicago Typewriter'." + icon_state = "tommygun" + item_state = "shotgun" + w_class = 5 + slot_flags = 0 + origin_tech = "combat=5;materials=1;syndicate=3" + mag_type = /obj/item/ammo_box/magazine/tommygunm45 + fire_sound = 'sound/weapons/Gunshot_smg.ogg' + can_suppress = 0 + burst_size = 4 + fire_delay = 1 + +/obj/item/weapon/gun/ballistic/automatic/ar + name = "\improper NT-ARG 'Boarder'" + desc = "A robust assault rile used by Nanotrasen fighting forces." + icon_state = "arg" + item_state = "arg" + slot_flags = 0 + origin_tech = "combat=6;engineering=4" + mag_type = /obj/item/ammo_box/magazine/m556 + fire_sound = 'sound/weapons/Gunshot_smg.ogg' + can_suppress = 0 + burst_size = 3 + fire_delay = 1 + + + +// Bulldog shotgun // + +/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog + name = "\improper 'Bulldog' Shotgun" + desc = "A semi-auto, mag-fed shotgun for combat in narrow corridors, nicknamed 'Bulldog' by boarding parties. Compatible only with specialized 8-round drum magazines." + icon_state = "bulldog" + item_state = "bulldog" + w_class = 3 + origin_tech = "combat=6;materials=4;syndicate=6" + mag_type = /obj/item/ammo_box/magazine/m12g + fire_sound = 'sound/weapons/Gunshot.ogg' + can_suppress = 0 + burst_size = 1 + fire_delay = 0 + pin = /obj/item/device/firing_pin/implant/pindicate + actions_types = list() + +/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/unrestricted + pin = /obj/item/device/firing_pin + +/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/New() + ..() + update_icon() + return + +/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/proc/update_magazine() + if(magazine) + src.overlays = 0 + add_overlay("[magazine.icon_state]") + return + +/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/update_icon() + src.overlays = 0 + update_magazine() + icon_state = "bulldog[chambered ? "" : "-e"]" + +/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/afterattack() + ..() + empty_alarm() + return + + + +// L6 SAW // + +/obj/item/weapon/gun/ballistic/automatic/l6_saw + name = "\improper L6 SAW" + desc = "A heavily modified 5.56x45mm light machine gun, designated 'L6 SAW'. Has 'Aussec Armoury - 2531' engraved on the receiver below the designation." + icon_state = "l6closed100" + item_state = "l6closedmag" + w_class = 5 + slot_flags = 0 + origin_tech = "combat=6;engineering=3;syndicate=6" + mag_type = /obj/item/ammo_box/magazine/mm556x45 + weapon_weight = WEAPON_MEDIUM + fire_sound = 'sound/weapons/Gunshot_smg.ogg' + var/cover_open = 0 + can_suppress = 0 + burst_size = 3 + fire_delay = 1 + pin = /obj/item/device/firing_pin/implant/pindicate + +/obj/item/weapon/gun/ballistic/automatic/l6_saw/unrestricted + pin = /obj/item/device/firing_pin + + +/obj/item/weapon/gun/ballistic/automatic/l6_saw/attack_self(mob/user) + cover_open = !cover_open + user << "You [cover_open ? "open" : "close"] [src]'s cover." + update_icon() + + +/obj/item/weapon/gun/ballistic/automatic/l6_saw/update_icon() + icon_state = "l6[cover_open ? "open" : "closed"][magazine ? Ceiling(get_ammo(0)/12.5)*25 : "-empty"][suppressed ? "-suppressed" : ""]" + item_state = "l6[cover_open ? "openmag" : "closedmag"]" + + +/obj/item/weapon/gun/ballistic/automatic/l6_saw/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, flag, params) //what I tried to do here is just add a check to see if the cover is open or not and add an icon_state change because I can't figure out how c-20rs do it with overlays + if(cover_open) + user << "[src]'s cover is open! Close it before firing!" + else + ..() + update_icon() + + +/obj/item/weapon/gun/ballistic/automatic/l6_saw/attack_hand(mob/user) + if(loc != user) + ..() + return //let them pick it up + if(!cover_open || (cover_open && !magazine)) + ..() + else if(cover_open && magazine) + //drop the mag + magazine.update_icon() + magazine.loc = get_turf(src.loc) + user.put_in_hands(magazine) + magazine = null + update_icon() + user << "You remove the magazine from [src]." + + +/obj/item/weapon/gun/ballistic/automatic/l6_saw/attackby(obj/item/A, mob/user, params) + . = ..() + if(.) + return + if(!cover_open) + user << "[src]'s cover is closed! You can't insert a new mag." + return + ..() + + + +// SNIPER // + +/obj/item/weapon/gun/ballistic/automatic/sniper_rifle + name = "sniper rifle" + desc = "A long ranged weapon that does significant damage. No, you can't quickscope." + icon_state = "sniper" + item_state = "sniper" + recoil = 2 + weapon_weight = WEAPON_MEDIUM + mag_type = /obj/item/ammo_box/magazine/sniper_rounds + fire_delay = 40 + burst_size = 1 + origin_tech = "combat=7" + can_unsuppress = 1 + can_suppress = 1 + w_class = 3 + zoomable = TRUE + zoom_amt = 7 //Long range, enough to see in front of you, but no tiles behind you. + slot_flags = SLOT_BACK + actions_types = list() + + +/obj/item/weapon/gun/ballistic/automatic/sniper_rifle/update_icon() + if(magazine) + icon_state = "sniper-mag" + else + icon_state = "sniper" + + +/obj/item/weapon/gun/ballistic/automatic/sniper_rifle/syndicate + name = "syndicate sniper rifle" + desc = "An illegally modified .50 cal sniper rifle with supression compatibility. Quickscoping still doesn't work." + pin = /obj/item/device/firing_pin/implant/pindicate + origin_tech = "combat=7;syndicate=6" + + + + +// Laser rifle (rechargeable magazine) // + +/obj/item/weapon/gun/ballistic/automatic/laser + name = "laser rifle" + desc = "Though sometimes mocked for the relatively weak firepower of their energy weapons, the logistic miracle of rechargable ammunition has given Nanotrasen a decisive edge over many a foe." + icon_state = "oldrifle" + item_state = "arg" + mag_type = /obj/item/ammo_box/magazine/recharge + fire_delay = 2 + can_suppress = 0 + burst_size = 0 + actions_types = list() + fire_sound = 'sound/weapons/Laser.ogg' + casing_ejector = 0 + +/obj/item/weapon/gun/ballistic/automatic/laser/update_icon() + ..() + icon_state = "oldrifle[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""]" + return diff --git a/code/modules/projectiles/guns/projectile/bow.dm b/code/modules/projectiles/guns/ballistic/bow.dm similarity index 82% rename from code/modules/projectiles/guns/projectile/bow.dm rename to code/modules/projectiles/guns/ballistic/bow.dm index fbe5f28cb11..27e83e01c87 100644 --- a/code/modules/projectiles/guns/projectile/bow.dm +++ b/code/modules/projectiles/guns/ballistic/bow.dm @@ -1,4 +1,4 @@ -/obj/item/weapon/gun/projectile/bow +/obj/item/weapon/gun/ballistic/bow name = "bow" desc = "A sturdy bow made out of wood and reinforced with iron." icon_state = "bow_unloaded" @@ -15,7 +15,7 @@ var/ready_to_fire = 0 var/slowdown_when_ready = 2 -/obj/item/weapon/gun/projectile/bow/update_icon() +/obj/item/weapon/gun/ballistic/bow/update_icon() if(ready_to_fire) icon_state = icon_state_firing item_state = item_state_firing @@ -29,13 +29,13 @@ item_state = initial(item_state) slowdown = initial(slowdown) -/obj/item/weapon/gun/projectile/bow/dropped(mob/user) +/obj/item/weapon/gun/ballistic/bow/dropped(mob/user) if(magazine && magazine.ammo_count()) magazine.empty_magazine() ready_to_fire = FALSE update_icon() -/obj/item/weapon/gun/projectile/bow/attack_self(mob/living/user) +/obj/item/weapon/gun/ballistic/bow/attack_self(mob/living/user) if(!ready_to_fire && magazine.ammo_count()) ready_to_fire = TRUE playsound(user, draw_sound, 100, 1) @@ -44,22 +44,22 @@ ready_to_fire = FALSE update_icon() -/obj/item/weapon/gun/projectile/bow/attackby(obj/item/A, mob/user, params) +/obj/item/weapon/gun/ballistic/bow/attackby(obj/item/A, mob/user, params) var/num_loaded = magazine.attackby(A, user, params, 1) if(num_loaded) user << "You ready \the [A] into \the [src]." update_icon() chamber_round() -/obj/item/weapon/gun/projectile/bow/can_shoot() +/obj/item/weapon/gun/ballistic/bow/can_shoot() . = ..() if(!ready_to_fire) return FALSE -/obj/item/weapon/gun/projectile/bow/shoot_with_empty_chamber(mob/living/user as mob|obj) +/obj/item/weapon/gun/ballistic/bow/shoot_with_empty_chamber(mob/living/user as mob|obj) return -/obj/item/weapon/gun/projectile/bow/process_chamber(eject_casing = 0, empty_chamber = 1) +/obj/item/weapon/gun/ballistic/bow/process_chamber(eject_casing = 0, empty_chamber = 1) . = ..() ready_to_fire = FALSE update_icon() diff --git a/code/modules/projectiles/guns/projectile/laser_gatling.dm b/code/modules/projectiles/guns/ballistic/laser_gatling.dm similarity index 83% rename from code/modules/projectiles/guns/projectile/laser_gatling.dm rename to code/modules/projectiles/guns/ballistic/laser_gatling.dm index 43de02219f3..c01373e9156 100644 --- a/code/modules/projectiles/guns/projectile/laser_gatling.dm +++ b/code/modules/projectiles/guns/ballistic/laser_gatling.dm @@ -9,7 +9,7 @@ item_state = "backpack" slot_flags = SLOT_BACK w_class = 5 - var/obj/item/weapon/gun/projectile/minigun/gun = null + var/obj/item/weapon/gun/ballistic/minigun/gun = null var/armed = 0 //whether the gun is attached, 0 is attached, 1 is the gun is wielded. var/overheat = 0 var/overheat_max = 40 @@ -91,7 +91,7 @@ user.update_inv_back() -/obj/item/weapon/gun/projectile/minigun +/obj/item/weapon/gun/ballistic/minigun name = "laser gatling gun" desc = "An advanced laser cannon with an incredible rate of fire. Requires a bulky backpack power source to use." icon = 'icons/obj/guns/minigun.dmi' @@ -109,18 +109,19 @@ weapon_weight = WEAPON_HEAVY fire_sound = 'sound/weapons/Laser.ogg' mag_type = /obj/item/ammo_box/magazine/internal/minigun + casing_ejector = 0 var/obj/item/weapon/minigunpack/ammo_pack -/obj/item/weapon/gun/projectile/minigun/attack_self(mob/living/user) +/obj/item/weapon/gun/ballistic/minigun/attack_self(mob/living/user) return -/obj/item/weapon/gun/projectile/minigun/dropped(mob/user) +/obj/item/weapon/gun/ballistic/minigun/dropped(mob/user) if(ammo_pack) ammo_pack.attach_gun(user) else qdel(src) -/obj/item/weapon/gun/projectile/minigun/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params, zone_override) +/obj/item/weapon/gun/ballistic/minigun/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params, zone_override) if(ammo_pack) if(ammo_pack.overheat < ammo_pack.overheat_max) ammo_pack.overheat += burst_size @@ -128,12 +129,12 @@ else user << "The gun's heat sensor locked the trigger to prevent lens damage." -/obj/item/weapon/gun/projectile/minigun/afterattack(atom/target, mob/living/user, flag, params) +/obj/item/weapon/gun/ballistic/minigun/afterattack(atom/target, mob/living/user, flag, params) if(!ammo_pack || ammo_pack.loc != user) user << "You need the backpack power source to fire the gun!" ..() -/obj/item/weapon/gun/projectile/minigun/New() +/obj/item/weapon/gun/ballistic/minigun/New() if(!ammo_pack) if(istype(loc,/obj/item/weapon/minigunpack)) //We should spawn inside a ammo pack so let's use that one. ammo_pack = loc @@ -141,9 +142,7 @@ else qdel(src)//No pack, no gun -/obj/item/weapon/gun/projectile/minigun/dropped(mob/living/user) +/obj/item/weapon/gun/ballistic/minigun/dropped(mob/living/user) ammo_pack.attach_gun(user) -/obj/item/weapon/gun/projectile/minigun/process_chamber(eject_casing = 0, empty_chamber = 1) - ..() diff --git a/code/modules/projectiles/guns/projectile/launchers.dm b/code/modules/projectiles/guns/ballistic/launchers.dm similarity index 63% rename from code/modules/projectiles/guns/projectile/launchers.dm rename to code/modules/projectiles/guns/ballistic/launchers.dm index 42ed81805ed..9e2f66ee423 100644 --- a/code/modules/projectiles/guns/projectile/launchers.dm +++ b/code/modules/projectiles/guns/ballistic/launchers.dm @@ -1,7 +1,7 @@ //KEEP IN MIND: These are different from gun/grenadelauncher. These are designed to shoot premade rocket and grenade projectiles, not flashbangs or chemistry casings etc. //Put handheld rocket launchers here if someone ever decides to make something so hilarious ~Paprika -/obj/item/weapon/gun/projectile/revolver/grenadelauncher//this is only used for underbarrel grenade launchers at the moment, but admins can still spawn it if they feel like being assholes +/obj/item/weapon/gun/ballistic/revolver/grenadelauncher//this is only used for underbarrel grenade launchers at the moment, but admins can still spawn it if they feel like being assholes desc = "A break-operated grenade launcher." name = "grenade launcher" icon_state = "dshotgun-sawn" @@ -11,15 +11,15 @@ w_class = 3 pin = /obj/item/device/firing_pin/implant/pindicate -/obj/item/weapon/gun/projectile/revolver/grenadelauncher/unrestricted +/obj/item/weapon/gun/ballistic/revolver/grenadelauncher/unrestricted pin = /obj/item/device/firing_pin -/obj/item/weapon/gun/projectile/revolver/grenadelauncher/attackby(obj/item/A, mob/user, params) +/obj/item/weapon/gun/ballistic/revolver/grenadelauncher/attackby(obj/item/A, mob/user, params) ..() if(istype(A, /obj/item/ammo_box) || istype(A, /obj/item/ammo_casing)) chamber_round() -/obj/item/weapon/gun/projectile/revolver/grenadelauncher/cyborg +/obj/item/weapon/gun/ballistic/revolver/grenadelauncher/cyborg desc = "A 6-shot grenade launcher." name = "multi grenade launcher" icon = 'icons/mecha/mecha_equipment.dmi' @@ -27,10 +27,10 @@ mag_type = /obj/item/ammo_box/magazine/internal/cylinder/grenademulti pin = /obj/item/device/firing_pin -/obj/item/weapon/gun/projectile/revolver/grenadelauncher/cyborg/attack_self() +/obj/item/weapon/gun/ballistic/revolver/grenadelauncher/cyborg/attack_self() return -/obj/item/weapon/gun/projectile/automatic/gyropistol +/obj/item/weapon/gun/ballistic/automatic/gyropistol name = "gyrojet pistol" desc = "A prototype pistol designed to fire self propelled rockets." icon_state = "gyropistol" @@ -40,15 +40,13 @@ burst_size = 1 fire_delay = 0 actions_types = list() + casing_ejector = 0 -/obj/item/weapon/gun/projectile/automatic/gyropistol/process_chamber(eject_casing = 0, empty_chamber = 1) - ..() - -/obj/item/weapon/gun/projectile/automatic/gyropistol/update_icon() +/obj/item/weapon/gun/ballistic/automatic/gyropistol/update_icon() ..() icon_state = "[initial(icon_state)][magazine ? "loaded" : ""]" -/obj/item/weapon/gun/projectile/automatic/speargun +/obj/item/weapon/gun/ballistic/automatic/speargun name = "kinetic speargun" desc = "A weapon favored by carp hunters. Fires specialized spears using kinetic energy." icon_state = "speargun" @@ -63,17 +61,15 @@ fire_delay = 0 select = 0 actions_types = list() + casing_ejector = 0 -/obj/item/weapon/gun/projectile/automatic/speargun/update_icon() +/obj/item/weapon/gun/ballistic/automatic/speargun/update_icon() return -/obj/item/weapon/gun/projectile/automatic/speargun/attack_self() +/obj/item/weapon/gun/ballistic/automatic/speargun/attack_self() return -/obj/item/weapon/gun/projectile/automatic/speargun/process_chamber(eject_casing = 0, empty_chamber = 1) - ..() - -/obj/item/weapon/gun/projectile/automatic/speargun/attackby(obj/item/A, mob/user, params) +/obj/item/weapon/gun/ballistic/automatic/speargun/attackby(obj/item/A, mob/user, params) var/num_loaded = magazine.attackby(A, user, params, 1) if(num_loaded) user << "You load [num_loaded] spear\s into \the [src]." diff --git a/code/modules/projectiles/guns/projectile/pistol.dm b/code/modules/projectiles/guns/ballistic/pistol.dm similarity index 74% rename from code/modules/projectiles/guns/projectile/pistol.dm rename to code/modules/projectiles/guns/ballistic/pistol.dm index 2d04fe2ef5d..9e1066e6f59 100644 --- a/code/modules/projectiles/guns/projectile/pistol.dm +++ b/code/modules/projectiles/guns/ballistic/pistol.dm @@ -1,76 +1,76 @@ -/obj/item/weapon/gun/projectile/automatic/pistol - name = "stechkin pistol" - desc = "A small, easily concealable 10mm handgun. Has a threaded barrel for suppressors." - icon_state = "pistol" - w_class = 2 - origin_tech = "combat=3;materials=2;syndicate=4" - mag_type = /obj/item/ammo_box/magazine/m10mm - can_suppress = 1 - burst_size = 1 - fire_delay = 0 - actions_types = list() - -/obj/item/weapon/gun/projectile/automatic/pistol/update_icon() - ..() - icon_state = "[initial(icon_state)][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]" - return - -/obj/item/weapon/gun/projectile/automatic/pistol/m1911 - name = "\improper M1911" - desc = "A classic .45 handgun with a small magazine capacity." - icon_state = "m1911" - w_class = 3 - mag_type = /obj/item/ammo_box/magazine/m45 - can_suppress = 0 - -/obj/item/weapon/gun/projectile/automatic/pistol/deagle - name = "desert eagle" - desc = "A robust .50 AE handgun." - icon_state = "deagle" - force = 14 - mag_type = /obj/item/ammo_box/magazine/m50 - can_suppress = 0 - -/obj/item/weapon/gun/projectile/automatic/pistol/deagle/update_icon() - ..() - icon_state = "[initial(icon_state)][magazine ? "" : "-e"]" - -/obj/item/weapon/gun/projectile/automatic/pistol/deagle/gold - desc = "A gold plated desert eagle folded over a million times by superior martian gunsmiths. Uses .50 AE ammo." - icon_state = "deagleg" - item_state = "deagleg" - -/obj/item/weapon/gun/projectile/automatic/pistol/deagle/camo - desc = "A Deagle brand Deagle for operators operating operationally. Uses .50 AE ammo." - icon_state = "deaglecamo" - item_state = "deagleg" - -/obj/item/weapon/gun/projectile/automatic/pistol/APS - name = "stechkin APS pistol" - desc = "The original russian version of a widely used Syndicate sidearm. Uses 9mm ammo." - icon_state = "aps" - w_class = 3 - origin_tech = "combat=3;materials=2;syndicate=3" - mag_type = /obj/item/ammo_box/magazine/pistolm9mm - can_suppress = 0 - burst_size = 3 - fire_delay = 2 - actions_types = list(/datum/action/item_action/toggle_firemode) - -/obj/item/weapon/gun/projectile/automatic/pistol/stickman - name = "flat gun" - desc = "A 2 dimensional gun.. what?" - icon_state = "flatgun" - origin_tech = "combat=3;materials=2;abductor=3" - -/obj/item/weapon/gun/projectile/automatic/pistol/stickman/pickup(mob/living/user) - user << "As you try to pick up [src], it slips out of your grip.." - if(prob(50)) - user << "..and vanishes from your vision! Where the hell did it go?" - user.unEquip(src) - qdel(src) - user.update_icons() - else - user << "..and falls into view. Whew, that was a close one." - user.unEquip(src) - +/obj/item/weapon/gun/ballistic/automatic/pistol + name = "stechkin pistol" + desc = "A small, easily concealable 10mm handgun. Has a threaded barrel for suppressors." + icon_state = "pistol" + w_class = 2 + origin_tech = "combat=3;materials=2;syndicate=4" + mag_type = /obj/item/ammo_box/magazine/m10mm + can_suppress = 1 + burst_size = 1 + fire_delay = 0 + actions_types = list() + +/obj/item/weapon/gun/ballistic/automatic/pistol/update_icon() + ..() + icon_state = "[initial(icon_state)][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]" + return + +/obj/item/weapon/gun/ballistic/automatic/pistol/m1911 + name = "\improper M1911" + desc = "A classic .45 handgun with a small magazine capacity." + icon_state = "m1911" + w_class = 3 + mag_type = /obj/item/ammo_box/magazine/m45 + can_suppress = 0 + +/obj/item/weapon/gun/ballistic/automatic/pistol/deagle + name = "desert eagle" + desc = "A robust .50 AE handgun." + icon_state = "deagle" + force = 14 + mag_type = /obj/item/ammo_box/magazine/m50 + can_suppress = 0 + +/obj/item/weapon/gun/ballistic/automatic/pistol/deagle/update_icon() + ..() + icon_state = "[initial(icon_state)][magazine ? "" : "-e"]" + +/obj/item/weapon/gun/ballistic/automatic/pistol/deagle/gold + desc = "A gold plated desert eagle folded over a million times by superior martian gunsmiths. Uses .50 AE ammo." + icon_state = "deagleg" + item_state = "deagleg" + +/obj/item/weapon/gun/ballistic/automatic/pistol/deagle/camo + desc = "A Deagle brand Deagle for operators operating operationally. Uses .50 AE ammo." + icon_state = "deaglecamo" + item_state = "deagleg" + +/obj/item/weapon/gun/ballistic/automatic/pistol/APS + name = "stechkin APS pistol" + desc = "The original russian version of a widely used Syndicate sidearm. Uses 9mm ammo." + icon_state = "aps" + w_class = 3 + origin_tech = "combat=3;materials=2;syndicate=3" + mag_type = /obj/item/ammo_box/magazine/pistolm9mm + can_suppress = 0 + burst_size = 3 + fire_delay = 2 + actions_types = list(/datum/action/item_action/toggle_firemode) + +/obj/item/weapon/gun/ballistic/automatic/pistol/stickman + name = "flat gun" + desc = "A 2 dimensional gun.. what?" + icon_state = "flatgun" + origin_tech = "combat=3;materials=2;abductor=3" + +/obj/item/weapon/gun/ballistic/automatic/pistol/stickman/pickup(mob/living/user) + user << "As you try to pick up [src], it slips out of your grip.." + if(prob(50)) + user << "..and vanishes from your vision! Where the hell did it go?" + user.unEquip(src) + qdel(src) + user.update_icons() + else + user << "..and falls into view. Whew, that was a close one." + user.unEquip(src) + diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm similarity index 77% rename from code/modules/projectiles/guns/projectile/revolver.dm rename to code/modules/projectiles/guns/ballistic/revolver.dm index fdd8b765f67..0882277de8f 100644 --- a/code/modules/projectiles/guns/projectile/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -1,373 +1,370 @@ -/obj/item/weapon/gun/projectile/revolver - name = "\improper .357 revolver" - desc = "A suspicious revolver. Uses .357 ammo." //usually used by syndicates - icon_state = "revolver" - mag_type = /obj/item/ammo_box/magazine/internal/cylinder - origin_tech = "combat=3;materials=2" - -/obj/item/weapon/gun/projectile/revolver/New() - ..() - if(!istype(magazine, /obj/item/ammo_box/magazine/internal/cylinder)) - verbs -= /obj/item/weapon/gun/projectile/revolver/verb/spin - -/obj/item/weapon/gun/projectile/revolver/chamber_round(var/spin = 1) - if(spin) - chambered = magazine.get_round(1) - else - chambered = magazine.stored_ammo[1] - return - -/obj/item/weapon/gun/projectile/revolver/shoot_with_empty_chamber(mob/living/user as mob|obj) - ..() - chamber_round(1) - -/obj/item/weapon/gun/projectile/revolver/process_chamber() - return ..(0, 1) - -/obj/item/weapon/gun/projectile/revolver/attackby(obj/item/A, mob/user, params) - . = ..() - if(.) - return - var/num_loaded = magazine.attackby(A, user, params, 1) - if(num_loaded) - user << "You load [num_loaded] shell\s into \the [src]." - A.update_icon() - update_icon() - chamber_round(0) - - if(unique_rename) - if(istype(A, /obj/item/weapon/pen)) - rename_weapon(user) - -/obj/item/weapon/gun/projectile/revolver/attack_self(mob/living/user) - var/num_unloaded = 0 - chambered = null - while (get_ammo() > 0) - var/obj/item/ammo_casing/CB - CB = magazine.get_round(0) - if(CB) - CB.loc = get_turf(src.loc) - CB.SpinAnimation(10, 1) - CB.update_icon() - num_unloaded++ - if (num_unloaded) - user << "You unload [num_unloaded] shell\s from [src]." - else - user << "[src] is empty!" - -/obj/item/weapon/gun/projectile/revolver/verb/spin() - set name = "Spin Chamber" - set category = "Object" - set desc = "Click to spin your revolver's chamber." - - var/mob/M = usr - - if(M.stat || !in_range(M,src)) - return - - if(istype(magazine, /obj/item/ammo_box/magazine/internal/cylinder)) - var/obj/item/ammo_box/magazine/internal/cylinder/C = magazine - C.spin() - chamber_round(0) - usr.visible_message("[usr] spins [src]'s chamber.", "You spin [src]'s chamber.") - else - verbs -= /obj/item/weapon/gun/projectile/revolver/verb/spin - - -/obj/item/weapon/gun/projectile/revolver/can_shoot() - return get_ammo(0,0) - -/obj/item/weapon/gun/projectile/revolver/get_ammo(countchambered = 0, countempties = 1) - var/boolets = 0 //mature var names for mature people - if (chambered && countchambered) - boolets++ - if (magazine) - boolets += magazine.ammo_count(countempties) - return boolets - -/obj/item/weapon/gun/projectile/revolver/examine(mob/user) - ..() - user << "[get_ammo(0,0)] of those are live rounds." - -/obj/item/weapon/gun/projectile/revolver/detective - name = "\improper .38 Mars Special" - desc = "A cheap Martian knock-off of a classic law enforcement firearm. Uses .38-special rounds." - icon_state = "detective" - mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev38 - unique_rename = 1 - unique_reskin = 1 - -/obj/item/weapon/gun/projectile/revolver/detective/New() - ..() - options["Default"] = "detective" - options["Leopard Spots"] = "detective_leopard" - options["Black Panther"] = "detective_panther" - options["Gold Trim"] = "detective_gold" - options["The Peacemaker"] = "detective_peacemaker" - options["Cancel"] = null - -/obj/item/weapon/gun/projectile/revolver/detective/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params, zone_override = "") - if(magazine.caliber != initial(magazine.caliber)) - if(prob(70 - (magazine.ammo_count() * 10))) //minimum probability of 10, maximum of 60 - playsound(user, fire_sound, 50, 1) - user << "[src] blows up in your face!" - user.take_bodypart_damage(0,20) - user.unEquip(src) - return 0 - ..() - -/obj/item/weapon/gun/projectile/revolver/detective/attackby(obj/item/A, mob/user, params) - ..() - if(istype(A, /obj/item/weapon/screwdriver)) - if(magazine.caliber == "38") - user << "You begin to reinforce the barrel of [src]..." - if(magazine.ammo_count()) - afterattack(user, user) //you know the drill - user.visible_message("[src] goes off!", "[src] goes off in your face!") - return - if(do_after(user, 30/A.toolspeed, target = src)) - if(magazine.ammo_count()) - user << "You can't modify it!" - return - magazine.caliber = "357" - desc = "The barrel and chamber assembly seems to have been modified." - user << "You reinforce the barrel of [src]. Now it will fire .357 rounds." - else - user << "You begin to revert the modifications to [src]..." - if(magazine.ammo_count()) - afterattack(user, user) //and again - user.visible_message("[src] goes off!", "[src] goes off in your face!") - return - if(do_after(user, 30/A.toolspeed, target = src)) - if(magazine.ammo_count()) - user << "You can't modify it!" - return - magazine.caliber = "38" - desc = initial(desc) - user << "You remove the modifications on [src]. Now it will fire .38 rounds." - - -/obj/item/weapon/gun/projectile/revolver/mateba - name = "\improper Unica 6 auto-revolver" - desc = "A retro high-powered autorevolver typically used by officers of the New Russia military. Uses .357 ammo." - icon_state = "mateba" - -/obj/item/weapon/gun/projectile/revolver/golden - name = "\improper Golden revolver" - desc = "This ain't no game, ain't never been no show, And I'll gladly gun down the oldest lady you know. Uses .357 ammo." - icon_state = "goldrevolver" - fire_sound = 'sound/weapons/resonator_blast.ogg' - recoil = 8 - pin = /obj/item/device/firing_pin - -/obj/item/weapon/gun/projectile/revolver/nagant - name = "nagant revolver" - desc = "An old model of revolver that originated in Russia. Able to be suppressed. Uses 7.62x38mmR ammo." - icon_state = "nagant" - origin_tech = "combat=3" - can_suppress = 1 - mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev762 - - -// A gun to play Russian Roulette! -// You can spin the chamber to randomize the position of the bullet. - -/obj/item/weapon/gun/projectile/revolver/russian - name = "\improper russian revolver" - desc = "A Russian-made revolver for drinking games. Uses .357 ammo, and has a mechanism requiring you to spin the chamber before each trigger pull." - origin_tech = "combat=2;materials=2" - mag_type = /obj/item/ammo_box/magazine/internal/rus357 - var/spun = 0 - -/obj/item/weapon/gun/projectile/revolver/russian/New() - ..() - Spin() - update_icon() - -/obj/item/weapon/gun/projectile/revolver/russian/proc/Spin() - chambered = null - var/random = rand(1, magazine.max_ammo) - if(random <= get_ammo(0,0)) - chamber_round() - spun = 1 - -/obj/item/weapon/gun/projectile/revolver/russian/attackby(obj/item/A, mob/user, params) - var/num_loaded = ..() - if(num_loaded) - user.visible_message("[user] loads a single bullet into the revolver and spins the chamber.", "You load a single bullet into the chamber and spin it.") - else - user.visible_message("[user] spins the chamber of the revolver.", "You spin the revolver's chamber.") - if(get_ammo() > 0) - Spin() - update_icon() - A.update_icon() - return - -/obj/item/weapon/gun/projectile/revolver/russian/attack_self(mob/user) - if(!spun && can_shoot()) - user.visible_message("[user] spins the chamber of the revolver.", "You spin the revolver's chamber.") - Spin() - else - var/num_unloaded = 0 - while (get_ammo() > 0) - var/obj/item/ammo_casing/CB - CB = magazine.get_round() - chambered = null - CB.loc = get_turf(src.loc) - CB.update_icon() - num_unloaded++ - if (num_unloaded) - user << "You unload [num_unloaded] shell\s from [src]." - else - user << "[src] is empty." - -/obj/item/weapon/gun/projectile/revolver/russian/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, flag, params) - if(flag) - if(!(target in user.contents) && ismob(target)) - if(user.a_intent == "harm") // Flogging action - return - - if(isliving(user)) - if(!can_trigger_gun(user)) - return - if(target != user) - if(ismob(target)) - user << "A mechanism prevents you from shooting anyone but yourself!" - return - - if(ishuman(user)) - var/mob/living/carbon/human/H = user - if(!spun) - user << "You need to spin the revolver's chamber first!" - return - - spun = 0 - - if(chambered) - var/obj/item/ammo_casing/AC = chambered - if(AC.fire(user, user)) - playsound(user, fire_sound, 50, 1) - var/zone = check_zone(user.zone_selected) - var/obj/item/bodypart/affecting = H.get_bodypart(zone) - if(zone == "head" || zone == "eyes" || zone == "mouth") - shoot_self(user, affecting) - else - user.visible_message("[user.name] cowardly fires [src] at \his [affecting.name]!", "You cowardly fire [src] at your [affecting.name]!", "You hear a gunshot!") - return - - user.visible_message("*click*") - playsound(user, 'sound/weapons/empty.ogg', 100, 1) - -/obj/item/weapon/gun/projectile/revolver/russian/proc/shoot_self(mob/living/carbon/human/user, affecting = "head") - user.apply_damage(300, BRUTE, affecting) - user.visible_message("[user.name] fires [src] at \his head!", "You fire [src] at your head!", "You hear a gunshot!") - -/obj/item/weapon/gun/projectile/revolver/russian/soul - name = "cursed russian revolver" - desc = "To play with this revolver requires wagering your very soul." - -/obj/item/weapon/gun/projectile/revolver/russian/soul/shoot_self(mob/living/user) - ..() - var/obj/item/device/soulstone/anybody/SS = new /obj/item/device/soulstone/anybody(get_turf(src)) - if(!SS.transfer_soul("FORCE", user)) //Something went wrong - qdel(SS) - return - user.visible_message("[user.name]'s soul is captured by \the [src]!", "You've lost the gamble! Your soul is forfiet!") - - - -///////////////////////////// -// DOUBLE BARRELED SHOTGUN // -///////////////////////////// - -/obj/item/weapon/gun/projectile/revolver/doublebarrel - name = "double-barreled shotgun" - desc = "A true classic." - icon_state = "dshotgun" - item_state = "shotgun" - w_class = 4 - force = 10 - flags = CONDUCT - slot_flags = SLOT_BACK - mag_type = /obj/item/ammo_box/magazine/internal/shot/dual - sawn_desc = "Omar's coming!" - unique_rename = 1 - unique_reskin = 1 - -/obj/item/weapon/gun/projectile/revolver/doublebarrel/New() - ..() - options["Default"] = "dshotgun" - options["Dark Red Finish"] = "dshotgun-d" - options["Ash"] = "dshotgun-f" - options["Faded Grey"] = "dshotgun-g" - options["Maple"] = "dshotgun-l" - options["Rosewood"] = "dshotgun-p" - options["Cancel"] = null - -/obj/item/weapon/gun/projectile/revolver/doublebarrel/attackby(obj/item/A, mob/user, params) - ..() - if(istype(A, /obj/item/ammo_box) || istype(A, /obj/item/ammo_casing)) - chamber_round() - if(istype(A, /obj/item/weapon/melee/energy)) - var/obj/item/weapon/melee/energy/W = A - if(W.active) - sawoff(user) - if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/gun/energy/plasmacutter)) - sawoff(user) - -/obj/item/weapon/gun/projectile/revolver/doublebarrel/attack_self(mob/living/user) - var/num_unloaded = 0 - while (get_ammo() > 0) - var/obj/item/ammo_casing/CB - CB = magazine.get_round(0) - chambered = null - CB.loc = get_turf(src.loc) - CB.update_icon() - num_unloaded++ - if (num_unloaded) - user << "You break open \the [src] and unload [num_unloaded] shell\s." - else - user << "[src] is empty!" - - - - -// IMPROVISED SHOTGUN // - -/obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised - name = "improvised shotgun" - desc = "Essentially a tube that aims shotgun shells." - icon_state = "ishotgun" - item_state = "shotgun" - w_class = 4 - force = 10 - slot_flags = null - mag_type = /obj/item/ammo_box/magazine/internal/shot/improvised - sawn_desc = "I'm just here for the gasoline." - unique_rename = 0 - unique_reskin = 0 - var/slung = 0 - -/obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised/attackby(obj/item/A, mob/user, params) - ..() - if(istype(A, /obj/item/stack/cable_coil) && !sawn_state) - var/obj/item/stack/cable_coil/C = A - if(C.use(10)) - slot_flags = SLOT_BACK - user << "You tie the lengths of cable to the shotgun, making a sling." - slung = 1 - update_icon() - else - user << "You need at least ten lengths of cable if you want to make a sling!" - -/obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised/update_icon() - ..() - if(slung) - icon_state += "sling" - -/obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised/sawoff(mob/user) - . = ..() - if(. && slung) //sawing off the gun removes the sling - new /obj/item/stack/cable_coil(get_turf(src), 10) - slung = 0 - update_icon() +/obj/item/weapon/gun/ballistic/revolver + name = "\improper .357 revolver" + desc = "A suspicious revolver. Uses .357 ammo." //usually used by syndicates + icon_state = "revolver" + mag_type = /obj/item/ammo_box/magazine/internal/cylinder + origin_tech = "combat=3;materials=2" + casing_ejector = 0 + +/obj/item/weapon/gun/ballistic/revolver/New() + ..() + if(!istype(magazine, /obj/item/ammo_box/magazine/internal/cylinder)) + verbs -= /obj/item/weapon/gun/ballistic/revolver/verb/spin + +/obj/item/weapon/gun/ballistic/revolver/chamber_round(spin = 1) + if(spin) + chambered = magazine.get_round(1) + else + chambered = magazine.stored_ammo[1] + +/obj/item/weapon/gun/ballistic/revolver/shoot_with_empty_chamber(mob/living/user as mob|obj) + ..() + chamber_round(1) + +/obj/item/weapon/gun/ballistic/revolver/attackby(obj/item/A, mob/user, params) + . = ..() + if(.) + return + var/num_loaded = magazine.attackby(A, user, params, 1) + if(num_loaded) + user << "You load [num_loaded] shell\s into \the [src]." + A.update_icon() + update_icon() + chamber_round(0) + + if(unique_rename) + if(istype(A, /obj/item/weapon/pen)) + rename_weapon(user) + +/obj/item/weapon/gun/ballistic/revolver/attack_self(mob/living/user) + var/num_unloaded = 0 + chambered = null + while (get_ammo() > 0) + var/obj/item/ammo_casing/CB + CB = magazine.get_round(0) + if(CB) + CB.loc = get_turf(src.loc) + CB.SpinAnimation(10, 1) + CB.update_icon() + num_unloaded++ + if (num_unloaded) + user << "You unload [num_unloaded] shell\s from [src]." + else + user << "[src] is empty!" + +/obj/item/weapon/gun/ballistic/revolver/verb/spin() + set name = "Spin Chamber" + set category = "Object" + set desc = "Click to spin your revolver's chamber." + + var/mob/M = usr + + if(M.stat || !in_range(M,src)) + return + + if(istype(magazine, /obj/item/ammo_box/magazine/internal/cylinder)) + var/obj/item/ammo_box/magazine/internal/cylinder/C = magazine + C.spin() + chamber_round(0) + usr.visible_message("[usr] spins [src]'s chamber.", "You spin [src]'s chamber.") + else + verbs -= /obj/item/weapon/gun/ballistic/revolver/verb/spin + + +/obj/item/weapon/gun/ballistic/revolver/can_shoot() + return get_ammo(0,0) + +/obj/item/weapon/gun/ballistic/revolver/get_ammo(countchambered = 0, countempties = 1) + var/boolets = 0 //mature var names for mature people + if (chambered && countchambered) + boolets++ + if (magazine) + boolets += magazine.ammo_count(countempties) + return boolets + +/obj/item/weapon/gun/ballistic/revolver/examine(mob/user) + ..() + user << "[get_ammo(0,0)] of those are live rounds." + +/obj/item/weapon/gun/ballistic/revolver/detective + name = "\improper .38 Mars Special" + desc = "A cheap Martian knock-off of a classic law enforcement firearm. Uses .38-special rounds." + icon_state = "detective" + mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev38 + unique_rename = 1 + unique_reskin = 1 + +/obj/item/weapon/gun/ballistic/revolver/detective/New() + ..() + options["Default"] = "detective" + options["Leopard Spots"] = "detective_leopard" + options["Black Panther"] = "detective_panther" + options["Gold Trim"] = "detective_gold" + options["The Peacemaker"] = "detective_peacemaker" + options["Cancel"] = null + +/obj/item/weapon/gun/ballistic/revolver/detective/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params, zone_override = "") + if(magazine.caliber != initial(magazine.caliber)) + if(prob(70 - (magazine.ammo_count() * 10))) //minimum probability of 10, maximum of 60 + playsound(user, fire_sound, 50, 1) + user << "[src] blows up in your face!" + user.take_bodypart_damage(0,20) + user.unEquip(src) + return 0 + ..() + +/obj/item/weapon/gun/ballistic/revolver/detective/attackby(obj/item/A, mob/user, params) + ..() + if(istype(A, /obj/item/weapon/screwdriver)) + if(magazine.caliber == "38") + user << "You begin to reinforce the barrel of [src]..." + if(magazine.ammo_count()) + afterattack(user, user) //you know the drill + user.visible_message("[src] goes off!", "[src] goes off in your face!") + return + if(do_after(user, 30/A.toolspeed, target = src)) + if(magazine.ammo_count()) + user << "You can't modify it!" + return + magazine.caliber = "357" + desc = "The barrel and chamber assembly seems to have been modified." + user << "You reinforce the barrel of [src]. Now it will fire .357 rounds." + else + user << "You begin to revert the modifications to [src]..." + if(magazine.ammo_count()) + afterattack(user, user) //and again + user.visible_message("[src] goes off!", "[src] goes off in your face!") + return + if(do_after(user, 30/A.toolspeed, target = src)) + if(magazine.ammo_count()) + user << "You can't modify it!" + return + magazine.caliber = "38" + desc = initial(desc) + user << "You remove the modifications on [src]. Now it will fire .38 rounds." + + +/obj/item/weapon/gun/ballistic/revolver/mateba + name = "\improper Unica 6 auto-revolver" + desc = "A retro high-powered autorevolver typically used by officers of the New Russia military. Uses .357 ammo." + icon_state = "mateba" + +/obj/item/weapon/gun/ballistic/revolver/golden + name = "\improper Golden revolver" + desc = "This ain't no game, ain't never been no show, And I'll gladly gun down the oldest lady you know. Uses .357 ammo." + icon_state = "goldrevolver" + fire_sound = 'sound/weapons/resonator_blast.ogg' + recoil = 8 + pin = /obj/item/device/firing_pin + +/obj/item/weapon/gun/ballistic/revolver/nagant + name = "nagant revolver" + desc = "An old model of revolver that originated in Russia. Able to be suppressed. Uses 7.62x38mmR ammo." + icon_state = "nagant" + origin_tech = "combat=3" + can_suppress = 1 + mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev762 + + +// A gun to play Russian Roulette! +// You can spin the chamber to randomize the position of the bullet. + +/obj/item/weapon/gun/ballistic/revolver/russian + name = "\improper russian revolver" + desc = "A Russian-made revolver for drinking games. Uses .357 ammo, and has a mechanism requiring you to spin the chamber before each trigger pull." + origin_tech = "combat=2;materials=2" + mag_type = /obj/item/ammo_box/magazine/internal/rus357 + var/spun = 0 + +/obj/item/weapon/gun/ballistic/revolver/russian/New() + ..() + Spin() + update_icon() + +/obj/item/weapon/gun/ballistic/revolver/russian/proc/Spin() + chambered = null + var/random = rand(1, magazine.max_ammo) + if(random <= get_ammo(0,0)) + chamber_round() + spun = 1 + +/obj/item/weapon/gun/ballistic/revolver/russian/attackby(obj/item/A, mob/user, params) + var/num_loaded = ..() + if(num_loaded) + user.visible_message("[user] loads a single bullet into the revolver and spins the chamber.", "You load a single bullet into the chamber and spin it.") + else + user.visible_message("[user] spins the chamber of the revolver.", "You spin the revolver's chamber.") + if(get_ammo() > 0) + Spin() + update_icon() + A.update_icon() + return + +/obj/item/weapon/gun/ballistic/revolver/russian/attack_self(mob/user) + if(!spun && can_shoot()) + user.visible_message("[user] spins the chamber of the revolver.", "You spin the revolver's chamber.") + Spin() + else + var/num_unloaded = 0 + while (get_ammo() > 0) + var/obj/item/ammo_casing/CB + CB = magazine.get_round() + chambered = null + CB.loc = get_turf(src.loc) + CB.update_icon() + num_unloaded++ + if (num_unloaded) + user << "You unload [num_unloaded] shell\s from [src]." + else + user << "[src] is empty." + +/obj/item/weapon/gun/ballistic/revolver/russian/afterattack(atom/target, mob/living/user, flag, params) + if(flag) + if(!(target in user.contents) && ismob(target)) + if(user.a_intent == "harm") // Flogging action + return + + if(isliving(user)) + if(!can_trigger_gun(user)) + return + if(target != user) + if(ismob(target)) + user << "A mechanism prevents you from shooting anyone but yourself!" + return + + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(!spun) + user << "You need to spin the revolver's chamber first!" + return + + spun = 0 + + if(chambered) + var/obj/item/ammo_casing/AC = chambered + if(AC.fire_casing(user, user)) + playsound(user, fire_sound, 50, 1) + var/zone = check_zone(user.zone_selected) + var/obj/item/bodypart/affecting = H.get_bodypart(zone) + if(zone == "head" || zone == "eyes" || zone == "mouth") + shoot_self(user, affecting) + else + user.visible_message("[user.name] cowardly fires [src] at \his [affecting.name]!", "You cowardly fire [src] at your [affecting.name]!", "You hear a gunshot!") + return + + user.visible_message("*click*") + playsound(user, 'sound/weapons/empty.ogg', 100, 1) + +/obj/item/weapon/gun/ballistic/revolver/russian/proc/shoot_self(mob/living/carbon/human/user, affecting = "head") + user.apply_damage(300, BRUTE, affecting) + user.visible_message("[user.name] fires [src] at \his head!", "You fire [src] at your head!", "You hear a gunshot!") + +/obj/item/weapon/gun/ballistic/revolver/russian/soul + name = "cursed russian revolver" + desc = "To play with this revolver requires wagering your very soul." + +/obj/item/weapon/gun/ballistic/revolver/russian/soul/shoot_self(mob/living/user) + ..() + var/obj/item/device/soulstone/anybody/SS = new /obj/item/device/soulstone/anybody(get_turf(src)) + if(!SS.transfer_soul("FORCE", user)) //Something went wrong + qdel(SS) + return + user.visible_message("[user.name]'s soul is captured by \the [src]!", "You've lost the gamble! Your soul is forfiet!") + + + +///////////////////////////// +// DOUBLE BARRELED SHOTGUN // +///////////////////////////// + +/obj/item/weapon/gun/ballistic/revolver/doublebarrel + name = "double-barreled shotgun" + desc = "A true classic." + icon_state = "dshotgun" + item_state = "shotgun" + w_class = 4 + force = 10 + flags = CONDUCT + slot_flags = SLOT_BACK + mag_type = /obj/item/ammo_box/magazine/internal/shot/dual + sawn_desc = "Omar's coming!" + unique_rename = 1 + unique_reskin = 1 + +/obj/item/weapon/gun/ballistic/revolver/doublebarrel/New() + ..() + options["Default"] = "dshotgun" + options["Dark Red Finish"] = "dshotgun-d" + options["Ash"] = "dshotgun-f" + options["Faded Grey"] = "dshotgun-g" + options["Maple"] = "dshotgun-l" + options["Rosewood"] = "dshotgun-p" + options["Cancel"] = null + +/obj/item/weapon/gun/ballistic/revolver/doublebarrel/attackby(obj/item/A, mob/user, params) + ..() + if(istype(A, /obj/item/ammo_box) || istype(A, /obj/item/ammo_casing)) + chamber_round() + if(istype(A, /obj/item/weapon/melee/energy)) + var/obj/item/weapon/melee/energy/W = A + if(W.active) + sawoff(user) + if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/gun/energy/plasmacutter)) + sawoff(user) + +/obj/item/weapon/gun/ballistic/revolver/doublebarrel/attack_self(mob/living/user) + var/num_unloaded = 0 + while (get_ammo() > 0) + var/obj/item/ammo_casing/CB + CB = magazine.get_round(0) + chambered = null + CB.loc = get_turf(src.loc) + CB.update_icon() + num_unloaded++ + if (num_unloaded) + user << "You break open \the [src] and unload [num_unloaded] shell\s." + else + user << "[src] is empty!" + + + + +// IMPROVISED SHOTGUN // + +/obj/item/weapon/gun/ballistic/revolver/doublebarrel/improvised + name = "improvised shotgun" + desc = "Essentially a tube that aims shotgun shells." + icon_state = "ishotgun" + item_state = "shotgun" + w_class = 4 + force = 10 + slot_flags = null + mag_type = /obj/item/ammo_box/magazine/internal/shot/improvised + sawn_desc = "I'm just here for the gasoline." + unique_rename = 0 + unique_reskin = 0 + var/slung = 0 + +/obj/item/weapon/gun/ballistic/revolver/doublebarrel/improvised/attackby(obj/item/A, mob/user, params) + ..() + if(istype(A, /obj/item/stack/cable_coil) && !sawn_state) + var/obj/item/stack/cable_coil/C = A + if(C.use(10)) + slot_flags = SLOT_BACK + user << "You tie the lengths of cable to the shotgun, making a sling." + slung = 1 + update_icon() + else + user << "You need at least ten lengths of cable if you want to make a sling!" + +/obj/item/weapon/gun/ballistic/revolver/doublebarrel/improvised/update_icon() + ..() + if(slung) + icon_state += "sling" + +/obj/item/weapon/gun/ballistic/revolver/doublebarrel/improvised/sawoff(mob/user) + . = ..() + if(. && slung) //sawing off the gun removes the sling + new /obj/item/stack/cable_coil(get_turf(src), 10) + slung = 0 + update_icon() diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm similarity index 65% rename from code/modules/projectiles/guns/projectile/shotgun.dm rename to code/modules/projectiles/guns/ballistic/shotgun.dm index cd3834253ef..15eaf9a0764 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -1,212 +1,213 @@ -/obj/item/weapon/gun/projectile/shotgun - name = "shotgun" - desc = "A traditional shotgun with wood furniture and a four-shell capacity underneath." - icon_state = "shotgun" - item_state = "shotgun" - w_class = 4 - force = 10 - flags = CONDUCT - slot_flags = SLOT_BACK - origin_tech = "combat=4;materials=2" - mag_type = /obj/item/ammo_box/magazine/internal/shot - var/recentpump = 0 // to prevent spammage - -/obj/item/weapon/gun/projectile/shotgun/attackby(obj/item/A, mob/user, params) - . = ..() - if(.) - return - var/num_loaded = magazine.attackby(A, user, params, 1) - if(num_loaded) - user << "You load [num_loaded] shell\s into \the [src]!" - A.update_icon() - update_icon() - -/obj/item/weapon/gun/projectile/shotgun/process_chamber() - return ..(0, 0) - -/obj/item/weapon/gun/projectile/shotgun/chamber_round() - return - -/obj/item/weapon/gun/projectile/shotgun/can_shoot() - if(!chambered) - return 0 - return (chambered.BB ? 1 : 0) - -/obj/item/weapon/gun/projectile/shotgun/attack_self(mob/living/user) - if(recentpump) - return - pump(user) - recentpump = 1 - spawn(10) - recentpump = 0 - return - -/obj/item/weapon/gun/projectile/shotgun/blow_up(mob/user) - . = 0 - if(chambered && chambered.BB) - process_fire(user, user,0) - . = 1 - -/obj/item/weapon/gun/projectile/shotgun/proc/pump(mob/M) - playsound(M, 'sound/weapons/shotgunpump.ogg', 60, 1) - pump_unload(M) - pump_reload(M) - update_icon() //I.E. fix the desc - return 1 - -/obj/item/weapon/gun/projectile/shotgun/proc/pump_unload(mob/M) - if(chambered)//We have a shell in the chamber - chambered.loc = get_turf(src)//Eject casing - chambered.SpinAnimation(5, 1) - chambered = null - -/obj/item/weapon/gun/projectile/shotgun/proc/pump_reload(mob/M) - if(!magazine.ammo_count()) - return 0 - var/obj/item/ammo_casing/AC = magazine.get_round() //load next casing. - chambered = AC - - -/obj/item/weapon/gun/projectile/shotgun/examine(mob/user) - ..() - if (chambered) - user << "A [chambered.BB ? "live" : "spent"] one is in the chamber." - -/obj/item/weapon/gun/projectile/shotgun/lethal - mag_type = /obj/item/ammo_box/magazine/internal/shot/lethal - -// RIOT SHOTGUN // - -/obj/item/weapon/gun/projectile/shotgun/riot //for spawn in the armory - name = "riot shotgun" - desc = "A sturdy shotgun with a longer magazine and a fixed tactical stock designed for non-lethal riot control." - icon_state = "riotshotgun" - mag_type = /obj/item/ammo_box/magazine/internal/shot/riot - sawn_desc = "Come with me if you want to live." - -/obj/item/weapon/gun/projectile/shotgun/riot/attackby(obj/item/A, mob/user, params) - ..() - if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/gun/energy/plasmacutter)) - sawoff(user) - if(istype(A, /obj/item/weapon/melee/energy)) - var/obj/item/weapon/melee/energy/W = A - if(W.active) - sawoff(user) - -/////////////////////// -// BOLT ACTION RIFLE // -/////////////////////// - -/obj/item/weapon/gun/projectile/shotgun/boltaction - name = "\improper Mosin Nagant" - desc = "This piece of junk looks like something that could have been used 700 years ago. It feels slightly moist." - icon_state = "moistnugget" - item_state = "moistnugget" - slot_flags = 0 //no SLOT_BACK sprite, alas - mag_type = /obj/item/ammo_box/magazine/internal/boltaction - var/bolt_open = 0 - -/obj/item/weapon/gun/projectile/shotgun/boltaction/pump(mob/M) - playsound(M, 'sound/weapons/shotgunpump.ogg', 60, 1) - if(bolt_open) - pump_reload(M) - else - pump_unload(M) - bolt_open = !bolt_open - update_icon() //I.E. fix the desc - return 1 - -/obj/item/weapon/gun/projectile/shotgun/boltaction/attackby(obj/item/A, mob/user, params) - if(!bolt_open) - user << "The bolt is closed!" - return - . = ..() - -/obj/item/weapon/gun/projectile/shotgun/boltaction/examine(mob/user) - ..() - user << "The bolt is [bolt_open ? "open" : "closed"]." - - -/obj/item/weapon/gun/projectile/shotgun/boltaction/enchanted - name = "enchanted bolt action rifle" - desc = "Careful not to lose your head." - var/guns_left = 30 - mag_type = /obj/item/ammo_box/magazine/internal/boltaction/enchanted - -/obj/item/weapon/gun/projectile/shotgun/boltaction/enchanted/New() - ..() - bolt_open = 1 - pump() - -/obj/item/weapon/gun/projectile/shotgun/boltaction/enchanted/dropped() - ..() - guns_left = 0 - -/obj/item/weapon/gun/projectile/shotgun/boltaction/enchanted/shoot_live_shot(mob/living/user as mob|obj, pointblank = 0, mob/pbtarget = null, message = 1) - ..() - if(guns_left) - var/obj/item/weapon/gun/projectile/shotgun/boltaction/enchanted/GUN = new - GUN.guns_left = src.guns_left - 1 - user.drop_item() - user.swap_hand() - user.put_in_hands(GUN) - else - user.drop_item() - src.throw_at_fast(pick(oview(7,get_turf(user))),1,1) - user.visible_message("[user] tosses aside the spent rifle!") - -// Automatic Shotguns// - -/obj/item/weapon/gun/projectile/shotgun/automatic/shoot_live_shot(mob/living/user as mob|obj) - ..() - src.pump(user) - -/obj/item/weapon/gun/projectile/shotgun/automatic/combat - name = "combat shotgun" - desc = "A semi automatic shotgun with tactical furniture and a six-shell capacity underneath." - icon_state = "cshotgun" - origin_tech = "combat=6" - mag_type = /obj/item/ammo_box/magazine/internal/shot/com - w_class = 5 - -//Dual Feed Shotgun - -/obj/item/weapon/gun/projectile/shotgun/automatic/dual_tube - name = "cycler shotgun" - desc = "An advanced shotgun with two separate magazine tubes, allowing you to quickly toggle between ammo types." - icon_state = "cycler" - origin_tech = "combat=4;materials=2" - mag_type = /obj/item/ammo_box/magazine/internal/shot/tube - w_class = 5 - var/toggled = 0 - var/obj/item/ammo_box/magazine/internal/shot/alternate_magazine - -/obj/item/weapon/gun/projectile/shotgun/automatic/dual_tube/New() - ..() - if (!alternate_magazine) - alternate_magazine = new mag_type(src) - -/obj/item/weapon/gun/projectile/shotgun/automatic/dual_tube/attack_self(mob/living/user) - if(!chambered && magazine.contents.len) - pump() - else - toggle_tube(user) - -/obj/item/weapon/gun/projectile/shotgun/automatic/dual_tube/proc/toggle_tube(mob/living/user) - var/current_mag = magazine - var/alt_mag = alternate_magazine - magazine = alt_mag - alternate_magazine = current_mag - toggled = !toggled - if(toggled) - user << "You switch to tube B." - else - user << "You switch to tube A." - -/obj/item/weapon/gun/projectile/shotgun/automatic/dual_tube/AltClick(mob/living/user) - if(user.incapacitated() || !Adjacent(user) || !istype(user)) - return - pump() - - -// DOUBLE BARRELED SHOTGUN and IMPROVISED SHOTGUN are in revolver.dm +/obj/item/weapon/gun/ballistic/shotgun + name = "shotgun" + desc = "A traditional shotgun with wood furniture and a four-shell capacity underneath." + icon_state = "shotgun" + item_state = "shotgun" + w_class = 4 + force = 10 + flags = CONDUCT + slot_flags = SLOT_BACK + origin_tech = "combat=4;materials=2" + mag_type = /obj/item/ammo_box/magazine/internal/shot + casing_ejector = 0 + var/recentpump = 0 // to prevent spammage + +/obj/item/weapon/gun/ballistic/shotgun/attackby(obj/item/A, mob/user, params) + . = ..() + if(.) + return + var/num_loaded = magazine.attackby(A, user, params, 1) + if(num_loaded) + user << "You load [num_loaded] shell\s into \the [src]!" + A.update_icon() + update_icon() + +/obj/item/weapon/gun/ballistic/shotgun/process_chamber(empty_chamber = 0) + return ..() //changed argument value + +/obj/item/weapon/gun/ballistic/shotgun/chamber_round() + return + +/obj/item/weapon/gun/ballistic/shotgun/can_shoot() + if(!chambered) + return 0 + return (chambered.BB ? 1 : 0) + +/obj/item/weapon/gun/ballistic/shotgun/attack_self(mob/living/user) + if(recentpump) + return + pump(user) + recentpump = 1 + spawn(10) + recentpump = 0 + return + +/obj/item/weapon/gun/ballistic/shotgun/blow_up(mob/user) + . = 0 + if(chambered && chambered.BB) + process_fire(user, user,0) + . = 1 + +/obj/item/weapon/gun/ballistic/shotgun/proc/pump(mob/M) + playsound(M, 'sound/weapons/shotgunpump.ogg', 60, 1) + pump_unload(M) + pump_reload(M) + update_icon() //I.E. fix the desc + return 1 + +/obj/item/weapon/gun/ballistic/shotgun/proc/pump_unload(mob/M) + if(chambered)//We have a shell in the chamber + chambered.loc = get_turf(src)//Eject casing + chambered.SpinAnimation(5, 1) + chambered = null + +/obj/item/weapon/gun/ballistic/shotgun/proc/pump_reload(mob/M) + if(!magazine.ammo_count()) + return 0 + var/obj/item/ammo_casing/AC = magazine.get_round() //load next casing. + chambered = AC + + +/obj/item/weapon/gun/ballistic/shotgun/examine(mob/user) + ..() + if (chambered) + user << "A [chambered.BB ? "live" : "spent"] one is in the chamber." + +/obj/item/weapon/gun/ballistic/shotgun/lethal + mag_type = /obj/item/ammo_box/magazine/internal/shot/lethal + +// RIOT SHOTGUN // + +/obj/item/weapon/gun/ballistic/shotgun/riot //for spawn in the armory + name = "riot shotgun" + desc = "A sturdy shotgun with a longer magazine and a fixed tactical stock designed for non-lethal riot control." + icon_state = "riotshotgun" + mag_type = /obj/item/ammo_box/magazine/internal/shot/riot + sawn_desc = "Come with me if you want to live." + +/obj/item/weapon/gun/ballistic/shotgun/riot/attackby(obj/item/A, mob/user, params) + ..() + if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/gun/energy/plasmacutter)) + sawoff(user) + if(istype(A, /obj/item/weapon/melee/energy)) + var/obj/item/weapon/melee/energy/W = A + if(W.active) + sawoff(user) + +/////////////////////// +// BOLT ACTION RIFLE // +/////////////////////// + +/obj/item/weapon/gun/ballistic/shotgun/boltaction + name = "\improper Mosin Nagant" + desc = "This piece of junk looks like something that could have been used 700 years ago. It feels slightly moist." + icon_state = "moistnugget" + item_state = "moistnugget" + slot_flags = 0 //no SLOT_BACK sprite, alas + mag_type = /obj/item/ammo_box/magazine/internal/boltaction + var/bolt_open = 0 + +/obj/item/weapon/gun/ballistic/shotgun/boltaction/pump(mob/M) + playsound(M, 'sound/weapons/shotgunpump.ogg', 60, 1) + if(bolt_open) + pump_reload(M) + else + pump_unload(M) + bolt_open = !bolt_open + update_icon() //I.E. fix the desc + return 1 + +/obj/item/weapon/gun/ballistic/shotgun/boltaction/attackby(obj/item/A, mob/user, params) + if(!bolt_open) + user << "The bolt is closed!" + return + . = ..() + +/obj/item/weapon/gun/ballistic/shotgun/boltaction/examine(mob/user) + ..() + user << "The bolt is [bolt_open ? "open" : "closed"]." + + +/obj/item/weapon/gun/ballistic/shotgun/boltaction/enchanted + name = "enchanted bolt action rifle" + desc = "Careful not to lose your head." + var/guns_left = 30 + mag_type = /obj/item/ammo_box/magazine/internal/boltaction/enchanted + +/obj/item/weapon/gun/ballistic/shotgun/boltaction/enchanted/New() + ..() + bolt_open = 1 + pump() + +/obj/item/weapon/gun/ballistic/shotgun/boltaction/enchanted/dropped() + ..() + guns_left = 0 + +/obj/item/weapon/gun/ballistic/shotgun/boltaction/enchanted/shoot_live_shot(mob/living/user as mob|obj, pointblank = 0, mob/pbtarget = null, message = 1) + ..() + if(guns_left) + var/obj/item/weapon/gun/ballistic/shotgun/boltaction/enchanted/GUN = new + GUN.guns_left = src.guns_left - 1 + user.drop_item() + user.swap_hand() + user.put_in_hands(GUN) + else + user.drop_item() + src.throw_at_fast(pick(oview(7,get_turf(user))),1,1) + user.visible_message("[user] tosses aside the spent rifle!") + +// Automatic Shotguns// + +/obj/item/weapon/gun/ballistic/shotgun/automatic/shoot_live_shot(mob/living/user as mob|obj) + ..() + src.pump(user) + +/obj/item/weapon/gun/ballistic/shotgun/automatic/combat + name = "combat shotgun" + desc = "A semi automatic shotgun with tactical furniture and a six-shell capacity underneath." + icon_state = "cshotgun" + origin_tech = "combat=6" + mag_type = /obj/item/ammo_box/magazine/internal/shot/com + w_class = 5 + +//Dual Feed Shotgun + +/obj/item/weapon/gun/ballistic/shotgun/automatic/dual_tube + name = "cycler shotgun" + desc = "An advanced shotgun with two separate magazine tubes, allowing you to quickly toggle between ammo types." + icon_state = "cycler" + origin_tech = "combat=4;materials=2" + mag_type = /obj/item/ammo_box/magazine/internal/shot/tube + w_class = 5 + var/toggled = 0 + var/obj/item/ammo_box/magazine/internal/shot/alternate_magazine + +/obj/item/weapon/gun/ballistic/shotgun/automatic/dual_tube/New() + ..() + if (!alternate_magazine) + alternate_magazine = new mag_type(src) + +/obj/item/weapon/gun/ballistic/shotgun/automatic/dual_tube/attack_self(mob/living/user) + if(!chambered && magazine.contents.len) + pump() + else + toggle_tube(user) + +/obj/item/weapon/gun/ballistic/shotgun/automatic/dual_tube/proc/toggle_tube(mob/living/user) + var/current_mag = magazine + var/alt_mag = alternate_magazine + magazine = alt_mag + alternate_magazine = current_mag + toggled = !toggled + if(toggled) + user << "You switch to tube B." + else + user << "You switch to tube A." + +/obj/item/weapon/gun/ballistic/shotgun/automatic/dual_tube/AltClick(mob/living/user) + if(user.incapacitated() || !Adjacent(user) || !istype(user)) + return + pump() + + +// DOUBLE BARRELED SHOTGUN and IMPROVISED SHOTGUN are in revolver.dm diff --git a/code/modules/projectiles/guns/projectile/toy.dm b/code/modules/projectiles/guns/ballistic/toy.dm similarity index 62% rename from code/modules/projectiles/guns/projectile/toy.dm rename to code/modules/projectiles/guns/ballistic/toy.dm index 417f13ea9b5..71a10a245d3 100644 --- a/code/modules/projectiles/guns/projectile/toy.dm +++ b/code/modules/projectiles/guns/ballistic/toy.dm @@ -1,4 +1,4 @@ -/obj/item/weapon/gun/projectile/automatic/toy +/obj/item/weapon/gun/ballistic/automatic/toy name = "foam force SMG" desc = "A prototype three-round burst toy submachine gun. Ages 8 and up." icon = 'icons/obj/guns/toy.dmi' @@ -12,14 +12,12 @@ can_suppress = 0 clumsy_check = 0 needs_permit = 0 + casing_ejector = 0 -/obj/item/weapon/gun/projectile/automatic/toy/process_chamber(eject_casing = 0, empty_chamber = 1) - ..() - -/obj/item/weapon/gun/projectile/automatic/toy/unrestricted +/obj/item/weapon/gun/ballistic/automatic/toy/unrestricted pin = /obj/item/device/firing_pin -/obj/item/weapon/gun/projectile/automatic/toy/pistol +/obj/item/weapon/gun/ballistic/automatic/toy/pistol name = "foam force pistol" desc = "A small, easily concealable toy handgun. Ages 8 and up." icon_state = "pistol" @@ -31,24 +29,24 @@ fire_delay = 0 actions_types = list() -/obj/item/weapon/gun/projectile/automatic/toy/pistol/update_icon() +/obj/item/weapon/gun/ballistic/automatic/toy/pistol/update_icon() ..() icon_state = "[initial(icon_state)][chambered ? "" : "-e"]" -/obj/item/weapon/gun/projectile/automatic/toy/pistol/riot +/obj/item/weapon/gun/ballistic/automatic/toy/pistol/riot mag_type = /obj/item/ammo_box/magazine/toy/pistol/riot -/obj/item/weapon/gun/projectile/automatic/toy/pistol/riot/New() +/obj/item/weapon/gun/ballistic/automatic/toy/pistol/riot/New() magazine = new /obj/item/ammo_box/magazine/toy/pistol/riot(src) ..() -/obj/item/weapon/gun/projectile/automatic/toy/pistol/unrestricted +/obj/item/weapon/gun/ballistic/automatic/toy/pistol/unrestricted pin = /obj/item/device/firing_pin -/obj/item/weapon/gun/projectile/automatic/toy/pistol/riot/unrestricted +/obj/item/weapon/gun/ballistic/automatic/toy/pistol/riot/unrestricted pin = /obj/item/device/firing_pin -/obj/item/weapon/gun/projectile/shotgun/toy +/obj/item/weapon/gun/ballistic/shotgun/toy name = "foam force shotgun" desc = "A toy shotgun with wood furniture and a four-shell capacity underneath. Ages 8 and up." icon = 'icons/obj/guns/toy.dmi' @@ -58,16 +56,17 @@ mag_type = /obj/item/ammo_box/magazine/internal/shot/toy clumsy_check = 0 needs_permit = 0 + casing_ejector = 0 -/obj/item/weapon/gun/projectile/shotgun/toy/process_chamber() +/obj/item/weapon/gun/ballistic/shotgun/toy/process_chamber(empty_chamber = 0) ..() if(chambered && !chambered.BB) qdel(chambered) -/obj/item/weapon/gun/projectile/shotgun/toy/unrestricted +/obj/item/weapon/gun/ballistic/shotgun/toy/unrestricted pin = /obj/item/device/firing_pin -/obj/item/weapon/gun/projectile/shotgun/toy/crossbow +/obj/item/weapon/gun/ballistic/shotgun/toy/crossbow name = "foam force crossbow" desc = "A weapon favored by many overactive children. Ages 8 and up." icon = 'icons/obj/toy.dmi' @@ -78,31 +77,26 @@ slot_flags = SLOT_BELT w_class = 2 -/obj/item/weapon/gun/projectile/automatic/c20r/toy +/obj/item/weapon/gun/ballistic/automatic/c20r/toy name = "donksoft SMG" desc = "A bullpup two-round burst toy SMG, designated 'C-20r'. Ages 8 and up." icon = 'icons/obj/guns/toy.dmi' can_suppress = 0 needs_permit = 0 mag_type = /obj/item/ammo_box/magazine/toy/smgm45 + casing_ejector = 0 -/obj/item/weapon/gun/projectile/automatic/c20r/toy/process_chamber(eject_casing = 0, empty_chamber = 1) - ..() - - -/obj/item/weapon/gun/projectile/automatic/c20r/toy/unrestricted +/obj/item/weapon/gun/ballistic/automatic/c20r/toy/unrestricted pin = /obj/item/device/firing_pin -/obj/item/weapon/gun/projectile/automatic/l6_saw/toy +/obj/item/weapon/gun/ballistic/automatic/l6_saw/toy name = "donksoft LMG" desc = "A heavily modified toy light machine gun, designated 'L6 SAW'. Ages 8 and up." icon = 'icons/obj/guns/toy.dmi' can_suppress = 0 needs_permit = 0 mag_type = /obj/item/ammo_box/magazine/toy/m762 + casing_ejector = 0 -/obj/item/weapon/gun/projectile/automatic/l6_saw/toy/process_chamber(eject_casing = 0, empty_chamber = 1) - ..() - -/obj/item/weapon/gun/projectile/automatic/l6_saw/toy/unrestricted +/obj/item/weapon/gun/ballistic/automatic/l6_saw/toy/unrestricted pin = /obj/item/device/firing_pin \ No newline at end of file diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index 8e6edf2608a..b5d19b27743 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -16,9 +16,12 @@ var/selfcharge = 0 var/charge_tick = 0 var/charge_delay = 4 + var/use_cyborg_cell = 0 //whether the gun's cell drains the cyborg user's cell to recharge /obj/item/weapon/gun/energy/emp_act(severity) power_supply.use(round(power_supply.charge / severity)) + chambered = null //we empty the chamber + recharge_newshot() //and try to charge a new shot update_icon() @@ -30,11 +33,10 @@ power_supply = new(src) power_supply.give(power_supply.maxcharge) update_ammo_types() + recharge_newshot(1) if(selfcharge) START_PROCESSING(SSobj, src) update_icon() - return - /obj/item/weapon/gun/energy/proc/update_ammo_types() var/obj/item/ammo_casing/energy/shot @@ -62,6 +64,8 @@ if(!power_supply) return power_supply.give(100) + if(!chambered) //if empty chamber we try to charge a new shot + recharge_newshot(1) update_icon() /obj/item/weapon/gun/energy/attack_self(mob/living/user as mob) @@ -69,29 +73,33 @@ select_fire(user) update_icon() -/obj/item/weapon/gun/energy/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, params) - newshot() //prepare a new shot - ..() - /obj/item/weapon/gun/energy/can_shoot() var/obj/item/ammo_casing/energy/shot = ammo_type[select] return power_supply.charge >= shot.e_cost -/obj/item/weapon/gun/energy/newshot() +/obj/item/weapon/gun/energy/recharge_newshot(no_cyborg_drain) if (!ammo_type || !power_supply) return - var/obj/item/ammo_casing/energy/shot = ammo_type[select] - if(power_supply.charge >= shot.e_cost) //if there's enough power in the power_supply cell... - chambered = shot //...prepare a new shot based on the current ammo type selected - chambered.newshot() - return + if(use_cyborg_cell && !no_cyborg_drain) + if(iscyborg(loc)) + var/mob/living/silicon/robot/R = loc + if(R.cell) + var/obj/item/ammo_casing/energy/shot = ammo_type[select] //Necessary to find cost of shot + if(R.cell.use(shot.e_cost)) //Take power from the borg... + power_supply.give(shot.e_cost) //... to recharge the shot + if(!chambered) + var/obj/item/ammo_casing/energy/AC = ammo_type[select] + if(power_supply.charge >= AC.e_cost) //if there's enough power in the power_supply cell... + chambered = AC //...prepare a new shot based on the current ammo type selected + if(!chambered.BB) + chambered.newshot() /obj/item/weapon/gun/energy/process_chamber() if(chambered && !chambered.BB) //if BB is null, i.e the shot has been fired... var/obj/item/ammo_casing/energy/shot = chambered power_supply.use(shot.e_cost)//... drain the power_supply cell chambered = null //either way, released the prepared shot - return + recharge_newshot() //try to charge a new shot /obj/item/weapon/gun/energy/proc/select_fire(mob/living/user) select++ @@ -102,6 +110,8 @@ fire_delay = shot.delay if (shot.select_name) user << "[src] is now set to [shot.select_name]." + chambered = null + recharge_newshot(1) update_icon() return @@ -126,9 +136,9 @@ add_overlay(image(icon = icon, icon_state = iconState, pixel_x = ammo_x_offset * (i -1))) else add_overlay(image(icon = icon, icon_state = "[icon_state]_charge[ratio]")) - if(F && can_flashlight) + if(gun_light && can_flashlight) var/iconF = "flight" - if(F.on) + if(gun_light.on) iconF = "flight_on" add_overlay(image(icon = icon, icon_state = iconF, pixel_x = flight_x_offset, pixel_y = flight_y_offset)) if(itemState) @@ -157,14 +167,6 @@ playsound(loc, 'sound/weapons/empty.ogg', 50, 1, -1) return (OXYLOSS) -/obj/item/weapon/gun/energy/proc/robocharge() - if(iscyborg(src.loc)) - var/mob/living/silicon/robot/R = src.loc - if(R && R.cell) - var/obj/item/ammo_casing/energy/shot = ammo_type[select] //Necessary to find cost of shot - if(R.cell.use(shot.e_cost)) //Take power from the borg... - power_supply.give(shot.e_cost) //... to recharge the shot - /obj/item/weapon/gun/energy/on_varedit(modified_var) if(modified_var == "selfcharge") if(selfcharge) diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/energy_gun.dm similarity index 75% rename from code/modules/projectiles/guns/energy/nuclear.dm rename to code/modules/projectiles/guns/energy/energy_gun.dm index e50f313dedc..0eae9ee65e4 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -1,125 +1,131 @@ -/obj/item/weapon/gun/energy/gun - name = "energy gun" - desc = "A basic hybrid energy gun with two settings: disable and kill." - icon_state = "energy" - item_state = null //so the human update icon uses the icon_state instead. - ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser) - origin_tech = "combat=4;magnets=3" - modifystate = 2 - can_flashlight = 1 - ammo_x_offset = 3 - flight_x_offset = 15 - flight_y_offset = 10 - -/obj/item/weapon/gun/energy/gun/mini - name = "miniature energy gun" - desc = "A small, pistol-sized energy gun with a built-in flashlight. It has two settings: stun and kill." - icon_state = "mini" - item_state = "gun" - w_class = 2 - cell_type = /obj/item/weapon/stock_parts/cell{charge = 600; maxcharge = 600} - ammo_x_offset = 2 - charge_sections = 3 - can_flashlight = 0 // Can't attach or detach the flashlight, and override it's icon update - -/obj/item/weapon/gun/energy/gun/mini/New() - F = new /obj/item/device/flashlight/seclite(src) - ..() - -/obj/item/weapon/gun/energy/gun/mini/update_icon() - ..() - if(F && F.on) - add_overlay("mini-light") - -/obj/item/weapon/gun/energy/gun/hos - name = "\improper X-01 MultiPhase Energy Gun" - desc = "This is an expensive, modern recreation of an antique laser gun. This gun has several unique firemodes, but lacks the ability to recharge over time." - icon_state = "hoslaser" - origin_tech = null - force = 10 - ammo_type = list(/obj/item/ammo_casing/energy/electrode/hos, /obj/item/ammo_casing/energy/laser/hos, /obj/item/ammo_casing/energy/disabler) - ammo_x_offset = 4 - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF - -/obj/item/weapon/gun/energy/gun/dragnet - name = "\improper DRAGnet" - desc = "The \"Dynamic Rapid-Apprehension of the Guilty\" net is a revolution in law enforcement technology." - icon_state = "dragnet" - origin_tech = "combat=4;magnets=3;bluespace=4" - ammo_type = list(/obj/item/ammo_casing/energy/net, /obj/item/ammo_casing/energy/trap) - can_flashlight = 0 - ammo_x_offset = 1 - -/obj/item/weapon/gun/energy/gun/dragnet/snare - name = "Energy Snare Launcher" - desc = "Fires an energy snare that slows the target down" - ammo_type = list(/obj/item/ammo_casing/energy/trap) - -/obj/item/weapon/gun/energy/gun/turret - name = "hybrid turret gun" - desc = "A heavy hybrid energy cannon with two settings: Stun and kill." - icon_state = "turretlaser" - item_state = "turretlaser" - slot_flags = null - w_class = 5 - ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser) - weapon_weight = WEAPON_MEDIUM - can_flashlight = 0 - trigger_guard = TRIGGER_GUARD_NONE - ammo_x_offset = 2 - -/obj/item/weapon/gun/energy/gun/nuclear - name = "advanced energy gun" - desc = "An energy gun with an experimental miniaturized nuclear reactor that automatically charges the internal power cell." - icon_state = "nucgun" - item_state = "nucgun" - origin_tech = "combat=4;magnets=4;powerstorage=4" - charge_delay = 5 - pin = null - can_charge = 0 - ammo_x_offset = 1 - ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser, /obj/item/ammo_casing/energy/disabler) - selfcharge = 1 - var/fail_tick = 0 - var/fail_chance = 0 - -/obj/item/weapon/gun/energy/gun/nuclear/process() - if(fail_tick > 0) - fail_tick-- - ..() - -/obj/item/weapon/gun/energy/gun/nuclear/shoot_live_shot() - failcheck() - update_icon() - ..() - -/obj/item/weapon/gun/energy/gun/nuclear/proc/failcheck() - if(prob(fail_chance) && isliving(loc)) - var/mob/living/M = loc - switch(fail_tick) - if(0 to 200) - fail_tick += (2*(fail_chance)) - M.rad_act(40) - M << "Your [name] feels warmer." - if(201 to INFINITY) - SSobj.processing.Remove(src) - M.rad_act(80) - crit_fail = 1 - M << "Your [name]'s reactor overloads!" - -/obj/item/weapon/gun/energy/gun/nuclear/emp_act(severity) - ..() - fail_chance = min(fail_chance + round(15/severity), 100) - -/obj/item/weapon/gun/energy/gun/nuclear/update_icon() - ..() - if(crit_fail) - add_overlay("[icon_state]_fail_3") - else - switch(fail_tick) - if(0) - add_overlay("[icon_state]_fail_0") - if(1 to 150) - add_overlay("[icon_state]_fail_1") - if(151 to INFINITY) - add_overlay("[icon_state]_fail_2") +/obj/item/weapon/gun/energy/e_gun + name = "energy gun" + desc = "A basic hybrid energy gun with two settings: disable and kill." + icon_state = "energy" + item_state = null //so the human update icon uses the icon_state instead. + ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser) + origin_tech = "combat=4;magnets=3" + modifystate = 1 + can_flashlight = 1 + ammo_x_offset = 3 + flight_x_offset = 15 + flight_y_offset = 10 + +/obj/item/weapon/gun/energy/e_gun/mini + name = "miniature energy gun" + desc = "A small, pistol-sized energy gun with a built-in flashlight. It has two settings: stun and kill." + icon_state = "mini" + item_state = "gun" + w_class = 2 + cell_type = /obj/item/weapon/stock_parts/cell{charge = 600; maxcharge = 600} + ammo_x_offset = 2 + charge_sections = 3 + can_flashlight = 0 // Can't attach or detach the flashlight, and override it's icon update + +/obj/item/weapon/gun/energy/e_gun/mini/New() + gun_light = new /obj/item/device/flashlight/seclite(src) + ..() + +/obj/item/weapon/gun/energy/e_gun/mini/update_icon() + ..() + if(gun_light && gun_light.on) + add_overlay("mini-light") + +/obj/item/weapon/gun/energy/e_gun/mini/practice_phaser + name = "practice phaser" + desc = "A modified version of the basic phaser gun, this one fires less concentrated energy bolts designed for target practice." + ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser/practice) + icon_state = "decloner" + +/obj/item/weapon/gun/energy/e_gun/hos + name = "\improper X-01 MultiPhase Energy Gun" + desc = "This is an expensive, modern recreation of an antique laser gun. This gun has several unique firemodes, but lacks the ability to recharge over time." + icon_state = "hoslaser" + origin_tech = null + force = 10 + ammo_type = list(/obj/item/ammo_casing/energy/electrode/hos, /obj/item/ammo_casing/energy/laser/hos, /obj/item/ammo_casing/energy/disabler) + ammo_x_offset = 4 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + +/obj/item/weapon/gun/energy/e_gun/dragnet + name = "\improper DRAGnet" + desc = "The \"Dynamic Rapid-Apprehension of the Guilty\" net is a revolution in law enforcement technology." + icon_state = "dragnet" + origin_tech = "combat=4;magnets=3;bluespace=4" + ammo_type = list(/obj/item/ammo_casing/energy/net, /obj/item/ammo_casing/energy/trap) + can_flashlight = 0 + ammo_x_offset = 1 + +/obj/item/weapon/gun/energy/e_gun/dragnet/snare + name = "Energy Snare Launcher" + desc = "Fires an energy snare that slows the target down" + ammo_type = list(/obj/item/ammo_casing/energy/trap) + +/obj/item/weapon/gun/energy/e_gun/turret + name = "hybrid turret gun" + desc = "A heavy hybrid energy cannon with two settings: Stun and kill." + icon_state = "turretlaser" + item_state = "turretlaser" + slot_flags = null + w_class = 5 + ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser) + weapon_weight = WEAPON_MEDIUM + can_flashlight = 0 + trigger_guard = TRIGGER_GUARD_NONE + ammo_x_offset = 2 + +/obj/item/weapon/gun/energy/e_gun/nuclear + name = "advanced energy gun" + desc = "An energy gun with an experimental miniaturized nuclear reactor that automatically charges the internal power cell." + icon_state = "nucgun" + item_state = "nucgun" + origin_tech = "combat=4;magnets=4;powerstorage=4" + charge_delay = 5 + pin = null + can_charge = 0 + ammo_x_offset = 1 + ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser, /obj/item/ammo_casing/energy/disabler) + selfcharge = 1 + var/fail_tick = 0 + var/fail_chance = 0 + +/obj/item/weapon/gun/energy/e_gun/nuclear/process() + if(fail_tick > 0) + fail_tick-- + ..() + +/obj/item/weapon/gun/energy/e_gun/nuclear/shoot_live_shot() + failcheck() + update_icon() + ..() + +/obj/item/weapon/gun/energy/e_gun/nuclear/proc/failcheck() + if(prob(fail_chance) && isliving(loc)) + var/mob/living/M = loc + switch(fail_tick) + if(0 to 200) + fail_tick += (2*(fail_chance)) + M.rad_act(40) + M << "Your [name] feels warmer." + if(201 to INFINITY) + SSobj.processing.Remove(src) + M.rad_act(80) + crit_fail = 1 + M << "Your [name]'s reactor overloads!" + +/obj/item/weapon/gun/energy/e_gun/nuclear/emp_act(severity) + ..() + fail_chance = min(fail_chance + round(15/severity), 100) + +/obj/item/weapon/gun/energy/e_gun/nuclear/update_icon() + ..() + if(crit_fail) + add_overlay("[icon_state]_fail_3") + else + switch(fail_tick) + if(0) + add_overlay("[icon_state]_fail_0") + if(1 to 150) + add_overlay("[icon_state]_fail_1") + if(151 to INFINITY) + add_overlay("[icon_state]_fail_2") diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index 005bf05c30b..36d1bdaddeb 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -116,6 +116,7 @@ /obj/item/weapon/gun/energy/kinetic_accelerator/proc/reload() power_supply.give(500) + recharge_newshot(1) if(!suppressed) playsound(src.loc, 'sound/weapons/kenetic_reload.ogg', 60, 1) else @@ -128,9 +129,9 @@ if(!can_shoot()) add_overlay("kineticgun_empty") - if(F && can_flashlight) + if(gun_light && can_flashlight) var/iconF = "flight" - if(F.on) + if(gun_light.on) iconF = "flight_on" add_overlay(image(icon = icon, icon_state = iconF, pixel_x = flight_x_offset, pixel_y = flight_y_offset)) diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 5299da26e05..eabe44fe6a8 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -47,10 +47,7 @@ can_charge = 0 desc = "An energy-based laser gun that draws power from the cyborg's internal energy cell directly. So this is what freedom looks like?" origin_tech = null - -/obj/item/weapon/gun/energy/laser/cyborg/newshot() - ..() - robocharge() + use_cyborg_cell = 1 /obj/item/weapon/gun/energy/laser/cyborg/emp_act() return diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 4d42d08c3ae..eb8ca9a63c5 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -122,7 +122,6 @@ desc = "A mining tool capable of expelling concentrated plasma bursts. You could use it to cut limbs off of xenos! Or, you know, mine stuff." icon_state = "plasmacutter" item_state = "plasmacutter" - modifystate = -1 origin_tech = "combat=1;materials=3;magnets=2;plasmatech=3;engineering=1" ammo_type = list(/obj/item/ammo_casing/energy/plasma) flags = CONDUCT | OPENCONTAINER @@ -142,10 +141,12 @@ var/obj/item/stack/sheet/S = A S.use(1) power_supply.give(1000) + recharge_newshot(1) user << "You insert [A] in [src], recharging it." else if(istype(A, /obj/item/weapon/ore/plasma)) qdel(A) power_supply.give(500) + recharge_newshot(1) user << "You insert [A] in [src], recharging it." else ..() @@ -214,6 +215,7 @@ cell_type = "/obj/item/weapon/stock_parts/cell/secborg" ammo_type = list(/obj/item/ammo_casing/energy/c3dbullet) can_charge = 0 + use_cyborg_cell = 1 /obj/item/weapon/gun/energy/printer/update_icon() return @@ -221,10 +223,6 @@ /obj/item/weapon/gun/energy/printer/emp_act() return -/obj/item/weapon/gun/energy/printer/newshot() - ..() - robocharge() - /obj/item/weapon/gun/energy/temperature name = "temperature gun" icon_state = "freezegun" diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index e80ea7e574f..90eb413a9e8 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -18,7 +18,7 @@ pin = null shaded_charge = 1 -/obj/item/weapon/gun/energy/gun/advtaser +/obj/item/weapon/gun/energy/e_gun/advtaser name = "hybrid taser" desc = "A dual-mode taser designed to fire both short-range high-power electrodes and long-range disabler beams." icon_state = "advtaser" @@ -26,15 +26,12 @@ origin_tech = "combat=4" ammo_x_offset = 2 -/obj/item/weapon/gun/energy/gun/advtaser/cyborg +/obj/item/weapon/gun/energy/e_gun/advtaser/cyborg name = "cyborg taser" desc = "An integrated hybrid taser that draws directly from a cyborg's power cell. The weapon contains a limiter to prevent the cyborg's power cell from overheating." can_flashlight = 0 can_charge = 0 - -/obj/item/weapon/gun/energy/gun/advtaser/cyborg/newshot() - ..() - robocharge() + use_cyborg_cell = 1 /obj/item/weapon/gun/energy/disabler name = "disabler" @@ -48,7 +45,5 @@ name = "cyborg disabler" desc = "An integrated disabler that draws from a cyborg's power cell. This weapon contains a limiter to prevent the cyborg's power cell from overheating." can_charge = 0 + use_cyborg_cell = 1 -/obj/item/weapon/gun/energy/disabler/cyborg/newshot() - ..() - robocharge() diff --git a/code/modules/projectiles/guns/grenade_launcher.dm b/code/modules/projectiles/guns/grenade_launcher.dm index bbf934019b2..f18db415d1a 100644 --- a/code/modules/projectiles/guns/grenade_launcher.dm +++ b/code/modules/projectiles/guns/grenade_launcher.dm @@ -36,7 +36,7 @@ if(grenades.len) fire_grenade(target,user) else - usr << "The grenade launcher is empty." + user << "The grenade launcher is empty." /obj/item/weapon/gun/grenadelauncher/proc/fire_grenade(atom/target, mob/user) user.visible_message("[user] fired a grenade!", \ diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm index 0f85660da60..aae34edbd4f 100644 --- a/code/modules/projectiles/guns/magic.dm +++ b/code/modules/projectiles/guns/magic.dm @@ -23,7 +23,6 @@ righthand_file = 'icons/mob/inhands/items_righthand.dmi' /obj/item/weapon/gun/magic/afterattack(atom/target, mob/living/user, flag) - newshot() if(no_den_usage) var/area/A = get_area(user) if(istype(A, /area/wizard_station)) @@ -36,15 +35,14 @@ /obj/item/weapon/gun/magic/can_shoot() return charges -/obj/item/weapon/gun/magic/newshot() - if (charges && chambered) +/obj/item/weapon/gun/magic/recharge_newshot() + if (charges && chambered && !chambered.BB) chambered.newshot() - return /obj/item/weapon/gun/magic/process_chamber() if(chambered && !chambered.BB) //if BB is null, i.e the shot has been fired... charges--//... drain a charge - return + recharge_newshot() /obj/item/weapon/gun/magic/New() ..() @@ -66,6 +64,8 @@ return 0 charge_tick = 0 charges++ + if(charges == 1) + recharge_newshot() return 1 /obj/item/weapon/gun/magic/update_icon() @@ -73,9 +73,14 @@ /obj/item/weapon/gun/magic/shoot_with_empty_chamber(mob/living/user as mob|obj) user << "The [name] whizzles quietly." - return /obj/item/weapon/gun/magic/suicide_act(mob/user) user.visible_message("[user] is twisting [src] above [user.p_their()] head, releasing a magical blast! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, fire_sound, 50, 1, -1) - return (FIRELOSS) \ No newline at end of file + return (FIRELOSS) + +/obj/item/weapon/gun/magic/on_varedit(varname) + . = ..() + switch (varname) + if ("charges") + recharge_newshot() \ No newline at end of file diff --git a/code/modules/projectiles/guns/mounted.dm b/code/modules/projectiles/guns/mounted.dm index c5b050ff94e..9d4a8753b9c 100644 --- a/code/modules/projectiles/guns/mounted.dm +++ b/code/modules/projectiles/guns/mounted.dm @@ -1,4 +1,4 @@ -/obj/item/weapon/gun/energy/gun/advtaser/mounted +/obj/item/weapon/gun/energy/e_gun/advtaser/mounted name = "mounted taser" desc = "An arm mounted dual-mode weapon that fires electrodes and disabler shots." icon = 'icons/obj/items_cyborg.dmi' @@ -9,7 +9,7 @@ can_flashlight = 0 trigger_guard = TRIGGER_GUARD_ALLOW_ALL // Has no trigger at all, uses neural signals instead -/obj/item/weapon/gun/energy/gun/advtaser/mounted/dropped()//if somebody manages to drop this somehow... +/obj/item/weapon/gun/energy/e_gun/advtaser/mounted/dropped()//if somebody manages to drop this somehow... ..() src.loc = null//send it to nullspace to get retrieved by the implant later on. gotta cover those edge cases. diff --git a/code/modules/projectiles/guns/syringe_gun.dm b/code/modules/projectiles/guns/syringe_gun.dm index 470cf2fd537..a26c1818a88 100644 --- a/code/modules/projectiles/guns/syringe_gun.dm +++ b/code/modules/projectiles/guns/syringe_gun.dm @@ -18,30 +18,17 @@ ..() chambered = new /obj/item/ammo_casing/syringegun(src) -/obj/item/weapon/gun/syringe/newshot() - if(!syringes.len) return +/obj/item/weapon/gun/syringe/recharge_newshot() + if(!syringes.len) + return + chambered.newshot() - var/obj/item/weapon/reagent_containers/syringe/S = syringes[1] - - if(!S) return - - chambered.BB = new S.projectile_type (src) - - S.reagents.trans_to(chambered.BB, S.reagents.total_volume) - chambered.BB.name = S.name - syringes.Remove(S) - - qdel(S) - return +/obj/item/weapon/gun/syringe/can_shoot() + return syringes.len /obj/item/weapon/gun/syringe/process_chamber() - return - -/obj/item/weapon/gun/syringe/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, params) - if(target == loc) - return - newshot() - ..() + if(chambered && !chambered.BB) //we just fired + recharge_newshot() /obj/item/weapon/gun/syringe/examine(mob/user) ..() @@ -69,7 +56,8 @@ return user << "You load [A] into \the [src]." syringes.Add(A) - A.loc = src + A.forceMove(src) + recharge_newshot() return 1 else usr << "[src] cannot hold more syringes!" diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 02e936f2594..f88aaeb3cbb 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -13,7 +13,6 @@ resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF var/def_zone = "" //Aiming at var/mob/firer = null//Who shot it - var/obj/item/ammo_casing/ammo_casing = null var/suppressed = 0 //Attack message var/yo = null var/xo = null @@ -164,7 +163,11 @@ /obj/item/projectile/Process_Spacemove(var/movement_dir = 0) return 1 //Bullets don't drift in space -/obj/item/projectile/proc/fire(var/setAngle) +/obj/item/projectile/proc/fire(setAngle, atom/direct_target) + if(direct_target) + direct_target.bullet_act(src, def_zone) + qdel(src) + return if(setAngle) Angle = setAngle if(!legacy) //new projectiles @@ -244,19 +247,53 @@ sleep(config.run_speed * 0.9) +/obj/item/projectile/proc/preparePixelProjectile(atom/target, var/turf/targloc, mob/living/user, params, spread) + var/turf/curloc = get_turf(user) + src.loc = get_turf(user) + src.starting = get_turf(user) + src.current = curloc + src.yo = targloc.y - curloc.y + src.xo = targloc.x - curloc.x + + if(params) + var/list/mouse_control = params2list(params) + if(mouse_control["icon-x"]) + src.p_x = text2num(mouse_control["icon-x"]) + if(mouse_control["icon-y"]) + src.p_y = text2num(mouse_control["icon-y"]) + if(mouse_control["screen-loc"]) + //Split screen-loc up into X+Pixel_X and Y+Pixel_Y + var/list/screen_loc_params = splittext(mouse_control["screen-loc"], ",") + + //Split X+Pixel_X up into list(X, Pixel_X) + var/list/screen_loc_X = splittext(screen_loc_params[1],":") + + //Split Y+Pixel_Y up into list(Y, Pixel_Y) + var/list/screen_loc_Y = splittext(screen_loc_params[2],":") + // world << "X: [screen_loc_X[1]] PixelX: [screen_loc_X[2]] / Y: [screen_loc_Y[1]] PixelY: [screen_loc_Y[2]]" + var/x = text2num(screen_loc_X[1]) * 32 + text2num(screen_loc_X[2]) - 32 + var/y = text2num(screen_loc_Y[1]) * 32 + text2num(screen_loc_Y[2]) - 32 + + //Calculate the "resolution" of screen based on client's view and world's icon size. This will work if the user can view more tiles than average. + var/screenview = (user.client.view * 2 + 1) * world.icon_size //Refer to http://www.byond.com/docs/ref/info.html#/client/var/view for mad maths + + var/ox = round(screenview/2) //"origin" x + var/oy = round(screenview/2) //"origin" y + // world << "Pixel position: [x] [y]" + var/angle = Atan2(y - oy, x - ox) + // world << "Angle: [angle]" + src.Angle = angle + if(spread) + src.Angle += spread + + /obj/item/projectile/Crossed(atom/movable/AM) //A mob moving on a tile with a projectile is hit by it. ..() if(isliving(AM) && AM.density && !checkpass(PASSMOB)) Bump(AM, 1) /obj/item/projectile/Destroy() - ammo_casing = null return ..() -/obj/item/projectile/proc/dumbfire(var/dir) - current = get_ranged_target_turf(src, dir, world.maxx) - fire() - - /obj/item/projectile/experience_pressure_difference() return \ No newline at end of file diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 77c145d63f8..c3751481a44 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -203,13 +203,8 @@ //This one is for future syringe guns update /obj/item/projectile/bullet/dart/syringe name = "syringe" - icon = 'icons/obj/chemical.dmi' icon_state = "syringeproj" -//Piercing Syringe -/obj/item/projectile/bullet/dart/syringe/piercing - piercing = 1 - /obj/item/projectile/bullet/neurotoxin name = "neurotoxin spit" icon_state = "neurotoxin" diff --git a/code/modules/projectiles/projectile/reusable.dm b/code/modules/projectiles/projectile/reusable.dm index 3fbc6888f3b..abb4af2296c 100644 --- a/code/modules/projectiles/projectile/reusable.dm +++ b/code/modules/projectiles/projectile/reusable.dm @@ -36,6 +36,7 @@ icon_state = "foamdart_proj" ammo_type = /obj/item/ammo_casing/caseless/foam_dart range = 10 + var/modified = 0 var/obj/item/weapon/pen/pen = null /obj/item/projectile/bullet/reusable/foam_dart/handle_drop() @@ -43,17 +44,17 @@ return var/turf/T = get_turf(src) dropped = 1 - var/obj/item/ammo_casing/caseless/foam_dart/newdart = new ammo_type(T) - var/obj/item/ammo_casing/caseless/foam_dart/old_dart = ammo_casing - newdart.modified = old_dart.modified + var/obj/item/ammo_casing/caseless/foam_dart/newcasing = new ammo_type(T) + newcasing.modified = modified + var/obj/item/projectile/bullet/reusable/foam_dart/newdart = newcasing.BB + newdart.modified = modified + newdart.damage = damage + newdart.nodamage = nodamage + newdart.damage_type = damage_type if(pen) - var/obj/item/projectile/bullet/reusable/foam_dart/newdart_FD = newdart.BB - newdart_FD.pen = pen - pen.loc = newdart_FD + newdart.pen = pen + pen.forceMove(newdart) pen = null - newdart.BB.damage = damage - newdart.BB.nodamage = nodamage - newdart.BB.damage_type = damage_type newdart.update_icon() @@ -66,3 +67,11 @@ icon_state = "foamdart_riot_proj" ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot stamina = 25 + +/obj/item/projectile/bullet/reusable/arrow + name = "arrow" + icon_state = "arrow" + ammo_type = /obj/item/ammo_casing/caseless/arrow + range = 10 + damage = 25 + damage_type = BRUTE \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 04f2572c588..8e358e90f37 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -12,7 +12,7 @@ volume = 15 var/mode = SYRINGE_DRAW var/busy = 0 // needed for delayed drawing of blood - var/projectile_type = /obj/item/projectile/bullet/dart/syringe + var/proj_piercing = 0 //does it pierce through thick clothes when shot with syringe gun materials = list(MAT_METAL=10, MAT_GLASS=20) /obj/item/weapon/reagent_containers/syringe/New() @@ -245,5 +245,5 @@ name = "piercing syringe" desc = "A diamond-tipped syringe that pierces armor when launched at high velocity. It can hold up to 10 units." volume = 10 - projectile_type = /obj/item/projectile/bullet/dart/syringe/piercing + proj_piercing = 1 origin_tech = "combat=3;materials=4;engineering=5" diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 1b47da6a274..9afb51fb273 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -39,7 +39,7 @@ req_tech = list("combat" = 5, "magnets" = 5, "powerstorage" = 5) build_type = PROTOLATHE materials = list(MAT_METAL = 10000, MAT_GLASS = 2000, MAT_URANIUM = 3000, MAT_TITANIUM = 1000) - build_path = /obj/item/weapon/gun/energy/gun/nuclear + build_path = /obj/item/weapon/gun/energy/e_gun/nuclear category = list("Weapons") /datum/design/tele_shield diff --git a/code/modules/spells/spell_types/infinite_guns.dm b/code/modules/spells/spell_types/infinite_guns.dm index d2cc1b32de3..255ce839406 100644 --- a/code/modules/spells/spell_types/infinite_guns.dm +++ b/code/modules/spells/spell_types/infinite_guns.dm @@ -18,6 +18,6 @@ C.drop_item() C.swap_hand() C.drop_item() - var/obj/item/weapon/gun/projectile/shotgun/boltaction/enchanted/GUN = new + var/obj/item/weapon/gun/ballistic/shotgun/boltaction/enchanted/GUN = new C.put_in_hands(GUN) C.swap_hand(C.get_held_index_of_item(GUN)) diff --git a/code/modules/spells/spell_types/rightandwrong.dm b/code/modules/spells/spell_types/rightandwrong.dm index 39a8b7768cd..07d1823f445 100644 --- a/code/modules/spells/spell_types/rightandwrong.dm +++ b/code/modules/spells/spell_types/rightandwrong.dm @@ -39,62 +39,62 @@ var/obj/item/weapon/gun/G switch (randomizeguns) if("taser") - G = new /obj/item/weapon/gun/energy/gun/advtaser(get_turf(H)) + G = new /obj/item/weapon/gun/energy/e_gun/advtaser(get_turf(H)) if("egun") - G = new /obj/item/weapon/gun/energy/gun(get_turf(H)) + G = new /obj/item/weapon/gun/energy/e_gun(get_turf(H)) if("laser") G = new /obj/item/weapon/gun/energy/laser(get_turf(H)) if("revolver") - G = new /obj/item/weapon/gun/projectile/revolver(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/revolver(get_turf(H)) if("detective") - G = new /obj/item/weapon/gun/projectile/revolver/detective(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/revolver/detective(get_turf(H)) if("deagle") - G = new /obj/item/weapon/gun/projectile/automatic/pistol/deagle/camo(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/pistol/deagle/camo(get_turf(H)) if("gyrojet") - G = new /obj/item/weapon/gun/projectile/automatic/gyropistol(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/gyropistol(get_turf(H)) if("pulse") G = new /obj/item/weapon/gun/energy/pulse(get_turf(H)) if("suppressed") - G = new /obj/item/weapon/gun/projectile/automatic/pistol(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/pistol(get_turf(H)) new /obj/item/weapon/suppressor(get_turf(H)) if("doublebarrel") - G = new /obj/item/weapon/gun/projectile/revolver/doublebarrel(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/revolver/doublebarrel(get_turf(H)) if("shotgun") - G = new /obj/item/weapon/gun/projectile/shotgun(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/shotgun(get_turf(H)) if("combatshotgun") - G = new /obj/item/weapon/gun/projectile/shotgun/automatic/combat(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/shotgun/automatic/combat(get_turf(H)) if("arg") - G = new /obj/item/weapon/gun/projectile/automatic/ar(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/ar(get_turf(H)) if("mateba") - G = new /obj/item/weapon/gun/projectile/revolver/mateba(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/revolver/mateba(get_turf(H)) if("boltaction") - G = new /obj/item/weapon/gun/projectile/shotgun/boltaction(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/shotgun/boltaction(get_turf(H)) if("speargun") - G = new /obj/item/weapon/gun/projectile/automatic/speargun(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/speargun(get_turf(H)) if("uzi") - G = new /obj/item/weapon/gun/projectile/automatic/mini_uzi(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/mini_uzi(get_turf(H)) if("cannon") G = new /obj/item/weapon/gun/energy/lasercannon(get_turf(H)) if("crossbow") G = new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow/large(get_turf(H)) if("nuclear") - G = new /obj/item/weapon/gun/energy/gun/nuclear(get_turf(H)) + G = new /obj/item/weapon/gun/energy/e_gun/nuclear(get_turf(H)) if("sabr") - G = new /obj/item/weapon/gun/projectile/automatic/proto(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/proto(get_turf(H)) if("bulldog") - G = new /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog(get_turf(H)) if("c20r") - G = new /obj/item/weapon/gun/projectile/automatic/c20r(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/c20r(get_turf(H)) if("saw") - G = new /obj/item/weapon/gun/projectile/automatic/l6_saw(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/l6_saw(get_turf(H)) if("car") - G = new /obj/item/weapon/gun/projectile/automatic/m90(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/m90(get_turf(H)) if("alienpistol") G = new /obj/item/weapon/gun/energy/alien(get_turf(H)) if("dragnet") - G = new /obj/item/weapon/gun/energy/gun/dragnet(get_turf(H)) + G = new /obj/item/weapon/gun/energy/e_gun/dragnet(get_turf(H)) if("turret") - G = new /obj/item/weapon/gun/energy/gun/turret(get_turf(H)) + G = new /obj/item/weapon/gun/energy/e_gun/turret(get_turf(H)) if("pulsecarbine") G = new /obj/item/weapon/gun/energy/pulse/carbine(get_turf(H)) if("decloner") @@ -108,15 +108,15 @@ if("wormhole") G = new /obj/item/weapon/gun/energy/wormhole_projector(get_turf(H)) if("wt550") - G = new /obj/item/weapon/gun/projectile/automatic/wt550(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/wt550(get_turf(H)) if("bulldog") - G = new /obj/item/weapon/gun/projectile/automatic/shotgun(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/shotgun(get_turf(H)) if("grenadelauncher") - G = new /obj/item/weapon/gun/projectile/revolver/grenadelauncher(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/revolver/grenadelauncher(get_turf(H)) if("goldenrevolver") - G = new /obj/item/weapon/gun/projectile/revolver/golden(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/revolver/golden(get_turf(H)) if("sniper") - G = new /obj/item/weapon/gun/projectile/automatic/sniper_rifle(get_turf(H)) + G = new /obj/item/weapon/gun/ballistic/automatic/sniper_rifle(get_turf(H)) if("medibeam") G = new /obj/item/weapon/gun/medbeam(get_turf(H)) if("scatterbeam") diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm index dbf2c527159..8030a79c94d 100644 --- a/code/modules/surgery/organs/augments_arms.dm +++ b/code/modules/surgery/organs/augments_arms.dm @@ -167,7 +167,7 @@ desc = "A variant of the arm cannon implant that fires electrodes and disabler shots. The cannon emerges from the subject's arm and remains inside when not in use." icon_state = "arm_taser" origin_tech = "materials=5;combat=5;biotech=4;powerstorage=4" - holder = /obj/item/weapon/gun/energy/gun/advtaser/mounted + holder = /obj/item/weapon/gun/energy/e_gun/advtaser/mounted /obj/item/organ/cyberimp/arm/gun/taser/l zone = "l_arm" diff --git a/code/modules/uplink/uplink_item.dm b/code/modules/uplink/uplink_item.dm index 9dba577e214..3fe309add59 100644 --- a/code/modules/uplink/uplink_item.dm +++ b/code/modules/uplink/uplink_item.dm @@ -140,13 +140,13 @@ var/list/uplink_items = list() // Global list so we only initialize this once. name = "Stechkin Pistol" desc = "A small, easily concealable handgun that uses 10mm auto rounds in 8-round magazines and is compatible \ with suppressors." - item = /obj/item/weapon/gun/projectile/automatic/pistol + item = /obj/item/weapon/gun/ballistic/automatic/pistol cost = 7 /datum/uplink_item/dangerous/revolver name = "Syndicate Revolver" desc = "A brutally simple syndicate revolver that fires .357 Magnum rounds and has 7 chambers." - item = /obj/item/weapon/gun/projectile/revolver + item = /obj/item/weapon/gun/ballistic/revolver cost = 13 surplus = 50 @@ -154,7 +154,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once. name = "Bulldog Shotgun" desc = "A fully-loaded semi-automatic drum-fed shotgun. Compatiable with all 12g rounds. Designed for close \ quarter anti-personel engagements." - item = /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog + item = /obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog cost = 8 surplus = 40 include_modes = list(/datum/game_mode/nuclear) @@ -163,20 +163,20 @@ var/list/uplink_items = list() // Global list so we only initialize this once. name = "C-20r Submachine Gun" desc = "A fully-loaded Scarborough Arms bullpup submachine gun. The C-20r fires .45 rounds with a \ 20-round magazine and is compatible with suppressors." - item = /obj/item/weapon/gun/projectile/automatic/c20r + item = /obj/item/weapon/gun/ballistic/automatic/c20r cost = 10 surplus = 40 include_modes = list(/datum/game_mode/nuclear) /datum/uplink_item/dangerous/smg/unrestricted - item = /obj/item/weapon/gun/projectile/automatic/c20r/unrestricted + item = /obj/item/weapon/gun/ballistic/automatic/c20r/unrestricted include_modes = list(/datum/game_mode/gang) /datum/uplink_item/dangerous/machinegun name = "L6 Squad Automatic Weapon" desc = "A fully-loaded Aussec Armoury belt-fed machine gun. \ This deadly weapon has a massive 50-round magazine of devastating 5.56x45mm ammunition." - item = /obj/item/weapon/gun/projectile/automatic/l6_saw + item = /obj/item/weapon/gun/ballistic/automatic/l6_saw cost = 18 surplus = 0 include_modes = list(/datum/game_mode/nuclear) @@ -192,7 +192,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once. /datum/uplink_item/dangerous/sniper name = "Sniper Rifle" desc = "Ranged fury, Syndicate style. guaranteed to cause shock and awe or your TC back!" - item = /obj/item/weapon/gun/projectile/automatic/sniper_rifle/syndicate + item = /obj/item/weapon/gun/ballistic/automatic/sniper_rifle/syndicate cost = 16 surplus = 25 include_modes = list(/datum/game_mode/nuclear) @@ -200,7 +200,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once. /datum/uplink_item/dangerous/bolt_action name = "Surplus Rifle" desc = "A horribly outdated bolt action weapon. You've got to be desperate to use this." - item = /obj/item/weapon/gun/projectile/shotgun/boltaction + item = /obj/item/weapon/gun/ballistic/shotgun/boltaction cost = 2 include_modes = list(/datum/game_mode/nuclear) @@ -267,7 +267,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once. /datum/uplink_item/dangerous/foamsmg name = "Toy Submachine Gun" desc = "A fully-loaded Donksoft bullpup submachine gun that fires riot grade rounds with a 20-round magazine." - item = /obj/item/weapon/gun/projectile/automatic/c20r/toy + item = /obj/item/weapon/gun/ballistic/automatic/c20r/toy cost = 5 surplus = 0 include_modes = list(/datum/game_mode/nuclear) @@ -276,7 +276,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once. name = "Toy Machine Gun" desc = "A fully-loaded Donksoft belt-fed machine gun. This weapon has a massive 50-round magazine of devastating \ riot grade darts, that can briefly incapacitate someone in just one volley." - item = /obj/item/weapon/gun/projectile/automatic/l6_saw/toy + item = /obj/item/weapon/gun/ballistic/automatic/l6_saw/toy cost = 10 surplus = 0 include_modes = list(/datum/game_mode/nuclear) @@ -555,7 +555,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once. name = "Toy Gun with Riot Darts" desc = "An innocent-looking toy pistol designed to fire foam darts. Comes loaded with riot-grade \ darts effective at incapacitating a target." - item = /obj/item/weapon/gun/projectile/automatic/toy/pistol/riot + item = /obj/item/weapon/gun/ballistic/automatic/toy/pistol/riot cost = 3 surplus = 10 exclude_modes = list(/datum/game_mode/gang) diff --git a/icons/obj/chemical.dmi b/icons/obj/chemical.dmi index 626b4a8d6cd201a8b2ddef575b1aaa9ac40b14cb..5850b22d475cf74bd5f0f99a9be4f4411bda740b 100644 GIT binary patch delta 17318 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 delta 18737 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 diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi index 10a33bf2c58f9c527bf1d8d77581ec6758edb531..fa4507214f232514a9b73d88bd8ede3d8ce047a1 100644 GIT binary patch literal 36185 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 ang0(DUJn_c%FM3-0000