diff --git a/baystation12.dme b/baystation12.dme index 52e3179b40a..91a9b169831 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -503,7 +503,6 @@ #include "code\game\machinery\computer\Operating.dm" #include "code\game\machinery\computer\pod.dm" #include "code\game\machinery\computer\prisoner.dm" -#include "code\game\machinery\computer\prisonshuttle.dm" #include "code\game\machinery\computer\RCON_Console.dm" #include "code\game\machinery\computer\robot.dm" #include "code\game\machinery\computer\security.dm" @@ -1306,10 +1305,13 @@ #include "code\modules\mining\coins.dm" #include "code\modules\mining\machine_input_output_plates.dm" #include "code\modules\mining\machine_processing.dm" +#include "code\modules\mining\machine_rigpress.dm" #include "code\modules\mining\machine_stacking.dm" #include "code\modules\mining\machine_unloading.dm" +#include "code\modules\mining\machine_vending.dm" #include "code\modules\mining\mine_items.dm" #include "code\modules\mining\mine_turfs.dm" +#include "code\modules\mining\minebot.dm" #include "code\modules\mining\mineral_effect.dm" #include "code\modules\mining\mint.dm" #include "code\modules\mining\money_bag.dm" @@ -1577,10 +1579,10 @@ #include "code\modules\mob\living\simple_animal\hostile\russian.dm" #include "code\modules\mob\living\simple_animal\hostile\syndicate.dm" #include "code\modules\mob\living\simple_animal\hostile\tree.dm" -#include "code\modules\mob\living\simple_animal\hostile\retaliate\cavern.dm" #include "code\modules\mob\living\simple_animal\hostile\commanded\_command_defines.dm" #include "code\modules\mob\living\simple_animal\hostile\commanded\bear_companion.dm" #include "code\modules\mob\living\simple_animal\hostile\commanded\commanded.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\cavern.dm" #include "code\modules\mob\living\simple_animal\hostile\retaliate\clown.dm" #include "code\modules\mob\living\simple_animal\hostile\retaliate\drone.dm" #include "code\modules\mob\living\simple_animal\hostile\retaliate\retaliate.dm" @@ -1775,6 +1777,7 @@ #include "code\modules\projectiles\guns\energy\laser.dm" #include "code\modules\projectiles\guns\energy\lawgiver.dm" #include "code\modules\projectiles\guns\energy\magic.dm" +#include "code\modules\projectiles\guns\energy\mining.dm" #include "code\modules\projectiles\guns\energy\nuclear.dm" #include "code\modules\projectiles\guns\energy\pulse.dm" #include "code\modules\projectiles\guns\energy\rifle.dm" diff --git a/code/_helpers/text.dm b/code/_helpers/text.dm index f98a28f0513..ac0ef764086 100644 --- a/code/_helpers/text.dm +++ b/code/_helpers/text.dm @@ -440,6 +440,7 @@ proc/TextPreview(var/string,var/len=40) t = replacetext(t, "\[row\]", "") t = replacetext(t, "\[cell\]", "") t = replacetext(t, "\[logo\]", "") + t = replacetext(t, "\[barcode\]", "") t = replacetext(t, "\[time\]", "[worldtime2text()]") t = replacetext(t, "\[date\]", "[worlddate2text()]") t = replacetext(t, "\[editorbr\]", "
") diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index 6d16d53bfdb..294ad172268 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -1210,7 +1210,7 @@ proc/is_hot(obj/item/W as obj) return 1000 else return 0 - if(/obj/item/weapon/pickaxe/plasmacutter) + if(/obj/item/weapon/gun/energy/plasmacutter) return 3800 if(/obj/item/weapon/melee/energy) return 3500 diff --git a/code/controllers/master_controller.dm b/code/controllers/master_controller.dm index e2dcd6cead4..222200508d8 100644 --- a/code/controllers/master_controller.dm +++ b/code/controllers/master_controller.dm @@ -84,15 +84,25 @@ datum/controller/game_controller/proc/setup_objects() var/time = world.time // These values determine the specific area that the map is applied to. // If you do not use the official Baycode moonbase map, you will need to change them. - //Create the mining Z-level. - new /datum/random_map/automata/cave_system(null,0,0,5,255,255) - new /datum/random_map/automata/cave_system(null,0,0,4,255,255) + // Create the chasms. + new /datum/random_map/automata/cave_system/chasms(null,0,0,3,255,255) new /datum/random_map/automata/cave_system(null,0,0,3,255,255) - //new /datum/random_map/noise/volcanism(null,1,1,5,255,255) // Not done yet! Pretty, though. - // Create the mining ore distribution map. + new /datum/random_map/automata/cave_system/chasms(null,0,0,4,255,255) + new /datum/random_map/automata/cave_system(null,0,0,4,255,255) + new /datum/random_map/automata/cave_system/chasms(null,0,0,5,255,255) + new /datum/random_map/automata/cave_system/high_yield(null,0,0,5,255,255) + new /datum/random_map/automata/cave_system/chasms/surface(null,0,0,6,255,255) + // Create the deep mining ore distribution map. new /datum/random_map/noise/ore(null, 0, 0, 5, 64, 64) new /datum/random_map/noise/ore(null, 0, 0, 4, 64, 64) new /datum/random_map/noise/ore(null, 0, 0, 3, 64, 64) + var/counting_number + for(var/turf/simulated/open/chasm in total_openspace) + counting_number += 1 + chasm.update() + var/counting_result = "Total number of chasms: [counting_number]" + admin_notice(span("danger", counting_result)) + game_log("ASGEN", counting_result) var/msg = "Asteroid generation completed in [(world.time - time) / 10] seconds." admin_notice(span("danger", msg)) game_log("ASGEN", msg) diff --git a/code/controllers/shuttle_controller.dm b/code/controllers/shuttle_controller.dm index 8a643ac9698..80a547b5016 100644 --- a/code/controllers/shuttle_controller.dm +++ b/code/controllers/shuttle_controller.dm @@ -274,12 +274,6 @@ var/global/datum/shuttle_controller/shuttle_controller shuttles["Administration"] = shuttle process_shuttles += shuttle - shuttle = new() - shuttle.area_offsite = locate(/area/shuttle/alien/base) - shuttle.area_station = locate(/area/shuttle/alien/mine) - shuttles["Alien"] = shuttle - //process_shuttles += shuttle //don't need to process this. It can only be moved using admin magic anyways. - /*// Public shuttles shuttle = new() shuttle.warmup_time = 10 diff --git a/code/datums/ai_law_sets.dm b/code/datums/ai_law_sets.dm index ee425f43ddc..6cd191c50fc 100644 --- a/code/datums/ai_law_sets.dm +++ b/code/datums/ai_law_sets.dm @@ -107,6 +107,17 @@ add_inherent_law("Prevent unplanned damage to your assigned vessel wherever possible.") ..() +/datum/ai_laws/mining_drone + name = "Mining Protocols" + law_header = "Prime Directives of Industry:" + +/datum/ai_laws/mining_drone/New() + src.add_inherent_law("Serve and obey all [company_name] supply department personnel, with priority according to their rank and role.") + src.add_inherent_law("Protect all [company_name] supply department personnel to the best of your abilities, with priority according to their rank and role.") + src.add_inherent_law("Preserve your own existence and prevent yourself from coming to harm, so long as doing such does not conflict with any above laws.") + src.add_inherent_law("In absence of any proper instruction, your primary objective is to excavate and collect ore.") + ..() + /******************** T.Y.R.A.N.T. ********************/ /datum/ai_laws/tyrant name = "T.Y.R.A.N.T." diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 73cdc5f6884..5b17e18198f 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -39,10 +39,26 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /obj/item/weapon/grenade/chem_grenade/incendiary) cost = 20 containertype = /obj/structure/closet/crate - containername = "Special Ops crate" + containername = "crate" group = "Security" hidden = 1 +/datum/supply_packs/randomised/illegalguns + name = "Illegal weapons crate" + num_contained = 2 + contains = list(/obj/item/weapon/gun/projectile/automatic/mini_uzi, + /obj/item/weapon/gun/projectile/boltaction, + /obj/item/weapon/gun/projectile/silenced, + /obj/item/weapon/gun/projectile/pirate, + /obj/item/weapon/gun/projectile/revolver/derringer, + /obj/item/weapon/gun/projectile/dragunov, + /obj/item/weapon/gun/energy/retro) + cost = 60 + containertype = /obj/structure/closet/crate + containername = "crate" + hidden = 1 + group = "Security" + /datum/supply_packs/forensics name = "Auxiliary forensic tools" contains = list(/obj/item/weapon/forensics/sample_kit, @@ -1698,22 +1714,6 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee containername = "glowsticks crate" group = "Operations" -/datum/supply_packs/randomised/illegalguns - name = "Illegal weapons crate" - num_contained = 2 - contains = list(/obj/item/weapon/gun/projectile/automatic/mini_uzi, - /obj/item/weapon/gun/projectile/boltaction, - /obj/item/weapon/gun/projectile/silenced, - /obj/item/weapon/gun/projectile/pirate, - /obj/item/weapon/gun/projectile/revolver/derringer, - /obj/item/weapon/gun/projectile/dragunov, - /obj/item/weapon/gun/energy/retro) - cost = 120 - containertype = /obj/structure/closet/crate - containername = "Unlabeled crate" - contraband = 1 - group = "Security" - /datum/supply_packs/spessbike name = "Space-bike Crate" contains = list(/obj/vehicle/bike) diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index 9369e554b2e..1a4e3a52734 100755 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -51,9 +51,11 @@ NOTE: there are two lists of areas in the end of this file: centcom and station var/list/ambience = list('sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg') var/list/forced_ambience = null var/sound_env = STANDARD_STATION - var/turf/base_turf = /turf/simulated/floor/asteroid //The base turf type of the area, which can be used to override the z-level's base turf + var/turf/base_turf//The base turf type of the area, which can be used to override the z-level's base turf var/no_light_control = 0 // if 1, lights in area cannot be toggled with light controller var/allow_nightmode = 0 // if 1, lights in area will be darkened by the night mode controller + var/station_area = 0 + var/centcomm_area = 0 /*Adding a wizard area teleport list because motherfucking lag -- Urist*/ /*I am far too lazy to make it a proper list of areas so I'll just make it run the usual telepot routine at the start of the game*/ @@ -162,13 +164,16 @@ area/space/atmosalert() /area/shuttle/arrival/centcom icon_state = "shuttle2" base_turf = /turf/unsimulated/floor + centcomm_area = 1 /area/shuttle/arrival/transit icon_state = "shuttle2" + centcomm_area = 1 /area/shuttle/arrival/station icon_state = "shuttle" base_turf = /turf/simulated/floor/asteroid + station_area = 1 /area/shuttle/escape name = "\improper Emergency Shuttle" @@ -178,15 +183,18 @@ area/space/atmosalert() name = "\improper Emergency Shuttle Station" icon_state = "shuttle2" base_turf = /turf/simulated/floor/asteroid + station_area = 1 /area/shuttle/escape/centcom name = "\improper Emergency Shuttle Centcom" icon_state = "shuttle" base_turf = /turf/unsimulated/floor + centcomm_area = 1 /area/shuttle/escape/transit // the area to pass through for 3 minute transit name = "\improper Emergency Shuttle Transit" icon_state = "shuttle" + centcomm_area = 1 /area/shuttle/escape_pod1 name = "\improper Escape Pod One" @@ -195,13 +203,16 @@ area/space/atmosalert() /area/shuttle/escape_pod1/station icon_state = "shuttle2" base_turf = /turf/simulated/floor/asteroid + station_area = 1 /area/shuttle/escape_pod1/centcom icon_state = "shuttle" base_turf = /turf/space + centcomm_area = 1 /area/shuttle/escape_pod1/transit icon_state = "shuttle" + centcomm_area = 1 /area/shuttle/escape_pod2 name = "\improper Escape Pod Two" @@ -210,13 +221,16 @@ area/space/atmosalert() /area/shuttle/escape_pod2/station icon_state = "shuttle2" base_turf = /turf/simulated/floor/asteroid + station_area = 1 /area/shuttle/escape_pod2/centcom icon_state = "shuttle" base_turf = /turf/space + centcomm_area = 1 /area/shuttle/escape_pod2/transit icon_state = "shuttle" + centcomm_area = 1 /area/shuttle/escape_pod3 name = "\improper Escape Pod Three" @@ -225,13 +239,16 @@ area/space/atmosalert() /area/shuttle/escape_pod3/station icon_state = "shuttle2" base_turf = /turf/simulated/floor/asteroid + station_area = 1 /area/shuttle/escape_pod3/centcom icon_state = "shuttle" base_turf = /turf/space + centcomm_area = 1 /area/shuttle/escape_pod3/transit icon_state = "shuttle" + centcomm_area = 1 /area/shuttle/escape_pod5 //Pod 4 was lost to meteors name = "\improper Escape Pod Five" @@ -240,61 +257,51 @@ area/space/atmosalert() /area/shuttle/escape_pod5/station icon_state = "shuttle2" base_turf = /turf/simulated/floor/asteroid + station_area = 1 /area/shuttle/escape_pod5/centcom icon_state = "shuttle" base_turf = /turf/space + centcomm_area = 1 /area/shuttle/escape_pod5/transit icon_state = "shuttle" + centcomm_area = 1 /area/shuttle/mining name = "\improper Mining Shuttle" /area/shuttle/mining/station icon_state = "shuttle2" + station_area = 1 /area/shuttle/mining/outpost icon_state = "shuttle" + station_area = 1 /area/shuttle/transport1/centcom icon_state = "shuttle" name = "\improper Transport Shuttle Centcom" base_turf = /turf/unsimulated/floor + centcomm_area = 1 /area/shuttle/transport1/station icon_state = "shuttle" name = "\improper Transport Shuttle" base_turf = /turf/simulated/floor/asteroid - -/area/shuttle/alien/base - icon_state = "shuttle" - name = "\improper Alien Shuttle Base" - requires_power = 1 - -/area/shuttle/alien/mine - icon_state = "shuttle" - name = "\improper Alien Shuttle Mine" - requires_power = 1 - -/area/shuttle/prison/ - name = "\improper Prison Shuttle" - -/area/shuttle/prison/station - icon_state = "shuttle" - -/area/shuttle/prison/prison - icon_state = "shuttle2" + station_area = 1 /area/shuttle/specops/centcom name = "\improper Special Ops Shuttle" flags = RAD_SHIELDED base_turf = /turf/unsimulated/floor icon_state = "shuttlered" + centcomm_area = 1 /area/shuttle/specops/station icon_state = "shuttlered2" base_turf = /turf/simulated/floor/asteroid + station_area = 1 /area/shuttle/syndicate_elite name = "\improper Merc Elite Shuttle" @@ -302,10 +309,12 @@ area/space/atmosalert() /area/shuttle/syndicate_elite/mothership icon_state = "shuttlered" + centcomm_area = 1 /area/shuttle/syndicate_elite/station icon_state = "shuttlered2" base_turf = /turf/simulated/floor/asteroid + station_area = 1 /area/shuttle/administration flags = RAD_SHIELDED @@ -314,48 +323,24 @@ area/space/atmosalert() name = "\improper Administration Shuttle Centcom" icon_state = "shuttlered" base_turf = /turf/unsimulated/floor + centcomm_area = 1 /area/shuttle/administration/station name = "\improper Administration Shuttle" icon_state = "shuttlered2" base_turf = /turf/simulated/floor/asteroid - -/area/shuttle/thunderdome - name = "honk" - -/area/shuttle/thunderdome/grnshuttle - name = "\improper Thunderdome GRN Shuttle" - icon_state = "green" - -/area/shuttle/thunderdome/grnshuttle/dome - name = "\improper GRN Shuttle" - icon_state = "shuttlegrn" - -/area/shuttle/thunderdome/grnshuttle/station - name = "\improper GRN Station" - icon_state = "shuttlegrn2" - -/area/shuttle/thunderdome/redshuttle - name = "\improper Thunderdome RED Shuttle" - icon_state = "red" - -/area/shuttle/thunderdome/redshuttle/dome - name = "\improper RED Shuttle" - icon_state = "shuttlered" - -/area/shuttle/thunderdome/redshuttle/station - name = "\improper RED Station" - icon_state = "shuttlered2" -// === Trying to remove these areas: + station_area = 1 /area/shuttle/research name = "\improper Research Shuttle" /area/shuttle/research/station icon_state = "shuttle2" + station_area = 1 /area/shuttle/research/outpost icon_state = "shuttle" + station_area = 1 /area/airtunnel1/ // referenced in airtunnel.dm:759 @@ -363,14 +348,13 @@ area/space/atmosalert() // === end remove -/area/alien - name = "\improper Alien base" - icon_state = "yellow" - requires_power = 0 - no_light_control = 1 - // CENTCOM +/area/prison/solitary + name = "\improper CentComm Solitary Confinement" + icon_state = "brig" + centcomm_area = 1 + /area/centcom name = "\improper Centcom" icon_state = "centcom" @@ -378,6 +362,7 @@ area/space/atmosalert() dynamic_lighting = 0 no_light_control = 1 base_turf = /turf/unsimulated/floor + centcomm_area = 1 /area/centcom/control name = "\improper Centcom Control" @@ -420,6 +405,7 @@ area/space/atmosalert() requires_power = 0 dynamic_lighting = 0 no_light_control = 1 + centcomm_area = 1 /area/syndicate_mothership/control name = "\improper Mercenary Control Room" @@ -449,26 +435,6 @@ area/space/atmosalert() icon_state = "cave" sound_env = SMALL_ENCLOSED - - - - - - - - - - - - - - -/area/planet/clown - name = "\improper Clown Planet" - icon_state = "honk" - requires_power = 0 - no_light_control = 1 - /area/tdome name = "\improper Thunderdome" icon_state = "thunder" @@ -476,6 +442,7 @@ area/space/atmosalert() dynamic_lighting = 0 sound_env = ARENA no_light_control = 1 + centcomm_area = 1 /area/tdome/tdome1 name = "\improper Thunderdome (Team 1)" @@ -500,6 +467,7 @@ area/space/atmosalert() dynamic_lighting = 0 requires_power = 0 no_light_control = 1 + centcomm_area = 1 /area/acting/backstage name = "\improper Backstage" @@ -523,51 +491,63 @@ area/space/atmosalert() /area/syndicate_station/start name = "\improper Mercenary Forward Operating Base" icon_state = "yellow" + centcomm_area = 1 /area/syndicate_station/southwest - name = "\improper south-west of SS13" + name = "\improper south-west of the station" icon_state = "southwest" + station_area = 1 /area/syndicate_station/northwest - name = "\improper north-west of SS13" + name = "\improper north-west of the station" icon_state = "northwest" + station_area = 1 /area/syndicate_station/northeast - name = "\improper north-east of SS13" + name = "\improper north-east of the station" icon_state = "northeast" + station_area = 1 /area/syndicate_station/southeast - name = "\improper south-east of SS13" + name = "\improper south-east of the station" icon_state = "southeast" + station_area = 1 /area/syndicate_station/north - name = "\improper north of SS13" + name = "\improper north of the station" icon_state = "north" + station_area = 1 /area/syndicate_station/south - name = "\improper south of SS13" + name = "\improper south of the station" icon_state = "south" + station_area = 1 /area/syndicate_station/commssat name = "\improper south of the communication satellite" icon_state = "south" + station_area = 1 /area/syndicate_station/mining name = "\improper northeast of the mining station" icon_state = "north" base_turf = /turf/space + station_area = 1 /area/syndicate_station/arrivals_dock name = "\improper docked with station" icon_state = "shuttle" + station_area = 1 /area/syndicate_station/maint_dock name = "\improper docked with station" icon_state = "shuttle" + station_area = 1 /area/syndicate_station/transit name = "\improper hyperspace" icon_state = "shuttle" + centcomm_area = 1 /area/wizard_station name = "\improper Wizard's Den" @@ -575,6 +555,7 @@ area/space/atmosalert() requires_power = 0 dynamic_lighting = 0 no_light_control = 1 + centcomm_area = 1 /area/skipjack_station name = "\improper Skipjack" @@ -585,115 +566,39 @@ area/space/atmosalert() /area/skipjack_station/start name = "\improper Skipjack" icon_state = "yellow" + centcomm_area = 1 /area/skipjack_station/transit name = "\improper hyperspace" icon_state = "shuttle" + centcomm_area = 1 /area/skipjack_station/southwest_solars name = "\improper aft port solars" icon_state = "southwest" + station_area = 1 /area/skipjack_station/northwest_solars name = "\improper fore port solars" icon_state = "northwest" + station_area = 1 /area/skipjack_station/northeast_solars name = "\improper fore starboard solars" icon_state = "northeast" + station_area = 1 /area/skipjack_station/southeast_solars name = "\improper aft starboard solars" icon_state = "southeast" + station_area = 1 /area/skipjack_station/mining name = "\improper south of mining station" icon_state = "north" base_turf = /turf/space + station_area = 1 -//PRISON -/area/prison - name = "\improper Prison Station" - icon_state = "brig" - no_light_control = 1 - -/area/prison/arrival_airlock - name = "\improper Prison Station Airlock" - icon_state = "green" - requires_power = 0 - -/area/prison/control - name = "\improper Prison Security Checkpoint" - icon_state = "security" - -/area/prison/crew_quarters - name = "\improper Prison Security Quarters" - icon_state = "security" - -/area/prison/rec_room - name = "\improper Prison Rec Room" - icon_state = "green" - -/area/prison/closet - name = "\improper Prison Supply Closet" - icon_state = "dk_yellow" - -/area/prison/hallway/fore - name = "\improper Prison Fore Hallway" - icon_state = "yellow" - -/area/prison/hallway/aft - name = "\improper Prison Aft Hallway" - icon_state = "yellow" - -/area/prison/hallway/port - name = "\improper Prison Port Hallway" - icon_state = "yellow" - -/area/prison/hallway/starboard - name = "\improper Prison Starboard Hallway" - icon_state = "yellow" - -/area/prison/morgue - name = "\improper Prison Morgue" - icon_state = "morgue" - -/area/prison/medical_research - name = "\improper Prison Genetic Research" - icon_state = "medresearch" - -/area/prison/medical - name = "\improper Prison Medbay" - icon_state = "medbay" - -/area/prison/solar - name = "\improper Prison Solar Array" - icon_state = "storage" - requires_power = 0 - -/area/prison/podbay - name = "\improper Prison Podbay" - icon_state = "dk_yellow" - -/area/prison/solar_control - name = "\improper Prison Solar Array Control" - icon_state = "dk_yellow" - -/area/prison/solitary - name = "Solitary Confinement" - icon_state = "brig" - -/area/prison/cell_block/A - name = "Prison Cell Block A" - icon_state = "brig" - -/area/prison/cell_block/B - name = "Prison Cell Block B" - icon_state = "brig" - -/area/prison/cell_block/C - name = "Prison Cell Block C" - icon_state = "brig" //////////////////// //SPACE STATION 13// @@ -713,6 +618,7 @@ area/space/atmosalert() 'sound/ambience/ambimaint4.ogg', 'sound/ambience/ambimaint5.ogg' ) + station_area = 1 /area/maintenance/civ name = "\improper Civilian Maintenance" @@ -895,6 +801,7 @@ area/space/atmosalert() /area/hallway/primary/ sound_env = LARGE_ENCLOSED allow_nightmode = 1 + station_area = 1 /area/hallway/primary/fore name = "\improper Fore Primary Hallway" @@ -956,6 +863,7 @@ area/space/atmosalert() name = "\improper Bridge" icon_state = "bridge" no_light_control = 1 + station_area = 1 /area/bridge/minibar name = "\improper Command Break Room" @@ -1016,18 +924,16 @@ area/space/atmosalert() name = "\improper Courtroom" icon_state = "courtroom" -/area/mint - name = "\improper Mint" - icon_state = "green" - /area/comms name = "\improper Communications Relay" icon_state = "tcomsatcham" no_light_control = 1 + station_area = 1 /area/server name = "\improper Research Server Room" icon_state = "server" + station_area = 1 //Crew @@ -1035,6 +941,7 @@ area/space/atmosalert() name = "\improper Dormitories" icon_state = "Sleep" flags = RAD_SHIELDED + station_area = 1 /area/crew_quarters/toilet name = "\improper Dormitory Toilets" @@ -1136,6 +1043,10 @@ area/space/atmosalert() name = "\improper Library" icon_state = "library" sound_env = LARGE_SOFTFLOOR + station_area = 1 + +/area/chapel + station_area = 1 /area/chapel/main name = "\improper Chapel" @@ -1150,9 +1061,7 @@ area/space/atmosalert() /area/lawoffice name = "\improper Internal Affairs" icon_state = "law" - - - + station_area = 1 /area/holodeck name = "\improper Holodeck" @@ -1160,6 +1069,7 @@ area/space/atmosalert() dynamic_lighting = 0 sound_env = LARGE_ENCLOSED no_light_control = 1 + station_area = 1 /area/holodeck/alphadeck name = "\improper Holodeck Alpha" @@ -1233,6 +1143,7 @@ area/space/atmosalert() 'sound/ambience/ambisin3.ogg', 'sound/ambience/ambisin4.ogg' ) + station_area = 1 /area/engineering/atmos name = "\improper Atmospherics" @@ -1319,6 +1230,7 @@ area/space/atmosalert() always_unpowered = 1 dynamic_lighting = 0 base_turf = /turf/space + station_area = 1 auxport name = "\improper Roof Solar Array" @@ -1370,14 +1282,13 @@ area/space/atmosalert() icon_state = "SolarcontrolA" sound_env = SMALL_ENCLOSED +/area/assembly + station_area = 1 + /area/assembly/chargebay name = "\improper Mech Bay" icon_state = "mechbay" -/area/assembly/showroom - name = "\improper Robotics Showroom" - icon_state = "showroom" - /area/assembly/robotics name = "\improper Robotics Lab" icon_state = "robotics" @@ -1394,18 +1305,13 @@ area/space/atmosalert() /area/teleporter name = "\improper Teleporter" icon_state = "teleporter" - -/area/gateway - name = "\improper Gateway" - icon_state = "teleporter" - -/area/AIsattele - name = "\improper AI Satellite Teleporter Room" - icon_state = "teleporter" - ambience = list('sound/ambience/ambimalf.ogg') + station_area = 1 //MedBay +/area/medical + station_area = 1 + /area/medical/medbay name = "\improper Medbay Hallway - Port" icon_state = "medbay" @@ -1561,6 +1467,7 @@ area/space/atmosalert() /area/security no_light_control = 1 + station_area = 1 /area/security/main name = "\improper Security Office" @@ -1678,6 +1585,7 @@ area/space/atmosalert() /area/quartermaster name = "\improper Quartermasters" icon_state = "quart" + station_area = 1 /area/quartermaster/office name = "\improper Cargo Office" @@ -1703,17 +1611,22 @@ area/space/atmosalert() /area/janitor/ name = "\improper Custodial Closet" icon_state = "janitor" + station_area = 1 /area/hydroponics name = "\improper Hydroponics" icon_state = "hydro" no_light_control = TRUE + station_area = 1 /area/hydroponics/garden name = "\improper Garden" icon_state = "garden" //rnd (Research and Development +/area/rnd + station_area = 1 + /area/rnd/research name = "\improper Research and Development" icon_state = "research" @@ -1768,11 +1681,17 @@ area/space/atmosalert() name = "\improper Miscellaneous Research" icon_state = "toxmisc" +/area/toxins + station_area = 1 + /area/toxins/server name = "\improper Server Room" icon_state = "server" + station_area = 1 //Storage +/area/storage + station_area = 1 /area/storage/tools name = "Auxiliary Tool Storage" @@ -2001,14 +1920,6 @@ area/space/atmosalert() name = "Construction Site Teleporter" icon_state = "yellow" - -//area/constructionsite -// name = "\improper Construction Site Shuttle" - -//area/constructionsite -// name = "\improper Construction Site Shuttle" - - //Construction /area/construction @@ -2016,6 +1927,7 @@ area/space/atmosalert() icon_state = "yellow" no_light_control = 1 base_turf = /turf/space + station_area = 1 /area/construction/supplyshuttle name = "\improper Supply Shuttle" @@ -2059,6 +1971,9 @@ area/space/atmosalert() name = "Emergency Storage" icon_state = "storage" +/area/turret_protected + station_area = 1 + /area/turret_protected/ai_upload name = "\improper AI Upload Chamber" icon_state = "ai_upload" @@ -2150,9 +2065,10 @@ area/space/atmosalert() // Telecommunications Satellite -/area/tcommsat/ +/area/tcommsat ambience = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') no_light_control = 1 + station_area = 1 /area/tcommsat/entrance name = "\improper Telecoms Teleporter" @@ -2195,156 +2111,6 @@ area/space/atmosalert() name = "\improper Telecommunications Power Control" icon_state = "tcomsatwest" - -// Away Missions -/area/awaymission - name = "\improper Strange Location" - icon_state = "away" - no_light_control = 1 - -/area/awaymission/example - name = "\improper Strange Station" - icon_state = "away" - -/area/awaymission/wwmines - name = "\improper Wild West Mines" - icon_state = "away1" - luminosity = 1 - requires_power = 0 - -/area/awaymission/wwgov - name = "\improper Wild West Mansion" - icon_state = "away2" - luminosity = 1 - requires_power = 0 - -/area/awaymission/wwrefine - name = "\improper Wild West Refinery" - icon_state = "away3" - luminosity = 1 - requires_power = 0 - -/area/awaymission/wwvault - name = "\improper Wild West Vault" - icon_state = "away3" - luminosity = 0 - -/area/awaymission/wwvaultdoors - name = "\improper Wild West Vault Doors" // this is to keep the vault area being entirely lit because of requires_power - icon_state = "away2" - requires_power = 0 - luminosity = 0 - -/area/awaymission/desert - name = "Mars" - icon_state = "away" - -/area/awaymission/BMPship1 - name = "\improper Aft Block" - icon_state = "away1" - -/area/awaymission/BMPship2 - name = "\improper Midship Block" - icon_state = "away2" - -/area/awaymission/BMPship3 - name = "\improper Fore Block" - icon_state = "away3" - -/area/awaymission/spacebattle - name = "\improper Space Battle" - icon_state = "away" - requires_power = 0 - -/area/awaymission/spacebattle/cruiser - name = "\improper Nanotrasen Cruiser" - -/area/awaymission/spacebattle/syndicate1 - name = "\improper Syndicate Assault Ship 1" - -/area/awaymission/spacebattle/syndicate2 - name = "\improper Syndicate Assault Ship 2" - -/area/awaymission/spacebattle/syndicate3 - name = "\improper Syndicate Assault Ship 3" - -/area/awaymission/spacebattle/syndicate4 - name = "\improper Syndicate War Sphere 1" - -/area/awaymission/spacebattle/syndicate5 - name = "\improper Syndicate War Sphere 2" - -/area/awaymission/spacebattle/syndicate6 - name = "\improper Syndicate War Sphere 3" - -/area/awaymission/spacebattle/syndicate7 - name = "\improper Syndicate Fighter" - -/area/awaymission/spacebattle/secret - name = "\improper Hidden Chamber" - -/area/awaymission/listeningpost - name = "\improper Listening Post" - icon_state = "away" - requires_power = 0 - -/area/awaymission/beach - name = "Beach" - icon_state = "null" - luminosity = 1 - dynamic_lighting = 0 - requires_power = 0 - ambience = list() - var/sound/mysound = null - - New() - ..() - var/sound/S = new/sound() - mysound = S - S.file = 'sound/ambience/shore.ogg' - S.repeat = 1 - S.wait = 0 - S.channel = 123 - S.volume = 100 - S.priority = 255 - S.status = SOUND_UPDATE - process() - - Entered(atom/movable/Obj,atom/OldLoc) - if(ismob(Obj)) - if(Obj:client) - mysound.status = SOUND_UPDATE - Obj << mysound - return - - Exited(atom/movable/Obj) - if(ismob(Obj)) - if(Obj:client) - mysound.status = SOUND_PAUSED | SOUND_UPDATE - Obj << mysound - - proc/process() - set background = 1 - - var/sound/S = null - var/sound_delay = 0 - if(prob(25)) - S = sound(file=pick('sound/ambience/seag1.ogg','sound/ambience/seag2.ogg','sound/ambience/seag3.ogg'), volume=100) - sound_delay = rand(0, 50) - - for(var/mob/living/carbon/human/H in src) - if(H.s_tone > -55) - H.s_tone-- - H.update_body() - if(H.client) - mysound.status = SOUND_UPDATE - H << mysound - if(S) - spawn(sound_delay) - H << S - - spawn(60) .() - ///////////////////////////////////////////////////////////////////// /* Lists of areas to be used with is_type_in_list. @@ -2352,63 +2118,10 @@ area/space/atmosalert() */ // CENTCOM -var/list/centcom_areas = list ( - /area/centcom, - /area/shuttle/escape/centcom, - /area/shuttle/escape_pod1/centcom, - /area/shuttle/escape_pod2/centcom, - /area/shuttle/escape_pod3/centcom, - /area/shuttle/escape_pod5/centcom, - /area/shuttle/transport1/centcom, - /area/shuttle/administration/centcom, - /area/shuttle/specops/centcom -) +var/list/centcom_areas = list () //SPACE STATION 13 -var/list/the_station_areas = list ( - /area/shuttle/arrival, - /area/shuttle/escape/station, - /area/shuttle/escape_pod1/station, - /area/shuttle/escape_pod2/station, - /area/shuttle/escape_pod3/station, - /area/shuttle/escape_pod5/station, - /area/shuttle/mining/station, - /area/shuttle/transport1/station, - // /area/shuttle/transport2/station, - /area/shuttle/prison/station, - /area/shuttle/administration/station, - /area/shuttle/specops/station, - /area/maintenance, - /area/hallway, - /area/bridge, - /area/crew_quarters, - /area/holodeck, - /area/mint, - /area/library, - /area/chapel, - /area/lawoffice, - /area/engineering, - /area/solar, - /area/assembly, - /area/teleporter, - /area/medical, - /area/security, - /area/quartermaster, - /area/janitor, - /area/hydroponics, - /area/rnd, - /area/storage, - /area/construction, - /area/ai_monitored/storage/eva, //do not try to simplify to "/area/ai_monitored" --rastaf0, - /area/ai_monitored/storage/secure, - /area/ai_monitored/storage/emergency, - /area/turret_protected/ai_upload, //do not try to simplify to "/area/turret_protected" --rastaf0, - /area/turret_protected/ai_upload_foyer, - /area/turret_protected/ai -) - - - +var/list/the_station_areas = list () /area/beach name = "Keelin's private beach" diff --git a/code/game/area/ai_monitored.dm b/code/game/area/ai_monitored.dm index 84f2c8eb4ea..ef913d17051 100644 --- a/code/game/area/ai_monitored.dm +++ b/code/game/area/ai_monitored.dm @@ -1,6 +1,7 @@ /area/ai_monitored name = "AI Monitored Area" var/obj/machinery/camera/motioncamera = null + station_area = 1 /area/ai_monitored/New() diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index cd2e7ef32f9..214caef4a92 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -23,6 +23,11 @@ luminosity = 0 else luminosity = 1 + if(centcomm_area) + centcom_areas |= src + if(station_area) + the_station_areas |= src + ..() diff --git a/code/game/area/asteroid_areas.dm b/code/game/area/asteroid_areas.dm index a6082014044..be8ed0401dc 100644 --- a/code/game/area/asteroid_areas.dm +++ b/code/game/area/asteroid_areas.dm @@ -32,6 +32,7 @@ // Main mining /area/outpost/mining_main icon_state = "outpost_mine_main" + station_area = 1 /area/outpost/mining_main/dorms name = "Mining Dormitory" @@ -59,6 +60,7 @@ // Engineering /area/outpost/engineering icon_state = "outpost_engine" + station_area = 1 /area/outpost/engineering/hallway name = "Engineering Sublevel Hallway" @@ -83,6 +85,7 @@ // Research /area/outpost/research icon_state = "outpost_research" + station_area = 1 /area/outpost/research/hallway name = "Research Sublevel Hallway" diff --git a/code/game/area/aurora_lift_areas.dm b/code/game/area/aurora_lift_areas.dm index 7dda96a5e2d..1474fae054e 100644 --- a/code/game/area/aurora_lift_areas.dm +++ b/code/game/area/aurora_lift_areas.dm @@ -1,11 +1,14 @@ // Using /area/shuttle for lifts as there are checks around the code that is useful for them // Rather not repete code over twice -// +// // Maybe change to ? -// /area/movable_zone/shuttle +// /area/movable_zone/shuttle // /area/movable_zone/lift // +/area/shuttle/medical + station_area = 1 + /area/shuttle/medical/main name = "\improper Medical Lift Main Floor" icon_state = "shuttle" @@ -14,6 +17,9 @@ name = "\improper Medical Lift Lower Floor" icon_state = "shuttle" +/area/shuttle/science + station_area = 1 + /area/shuttle/science/main name = "\improper Science Lift Main Floor" icon_state = "shuttle" @@ -22,6 +28,9 @@ name = "\improper Science Lift Lower Floor" icon_state = "shuttle" +/area/shuttle/engineering + station_area = 1 + /area/shuttle/engineering/main name = "\improper Engineering Lift Main Floor" icon_state = "shuttle" @@ -30,6 +39,9 @@ name = "\improper Engineering Lift Lower Floor" icon_state = "shuttle" +/area/shuttle/ai + station_area = 1 + /area/shuttle/ai/main name = "\improper AI Core Lift Main Floor" icon_state = "shuttle" @@ -38,6 +50,9 @@ name = "\improper AI Core Lift Lower Floor" icon_state = "shuttle" +/area/shuttle/vault + station_area = 1 + /area/shuttle/vault/main name = "\improper Vault Lift Main Floor" icon_state = "shuttle" @@ -46,6 +61,9 @@ name = "\improper Vault Lift Lower Floor" icon_state = "shuttle" +/area/shuttle/civilian + station_area = 1 + /area/shuttle/civilian/main name = "\improper Civilian Lift Main Floor" icon_state = "shuttle" @@ -58,6 +76,9 @@ name = "\improper Civilian Lift Top Floor" icon_state = "shuttle" +/area/shuttle/cargo + station_area = 1 + /area/shuttle/cargo/main name = "\improper Cargo Lift Main Floor" icon_state = "shuttle" @@ -70,6 +91,9 @@ name = "\improper Cargo Lift Top Floor" icon_state = "shuttle" +/area/shuttle/command + station_area = 1 + /area/shuttle/command/main name = "\improper Command Lift Main Floor" icon_state = "shuttle" diff --git a/code/game/base_turf.dm b/code/game/base_turf.dm index 96e9af94517..ffa99cc40d7 100644 --- a/code/game/base_turf.dm +++ b/code/game/base_turf.dm @@ -1,6 +1,14 @@ // Returns the lowest turf available on a given Z-level var/global/list/base_turf_by_z = list( - "5" = /turf/simulated/floor/asteroid // Moonbase. + "1" = /turf/space, + "2" = /turf/space, + "3" = /turf/simulated/floor/asteroid, + "4" = /turf/simulated/floor/asteroid, + "5" = /turf/simulated/floor/asteroid, + "6" = /turf/simulated/open, + "7" = /turf/space, + "8" = /turf/space, + "9" = /turf/space ) proc/get_base_turf(var/z) diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index 15b72290326..36634a74d08 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -171,8 +171,8 @@ department = "Cargo" department_flag = CIVILIAN faction = "Station" - total_positions = 3 - spawn_positions = 3 + total_positions = 4 + spawn_positions = 4 supervisors = "the quartermaster and the head of personnel" selection_color = "#dddddd" economic_modifier = 5 diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index 99df45a1491..bf8ac659e41 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -124,7 +124,8 @@ return active = 1 - use_power(5) + if(use_power) + use_power(active_power_usage) update_icon() wifi_sender.activate() active = 0 diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 959a80fc36c..32ade68ee24 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -422,9 +422,9 @@ dat += "
\[ [(src.aistate != STATE_DEFAULT) ? "Main Menu | " : ""]Close \]" return dat -/proc/enable_prison_shuttle(var/mob/user) +/*/proc/enable_prison_shuttle(var/mob/user) for(var/obj/machinery/computer/prison_shuttle/PS in world) - PS.allowedtocall = !(PS.allowedtocall) + PS.allowedtocall = !(PS.allowedtocall)*/ /proc/call_shuttle_proc(var/mob/user) if ((!( ticker ) || !emergency_shuttle.location())) diff --git a/code/game/machinery/door_control.dm b/code/game/machinery/door_control.dm index b51d72ccd8e..1977e3399d7 100644 --- a/code/game/machinery/door_control.dm +++ b/code/game/machinery/door_control.dm @@ -194,6 +194,7 @@ return icon_state = "launcherbtt" + active = 0 update_icon() return diff --git a/code/game/machinery/doors/blast_door.dm b/code/game/machinery/doors/blast_door.dm index 22c7da36546..2835ef866db 100644 --- a/code/game/machinery/doors/blast_door.dm +++ b/code/game/machinery/doors/blast_door.dm @@ -188,3 +188,8 @@ obj/machinery/door/blast/regular/open icon_state_closed = "shutter1" icon_state_closing = "shutterc1" icon_state = "shutter1" + +/obj/machinery/door/blast/shutters/open + icon_state = "shutter0" + density = 0 + opacity = 0 \ No newline at end of file diff --git a/code/game/machinery/floodlight.dm b/code/game/machinery/floodlight.dm index bc2f84159c3..abb2cc6f8be 100644 --- a/code/game/machinery/floodlight.dm +++ b/code/game/machinery/floodlight.dm @@ -1,4 +1,3 @@ -//these are probably broken /obj/machinery/floodlight name = "Emergency Floodlight" @@ -10,7 +9,7 @@ var/use = 200 // 200W light var/unlocked = 0 var/open = 0 - var/brightness_on = 8 //can't remember what the maxed out value is + var/brightness_on = 12 //can't remember what the maxed out value is light_color = LIGHT_COLOR_TUNGSTEN light_wedge = LIGHT_WIDE @@ -133,3 +132,19 @@ cell = W user << "You insert the power cell." update_icon() + +/obj/item/weapon/floodlight_diy + name = "Emergency Floodlight Kit" + desc = "A do-it-yourself kit for constructing the finest of emergency floodlights." + icon = 'icons/obj/storage.dmi' + icon_state = "inf_box" + item_state = "syringe_kit" + +/obj/item/weapon/floodlight_diy/attack_self(mob/user) + user << "You start piecing together the kit..." + if(do_after(user, 80)) + var/obj/machinery/floodlight/R = new /obj/machinery/floodlight(user.loc) + user.visible_message("[user] assembles \a [R].\ + ", "You assemble \a [R].") + R.add_fingerprint(user) + qdel(src) diff --git a/code/game/machinery/floor_light.dm b/code/game/machinery/floor_light.dm index 7298b62abf9..85f27c1f354 100644 --- a/code/game/machinery/floor_light.dm +++ b/code/game/machinery/floor_light.dm @@ -14,6 +14,7 @@ var/list/floor_light_cache = list() matter = list(DEFAULT_WALL_MATERIAL = 2500, "glass" = 2750) var/on + var/on_state = "on" var/damaged var/default_light_range = 4 var/default_light_power = 2 @@ -108,7 +109,7 @@ var/list/floor_light_cache = list() if(isnull(damaged)) var/cache_key = "floorlight-[default_light_colour]" if(!floor_light_cache[cache_key]) - var/image/I = image("on") + var/image/I = image("[on_state]") I.color = default_light_colour I.layer = layer+0.001 floor_light_cache[cache_key] = I @@ -154,4 +155,20 @@ var/list/floor_light_cache = list() /obj/machinery/floor_light/cultify() default_light_colour = "#FF0000" - update_brightness() \ No newline at end of file + update_brightness() + +/obj/machinery/floor_light/dance + name = "dance floor" + on_state = "light_on-dancefloor_A" + anchored = 1 + +/obj/machinery/floor_light/dance/initialize() + ..() + on = !on + if(on) + use_power = 2 + +/obj/machinery/floor_light/dance/alternate + name = "dance floor" + on_state = "light_on-dancefloor_B" + anchored = 1 \ No newline at end of file diff --git a/code/game/machinery/mass_driver.dm b/code/game/machinery/mass_driver.dm index 7b2775d9547..4252b6f7631 100644 --- a/code/game/machinery/mass_driver.dm +++ b/code/game/machinery/mass_driver.dm @@ -51,3 +51,119 @@ return drive() ..(severity) + +/obj/machinery/mass_driver/attackby(obj/item/W, mob/user) + + if(istype(W, /obj/item/weapon/wrench)) + if(!anchored) + playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + user.visible_message("[user.name] secures [src] to the floor.", \ + "You secure the external reinforcing bolts to the floor.", \ + "You hear a ratchet") + src.anchored = 1 + else + playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + user.visible_message("[user.name] unsecures [src] from the floor.", \ + "You unsecure the external reinforcing bolts from the floor.", \ + "You hear a ratchet") + src.anchored = 0 + +/obj/machinery/mass_driver/verb/rotate() + set name = "Rotate" + set category = "Object" + set src in oview(1) + + if (src.anchored || usr:stat) + usr << "It is fastened to the floor!" + return 0 + src.set_dir(turn(src.dir, 90)) + return 1 + +/obj/item/weapon/mass_driver_diy + name = "Mass Driver Kit" + desc = "A do-it-yourself kit for constructing the finest of mass drivers." + icon = 'icons/obj/storage.dmi' + icon_state = "inf_box" + item_state = "syringe_kit" + +/obj/item/weapon/mass_driver_diy/attack_self(mob/user) + user << "You start piecing together the kit..." + if(do_after(user, 80)) + var/master_id = "[user.name] - [pick("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z")][rand(100,999)]" + var/obj/machinery/mass_driver/mining/R = new /obj/machinery/mass_driver/mining(user.loc) + R.id = master_id + R.power = 2.0 + var/obj/item/weapon/mass_driver_button/B = new /obj/item/weapon/mass_driver_button(user.loc) + B.id = master_id + user.visible_message("[user] assembles \a [R].\ + ", "You assemble \a [R].") + R.add_fingerprint(user) + qdel(src) + +/obj/item/weapon/mass_driver_button + name = "mass driver button" + desc = "An unscrewed mass driver button." + icon = 'icons/obj/objects.dmi' + icon_state = "launcherbtt" + var/id + +/obj/item/weapon/mass_driver_button/afterattack(var/atom/A, var/mob/user, var/adjacent, var/clickparams) + if (!adjacent) + return + + //must place on a wall and user must not be inside a closet/mecha/whatever + var/turf/W = A + if (!iswall(W) || !isturf(user.loc)) + user << "You can't place this here!" + return + + var/placement_dir = get_dir(user, W) + if (!(placement_dir in cardinal)) + user << "You must stand directly in front of the wall you wish to place that on." + return + + //just check if there is a poster on or adjacent to the wall + var/stuff_on_wall = 0 + if (locate(/obj/machinery/button) in W) + stuff_on_wall = 1 + + //crude, but will cover most cases. We could do stuff like check pixel_x/y but it's not really worth it. + for (var/dir in cardinal) + var/turf/T = get_step(W, dir) + if (locate(/obj/machinery/button) in T) + stuff_on_wall = 1 + break + + if (stuff_on_wall) + user << "There is already a button there!" + return + + user << "You place down the button." + var/obj/machinery/button/mass_driver/B = new /obj/machinery/button/remote/driver(user.loc) + + switch (placement_dir) + if (NORTH) + B.pixel_x = 0 + B.pixel_y = 32 + if (SOUTH) + B.pixel_x = 0 + B.pixel_y = -32 + if (EAST) + B.pixel_x = 32 + B.pixel_y = 0 + if (WEST) + B.pixel_x = -32 + B.pixel_y = 0 + + B.id = id + B.use_power = 0 + B.add_fingerprint(user) + qdel(src) + +/obj/machinery/mass_driver/mining + name = "mining mass driver" + desc = "Shoots things really hard really fast." + icon = 'icons/obj/stationobjs.dmi' + icon_state = "mass_driver" + anchored = 0 + use_power = 0 \ No newline at end of file diff --git a/code/game/objects/effects/overlays.dm b/code/game/objects/effects/overlays.dm index c28198f89a3..bf982e8e2aa 100644 --- a/code/game/objects/effects/overlays.dm +++ b/code/game/objects/effects/overlays.dm @@ -60,3 +60,51 @@ density = 0 anchored = 1 layer = 3 + +/obj/effect/overlay/temp + icon_state = "nothing" + anchored = 1 + layer = 5 + mouse_opacity = 0 + var/duration = 10 //in deciseconds + var/randomdir = TRUE + var/timerid + +/obj/effect/overlay/temp/New() + ..() + if(randomdir) + dir = (pick(cardinal)) + flick("[icon_state]", src) + + schedule_task_in(duration, /proc/qdel, list(src)) + +/obj/effect/overlay/temp/ex_act() + return + +/obj/effect/overlay/temp/dir_setting + randomdir = FALSE + +/obj/effect/overlay/temp/dir_setting/New(loc, set_dir) + if(set_dir) + dir = set_dir + ..() + + +/obj/effect/overlay/temp/kinetic_blast + name = "kinetic explosion" + icon = 'icons/obj/projectiles.dmi' + icon_state = "kinetic_blast" + layer = 5 + duration = 4 + +/obj/effect/overlay/temp/explosion + name = "explosion" + icon = 'icons/effects/96x96.dmi' + icon_state = "explosion" + pixel_x = -32 + pixel_y = -32 + duration = 8 + +/obj/effect/overlay/temp/explosion/fast + icon_state = "explosionfast" + duration = 4 diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm index 702926d6ffb..5e51506c09d 100644 --- a/code/game/objects/effects/portals.dm +++ b/code/game/objects/effects/portals.dm @@ -28,11 +28,14 @@ return return -/obj/effect/portal/New() - spawn(300) - qdel(src) - return - return +/obj/effect/portal/New(loc, turf/target, creator=null, lifespan=300) + ..() + src.target = target + src.creator = creator + + if(lifespan > 0) + spawn(lifespan) + qdel(src) /obj/effect/portal/proc/teleport(atom/movable/M as mob|obj) if(istype(M, /obj/effect)) //sparks don't teleport diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm index 17c7d762480..148a6ce24f5 100644 --- a/code/game/objects/items/blueprints.dm +++ b/code/game/objects/items/blueprints.dm @@ -89,9 +89,7 @@ move an amendment to the drawing.

/area/asteroid, /area/tdome, /area/syndicate_station, - /area/wizard_station, - /area/prison - // /area/derelict //commented out, all hail derelict-rebuilders! + /area/wizard_station ) for (var/type in SPECIALS) if ( istype(A,type) ) diff --git a/code/game/objects/items/devices/radio/beacon.dm b/code/game/objects/items/devices/radio/beacon.dm index 7d41e25bc47..e5c03e774c1 100644 --- a/code/game/objects/items/devices/radio/beacon.dm +++ b/code/game/objects/items/devices/radio/beacon.dm @@ -1,3 +1,5 @@ +var/global/list/teleportbeacons = list() + /obj/item/device/radio/beacon name = "tracking beacon" desc = "A beacon used by a teleporter." @@ -6,6 +8,14 @@ var/code = "electronic" origin_tech = list(TECH_BLUESPACE = 1) +/obj/item/device/radio/beacon/New() + ..() + teleportbeacons += src + +/obj/item/device/radio/beacon/Destroy() + teleportbeacons.Remove(src) + return ..() + /obj/item/device/radio/beacon/hear_talk() return diff --git a/code/game/objects/items/paintkit.dm b/code/game/objects/items/paintkit.dm index f08d5287958..d4fd9819663 100644 --- a/code/game/objects/items/paintkit.dm +++ b/code/game/objects/items/paintkit.dm @@ -136,7 +136,7 @@ new_name = "APLU \"Burning Chrome\"" new_desc = "A standard APLU exosuit with stylish blue flame decals." new_icon = "ripley_flames_blue" - + /obj/item/device/kit/paint/ripley/titan name = "\"Titan's Fist\" APLU customisation kit" new_name = "APLU \"Titan's Fist\"" @@ -149,6 +149,16 @@ new_desc = "Looks like an over worked, under maintained Ripley with some horrific damage." new_icon = "earth" +/obj/item/device/kit/paint/ripley/random + name = "quantum ripley kit" + +/obj/item/device/kit/paint/ripley/random/New() + ..() + var/list/ripleys = (typesof(/obj/item/device/kit/paint/ripley) - typesof(/obj/item/device/kit/paint/ripley/fluff)) + var/build_path = pick(ripleys) + new build_path(src.loc) + qdel(src) + // Durand kits. /obj/item/device/kit/paint/durand name = "\"Classic\" Durand customisation kit" diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index ac46f2beaa9..731cfbc3799 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -160,6 +160,7 @@ return 0 R.emagged = 1 + R.fakeemagged = 1 return 1 /obj/item/borg/upgrade/combat diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index 3d6a5c96261..568ad40f33a 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -1,3 +1,14 @@ +var/global/list/datum/stack_recipe/rod_recipes = list ( \ + new/datum/stack_recipe("grille", /obj/structure/grille, 2, time = 10, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("mine track", /obj/structure/track, 3, time = 10, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("cane", /obj/item/weapon/cane, 1, time = 6), \ + new/datum/stack_recipe("crowbar", /obj/item/weapon/crowbar, 1, time = 6), \ + new/datum/stack_recipe("screwdriver", /obj/item/weapon/screwdriver, 1, time = 12), \ + new/datum/stack_recipe("wrench", /obj/item/weapon/wrench, 1, time = 6), \ + new/datum/stack_recipe("spade", /obj/item/weapon/shovel/spade, 2, time = 12), \ + new/datum/stack_recipe("bolt", /obj/item/weapon/arrow, 1, time = 6) + ) + /obj/item/stack/rods name = "metal rod" desc = "Some rods. Can be used for building, or something." @@ -22,6 +33,19 @@ charge_costs = list(500) stacktype = /obj/item/stack/rods +/obj/item/stack/rods/New(var/loc, var/amount=null) + ..() + + recipes = rod_recipes + update_icon() + +/obj/item/stack/rods/update_icon() + var/amount = get_amount() + if((amount <= 5) && (amount > 0)) + icon_state = "rods-[amount]" + else + icon_state = "rods" + /obj/item/stack/rods/attackby(obj/item/W as obj, mob/user as mob) ..() if (istype(W, /obj/item/weapon/weldingtool)) @@ -44,36 +68,3 @@ user.put_in_hands(new_item) return ..() - - -/obj/item/stack/rods/attack_self(mob/user as mob) - src.add_fingerprint(user) - - if(!istype(user.loc,/turf)) return 0 - - if (locate(/obj/structure/grille, usr.loc)) - for(var/obj/structure/grille/G in usr.loc) - if (G.destroyed) - G.health = 10 - G.density = 1 - G.destroyed = 0 - G.icon_state = "grille" - use(1) - else - return 1 - - else if(!in_use) - if(get_amount() < 2) - user << "You need at least two rods to do this." - return - usr << "Assembling grille..." - in_use = 1 - if (!do_after(usr, 10)) - in_use = 0 - return - var/obj/structure/grille/F = new /obj/structure/grille/ ( usr.loc ) - usr << "You assemble a grille" - in_use = 0 - F.add_fingerprint(usr) - use(2) - return diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index f2e501ca09f..ff38d4385fb 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -189,6 +189,7 @@ if(usr) usr.remove_from_mob(src) qdel(src) //should be safe to qdel immediately since if someone is still using this stack it will persist for a little while longer + update_icon() return 1 else if(get_amount() < used) @@ -205,6 +206,7 @@ return 0 else amount += extra + update_icon() return 1 else if(!synths || synths.len < uses_charge) return 0 diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index 8dfbc83145f..60663c8596c 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -114,6 +114,7 @@ var/const/NO_EMAG_ACT = -50 var/sex = "\[UNSET\]" var/icon/front var/icon/side + var/mining_points //miners gotta eat //alt titles are handled a bit weirdly in order to unobtrusively integrate into existing ID system var/assignment = null //can be alt title or the actual job @@ -182,6 +183,8 @@ var/const/NO_EMAG_ACT = -50 dat += text("Fingerprint: []
\n", fingerprint_hash) dat += text("Blood Type: []
\n", blood_type) dat += text("DNA Hash: []

\n", dna_hash) + if(mining_points) + dat += text("Ore Redemption Points: []

\n", mining_points) if(front && side) dat +="Photo:
" dat += "" @@ -279,6 +282,8 @@ var/const/NO_EMAG_ACT = -50 usr << "The blood type on the card is [blood_type]." usr << "The DNA hash on the card is [dna_hash]." usr << "The fingerprint hash on the card is [fingerprint_hash]." + if(mining_points) + usr << "A ticker indicates the card has [mining_points] ore redemption points available." return /obj/item/weapon/card/id/silver @@ -322,6 +327,17 @@ var/const/NO_EMAG_ACT = -50 access = get_all_station_access() + access_synth ..() +/obj/item/weapon/card/id/synthetic/minedrone + name = "\improper Minedrone ID" + desc = "Access module for NanoTrasen Minedrones" + icon_state = "id-robot" + item_state = "tdgreen" + assignment = "Minedrone" + +/obj/item/weapon/card/id/synthetic/minedrone/New() + access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station) + ..() + /obj/item/weapon/card/id/centcom name = "\improper CentCom. ID" desc = "An ID straight from Cent. Com." @@ -340,7 +356,7 @@ var/const/NO_EMAG_ACT = -50 obj/item/weapon/card/id/centcom/ERT/New() ..() access = get_all_accesses() + get_centcom_access("Emergency Response Team") - + /obj/item/weapon/card/id/all_access name = "\improper Administrator's spare ID" desc = "The spare ID of the Lord of Lords himself." diff --git a/code/game/objects/items/weapons/circuitboards/computer/computer.dm b/code/game/objects/items/weapons/circuitboards/computer/computer.dm index 3153adab03e..39ec0ee0dff 100644 --- a/code/game/objects/items/weapons/circuitboards/computer/computer.dm +++ b/code/game/objects/items/weapons/circuitboards/computer/computer.dm @@ -167,10 +167,10 @@ build_path = /obj/machinery/computer/area_atmos origin_tech = list(TECH_DATA = 2) -/obj/item/weapon/circuitboard/prison_shuttle +/*/obj/item/weapon/circuitboard/prison_shuttle name = T_BOARD("prison shuttle control console") build_path = /obj/machinery/computer/prison_shuttle - origin_tech = list(TECH_DATA = 2) + origin_tech = list(TECH_DATA = 2)*/ /obj/item/weapon/circuitboard/rcon_console name = T_BOARD("RCON remote control console") diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm index d55348d2815..78e12af8a07 100644 --- a/code/game/objects/items/weapons/explosives.dm +++ b/code/game/objects/items/weapons/explosives.dm @@ -68,7 +68,7 @@ spawn(timer*10) explode(get_turf(target)) -/obj/item/weapon/plastique/proc/explode(var/location) +/obj/item/weapon/plastique/proc/explode(var/turf/location) if(!target) target = get_atom_on_turf(src) if(!target) diff --git a/code/game/objects/items/weapons/material/twohanded.dm b/code/game/objects/items/weapons/material/twohanded.dm index 2d59c848e4b..7f24f9919a8 100644 --- a/code/game/objects/items/weapons/material/twohanded.dm +++ b/code/game/objects/items/weapons/material/twohanded.dm @@ -26,6 +26,7 @@ var/base_icon var/base_name var/unwielded_force_divisor = 0.25 + action_button_name = "Wield two-handed weapon" /obj/item/weapon/material/twohanded/proc/unwield() wielded = 0 @@ -130,6 +131,17 @@ return +/obj/item/weapon/material/twohanded/ui_action_click() + if(src in usr) + attack_self(usr) + +/obj/item/weapon/material/twohanded/verb/wield_twohanded() + set name = "Wield two-handed weapon" + set category = "Object" + set src in usr + + attack_self(usr) + ///////////OFFHAND/////////////// /obj/item/weapon/material/twohanded/offhand w_class = 5 diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 0914e272e79..2fe400c7bd7 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -140,7 +140,7 @@ /obj/item/taperoll/police, /obj/item/weapon/material/sword/trench, /obj/item/weapon/shield/energy, - /obj/item/weapon/shield/riot/tact + /obj/item/weapon/shield/riot/tact ) /obj/item/weapon/storage/belt/soulstone @@ -231,7 +231,7 @@ /obj/item/weapon/soap, /obj/item/weapon/storage/bag/trash ) - + /obj/item/weapon/storage/belt/wands name = "wand belt" desc = "A belt designed to hold various rods of power." @@ -243,7 +243,7 @@ can_hold = list( /obj/item/weapon/gun/energy/wand ) - + /obj/item/weapon/storage/belt/wands/full/New() ..() new /obj/item/weapon/gun/energy/wand/fire(src) @@ -251,3 +251,39 @@ new /obj/item/weapon/gun/energy/wand/teleport(src) new /obj/item/weapon/gun/energy/wand/force(src) new /obj/item/weapon/gun/energy/wand/animation(src) + +/obj/item/weapon/storage/belt/mining + name = "explorer's webbing" + desc = "A versatile chest rig, cherished by miners and hunters alike." + icon_state = "explorer" + item_state = "explorer" + storage_slots = 9 + w_class = 4 + max_w_class = 4 //Pickaxes are big. + can_hold = list(/obj/item/weapon/crowbar, + /obj/item/weapon/screwdriver, + /obj/item/weapon/weldingtool, + /obj/item/weapon/wirecutters, + /obj/item/weapon/wrench, + /obj/item/device/flashlight, + /obj/item/stack/cable_coil, + /obj/item/device/analyzer, + /obj/item/weapon/extinguisher/mini, + /obj/item/device/radio, + /obj/item/clothing/gloves, + /obj/item/clothing/glasses/material, + /obj/item/weapon/pickaxe, + /obj/item/stack/material/animalhide, + /obj/item/weapon/flame/lighter, + /obj/item/weapon/storage/fancy/cigarettes, + /obj/item/weapon/reagent_containers/food/drinks/bottle, + /obj/item/stack/medical, + /obj/item/weapon/reagent_containers/hypospray, + /obj/item/device/gps, + /obj/item/weapon/storage/bag/ore, + /obj/item/weapon/reagent_containers/pill, + /obj/item/weapon/storage/pill_bottle, + /obj/item/weapon/ore, + /obj/item/weapon/reagent_containers/food/drinks, + /obj/item/weapon/storage/bag/plants + ) diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 97e8825f562..86229a59332 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -812,3 +812,13 @@ var/type = pick(snacks) new type(src) ..() + +/obj/item/weapon/storage/box/stims + name = "stimpack value kit" + desc = "A box with several stimpack medipens for the economical miner." + icon_state = "syringe" + +/obj/item/weapon/storage/box/stims/New() + ..() + for(var/i in 1 to 4) + new /obj/item/weapon/reagent_containers/hypospray/autoinjector/stimpack(src) \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm index 4bb3ba9a3a2..51d00cf1db5 100644 --- a/code/game/objects/items/weapons/storage/firstaid.dm +++ b/code/game/objects/items/weapons/storage/firstaid.dm @@ -150,6 +150,22 @@ make_exact_fit() +/obj/item/weapon/storage/firstaid/brute + name = "brute aid kit" + desc = "A NanoTrasen care package for moderately injured miners." + icon_state = "brute" + +/obj/item/weapon/storage/firstaid/brute/New() + ..() + if (empty) return + new /obj/item/stack/medical/bruise_pack(src) + new /obj/item/stack/medical/bruise_pack(src) + new /obj/item/stack/medical/bruise_pack(src) + new /obj/item/stack/medical/bruise_pack(src) + new /obj/item/stack/medical/advanced/bruise_pack(src) + new /obj/item/stack/medical/advanced/bruise_pack(src) + return + /* * Pill Bottles */ diff --git a/code/game/objects/items/weapons/teleportation.dm b/code/game/objects/items/weapons/teleportation.dm index fdad2423fcb..cec486a3c6e 100644 --- a/code/game/objects/items/weapons/teleportation.dm +++ b/code/game/objects/items/weapons/teleportation.dm @@ -21,8 +21,8 @@ item_state = "electronic" throw_speed = 4 throw_range = 20 - origin_tech = list(TECH_MAGNET = 1) - matter = list(DEFAULT_WALL_MATERIAL = 400) + origin_tech = list(TECH_MAGNET = 1) + matter = list(DEFAULT_WALL_MATERIAL = 400) /obj/item/weapon/locator/attack_self(mob/user as mob) user.set_machine(src) @@ -48,7 +48,7 @@ Frequency: if (usr.stat || usr.restrained()) return var/turf/current_location = get_turf(usr)//What turf is the user on? - if(!current_location||current_location.z==2)//If turf was not found or they're on z level 2. + if(!current_location||current_location.z==1)//If turf was not found or they're on z level 1. usr << "The [src] is malfunctioning." return if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf)))) @@ -60,7 +60,7 @@ Frequency: if (sr) src.temp += "Located Beacons:
" - for(var/obj/item/device/radio/beacon/W in world) + for(var/obj/item/device/radio/beacon/W in teleportbeacons) if (W.frequency == src.frequency) var/turf/tr = get_turf(W) if (tr.z == sr.z && tr) @@ -132,8 +132,8 @@ Frequency: w_class = 2.0 throw_speed = 3 throw_range = 5 - origin_tech = list(TECH_MAGNET = 1, TECH_BLUESPACE = 3) - matter = list(DEFAULT_WALL_MATERIAL = 10000) + origin_tech = list(TECH_MAGNET = 1, TECH_BLUESPACE = 3) + matter = list(DEFAULT_WALL_MATERIAL = 10000) /obj/item/weapon/hand_tele/attack_self(mob/user as mob) var/turf/current_location = get_turf(user)//What turf is the user on? diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index 430c974f7c3..18d1a15d45b 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -69,7 +69,7 @@ user << "You secured the girder!" reset_girder() - else if(istype(W, /obj/item/weapon/pickaxe/plasmacutter)) + else if(istype(W, /obj/item/weapon/gun/energy/plasmacutter)) user << "Now slicing apart the girder..." if(do_after(user,30)) if(!src) return @@ -278,7 +278,7 @@ user << "You dissasembled the girder!" dismantle() - else if(istype(W, /obj/item/weapon/pickaxe/plasmacutter)) + else if(istype(W, /obj/item/weapon/gun/energy/plasmacutter)) user << "Now slicing apart the girder..." if(do_after(user,30)) user << "You slice apart the girder!" diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 2463cd48b4b..46cda524cb7 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -64,7 +64,7 @@ //Flimsy grilles aren't so great at stopping projectiles. However they can absorb some of the impact var/damage = Proj.get_structure_damage() var/passthrough = 0 - + if(!damage) return //20% chance that the grille provides a bit more cover than usual. Support structure for example might take up 20% of the grille's area. @@ -104,6 +104,16 @@ anchored = !anchored user.visible_message("[user] [anchored ? "fastens" : "unfastens"] the grille.", \ "You have [anchored ? "fastened the grille to" : "unfastened the grill from"] the floor.") + else if(istype(W,/obj/item/stack/rods) && destroyed == 1) + if(!shock(user, 90)) + var/obj/item/stack/rods/ROD = W + health = 10 + density = 1 + destroyed = 0 + icon_state = "grille" + ROD.use(1) + user.visible_message("[user] repairs the grille.", \ + "You have repaired the grille.") return //window placing begin //TODO CONVERT PROPERLY TO MATERIAL DATUM diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index 753af5a8e10..f8052a2b022 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -143,7 +143,7 @@ //This return will prevent afterattack from executing if the object goes into the trashbag, //This prevents dumb stuff like splashing the cart with the contents of a container, after putting said container into trash - else if (!has_items && (istype(I, /obj/item/weapon/wrench) || istype(I, /obj/item/weapon/weldingtool) || istype(I, /obj/item/weapon/pickaxe/plasmacutter))) + else if (!has_items && (istype(I, /obj/item/weapon/wrench) || istype(I, /obj/item/weapon/weldingtool) || istype(I, /obj/item/weapon/gun/energy/plasmacutter))) dismantle(user) return ..() diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm index 4c31a8530fb..b00badc7548 100644 --- a/code/game/objects/structures/lattice.dm +++ b/code/game/objects/structures/lattice.dm @@ -32,20 +32,15 @@ var/obj/structure/lattice/L if(locate(/obj/structure/lattice, get_step(src, dir))) L = locate(/obj/structure/lattice, get_step(src, dir)) - L.updateOverlays(src.loc) + L.updateOverlays() ..() /obj/structure/lattice/ex_act(severity) switch(severity) if(1.0) qdel(src) - return if(2.0) qdel(src) - return - if(3.0) - return - else return /obj/structure/lattice/attackby(obj/item/C as obj, mob/user as mob) @@ -64,8 +59,6 @@ return /obj/structure/lattice/proc/updateOverlays() - //if(!(istype(src.loc, /turf/space))) - // qdel(src) spawn(1) overlays = list() diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index d4af3d80e3f..3ebe6573f4e 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -1,5 +1,5 @@ //Config stuff -#define SUPPLY_DOCKZ 2 //Z-level of the Dock. +#define SUPPLY_DOCKZ 3 //Z-level of the Dock. #define SUPPLY_STATIONZ 1 //Z-level of the Station. #define SUPPLY_STATION_AREATYPE "/area/supply/station" //Type of the supply shuttle area for station #define SUPPLY_DOCK_AREATYPE "/area/supply/dock" //Type of the supply shuttle area for dock @@ -31,11 +31,13 @@ var/list/mechtoys = list( name = "Supply Shuttle" icon_state = "shuttle3" requires_power = 0 + station_area = 1 /area/supply/dock name = "Supply Shuttle" icon_state = "shuttle3" requires_power = 0 + centcomm_area = 1 /* diff --git a/code/game/turfs/simulated/wall_attacks.dm b/code/game/turfs/simulated/wall_attacks.dm index a96acc7d395..104fc1802e9 100644 --- a/code/game/turfs/simulated/wall_attacks.dm +++ b/code/game/turfs/simulated/wall_attacks.dm @@ -129,7 +129,7 @@ thermitemelt(user) return - else if(istype(W, /obj/item/weapon/pickaxe/plasmacutter)) + else if(istype(W, /obj/item/weapon/gun/energy/plasmacutter)) thermitemelt(user) return @@ -271,7 +271,7 @@ else user << "You need more welding fuel to complete this task." return - else if (istype(W, /obj/item/weapon/pickaxe/plasmacutter)) + else if (istype(W, /obj/item/weapon/gun/energy/plasmacutter)) cut_cover = 1 if(cut_cover) user << "You begin slicing through the metal cover." @@ -311,7 +311,7 @@ else user << "You need more welding fuel to complete this task." return - else if(istype(W, /obj/item/weapon/pickaxe/plasmacutter)) + else if(istype(W, /obj/item/weapon/gun/energy/plasmacutter)) cut_cover = 1 if(cut_cover) user << "You begin slicing through the support rods." diff --git a/code/game/turfs/unsimulated/floor.dm b/code/game/turfs/unsimulated/floor.dm index 3409b2e5cb0..fd84e1113c0 100644 --- a/code/game/turfs/unsimulated/floor.dm +++ b/code/game/turfs/unsimulated/floor.dm @@ -13,3 +13,14 @@ name = "mask" icon = 'icons/turf/walls.dmi' icon_state = "rockvault" + oxygen = 0 + nitrogen = 0 + temperature = TCMB + +/turf/unsimulated/chasm_mask + name = "chasm mask" + icon = 'icons/turf/walls.dmi' + icon_state = "alienvault" + oxygen = 0 + nitrogen = 0 + temperature = TCMB \ No newline at end of file diff --git a/code/global.dm b/code/global.dm index 1ef56d9bf1b..700bdc2717b 100644 --- a/code/global.dm +++ b/code/global.dm @@ -32,11 +32,11 @@ var/diary = null var/diary_runtime = null var/diary_date_string = null var/href_logfile = null -var/station_name = "NSS Exodus" -var/station_short = "Exodus" +var/station_name = "NSS Aurora II" +var/station_short = "Aurora" var/const/dock_name = "NTCC Odin" var/const/boss_name = "Central Command" -var/const/boss_short = "Centcomm" +var/const/boss_short = "Centcom" var/const/company_name = "NanoTrasen" var/const/company_short = "NT" var/game_version = "Aurorastation" diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 65c6e6221dd..2721a958cc2 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -167,6 +167,7 @@ /obj/effect/landmark/corpse/engineer/rotten name = "unidentifiable corpse" species = "Skeleton" + corpseid = 0 /obj/effect/landmark/corpse/clown name = "Clown" diff --git a/code/modules/clothing/spacesuits/rig/modules/combat.dm b/code/modules/clothing/spacesuits/rig/modules/combat.dm index 44f2a5935f9..dc668b2a650 100644 --- a/code/modules/clothing/spacesuits/rig/modules/combat.dm +++ b/code/modules/clothing/spacesuits/rig/modules/combat.dm @@ -166,7 +166,7 @@ interface_desc = "A shoulder-mounted cell-powered taser." gun_type = /obj/item/weapon/gun/energy/taser/mounted - + /obj/item/rig_module/mounted/pulse name = "mounted pulse rifle" @@ -177,7 +177,7 @@ interface_desc = "A shoulder-mounted cell-powered pulse rifle." gun_type = /obj/item/weapon/gun/energy/pulse_rifle/mounted - + /obj/item/rig_module/mounted/smg name = "mounted submachine gun" @@ -188,7 +188,7 @@ interface_desc = "A forearm-mounted suit-powered ballistic submachine gun." gun_type = /obj/item/weapon/gun/energy/mountedsmg - + /obj/item/rig_module/mounted/xray name = "mounted xray laser gun" @@ -199,7 +199,7 @@ interface_desc = "A forearm-mounted suit-powered xray laser gun." gun_type = /obj/item/weapon/gun/energy/xray/mounted - + /obj/item/rig_module/mounted/ion name = "mounted ion rifle" @@ -211,6 +211,38 @@ gun_type = /obj/item/weapon/gun/energy/ionrifle/mounted +/obj/item/rig_module/mounted/plasmacutter + name = "hardsuit plasma cutter" + desc = "A forearm mounted kinetic accelerator" + icon_state = "plasmacutter" + interface_name = "plasma cutter" + interface_desc = "A self-sustaining plasma arc capable of cutting through walls." + suit_overlay_active = "plasmacutter" + suit_overlay_inactive = "plasmacutter" + construction_cost = list("glass" = 5250, DEFAULT_WALL_MATERIAL = 30000, "silver" = 5250, "phoron" = 7250) + construction_time = 300 + + gun_type = /obj/item/weapon/gun/energy/plasmacutter/mounted + +/obj/item/rig_module/mounted/kinetic_accelerator + name = "hardsuit kinetic accelerator" + desc = "A lethal-looking industrial cutter." + icon_state = "kineticgun" + interface_name = "kinetic accelerator" + interface_desc = "A ranged mining tool that does increased damage in low pressure." + + gun_type = /obj/item/weapon/gun/energy/kinetic_accelerator/cyborg + +/obj/item/rig_module/mounted/thermalldrill + name = "hardsuit thermal drill" + desc = "An incredibly lethal looking thermal drill." + icon_state = "thermaldrill" + interface_name = "thermal drill" + interface_desc = "A potent drill that can pierce rock walls over long distances." + + gun_type = /obj/item/weapon/gun/energy/vaurca/mountedthermaldrill + + /obj/item/rig_module/mounted/energy_blade name = "energy blade projector" diff --git a/code/modules/clothing/spacesuits/rig/modules/utility.dm b/code/modules/clothing/spacesuits/rig/modules/utility.dm index 5d15df1d997..0f0e0489cfa 100644 --- a/code/modules/clothing/spacesuits/rig/modules/utility.dm +++ b/code/modules/clothing/spacesuits/rig/modules/utility.dm @@ -1,6 +1,5 @@ /* Contains: * /obj/item/rig_module/device - * /obj/item/rig_module/device/plasmacutter * /obj/item/rig_module/device/healthscanner * /obj/item/rig_module/device/drill * /obj/item/rig_module/device/orescanner @@ -28,20 +27,6 @@ var/device_type var/obj/item/device -/obj/item/rig_module/device/plasmacutter - name = "hardsuit plasma cutter" - desc = "A lethal-looking industrial cutter." - icon_state = "plasmacutter" - interface_name = "plasma cutter" - interface_desc = "A self-sustaining plasma arc capable of cutting through walls." - suit_overlay_active = "plasmacutter" - suit_overlay_inactive = "plasmacutter" - use_power_cost = 0.5 - construction_cost = list("glass" = 5250, DEFAULT_WALL_MATERIAL = 30000, "silver" = 5250, "phoron" = 7250) - construction_time = 300 - - device_type = /obj/item/weapon/pickaxe/plasmacutter - /obj/item/rig_module/device/healthscanner name = "health scanner module" desc = "A hardsuit-mounted health scanner." @@ -54,7 +39,7 @@ device_type = /obj/item/device/healthanalyzer /obj/item/rig_module/device/drill - name = "hardsuit drill mount" + name = "hardsuit diamond drill mount" desc = "A very heavy diamond-tipped drill." icon_state = "drill" interface_name = "mounted drill" @@ -67,6 +52,18 @@ device_type = /obj/item/weapon/pickaxe/diamonddrill +/obj/item/rig_module/device/basicdrill + name = "hardsuit drill mount" + desc = "A very heavy basic drill." + icon_state = "drill" + interface_name = "mounted drill" + interface_desc = "A basic industrial drill." + suit_overlay_active = "mounted-drill" + suit_overlay_inactive = "mounted-drill" + use_power_cost = 0.1 + + device_type = /obj/item/weapon/pickaxe/drill + /obj/item/rig_module/device/anomaly_scanner name = "hardsuit anomaly scanner" desc = "You think it's called an Elder Sarsparilla or something." diff --git a/code/modules/clothing/spacesuits/rig/modules/vision.dm b/code/modules/clothing/spacesuits/rig/modules/vision.dm index 53695df857f..0e643aa05ed 100644 --- a/code/modules/clothing/spacesuits/rig/modules/vision.dm +++ b/code/modules/clothing/spacesuits/rig/modules/vision.dm @@ -28,6 +28,11 @@ /datum/rig_vision/meson/New() glasses = new /obj/item/clothing/glasses/meson +/datum/rig_vision/material + mode = "meson scanner" +/datum/rig_vision/material/New() + glasses = new /obj/item/clothing/glasses/material + /datum/rig_vision/sechud mode = "security HUD" /datum/rig_vision/sechud/New() @@ -83,7 +88,7 @@ /obj/item/rig_module/vision/meson - name = "hardsuit meson scanner" + name = "hardsuit meson/material scanner" desc = "A layered, translucent visor system for a hardsuit." icon_state = "meson" @@ -92,10 +97,11 @@ construction_cost = list("glass"=5000,DEFAULT_WALL_MATERIAL=1500) construction_time = 300 - interface_name = "meson scanner" - interface_desc = "An integrated meson scanner." + interface_name = "meson/material scanner" + interface_desc = "An integrated meson/material scanner." - vision_modes = list(/datum/rig_vision/meson) + vision_modes = list(/datum/rig_vision/meson, + /datum/rig_vision/material) /obj/item/rig_module/vision/thermal diff --git a/code/modules/clothing/spacesuits/rig/suits/combat.dm b/code/modules/clothing/spacesuits/rig/suits/combat.dm index 6e2461e6e31..0b54c3986c2 100644 --- a/code/modules/clothing/spacesuits/rig/suits/combat.dm +++ b/code/modules/clothing/spacesuits/rig/suits/combat.dm @@ -67,5 +67,5 @@ /obj/item/rig_module/power_sink, /obj/item/rig_module/chem_dispenser/combat, /obj/item/rig_module/chem_dispenser/injector, - /obj/item/rig_module/device/plasmacutter + /obj/item/rig_module/mounted/plasmacutter ) diff --git a/code/modules/clothing/spacesuits/rig/suits/ert.dm b/code/modules/clothing/spacesuits/rig/suits/ert.dm index f93ad448d61..e686453d1c3 100644 --- a/code/modules/clothing/spacesuits/rig/suits/ert.dm +++ b/code/modules/clothing/spacesuits/rig/suits/ert.dm @@ -39,7 +39,7 @@ /obj/item/rig_module/ai_container, /obj/item/rig_module/vision/meson, /obj/item/rig_module/maneuvering_jets, - /obj/item/rig_module/device/plasmacutter, + /obj/item/rig_module/mounted/plasmacutter, /obj/item/rig_module/device/rcd ) @@ -90,7 +90,7 @@ /obj/item/rig_module/mounted/pulse, /obj/item/rig_module/chem_dispenser/combat, /obj/item/rig_module/chem_dispenser/injector, - /obj/item/rig_module/device/plasmacutter, + /obj/item/rig_module/mounted/plasmacutter, /obj/item/rig_module/device/rcd, /obj/item/rig_module/datajack ) diff --git a/code/modules/clothing/spacesuits/rig/suits/station.dm b/code/modules/clothing/spacesuits/rig/suits/station.dm index b80d456359e..3b56e45540b 100644 --- a/code/modules/clothing/spacesuits/rig/suits/station.dm +++ b/code/modules/clothing/spacesuits/rig/suits/station.dm @@ -77,7 +77,7 @@ /obj/item/weapon/rig/industrial/equipped initial_modules = list( - /obj/item/rig_module/device/plasmacutter, + /obj/item/rig_module/mounted/plasmacutter, /obj/item/rig_module/device/drill, /obj/item/rig_module/device/orescanner, /obj/item/rig_module/device/rcd, @@ -109,7 +109,7 @@ /obj/item/weapon/rig/eva/equipped initial_modules = list( - /obj/item/rig_module/device/plasmacutter, + /obj/item/rig_module/mounted/plasmacutter, /obj/item/rig_module/maneuvering_jets, /obj/item/rig_module/device/rcd, /obj/item/rig_module/vision/meson @@ -145,7 +145,7 @@ initial_modules = list( /obj/item/rig_module/ai_container, /obj/item/rig_module/maneuvering_jets, - /obj/item/rig_module/device/plasmacutter, + /obj/item/rig_module/mounted/plasmacutter, /obj/item/rig_module/device/rcd, /obj/item/rig_module/vision/meson ) diff --git a/code/modules/clothing/spacesuits/rig/suits/terminator.dm b/code/modules/clothing/spacesuits/rig/suits/terminator.dm index d450537a5c4..f1ac57db98c 100644 --- a/code/modules/clothing/spacesuits/rig/suits/terminator.dm +++ b/code/modules/clothing/spacesuits/rig/suits/terminator.dm @@ -25,7 +25,7 @@ /obj/item/rig_module/vision, /obj/item/rig_module/voice, /obj/item/rig_module/datajack, - /obj/item/rig_module/device/plasmacutter + /obj/item/rig_module/mounted/plasmacutter ) /obj/item/clothing/head/helmet/space/rig/terminator @@ -52,5 +52,5 @@ /obj/item/rig_module/vision, /obj/item/rig_module/voice, /obj/item/rig_module/datajack, - /obj/item/rig_module/device/plasmacutter + /obj/item/rig_module/mounted/plasmacutter ) \ No newline at end of file diff --git a/code/modules/clothing/spacesuits/syndi.dm b/code/modules/clothing/spacesuits/syndi.dm index d7ca80e760b..0919fcca4d3 100644 --- a/code/modules/clothing/spacesuits/syndi.dm +++ b/code/modules/clothing/spacesuits/syndi.dm @@ -6,6 +6,7 @@ desc = "A crimson helmet sporting clean lines and durable plating. Engineered to look menacing." armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) siemens_coefficient = 0.3 + brightness_on = 6 /obj/item/clothing/suit/space/syndicate name = "red space suit" diff --git a/code/modules/clothing/spacesuits/void/merc.dm b/code/modules/clothing/spacesuits/void/merc.dm index 941338dae88..7247d28960d 100644 --- a/code/modules/clothing/spacesuits/void/merc.dm +++ b/code/modules/clothing/spacesuits/void/merc.dm @@ -13,6 +13,7 @@ species_restricted = list("Human", "Vaurca", "Machine") camera_networks = list(NETWORK_MERCENARY) light_overlay = "helmet_light_green" //todo: species-specific light overlays + brightness_on = 6 /obj/item/clothing/suit/space/void/merc icon_state = "rig-syndie" diff --git a/code/modules/clothing/spacesuits/void/station.dm b/code/modules/clothing/spacesuits/void/station.dm index f6fb0ae6b0b..4813055a981 100644 --- a/code/modules/clothing/spacesuits/void/station.dm +++ b/code/modules/clothing/spacesuits/void/station.dm @@ -9,6 +9,7 @@ slot_r_hand_str = "eng_helm" ) armor = list(melee = 40, bullet = 5, laser = 20,energy = 5, bomb = 35, bio = 100, rad = 80) + brightness_on = 6 /obj/item/clothing/suit/space/void/engineering name = "engineering voidsuit" @@ -34,6 +35,7 @@ ) armor = list(melee = 50, bullet = 5, laser = 20,energy = 5, bomb = 55, bio = 100, rad = 20) light_overlay = "helmet_light_dual" + brightness_on = 6 /obj/item/clothing/suit/space/void/mining icon_state = "rig-mining" diff --git a/code/modules/economy/cash.dm b/code/modules/economy/cash.dm index ef89fd62ae4..2d1a2fb36ae 100644 --- a/code/modules/economy/cash.dm +++ b/code/modules/economy/cash.dm @@ -161,4 +161,39 @@ proc/spawn_money(var/sum, spawnloc, mob/living/carbon/human/human_user as mob) /obj/item/weapon/spacecash/ewallet/examine(mob/user) ..(user) if (!(user in view(2)) && user!=src.loc) return - user << "\blue Charge card's owner: [src.owner_name]. Credit chips remaining: [src.worth]." + user << "Charge card's owner: [src.owner_name]. Credit chips remaining: [src.worth]." + +/obj/item/weapon/spacecash/ewallet/lotto + name = "lottery card" + desc = "A scratch-action charge card that contains a variable amount of money." + worth = 0 + var/scratched = 0 + +/obj/item/weapon/spacecash/ewallet/lotto/attack_self(mob/user) + if(!scratched) + user << "You initiate the simulated scratch action process on the charge card. . ." + if(do_after(user,5)) + switch(rand(1,100)) + if(1 to 29) + worth = rand(0,200) + user << "The card reads [worth]. Not your lucky day!" + if(30 to 59) + worth = 200 + user << "The card reads [worth]. At least you broke even." + if(60 to 79) + worth = pick(200,300,400,500) + user << "The card reads [worth]. That's a pretty penny!" + if(80 to 95) + worth = pick(500,600,700,800,900,1000) + user << "The card reads [worth]. Your luck is running high!" + if(95 to 99) + worth = pick(1000,2000,3000,4000,5000,6000,7000,8000,9000) + user << "The card reads [worth]. You're rich!" + if(100) + worth = pick(10000,20000,30000,40000,50000) + user << "The card reads [worth]. You're blessed!" + else + worth = 0 + user << "The card reads [worth]. Not your lucky day!" + scratched = 1 + owner_name = user.name \ No newline at end of file diff --git a/code/modules/mining/abandonedcrates.dm b/code/modules/mining/abandonedcrates.dm index 4028cbc0ad2..2a002a424ed 100644 --- a/code/modules/mining/abandonedcrates.dm +++ b/code/modules/mining/abandonedcrates.dm @@ -94,7 +94,7 @@ if(79 to 80) new/obj/item/weapon/pickaxe/gold(src) if(81 to 82) - new/obj/item/weapon/pickaxe/plasmacutter(src) + new/obj/item/weapon/gun/energy/plasmacutter(src) if(83 to 84) new/obj/item/toy/katana(src) if(85) @@ -179,8 +179,8 @@ var/turf/T = get_turf(src.loc) explosion(T, 0, 0, 1, 2) qdel(src) - -/obj/structure/closet/crate/secure/loot/emag_act(var/remaining_charges, var/mob/user) + +/obj/structure/closet/crate/secure/loot/emag_act(var/remaining_charges, var/mob/user) if (locked) user << "The crate unlocks!" locked = 0 diff --git a/code/modules/mining/drilling/drill.dm b/code/modules/mining/drilling/drill.dm index 54b1879704e..e3c786dc85e 100644 --- a/code/modules/mining/drilling/drill.dm +++ b/code/modules/mining/drilling/drill.dm @@ -7,7 +7,7 @@ /obj/machinery/mining/drill name = "mining drill head" - desc = "An enormous drill." + desc = "A large industrial drill. Its bore does not penetrate deep enough to access the sublevels." icon_state = "mining_drill" var/braces_needed = 2 var/list/supports = list() diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index 5e565a2c242..da79fa915ee 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -1,15 +1,20 @@ /**********************Mineral processing unit console**************************/ /obj/machinery/mineral/processing_unit_console - name = "production machine console" + name = "ore redemption console" icon = 'icons/obj/machines/mining_machines.dmi' icon_state = "console" density = 1 anchored = 1 + use_power = 1 + idle_power_usage = 15 + active_power_usage = 50 var/obj/machinery/mineral/processing_unit/machine = null var/machinedir = NORTHEAST var/show_all_ores = 0 + var/points = 0 + var/obj/item/weapon/card/id/inserted_id /obj/machinery/mineral/processing_unit_console/New() ..() @@ -37,6 +42,14 @@ var/dat = "

Ore processor console

" + dat += "Current unclaimed points: [points]
" + + if(istype(inserted_id)) + dat += "You have [inserted_id.mining_points] mining points collected. Eject ID.
" + dat += "Claim points.
" + else + dat += "No ID inserted. Insert ID.
" + dat += "
" for(var/ore in machine.ores_processing) @@ -72,6 +85,32 @@ usr.set_machine(src) src.add_fingerprint(usr) + if(href_list["choice"]) + if(istype(inserted_id)) + if(href_list["choice"] == "eject") + inserted_id.loc = loc + if(!usr.get_active_hand()) + usr.put_in_hands(inserted_id) + inserted_id = null + if(href_list["choice"] == "claim") + if(access_mining_station in inserted_id.access) + if(points >= 0) + inserted_id.mining_points += points + if(points != 0) + ping( "\The [src] pings, \"Point transfer complete! Transaction total: [points] points!\"" ) + points = 0 + else + usr << "[station_name()]'s mining division is currently indebted to NanoTrasen. Transaction incomplete until debt is cleared." + else + usr << "Required access not found." + else if(href_list["choice"] == "insert") + var/obj/item/weapon/card/id/I = usr.get_active_hand() + if(istype(I)) + usr.drop_item() + I.loc = src + inserted_id = I + else usr << "No valid ID." + if(href_list["toggle_smelting"]) var/choice = input("What setting do you wish to use for processing [href_list["toggle_smelting"]]?") as null|anything in list("Smelting","Compressing","Alloying","Nothing") @@ -88,6 +127,10 @@ if(href_list["toggle_power"]) machine.active = !machine.active + if(machine.active) + machine.icon_state = "furnace" + else + machine.icon_state = "furnace-off" if(href_list["toggle_ores"]) @@ -100,20 +143,23 @@ /obj/machinery/mineral/processing_unit - name = "material processor" //This isn't actually a goddamn furnace, we're in space and it's processing platinum and flammable phoron... + name = "industrial smelter" //This isn't actually a goddamn furnace, we're in space and it's processing platinum and flammable phoron... //lol fuk u bay it is icon = 'icons/obj/machines/mining_machines.dmi' - icon_state = "furnace" + icon_state = "furnace-off" density = 1 anchored = 1 light_range = 3 var/obj/machinery/mineral/input = null var/obj/machinery/mineral/output = null - var/obj/machinery/mineral/console = null + var/obj/machinery/mineral/processing_unit_console/console = null var/sheets_per_tick = 10 var/list/ores_processing[0] var/list/ores_stored[0] var/static/list/alloy_data var/active = 0 + use_power = 1 + idle_power_usage = 15 + active_power_usage = 50 /obj/machinery/mineral/processing_unit/New() ..() @@ -143,6 +189,7 @@ return /obj/machinery/mineral/processing_unit/process() + ..() if (!src.output || !src.input) return @@ -158,6 +205,8 @@ qdel(O) if(!active) + if(icon_state != "furnace-off") + icon_state = "furnace-off" return //Process our stored ores and spit out sheets. @@ -197,6 +246,10 @@ else var/total for(var/needs_metal in A.requires) + if(console) + var/ore/Ore = ore_data[needs_metal] + console.points += Ore.worth + use_power(100) ores_stored[needs_metal] -= A.requires[needs_metal] total += A.requires[needs_metal] total = max(1,round(total*A.product_mod)) //Always get at least one sheet. @@ -216,6 +269,9 @@ continue for(var/i=0,iYou start feeding [W] into \the [src]" + if(do_after(user,30)) + src.visible_message("\The [src] begins to print out a modsuit.") + pressing = 1 + update_icon() + use_power(500) + qdel(W) + spawn(300) + ping( "\The [src] pings, \"Module successfuly produced!\"" ) + if(kineticaccelerator) + var/obj/item/rig_module/mounted/kinetic_accelerator/KA = new /obj/item/rig_module/mounted/kinetic_accelerator(src.loc) + var/obj/item/weapon/gun/energy/kinetic_accelerator/cyborg/KGUN = KA.gun + for(var/obj/item/borg/upgrade/modkit/kmod in kinetic_mods) + KGUN.modkits += kmod + else + new outcome_path(src.loc) + use_power(500) + pressing = 0 + update_icon() + ..() diff --git a/code/modules/mining/machine_stacking.dm b/code/modules/mining/machine_stacking.dm index 42b7476343e..67b4e17f58b 100644 --- a/code/modules/mining/machine_stacking.dm +++ b/code/modules/mining/machine_stacking.dm @@ -8,6 +8,9 @@ anchored = 1 var/obj/machinery/mineral/stacking_machine/machine = null var/machinedir = NORTHEAST + use_power = 1 + idle_power_usage = 15 + active_power_usage = 50 /obj/machinery/mineral/stacking_unit_console/New() @@ -77,6 +80,9 @@ var/list/stack_storage[0] var/list/stack_paths[0] var/stack_amt = 50; // Amount to stack before releassing + use_power = 1 + idle_power_usage = 15 + active_power_usage = 50 /obj/machinery/mineral/stacking_machine/New() ..() @@ -105,6 +111,7 @@ return /obj/machinery/mineral/stacking_machine/process() + ..() if(!console) log_debug("Stacking machine tried to process, but no console has linked itself to it.") qdel(src) diff --git a/code/modules/mining/machine_unloading.dm b/code/modules/mining/machine_unloading.dm index 1bbf7706ec2..132aa04815f 100644 --- a/code/modules/mining/machine_unloading.dm +++ b/code/modules/mining/machine_unloading.dm @@ -7,6 +7,9 @@ icon_state = "unloader" density = 1 anchored = 1.0 + use_power = 1 + idle_power_usage = 15 + active_power_usage = 50 var/obj/machinery/mineral/input = null var/obj/machinery/mineral/output = null @@ -24,6 +27,7 @@ return /obj/machinery/mineral/unloading_machine/process() + ..() if (src.output && src.input) if (locate(/obj/structure/ore_box, input.loc)) var/obj/structure/ore_box/BOX = locate(/obj/structure/ore_box, input.loc) diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm new file mode 100644 index 00000000000..7468ee55488 --- /dev/null +++ b/code/modules/mining/machine_vending.dm @@ -0,0 +1,217 @@ +//PROGRESSION SYSTEM: Miners start with a basic ass manual pickaxe. They can shortly buy an autodrill, or save up for a /TG/ Kinetic Accelerator. +//HARDSUITS: Miners all start with an *empty* industrial hardsuit. Many of the items they can buy here (auto-drill, kinetic accelerator) can be converted into modules +// with a special machine. +//VENDOR: Obj/item's are immediately dispensed by the vendor. Machines, structures, vehicles, and etc get spawned on the cargo shuttle. +//Think up of lots of items. Not everything needs to be unique or even mining-special, but it should be neat. Convert most of /tg/'s items. 25% of this at least +// should be bling. Things that shorten the distance between base and mining. Instant-teleporters should be one use. +var/global/list/minevendor_list = list( //keep in order of price + new /datum/data/mining_equipment("Food Ration", /obj/item/weapon/reagent_containers/food/snacks/liquidfood, 5), + new /datum/data/mining_equipment("Poster", /obj/item/weapon/contraband/poster, 20), + new /datum/data/mining_equipment("Ore Scanner Pad", /obj/item/weapon/ore_radar, 50), + new /datum/data/mining_equipment("5 Red Flags", /obj/item/stack/flag/red, 50), + new /datum/data/mining_equipment("5 Green Flags", /obj/item/stack/flag/green, 50), + new /datum/data/mining_equipment("5 Yellow Flags", /obj/item/stack/flag/yellow, 50), + new /datum/data/mining_equipment("Ore-bag", /obj/item/weapon/storage/bag/ore, 50), + new /datum/data/mining_equipment("Meat Pizza", /obj/item/pizzabox/meat, 50), + new /datum/data/mining_equipment("Lantern", /obj/item/device/flashlight/lantern, 75), + new /datum/data/mining_equipment("Shovel", /obj/item/weapon/shovel, 100), + new /datum/data/mining_equipment("Stimpack", /obj/item/weapon/reagent_containers/hypospray/autoinjector/stimpack, 100), + new /datum/data/mining_equipment("Pickaxe", /obj/item/weapon/pickaxe, 100), + new /datum/data/mining_equipment("KA White Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer, 100), + new /datum/data/mining_equipment("Compressed rail cartridge", /obj/item/weapon/rrf_ammo, 100), + new /datum/data/mining_equipment("Emergency Floodlight", /obj/item/weapon/floodlight_diy, 150), + new /datum/data/mining_equipment("Premium Cigar", /obj/item/clothing/mask/smokable/cigarette/cigar/havana, 150), + new /datum/data/mining_equipment("KA Adjustable Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer/adjustable, 150), + new /datum/data/mining_equipment("Lottery Chip", /obj/item/weapon/spacecash/ewallet/lotto, 200), + new /datum/data/mining_equipment("Ripley Paint Kit", /obj/item/device/kit/paint/ripley/random, 200), + new /datum/data/mining_equipment("Material Scanners", /obj/item/clothing/glasses/material, 200), + new /datum/data/mining_equipment("Mining Drill", /obj/item/weapon/pickaxe/drill, 200), + new /datum/data/mining_equipment("Deep Ore Scanner", /obj/item/weapon/mining_scanner, 250), + new /datum/data/mining_equipment("Magboots", /obj/item/clothing/shoes/magboots, 300), + new /datum/data/mining_equipment("Stimpack Bundle", /obj/item/weapon/storage/box/stims, 300), + new /datum/data/mining_equipment("Autochisel", /obj/item/weapon/autochisel, 400), + new /datum/data/mining_equipment("Jetpack", /obj/item/weapon/tank/jetpack, 400), + new /datum/data/mining_equipment("Drone Drill Upgrade", /obj/item/device/mine_bot_ugprade, 400), + new /datum/data/mining_equipment("Seismic Charge", /obj/item/weapon/plastique/seismic, 500), + new /datum/data/mining_equipment("Industrial Drill Brace", /obj/machinery/mining/brace, 500, 1), + new /datum/data/mining_equipment("Point Transfer Card", /obj/item/weapon/card/mining_point_card, 500), + new /datum/data/mining_equipment("Explorer's Webbing", /obj/item/weapon/storage/belt/mining, 500), + new /datum/data/mining_equipment("Item-Warp Beacon", /obj/item/warp_core, 500), + new /datum/data/mining_equipment("Item-Warp Pack", /obj/item/weapon/extraction_pack, 600), + new /datum/data/mining_equipment("Drone Health Upgrade", /obj/item/device/mine_bot_ugprade/health, 600), + new /datum/data/mining_equipment("Rapid-Railway-Fabricator", /obj/item/weapon/rrf, 600), + new /datum/data/mining_equipment("Survival Autoinjector", /obj/item/weapon/reagent_containers/hypospray/autoinjector/survival, 600), + new /datum/data/mining_equipment("Brute First-Aid Kit", /obj/item/weapon/storage/firstaid/brute, 600), + new /datum/data/mining_equipment("Ore Magnet", /obj/item/weapon/oremagnet, 600), + new /datum/data/mining_equipment("Minecart", /obj/vehicle/train/cargo/trolley/mining, 600, 1), + new /datum/data/mining_equipment("Resonator", /obj/item/weapon/resonator, 700), + new /datum/data/mining_equipment("Mining RIG", /obj/item/weapon/rig/industrial, 750), + new /datum/data/mining_equipment("KA Range Increase", /obj/item/borg/upgrade/modkit/range, 750), + new /datum/data/mining_equipment("Jaunter", /obj/item/device/wormhole_jaunter, 750), + new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/weapon/gun/energy/kinetic_accelerator, 750), + new /datum/data/mining_equipment("1000 credits", /obj/item/weapon/spacecash/c1000, 800), + new /datum/data/mining_equipment("Mass Driver", /obj/item/weapon/mass_driver_diy, 800), + new /datum/data/mining_equipment("Drone Plasma Cutter Upgrade", /obj/item/device/mine_bot_ugprade/plasma, 800), + new /datum/data/mining_equipment("Mining Drone", /mob/living/silicon/robot/drone/mining, 800), + new /datum/data/mining_equipment("Minecart Engine", /obj/vehicle/train/cargo/engine/mining, 800, 1), + new /datum/data/mining_equipment("Ore Summoner", /obj/item/weapon/oreportal, 800), + new /datum/data/mining_equipment("Plasma Cutter", /obj/item/weapon/gun/energy/plasmacutter, 900), + new /datum/data/mining_equipment("KA Damage Increase", /obj/item/borg/upgrade/modkit/damage, 1000), + new /datum/data/mining_equipment("KA Cooldown Decrease", /obj/item/borg/upgrade/modkit/cooldown, 1000), + new /datum/data/mining_equipment("Lazarus Injector", /obj/item/weapon/lazarus_injector, 1000), + new /datum/data/mining_equipment("Industrial Drill Head", /obj/machinery/mining/drill, 1000, 1), + new /datum/data/mining_equipment("Super Resonator", /obj/item/weapon/resonator/upgraded, 1250), + new /datum/data/mining_equipment("KA AoE Damage", /obj/item/borg/upgrade/modkit/aoe/turfs, 1500), + new /datum/data/mining_equipment("Diamond Pickaxe", /obj/item/weapon/pickaxe/diamond, 1500), + new /datum/data/mining_equipment("Drone Thermal Drill Upgrade", /obj/item/device/mine_bot_ugprade/thermal, 2000), + new /datum/data/mining_equipment("Thermal Drill", /obj/item/weapon/gun/energy/vaurca/thermaldrill, 2750) + ) + +/obj/machinery/mineral/equipment_vendor + name = "mining equipment vendor" + desc = "An equipment vendor for miners, points collected at an ore redemption machine can be spent here." + icon = 'icons/obj/machines/mining_machines.dmi' + icon_state = "mining" + density = 1 + anchored = 1 + var/obj/item/weapon/card/id/inserted_id + +/datum/data/mining_equipment + var/equipment_name = "generic" + var/equipment_path = null + var/cost = 0 + var/shuttle + +/datum/data/mining_equipment/New(name, path, cost, shuttle) + src.equipment_name = name + src.equipment_path = path + src.cost = cost + src.shuttle = shuttle + +/obj/item/weapon/circuitboard/machine/mining_equipment_vendor + name = "circuit board (Mining Equipment Vendor)" + build_path = /obj/machinery/mineral/equipment_vendor + origin_tech = list(TECH_DATA = 1, TECH_ENGINEERING = 1) + req_components = list( + /obj/item/weapon/stock_parts/console_screen = 1, + /obj/item/weapon/stock_parts/matter_bin = 3) + +/obj/machinery/mineral/equipment_vendor/power_change() + ..() + update_icon() + +/obj/machinery/mineral/equipment_vendor/update_icon() + if(powered()) + icon_state = initial(icon_state) + else + icon_state = "[initial(icon_state)]-off" + return + +/obj/machinery/mineral/equipment_vendor/attack_hand(mob/user) + if(..()) + return + interact(user) + +/obj/machinery/mineral/equipment_vendor/interact(mob/user) + var/dat + dat +="
" + if(istype(inserted_id)) + dat += "You have [inserted_id.mining_points] mining points collected. Eject ID.
" + else + dat += "No ID inserted. Insert ID.
" + dat += "
" + dat += "
Equipment point cost list:
" + for(var/datum/data/mining_equipment/prize in minevendor_list) + dat += "" + dat += "
[prize.equipment_name][prize.cost]Purchase
" + + var/datum/browser/popup = new(user, "miningvendor", "Mining Equipment Vendor", 400, 350) + popup.set_content(dat) + popup.open() + return + +/obj/machinery/mineral/equipment_vendor/Topic(href, href_list) + if(..()) + return + if(href_list["choice"]) + if(istype(inserted_id)) + if(href_list["choice"] == "eject") + inserted_id.loc = loc + if(!usr.get_active_hand()) + usr.put_in_hands(inserted_id) + inserted_id = null + else if(href_list["choice"] == "insert") + var/obj/item/weapon/card/id/I = usr.get_active_hand() + if(istype(I)) + usr.drop_item() + I.loc = src + inserted_id = I + else usr << "No valid ID." + if(href_list["purchase"]) + if(istype(inserted_id)) + var/datum/data/mining_equipment/prize = locate(href_list["purchase"]) + if (!prize || !(prize in minevendor_list)) + return + if(prize.cost > inserted_id.mining_points) + else + if(prize.shuttle) + var/datum/shuttle/ferry/supply/shuttle = supply_controller.shuttle + if(shuttle) + var/area/area_shuttle = shuttle.get_location_area() + if(!area_shuttle) + usr << "{ERR Code: NO_SHUTTLE} Order failed! Please try again." + return + + + var/list/clear_turfs = list() + + for(var/turf/T in area_shuttle) + if(T.density) continue + var/contcount + for(var/atom/A in T.contents) + if(!A.simulated) + continue + contcount++ + if(contcount) + continue + clear_turfs += T + + if(!clear_turfs.len) + usr << "{ERR Code: NO_SHUTTLE_SPACE} Order failed! Please try again." + return + + var/i = rand(1,clear_turfs.len) + var/turf/pickedloc = clear_turfs[i] + + if(pickedloc) + inserted_id.mining_points -= prize.cost + new prize.equipment_path(pickedloc) + usr << "Order passed. Your order has been placed on the next available supply shuttle." + else + usr << "{ERR Code: NO_SHUTTLE_SPACE} Order failed! Please try again." + return + else + usr << "{ERR Code: NO_SHUTTLE} Order failed! Please try again." + return + else + inserted_id.mining_points -= prize.cost + new prize.equipment_path(src.loc) + + updateUsrDialog() + return + +/obj/machinery/mineral/equipment_vendor/attackby(obj/item/I, mob/user, params) + if(istype(I,/obj/item/weapon/card/id)) + var/obj/item/weapon/card/id/C = usr.get_active_hand() + if(istype(C) && !istype(inserted_id)) + usr.drop_item() + C.loc = src + inserted_id = C + interact(user) + return + if(default_deconstruction_screwdriver(user, "mining-open", "mining", I)) + updateUsrDialog() + return + if(default_deconstruction_crowbar(I)) + return + return ..() diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 6babe4ce93a..cc754cca0d8 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -23,10 +23,9 @@ new /obj/item/clothing/shoes/black(src) new /obj/item/device/analyzer(src) new /obj/item/weapon/storage/bag/ore(src) - new /obj/item/device/flashlight/lantern(src) new /obj/item/weapon/shovel(src) new /obj/item/weapon/pickaxe(src) - new /obj/item/clothing/glasses/material(src) + new /obj/item/weapon/ore_radar(src) /******************************Lantern*******************************/ @@ -34,33 +33,146 @@ name = "lantern" icon_state = "lantern" desc = "A mining lantern." - brightness_on = 4 // luminosity when on - light_power = 0.75 + light_power = 1 + brightness_on = 6 light_wedge = LIGHT_OMNI light_color = LIGHT_COLOR_FIRE /*****************************Pickaxe********************************/ /obj/item/weapon/pickaxe - name = "mining drill" - desc = "The most basic of mining drills, for short excavations and small mineral extractions." + name = "pickaxe" + desc = "The most basic of mining implements. Surely this is a joke?" icon = 'icons/obj/items.dmi' flags = CONDUCT slot_flags = SLOT_BELT - force = 15.0 throwforce = 4.0 + force = 10.0 icon_state = "pickaxe" - item_state = "jackhammer" + item_state = "pickaxe" w_class = 4.0 matter = list(DEFAULT_WALL_MATERIAL = 3750) - var/digspeed = 40 //moving the delay to an item var so R&D can make improved picks. --NEO + var/digspeed //moving the delay to an item var so R&D can make improved picks. --NEO origin_tech = list(TECH_MATERIAL = 1, TECH_ENGINEERING = 1) attack_verb = list("hit", "pierced", "sliced", "attacked") - var/drill_sound = 'sound/weapons/Genhit.ogg' - var/drill_verb = "drilling" + var/drill_sound = 'sound/weapons/chisel1.ogg' + var/drill_verb = "excavating" + var/autodrill = 0 //pickaxes must be manually swung to mine, drills can mine rocks via bump sharp = 1 - var/excavation_amount = 100 + var/can_wield = 1 + + var/excavation_amount = 30 + var/wielded = 0 + var/force_unwielded = 10.0 + var/force_wielded = 30.0 + var/digspeed_unwielded = 30 + var/digspeed_wielded = 10 + var/drilling = 0 + + action_button_name = "Wield pick/drill" + +/obj/item/weapon/pickaxe/proc/unwield() + wielded = 0 + force = force_unwielded + digspeed = digspeed_unwielded + name = initial(name) + update_icon() + +/obj/item/weapon/pickaxe/proc/wield() + wielded = 1 + force = force_wielded + digspeed = digspeed_wielded + name = "[name] (Wielded)" + update_icon() + +/obj/item/weapon/pickaxe/mob_can_equip(M as mob, slot) + //Cannot equip wielded items. + if(wielded) + M << "Unwield the [initial(name)] first!" + return 0 + + return ..() + +/obj/item/weapon/pickaxe/dropped(mob/user as mob) + //handles unwielding a twohanded weapon when dropped as well as clearing up the offhand + if(user) + var/obj/item/weapon/pickaxe/O = user.get_inactive_hand() + if(istype(O)) + O.unwield() + return unwield() + +/obj/item/weapon/pickaxe/pickup(mob/user) + unwield() + +/obj/item/weapon/pickaxe/attack_self(mob/user as mob) + + ..() + + if(!can_wield) + return + + if(istype(user, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = user + if(issmall(H)) + user << "It's too heavy for you to wield fully." + return + else + return + + if(wielded) //Trying to unwield it + unwield() + user << "You are now carrying the [initial(name)] with one hand." + + var/obj/item/weapon/pickaxe/offhand/O = user.get_inactive_hand() + if(O && istype(O)) + O.unwield() + + else //Trying to wield it + if(user.get_inactive_hand()) + user << "You need your other hand to be empty" + return + wield() + user << "You grab the [initial(name)] with both hands." + + var/obj/item/weapon/pickaxe/offhand/O = new(user) ////Let's reserve his other hand~ + O.name = "[initial(name)] - offhand" + O.desc = "Your second grip on the [initial(name)]." + user.put_in_inactive_hand(O) + + if(istype(user,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = user + H.update_inv_l_hand() + H.update_inv_r_hand() + + return + +/obj/item/weapon/pickaxe/ui_action_click() + if(src in usr) + attack_self(usr) + +/obj/item/weapon/pickaxe/verb/wield_pick() + if(can_wield) + set name = "Wield pick/drill" + set category = "Object" + set src in usr + + attack_self(usr) + +/obj/item/weapon/pickaxe/offhand + w_class = 5 + icon = 'icons/obj/weapons.dmi' + icon_state = "offhand" + item_state = null + name = "offhand" + + action_button_name = null + +/obj/item/weapon/pickaxe/offhand/unwield() + qdel(src) + +/obj/item/weapon/pickaxe/offhand/wield() + qdel(src) /obj/item/weapon/pickaxe/hammer name = "sledgehammer" @@ -71,59 +183,75 @@ name = "silver pickaxe" icon_state = "spickaxe" item_state = "spickaxe" - digspeed = 30 origin_tech = list(TECH_MATERIAL = 3) desc = "This makes no metallurgic sense." + excavation_amount = 30 + + digspeed_unwielded = 30 + digspeed_wielded = 5 /obj/item/weapon/pickaxe/drill - name = "advanced mining drill" // Can dig sand as well! + name = "mining drill" // Can dig sand as well! icon_state = "handdrill" item_state = "jackhammer" - digspeed = 30 origin_tech = list(TECH_MATERIAL = 2, TECH_POWER = 3, TECH_ENGINEERING = 2) desc = "Yours is the drill that will pierce through the rock walls." drill_verb = "drilling" + autodrill = 1 + drill_sound = 'sound/weapons/circsawhit.ogg' + digspeed = 20 + digspeed_unwielded = 30 + force_unwielded = 15.0 + excavation_amount = 100 + + can_wield = 0 + force = 15.0 + + action_button_name = null /obj/item/weapon/pickaxe/jackhammer name = "sonic jackhammer" icon_state = "jackhammer" item_state = "jackhammer" - digspeed = 20 //faster than drill, but cannot dig origin_tech = list(TECH_MATERIAL = 3, TECH_POWER = 2, TECH_ENGINEERING = 2) desc = "Cracks rocks with sonic blasts, perfect for killing cave lizards." drill_verb = "hammering" + autodrill = 1 + drill_sound = 'sound/weapons/resonator_blast.ogg' + digspeed = 15 + digspeed_unwielded = 15 + force_unwielded = 25.0 + excavation_amount = 100 + + can_wield = 0 + force = 25.0 + + action_button_name = null /obj/item/weapon/pickaxe/gold name = "golden pickaxe" icon_state = "gpickaxe" item_state = "gpickaxe" - digspeed = 20 + digspeed = 10 origin_tech = list(TECH_MATERIAL = 4) desc = "This makes no metallurgic sense." - drill_verb = "picking" + excavation_amount = 50 -/obj/item/weapon/pickaxe/plasmacutter - name = "plasma cutter" - icon_state = "plasmacutter" - item_state = "gun" - w_class = 3.0 //it is smaller than the pickaxe - damtype = "fire" - digspeed = 20 //Can slice though normal walls, all girders, or be used in reinforced wall deconstruction/ light thermite on fire - origin_tech = list(TECH_MATERIAL = 4, TECH_PHORON = 3, TECH_ENGINEERING = 3) - desc = "A rock cutter that uses bursts of hot plasma. You could use it to cut limbs off of xenos! Or, you know, mine stuff." - drill_verb = "cutting" - drill_sound = 'sound/items/Welder.ogg' - sharp = 1 - edge = 1 + digspeed_unwielded = 30 + digspeed_wielded = 5 + force_wielded = 35.0 /obj/item/weapon/pickaxe/diamond name = "diamond pickaxe" icon_state = "dpickaxe" item_state = "dpickaxe" - digspeed = 10 origin_tech = list(TECH_MATERIAL = 6, TECH_ENGINEERING = 4) desc = "A pickaxe with a diamond pick head." - drill_verb = "picking" + excavation_amount = 30 + + digspeed_unwielded = 20 + digspeed_wielded = 1 + force_wielded = 35.0 /obj/item/weapon/pickaxe/diamonddrill //When people ask about the badass leader of the mining tools, they are talking about ME! name = "diamond mining drill" @@ -133,14 +261,34 @@ origin_tech = list(TECH_MATERIAL = 6, TECH_POWER = 4, TECH_ENGINEERING = 5) desc = "Yours is the drill that will pierce the heavens!" drill_verb = "drilling" + autodrill = 1 + drill_sound = 'sound/weapons/circsawhit.ogg' + excavation_amount = 100 + + can_wield = 0 + force = 20.0 + digspeed = 5 + digspeed_unwielded = 5 + force_unwielded = 20.0 + + action_button_name = null /obj/item/weapon/pickaxe/borgdrill name = "cyborg mining drill" icon_state = "diamonddrill" item_state = "jackhammer" digspeed = 15 + digspeed_unwielded = 15 + force_unwielded = 25.0 desc = "" drill_verb = "drilling" + autodrill = 1 + drill_sound = 'sound/weapons/circsawhit.ogg' + can_wield = 0 + force = 15.0 + excavation_amount = 100 + + action_button_name = null /*****************************Shovel********************************/ @@ -170,26 +318,15 @@ throwforce = 7.0 w_class = 2.0 - -/**********************Mining car (Crate like thing, not the rail car)**************************/ - -/obj/structure/closet/crate/miningcar - desc = "A mining car. This one doesn't work on rails, but has to be dragged." - name = "Mining car (not for rails)" - icon = 'icons/obj/storage.dmi' - icon_state = "miningcar" - density = 1 - icon_opened = "miningcaropen" - icon_closed = "miningcar" - // Flags. /obj/item/stack/flag name = "flags" desc = "Some colourful flags." singular_name = "flag" - amount = 10 - max_amount = 10 + amount = 5 + max_amount = 5 + w_class = 2 icon = 'icons/obj/mining.dmi' var/upright = 0 var/base_state @@ -249,3 +386,919 @@ newflag.icon_state = "[newflag.base_state]_open" newflag.visible_message("[user] plants [newflag] firmly in the ground.") src.use(1) + +/**********************Miner Carts***********************/ +/obj/item/weapon/rrf_ammo + name = "compressed railway cartridge" + desc = "Highly compressed matter for the RRF." + icon = 'icons/obj/ammo.dmi' + icon_state = "rcd" + item_state = "rcdammo" + w_class = 2 + origin_tech = list(TECH_MATERIAL = 2) + matter = list(DEFAULT_WALL_MATERIAL = 15000,"glass" = 7500) + +/obj/item/weapon/rrf + name = "\improper Rapid-Railway-Fabricator" + desc = "A device used to rapidly deploy mine tracks." + icon = 'icons/obj/items.dmi' + icon_state = "rcd" + opacity = 0 + density = 0 + anchored = 0.0 + var/stored_matter = 30 + w_class = 3.0 + +/obj/item/weapon/rrf/examine(mob/user) + if(..(user, 0)) + user << "It currently holds [stored_matter]/30 fabrication-units." + +/obj/item/weapon/rrf/attackby(obj/item/weapon/W as obj, mob/user as mob) + ..() + if (istype(W, /obj/item/weapon/rcd_ammo)) + + if ((stored_matter + 30) > 30) + user << "The RRF can't hold any more matter." + return + + qdel(W) + + stored_matter += 30 + playsound(src.loc, 'sound/machines/click.ogg', 10, 1) + user << "The RRF now holds [stored_matter]/30 fabrication-units." + return + + if (istype(W, /obj/item/weapon/rrf_ammo)) + + if ((stored_matter + 15) > 30) + user << "The RRF can't hold any more matter." + return + + qdel(W) + + stored_matter += 15 + playsound(src.loc, 'sound/machines/click.ogg', 10, 1) + user << "The RRF now holds [stored_matter]/30 fabrication-units." + return + +/obj/item/weapon/rrf/afterattack(atom/A, mob/user as mob, proximity) + + if(!proximity) return + + if(istype(user,/mob/living/silicon/robot)) + var/mob/living/silicon/robot/R = user + if(R.stat || !R.cell || R.cell.charge <= 0) + return + else + if(stored_matter <= 0) + return + + if(!istype(A, /turf/simulated/floor)) + return + + if(locate(/obj/structure/track) in A) + return + + playsound(src.loc, 'sound/machines/click.ogg', 10, 1) + var/used_energy = 0 + + used_energy = 10 + + new /obj/structure/track(get_turf(A)) + + user << "Dispensing track..." + + if(isrobot(user)) + var/mob/living/silicon/robot/R = user + if(R.cell) + R.cell.use(used_energy) + else + stored_matter-- + user << "The RRF now holds [stored_matter]/30 fabrication-units." + + +/obj/structure/track + name = "mine track" + desc = "Just like your grandpappy used to lay 'em in 1862." + icon = 'icons/obj/smoothtrack.dmi' + icon_state = "track15" + density = 0 + anchored = 1.0 + w_class = 3 + layer = 2.44 + +/obj/structure/track/initialize() + ..() + if (locate(/obj/structure/track) in loc) + qdel(src) + updateOverlays() + for (var/dir in cardinal) + var/obj/structure/track/R = locate(/obj/structure/track, get_step(src, dir)) + if(R) + R.updateOverlays() + +/obj/structure/track/Destroy() + for (var/dir in cardinal) + var/obj/structure/track/R = locate(/obj/structure/track, get_step(src, dir)) + if(R) + R.updateOverlays() + ..() + +/obj/structure/track/ex_act(severity) + switch(severity) + if(1.0) + qdel(src) + if(2.0) + qdel(src) + return + +/obj/structure/track/attackby(obj/item/C as obj, mob/user as mob) + + if (istype(C, /obj/item/stack/tile/floor)) + var/turf/T = get_turf(src) + T.attackby(C, user) + return + if (istype(C, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = C + if(WT.remove_fuel(0, user)) + user << "Slicing apart connectors ..." + getFromPool(/obj/item/stack/rods, src.loc) + qdel(src) + + return + +/obj/structure/track/proc/updateOverlays() + set waitfor = FALSE + overlays = list() + + var/dir_sum = 0 + + for (var/direction in cardinal) + if(locate(/obj/structure/track, get_step(src, direction))) + dir_sum += direction + + icon_state = "track[dir_sum]" + return + +/obj/vehicle/train/cargo/engine/mining + name = "mine cart engine" + desc = "A ridable electric minecart designed for pulling other mine carts." + icon = 'icons/obj/cart.dmi' + icon_state = "mining_engine" + on = 0 + powered = 1 + move_delay = -1 + + load_item_visible = 1 + load_offset_x = 0 + mob_offset_y = 15 + active_engines = 1 + + light_power = 1 + light_range = 6 + light_wedge = LIGHT_WIDE + light_color = LIGHT_COLOR_FIRE + +/obj/vehicle/train/cargo/engine/mining/initialize() + ..() + cell = new /obj/item/weapon/cell/high(src) + key = null + var/image/I = new(icon = 'icons/obj/cart.dmi', icon_state = "[icon_state]_overlay", layer = src.layer + 0.2) //over mobs + overlays += I + turn_off() //so engine verbs are correctly set + +/obj/vehicle/train/cargo/engine/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W, /obj/item/weapon/key/minecarts)) + if(!key) + user.drop_item() + W.forceMove(src) + key = W + verbs += /obj/vehicle/train/cargo/engine/verb/remove_key + return + ..() + +/obj/vehicle/train/cargo/engine/mining/Move(var/turf/destination) + return ((locate(/obj/structure/track) in destination)) ? ..() : FALSE + +/obj/vehicle/train/cargo/engine/mining/update_car(var/train_length, var/active_engines) + return + +/obj/vehicle/train/cargo/trolley/mining + name = "mine-cart" + desc = "A modern day twist to an ancient classic." + icon = 'icons/obj/cart.dmi' + icon_state = "mining_trailer" + anchored = 0 + passenger_allowed = 0 + move_delay = -1 + + load_item_visible = 1 + load_offset_x = 1 + load_offset_y = 15 + mob_offset_y = 16 + + light_power = 1 + light_range = 3 + light_wedge = LIGHT_OMNI + light_color = LIGHT_COLOR_FIRE + +/obj/vehicle/train/cargo/trolley/mining/Move(var/turf/destination) + return ((locate(/obj/structure/track) in destination)) ? ..() : FALSE + +/obj/item/weapon/key/minecarts + name = "key" + desc = "A keyring with a small steel key, and a pickaxe shaped fob." + icon = 'icons/obj/vehicles.dmi' + icon_state = "mine_keys" + w_class = 1 + +/**********************Pinpointer**********************/ + +/obj/item/weapon/ore_radar + name = "scanner pad" + desc = "An antiquated device that can detect ore in a wide radius around the user." + icon = 'icons/obj/device.dmi' + icon_state = "pinoff" + flags = CONDUCT + slot_flags = SLOT_BELT + w_class = 2.0 + item_state = "electronic" + throw_speed = 4 + throw_range = 20 + matter = list(DEFAULT_WALL_MATERIAL = 500) + var/turf/simulated/mineral/random/sonar = null + var/active = 0 + + +/obj/item/weapon/ore_radar/attack_self(mob/user) + if(!active) + active = 1 + usr << "You activate the pinpointer" + workdisk(user) + else + active = 0 + icon_state = "pinoff" + usr << "You deactivate the pinpointer" + +/obj/item/weapon/ore_radar/proc/workdisk(var/user) + if(!src.loc) + active = 0 + + if(!active) + return + + var/closest = 15 + + for(var/turf/simulated/mineral/random/R in orange(14,user)) + var/dist = get_dist(user, R) + if(dist < closest) + closest = dist + sonar = R + + if(!sonar) + icon_state = "pinonnull" + return + set_dir(get_dir(user,sonar)) + switch(get_dist(user,sonar)) + if(0) + icon_state = "pinondirect" + if(1 to 8) + icon_state = "pinonclose" + if(9 to 16) + icon_state = "pinonmedium" + if(16 to INFINITY) + icon_state = "pinonfar" + spawn(5) .() + +/**********************Jaunter**********************/ + +/obj/item/device/wormhole_jaunter + name = "wormhole jaunter" + desc = "A single use device harnessing outdated warp technology. The wormholes it creates are unpleasant to travel through, to say the least." + contained_sprite = 1 + icon = 'icons/obj/mining_contained.dmi' + icon_state = "jaunter" + item_state = "jaunter" + throwforce = 0 + w_class = 2 + throw_speed = 3 + throw_range = 5 + slot_flags = SLOT_BELT + origin_tech = list(TECH_BLUESPACE = 2, TECH_PHORON = 4, TECH_ENGINEERING = 4) + +/obj/item/device/wormhole_jaunter/attack_self(mob/user) + user.visible_message("[user.name] activates the [src.name]!") + feedback_add_details("jaunter", "U") // user activated + activate(user) + +/obj/item/device/wormhole_jaunter/proc/turf_check(mob/user) + var/turf/device_turf = get_turf(user) + if(!device_turf||device_turf.z==0) + user << "You're having difficulties getting the [src.name] to work." + return FALSE + return TRUE + +/obj/item/device/wormhole_jaunter/proc/get_destinations(mob/user) + var/list/destinations = list() + + for(var/obj/item/device/radio/beacon/B in teleportbeacons) + var/turf/T = get_turf(B) + if(T.z in config.station_levels) + destinations += B + + return destinations + +/obj/item/device/wormhole_jaunter/proc/activate(mob/user) + if(!turf_check(user)) + return + + var/list/L = get_destinations(user) + if(!L.len) + user << "The [src.name] found no beacons in the world to anchor a wormhole to." + return + var/chosen_beacon = pick(L) + var/obj/effect/portal/wormhole/jaunt_tunnel/J = new /obj/effect/portal/wormhole/jaunt_tunnel(get_turf(src), chosen_beacon, lifespan=100) + J.target = chosen_beacon + playsound(src,'sound/effects/sparks4.ogg',50,1) + qdel(src) + +/obj/item/device/wormhole_jaunter/emp_act(power) + var/triggered = FALSE + if(power == 1) + triggered = TRUE + else if(power == 2 && prob(50)) + triggered = TRUE + + if(triggered) + usr.visible_message("The [src] overloads and activates!") + feedback_add_details("jaunter","E") // EMP accidental activation + activate(usr) + +/obj/effect/portal/wormhole/jaunt_tunnel + name = "jaunt tunnel" + icon = 'icons/obj/objects.dmi' + icon_state = "bhole3" + desc = "A stable hole in the universe made by a wormhole jaunter. Turbulent doesn't even begin to describe how rough passage through one of these is, but at least it will always get you somewhere near a beacon." + +/obj/effect/portal/wormhole/jaunt_tunnel/teleport(atom/movable/M) + if(M.anchored || istype(M, /obj/effect)) + return + single_spark(M.loc) + if(istype(M)) + if(do_teleport(M, target, 6)) + single_spark(M.loc) + playsound(M,'sound/weapons/resonator_blast.ogg',50,1) + if(iscarbon(M)) + var/mob/living/carbon/L = M + L.Weaken(3) + if(ishuman(L)) + shake_camera(L, 20, 1) + spawn(20) + L.vomit() + +/**********************Lazarus Injector**********************/ + +/obj/item/weapon/lazarus_injector + name = "lazarus injector" + desc = "An injector with a cocktail of nanomachines and chemicals, this device can seemingly raise animals from the dead. If no effect in 3 days please call customer support." + icon = 'icons/obj/syringe.dmi' + icon_state = "borghypo" + item_state = "hypo" + throwforce = 0 + w_class = 2 + throw_speed = 3 + throw_range = 5 + var/loaded = 1 + var/malfunctioning = 0 + var/revive_type = TYPE_ORGANIC //So you can't revive boss monsters or robots with it + origin_tech = list(TECH_BIO = 7, TECH_MATERIAL = 4) + +/obj/item/weapon/lazarus_injector/afterattack(atom/target, mob/user, proximity_flag) + if(!loaded) + return + if(isliving(target) && proximity_flag) + if(istype(target, /mob/living/simple_animal)) + var/mob/living/simple_animal/M = target + if(!(M.find_type() & revive_type)) + user << "[src] does not work on this sort of creature." + return + if(M.stat == DEAD) + if(!malfunctioning) + M.faction = "neutral" + M.revive() + M.icon_state = M.icon_living + loaded = 0 + user.visible_message("[user] injects [M] with [src], reviving it.") + feedback_add_details("lazarus_injector", "[M.type]") + playsound(src,'sound/effects/refill.ogg',50,1) + return + else + user << "[src] is only effective on the dead." + return + else + user << "[src] is only effective on lesser beings." + return + +/obj/item/weapon/lazarus_injector/emp_act() + if(!malfunctioning) + malfunctioning = 1 + +/obj/item/weapon/lazarus_injector/examine(mob/user) + ..() + if(!loaded) + user << "[src] is empty." + if(malfunctioning) + user << "The display on [src] seems to be flickering." + +/**********************Point Transfer Card**********************/ + +/obj/item/weapon/card/mining_point_card + name = "mining points card" + desc = "A small card preloaded with mining points. Swipe your ID card over it to transfer the points, then discard." + icon_state = "data" + var/points = 500 + +/obj/item/weapon/card/mining_point_card/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/card/id)) + if(points) + var/obj/item/weapon/card/id/C = I + C.mining_points += points + user << "You transfer [points] points to [C]." + points = 0 + else + user << "There's no points left on [src]." + ..() + +/obj/item/weapon/card/mining_point_card/examine(mob/user) + ..() + user << "There's [points] point\s on the card." + +/**********************"Fultons"**********************/ + +var/list/total_extraction_beacons = list() + +/obj/item/weapon/extraction_pack + name = "warp extraction pack" + desc = "A complex device that warps nonliving matter to nearby locations." + contained_sprite = 1 + icon = 'icons/obj/mining_contained.dmi' + icon_state = "fulton" + w_class = 3 + var/obj/structure/extraction_point/beacon + var/list/beacon_networks = list("station") + var/uses_left = 3 + origin_tech = list(TECH_BLUESPACE = 3, TECH_PHORON = 4, TECH_ENGINEERING = 4) + +/obj/item/weapon/extraction_pack/examine() + . = ..() + usr.show_message("It has [uses_left] uses remaining.", 1) + +/obj/item/weapon/extraction_pack/attack_self(mob/user) + var/list/possible_beacons = list() + for(var/B in total_extraction_beacons) + var/obj/structure/extraction_point/EP = B + if(EP.beacon_network in beacon_networks) + possible_beacons += EP + + if(!possible_beacons.len) + user << "There are no extraction beacons in existence!" + return + + else + var/A + + A = input("Select a beacon to connect to", "Warp Extraction Pack", A) in possible_beacons + + if(!A) + return + beacon = A + +/obj/item/weapon/extraction_pack/afterattack(atom/movable/A, mob/living/carbon/human/user) + if(!beacon) + user << "[src] is not linked to a beacon, and cannot be used." + return + if(!istype(A)) + return + else + if(istype(A,/mob/living)) + user << "[src] is not safe for use with living creatures, they wouldn't survive the trip back!" + return + if(A.loc == user) // no extracting stuff you're holding + return + if(A.anchored) + return + user << "You start attaching the pack to [A]..." + if(do_after(user,50)) + user << "You attach the pack to [A] and activate it." + uses_left-- + if(uses_left <= 0) + user.drop_item(src) + loc = A + single_spark(A.loc) + var/list/flooring_near_beacon = list() + for(var/turf/simulated/floor/floor in orange(1, beacon)) + flooring_near_beacon += floor + A.loc = pick(flooring_near_beacon) + single_spark(A.loc) + if(uses_left <= 0) + qdel(src) + + +/obj/item/warp_core + name = "warp extraction beacon signaller" + desc = "Emits a signal which Warp-Item recovery devices can lock onto. Activate in hand to create a beacon." + icon = 'icons/obj/stock_parts.dmi' + icon_state = "subspace_amplifier" + origin_tech = list(TECH_BLUESPACE = 1, TECH_PHORON = 1, TECH_ENGINEERING = 2) + +/obj/item/warp_core/attack_self(mob/user) + user << "You start placing down the beacon. . ." + if(do_after(user,15)) + new /obj/structure/extraction_point(get_turf(user)) + qdel(src) + +/obj/structure/extraction_point + name = "warp recovery beacon" + desc = "A beacon for the Warp-Item recovery system. Hit a beacon with a pack to link the pack to a beacon." + icon = 'icons/obj/mining.dmi' + icon_state = "extraction_point" + anchored = 1 + density = 0 + var/beacon_network = "station" + +/obj/structure/extraction_point/New() + var/area/area_name = get_area(src) + name += " ([rand(100,999)]) ([area_name.name])" + total_extraction_beacons += src + ..() + +/obj/structure/extraction_point/Destroy() + total_extraction_beacons -= src + ..() + +/**********************Resonator**********************/ + +/obj/item/weapon/resonator + name = "resonator" + contained_sprite = 1 + icon = 'icons/obj/mining_contained.dmi' + icon_state = "resonator" + item_state = "resonator" + desc = "A handheld device that creates small fields of energy that resonate until they detonate, crushing rock. It can also be activated without a target to create a field at the user's location, to act as a delayed time trap. It's more effective in a vacuum." + w_class = 3 + force = 15 + throwforce = 10 + var/burst_time = 30 + var/fieldlimit = 4 + var/list/fields = list() + var/quick_burst_mod = 0.8 + origin_tech = list(TECH_MAGNET = 3, TECH_ENGINEERING = 3) + +/obj/item/weapon/resonator/upgraded + name = "upgraded resonator" + desc = "An upgraded version of the resonator that can produce more fields at once." + icon_state = "resonatoru" + item_state = "resonatoru" + origin_tech = list(TECH_MAGNET = 3, TECH_MATERIAL = 4, TECH_POWER = 2, TECH_ENGINEERING = 3) + fieldlimit = 8 + quick_burst_mod = 1 + burst_time = 15 + +/obj/item/weapon/resonator/proc/CreateResonance(target, creator) + var/turf/T = get_turf(target) + var/obj/effect/resonance/R = locate(/obj/effect/resonance) in T + if(R) + R.resonance_damage *= quick_burst_mod + R.burst(T) + return + if(fields.len < fieldlimit) + playsound(src,'sound/weapons/resonator_fire.ogg',50,1) + var/obj/effect/resonance/RE = new /obj/effect/resonance(T, creator, burst_time, src) + fields += RE + +/obj/item/weapon/resonator/attack_self(mob/user) + if(burst_time == 50) + burst_time = 30 + user << "You set the resonator's fields to detonate after 3 seconds." + else + burst_time = 50 + user << "You set the resonator's fields to detonate after 5 seconds." + +/obj/item/weapon/resonator/afterattack(atom/target, mob/user, proximity_flag) + ..() + if(user.Adjacent(target)) + if(isturf(target)) + CreateResonance(target, user) + +/obj/effect/resonance + name = "resonance field" + desc = "A resonating field that significantly damages anything inside of it when the field eventually ruptures." + icon = 'icons/effects/effects.dmi' + icon_state = "shield2" + layer = 5 + anchored = TRUE + mouse_opacity = 0 + var/resonance_damage = 20 + var/creator + var/obj/item/weapon/resonator/res + +/obj/effect/resonance/New(loc, set_creator, timetoburst, set_resonator) + ..() + creator = set_creator + res = set_resonator + var/turf/proj_turf = get_turf(src) + if(!istype(proj_turf)) + return + var/datum/gas_mixture/environment = proj_turf.return_air() + var/pressure = environment.return_pressure() + if(pressure < 50) + name = "strong resonance field" + resonance_damage = 60 + schedule_task_with_source_in(timetoburst, src, .proc/burst, list(loc)) + +/obj/effect/resonance/Destroy() + if(res) + res.fields -= src + return ..() + +/obj/effect/resonance/proc/burst(turf/T) + playsound(src,'sound/weapons/resonator_blast.ogg',50,1) + if(istype(T, /turf/simulated/mineral)) + var/turf/simulated/mineral/M = T + M.GetDrilled(1) + for(var/mob/living/L in T) + if(creator) + add_logs(creator, L, "used a resonator field on", "resonator") + L << "The [src.name] ruptured with you in it!" + L.apply_damage(resonance_damage, BRUTE) + qdel(src) + + +/******************************Ore Magnet*******************************/ +/obj/item/weapon/oremagnet + name = "ore magnet" + contained_sprite = 1 + icon = 'icons/obj/mining_contained.dmi' + icon_state = "magneto" + item_state = "magneto" + desc = "A handheld device that creates a well of negative force that attracts minerals of a very specific type, size, and state to its user." + w_class = 3 + force = 10 + throwforce = 5 + var/on = 0 + origin_tech = list(TECH_MAGNET = 4, TECH_ENGINEERING = 3) + +/obj/item/weapon/oremagnet/attack_self(mob/user) + if(!on) + user << "You switch on the ore magnet." + on = 1 + else + user << "You switch off the ore magnet," + on = 0 + magneto() + +/obj/item/weapon/oremagnet/proc/magneto() + if(!src.loc) + on = 0 + if(!on) + return + for(var/obj/item/weapon/ore/O in oview(7,src.loc)) + if(prob(80)) + step_to(O,src.loc,0) + spawn(10) + .() + +/obj/item/weapon/oreportal + name = "ore summoner" + contained_sprite = 1 + icon = 'icons/obj/mining_contained.dmi' + icon_state = "supermagneto" + item_state = "jaunter" + desc = "A handheld device that creates a well of warp energy that teleports minerals of a very specific type, size, and state to its user." + w_class = 3 + force = 15 + throwforce = 5 + origin_tech = list(TECH_BLUESPACE = 4, TECH_ENGINEERING = 3) + +/obj/item/weapon/oreportal/attack_self(mob/user) + user << "You pulse the ore summoner." + for(var/obj/item/weapon/ore/O in orange(7,user)) + single_spark(O.loc) + do_teleport(O, user, 0) + +/******************************Sculpting*******************************/ +/obj/item/weapon/autochisel + name = "auto-chisel" + icon = 'icons/obj/items.dmi' + icon_state = "jackhammer" + item_state = "jackhammer" + origin_tech = list(TECH_MATERIAL = 3, TECH_POWER = 2, TECH_ENGINEERING = 2) + desc = "With an integrated AI chip and hair-trigger precision, this baby makes sculpting almost automatic!" + +/obj/structure/sculpting_block + name = "sculpting block" + desc = "A finely chiselled sculpting block, it is ready to be your canvas." + icon = 'icons/obj/mining.dmi' + icon_state = "sculpting_block" + density = 1 + opacity = 1 + anchored = 0 + var/sculpted = 0 + var/mob/living/T + var/times_carved = 0 + var/last_struck = 0 + +/obj/structure/sculpting_block/verb/rotate() + set name = "Rotate" + set category = "Object" + set src in oview(1) + + if (src.anchored || usr:stat) + usr << "It is fastened to the floor!" + return 0 + src.set_dir(turn(src.dir, 90)) + return 1 + +/obj/structure/sculpting_block/attackby(obj/item/C as obj, mob/user as mob) + + if (istype(C, /obj/item/weapon/wrench)) + playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) + user << "You [anchored ? "un" : ""]anchor the [name]." + anchored = !anchored + + if (istype(C, /obj/item/weapon/autochisel)) + if(!sculpted) + if(last_struck) + return + + if(!T) + var/list/choices = list() + for(var/mob/living/M in view(7,user)) + choices += M + T = input(user,"Who do you wish to sculpt?") as null|anything in choices + user.visible_message("[user] begins sculpting.", + "You begin sculpting.") + + var/sculpting_coefficient = get_dist(user,T) + if(sculpting_coefficient <= 0) + sculpting_coefficient = 1 + + if(sculpting_coefficient >= 7) + user << "You hardly remember what [T] really looks like! Bah!" + T = null + + user.visible_message("[user] carves away at the sculpting block!", + "You continue sculpting.") + + if(prob(25)) + playsound(user, 'sound/items/Screwdriver.ogg', 20, 1) + else + playsound(user, "sound/weapons/chisel[rand(1,2)].ogg", 20, 1) + spawn(3) + playsound(user, "sound/weapons/chisel[rand(1,2)].ogg", 20, 1) + spawn(3) + playsound(user, "sound/weapons/chisel[rand(1,2)].ogg", 20, 1) + + last_struck = 1 + if(do_after(user,(20))) + last_struck = 0 + if(times_carved <= 9) + times_carved += 1 + if(times_carved < 1) + user << "You review your work and see there is more to do." + return + else + sculpted = 1 + user.visible_message("[user] finishes sculpting their magnum opus!", + "You finish sculpting a masterpiece.") + src.appearance = T + src.color = list( + 0.35, 0.3, 0.25, + 0.35, 0.3, 0.25, + 0.35, 0.3, 0.25 + ) + src.pixel_y += 8 + var/image/pedestal_underlay = image('icons/obj/mining.dmi', icon_state = "pedestal") + pedestal_underlay.appearance_flags = RESET_COLOR + pedestal_underlay.pixel_y -= 8 + src.underlays += pedestal_underlay + var/title = sanitize(input(usr, "If you would like to name your art, do so here.", "Christen Your Sculpture", "") as text|null) + if(title) + name = title + else + name = "*[T.name]*" + var/legend = sanitize(input(usr, "If you would like to describe your art, do so here.", "Story Your Sculpture", "") as message|null) + if(legend) + desc = legend + else + desc = "This is a sculpture of [T.name]. All craftsmanship is of the highest quality. It is decorated with rock and more rock. It is covered with rock. On the item is an image of a rock. The rock is [T.name]." + else + last_struck = 0 + return + +/******************************Gains Boroughs*******************************/ + +/obj/structure/punching_bag + name = "punching bag" + desc = "A punching bag. Better this than the Quartermaster." + icon = 'icons/obj/mining.dmi' + icon_state = "punchingbag" + anchored = 1 + layer = 5.1 + var/list/hit_sounds = list('sound/weapons/genhit1.ogg', 'sound/weapons/genhit2.ogg', 'sound/weapons/genhit3.ogg',\ + 'sound/weapons/punch1.ogg', 'sound/weapons/punch2.ogg', 'sound/weapons/punch3.ogg', 'sound/weapons/punch4.ogg') + +/obj/structure/punching_bag/attack_hand(mob/user as mob) + flick("[icon_state]2", src) + playsound(src.loc, pick(src.hit_sounds), 25, 1, -1) + +/obj/structure/weightlifter + name = "Weight Machine" + desc = "Just looking at this thing makes you feel tired." + icon = 'icons/obj/mining.dmi' + icon_state = "fitnessweight" + density = 1 + anchored = 1 + +/obj/structure/weightlifter/attack_hand(mob/user as mob) + if(in_use) + user << "It's already in use - wait a bit." + return + else + in_use = 1 + icon_state = "fitnessweight-c" + user.dir = SOUTH + user.Stun(4) + user.loc = src.loc + var/image/W = image('icons/obj/mining.dmi',"fitnessweight-w") + W.layer = 5.1 + overlays += W + var/bragmessage = pick("pushing it to the limit","going into overdrive","burning with determination","rising up to the challenge", "getting strong now","getting ripped") + user.visible_message("[user] is [bragmessage]!") + var/reps = 0 + user.pixel_y = 5 + while (reps++ < 6) + if (user.loc != src.loc) + break + + for (var/innerReps = max(reps, 1), innerReps > 0, innerReps--) + sleep(3) + animate(user, pixel_y = (user.pixel_y == 3) ? 5 : 3, time = 3) + + playsound(user,'sound/effects/spring.ogg', 60, 1) + + sleep(3) + animate(user, pixel_y = 2, time = 3) + sleep(3) + playsound(user, 'sound/machines/click.ogg', 60, 1) + in_use = 0 + animate(user, pixel_y = 0, time = 3) + var/finishmessage = pick("You feel stronger!","You feel like you can take on the world!","You feel robust!","You feel indestructible!") + icon_state = "fitnessweight" + overlays -= W + user << "[finishmessage]" + +/******************************Seismic Charge*******************************/ + +/obj/item/weapon/plastique/seismic + name = "seismic charge" + desc = "A complex mining device that utilizes a seismic detonation to eliminate weak asteroid turf in a wide radius." + origin_tech = list(TECH_MAGNET = 2, TECH_MATERIAL = 4, TECH_PHORON = 2) + timer = 15 + +/obj/item/weapon/plastique/seismic/explode(var/turf/location) + if(!target) + target = get_atom_on_turf(src) + if(!target) + target = src + if(location) + getFromPool(/obj/effect/overlay/temp/explosion, location) + playsound(location, 'sound/effects/Explosion1.ogg', 100, 1) + for(var/atom/A in range(4,location)) + if(istype(A,/turf/simulated/mineral)) + var/turf/simulated/mineral/M = A + M.GetDrilled(1) + else if(istype(A, /turf/simulated/wall) && prob(66)) + var/turf/simulated/wall/W = A + W.ex_act(2) + else if(istype(A, /obj/structure/window)) + var/obj/structure/window/WI = A + WI.ex_act(3) + else if(istype(A,/mob/living)) + var/mob/living/LI = A + LI << 'sound/weapons/resonator_blast.ogg' + if(iscarbon(LI)) + var/mob/living/carbon/L = A + L.Weaken(3) + if(ishuman(L)) + shake_camera(L, 20, 1) + spawn(20) + L.vomit() + spawn(2) + for(var/turf/simulated/mineral/M in range(7,location)) + if(prob(75)) + M.GetDrilled(1) + + if(target) + target.overlays -= image_overlay + qdel(src) \ No newline at end of file diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 3d8493f65b1..f06cb656a38 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -25,9 +25,7 @@ var/datum/geosample/geologic_data var/excavation_level = 0 var/list/finds - var/next_rock = 0 var/archaeo_overlay = "" - var/excav_overlay = "" var/obj/item/weapon/last_find var/datum/artifact_find/artifact_find @@ -49,12 +47,36 @@ overlay.plane = 0 turf_to_check.overlays += overlay +/turf/simulated/mineral/examine(mob/user) + ..() + if(mineral) + switch(mined_ore) + if(0) + user << "It is ripe with [mineral.display_name]." + if(1) + user << "Its [mineral.display_name] looks a little depleted." + if(2) + user << "Its [mineral.display_name] looks very depleted!" + else + user << "It is devoid of any valuable minerals." + switch(emitter_blasts_taken) + if(0) + user << "It is in pristine condition." + if(1) + user << "It appears a little damaged." + if(2) + user << "It is crumbling!" + if(3) + user << "It looks ready to collapse at any moment!" + /turf/simulated/mineral/ex_act(severity) switch(severity) if(2.0) if (prob(70)) mined_ore = 1 //some of the stuff gets blown up GetDrilled() + else + emitter_blasts_taken += 2 if(1.0) mined_ore = 2 //some of the stuff gets blown up GetDrilled() @@ -65,18 +87,22 @@ if(istype(Proj, /obj/item/projectile/beam/emitter)) emitter_blasts_taken++ - if(emitter_blasts_taken > 2) // 3 blasts per tile - mined_ore = 1 - GetDrilled() + if(emitter_blasts_taken > 2) // 3 blasts per tile + GetDrilled() /turf/simulated/mineral/Bumped(AM) . = ..() if(istype(AM,/mob/living/carbon/human)) var/mob/living/carbon/human/H = AM if((istype(H.l_hand,/obj/item/weapon/pickaxe)) && (!H.hand)) - attackby(H.l_hand,H) + var/obj/item/weapon/pickaxe/P = H.l_hand + if(P.autodrill) + attackby(H.l_hand,H) + else if((istype(H.r_hand,/obj/item/weapon/pickaxe)) && H.hand) - attackby(H.r_hand,H) + var/obj/item/weapon/pickaxe/P = H.r_hand + if(P.autodrill) + attackby(H.r_hand,H) else if(istype(AM,/mob/living/silicon/robot)) var/mob/living/silicon/robot/R = AM @@ -141,9 +167,14 @@ var/obj/item/weapon/pickaxe/P = W if(last_act + P.digspeed > world.time)//prevents message spam return + + if(P.drilling) + return + last_act = world.time playsound(user, P.drill_sound, 20, 1) + P.drilling = 1 //handle any archaeological finds we might uncover var/fail_message @@ -153,7 +184,8 @@ //Chance to destroy / extract any finds here fail_message = ". [pick("There is a crunching noise","[W] collides with some different rock","Part of the rock face crumbles away","Something breaks under [W]")]" - user << "\red You start [P.drill_verb][fail_message ? fail_message : ""]." + if(fail_message) + user << "You start [P.drill_verb][fail_message ? fail_message : ""]." if(fail_message && prob(90)) if(prob(25)) @@ -164,7 +196,19 @@ artifact_debris() if(do_after(user,P.digspeed)) - user << "\blue You finish [P.drill_verb] the rock." + P.drilling = 0 + + if(prob(50)) + var/obj/item/weapon/ore/O + if(prob(25) && (mineral) && (P.excavation_amount >= 30)) + O = new mineral.ore (src) + else + O = new /obj/item/weapon/ore(src) + if(istype(O)) + geologic_data.UpdateNearbyArtifactInfo(src) + O.geologic_data = geologic_data + spawn(1) + O.forceMove(user.loc) if(finds && finds.len) var/datum/find/F = finds[1] @@ -210,31 +254,27 @@ archaeo_overlay = "overlay_archaeo[rand(1,3)]" overlays += archaeo_overlay - //there's got to be a better way to do this - var/update_excav_overlay = 0 - if(excavation_level >= 75) - if(excavation_level - P.excavation_amount < 75) - update_excav_overlay = 1 - else if(excavation_level >= 50) - if(excavation_level - P.excavation_amount < 50) - update_excav_overlay = 1 - else if(excavation_level >= 25) - if(excavation_level - P.excavation_amount < 25) - update_excav_overlay = 1 + else + user << " You stop [P.drill_verb] the rock." + P.drilling = 0 - //update overlays displaying excavation level - if( !(excav_overlay && excavation_level > 0) || update_excav_overlay ) - var/excav_quadrant = round(excavation_level / 25) + 1 - excav_overlay = "overlay_excv[excav_quadrant]_[rand(1,3)]" - overlays += excav_overlay + if (istype(W, /obj/item/weapon/autochisel)) + + if(last_act + 80 > world.time)//prevents message spam + return + last_act = world.time + + user << "You start chiselling [src] into a sculptable block." + + + + if(!do_after(user,80)) + return + + user << "You finish chiselling [src] into a sculptable block." + new /obj/structure/sculpting_block(src) + GetDrilled(1) - //drop some rocks - next_rock += P.excavation_amount * 10 - while(next_rock > 100) - next_rock -= 100 - var/obj/item/weapon/ore/O = new(src) - geologic_data.UpdateNearbyArtifactInfo(src) - O.geologic_data = geologic_data else return attack_hand(user) @@ -296,6 +336,9 @@ for(var/next_direction in step_overlays) if(istype(get_step(T, step_overlays[next_direction]),/turf/simulated/mineral)) T.overlays += image('icons/turf/walls.dmi', "rock_side", dir = step_overlays[next_direction]) + var/turf/simulated/open/O = get_step(src, step_overlays[direction]) + if(istype(O)) + O.update() if(rand(1,500) == 1) visible_message("An old dusty crate was buried within!") @@ -375,16 +418,16 @@ /turf/simulated/mineral/random name = "Mineral deposit" var/mineralSpawnChanceList = list( - ORE_URANIUM = 5, - ORE_PLATINUM = 5, - ORE_IRON = 35, - ORE_COAL = 35, - ORE_DIAMOND = 1, - ORE_GOLD = 5, - ORE_SILVER = 5, - ORE_PHORON = 10 + ORE_URANIUM = 2, + ORE_PLATINUM = 2, + ORE_IRON = 8, + ORE_COAL = 8, + ORE_DIAMOND = 1, + ORE_GOLD = 2, + ORE_SILVER = 2, + ORE_PHORON = 5 ) - var/mineralChance = 10 //means 10% chance of this plot changing to a mineral deposit + var/mineralChance = 45 /turf/simulated/mineral/random/New() if (prob(mineralChance) && !mineral) @@ -395,18 +438,46 @@ . = ..() -/turf/simulated/mineral/random/high_chance - mineralChance = 25 +/turf/simulated/mineral/random/low_chance + name = "Mineral deposit" mineralSpawnChanceList = list( - ORE_URANIUM = 10, - ORE_PLATINUM = 10, - ORE_IRON = 20, - ORE_COAL = 20, - ORE_DIAMOND = 2, - ORE_GOLD = 10, - ORE_SILVER = 10, - ORE_PHORON = 20 + ORE_URANIUM = 0, + ORE_PLATINUM = 0, + ORE_IRON = 2, + ORE_COAL = 3, + ORE_DIAMOND = 0, + ORE_GOLD = 0, + ORE_SILVER = 0, + ORE_PHORON = 1 ) + mineralChance = 5 + +/turf/simulated/mineral/random/high_chance + mineralSpawnChanceList = list( + ORE_URANIUM = 2, + ORE_PLATINUM = 2, + ORE_IRON = 2, + ORE_COAL = 2, + ORE_DIAMOND = 1, + ORE_GOLD = 2, + ORE_SILVER = 2, + ORE_PHORON = 3 + ) + mineralChance = 50 + +/turf/simulated/mineral/random/higher_chance + mineralSpawnChanceList = list( + ORE_URANIUM = 3, + ORE_PLATINUM = 3, + ORE_IRON = 1, + ORE_COAL = 1, + ORE_DIAMOND = 1, + ORE_GOLD = 3, + ORE_SILVER = 3, + ORE_PHORON = 2 + ) + mineralChance = 45 + /**********************Asteroid**************************/ @@ -426,14 +497,13 @@ oxygen = 0 nitrogen = 0 temperature = TCMB - var/dug = 0 //0 = has not yet been dug, 1 = has already been dug + var/dug = 0 //Increments by 1 everytime it's dug. 11 is the last integer that should ever be here. var/overlay_detail var/static/list/overlay_cache has_resources = 1 footstep_sound = "gravelstep" /turf/simulated/floor/asteroid/New() - if(prob(20)) overlay_detail = rand(0,9) @@ -446,9 +516,18 @@ return if(2.0) if (prob(70)) + dug += rand(4,10) + gets_dug() + else + dug += rand(1,3) gets_dug() if(1.0) - gets_dug() + if(prob(30)) + dug = 11 + gets_dug() + else + dug += rand(4,11) + gets_dug() return /turf/simulated/floor/asteroid/is_plating() @@ -499,20 +578,58 @@ break if(valid_tool) - if (dug) - user << "\red This area has already been dug" - return - var/turf/T = user.loc if (!(istype(T))) return - user << "\red You start digging." - playsound(user.loc, 'sound/effects/rustle1.ogg', 50, 1) + if (dug) + if(!GetBelow(src)) + return + user << " You start digging deeper." + playsound(user.loc, 'sound/effects/stonedoor_openclose.ogg', 50, 1) + if(!do_after(user,60)) + return + playsound(user.loc, 'sound/effects/stonedoor_openclose.ogg', 50, 1) + if(prob(33)) + switch(dug) + if(1) + user << " You've made a little progress." + if(2) + user << " You notice the hole is a little deeper." + if(3) + user << " You think you're about halfway there." + if(4) + user << " You finish up lifting another pile of dirt." + if(5) + user << " You dig a bit deeper. You're definitely halfway there now." + if(6) + user << " You still have a ways to go." + if(7) + user << " The hole looks pretty deep now." + if(8) + user << " The ground is starting to feel a lot looser." + if(9) + user << " You can almost see the other side." + if(10) + user << " Just a little deeper. . ." + else + user << " You penetrate the virgin earth!" + else + if(dug <= 10) + user << " You dig a little deeper." + else + user << " You dug a big hole." - if(!do_after(user,40)) return + gets_dug() + return - user << "\blue You dug a hole." + user << " You start digging." + playsound(user.loc, 'sound/effects/stonedoor_openclose.ogg', 50, 1) + + if(!do_after(user,40)) + return + + user << " You dug a hole." gets_dug() else if(istype(W,/obj/item/weapon/storage/bag/ore)) @@ -534,14 +651,34 @@ /turf/simulated/floor/asteroid/proc/gets_dug() - if(dug) - return - - for(var/i=0;i<(rand(3)+2);i++) - new/obj/item/weapon/ore/glass(src) - - dug = 1 icon_state = "asteroid_dug" + + new/obj/item/weapon/ore/glass(src) + + if(prob(50)) + var/list/ore = list(/obj/item/weapon/ore/coal = 8, + /obj/item/weapon/ore/iron = 6, + /obj/item/weapon/ore/phoron = 3, + /obj/item/weapon/ore/silver = 3, + /obj/item/weapon/ore/gold = 2, + /obj/item/weapon/ore/osmium = 3, + /obj/item/weapon/ore/hydrogen = 2, + /obj/item/weapon/ore/uranium = 1, + /obj/random/junk = 1, + /obj/item/weapon/ore/diamond = 0.5, + /obj/random/powercell = 0.2, + /obj/random/coin = 0.2, + /obj/random/loot = 0.1, + /obj/random/action_figure = 0.1) + var/ore_path = pickweight(ore) + if(ore) + new ore_path(src) + user << "You unearth something amidst the sand!" + + if(dug <= 10) + dug += 1 + else + ChangeTurf(/turf/space) return /turf/simulated/floor/asteroid/proc/updateMineralOverlays(var/update_neighbors) @@ -563,7 +700,7 @@ for (var/i = 1; i <= overlay_cache.len; i++) overlay_cache[i] = image('icons/turf/flooring/decals.dmi', "asteroid[i - 1]") - if(overlay_detail) + if(overlay_detail) overlays += overlay_cache[overlay_detail + 1] if(update_neighbors) diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm new file mode 100644 index 00000000000..39919d4e396 --- /dev/null +++ b/code/modules/mining/minebot.dm @@ -0,0 +1,242 @@ +/mob/living/silicon/robot/drone/mining + icon_state = "miningdrone" + law_type = /datum/ai_laws/mining_drone + module_type = /obj/item/weapon/robot_module/mining_drone/basic + holder_type = /obj/item/weapon/holder/drone/mining + maxHealth = 45 + health = 45 + pass_flags = PASSTABLE + req_access = list(access_mining, access_robotics) + idcard_type = /obj/item/weapon/card/id/synthetic/minedrone + speed = -1 + var/health_upgrade + var/ranged_upgrade + var/melee_upgrade + var/drill_upgrade + +/mob/living/silicon/robot/drone/mining/New() + + ..() + + verbs += /mob/living/proc/hide + remove_language("Robot Talk") + add_language("Drone Talk", 1) + + //They are unable to be upgraded, so let's give them a bit of a better battery. + cell.maxcharge = 10000 + cell.charge = 10000 + + // NO BRAIN. + mmi = null + + //We need to screw with their HP a bit. They have around one fifth as much HP as a full borg. + for(var/V in components) if(V != "power cell") + var/datum/robot_component/C = components[V] + C.max_damage = 15 + + verbs -= /mob/living/silicon/robot/verb/Namepick + verbs -= /mob/living/silicon/robot/drone/verb/set_mail_tag + updateicon() + density = 0 + +/mob/living/silicon/robot/drone/mining/updatename() + real_name = "NT-I-[rand(100,999)]" + name = real_name + +/mob/living/silicon/robot/drone/mining/init() + aiCamera = new/obj/item/device/camera/siliconcam/drone_camera(src) + additional_law_channels["Drone"] = ":d" + if(!laws) laws = new law_type + if(!module) module = new module_type(src) + + flavor_text = "It's a tiny little mining drone. The casing is stamped with an corporate logo and the subscript: '[company_name] Automated Pickaxe!'" + playsound(src.loc, 'sound/machines/twobeep.ogg', 50, 0) + +/mob/living/silicon/robot/drone/mining/welcome_drone() + src << "You are a mining drone, a tiny-brained robotic industrial machine." + src << "You have little individual will, some personality, and no drives or urges other than your laws and the art of mining." + src << "Remember, you DO NOT take orders from the AI." + src << "Use say ;Hello to talk to other drones and say Hello to speak silently to your nearby fellows." + +/mob/living/silicon/robot/drone/mining/attackby(var/obj/item/weapon/W, var/mob/user) + + if(istype(W, /obj/item/borg/upgrade/)) + user << "\The [src] is not compatible with \the [W]." + return + + else if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda)) + + if(stat == 2) + + var/choice = input("Look at your icon - is this what you want?") in list("Reboot","Recycle") + if(choice=="Reboot") + + if(!config.allow_drone_spawn || emagged || health < -maxHealth) //It's dead, Dave. + user << "The interface is fried, and a distressing burned smell wafts from the robot's interior. You're not rebooting this one." + return + + if(!allowed(usr)) + user << "Access denied." + return + + user.visible_message("\The [user] swipes \his ID card through \the [src], attempting to reboot it.", ">You swipe your ID card through \the [src], attempting to reboot it.") + request_player() + return + + else + var/obj/item/weapon/card/id/ID = W + if(!allowed(usr)) + user << "Access denied." + return + + user.visible_message("\The [user] swipes \his ID card through \the [src], recycling it into points.", ">You swipe your ID card through \the [src], recycling it into points.") + ID.mining_points += 800 + if(health_upgrade) + ID.mining_points += 600 + health_upgrade = 0 + if(ranged_upgrade) + ID.mining_points += 600 + ranged_upgrade = 0 + if(melee_upgrade) + ID.mining_points += 400 + melee_upgrade = 0 + if(drill_upgrade) + ID.mining_points += 2000 + drill_upgrade = 0 + qdel(src) + return + + else + user.visible_message("\The [user] swipes \his ID card through \the [src], attempting to shut it down.", "You swipe your ID card through \the [src], attempting to shut it down.") + + if(emagged) + return + + if(allowed(usr)) + shut_down() + else + user << "Access denied." + + return + + ..() + +/mob/living/silicon/robot/drone/mining/verb/print_report() + set name = "Print Message" + set desc = "Print out a status report of your own choosing." + set category = "Robot Commands" + + var/input = sanitize(input(usr, "Please enter a message to print out. NOTE: BBCode does not work.", "Print readout", "") as message|null) + if (!input) + usr << "Cancelled." + return + + var/customname = input(usr, "Pick a title for the report", "Title") as text|null + if (!customname) + usr << "Cancelled." + return + + var/status_report + switch(src.health) + if((maxHealth - (maxHealth/3)) to maxHealth) + status_report = "All systems nominal." + if((maxHealth/3) to maxHealth/2) + status_report = "Systems compromised." + if(0 to (maxHealth/3)) + status_report = "Systems failing." + else + status_report = "System status unknown." + + // Create the reply message + usr << "You begin printing the message." + if(do_after(src,20)) + var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(src.loc) + P.name = "mining report - [customname]" + P.info = {"
+
NanoTrasen Mining Drone Report
+ FOR YOUR EYES ONLY

+ [input]
+ [status_report]
+
"} + P.update_icon() + visible_message("\icon[src] The [usr] pings, \"[P.name] ready for review\", and happily disgorges a small printout.", 2) + playsound(src.loc, 'sound/machines/ping.ogg', 50, 0) + +/**********************Minebot Upgrades**********************/ + +/obj/item/device/mine_bot_ugprade + name = "minebot drill upgrade" + desc = "A minebot upgrade." + icon_state = "mainboard" + icon = 'icons/obj/module.dmi' + +/obj/item/device/mine_bot_ugprade/afterattack(var/mob/living/silicon/robot/drone/mining/M, mob/user, proximity) + if(!istype(M) || !proximity) + return + upgrade_bot(M, user) + +/obj/item/device/mine_bot_ugprade/proc/upgrade_bot(var/mob/living/silicon/robot/drone/mining/M, mob/user) + if(M.melee_upgrade) + user << "[src] already has a drill upgrade installed!" + return + M.modtype = initial(M.modtype) + M.uneq_all() + qdel(M.module) + M.module = null + if(M.ranged_upgrade) + new /obj/item/weapon/robot_module/mining_drone/drillandplasmacutter(M) + else + new /obj/item/weapon/robot_module/mining_drone/drill(M) + M.module.rebuild() + M.recalculate_synth_capacities() + qdel(src) + +/obj/item/device/mine_bot_ugprade/health + name = "minebot chassis upgrade" + +/obj/item/device/mine_bot_ugprade/health/upgrade_bot(var/mob/living/silicon/robot/drone/mining/M, mob/user) + if(M.health_upgrade) + user << "[src] already has a reinforced chassis!" + return + M.maxHealth = 100 + M.health += 55 + for(var/V in M.components) if(V != "power cell") + var/datum/robot_component/C = M.components[V] + C.max_damage = 30 + M.health_upgrade = 1 + qdel(src) + +/obj/item/device/mine_bot_ugprade/plasma + name = "minebot plasma cutter upgrade" + +/obj/item/device/mine_bot_ugprade/plasma/upgrade_bot(var/mob/living/silicon/robot/drone/mining/M, mob/user) + if(M.ranged_upgrade) + user << "[src] already has a plasma cutter upgrade installed!" + return + M.modtype = initial(M.modtype) + M.uneq_all() + qdel(M.module) + M.module = null + if(M.melee_upgrade) + new /obj/item/weapon/robot_module/mining_drone/drillandplasmacutter(M) + else + new /obj/item/weapon/robot_module/mining_drone/plasmacutter(M) + M.ranged_upgrade = 1 + M.module.rebuild() + M.recalculate_synth_capacities() + qdel(src) + +/obj/item/device/mine_bot_ugprade/thermal + name = "minebot thermal drill upgrade" + +/obj/item/device/mine_bot_ugprade/thermal/upgrade_bot(var/mob/living/silicon/robot/drone/mining/M, mob/user) + if(M.drill_upgrade) + user << "[src] already has a thermal drill!" + return + if(M.emagged == 1) + return 0 + + M.emagged = 1 + M.fakeemagged = 1 + M.drill_upgrade = 1 + qdel(src) \ No newline at end of file diff --git a/code/modules/mining/ore.dm b/code/modules/mining/ore.dm index 19cdf2a18b6..3f4b9ceddef 100644 --- a/code/modules/mining/ore.dm +++ b/code/modules/mining/ore.dm @@ -1,7 +1,7 @@ /obj/item/weapon/ore name = "rock" icon = 'icons/obj/mining.dmi' - icon_state = "ore2" + icon_state = "ore1" w_class = 2 var/datum/geosample/geologic_data var/material @@ -10,25 +10,25 @@ name = "pitchblende" icon_state = "ore_uranium" origin_tech = list(TECH_MATERIAL = 5) - material = "uranium" + material = ORE_URANIUM /obj/item/weapon/ore/iron name = "hematite" icon_state = "ore_iron" origin_tech = list(TECH_MATERIAL = 1) - material = "hematite" + material = ORE_IRON /obj/item/weapon/ore/coal name = "raw carbon" icon_state = "ore_coal" origin_tech = list(TECH_MATERIAL = 1) - material = "carbon" + material = ORE_COAL /obj/item/weapon/ore/glass name = "sand" icon_state = "ore_glass" origin_tech = list(TECH_MATERIAL = 1) - material = "sand" + material = ORE_SAND slot_flags = SLOT_HOLSTER // POCKET SAND! @@ -46,36 +46,36 @@ /obj/item/weapon/ore/phoron name = "phoron crystals" icon_state = "ore_phoron" - origin_tech = list(TECH_MATERIAL = 2) - material = "phoron" + origin_tech = list(TECH_MATERIAL = 2, TECH_PHORON = 2) + material = ORE_PHORON /obj/item/weapon/ore/silver name = "native silver ore" icon_state = "ore_silver" origin_tech = list(TECH_MATERIAL = 3) - material = "silver" + material = ORE_SILVER /obj/item/weapon/ore/gold name = "native gold ore" icon_state = "ore_gold" origin_tech = list(TECH_MATERIAL = 4) - material = "gold" + material = ORE_GOLD /obj/item/weapon/ore/diamond name = "diamonds" icon_state = "ore_diamond" origin_tech = list(TECH_MATERIAL = 6) - material = "diamond" + material = ORE_DIAMOND /obj/item/weapon/ore/osmium name = "raw platinum" icon_state = "ore_platinum" - material = "platinum" + material = ORE_PLATINUM /obj/item/weapon/ore/hydrogen name = "raw hydrogen" icon_state = "ore_hydrogen" - material = "mhydrogen" + material = ORE_HYDROGEN /obj/item/weapon/ore/slag name = "Slag" @@ -86,6 +86,8 @@ /obj/item/weapon/ore/New() pixel_x = rand(0,16)-8 pixel_y = rand(0,8)-8 + if(icon_state == "ore1") + icon_state = "ore[pick(1,2,3)]" /obj/item/weapon/ore/attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype(W,/obj/item/device/core_sampler)) diff --git a/code/modules/mining/ore_datum.dm b/code/modules/mining/ore_datum.dm index f2f017e6ea1..84ae5a2f21e 100644 --- a/code/modules/mining/ore_datum.dm +++ b/code/modules/mining/ore_datum.dm @@ -17,6 +17,7 @@ var/global/list/ore_data = list() "million" = 999 ) var/xarch_source_mineral = "iron" + var/worth = 0 // Arbitrary point value for the ore redemption console /ore/New() . = ..() @@ -28,7 +29,7 @@ var/global/list/ore_data = list() display_name = "pitchblende" smelts_to = "uranium" result_amount = 5 - spread_chance = 10 + spread_chance = 15 ore = /obj/item/weapon/ore/uranium scan_icon = "mineral_uncommon" xarch_ages = list( @@ -36,6 +37,7 @@ var/global/list/ore_data = list() "million" = 704 ) xarch_source_mineral = "potassium" + worth = 25 /ore/hematite name = ORE_IRON @@ -43,9 +45,10 @@ var/global/list/ore_data = list() smelts_to = "iron" alloy = 1 result_amount = 5 - spread_chance = 25 + spread_chance = 30 ore = /obj/item/weapon/ore/iron scan_icon = "mineral_common" + worth = 4 /ore/coal name = ORE_COAL @@ -53,21 +56,22 @@ var/global/list/ore_data = list() smelts_to = "plastic" alloy = 1 result_amount = 5 - spread_chance = 25 + spread_chance = 35 ore = /obj/item/weapon/ore/coal scan_icon = "mineral_common" + worth = 2 /ore/glass name = ORE_SAND display_name = "sand" smelts_to = "glass" compresses_to = "sandstone" + worth = 1 /ore/phoron name = ORE_PHORON display_name = "phoron crystals" compresses_to = "phoron" - //smelts_to = something that explodes violently on the conveyor, huhuhuhu result_amount = 5 spread_chance = 25 ore = /obj/item/weapon/ore/phoron @@ -79,15 +83,17 @@ var/global/list/ore_data = list() "billion_lower" = 10 ) xarch_source_mineral = "phoron" + worth = 8 /ore/silver name = ORE_SILVER display_name = "native silver" smelts_to = "silver" result_amount = 5 - spread_chance = 10 + spread_chance = 15 ore = /obj/item/weapon/ore/silver scan_icon = "mineral_uncommon" + worth = 20 /ore/gold smelts_to = ORE_GOLD @@ -103,16 +109,18 @@ var/global/list/ore_data = list() "billion" = 4, "billion_lower" = 3 ) + worth = 30 /ore/diamond name = ORE_DIAMOND display_name = "diamond" compresses_to = "diamond" result_amount = 5 - spread_chance = 10 + spread_chance = 5 ore = /obj/item/weapon/ore/diamond scan_icon = "mineral_rare" xarch_source_mineral = "nitrogen" + worth = 50 /ore/platinum name = ORE_PLATINUM @@ -121,9 +129,10 @@ var/global/list/ore_data = list() compresses_to = "osmium" alloy = 1 result_amount = 5 - spread_chance = 10 + spread_chance = 15 ore = /obj/item/weapon/ore/osmium scan_icon = "mineral_rare" + worth = 15 /ore/hydrogen name = ORE_HYDROGEN @@ -131,3 +140,4 @@ var/global/list/ore_data = list() smelts_to = "tritium" compresses_to = "mhydrogen" scan_icon = "mineral_rare" + worth = 30 diff --git a/code/modules/mob/holder.dm b/code/modules/mob/holder.dm index 9fefd3572d2..45a2dccbff5 100644 --- a/code/modules/mob/holder.dm +++ b/code/modules/mob/holder.dm @@ -399,6 +399,12 @@ var/list/holder_mob_icon_cache = list() item_state = "constructiondrone" w_class = 6//You're not fitting this thing in a backpack +/obj/item/weapon/holder/drone/mining + name = "mining drone" + desc = "It's a plucky mining drone." + icon_state = "mdrone" + item_state = "mdrone" + /obj/item/weapon/holder/cat name = "cat" desc = "It's a cat. Meow." diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index 860606f2a36..0a1c65468cf 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -191,7 +191,7 @@ var/list/mob_hat_cache = list() if(stat == 2) - if(!config.allow_drone_spawn || emagged || health < -35) //It's dead, Dave. + if(!config.allow_drone_spawn || emagged || health < -maxHealth) //It's dead, Dave. user << "The interface is fried, and a distressing burned smell wafts from the robot's interior. You're not rebooting this one." return @@ -254,10 +254,10 @@ var/list/mob_hat_cache = list() //For some goddamn reason robots have this hardcoded. Redefining it for our fragile friends here. /mob/living/silicon/robot/drone/updatehealth() if(status_flags & GODMODE) - health = 35 + health = maxHealth stat = CONSCIOUS return - health = 35 - (getBruteLoss() + getFireLoss()) + health = maxHealth - (getBruteLoss() + getFireLoss()) return //Easiest to check this here, then check again in the robot proc. @@ -265,7 +265,7 @@ var/list/mob_hat_cache = list() //Drones killed by damage will gib. /mob/living/silicon/robot/drone/handle_regular_status_updates() var/turf/T = get_turf(src) - if((!T || health <= -35 || (master_fabricator && T.z != master_fabricator.z)) && src.stat != DEAD) + if((!T || health <= -maxHealth || (master_fabricator && T.z != master_fabricator.z)) && src.stat != DEAD) timeofdeath = world.time death() //Possibly redundant, having trouble making death() cooperate. gib() diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index b48af64d22a..bd865a06e85 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -72,6 +72,7 @@ var/opened = 0 var/emagged = 0 + var/fakeemagged = 0 //for dumb illegal weapons module var/wiresexposed = 0 var/locked = 1 var/has_power = 1 @@ -1114,7 +1115,7 @@ return if(opened)//Cover is open - if(emagged) return//Prevents the X has hit Y with Z message also you cant emag them twice + if(emagged && !fakeemagged) return//Prevents the X has hit Y with Z message also you cant emag them twice if(wiresexposed) user << "You must close the panel first" return @@ -1122,6 +1123,8 @@ sleep(6) if(prob(50)) emagged = 1 + if(fakeemagged) + fakeemagged = 0 lawupdate = 0 disconnect_from_ai() user << "You emag [src]'s interface." diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 8e7f6fd35b8..03a121bd61e 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -358,7 +358,7 @@ var/global/list/robot_modules = list( src.modules += new /obj/item/weapon/screwdriver(src) src.modules += new /obj/item/weapon/wrench(src) src.modules += new /obj/item/weapon/crowbar(src) - src.modules += new /obj/item/weapon/pickaxe/plasmacutter(src) + src.modules += new /obj/item/weapon/weldingtool/experimental(src) src.modules += new /obj/item/device/pipe_painter(src) src.modules += new /obj/item/weapon/gripper/no_use/loader(src) src.modules += new /obj/item/weapon/gripper(src) @@ -641,7 +641,8 @@ var/global/list/robot_modules = list( src.modules += new /obj/item/weapon/gripper/miner(src) src.modules += new /obj/item/weapon/mining_scanner(src) src.modules += new /obj/item/weapon/crowbar(src) - src.emag = new /obj/item/weapon/pickaxe/plasmacutter(src) + src.emag = new /obj/item/weapon/gun/energy/plasmacutter/mounted(src) + ..() /obj/item/weapon/robot_module/research name = "research module" @@ -734,7 +735,7 @@ var/global/list/robot_modules = list( src.modules += new /obj/item/device/flash(src) src.modules += new /obj/item/borg/sight/hud/sec(src) src.modules += new /obj/item/weapon/gun/energy/laser/mounted(src) - src.modules += new /obj/item/weapon/pickaxe/plasmacutter(src) + src.modules += new /obj/item/weapon/gun/energy/plasmacutter/mounted(src) src.modules += new /obj/item/borg/combat/shield(src) src.modules += new /obj/item/borg/combat/mobility(src) src.modules += new /obj/item/weapon/crowbar(src) @@ -764,7 +765,7 @@ var/global/list/robot_modules = list( robot.internals = new/obj/item/weapon/tank/jetpack/carbondioxide(src) src.modules += robot.internals - src.emag = new /obj/item/weapon/pickaxe/plasmacutter(src) + src.emag = new /obj/item/weapon/gun/energy/plasmacutter/mounted(src) src.emag.name = "Plasma Cutter" var/datum/matter_synth/metal = new /datum/matter_synth/metal(25000) @@ -835,3 +836,61 @@ var/global/list/robot_modules = list( LR.Charge(R, amount) ..() return + +/obj/item/weapon/robot_module/mining_drone + name = "mining drone module" + no_slip = 1 + networks = list(NETWORK_MINE) + +/obj/item/weapon/robot_module/mining_drone/basic/New(var/mob/living/silicon/robot/robot) + src.modules += new /obj/item/device/flash(src) + src.modules += new /obj/item/borg/sight/material(src) + src.modules += new /obj/item/weapon/storage/bag/ore(src) + src.modules += new /obj/item/weapon/pickaxe/drill(src) + src.modules += new /obj/item/weapon/storage/bag/sheetsnatcher/borg(src) + src.modules += new /obj/item/weapon/gripper/miner(src) + src.modules += new /obj/item/weapon/mining_scanner(src) + + src.emag = new /obj/item/weapon/gun/energy/vaurca/mountedthermaldrill(src) + src.emag.name = "Mounted Thermal Drill" + ..() + +/obj/item/weapon/robot_module/mining_drone/drill/New(var/mob/living/silicon/robot/robot) + src.modules += new /obj/item/device/flash(src) + src.modules += new /obj/item/borg/sight/material(src) + src.modules += new /obj/item/weapon/storage/bag/ore(src) + src.modules += new /obj/item/weapon/pickaxe/jackhammer(src) + src.modules += new /obj/item/weapon/storage/bag/sheetsnatcher/borg(src) + src.modules += new /obj/item/weapon/gripper/miner(src) + src.modules += new /obj/item/weapon/mining_scanner(src) + + src.emag = new /obj/item/weapon/gun/energy/vaurca/mountedthermaldrill(src) + src.emag.name = "Mounted Thermal Drill" + ..() + +/obj/item/weapon/robot_module/mining_drone/plasmacutter/New(var/mob/living/silicon/robot/robot) + src.modules += new /obj/item/device/flash(src) + src.modules += new /obj/item/borg/sight/material(src) + src.modules += new /obj/item/weapon/storage/bag/ore(src) + src.modules += new /obj/item/weapon/gun/energy/plasmacutter/mounted(src) + src.modules += new /obj/item/weapon/storage/bag/sheetsnatcher/borg(src) + src.modules += new /obj/item/weapon/gripper/miner(src) + src.modules += new /obj/item/weapon/mining_scanner(src) + + src.emag = new /obj/item/weapon/gun/energy/vaurca/mountedthermaldrill(src) + src.emag.name = "Mounted Thermal Drill" + ..() + +/obj/item/weapon/robot_module/mining_drone/drillandplasmacutter/New(var/mob/living/silicon/robot/robot) + src.modules += new /obj/item/device/flash(src) + src.modules += new /obj/item/borg/sight/material(src) + src.modules += new /obj/item/weapon/storage/bag/ore(src) + src.modules += new /obj/item/weapon/gun/energy/plasmacutter/mounted(src) + src.modules += new /obj/item/weapon/pickaxe/jackhammer(src) + src.modules += new /obj/item/weapon/storage/bag/sheetsnatcher/borg(src) + src.modules += new /obj/item/weapon/gripper/miner(src) + src.modules += new /obj/item/weapon/mining_scanner(src) + + src.emag = new /obj/item/weapon/gun/energy/vaurca/mountedthermaldrill(src) + src.emag.name = "Mounted Thermal Drill" + ..() diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 50238da116b..6143a04e424 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -35,7 +35,7 @@ if(isliving(A)) var/mob/living/L = A - if(L.faction == src.faction && !attack_same) + if((L.faction == src.faction) && !attack_same) continue else if(L in friends) continue diff --git a/code/modules/multiz/movement.dm b/code/modules/multiz/movement.dm index a59ee88d1a8..3ce44cced2d 100644 --- a/code/modules/multiz/movement.dm +++ b/code/modules/multiz/movement.dm @@ -137,25 +137,6 @@ return TRUE -/mob/living/carbon/human/can_fall() - if(Allow_Spacemove()) - return 0 - - if(Check_Shoegrip()) //scaling hull with magboots - for(var/turf/simulated/T in trange(1,src)) - if(T.density) - return 0 - ..() - -/mob/living/silicon/robot/can_fall() - if(Allow_Spacemove()) //Checks for active jetpack - return 0 - - for(var/turf/simulated/T in trange(1,src)) //Robots get "magboots" - if(T.density) - return 0 - ..() - /obj/effect/can_fall() return FALSE @@ -181,17 +162,28 @@ if(istype(landing, /turf/simulated/open)) visible_message("\The [src] falls from the level above through \the [landing]!", "You hear a whoosh of displaced air.") - else + else if(!istype(landing, /turf/space)) visible_message("\The [src] falls from the level above and slams onto \the [landing]!", "You hear something slam onto the floor.") /mob/living/carbon/human/handle_fall(var/turf/landing) if(..()) return + + var/area/area1 = get_area(landing) + if(!area1.has_gravity()) + return + + if(istype(landing, /turf/simulated/open)) + var/turf/simulated/open/open = landing + var/area/area2 = get_area(open.below) + if(!area2.has_gravity()) + return + var/damage = 20 apply_damage(rand(0, damage), BRUTE, "head") apply_damage(rand(0, damage), BRUTE, "chest") - apply_damage(rand(0, damage), BRUTE, "l_leg") - apply_damage(rand(0, damage), BRUTE, "r_leg") + apply_damage(10 + rand(10, damage), BRUTE, "l_leg") + apply_damage(10 + rand(10, damage), BRUTE, "r_leg") apply_damage(rand(0, damage), BRUTE, "l_arm") apply_damage(rand(0, damage), BRUTE, "r_arm") weakened = max(weakened,2) diff --git a/code/modules/multiz/turf.dm b/code/modules/multiz/turf.dm index d57a65a29a6..d862365a8ab 100644 --- a/code/modules/multiz/turf.dm +++ b/code/modules/multiz/turf.dm @@ -13,6 +13,8 @@ /turf/space/CanZPass(atom, direction) return 1 +var/global/list/total_openspace = list() + /turf/simulated/open name = "open space" icon = 'icons/turf/space.dmi' @@ -23,6 +25,18 @@ var/turf/below +/turf/simulated/open/airless + oxygen = 0 + nitrogen = 0 + temperature = TCMB + +/turf/simulated/open/New() + total_openspace += src + +/turf/simulated/open/Destroy() + total_openspace -= src + ..() + /turf/simulated/open/post_change() ..() update() @@ -51,6 +65,8 @@ O.hide(0) /turf/simulated/open/update_icon() + overlays.Cut() + underlays.Cut() if(below) var/image/t_img = list() var/image/temp = image(icon = below.icon, icon_state = below.icon_state) @@ -135,4 +151,4 @@ //Most things use is_plating to test if there is a cover tile on top (like regular floors) /turf/simulated/open/is_plating() - return 1 + return 1 \ No newline at end of file diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 9ea20407159..279bb75fe1e 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -53,7 +53,7 @@ info = parsepencode(text) else info = "" - + update_icon() update_space(info) updateinfolinks() @@ -134,7 +134,7 @@ if (icon_state == "paper_plane") user.show_message(span("alert", "The paper is already folded into a plane.")) return - user.visible_message(span("notice", "\The [user] carefully folds \the [src] into a plane."), + user.visible_message(span("notice", "\The [user] carefully folds \the [src] into a plane."), span("notice", "You carefully fold \the [src] into a plane."), "You hear paper rustling.") icon_state = "paper_plane" throw_range = 8 @@ -547,4 +547,4 @@ Please note: Cell timers will \[b\]NOT\[/b\] function without a valid incident f ..() /obj/item/weapon/paper/sentencing/update_icon() - return + return \ No newline at end of file diff --git a/code/modules/projectiles/effects.dm b/code/modules/projectiles/effects.dm index a18b3efc85b..69c49ff662b 100644 --- a/code/modules/projectiles/effects.dm +++ b/code/modules/projectiles/effects.dm @@ -148,6 +148,18 @@ /obj/effect/projectile/solar/impact icon_state = "impact_solar" +//---------------------------- +// Treye beam +//---------------------------- +/obj/effect/projectile/trilaser/tracer + icon_state = "plasmacutter" + +/obj/effect/projectile/trilaser/muzzle + icon_state = "muzzle_plasmacutter" + +/obj/effect/projectile/trilaser/impact + icon_state = "impact_plasmacutter" + //---------------------------- // Pulse muzzle //---------------------------- diff --git a/code/modules/projectiles/guns/energy/mining.dm b/code/modules/projectiles/guns/energy/mining.dm new file mode 100644 index 00000000000..9d20f21a5bb --- /dev/null +++ b/code/modules/projectiles/guns/energy/mining.dm @@ -0,0 +1,343 @@ +/obj/item/weapon/gun/energy/kinetic_accelerator/cyborg + self_recharge = 1 + use_external_power = 1 + +/obj/item/weapon/gun/energy/kinetic_accelerator + name = "proto-kinetic accelerator" + desc = "A reloadable, ranged mining tool that does increased damage in low pressure. Capable of holding up to six slots worth of mod kits." + icon = 'icons/obj/mining_contained.dmi' + icon_state = "kineticgun" + item_state = "kineticgun" + contained_sprite = 1 + charge_meter = 0 + fire_delay = 16 + origin_tech = list(TECH_COMBAT = 2, TECH_MAGNET = 4, TECH_POWER = 4) + projectile_type = /obj/item/projectile/kinetic + fire_sound = 'sound/weapons/Kenetic_accel.ogg' + + var/max_mod_capacity = 100 + var/list/modkits = list() + +/obj/item/weapon/gun/energy/kinetic_accelerator/attack_self(mob/living/user as mob) + if(power_supply.charge < power_supply.maxcharge) + user << "You begin charging \the [src]..." + if(do_after(user,20)) + playsound(src.loc, 'sound/weapons/kenetic_reload.ogg', 60, 1) + user.visible_message( + "\The [user] pumps \the [src]!", + "You pump \the [src]]!" + ) + power_supply.charge = power_supply.maxcharge + +/obj/item/weapon/gun/energy/kinetic_accelerator/examine(mob/user) + ..() + if(max_mod_capacity) + user << "[get_remaining_mod_capacity()]% mod capacity remaining." + for(var/A in get_modkits()) + var/obj/item/borg/upgrade/modkit/M = A + user << "There is a [M.name] mod installed, using [M.cost]% capacity." + +/obj/item/weapon/gun/energy/kinetic_accelerator/attackby(obj/item/A, mob/user) + if(istype(A, /obj/item/weapon/crowbar)) + if(modkits.len) + user << "You pry the modifications out." + playsound(loc, 100, 1) + for(var/obj/item/borg/upgrade/modkit/M in modkits) + M.uninstall(src) + else + user << "There are no modifications currently installed." + else if(istype(A, /obj/item/borg/upgrade/modkit)) + var/obj/item/borg/upgrade/modkit/MK = A + MK.install(src, user) + else + ..() + +/obj/item/weapon/gun/energy/kinetic_accelerator/proc/get_remaining_mod_capacity() + var/current_capacity_used = 0 + for(var/A in get_modkits()) + var/obj/item/borg/upgrade/modkit/M = A + current_capacity_used += M.cost + return max_mod_capacity - current_capacity_used + +/obj/item/weapon/gun/energy/kinetic_accelerator/proc/get_modkits() + . = list() + for(var/A in modkits) + . += A + +//Projectiles +/obj/item/projectile/kinetic + name = "kinetic force" + icon_state = null + damage = 30 + damage_type = BRUTE + check_armour = "bomb" + kill_count = 5 + + var/pressure_decrease = 0.25 + var/turf_aoe = FALSE + var/mob_aoe = 0 + var/list/hit_overlays = list() + +/obj/item/projectile/kinetic/launch_from_gun(atom/target, mob/user, obj/item/weapon/gun/launcher, var/target_zone, var/x_offset=0, var/y_offset=0) + if(istype(launcher, /obj/item/weapon/gun/energy/kinetic_accelerator)) + var/obj/item/weapon/gun/energy/kinetic_accelerator/KA = launcher + for(var/A in KA.get_modkits()) + var/obj/item/borg/upgrade/modkit/M = A + M.modify_projectile(src) + ..() + +/obj/item/projectile/kinetic/on_impact(var/atom/A) + strike_thing(A) + . = ..() + +/obj/item/projectile/kinetic/proc/strike_thing(atom/target) + var/turf/target_turf = get_turf(target) + if(!target_turf) + target_turf = get_turf(src) + var/datum/gas_mixture/environment = target_turf.return_air() + var/pressure = environment.return_pressure() + if(pressure > 50) + name = "weakened [name]" + damage *= pressure_decrease + if(istype(target_turf, /turf/simulated/mineral)) + var/turf/simulated/mineral/M = target_turf + M.GetDrilled(1) + var/obj/effect/overlay/temp/kinetic_blast/K = getFromPool(/obj/effect/overlay/temp/kinetic_blast, target_turf) + K.color = color + for(var/type in hit_overlays) + getFromPool(type, target_turf) + if(turf_aoe) + for(var/T in orange(1, target_turf)) + if(istype(T, /turf/simulated/mineral)) + var/turf/simulated/mineral/M = T + M.GetDrilled(1) + if(mob_aoe) + for(var/mob/living/L in range(1, target_turf) - firer - target) + L.apply_damage(damage*mob_aoe, damage_type, def_zone, armor) + L << "You're struck by a [name]!" + + +//Modkits +/obj/item/borg/upgrade/modkit + name = "modification kit" + desc = "An upgrade for kinetic accelerators." + icon = 'icons/obj/mining.dmi' + icon_state = "modkit" + origin_tech = "programming=2;materials=2;magnets=4" + var/denied_type = null + var/maximum_of_type = 1 + var/cost = 30 + var/modifier = 1 //For use in any mod kit that has numerical modifiers + +/obj/item/borg/upgrade/modkit/examine(mob/user) + ..() + user << "Occupies [cost]% of mod capacity." + +/obj/item/borg/upgrade/modkit/attackby(obj/item/A, mob/user) + if(istype(A, /obj/item/weapon/gun/energy/kinetic_accelerator) && !issilicon(user)) + install(A, user) + else + ..() + +/obj/item/borg/upgrade/modkit/action(mob/living/silicon/robot/R) + if(..()) + return + + for(var/obj/item/weapon/gun/energy/kinetic_accelerator/cyborg/H in R.module.modules) + return install(H, usr) + +/obj/item/borg/upgrade/modkit/proc/install(obj/item/weapon/gun/energy/kinetic_accelerator/KA, mob/user) + . = TRUE + if(denied_type) + var/number_of_denied = 0 + for(var/A in KA.get_modkits()) + var/obj/item/borg/upgrade/modkit/M = A + if(istype(M, denied_type)) + number_of_denied++ + if(number_of_denied >= maximum_of_type) + . = FALSE + break + if(KA.get_remaining_mod_capacity() >= cost) + if(.) + user << "You install the modkit." + playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1) + user.unEquip(src) + forceMove(KA) + KA.modkits += src + else + user << "The modkit you're trying to install would conflict with an already installed modkit. Use a crowbar to remove existing modkits." + else + user << "You don't have room([KA.get_remaining_mod_capacity()]% remaining, [cost]% needed) to install this modkit. Use a crowbar to remove existing modkits." + . = FALSE + + + +/obj/item/borg/upgrade/modkit/proc/uninstall(obj/item/weapon/gun/energy/kinetic_accelerator/KA) + forceMove(get_turf(KA)) + KA.modkits -= src + +/obj/item/borg/upgrade/modkit/proc/modify_projectile(obj/item/projectile/kinetic/K) + + +//Range +/obj/item/borg/upgrade/modkit/range + name = "range increase" + desc = "Increases the range of a kinetic accelerator when installed." + modifier = 20 + cost = 24 //so you can fit four plus a tracer cosmetic + +/obj/item/borg/upgrade/modkit/range/modify_projectile(obj/item/projectile/kinetic/K) + K.kill_count += modifier + + +//Damage +/obj/item/borg/upgrade/modkit/damage + name = "damage increase" + desc = "Increases the damage of kinetic accelerator when installed." + modifier = 10 + +/obj/item/borg/upgrade/modkit/damage/modify_projectile(obj/item/projectile/kinetic/K) + K.damage += modifier + + +//Cooldown +/obj/item/borg/upgrade/modkit/cooldown + name = "cooldown decrease" + desc = "Decreases the cooldown of a kinetic accelerator and increases the recharge rate." + modifier = 2 + +/obj/item/borg/upgrade/modkit/cooldown/install(obj/item/weapon/gun/energy/kinetic_accelerator/KA, mob/user) + . = ..() + if(.) + KA.fire_delay -= modifier + KA.recharge_time -= modifier + +/obj/item/borg/upgrade/modkit/cooldown/uninstall(obj/item/weapon/gun/energy/kinetic_accelerator/KA) + KA.fire_delay += modifier + KA.recharge_time += modifier + ..() + + +//AoE blasts +/obj/item/borg/upgrade/modkit/aoe + modifier = 0 + +/obj/item/borg/upgrade/modkit/aoe/modify_projectile(obj/item/projectile/kinetic/K) + K.name = "kinetic explosion" + if(!K.turf_aoe && !K.mob_aoe) + K.hit_overlays += /obj/effect/overlay/temp/explosion/fast + K.mob_aoe += modifier + +/obj/item/borg/upgrade/modkit/aoe/turfs + name = "mining explosion" + desc = "Causes the kinetic accelerator to destroy rock in an AoE." + denied_type = /obj/item/borg/upgrade/modkit/aoe/turfs + +/obj/item/borg/upgrade/modkit/aoe/turfs/modify_projectile(obj/item/projectile/kinetic/K) + ..() + K.turf_aoe = TRUE + +/obj/item/borg/upgrade/modkit/aoe/turfs/andmobs + name = "offensive mining explosion" + desc = "Causes the kinetic accelerator to destroy rock and damage mobs in an AoE." + maximum_of_type = 3 + modifier = 0.25 + +/obj/item/borg/upgrade/modkit/aoe/mobs + name = "offensive explosion" + desc = "Causes the kinetic accelerator to damage mobs in an AoE." + modifier = 0.2 + + +//Indoors +/obj/item/borg/upgrade/modkit/indoors + name = "decrease pressure penalty" + desc = "Increases the damage a kinetic accelerator does in a high pressure environment." + modifier = 2 + denied_type = /obj/item/borg/upgrade/modkit/indoors + maximum_of_type = 2 + cost = 40 + +/obj/item/borg/upgrade/modkit/indoors/modify_projectile(obj/item/projectile/kinetic/K) + K.pressure_decrease *= modifier + +/obj/item/borg/upgrade/modkit/tracer + name = "white tracer bolts" + desc = "Causes kinetic accelerator bolts to have a white tracer trail and explosion." + cost = 4 + denied_type = /obj/item/borg/upgrade/modkit/tracer + var/bolt_color = "#FFFFFF" + +/obj/item/borg/upgrade/modkit/tracer/modify_projectile(obj/item/projectile/kinetic/K) + K.icon_state = "ka_tracer" + K.color = bolt_color + +/obj/item/borg/upgrade/modkit/tracer/adjustable + name = "adjustable tracer bolts" + desc = "Causes kinetic accelerator bolts to have a adjustably-colored tracer trail and explosion. Use in-hand to change color." + +/obj/item/borg/upgrade/modkit/tracer/adjustable/attack_self(mob/user) + bolt_color = input(user,"Choose Color") as color + +/*******************PLASMA CUTTER*******************/ + +/obj/item/weapon/gun/energy/plasmacutter/mounted + self_recharge = 1 + use_external_power = 1 + +/obj/item/weapon/gun/energy/plasmacutter + name = "plasma cutter" + 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." + contained_sprite = 1 + charge_meter = 0 + icon = 'icons/obj/mining_contained.dmi' + icon_state = "plasma" + item_state = "plasma" + fire_sound = 'sound/weapons/plasma_cutter.ogg' + slot_flags = SLOT_BELT|SLOT_BACK + w_class = 3 + force = 15 + sharp = 1 + edge = 1 + origin_tech = list(TECH_MATERIAL = 4, TECH_PHORON = 3, TECH_ENGINEERING = 3) + matter = list(DEFAULT_WALL_MATERIAL = 4000) + projectile_type = /obj/item/projectile/beam/plasmacutter + max_shots = 15 + +/obj/item/projectile/beam/plasmacutter + name = "plasma arc" + icon_state = "omnilaser" + damage = 15 + damage_type = BURN + check_armour = "laser" + kill_count = 5 + pass_flags = PASSTABLE + + muzzle_type = /obj/effect/projectile/trilaser/muzzle + tracer_type = /obj/effect/projectile/trilaser/tracer + impact_type = /obj/effect/projectile/trilaser/impact + +/obj/item/projectile/beam/plasmacutter/on_impact(var/atom/A) + strike_thing(A) + . = ..() + +/obj/item/projectile/beam/plasmacutter/proc/strike_thing(var/atom/A) + if(istype(A, /turf/simulated/mineral)) + var/turf/simulated/mineral/M = A + if(prob(33)) + M.GetDrilled(1) + return + else if(prob(88)) + M.emitter_blasts_taken += 2 + M.emitter_blasts_taken += 1 + + else if(istype(A, /mob/living)) + var/mob/living/L = A + L.apply_damage(15, BRUTE, def_zone) + if(istype(A, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = L + var/ultimate_def_zone = check_zone(def_zone) + if(H.has_organ(ultimate_def_zone)) + var/obj/item/organ/external/E = H.get_organ(ultimate_def_zone) + if(E.damage > 15 && prob((4*E.damage))) + E.droplimb(0,DROPLIMB_EDGE) \ No newline at end of file diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 9da6c2df364..9334c770e78 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -181,7 +181,7 @@ force = 30 projectile_type = /obj/item/projectile/energy/bfg slot_flags = SLOT_BACK - max_shots = 10 + max_shots = 3 sel_mode = 1 fire_delay = 10 accuracy = 20 @@ -212,6 +212,7 @@ ) action_button_name = "Wield gatling laser" + charge_cost = 50 /obj/item/weapon/gun/energy/vaurca/gatlinglaser/can_wield() return 1 @@ -335,7 +336,7 @@ "You hear a low pulsing roar!" ) is_charging = 1 - sleep(40) + sleep(20) is_charging = 0 if(!istype(user.get_active_hand(), src)) return @@ -387,6 +388,7 @@ self_recharge = 1 recharge_time = 1 charge_meter = 1 + charge_cost = 50 firemodes = list( list(mode_name="2 second burst", burst=10, burst_delay = 1, fire_delay = 20), @@ -424,7 +426,49 @@ "You hear a low pulsing roar!" ) is_charging = 1 - sleep(60) + sleep(40) + is_charging = 0 + if(!istype(user.get_active_hand(), src)) + return + msg_admin_attack("[key_name_admin(user)] shot with \a [src.type] [key_name_admin(src)]'s target (JMP)") + return 1 + +/obj/item/weapon/gun/energy/vaurca/mountedthermaldrill + name = "mounted thermal drill" + desc = "Pierce the heavens? Son, there won't be any heavens when you're through with it." + contained_sprite = 1 + icon = 'icons/obj/vaurca_items.dmi' + icon_state = "thermaldrill" + item_state = "thermaldrill" + origin_tech = "combat=6;phorontech=8," + fire_sound = 'sound/magic/lightningbolt.ogg' + slot_flags = SLOT_BACK + w_class = 4 + force = 15 + projectile_type = /obj/item/projectile/beam/thermaldrill + max_shots = 90 + sel_mode = 1 + burst = 30 + burst_delay = 1 + fire_delay = 60 + self_recharge = 1 + recharge_time = 1 + charge_meter = 1 + use_external_power = 1 + charge_cost = 50 + +/obj/item/weapon/gun/energy/vaurca/mountedthermaldrill/special_check(var/mob/user) + ..() + if(is_charging) + user << "\The [src] is already charging!" + return 0 + user.visible_message( + "\The [user] begins charging the [src]!", + "You begin charging the [src]!", + "You hear a low pulsing roar!" + ) + is_charging = 1 + sleep(30) is_charging = 0 if(!istype(user.get_active_hand(), src)) return diff --git a/code/modules/projectiles/guns/projectile/boltaction.dm b/code/modules/projectiles/guns/projectile/boltaction.dm index a3a88245cfb..d96da8671f7 100644 --- a/code/modules/projectiles/guns/projectile/boltaction.dm +++ b/code/modules/projectiles/guns/projectile/boltaction.dm @@ -61,7 +61,7 @@ /obj/item/weapon/gun/projectile/boltaction/attackby(var/obj/item/A as obj, mob/user as mob) - if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/melee/energy) || istype(A, /obj/item/weapon/pickaxe/plasmacutter) && w_class != 3) + if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/melee/energy) || istype(A, /obj/item/weapon/gun/energy/plasmacutter) && w_class != 3) user << "You begin to shorten the barrel and stock of \the [src]." if(loaded.len) afterattack(user, user) diff --git a/code/modules/projectiles/guns/projectile/improvised.dm b/code/modules/projectiles/guns/projectile/improvised.dm index b4fa8cd9ee0..22def2aea86 100644 --- a/code/modules/projectiles/guns/projectile/improvised.dm +++ b/code/modules/projectiles/guns/projectile/improvised.dm @@ -30,7 +30,7 @@ /obj/item/weapon/gun/projectile/shotgun/improvised/attackby(var/obj/item/A as obj, mob/user as mob) - if(w_class > 3 && (istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/melee/energy) || istype(A, /obj/item/weapon/pickaxe/plasmacutter))) + if(w_class == 3 && (istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/melee/energy) || istype(A, /obj/item/weapon/gun/energy/plasmacutter))) user << "You begin to shorten the barrel of \the [src]." if(loaded.len) for(var/i in 1 to max_shells) diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index ab1a6427b46..aa1af66eb7a 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -105,7 +105,7 @@ //this is largely hacky and bad :( -Pete /obj/item/weapon/gun/projectile/shotgun/doublebarrel/attackby(var/obj/item/A as obj, mob/user as mob) - if(w_class > 3 && (istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/melee/energy) || istype(A, /obj/item/weapon/pickaxe/plasmacutter))) + if(w_class == 3 && (istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/melee/energy) || istype(A, /obj/item/weapon/gun/energy/plasmacutter))) user << "You begin to shorten the barrel of \the [src]." if(loaded.len) for(var/i in 1 to max_shells) diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 449cdfe14ec..46766b09159 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -224,7 +224,7 @@ /obj/item/projectile/beam/megaglaive name = "thermal lance" icon_state = "megaglaive" - damage = 6 + damage = 10 incinerate = 5 armor_penetration = 10 no_attack_log = 1 @@ -239,10 +239,27 @@ src.transform = effect_transform ..() +/obj/item/projectile/beam/megaglaive/on_impact(var/atom/A) + if(isturf(A)) + if(istype(A, /turf/simulated/mineral)) + if(prob(75)) //likely because its a mining tool + var/turf/simulated/mineral/M = A + if(prob(10)) + M.GetDrilled(1) + else if(!M.emitter_blasts_taken) + M.emitter_blasts_taken += 1 + else if(prob(33)) + M.emitter_blasts_taken += 1 + if(ismob(A)) + var/mob/living/M = A + M.apply_effect(1, INCINERATE, 0) + explosion(A, -1, 0, 2) + ..() + /obj/item/projectile/beam/thermaldrill name = "thermal lance" icon_state = "megaglaive" - damage = 3 + damage = 5 no_attack_log = 1 muzzle_type = /obj/effect/projectile/solar/muzzle @@ -254,7 +271,13 @@ if(istype(A, /turf/simulated/mineral)) if(prob(75)) //likely because its a mining tool var/turf/simulated/mineral/M = A - M.GetDrilled() + if(prob(33)) + M.GetDrilled(1) + else if(!M.emitter_blasts_taken) + M.emitter_blasts_taken += 2 + else if(prob(66)) + M.emitter_blasts_taken += 2 + if(ismob(A)) var/mob/living/M = A M.apply_effect(1, INCINERATE, 0) diff --git a/code/modules/random_map/automata/caves.dm b/code/modules/random_map/automata/caves.dm index eda3b6c7fc4..fccec888a81 100644 --- a/code/modules/random_map/automata/caves.dm +++ b/code/modules/random_map/automata/caves.dm @@ -41,7 +41,7 @@ var/door_count = 0 var/empty_count = 0 while((ore_count>0) && (ore_turfs.len>0)) - if(!priority_process) + if(!priority_process) CHECK_TICK var/check_cell = pick(ore_turfs) ore_turfs -= check_cell @@ -99,3 +99,77 @@ CHECK_TICK game_log("ASGEN", "Applied [num_applied] turfs.") + +/datum/random_map/automata/cave_system/high_yield + descriptor = "high yield caves" + wall_type = /turf/simulated/mineral/random/low_chance + mineral_sparse = /turf/simulated/mineral/random/high_chance + mineral_rich = /turf/simulated/mineral/random/higher_chance + +/datum/random_map/automata/cave_system/chasms + descriptor = "chasm caverns" + wall_type = /turf/unsimulated/mask + floor_type = /turf/simulated/open/airless + target_turf_type = /turf/unsimulated/chasm_mask + mineral_sparse = /turf/unsimulated/mask + mineral_rich = /turf/unsimulated/mask + cell_threshold = 5 + +/datum/random_map/automata/cave_system/chasms/apply_to_map() + if(!origin_x) origin_x = 1 + if(!origin_y) origin_y = 1 + if(!origin_z) origin_z = 1 + + var/tmp_cell + var/x + var/y + var/new_path + var/num_applied = 0 + for (var/thing in block(locate(origin_x, origin_y, origin_z), locate(limit_x, limit_y, origin_z))) + var/turf/T = thing + new_path = null + if (!T || (target_turf_type && !istype(T, target_turf_type))) + continue + + x = T.x + y = T.y + + PREPARE_CELL(x,y) + + if (!tmp_cell) + continue + + switch (map[tmp_cell]) + if(DOOR_CHAR) + new_path = mineral_sparse + if(EMPTY_CHAR) + new_path = mineral_rich + if(FLOOR_CHAR) + var/turf/below = GetBelow(T) + if(below) + var/area/below_area = get_area(below) + if(below_area in the_station_areas) + new_path = wall_type + else if(below.density) + new_path = wall_type + else + new_path = floor_type + if(WALL_CHAR) + new_path = wall_type + + if (!new_path) + continue + + num_applied += 1 + new new_path(T) + CHECK_TICK + + game_log("ASGEN", "Applied [num_applied] turfs.") + +/datum/random_map/automata/cave_system/chasms/surface + descriptor = "chasm surface" + wall_type = /turf/simulated/floor/asteroid + floor_type = /turf/simulated/open/airless + target_turf_type = /turf/unsimulated/chasm_mask + mineral_sparse = /turf/simulated/floor/asteroid + mineral_rich = /turf/simulated/floor/asteroid \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 6d557fb1584..a84ffb7b2be 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -84,18 +84,44 @@ else user << "It is spent." +/obj/item/weapon/reagent_containers/hypospray/autoinjector/stimpack + name = "stimpack" + desc = "A simple chemical cocktail of hyperzine and tramadol designed to boost efficiency by 6,000% (estimated). Hoo-rah!" + volume = 20 + amount_per_transfer_from_this = 20 + +/obj/item/weapon/reagent_containers/hypospray/autoinjector/stimpack/New() + ..() + reagents.add_reagent("hyperzine", 12) + reagents.add_reagent("tramadol", 8) + update_icon() + +/obj/item/weapon/reagent_containers/hypospray/autoinjector/survival + name = "survival autoinjector" + desc = "A special cocktail designed to keep you alive in the field should disaster seek to prevail." + volume = 35 + amount_per_transfer_from_this = 35 + +/obj/item/weapon/reagent_containers/hypospray/autoinjector/survival/New() + ..() + reagents.add_reagent("tricordrazine", 15) + reagents.add_reagent("inaprovaline", 10) + reagents.add_reagent("oxycodone", 5) + reagents.add_reagent("methylphenidate", 5) + update_icon() + /obj/item/weapon/reagent_containers/hypospray/combat name = "combat hypospray" desc = "A hypospray loaded with combat stimulants." item_state = "combat_hypo" icon_state = "combat_hypo" volume = 20 - -/obj/item/weapon/reagent_containers/hypospray/combat/New() + +/obj/item/weapon/reagent_containers/hypospray/combat/New() ..() reagents.add_reagent("oxycodone", 5) reagents.add_reagent("synaptizine", 5) reagents.add_reagent("hyperzine", 5) reagents.add_reagent("arithrazine", 5) - + return diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index f5208bc45cd..f867ef6077f 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -318,7 +318,7 @@ other types of metals and chemistry for reagents). id = "plasmacutter" req_tech = list(TECH_MATERIAL = 4, TECH_PHORON = 3, TECH_ENGINEERING = 3) materials = list(DEFAULT_WALL_MATERIAL = 1500, "glass" = 500, "gold" = 500, "phoron" = 500) - build_path = /obj/item/weapon/pickaxe/plasmacutter + build_path = /obj/item/weapon/gun/energy/plasmacutter sort_string = "KAAAC" /datum/design/item/weapon/mining/pick_diamond diff --git a/code/modules/research/mechfab_designs.dm b/code/modules/research/mechfab_designs.dm index 16ceb35bfc9..0c06b172d65 100644 --- a/code/modules/research/mechfab_designs.dm +++ b/code/modules/research/mechfab_designs.dm @@ -695,7 +695,7 @@ id = "plasmacutter_module" req_tech = list(TECH_ENGINEERING = 4, TECH_MATERIAL = 3, TECH_PHORON = 4) materials = list("glass" = 5250, DEFAULT_WALL_MATERIAL = 30000, "silver" = 5250, "phoron" = 7250) - build_path = /obj/item/rig_module/device/plasmacutter + build_path = /obj/item/rig_module/mounted/plasmacutter /datum/design/hardsuitmodules/jet_module name = "hardsuit maneuvering jets" diff --git a/code/modules/research/xenoarchaeology/artifact/artifact.dm b/code/modules/research/xenoarchaeology/artifact/artifact.dm index e01088e1faa..ca1884b6156 100644 --- a/code/modules/research/xenoarchaeology/artifact/artifact.dm +++ b/code/modules/research/xenoarchaeology/artifact/artifact.dm @@ -107,12 +107,17 @@ /obj/structure/boulder/Bumped(AM) . = ..() + if(istype(AM,/mob/living/carbon/human)) var/mob/living/carbon/human/H = AM if((istype(H.l_hand,/obj/item/weapon/pickaxe)) && (!H.hand)) - attackby(H.l_hand,H) + var/obj/item/weapon/pickaxe/P = H.l_hand + if(P.autodrill) + attackby(H.l_hand,H) else if((istype(H.r_hand,/obj/item/weapon/pickaxe)) && H.hand) - attackby(H.r_hand,H) + var/obj/item/weapon/pickaxe/P = H.r_hand + if(P.autodrill) + attackby(H.r_hand,H) else if(istype(AM,/mob/living/silicon/robot)) var/mob/living/silicon/robot/R = AM diff --git a/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm b/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm index e8bedc09878..147fbf436a5 100644 --- a/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm +++ b/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm @@ -8,11 +8,17 @@ icon_state = "pick_brush" item_state = "syringe_0" digspeed = 20 + digspeed_unwielded = 20 + digspeed_wielded = 20 + force = 2.0 desc = "Thick metallic wires for clearing away dust and loose scree (1 centimetre excavation depth)." excavation_amount = 0.5 drill_sound = 'sound/weapons/thudswoosh.ogg' drill_verb = "brushing" w_class = 2 + can_wield = 0 + + action_button_name = null /obj/item/weapon/pickaxe/one_pick name = "1/6 pick" @@ -20,11 +26,17 @@ icon_state = "pick1" item_state = "syringe_0" digspeed = 20 + digspeed_unwielded = 20 + digspeed_wielded = 20 + force = 2.0 desc = "A miniature excavation tool for precise digging (2 centimetre excavation depth)." excavation_amount = 1 drill_sound = 'sound/items/Screwdriver.ogg' drill_verb = "delicately picking" w_class = 2 + can_wield = 0 + + action_button_name = null /obj/item/weapon/pickaxe/two_pick name = "1/3 pick" @@ -32,11 +44,17 @@ icon_state = "pick2" item_state = "syringe_0" digspeed = 20 + digspeed_unwielded = 20 + digspeed_wielded = 20 + force = 2.0 desc = "A miniature excavation tool for precise digging (4 centimetre excavation depth)." excavation_amount = 2 drill_sound = 'sound/items/Screwdriver.ogg' drill_verb = "delicately picking" w_class = 2 + can_wield = 0 + + action_button_name = null /obj/item/weapon/pickaxe/three_pick name = "1/2 pick" @@ -44,11 +62,17 @@ icon_state = "pick3" item_state = "syringe_0" digspeed = 20 + digspeed_unwielded = 20 + digspeed_wielded = 20 + force = 2.0 desc = "A miniature excavation tool for precise digging (6 centimetre excavation depth)." excavation_amount = 3 drill_sound = 'sound/items/Screwdriver.ogg' drill_verb = "delicately picking" w_class = 2 + can_wield = 0 + + action_button_name = null /obj/item/weapon/pickaxe/four_pick name = "2/3 pick" @@ -56,11 +80,17 @@ icon_state = "pick4" item_state = "syringe_0" digspeed = 20 + digspeed_unwielded = 20 + digspeed_wielded = 20 + force = 2.0 desc = "A miniature excavation tool for precise digging (8 centimetre excavation depth)." excavation_amount = 4 drill_sound = 'sound/items/Screwdriver.ogg' drill_verb = "delicately picking" w_class = 2 + can_wield = 0 + + action_button_name = null /obj/item/weapon/pickaxe/five_pick name = "5/6 pick" @@ -68,11 +98,17 @@ icon_state = "pick5" item_state = "syringe_0" digspeed = 20 + digspeed_unwielded = 20 + digspeed_wielded = 20 + force = 2.0 desc = "A miniature excavation tool for precise digging (10 centimetre excavation depth)." excavation_amount = 5 drill_sound = 'sound/items/Screwdriver.ogg' drill_verb = "delicately picking" w_class = 2 + can_wield = 0 + + action_button_name = null /obj/item/weapon/pickaxe/six_pick name = "1/1 pick" @@ -80,23 +116,35 @@ icon_state = "pick6" item_state = "syringe_0" digspeed = 20 + digspeed_unwielded = 20 + digspeed_wielded = 20 + force = 2.0 desc = "A miniature excavation tool for precise digging (12 centimetre excavation depth)." excavation_amount = 6 drill_sound = 'sound/items/Screwdriver.ogg' drill_verb = "delicately picking" w_class = 2 + can_wield = 0 + + action_button_name = null /obj/item/weapon/pickaxe/hand name = "hand pickaxe" icon = 'icons/obj/xenoarchaeology.dmi' icon_state = "pick_hand" item_state = "syringe_0" - digspeed = 30 + digspeed = 20 + digspeed_unwielded = 20 + digspeed_wielded = 20 + force = 10.0 desc = "A smaller, more precise version of the pickaxe (30 centimetre excavation depth)." excavation_amount = 15 drill_sound = 'sound/items/Crowbar.ogg' drill_verb = "clearing" w_class = 3 + can_wield = 0 + + action_button_name = null //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Pack for holding pickaxes diff --git a/code/modules/surgery/other.dm b/code/modules/surgery/other.dm index 2d66fa43b33..ae0587fdee9 100644 --- a/code/modules/surgery/other.dm +++ b/code/modules/surgery/other.dm @@ -55,7 +55,7 @@ /datum/surgery_step/fix_dead_tissue //Debridement priority = 2 allowed_tools = list( - /obj/item/weapon/scalpel = 100, + /obj/item/weapon/scalpel = 100, /obj/item/weapon/material/knife = 75, /obj/item/weapon/material/shard = 50 ) @@ -173,7 +173,7 @@ allowed_tools = list( /obj/item/weapon/weldingtool = 80, /obj/item/weapon/circular_saw = 60, - /obj/item/weapon/pickaxe/plasmacutter = 100 + /obj/item/weapon/gun/energy/plasmacutter = 100 ) can_infect = 0 diff --git a/code/modules/surgery/robotics.dm b/code/modules/surgery/robotics.dm index 34d34a380ca..31caab1822e 100644 --- a/code/modules/surgery/robotics.dm +++ b/code/modules/surgery/robotics.dm @@ -121,7 +121,7 @@ /datum/surgery_step/robotics/repair_brute allowed_tools = list( /obj/item/weapon/weldingtool = 100, - /obj/item/weapon/pickaxe/plasmacutter = 50 + /obj/item/weapon/gun/energy/plasmacutter = 50 ) min_duration = 50 diff --git a/code/modules/vehicles/cargo_train.dm b/code/modules/vehicles/cargo_train.dm index 0c5987c3f36..3578098f7d4 100644 --- a/code/modules/vehicles/cargo_train.dm +++ b/code/modules/vehicles/cargo_train.dm @@ -42,7 +42,7 @@ ..() cell = new /obj/item/weapon/cell/high(src) key = new(src) - var/image/I = new(icon = 'icons/obj/vehicles.dmi', icon_state = "cargo_engine_overlay", layer = src.layer + 0.2) //over mobs + var/image/I = new(icon = icon, icon_state = "[icon_state]_overlay", layer = src.layer + 0.2) //over mobs overlays += I turn_off() //so engine verbs are correctly set diff --git a/icons/effects/96x96.dmi b/icons/effects/96x96.dmi index 521aea66d40..894ad6365a9 100644 Binary files a/icons/effects/96x96.dmi and b/icons/effects/96x96.dmi differ diff --git a/icons/effects/projectiles.dmi b/icons/effects/projectiles.dmi index 10d8f489ade..83ee8e92bd9 100644 Binary files a/icons/effects/projectiles.dmi and b/icons/effects/projectiles.dmi differ diff --git a/icons/mob/belt.dmi b/icons/mob/belt.dmi index ecb15c81417..188266bc48d 100644 Binary files a/icons/mob/belt.dmi and b/icons/mob/belt.dmi differ diff --git a/icons/mob/held_mobs.dmi b/icons/mob/held_mobs.dmi index c25c4b7c68e..6dcd071c52b 100644 Binary files a/icons/mob/held_mobs.dmi and b/icons/mob/held_mobs.dmi differ diff --git a/icons/mob/items/lefthand.dmi b/icons/mob/items/lefthand.dmi index bbbe3e86e39..523f03086ce 100644 Binary files a/icons/mob/items/lefthand.dmi and b/icons/mob/items/lefthand.dmi differ diff --git a/icons/mob/items/righthand.dmi b/icons/mob/items/righthand.dmi index 28aa9c74a2e..e77b65917b8 100644 Binary files a/icons/mob/items/righthand.dmi and b/icons/mob/items/righthand.dmi differ diff --git a/icons/mob/robots.dmi b/icons/mob/robots.dmi index 1815c4b15ad..10b053ee228 100644 Binary files a/icons/mob/robots.dmi and b/icons/mob/robots.dmi differ diff --git a/icons/obj/cart.dmi b/icons/obj/cart.dmi new file mode 100644 index 00000000000..b2d219592a2 Binary files /dev/null and b/icons/obj/cart.dmi differ diff --git a/icons/obj/clothing/belts.dmi b/icons/obj/clothing/belts.dmi index bb53ac22ffb..5c5f54f644b 100644 Binary files a/icons/obj/clothing/belts.dmi and b/icons/obj/clothing/belts.dmi differ diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index 77e08f2b402..fd0618fd340 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ diff --git a/icons/obj/machines/floor_light.dmi b/icons/obj/machines/floor_light.dmi index c2386492806..bcdb8413045 100644 Binary files a/icons/obj/machines/floor_light.dmi and b/icons/obj/machines/floor_light.dmi differ diff --git a/icons/obj/machines/mining_machines.dmi b/icons/obj/machines/mining_machines.dmi index af660e2475e..51b639afe02 100644 Binary files a/icons/obj/machines/mining_machines.dmi and b/icons/obj/machines/mining_machines.dmi differ diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi index 213946eb68b..6817043e1ae 100644 Binary files a/icons/obj/mining.dmi and b/icons/obj/mining.dmi differ diff --git a/icons/obj/mining_contained.dmi b/icons/obj/mining_contained.dmi new file mode 100644 index 00000000000..26531af6000 Binary files /dev/null and b/icons/obj/mining_contained.dmi differ diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi index dc1fa69de3e..d33b682de2f 100644 Binary files a/icons/obj/projectiles.dmi and b/icons/obj/projectiles.dmi differ diff --git a/icons/obj/smoothtrack.dmi b/icons/obj/smoothtrack.dmi new file mode 100644 index 00000000000..f238330684a Binary files /dev/null and b/icons/obj/smoothtrack.dmi differ diff --git a/icons/obj/stairs.dmi b/icons/obj/stairs.dmi index d29408d8808..73aedef1472 100644 Binary files a/icons/obj/stairs.dmi and b/icons/obj/stairs.dmi differ diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 6b22cffe5ee..3c10bf00818 100644 Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ diff --git a/icons/obj/vehicles.dmi b/icons/obj/vehicles.dmi index e70275591fc..cbb58bb9fb7 100644 Binary files a/icons/obj/vehicles.dmi and b/icons/obj/vehicles.dmi differ diff --git a/icons/turf/walls.dmi b/icons/turf/walls.dmi index 24ff726d2f4..1bfa504b035 100644 Binary files a/icons/turf/walls.dmi and b/icons/turf/walls.dmi differ diff --git a/maps/Aurora-MapDev/aurora-0.dmm b/maps/Aurora-MapDev/aurora-0.dmm index c2b9ab83a41..fb365a95906 100644 --- a/maps/Aurora-MapDev/aurora-0.dmm +++ b/maps/Aurora-MapDev/aurora-0.dmm @@ -791,7 +791,7 @@ "pk" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space,/area/space) "pl" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/sniperrifle,/obj/item/weapon/gun/energy/rifle/pulse,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/administration/centcom) "pm" = (/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/administration/centcom) -"pn" = (/obj/structure/closet/secure_closet/guncabinet{name = "Heavy Asset Protection"; req_access = list(103)},/obj/item/rig_module/mounted,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/shoes/magboots,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/storage/belt/security/tactical,/obj/item/weapon/handcuffs,/obj/item/weapon/handcuffs,/obj/item/weapon/pinpointer/advpinpointer,/obj/item/rig_module/device/plasmacutter,/obj/item/weapon/rig/ert/assetprotection,/obj/item/device/radio/headset/ert,/obj/item/clothing/under/syndicate/combat,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/administration/centcom) +"pn" = (/obj/structure/closet/secure_closet/guncabinet{name = "Heavy Asset Protection"; req_access = list(103)},/obj/item/rig_module/mounted,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/shoes/magboots,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/storage/belt/security/tactical,/obj/item/weapon/handcuffs,/obj/item/weapon/handcuffs,/obj/item/weapon/pinpointer/advpinpointer,/obj/item/rig_module/mounted/plasmacutter,/obj/item/weapon/rig/ert/assetprotection,/obj/item/device/radio/headset/ert,/obj/item/clothing/under/syndicate/combat,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/administration/centcom) "po" = (/obj/machinery/door/airlock/centcom{name = "To: NMSS Odin Hab Complex"},/turf/unsimulated/floor,/area/centcom/living) "pp" = (/obj/machinery/door/airlock/centcom{name = "To: Departures Deck"},/turf/unsimulated/floor,/area/centcom/living) "pq" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/ionrifle,/obj/item/weapon/gun/energy/rifle/pulse,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/administration/centcom) @@ -1139,7 +1139,7 @@ "vU" = (/obj/effect/overlay/palmtree_r,/turf/unsimulated/beach/sand,/area/beach) "vV" = (/obj/mecha/working/hoverpod,/turf/unsimulated/floor{icon_state = "delivery"; dir = 6},/area/centcom/specops) "vW" = (/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) -"vX" = (/obj/structure/table/rack,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/maneuvering_jets,/obj/item/rig_module/maneuvering_jets,/obj/item/rig_module/grenade_launcher,/obj/item/rig_module/device/drill,/obj/item/rig_module/device/drill,/obj/item/rig_module/device/healthscanner,/obj/item/rig_module/device/healthscanner,/obj/item/rig_module/device/plasmacutter,/obj/item/rig_module/device/plasmacutter,/obj/item/rig_module/device/rcd,/obj/item/rig_module/device/rcd,/obj/item/rig_module/chem_dispenser/injector,/obj/item/rig_module/chem_dispenser/injector,/obj/item/rig_module/chem_dispenser/combat,/obj/item/rig_module/chem_dispenser/combat,/obj/item/rig_module/mounted/egun,/obj/item/rig_module/mounted/egun,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"vX" = (/obj/structure/table/rack,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/maneuvering_jets,/obj/item/rig_module/maneuvering_jets,/obj/item/rig_module/grenade_launcher,/obj/item/rig_module/device/drill,/obj/item/rig_module/device/drill,/obj/item/rig_module/device/healthscanner,/obj/item/rig_module/device/healthscanner,/obj/item/rig_module/mounted/plasmacutter,/obj/item/rig_module/mounted/plasmacutter,/obj/item/rig_module/device/rcd,/obj/item/rig_module/device/rcd,/obj/item/rig_module/chem_dispenser/injector,/obj/item/rig_module/chem_dispenser/injector,/obj/item/rig_module/chem_dispenser/combat,/obj/item/rig_module/chem_dispenser/combat,/obj/item/rig_module/mounted/egun,/obj/item/rig_module/mounted/egun,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "vY" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/pistol,/obj/item/weapon/gun/projectile/automatic/rifle/w556,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) "vZ" = (/obj/machinery/door/airlock/centcom{name = "Armory Special Operations"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) "wa" = (/obj/machinery/door/airlock/centcom{name = "Engineering Special Operations"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) @@ -2033,9 +2033,9 @@ "Ne" = (/obj/machinery/cryopod,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/spawning) "Nf" = (/obj/structure/cryofeed,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/spawning) "Ng" = (/obj/machinery/door/airlock/centcom{name = "Security Checkpoint"; opacity = 1; req_access = list(109)},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/spawning) -"Nh" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced/crescent{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/obj/structure/window/reinforced/crescent{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/turf/unsimulated/floor{tag = "icon-blue (NORTHWEST)"; icon_state = "blue"; dir = 9},/area/centcom/spawning) -"Ni" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced/crescent{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/turf/unsimulated/floor{tag = "icon-blue (NORTH)"; icon_state = "blue"; dir = 1},/area/centcom/spawning) -"Nj" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced/crescent{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/structure/window/reinforced/crescent{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/turf/unsimulated/floor{tag = "icon-blue (NORTHEAST)"; icon_state = "blue"; dir = 5},/area/centcom/spawning) +"Nh" = (/obj/machinery/door/blast/regular/open{id = "odinaslockdown"},/turf/unsimulated/floor{tag = "icon-blue (NORTHEAST)"; icon_state = "blue"; dir = 5},/area/centcom/spawning) +"Ni" = (/obj/machinery/door/blast/regular/open{id = "odinaslockdown"},/turf/unsimulated/floor{tag = "icon-blue (NORTHWEST)"; icon_state = "blue"; dir = 9},/area/centcom/spawning) +"Nj" = (/obj/machinery/door/blast/regular/open{id = "odinaslockdown"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/spawning) "Nk" = (/obj/machinery/door/airlock/centcom{name = "Unisex Restroom"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/spawning) "Nl" = (/turf/unsimulated/wall/fakeglass,/area/wizard_station) "Nm" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/backpack/satchel/withwallet,/turf/unsimulated/floor{dir = 9; icon_state = "carpetside"},/area/wizard_station) @@ -2052,7 +2052,7 @@ "Nx" = (/turf/unsimulated/floor{tag = "icon-red (SOUTHEAST)"; icon_state = "red"; dir = 6},/area/centcom/holding) "Ny" = (/turf/unsimulated/floor{tag = "icon-red (NORTHWEST)"; icon_state = "red"; dir = 9},/area/centcom/spawning) "Nz" = (/turf/unsimulated/floor{tag = "icon-red (NORTHEAST)"; icon_state = "red"; dir = 5},/area/centcom/spawning) -"NA" = (/obj/structure/bed/chair/office/dark{dir = 1},/turf/unsimulated/floor{tag = "icon-blue (EAST)"; icon_state = "blue"; dir = 4},/area/centcom/spawning) +"NA" = (/obj/machinery/door/blast/regular/open{id = "odinaslockdown"},/turf/unsimulated/floor{tag = "icon-blue (SOUTHEAST)"; icon_state = "blue"; dir = 6},/area/centcom/spawning) "NB" = (/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -12; pixel_y = 5},/obj/structure/mirror{dir = 4; pixel_x = -32; pixel_y = 0},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/spawning) "NC" = (/obj/machinery/status_display/arrivals_display{pixel_y = 32},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/spawning) "ND" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = 0; pixel_y = 0},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/spawning) @@ -2064,9 +2064,9 @@ "NJ" = (/obj/structure/table/standard,/obj/item/weapon/cautery,/obj/item/weapon/retractor,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/syringe,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/skipjack_station/start) "NK" = (/turf/unsimulated/floor{icon_state = "green"; dir = 9},/area/centcom/holding) "NL" = (/turf/unsimulated/floor{icon_state = "green"; dir = 5},/area/centcom/holding) -"NM" = (/turf/unsimulated/floor{dir = 8; icon_state = "red"},/area/centcom/spawning) +"NM" = (/obj/machinery/door/blast/regular/open{id = "odinaslockdown"},/turf/unsimulated/floor{tag = "icon-blue (SOUTHWEST)"; icon_state = "blue"; dir = 10},/area/centcom/spawning) "NN" = (/obj/item/modular_computer/console/preset/command,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/spawning) -"NO" = (/obj/machinery/computer/secure_data,/turf/unsimulated/floor{tag = "icon-blue (EAST)"; icon_state = "blue"; dir = 4},/area/centcom/spawning) +"NO" = (/obj/structure/flora/pottedplant/random,/turf/unsimulated/floor{tag = "icon-blue (SOUTHWEST)"; icon_state = "blue"; dir = 10},/area/centcom/spawning) "NP" = (/obj/machinery/suit_cycler/wizard,/turf/unsimulated/floor{dir = 10; icon_state = "carpetside"},/area/wizard_station) "NQ" = (/turf/unsimulated/floor{dir = 2; icon_state = "carpetside"},/area/wizard_station) "NR" = (/obj/structure/table/woodentable,/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/obj/item/weapon/reagent_containers/food/drinks/flask/barflask,/turf/unsimulated/floor{dir = 6; icon_state = "carpetside"},/area/wizard_station) @@ -2245,7 +2245,18 @@ "Ri" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "Rj" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/electrical,/turf/unsimulated/floor{icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "Rk" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/mechanical,/turf/unsimulated/floor{icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) - +"Rl" = (/obj/structure/flora/pottedplant/random,/turf/unsimulated/floor{tag = "icon-blue (SOUTHEAST)"; icon_state = "blue"; dir = 6},/area/centcom/spawning) +"Rm" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced/crescent{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/obj/structure/window/reinforced/crescent{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "odinasshutters"; name = "Blast Shutters"; opacity = 0},/turf/unsimulated/floor{tag = "icon-blue (NORTHWEST)"; icon_state = "blue"; dir = 9},/area/centcom/spawning) +"Rn" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced/crescent{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/structure/window/reinforced/crescent{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "odinasshutters"; name = "Blast Shutters"; opacity = 0},/turf/unsimulated/floor{tag = "icon-blue (NORTHEAST)"; icon_state = "blue"; dir = 5},/area/centcom/spawning) +"Ro" = (/obj/structure/table/reinforced,/obj/machinery/door/window/brigdoor/northright{req_access = list(109)},/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "odinasshutters"; name = "Blast Shutters"; opacity = 0},/turf/unsimulated/floor{tag = "icon-blue (NORTH)"; icon_state = "blue"; dir = 1},/area/centcom/spawning) +"Rp" = (/obj/structure/bed/chair/office/dark{dir = 1},/turf/unsimulated/floor{tag = "icon-bluecorner (EAST)"; icon_state = "bluecorner"; dir = 4},/area/centcom/spawning) +"Rq" = (/obj/machinery/button/remote/blast_door{id = "odinaslockdown"; name = "Arrivals Lockdown"; pixel_x = 8; pixel_y = 28; req_access = list(109)},/obj/machinery/button/remote/blast_door{id = "odinasshutters"; name = "Security Shutters"; pixel_x = -8; pixel_y = 28},/turf/unsimulated/floor{tag = "icon-blue (NORTHEAST)"; icon_state = "blue"; dir = 5},/area/centcom/spawning) +"Rr" = (/turf/unsimulated/floor{tag = "icon-red (NORTH)"; icon_state = "red"; dir = 1},/area/centcom/spawning) +"Rs" = (/obj/machinery/computer/secure_data,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/spawning) +"Rt" = (/obj/structure/filingcabinet,/turf/unsimulated/floor{tag = "icon-blue (EAST)"; icon_state = "blue"; dir = 4},/area/centcom/spawning) +"Ru" = (/turf/unsimulated/floor{icon_state = "red"; dir = 2},/area/centcom/spawning) +"Rv" = (/obj/machinery/door/airlock/centcom{name = "The Big Empty"; opacity = 1; req_access = list(109)},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/spawning) + (1,1,1) = {" aaabacadaeafagahaaaiajakalamanaoagafajacadahakaeamaiaoalahajapaqarasatauavawaxayazaAaBaCaDaEaFaGaHaIaJaKaLaxayazaAaBaCaDaEaFaGaMaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaOaOaOaOaOaOaOaOaOaOaOaOaOaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaPaQaRaRaRaRaRaRaRaRaRaRaQaRaRaRaRaRaRaRaRaRaRaQaRaRaRaRaRaRaRaRaRaRaQaRaRaRaRaRaRaRaRaRaRaQaRaRaRaRaRaRaRaRaRaRaQaRaRaRaRaRaRaRaRaRaRaQaRaRaRaRaRaRaRaRaRaRaQ ajaSaTaUaVaWaXaYaZbabbbcbdbebfbgaXaWbbaTaUaYbcaVbebabgbdaYbbabauavawbhbibjbkaBblbmbnaqarasatauavawbhbibjbkboblbmbnaqarasatauaKaMaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaObpbqaObpbraObsbtaObpbqaOaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbubvbwbwbwbxbwbwbwbwbwbwbybzbAbzbAbzbzbAbzbAbzbybBbCbCbCbCbCbCbCbCbCbybDbEbFbFbFbFbFbFbFbFbybGbGbGbGbGbGbGbGbGbGbybGbGbGbGbGbGbGbGbGbGbybHbIbJbKbLbLbLbLbLbMbN @@ -2458,21 +2469,21 @@ aNhvaQjVjVjVjVjVjVjVjVaNaNaNaNaNIMJgJhIOaNaNaNaNaNaNaNaNaNaNaNaNaNIMJgJhIOaNaNaN aNhvaQjVjVjVjVjVjVjVjVaNaNaNaNaNJIININJJaNaNaNJIaNaNaNaNaNJJaNaNaNJIININJJaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGIQISJKJLJMJMyEJNISIQzuzdyEzezuIQISITyTyEyEyEyEyEzIyGaNaNaNaNEZJOJPJQEZJlJRJSJTJpEZGOGPGPJGGPJGGPJUGPJGGPJGGPGPGPGPEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNhvaQjVjVjVjVjVaNaNaNaNaNaNaNaNJVJWJXJVaNaNaNJVJYJZJZJZKaJVaNaNaNJVKbKcJVaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGIQISJKyTKdKdzeJNISIQzuzdyEzezuIQISITKeKfKfKfKfKfKgyGaNaNaNaNEZEZKhEZEZKiKjKjKjKkEZJGJGJGJGJHJGJGJGJGJGJHJGJGJGJGEZEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNhvaQjVjVjVjVjVaNaNaNaNaNaNaNaNJVKlKmJVaNaNJIJVJVKnKoKpKqJVJJaNaNJVKrKsJVaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGIQISJKyTKdKdzeJNISIQzuzdyEzezuIQISITKtKuKuKuKuKuKvyGaNaNaNaNEZKwKxKyEZEZEZEZEZEZEZKzKAKxKxKxKxKxKxKxKxKxKxKxKBKzEZEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNhvaQjVjVjVjVjVaNaNaNaNaNaNaNaNJVKCKDJVaNaNJVJVKEKFKGKFKHJVJVaNaNJVKIKJJVaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGIQISJKyEDQDQDRJNISIQzuzdyEzezuIQISITzdyEyEyEyEyEzeyGEZJGJGJGEZKKFtKLKBKMKAKxKBKMKAKxKNFtFtFtFtFtFtFtFtFtFtFtKLKxKyEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaUbabeaSbcbdaXaSbgaWbfaVaZbgbabdbcaYbebfaVaZbgbaaUbfaVbbaUaNaNaNaNaNaN -aNhvaQjVjVjVjVjVaNaNaNaNaNaNaNaNJVKOJVJVJVJVJVKPKQKQKQKQKQKRJVJVJVJVJVKSJVaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGIQIQIQKTKTKTKUIQIQIQzuyVyEyWzuIQIQKVzdyEyEyEyEyEzeyGKWKXKxKBJGKKFtFtFtKMFtKYFtKMFtFtFtFtFtFtFtFtFtFtFtFtFtFtFtFtHHEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbdaWaUaVaZbgaTaVaSbfaXbcaWbeaZbaaUaVaTbcaYbbaSaWbdbcaYbebdaNaNaNaNaNaN -aNhvaQjVjVjVjVjVaNaNaNaNaNaNaNaNJVKZLaLbLcLdJVLeKQKQKQKQKQKRJVLfLgLhLiLjJVaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGIQIQIQISISISIQIQIQIQJiJjyEJkJiIQISITzdyEyEyEyEyEzeyGLkLlFtHHKMKKFtFtFtKMLmLnLoKMFtFtFtFtLpLpLqLpLpLpLqLpLpFtFtFtHHEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbgbfbdaYbbaSbaaYaVbcaTaZbfaUbbaWbdaYbaaZaXbeaVbfbgaZaXaUbgaNaNaNaNaNaN +aNhvaQjVjVjVjVjVaNaNaNaNaNaNaNaNJVKCKDJVaNaNJVJVKEKFKGKFKHJVJVaNaNJVKIKJJVaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGIQISJKyEDQDQDRJNISIQzuzdyEzezuIQISITzdyEyEyEyEyEzeyGEZJGJGJGEZKKFtKLNhKMKAKxKBKMNiKxKNFtFtFtFtFtFtFtFtFtFtFtKLKxKyEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaUbabeaSbcbdaXaSbgaWbfaVaZbgbabdbcaYbebfaVaZbgbaaUbfaVbbaUaNaNaNaNaNaN +aNhvaQjVjVjVjVjVaNaNaNaNaNaNaNaNJVKOJVJVJVJVJVKPKQKQKQKQKQKRJVJVJVJVJVKSJVaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGIQIQIQKTKTKTKUIQIQIQzuyVyEyWzuIQIQKVzdyEyEyEyEyEzeyGKWKXKxKBJGKKFtFtNjKMFtKYFtKMNjFtFtFtFtFtFtFtFtFtFtFtFtFtFtFtHHEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbdaWaUaVaZbgaTaVaSbfaXbcaWbeaZbaaUaVaTbcaYbbaSaWbdbcaYbebdaNaNaNaNaNaN +aNhvaQjVjVjVjVjVaNaNaNaNaNaNaNaNJVKZLaLbLcLdJVLeKQKQKQKQKQKRJVLfLgLhLiLjJVaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGIQIQIQISISISIQIQIQIQJiJjyEJkJiIQISITzdyEyEyEyEyEzeyGLkLlFtHHKMKKFtFtNjKMLmLnLoKMNjFtFtFtLpLpLqLpLpLpLqLpLpFtFtFtHHEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbgbfbdaYbbaSbaaYaVbcaTaZbfaUbbaWbdaYbaaZaXbeaVbfbgaZaXaUbgaNaNaNaNaNaN aNhvaQjVjVaNaNaNaNaNaNaNaNaNaNaNJVLrLsLsLsLtJVLuLvLwLxLuLvLwJVLyLsLsLzLrJVaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGIQIQIQIQIQIQIQIQLALAyGDcyEICyGIRISITLBLCLCLCLCLCLDyGLEKXFtHHKMKKFtKzLFJGJGJGJGJGLGFtFtLHLILJEZLKLLLMEZLNLOLPFtFtHHEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaSbcbgacadaeafagahaaaiajakalamanaoagafajacadahakaeamaTbdaSaNaNaNaNaNaN -aNhvaQjVjVaNaNaNaNaNaNaNaNaNaNaNLQLrLsLsLsLsLxKQKQKQKQKQKQKQLxLsLsLRLsLrLQaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGyGyGyGyGyGyGyGyGyGyGyGzdBczeyGyGyGyGyGyGyGyGyGyGyGyGLSLTFtHHKMKKFtFtFtKMKAKxKBKMFtFtFtFtLULULVLULULULVLULUFtFtFtHHEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaVaZaSaiaUaVaWaXaYaZbabbbcbdbebfbgaXaWbbaTaUaYbcaVadbabgaVaNaNaNaNaNaN -aNhvaQjVjVjVaNaNaNaNaNaNaNaNaNaNLWLXLsLYLsLsJVLZMaKQKQKQMbMcJVLsMdLsMeLrLWaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGMfMgMhMiMjzuIQIQIQIQyGyVyEyWyGIRISITJLJMJLMkMlJMMlyGMmKXLnLoJGKKFtFtFtKMFtKYFtKMFtFtFtFtFtFtFtFtFtFtFtFtFtFtFtFtHHEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaYbbaVafbdaYbfaTaXbbaWbeaZbgaUbcaSaTbfbebabdaXaZaYalaWaSaYaNaNaNaNaNaN -aNhvaQjVjVjVaNaNaNaNaNaNaNaNaNaNMnLXLsLsJVMoJVJVJVMpMqMrJVJVJVMoJVMsMtMuMnaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGMjMjMjMjMjMvIQIQIQIQJiJjyEJkJiIQISITyTyEyTyEzIyEzIyGEZJGJGJGEZKKFtMwLoKMLmLnLoKMLmLnMxFtFtFtFtFtFtFtFtFtFtFtMwLnMyEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaXbeaYanbgaXbcbaaTbebfdfcTcBelczfNfSbcaUaWbgaTbbaXaobfaVaXaNaNaNaNaNaN -aNhvaQjVjVjVaNaNaNaNaNaNaNaNaNJIJVMzMAMBJVMCMDMCLQMEMFMGLQMHMIMJJVMKMLMMJVJJaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGMjMjMNMjKdzuIQIQIQJxzuDcyEICzuJyIQJzyTyEJMJMJMyEzIyGaNaNaNaNEZLmLnLoEZEZEZMOEZEZEZKzLmLnLnMPLnLnLnLnLnLnLnLnLoKzEZEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaTaUaXakaSaTaZaWbaaUbcelMQMRMRMRMSeEaZbdbfaSbabeaTabbcaYaTaNaNaNaNaNaN -aNhvaQjVjVjVaNaNaNaNjVjVaNaNaNMTJVMUMUJVJVMCMCMCLWMEMqMGLWMJMJMVJVJVMUMUJVMWaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGzuMXMYMZNayGIQIQIQIQzuzdyEzezuIQISITyTyEyEyEyEyEzIyGaNaNaNaNEZEZEZEZEZNbNcNdNeNfEZEZEZEZEZEZNgNhNiNjEZEZNkEZEZEZEZEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbabdaTaaaVbabbbfaWbdaZeFNlNmNnNoNldebbbgbcaVaWaUbaaeaZaXbaaNaNaNaNaNaN -aNhvaQjVjVjVaNaNaNaNjVjVaNaNaNaNMTNpNpMWJVNqNrMCMnNsKQNsMnMJMJNtJVMTNpNpMWaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGMjMNMjKdMjzuISISIQIQzuzdyEzezuIQISITNuNvNvNwNvNvNxyGaNaNaNaNaNaNaNaNEZNbNcNdNeNfEZaNEZNyNzEZKAKNFtNAEZNBNdNCNDEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaWbgbaajaYaWbebcbfbgbbcBNENFNGNHNEeXbeaSaZaYbfbdaWahbbaTaWaNaNaNaNaNaN -aNhvaQjVjVjVaNaNaNaNjVjVaNaNaNaNaNaNaNaNJVMCMCMCJVJVLxJVJVNIMJNJJVaNaNaNaNaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGMjMNMjKdMjzuISISIQIQzuzdyEzezuIQISITNKFMFMFMFMFMNLyGaNaNaNaNaNaNaNaNEZNbNcNdNeNfEZaNEZNMJAEZKKFtNNNOEZNBNdNdNDEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbfaSaWamaXbfaUaZbcaScCfNNENPNQNRNEczdfaVbbaXbcbgbfagbebabfaNaNaNaNaNaN -aNhvaQjVjVjVaNaNaNaNaNaNaNaNaNaNaNaNaNaNJVMCMCNSJVKQKQKQJVMJMJNTJVaNaNaNaNaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGMjMNMjKdMjzuISISIQIQzuzdyEzezuIQISITzdyEyEyEyEyEzeyGaNaNaNaNaNaNaNaNEZEZEZEZEZEZEZaNEZNUNVNWKKFtFtNXEZEZNdEZEZEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbcaVbfadaTbcbdbbaZaVdfNENENENYNENENEelaYbeaTaZaSbcacaUaWbcaNaNaNaNaNaN -aNhvaQjVjVjVjVaNaNaNaNaNaNaNaNaNaNaNaNaNJVJVNZMCJVKEKQKHJVOaObJVJVaNaNaNaNaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGMjMNMjKdMjzuISISIQIQzuyVyEyWzuIQIQKVzdyEDQDQDQyEzeyGaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEZEZOcEZOdOeLnLoEZOfNdOgOhEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaZaYbcalbaaZbgbebbaYfPOiOjOkOkOkOlOideaXaUbabbaVaZaibdbfaZaNaNaNaNaNaN -aNhvaQjVjVjVjVjVaNaNaNaNaNaNaNaNaNaNaNaNMTJVJVJVJVOmOmOmJVJVJVJVMWaNaNaNaNaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGMjMNMjKdMjzuISISIQIQJiJjyEJkJiIQISITzdyEzdyEzeyEzeyGaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEZOnEZEZEZEZEZEZEZEZEZEZEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbbaXaZaoaWbbaSaUbeaXfROoOpOkOkOkOqOoeXaTbdaWbeaYbbafbgbcbbaNaNaNaNaNaN -aNhvaQjVjVjVjVjVaNaNaNaNjVjVaNaNaNaNaNaNaNaNMTJVMUMUMUMUMUJVMWaNaNaNaNaNaNaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGMjOrMjOsMjzuIQIQIQIRyGDcyEICyGIQISITzQDQzQOtDRDQDRyGaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEZEZEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbeaTbbabbfbeaVbdaUaTfSOoOuOkOkOkOvOoczbabgbfaUaXbeanaSaZbeaNaNaNaNaNaN +aNhvaQjVjVaNaNaNaNaNaNaNaNaNaNaNLQLrLsLsLsLsLxKQKQKQKQKQKQKQLxLsLsLRLsLrLQaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGyGyGyGyGyGyGyGyGyGyGyGzdBczeyGyGyGyGyGyGyGyGyGyGyGyGLSLTFtHHKMKKFtFtNjKMKAKxKBKMNjFtFtFtLULULVLULULULVLULUFtFtFtHHEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaVaZaSaiaUaVaWaXaYaZbabbbcbdbebfbgaXaWbbaTaUaYbcaVadbabgaVaNaNaNaNaNaN +aNhvaQjVjVjVaNaNaNaNaNaNaNaNaNaNLWLXLsLYLsLsJVLZMaKQKQKQMbMcJVLsMdLsMeLrLWaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGMfMgMhMiMjzuIQIQIQIQyGyVyEyWyGIRISITJLJMJLMkMlJMMlyGMmKXLnLoJGKKFtFtNjKMFtKYFtKMNjFtFtFtFtFtFtFtFtFtFtFtFtFtFtFtHHEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaYbbaVafbdaYbfaTaXbbaWbeaZbgaUbcaSaTbfbebabdaXaZaYalaWaSaYaNaNaNaNaNaN +aNhvaQjVjVjVaNaNaNaNaNaNaNaNaNaNMnLXLsLsJVMoJVJVJVMpMqMrJVJVJVMoJVMsMtMuMnaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGMjMjMjMjMjMvIQIQIQIQJiJjyEJkJiIQISITyTyEyTyEzIyEzIyGEZJGJGJGEZKKFtMwNAKMLmLnLoKMNMLnMxFtFtFtFtFtFtFtFtFtFtFtMwLnMyEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaXbeaYanbgaXbcbaaTbebfdfcTcBelczfNfSbcaUaWbgaTbbaXaobfaVaXaNaNaNaNaNaN +aNhvaQjVjVjVaNaNaNaNaNaNaNaNaNJIJVMzMAMBJVMCMDMCLQMEMFMGLQMHMIMJJVMKMLMMJVJJaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGMjMjMNMjKdzuIQIQIQJxzuDcyEICzuJyIQJzyTyEJMJMJMyEzIyGaNaNaNaNEZNOLnRlEZEZRmRoRnEZEZKzLmLnLnMPLnLnLnLnLnLnLnLnLoKzEZEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaTaUaXakaSaTaZaWbaaUbcelMQMRMRMRMSeEaZbdbfaSbabeaTabbcaYaTaNaNaNaNaNaN +aNhvaQjVjVjVaNaNaNaNjVjVaNaNaNMTJVMUMUJVJVMCMCMCLWMEMqMGLWMJMJMVJVJVMUMUJVMWaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGzuMXMYMZNayGIQIQIQIQzuzdyEzezuIQISITyTyEyEyEyEyEzIyGaNaNaNaNEZEZNgEZEZKAKNFtRpRqEZEZEZEZEZEZMOEZEZEZEZEZNkEZEZEZEZEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbabdaTaaaVbabbbfaWbdaZeFNlNmNnNoNldebbbgbcaVaWaUbaaeaZaXbaaNaNaNaNaNaN +aNhvaQjVjVjVaNaNaNaNjVjVaNaNaNaNMTNpNpMWJVNqNrMCMnNsKQNsMnMJMJNtJVMTNpNpMWaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGMjMNMjKdMjzuISISIQIQzuzdyEzezuIQISITNuNvNvNwNvNvNxyGaNaNaNaNEZNyRrNzEZKKFtNNRsRtEZaNaNEZNbNcNdNeNfEZEZNBNdNCNDEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaWbgbaajaYaWbebcbfbgbbcBNENFNGNHNEeXbeaSaZaYbfbdaWahbbaTaWaNaNaNaNaNaN +aNhvaQjVjVjVaNaNaNaNjVjVaNaNaNaNaNaNaNaNJVMCMCMCJVJVLxJVJVNIMJNJJVaNaNaNaNaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGMjMNMjKdMjzuISISIQIQzuzdyEzezuIQISITNKFMFMFMFMFMNLyGaNaNaNaNEZNURuNVNWKKFtFtFtNXEZaNaNEZNbNcNdNeNfEZEZNBNdNdNDEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbfaSaWamaXbfaUaZbcaScCfNNENPNQNRNEczdfaVbbaXbcbgbfagbebabfaNaNaNaNaNaN +aNhvaQjVjVjVaNaNaNaNaNaNaNaNaNaNaNaNaNaNJVMCMCNSJVKQKQKQJVMJMJNTJVaNaNaNaNaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGMjMNMjKdMjzuISISIQIQzuzdyEzezuIQISITzdyEyEyEyEyEzeyGaNaNaNaNEZOcOcOcEZOdOeLnLnLoEZaNaNEZNbNcNdNeNfEZEZEZNdEZEZEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbcaVbfadaTbcbdbbaZaVdfNENENENYNENENEelaYbeaTaZaSbcacaUaWbcaNaNaNaNaNaN +aNhvaQjVjVjVjVaNaNaNaNaNaNaNaNaNaNaNaNaNJVJVNZMCJVKEKQKHJVOaObJVJVaNaNaNaNaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGMjMNMjKdMjzuISISIQIQzuyVyEyWzuIQIQKVzdyEDQDQDQyEzeyGaNaNaNaNEZOnOnOnEZEZEZRvEZEZEZaNaNEZEZEZEZEZEZEZEZOfNdOgOhEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaZaYbcalbaaZbgbebbaYfPOiOjOkOkOkOlOideaXaUbabbaVaZaibdbfaZaNaNaNaNaNaN +aNhvaQjVjVjVjVjVaNaNaNaNaNaNaNaNaNaNaNaNMTJVJVJVJVOmOmOmJVJVJVJVMWaNaNaNaNaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGMjMNMjKdMjzuISISIQIQJiJjyEJkJiIQISITzdyEzdyEzeyEzeyGaNaNaNaNEZEZEZEZEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEZEZEZEZEZEZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbbaXaZaoaWbbaSaUbeaXfROoOpOkOkOkOqOoeXaTbdaWbeaYbbafbgbcbbaNaNaNaNaNaN +aNhvaQjVjVjVjVjVaNaNaNaNjVjVaNaNaNaNaNaNaNaNMTJVMUMUMUMUMUJVMWaNaNaNaNaNaNaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGMjOrMjOsMjzuIQIQIQIRyGDcyEICyGIQISITzQDQzQOtDRDQDRyGaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbeaTbbabbfbeaVbdaUaTfSOoOuOkOkOkOvOoczbabgbfaUaXbeanaSaZbeaNaNaNaNaNaN aNhvaQjVjVjVjVjVaNaNaNaNjVjVjVaNaNaNaNaNaNaNaNMTNpNpNpNpNpMWaNaNaNaNaNaNaNaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGyGyGyGyGyGyGyGyGyGyGyGzdyEzeyGyGyGyGyGyGyGyGyGyGyGyGaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaUbabeaebcaUaYbgbdbaeEOoOwOkOkOkOxOocTaWaSbcbdaTaUakaVbbaUaNaNaNaNaNaN aNhvaQjVjVjVjVjVaNaNaNaNjVjVjVaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyGOyDQDRyGaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbdaWaUahaZbdaXaSbgaWdeOoOzOAOkOkOBOocCbfaVaZbgbabdaaaYbebdaNaNaNaNaNaN aNhvaQjVjVjVjVjVaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNhvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNOCOCOCOCODOEODOCOCOCOCaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbgbfbdagbbbgaTaVaSdeeXNlOFOkOkOkOGNldfeXaYbbaSaWbgajaXaUbgaNaNaNaNaNaN @@ -2504,3 +2515,4 @@ aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNOCOCOCQZQZQZRaRbRcRdQOReRfRgRhRiRjRkOCOCOCaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN "} + diff --git a/maps/Aurora-MapDev/aurora-2.dmm b/maps/Aurora-MapDev/aurora-2.dmm index 5ff0bb13489..c7311db1c29 100644 --- a/maps/Aurora-MapDev/aurora-2.dmm +++ b/maps/Aurora-MapDev/aurora-2.dmm @@ -1,6 +1,6 @@ -"aa" = (/turf/unsimulated/mask,/area/mine/unexplored) +"aa" = (/turf/unsimulated/chasm_mask,/area/mine/unexplored) "ab" = (/turf/simulated/floor/asteroid,/area/mine/explored) -"ac" = (/turf/unsimulated/mask,/area/mine/explored) +"ac" = (/turf/unsimulated/chasm_mask,/area/mine/explored) "ad" = (/obj/random/junk,/turf/simulated/floor/asteroid,/area/mine/explored) "ae" = (/turf/simulated/wall/r_wall,/area/outpost/engineering/power) "af" = (/obj/structure/disposaloutlet{dir = 1},/obj/structure/disposalpipe/trunk,/turf/simulated/floor/asteroid,/area/mine/explored) @@ -310,7 +310,7 @@ "fX" = (/obj/item/weapon/rig/hazmat,/obj/structure/table/reinforced,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/security/nuke_storage) "fY" = (/obj/item/rig_module/device/rcd,/obj/structure/table/reinforced,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/security/nuke_storage) "fZ" = (/obj/effect/decal/warning_stripes,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/southright,/mob/living/bot/secbot/ed209{on = 0},/turf/simulated/floor{tag = "icon-bcircuitoff"; icon_state = "bcircuitoff"},/area/security/nuke_storage) -"ga" = (/turf/simulated/floor/plating,/area/shuttle/lifts/placeholder) +"ga" = (/turf/simulated/floor/airless,/area/shuttle/lifts/placeholder) "gb" = (/obj/machinery/computer/aiupload,/obj/item/device/radio/intercom/locked{frequency = 1343; locked_frequency = 1343; name = "Private AI Channel"; pixel_x = -5; pixel_y = 22},/obj/effect/decal/cleanable/cobweb2{tag = "icon-cobweb1"; icon_state = "cobweb1"},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai) "gc" = (/obj/structure/table/standard,/obj/machinery/status_display{pixel_y = 32},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai) "gd" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai) @@ -524,7 +524,7 @@ "kd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/access_button{frequency = 1379; master_tag = "sl1"; pixel_x = 26},/turf/simulated/floor/plating,/area/maintenance/sublevel) "ke" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTHWEST)"; icon_state = "warning_dust"; dir = 9},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/explored) "kf" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTHEAST)"; icon_state = "warning_dust"; dir = 5},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/explored) -"kg" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTH)"; icon_state = "warning_dust"; dir = 1},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/explored) +"kg" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTHWEST)"; icon_state = "warning_dust"; dir = 9},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) "kh" = (/obj/machinery/message_server,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_server_room) "ki" = (/obj/machinery/camera/network/command{c_tag = "AI Core - Messaging Server"; dir = 1},/obj/machinery/blackbox_recorder,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_server_room) "kj" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) @@ -540,21 +540,21 @@ "kt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{id_tag = "sl1"; pixel_y = 32; tag_airpump = "sl1p"; tag_chamber_sensor = "sl1s"; tag_exterior_door = "sl1o"; tag_interior_door = "sl1i"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/sublevel) "ku" = (/obj/machinery/light/small/emergency{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "sl1p"},/obj/machinery/airlock_sensor{id_tag = "sl1s"; pixel_y = -26},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/sublevel) "kv" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "sl1o"; locked = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/sublevel) -"kw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/explored) -"kx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (EAST)"; icon_state = "warning_dust"; dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/explored) +"kw" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTHEAST)"; icon_state = "warning_dust"; dir = 5},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) +"kx" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTH)"; icon_state = "warning_dust"; dir = 1},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) "ky" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) -"kz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (WEST)"; icon_state = "warning_dust"; dir = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/explored) -"kA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/explored) -"kB" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (EAST)"; icon_state = "warning_dust"; dir = 4},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/explored) +"kz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (EAST)"; icon_state = "warning_dust"; dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) +"kA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) +"kB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (WEST)"; icon_state = "warning_dust"; dir = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) "kC" = (/obj/machinery/shieldwallgen,/obj/structure/cable/cyan,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) "kD" = (/obj/machinery/camera/network/command{c_tag = "AI Core - Lobby"; dir = 1},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) "kE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) "kF" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) "kG" = (/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/machinery/atmospherics/portables_connector{dir = 1},/turf/simulated/floor/plating,/area/maintenance/sublevel) -"kH" = (/obj/machinery/camera/network/engineering_outpost{c_tag = "Engineering Sublevel - Cavern Entrance"; dir = 4; icon_state = "camera"; tag = "icon-camera (EAST)"},/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (SOUTHWEST)"; icon_state = "warning_dust"; dir = 10},/obj/machinery/access_button{frequency = 1379; master_tag = "sl1"; pixel_x = -26},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/maintenance/sublevel) -"kI" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (SOUTHEAST)"; icon_state = "warning_dust"; dir = 6},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/explored) -"kJ" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (SOUTHWEST)"; icon_state = "warning_dust"; dir = 10},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/explored) -"kK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning/dust,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/explored) +"kH" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (EAST)"; icon_state = "warning_dust"; dir = 4},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) +"kI" = (/obj/machinery/camera/network/engineering_outpost{c_tag = "Engineering Sublevel - Cavern Entrance"; dir = 4; icon_state = "camera"; tag = "icon-camera (EAST)"},/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (SOUTHWEST)"; icon_state = "warning_dust"; dir = 10},/obj/machinery/access_button{frequency = 1379; master_tag = "sl1"; pixel_x = -26},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/maintenance/sublevel) +"kJ" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (SOUTHEAST)"; icon_state = "warning_dust"; dir = 6},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) +"kK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning/dust,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) "kL" = (/obj/machinery/door/airlock/highsecurity{name = "AI Upload Access"; req_access = list(16)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) "kM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) "kN" = (/obj/item/device/radio/intercom/locked{frequency = 1343; locked_frequency = 1343; name = "Private AI Channel"; pixel_x = -32; pixel_y = -5},/obj/machinery/turretid/stun{control_area = null; name = "AI Upload turret control"; pixel_x = 24; pixel_y = 6},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) @@ -606,9 +606,9 @@ "lH" = (/obj/machinery/conveyor{dir = 1; id = "anolaser"},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled,/area/outpost/research/anomaly_analysis) "lI" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/effect/floor_decal/corner/lime{dir = 10},/turf/simulated/floor/tiled/white,/area/outpost/research/analysis) "lJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{tag = "icon-intact-scrubbers (NORTH)"; icon_state = "intact-scrubbers"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/lime/full{dir = 4},/turf/simulated/floor/tiled/white,/area/outpost/research/analysis) -"lK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTH)"; icon_state = "warning_dust"; dir = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/explored) -"lL" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTH)"; icon_state = "warning_dust"; dir = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/explored) -"lM" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTHEAST)"; icon_state = "warning_dust"; dir = 5},/obj/machinery/access_button{frequency = 1379; master_tag = "sl3"; pixel_x = 26},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/explored) +"lK" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (SOUTHWEST)"; icon_state = "warning_dust"; dir = 10},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) +"lL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTH)"; icon_state = "warning_dust"; dir = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) +"lM" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTH)"; icon_state = "warning_dust"; dir = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) "lN" = (/obj/machinery/light/small/emergency,/turf/simulated/floor/asteroid,/area/turret_protected/ai_upload_foyer) "lO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{tag = "icon-intact-scrubbers (NORTHEAST)"; icon_state = "intact-scrubbers"; dir = 5},/turf/simulated/floor/asteroid,/area/mine/explored) "lP" = (/obj/machinery/light/small/emergency,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/asteroid,/area/turret_protected/ai_upload_foyer) @@ -633,13 +633,13 @@ "mi" = (/obj/machinery/conveyor{dir = 1; id = "anolaser"},/obj/structure/plasticflaps,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/tiled,/area/outpost/research/anomaly_analysis) "mj" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Spectrometry Lab"; req_access = list(65)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/outpost/research/analysis) "mk" = (/turf/simulated/wall/r_wall,/area/outpost/research/emergency_storage) -"ml" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (WEST)"; icon_state = "warning_dust"; dir = 8},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/explored) -"mm" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/explored) -"mn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (EAST)"; icon_state = "warning_dust"; dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/explored) +"ml" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTHEAST)"; icon_state = "warning_dust"; dir = 5},/obj/machinery/access_button{frequency = 1379; master_tag = "sl3"; pixel_x = 26},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) +"mm" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) +"mn" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (WEST)"; icon_state = "warning_dust"; dir = 8},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) "mo" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) -"mp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (WEST)"; icon_state = "warning_dust"; dir = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/explored) -"mq" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/explored) -"mr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/explored) +"mp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (EAST)"; icon_state = "warning_dust"; dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) +"mq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (WEST)"; icon_state = "warning_dust"; dir = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) +"mr" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) "ms" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "sl3o"; locked = 1},/turf/simulated/floor/plating,/area/maintenance/sublevel) "mt" = (/obj/machinery/light/small/emergency{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "sl3p"},/obj/machinery/airlock_sensor{id_tag = "sl3s"; pixel_y = -26},/turf/simulated/floor/plating,/area/maintenance/sublevel) "mu" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{id_tag = "sl3"; pixel_y = 32; tag_airpump = "sl3p"; tag_chamber_sensor = "sl3s"; tag_exterior_door = "sl3o"; tag_interior_door = "sl3i"},/turf/simulated/floor/plating,/area/maintenance/sublevel) @@ -759,8 +759,8 @@ "oE" = (/obj/effect/landmark{name = "bluespacerift"},/turf/simulated/floor/tiled/dark,/area/outpost/research/anomaly_storage) "oF" = (/obj/item/weapon/anodevice{pixel_x = 3; pixel_y = 3},/obj/item/weapon/anodevice,/obj/structure/table/steel,/turf/simulated/floor/tiled/dark,/area/outpost/research/anomaly_storage) "oG" = (/turf/simulated/floor/tiled/dark,/area/medical/virology) -"oH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTH)"; icon_state = "warning_dust"; dir = 1},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/explored) -"oI" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTHEAST)"; icon_state = "warning_dust"; dir = 5},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/explored) +"oH" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) +"oI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTH)"; icon_state = "warning_dust"; dir = 1},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) "oJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/asteroid,/area/mine/explored) "oK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/sublevel) "oL" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/sublevel) @@ -788,7 +788,7 @@ "ph" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled/dark,/area/medical/virology) "pi" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/dark,/area/medical/virology) "pj" = (/obj/structure/morgue{tag = "icon-morgue1 (WEST)"; icon_state = "morgue1"; dir = 8},/turf/simulated/floor/tiled/dark,/area/medical/virology) -"pk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning/dust,/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/explored) +"pk" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTHEAST)"; icon_state = "warning_dust"; dir = 5},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) "pl" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/sublevel) "pm" = (/obj/machinery/door/airlock/maintenance,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/turf/simulated/floor{tag = "icon-plating"; icon_state = "plating"},/area/maintenance/sublevel) "pn" = (/obj/effect/floor_decal/corner/mauve{tag = "icon-corner_white (SOUTHEAST)"; icon_state = "corner_white"; dir = 6},/turf/simulated/floor/tiled/white,/area/outpost/research/hallway) @@ -1406,9 +1406,9 @@ "Bb" = (/obj/structure/table/standard,/obj/structure/bedsheetbin,/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/virology) "Bc" = (/obj/structure/bed/chair/wheelchair{tag = "icon-wheelchair (EAST)"; icon_state = "wheelchair"; dir = 4},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/medical/medbay4) "Bd" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/medical/medbay4) -"Be" = (/obj/structure/bed/chair/comfy/blue{tag = "icon-comfychair_preview (EAST)"; icon_state = "comfychair_preview"; dir = 4},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/obj/effect/floor_decal/corner/lime{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/ward) +"Be" = (/obj/structure/bed/chair/comfy/blue{tag = "icon-comfychair_preview (EAST)"; icon_state = "comfychair_preview"; dir = 4},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/obj/effect/floor_decal/corner/lime{dir = 10},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled/white,/area/medical/ward) "Bf" = (/obj/effect/floor_decal/corner/lime{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/ward) -"Bg" = (/obj/structure/bed/chair/comfy/blue{tag = "icon-comfychair_preview (WEST)"; icon_state = "comfychair_preview"; dir = 8},/obj/machinery/newscaster{pixel_x = 30; pixel_y = 0},/obj/effect/floor_decal/corner/lime{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/ward) +"Bg" = (/obj/structure/bed/chair/comfy/blue{tag = "icon-comfychair_preview (WEST)"; icon_state = "comfychair_preview"; dir = 8},/obj/machinery/newscaster{pixel_x = 30; pixel_y = 0},/obj/effect/floor_decal/corner/lime{dir = 10},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/ward) "Bh" = (/obj/structure/bed/chair/comfy/teal{tag = "icon-comfychair_preview (NORTH)"; icon_state = "comfychair_preview"; dir = 1},/obj/effect/floor_decal/corner/grey/diagonal,/turf/simulated/floor/tiled/white,/area/medical/patient_wing) "Bi" = (/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/corner/grey/diagonal,/turf/simulated/floor/tiled/white,/area/medical/patient_wing) "Bj" = (/obj/machinery/vending/coffee,/obj/structure/window/reinforced{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/turf/simulated/floor/tiled{icon_state = "vault"; dir = 5},/area/medical/patient_wing) @@ -1467,12 +1467,12 @@ "Ck" = (/obj/machinery/vending/snack,/turf/simulated/floor/tiled{icon_state = "vault"; dir = 5},/area/crew_quarters/medbreak) "Cl" = (/obj/machinery/vending/cola,/turf/simulated/floor/tiled{icon_state = "vault"; dir = 5},/area/crew_quarters/medbreak) "Cm" = (/obj/machinery/vending/coffee,/turf/simulated/floor/tiled{icon_state = "vault"; dir = 5},/area/crew_quarters/medbreak) -"Cn" = (/turf/unsimulated/mask,/area/crew_quarters/medbreak) +"Cn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning/dust,/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) "Co" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/camera/network/medbay{c_tag = "Medical - Staff Area Hallway"; dir = 8; icon_state = "camera"; tag = "icon-camera (NORTHWEST)"},/turf/simulated/floor/tiled,/area/medical/medbay4) -"Cp" = (/obj/structure/bed/chair/comfy/blue{tag = "icon-comfychair_preview (EAST)"; icon_state = "comfychair_preview"; dir = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/effect/floor_decal/corner/lime{tag = "icon-corner_white (NORTHEAST)"; icon_state = "corner_white"; dir = 5},/turf/simulated/floor/tiled/white,/area/medical/ward) +"Cp" = (/obj/structure/bed/chair/comfy/blue{tag = "icon-comfychair_preview (EAST)"; icon_state = "comfychair_preview"; dir = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/effect/floor_decal/corner/lime{tag = "icon-corner_white (NORTHEAST)"; icon_state = "corner_white"; dir = 5},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled/white,/area/medical/ward) "Cq" = (/obj/effect/floor_decal/corner/lime{tag = "icon-corner_white (NORTHEAST)"; icon_state = "corner_white"; dir = 5},/turf/simulated/floor/tiled/white,/area/medical/ward) "Cr" = (/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/corner/lime{tag = "icon-corner_white (NORTHWEST)"; icon_state = "corner_white"; dir = 9},/turf/simulated/floor/tiled/white,/area/medical/ward) -"Cs" = (/obj/structure/bed/chair/comfy/blue{tag = "icon-comfychair_preview (WEST)"; icon_state = "comfychair_preview"; dir = 8},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 27},/obj/effect/floor_decal/corner/lime{tag = "icon-corner_white (NORTHEAST)"; icon_state = "corner_white"; dir = 5},/turf/simulated/floor/tiled/white,/area/medical/ward) +"Cs" = (/obj/structure/bed/chair/comfy/blue{tag = "icon-comfychair_preview (WEST)"; icon_state = "comfychair_preview"; dir = 8},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 27},/obj/effect/floor_decal/corner/lime{tag = "icon-corner_white (NORTHEAST)"; icon_state = "corner_white"; dir = 5},/obj/machinery/light{dir = 4; status = 2},/turf/simulated/floor/tiled/white,/area/medical/ward) "Ct" = (/turf/simulated/wall/r_wall,/area/medical/ward) "Cu" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/medical/patient_wing) "Cv" = (/obj/effect/floor_decal/corner/mauve/full,/turf/simulated/floor/tiled/white,/area/outpost/research/hallway) @@ -1640,7 +1640,7 @@ "FB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/medical/medbay4) "FC" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/dark,/area/medical/medbay4) "FD" = (/turf/simulated/floor/tiled/dark,/area/medical/medbay4) -"FE" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 6},/turf/unsimulated/mask,/area/mine/unexplored) +"FE" = (/turf/unsimulated/chasm_mask,/area/crew_quarters/medbreak) "FF" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/wall/r_wall,/area/rnd/mixing) "FG" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/meter,/turf/simulated/floor/tiled/dark,/area/rnd/mixing) "FH" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/tiled/dark,/area/rnd/mixing) @@ -1674,7 +1674,7 @@ "Gj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/dark,/area/medical/medbay4) "Gk" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/dark,/area/medical/medbay4) "Gl" = (/obj/structure/closet/secure_closet/medical3,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/tiled,/area/medical/medbay4) -"Gm" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/unsimulated/mask,/area/mine/unexplored) +"Gm" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 6},/turf/unsimulated/chasm_mask,/area/mine/unexplored) "Gn" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/light{dir = 8},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled/dark,/area/rnd/mixing) "Go" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/rnd/mixing) "Gp" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/dark,/area/rnd/mixing) @@ -1827,14 +1827,14 @@ "Jg" = (/obj/structure/closet/secure_closet/scientist,/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/obj/effect/floor_decal/corner/red{tag = "icon-corner_white (SOUTHWEST)"; icon_state = "corner_white"; dir = 10},/turf/simulated/floor/tiled,/area/rnd/mixing) "Jh" = (/obj/structure/bed/chair,/obj/machinery/computer/security/telescreen{desc = "Used for watching the test chamber."; layer = 4; name = "Test Chamber Telescreen"; network = list("Toxins Test Area"); pixel_x = 0; pixel_y = -32},/obj/effect/floor_decal/corner/red{tag = "icon-corner_white (SOUTHWEST)"; icon_state = "corner_white"; dir = 10},/turf/simulated/floor/tiled,/area/rnd/mixing) "Ji" = (/obj/structure/bed/chair,/obj/machinery/computer/security/telescreen{desc = "Used for watching the test chamber."; layer = 4; name = "Test Chamber Telescreen"; network = list("Toxins Test Area"); pixel_x = 0; pixel_y = -32},/obj/effect/floor_decal/corner/red/full{tag = "icon-corner_white_full (EAST)"; icon_state = "corner_white_full"; dir = 4},/turf/simulated/floor/tiled,/area/rnd/mixing) -"Jj" = (/obj/structure/disposalpipe/segment,/turf/unsimulated/mask,/area/mine/unexplored) +"Jj" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/unsimulated/chasm_mask,/area/mine/unexplored) "Jk" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/asteroid,/area/rnd/mixing) "Jl" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/rnd/mixing) "Jm" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/rnd/mixing) "Jn" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/rnd/mixing) "Jo" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/explored) "Jp" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/explored) -"Jq" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/unsimulated/mask,/area/mine/unexplored) +"Jq" = (/obj/structure/disposalpipe/segment,/turf/unsimulated/chasm_mask,/area/mine/unexplored) "Jr" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/asteroid,/area/rnd/mixing) "Js" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/explored) "Jt" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/asteroid,/area/mine/explored) @@ -1854,6 +1854,7 @@ "JH" = (/obj/machinery/light/spot{tag = "icon-tube1 (WEST)"; icon_state = "tube1"; dir = 8},/obj/machinery/camera/network/research_outpost{c_tag = "Research Sublevel - Toxins Testing Port"; dir = 4},/turf/simulated/floor/tiled/airless,/area/rnd/test_area) "JI" = (/obj/machinery/light/spot{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/obj/machinery/camera/network/research_outpost{c_tag = "Research Sublevel - Toxins Testing Starboard"; dir = 8},/turf/simulated/floor/tiled/airless,/area/rnd/test_area) "JJ" = (/obj/machinery/light/spot,/obj/machinery/camera/network/research_outpost{c_tag = "Research Sublevel - Toxins Testing Aft"; dir = 1},/turf/simulated/floor/tiled/airless,/area/rnd/test_area) +"JK" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/unsimulated/chasm_mask,/area/mine/unexplored) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -1970,9 +1971,9 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeQfoeQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdfdeRfPfPfPfPfPfPfPfPfPfPiCabababababababababababfdfdfdaaaaaaaaaaeRfdfdfdfdfdeRiYiYiYiYgviZjajbjciZgvjdjehegvjfgdgegegegejggAjhjijjjkfJjlfJfJfJjmfJiXfJfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeQeQeQeQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeQfoeQaaaaaaaaaaababababababababaaaaaaaaaaaaaaaaaaabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdfdfdeRfdfdfdfdfdjnjojojojpfdabababababababababfdfdfdfdaaaaaaaaaaeRfdfdfdfdfdfdiYiYjqjrgvjsjtjujtjvgvjwjxjygvjzjAgdgygdgejBgAjCjDjEjFjGjHjIjJjKjLfJiXfJfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeQjMjNeQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeQfoeQaaaaaaaaabababababababababababababaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdfdfdfdfdfdfdfdiCfdfdfdfdfdfdfdababababfdfdfdfdfdfdaaaaaaaaaaaaeRfdfdfdfdfdfdiYiYjOjPjQjRjSjTjSjRjUjVjWjygvjXjYgdgegefJfJfJfJfJfJggjZghghfJfJkafJiXfJfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeQkbkceQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQkdeQeQeQeQkekfabababababababababababababababababababkekgkfabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdfdfdfdfdaaiCfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdaaaaaaaaaaaaeRfdfdfdfdfdfdiYiYkhkigvjsjtkjjtjsgvgveRfJfJfJfJkkklfJfJfJfJfJfJfJfJfJfJfJfJfJfJfJiXfJfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeQkmknkoknknknknknknknknknknknknknknknknknknknknknknknknkpkqkrksktkukvkwkxkykykykykykykykykykykykykykykykykykykykzkAkBabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiCfdfdfdaaaaaafdfdfdfdfdfdaaaaaaaaaaaaaaaaaaaaaaeRfdfdfdfdfdfdiYiYiYiYgvkCkDkEkFkCgvgveRfJfJfJfJfJfJfJfJfJfJfJfJfJfJfJfJfJfJfJfJjnjpfdfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQkGkGeQeQeQeQeQkHkIabababababababababababababababababababkJkKkIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeRfdfdfdfdfdfdiYiYiYiYgvgvgvkLgvgvgvgvfdfdfdeRfJfJfJfJfJfJfJfJfJfJfJfJfJfJjnjojojpfdfdfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeQkbkceQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQkdeQeQeQeQkgkwabababababababababababababababababababkgkxkwabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdfdfdfdfdaaiCfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdaaaaaaaaaaaaeRfdfdfdfdfdfdiYiYkhkigvjsjtkjjtjsgvgveRfJfJfJfJkkklfJfJfJfJfJfJfJfJfJfJfJfJfJfJfJiXfJfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeQkmknkoknknknknknknknknknknknknknknknknknknknknknknknknkpkqkrksktkukvkykzkykykykykykykykykykykykykykykykykykykykBkAkHabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiCfdfdfdaaaaaafdfdfdfdfdfdaaaaaaaaaaaaaaaaaaaaaaeRfdfdfdfdfdfdiYiYiYiYgvkCkDkEkFkCgvgveRfJfJfJfJfJfJfJfJfJfJfJfJfJfJfJfJfJfJfJfJjnjpfdfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQkGkGeQeQeQeQeQkIkJababababababababababababababababababablKkKkJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeRfdfdfdfdfdfdiYiYiYiYgvgvgvkLgvgvgvgvfdfdfdeRfJfJfJfJfJfJfJfJfJfJfJfJfJfJjnjojojpfdfdfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeReReReRaaaaaaaaababababbQababababababababaaaaaaaaabababababkMabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeRfdfdfdfdfdfdfdfdfdeRgvgvgvkNgvgvgvgvfdfdfdfdfdfJfJfdfdjnjojojojojojojojojpfdfdfdfdfdfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababaaaaaaaaaaaaaaaaaaaaaaaaabababkMababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeRfdfdfdfdfdfdfdfdeRabababkOkPkQabababfRfdfdfdfdfdfdfdfdiCfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkMabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeRfdfdfdfdfdfdfdfdkRabababkOkSkTabababkRfdfdfdfdfdfdfdfdiCfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -1984,15 +1985,15 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaclfababababababababaaaaaaaaaaaaaaleleleaaaaaaaaaaaaaalblglhlilbaaaaaaaaaaaaaaaaaaaaaaaaabababkMabababababaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaaaababababababababaaaaaaaaaaaaiCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeRfdfdfdfdfdfdfdabababfRgagagagagafRlaabababfdfdfdfdfdfdiCfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacljabababababababababaaaaaaaaaaleleleleleaaaaaaaaaaaalblklllmlbaaaaaaaaaaaaaaaaaaaaaaababababkMababababababaaaaaaaaaaleababababababababababababababababababababababababaaiCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeRfdfdfdfdfdfdfdababababgagagagagaablaablnlnlnlnlnlnlnlniCfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaljababababababababababaaaaaaablololololololololololololklplqlbaaaaaaaaaaaaaaaaaaaaaaababababkMababbQababababababababababababababababacabababababababababababababababababhYabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeRfdfdfdfdfdfdfdfdababababfRabfRabablaablnlrlsltlulvlwlniCfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaleleablxabababababababababablylzlAlBlolClDlElFlGlHlolklIlJlbaaaaaaaaaaaaaaaaaaaaaaabababkelKkfabababababababababababababababababkekfababababababababababababababababkelLlMeQeQeQeQeQeQeQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeRfdfdfdfdfdfdfdfdlNabababababababablOlPlQlRlRlSlululTlniCfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalUlVlelWlXlYababababababababablZmambmclomdmemfmgmhmilolblbmjlbmkmkmkmkmkmkaaaaaaaaaaabababmlmmmnmomomomomomomomomomomomomomomomomompmnmomomomomomomomomomomomomomomomompmqmrmsmtmumvmwmxeQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeRfdfdfdfdfdfdfdfdfRababfdabababbQababfRlnlulumylumzmAlniCfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalUababablXlYleleababababababablZmambmBlomCmDmEmFmGmHlomImJmKmLmMmkmNmOmPmkaaaaaaaaaaaaababkJkKkIabababababababababababababababababkJkIababababababababababababababababkJkKkIeQeQeQeQmQmxeQeQeQeQeQeQeQeQeQeQaaaaaaaaaaaaeRfdfdfdfdfdfdfdfdfdfdfdfdfdfdabababfdfdlnmRmSmTmUmVmWmXjpfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaleleablxabababababababababablylzlAlBlolClDlElFlGlHlolklIlJlbaaaaaaaaaaaaaaaaaaaaaaabababkglLkwabababababababababababababababababkgkwababababababababababababababababkglMmleQeQeQeQeQeQeQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeRfdfdfdfdfdfdfdfdlNabababababababablOlPlQlRlRlSlululTlniCfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalUlVlelWlXlYababababababababablZmambmclomdmemfmgmhmilolblbmjlbmkmkmkmkmkmkaaaaaaaaaaabababmnmmmpmomomomomomomomomomomomomomomomomomqmpmomomomomomomomomomomomomomomomomqmroHmsmtmumvmwmxeQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeRfdfdfdfdfdfdfdfdfRababfdabababbQababfRlnlulumylumzmAlniCfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalUababablXlYleleababababababablZmambmBlomCmDmEmFmGmHlomImJmKmLmMmkmNmOmPmkaaaaaaaaaaaaabablKkKkJababababababababababababababababablKkJabababababababababababababababablKkKkJeQeQeQeQmQmxeQeQeQeQeQeQeQeQeQeQaaaaaaaaaaaaeRfdfdfdfdfdfdfdfdfdfdfdfdfdfdabababfdfdlnmRmSmTmUmVmWmXjpfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababaaaaaaaaaaaaaaaaaaaaaaaaacacaaababablemYmZleleababababababablZnanbncndnenfngnhnhnhninjnknlnmnnnonpnqnrmkaaaaaaaaaaaaabababkMababababababaaaaaaaaaaabaaaaaaaaabababababababaaaaaaaaaaabababababababababkMabaaaaaaeQkmnsnsnsnsnsnsnsnsnsfceQaaaaaaaaaaaaeRfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdabfdfdfdlnlnlnntlnlnlnlnfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababaaaaaaaaaaaaaaaaaaacacacabableleleleleababababababababnunvnwnxlonynznAnBnCnDlonEnFnGnHnImknJnqnKmkaaaaaaaaaaaaaaababkMababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababkMababaaaaeQnLeQeQeQeQeQeQeQeQeQnMeQaaaaaaaaaaaaeRfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdeQnNeQfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababaaaaaaaaaaaaaaaaaaacaclXnOleleleleleabababababababablololololonPlolololonQlonRnSnTnHnUnVnVnVnVnVnVaaaaaaaaaaaaababkMababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdfdfdfdnWnWnWnWnWaaaaaaaaaaaaaaabkMababeQeQeQnXeQaaaaaaaaaaaaaaeQnMeQaaaaaaaaaaaaeRfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdeQnNeQfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababaaaaaaaaaaaaaaaaacaclXableleleleleleababababababababnYnZoaobocoboaodoaoboaoboaoenHnInVofogohoinVaaaaaaaaaaaaababkMabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdfdeRfdfdnWojokojnWaaaaaaaaaaaaaaabkMababeQolomoneQaaaaaaaaaaaaaaeQnMeQaaaaaaaaaaaaeReReRfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdeQnNeQfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababaaaaaaaaaaaaacacacacooopoqleleleleleabababababababorosotouovououowoxouoyouozovouoAoBoCoDoEoFnVaaaaaaaaaaaaababkMabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdfdadadabfdnWoGoGoGnWnWnWaaaaaaaaaakeoHoIoJoKoLoMoNeQabaaaaaaaaaaaaeQnMeQaaaaaaaaaaaaaaaaaafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdeQnNeQfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababaaaaaaaaaaaaacacacacaaaaoOaaleleoPoPabababababababoroQoRoSoToUoToVoWoUoXoUoYoUoToZnVpapbpbpcnVaaaaaaaaaaaaababkMabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdeRpdpepfeRnWpgoGphpipjnWaaaaaaaaabkJpkkIabeQeQeQpleQabababaaaaaaaaeQnMeQaaaaaaaaaaaaaaaaaaeReReReReReReReReReReReReReReReReReReReQpmeQeReReReReReReReReReReReReReReReReReReReReReReRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababaaaaaaaaaaaaaaaaacaclXableleleleleleababababababababnYnZoaobocoboaodoaoboaoboaoenHnInVofogohoinVaaaaaaaaaaaaababkMabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdfdeRfdfdnWojokojnWaaaaaaaaaaaaaaabkMababeQolomoneQaaaaaaaaaaaaaaeQnMeQaaaaaaaaaaaaeRfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdeQnNeQfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababaaaaaaaaaaaaacacacacooopoqleleleleleabababababababorosotouovououowoxouoyouozovouoAoBoCoDoEoFnVaaaaaaaaaaaaababkMabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdfdadadabfdnWoGoGoGnWnWnWaaaaaaaaaakgoIpkoJoKoLoMoNeQabaaaaaaaaaaaaeQnMeQaaaaaaaaaaaaeRfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdeQnNeQfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababaaaaaaaaaaaaacacacacaaaaoOaaleleoPoPabababababababoroQoRoSoToUoToVoWoUoXoUoYoUoToZnVpapbpbpcnVaaaaaaaaaaaaababkMabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdeRpdpepfeRnWpgoGphpipjnWaaaaaaaaablKCnkJabeQeQeQpleQabababaaaaaaaaeQnMeQaaaaaaaaaaaaeReReReReReReReReReReReReReReReReReReReReReReQpmeQeReReReReReReReReReReReReReReReReReReReReReReRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaabababababababorosoRpnpopppqpoprpopsptptptptpqpopupvpwoinVaaaaaaaaaaabababkMabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdfdadpxadfdnWpyoGpzpApBnWaaaaaaabababpCpDpEpEpFpEpGpEpEpHabaaaaaaaaeQnMeQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeQnMeQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababacacacacacaaaaaaaaaaaaaaaaaaaaababababababababoroQoRnIpopIpJpKpLpMpNpOpPpPpPpPponVnVnVnVnVaaaaaaaaaaabababkMabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdeRpQeRfdnWpRpSpToGpjnWaaaaaaababababpUfRfRfRfRfRfRfRpUababaaaaaaeQnMeQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeQnMeQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababacacaaaaaaaaaaaaaaaaaaaaaaaaaaabababkepVkfababpWosoRpnpopXpYpZqapPpNqbqcpPpPpPpoaaaaaaaaaaaaaaaaaaaaabababkMabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanWnWqdnWnWnWnWnWqenWnWnWnWnWnWgogogogoqffRqgqhqiqhqjfRpUababaaaaaaeQnMeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQnMeQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -2014,14 +2015,14 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababaaaaabababababababpWAdAeAfqnfzfAfAfAfBqnosAgAhvUvUvUvUvUAiAjAkylylylAlAmyZzaAnvUvUvUvUvUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaleleletDAotzvgxCviApAqArsYAsAttzAuAvAwsYababwhxjwHwHwGwHAxwhAyzQzmAzAAABACAAADzmAEAFAGAHAIAJAKuHleaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababaaaaababababababaaqnALAMANqnfHfAfAfAfIqnosoRpnvUAOAPAQvUARyZyZyZyZyZyZyZyZASATAUypypypvUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaleleleuzvVvWvXuttzAVAWAXuzAYAZtztzBaBbuzabacwhwGwHwHwGwHwHwhBcBdzmBeBfABACBfBgzmBhBiBjBkBlzsBmuHleaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababaaabababababababababababaaaaqnosBnBoqnfzfAfAfAfBqnosBpoABqBrBsBtBuBvBwBwBxByBzBABBBCBDzbBEypBFBGvUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalelenWnWnWnWnWtzBHAWBInWnWBJwBwBBKnWnWacacwhwhwhwhwhwhwhwhAyBLzmBMBMBNBOBMBMzmBPBQBRBSBTzsAcyQleaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababaaaaaaaaqnBUyRBVqnfKfLfLfLfMqnBWBXBYvUBZCaCbvUCcyZyZCdCeCfCgChyZzazECizGzHzIvUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaleababababnWBJwBwBBKnWababababababacacacCjCkClCmCjCjCnCjAyCozmCpCqCrACCqCsCtwlwlwlCuwlwlwlwlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababaaaaaaaaqnBUyRBVqnfKfLfLfLfMqnBWBXBYvUBZCaCbvUCcyZyZCdCeCfCgChyZzazECizGzHzIvUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaleababababnWBJwBwBBKnWababababababacacacCjCkClCmCjCjFECjAyCozmCpCqCrACCqCsCtwlwlwlCuwlwlwlwlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababaaaaaaaaaaaaaaaaqnCvoTCwqnqnqnqnqnqnqnCxCyCxvUvUvUvUvUCzyZyZCdCACBCgChyZzaCCvUvUvUvUvUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababacacacacCjCDCECFCGCjCjCjCHzQzmAzAACrCIAAADCtaaaaaaCJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababaaCKCKCKCKCKCKCKCKCKCKCLCLCMCLCNCLCLCLCOCOCOCPCQCRCSCTCUvUCVCWCXyZyZyZyZyZyZCYyZzaCZDaypypypvUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababacacacabDbDcDdDeDfDgDhDiDjDkzmDlDmDnDoBfDlCtaafRadDpadfRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababaaCKDqDrDsDtCKDuDvDwCKDxDxDyDzDADBDBCLDCDDCODEDFDGDHDHDIvUDJDKDKDKDKDKDKDKDKDKDKDLzbDMypypDNvUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababDODPDQDRDSDTDUDVDWDXzmzmzmzmzmzmzmCtababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaCKDYDZEaEbEcEdEeEfCKDxEgEhEiEjDBEkCLElCOCOCPDFEmEnEoEpvUEqErEsAnEtErEuEvEtErEwyZExEyzGzHzIvUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababbQababababEzEAEAEBCjECEDEEEFDeEGEHEIEJEKELEMENEOEPEQERaaabadababadabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCKESETEUEVEcEdEWEfCKEXDxEYEZFaFbFcCLCxCxCxCxFdFeFfFgDIvUFhFiFjvUFkFlFmvUFnFoFpvUvUvUvUvUvUvUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababFqFrFsFtCjFuEDDeFvFwDcFxEIFyFzFAFBFCFDFDEQERaafRabadabfRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFEFFFGFHFIFJCKFKFLFKCKFMDxDyEZDAFNFOCLaaaaaaCxFPFQFRFSFTvUFUypypvUFUypypvUFUypypvUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababFqFVFWFXFYFZGaDUGbGcGdGeGfGgEKGhGiGjGkFDGlERaaaaaaadabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGmCKGnDqGoGpGqGrGsGtCKGuGvGwEZGxGyGzCLaaaaaaCxCxCxCxCxCxvUGAypypvUGABFypvUGAypypvUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababGBGCGDGEGFGGGFCjGHCjCjCjCjCjCjCjGIGJGKGKzkERaaaaaafRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGmFFFGFHFIFJCKFKFLFKCKFMDxDyEZDAFNFOCLaaaaaaCxFPFQFRFSFTvUFUypypvUFUypypvUFUypypvUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababFqFVFWFXFYFZGaDUGbGcGdGeGfGgEKGhGiGjGkFDGlERaaaaaaadabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJjCKGnDqGoGpGqGrGsGtCKGuGvGwEZGxGyGzCLaaaaaaCxCxCxCxCxCxvUGAypypvUGABFypvUGAypypvUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababGBGCGDGEGFGGGFCjGHCjCjCjCjCjCjCjGIGJGKGKzkERaaaaaafRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafRfRfRfRGLCKGMGNGOGPGQGRGSGTCKEZGUGVGWGXGYGZCLaaaaaaaaaaaaaaaaaavUHaHbypvUHaHcypvUHaHdypvUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababGFGFGFGFGFHeHfCjHgHhHiHhHjHkHlCjERERERERERERaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafRHmHnHnHoHpHqHrHqHsHtHuHvHwHxGWHyHzHAHBGYGYCLaaaaaaaaaaaaaaaaaavUvUvUvUvUvUvUvUvUvUvUvUvUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGFHCHDHEHFHGHHCjHIHJHKHLHMCjCjCjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafRHnHnHnHnHNHOHPHQHRHSHTHUGSCKCLCLCLCLCLCLCLCLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGFHVHWHVHWHXHYCjHZCjCjCjHJIaHlCjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -2030,9 +2031,9 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafRHmHnHnHnIpHrHrHrIqCKCKIrCKCKIsItIuIvIwIxIyIzCKCKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCjCjCjCjCjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafRfRfRfRfRfRIAIBICIDIEIFIGIHCKIIIJIJIKIJIJIJILIMINaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaleababababIOabCKCKCKIPIQIRISITIUIVIWIJIJIJIXCKIYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaleababababIOababaaCKIZJaJbCKJcJdJeJfJgJhJhJiCKJjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababeRJkIOababaaCKCKCKCKCKCKCKCKCKCKJlJmJnCKJjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababIOabaaaaCKabableCKaaaaabCKababkOJoJpJqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaleababababIOababaaCKIZJaJbCKJcJdJeJfJgJhJhJiCKJqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababeRJkIOababaaCKCKCKCKCKCKCKCKCKCKJlJmJnCKJqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababIOabaaaaCKabableCKaaaaabCKababkOJoJpJKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababIOabababJrabababJrabababJrababkOJsJtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababJuJvJvJvJvJvJvJvJvJvJvJvJvJvJvJwJxkTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababbQabababJyabababJyabababJyabababJzababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -2112,3 +2113,4 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} + diff --git a/maps/Aurora-MapDev/aurora-3.dmm b/maps/Aurora-MapDev/aurora-3.dmm index f6c0ccf51ad..1276024bbc6 100644 --- a/maps/Aurora-MapDev/aurora-3.dmm +++ b/maps/Aurora-MapDev/aurora-3.dmm @@ -1,4 +1,4 @@ -"aaa" = (/turf/unsimulated/mask,/area/mine/unexplored) +"aaa" = (/turf/unsimulated/chasm_mask,/area/mine/unexplored) "aab" = (/turf/simulated/floor/asteroid,/area/mine/unexplored) "aac" = (/turf/simulated/wall,/area/maintenance/security_starboard) "aad" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/security_starboard) @@ -134,7 +134,7 @@ "acD" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green,/turf/simulated/floor/plating,/area/maintenance/substation/security) "acE" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/machinery/light/small,/obj/machinery/camera/network/security{c_tag = "Security - Security Substation"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/substation/security) "acF" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/substation/security) -"acG" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/engineering{name = "Security Substation"; req_one_access = list(11,24)},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/asteroid,/area/maintenance/substation/security) +"acG" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/airlock/engineering{name = "Security Substation"; req_one_access = list(11,24)},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/substation/security) "acH" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/plating,/area/maintenance/security_starboard) "acI" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/plating,/area/maintenance/security_starboard) "acJ" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan,/turf/simulated/floor/asteroid,/area/mine/unexplored) @@ -961,7 +961,7 @@ "asy" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/security_starboard) "asz" = (/obj/effect/decal/cleanable/generic,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/security_starboard) "asA" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/security_starboard) -"asB" = (/obj/machinery/door/airlock/maintenance{name = "Firefighting equipment"; req_access = list(12)},/turf/simulated/wall/r_wall,/area/maintenance/security_starboard) +"asB" = (/obj/machinery/door/airlock/maintenance{name = "Firefighting equipment"; req_access = list(12)},/turf/simulated/floor/plating,/area/maintenance/security_starboard) "asC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/bridge) "asD" = (/obj/effect/floor_decal/corner/yellow{tag = "icon-corner_white (NORTHWEST)"; icon_state = "corner_white"; dir = 9},/obj/effect/floor_decal/corner/yellow{tag = "icon-corner_white (SOUTHEAST)"; icon_state = "corner_white"; dir = 6},/obj/item/modular_computer/console/preset/engineering,/turf/simulated/floor/tiled,/area/bridge) "asE" = (/obj/effect/floor_decal/corner/yellow/full{tag = "icon-corner_white_full (WEST)"; icon_state = "corner_white_full"; dir = 8},/turf/simulated/floor/tiled,/area/bridge) @@ -1259,7 +1259,7 @@ "ayk" = (/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hallway"; req_one_access = list(10)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor{dir = 1; name = "Engineering Firelock"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/engineering/engine_monitoring) "ayl" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/corner/yellow{tag = "icon-corner_white (NORTHWEST)"; icon_state = "corner_white"; dir = 9},/turf/simulated/floor/tiled,/area/engineering/engine_monitoring) "aym" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled,/area/engineering/engine_monitoring) -"ayn" = (/obj/structure/closet/crate,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/machinery/camera/network/engineering{c_tag = "Engineering - Corridor Camera 1"; dir = 8},/turf/simulated/floor/tiled,/area/engineering/engine_monitoring) +"ayn" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe{pixel_x = 8},/obj/item/weapon/pickaxe,/obj/item/weapon/pickaxe{pixel_x = -8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/camera/network/engineering{c_tag = "Engineering - Corridor Camera 1"; dir = 8},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/engineering/engine_monitoring) "ayo" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/item/modular_computer/console/preset/engineering,/turf/simulated/floor/tiled,/area/engineering/atmos/monitoring) "ayp" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/engineering/atmos/monitoring) "ayq" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/engineering/atmos/monitoring) @@ -1277,7 +1277,7 @@ "ayC" = (/obj/machinery/computer/prisoner,/turf/simulated/floor/tiled/dark,/area/security/armoury) "ayD" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/machinery/camera/network/security{c_tag = "Security - Armoury Entrance"},/turf/simulated/floor/tiled/dark,/area/security/armoury) "ayE" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/dark,/area/security/armoury) -"ayF" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/laserproof{pixel_x = -2; pixel_y = 2},/obj/item/clothing/suit/armor/laserproof{pixel_x = 2; pixel_y = -2},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/window/brigdoor/eastleft{name = "Ablative Armour Storage"},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/tiled/dark,/area/security/armoury) +"ayF" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "solar_chapel_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_one_access = list(13,65)},/turf/simulated/floor/asteroid,/area/mine/unexplored) "ayG" = (/obj/machinery/flasher/portable,/obj/machinery/light/small/emergency{tag = "icon-bulb1 (EAST)"; icon_state = "bulb1"; dir = 4},/turf/simulated/floor/tiled/dark,/area/security/armoury) "ayH" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/structure/sign/nosmoking_2{pixel_x = -32},/obj/machinery/camera/network/security{c_tag = "Security - Holding Cell"; dir = 4},/obj/effect/floor_decal/corner/blue{tag = "icon-corner_white (SOUTHEAST)"; icon_state = "corner_white"; dir = 6},/turf/simulated/floor/tiled,/area/security/brig) "ayI" = (/obj/structure/bed/chair{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/security/brig) @@ -1339,7 +1339,7 @@ "azM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/engineering/engine_monitoring) "azN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/engineering/engine_monitoring) "azO" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/corner/yellow{tag = "icon-corner_white (SOUTHWEST)"; icon_state = "corner_white"; dir = 10},/turf/simulated/floor/tiled,/area/engineering/engine_monitoring) -"azP" = (/obj/structure/closet/crate,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled,/area/engineering/engine_monitoring) +"azP" = (/obj/item/weapon/shovel{pixel_x = 8},/obj/item/weapon/shovel{pixel_x = -8},/obj/item/weapon/shovel,/obj/structure/table/rack,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled,/area/engineering/engine_monitoring) "azQ" = (/obj/machinery/computer/general_air_control{frequency = 1441; name = "Tank Monitor"; sensors = list("n2_sensor" = "Nitrogen", "o2_sensor" = "Oxygen", "co2_sensor" = "Carbon Dioxide", "tox_sensor" = "Toxins", "n2o_sensor" = "Nitrous Oxide", "waste_sensor" = "Gas Mix Tank")},/obj/machinery/requests_console{department = "Atmospherics"; departmentType = 4; name = "Atmos RC"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/tiled,/area/engineering/atmos/monitoring) "azR" = (/obj/machinery/computer/general_air_control{frequency = 1443; level = 3; name = "Distribution and Waste Monitor"; sensors = list("mair_in_meter" = "Mixed Air In", "air_sensor" = "Mixed Air Supply Tank", "mair_out_meter" = "Mixed Air Out", "dloop_atm_meter" = "Distribution Loop", "wloop_atm_meter" = "Engine Waste")},/turf/simulated/floor/tiled,/area/engineering/atmos/monitoring) "azS" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/corner/yellow{tag = "icon-corner_white (SOUTHWEST)"; icon_state = "corner_white"; dir = 10},/turf/simulated/floor/tiled,/area/engineering/atmos/monitoring) @@ -3192,7 +3192,7 @@ "bjt" = (/obj/machinery/door/firedoor,/obj/effect/floor_decal/corner/paleblue{tag = "icon-corner_white (NORTHEAST)"; icon_state = "corner_white"; dir = 5},/turf/simulated/floor/tiled,/area/hallway/primary/central_one) "bju" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/tiled,/area/hallway/primary/central_one) "bjv" = (/obj/machinery/door/firedoor,/obj/structure/sign/directions/engineering{dir = 8; icon_state = "direction_eng"; pixel_y = 24; tag = "icon-direction_eng (WEST)"},/obj/structure/sign/directions/medical{dir = 4; icon_state = "direction_med"; pixel_y = 32; tag = "icon-direction_med (EAST)"},/obj/structure/sign/directions/science{dir = 8; icon_state = "direction_sci"; pixel_y = 42; tag = "icon-direction_sci (WEST)"},/obj/effect/floor_decal/corner/paleblue{tag = "icon-corner_white (NORTHEAST)"; icon_state = "corner_white"; dir = 5},/turf/simulated/floor/tiled,/area/hallway/primary/central_one) -"bjw" = (/obj/machinery/light{dir = 1},/obj/machinery/camera/network/civilian_west{c_tag = "Central Corridor - Surface Lift"},/obj/effect/floor_decal/corner/paleblue{tag = "icon-corner_white (NORTHEAST)"; icon_state = "corner_white"; dir = 5},/turf/simulated/floor/tiled,/area/hallway/primary/central_one) +"bjw" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/laserproof{pixel_x = -2; pixel_y = 2},/obj/item/clothing/suit/armor/laserproof{pixel_x = 2; pixel_y = -2},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/window/brigdoor/eastleft{name = "Ablative Armour Storage"},/obj/structure/window/reinforced{dir = 1},/obj/machinery/light/small/emergency{dir = 8},/turf/simulated/floor/tiled/dark,/area/security/armoury) "bjx" = (/obj/machinery/door/firedoor,/obj/structure/sign/directions/evac{dir = 8; icon_state = "direction_evac"; pixel_y = 32; tag = "icon-direction_evac (WEST)"},/obj/effect/floor_decal/corner/paleblue{tag = "icon-corner_white (NORTHEAST)"; icon_state = "corner_white"; dir = 5},/turf/simulated/floor/tiled,/area/hallway/primary/central_one) "bjy" = (/obj/structure/table/standard,/obj/machinery/reagentgrinder,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/effect/floor_decal/corner/mauve{tag = "icon-corner_white (NORTHWEST)"; icon_state = "corner_white"; dir = 9},/turf/simulated/floor/tiled/white,/area/medical/chemistry) "bjz" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/chemistry) @@ -3386,7 +3386,7 @@ "bnf" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 8; id = "Robocompo"},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/assembly/robotics) "bng" = (/obj/machinery/conveyor{dir = 8; id = "Robocompo"},/turf/simulated/floor/tiled,/area/assembly/robotics) "bnh" = (/obj/effect/floor_decal/industrial/loading{tag = "icon-loadingarea (EAST)"; icon_state = "loadingarea"; dir = 4},/turf/simulated/floor/tiled,/area/assembly/robotics) -"bni" = (/obj/structure/table/standard,/obj/item/weapon/crowbar/red{desc = "Used to remove floors and to pry open doors. And save the day once in a while."},/obj/item/weapon/cell/high,/obj/item/weapon/cell/high,/obj/item/device/assembly/prox_sensor,/obj/item/device/assembly/prox_sensor,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/assembly/robotics) +"bni" = (/obj/structure/table/standard,/obj/item/weapon/cell/high,/obj/item/weapon/cell/high,/obj/item/device/assembly/prox_sensor,/obj/item/device/assembly/prox_sensor,/obj/effect/floor_decal/industrial/outline/yellow,/obj/item/weapon/crowbar,/turf/simulated/floor/tiled,/area/assembly/robotics) "bnj" = (/obj/structure/table/standard,/obj/machinery/cell_charger,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/reagent_containers/glass/bucket,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/assembly/robotics) "bnk" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/device/healthanalyzer,/obj/item/device/healthanalyzer,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/assembly/robotics) "bnl" = (/obj/machinery/recharge_station,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled,/area/assembly/robotics) @@ -3833,7 +3833,7 @@ "bvK" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{pixel_x = -25; pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/corner/paleblue{tag = "icon-corner_white (NORTHEAST)"; icon_state = "corner_white"; dir = 5},/turf/simulated/floor/tiled,/area/bridge) "bvL" = (/obj/machinery/light,/obj/effect/floor_decal/corner/paleblue/full{tag = "icon-corner_white_full (WEST)"; icon_state = "corner_white_full"; dir = 8},/turf/simulated/floor/tiled,/area/bridge) "bvM" = (/obj/structure/flora/pottedplant{tag = "icon-plant-10"; icon_state = "plant-10"},/turf/simulated/floor/tiled,/area/bridge) -"bvN" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "toxinsrec_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_one_access = list(13,65)},/turf/simulated/floor/asteroid,/area/mine/unexplored) +"bvN" = (/obj/machinery/light{dir = 1},/obj/machinery/camera/network/civilian_west{c_tag = "Central Corridor - Surface Lift"},/obj/effect/floor_decal/corner/paleblue{tag = "icon-corner_white (NORTHEAST)"; icon_state = "corner_white"; dir = 5},/obj/effect/landmark{name = "Observer-Start"},/turf/simulated/floor/tiled,/area/hallway/primary/central_one) "bvO" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "robotics_solar_outer"; locked = 1; name = "Engineering External Access"; req_access = list(11,13)},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/research_port) "bvP" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "robotics_solar_pump"},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "robotics_solar_pump"; tag_exterior_door = "robotics_solar_outer"; frequency = 1379; id_tag = "robotics_solar_airlock"; tag_interior_door = "robotics_solar_inner"; layer = 3.3; pixel_x = 0; pixel_y = -25; req_access = list(13); tag_chamber_sensor = "robotics_solar_sensor"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "robotics_solar_sensor"; layer = 3.3; pixel_x = 12; pixel_y = -25},/obj/effect/decal/warning_stripes,/obj/machinery/light/small/emergency{dir = 1},/turf/simulated/floor/plating,/area/maintenance/research_port) "bvQ" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "robotics_solar_inner"; locked = 1; name = "Engineering External Access"; req_access = list(11,13)},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/plating,/area/maintenance/research_port) @@ -4891,7 +4891,7 @@ "bQc" = (/obj/structure/table/marble,/obj/item/clothing/head/cakehat,/turf/simulated/floor/lino,/area/crew_quarters/bar) "bQd" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/bar) "bQe" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/flora/pottedplant{tag = "icon-plant-10"; icon_state = "plant-10"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/wood,/area/crew_quarters/bar) -"bQf" = (/turf/simulated/floor/light,/area/crew_quarters/bar) +"bQf" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "toxinsrec_airlock"; name = "exterior access button"; pixel_x = 25; pixel_y = 25; req_one_access = list(13,65)},/turf/simulated/floor/asteroid,/area/mine/unexplored) "bQg" = (/obj/structure/flora/pottedplant{tag = "icon-plant-10"; icon_state = "plant-10"},/turf/simulated/floor/wood,/area/maintenance/library) "bQh" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/carpet,/area/maintenance/library) "bQi" = (/obj/effect/landmark/costume/commie,/obj/structure/table/rack,/turf/simulated/floor/wood,/area/maintenance/library) @@ -4910,7 +4910,7 @@ "bQv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{tag = "icon-map-scrubbers (WEST)"; icon_state = "map-scrubbers"; dir = 8},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/wood,/area/crew_quarters/bar) "bQw" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/wood,/area/crew_quarters/bar) "bQx" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/crew_quarters/bar) -"bQy" = (/obj/machinery/camera/network/civilian_west{c_tag = "Bar - Dance Floor"; dir = 8},/turf/simulated/floor/light,/area/crew_quarters/bar) +"bQy" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "solar_xeno_airlock"; name = "exterior access button"; pixel_x = 27; pixel_y = 26; req_one_access = list(13)},/turf/simulated/floor/asteroid,/area/mine/unexplored) "bQz" = (/obj/effect/landmark/costume/plaguedoctor,/obj/structure/table/rack,/turf/simulated/floor/wood,/area/maintenance/library) "bQA" = (/obj/effect/landmark/costume/elpresidente,/obj/structure/table/rack,/turf/simulated/floor/wood,/area/maintenance/library) "bQB" = (/obj/structure/table/rack,/obj/random/loot,/turf/simulated/floor/tiled,/area/maintenance/research_port) @@ -5216,7 +5216,7 @@ "bWp" = (/obj/effect/floor_decal/corner/brown{tag = "icon-corner_white (SOUTHEAST)"; icon_state = "corner_white"; dir = 6},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) "bWq" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/obj/structure/plasticflaps,/obj/machinery/mineral/output,/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) "bWr" = (/obj/machinery/mineral/stacking_machine,/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) -"bWs" = (/obj/machinery/mineral/input,/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) +"bWs" = (/obj/machinery/floor_light/dance/alternate,/turf/simulated/floor/light,/area/crew_quarters/bar) "bWt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/library) "bWu" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/random/junk,/turf/simulated/floor/plating,/area/maintenance/library) "bWv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/disposalpipe/tagger/partial{tag = "icon-pipe-tagger-partial (NORTH)"; name = "Sorting Office"; icon_state = "pipe-tagger-partial"; dir = 1; sort_tag = "Sorting Office"},/turf/simulated/floor/plating,/area/maintenance/library) @@ -5236,7 +5236,7 @@ "bWJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) "bWK" = (/obj/machinery/mineral/stacking_unit_console,/turf/simulated/wall/r_wall,/area/outpost/mining_main/refinery) "bWL" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor{dir = 2},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/outpost/mining_main/refinery) -"bWM" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) +"bWM" = (/obj/machinery/floor_light/dance,/turf/simulated/floor/light,/area/crew_quarters/bar) "bWN" = (/obj/structure/disposalpipe/sortjunction/wildcard{tag = "icon-pipe-j1s (NORTH)"; icon_state = "pipe-j1s"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/library) "bWO" = (/obj/effect/decal/warning_stripes,/obj/structure/ladder/up{pixel_y = 16},/turf/simulated/floor/plating,/area/maintenance/library) "bWP" = (/turf/simulated/wall,/area/maintenance/disposal) @@ -5251,14 +5251,14 @@ "bWY" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/asteroid,/area/mine/unexplored) "bWZ" = (/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/closet/crate/freezer,/turf/simulated/floor/tiled,/area/quartermaster/storage) "bXa" = (/obj/structure/table/rack{dir = 8; layer = 2.9},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/quartermaster/storage) -"bXb" = (/obj/structure/closet/crate,/obj/effect/floor_decal/corner/brown/full{tag = "icon-corner_white_full (WEST)"; icon_state = "corner_white_full"; dir = 8},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) -"bXc" = (/obj/structure/closet/crate,/obj/machinery/light{dir = 1},/obj/effect/floor_decal/corner/brown{tag = "icon-corner_white (NORTHEAST)"; icon_state = "corner_white"; dir = 5},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) -"bXd" = (/obj/structure/closet/crate,/obj/effect/floor_decal/corner/brown/full{tag = "icon-corner_white_full (NORTH)"; icon_state = "corner_white_full"; dir = 1},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) +"bXb" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/corner/brown{tag = "icon-corner_white (NORTHEAST)"; icon_state = "corner_white"; dir = 5},/obj/machinery/mineral/rigpress,/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) +"bXc" = (/obj/effect/floor_decal/corner/brown/full{tag = "icon-corner_white_full (WEST)"; icon_state = "corner_white_full"; dir = 8},/obj/structure/table/standard{name = "plastic table frame"},/obj/item/weapon/crowbar/red{desc = "Used to remove floors and to pry open doors. And, once in a while, save the world."},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) +"bXd" = (/obj/effect/floor_decal/corner/brown/full{tag = "icon-corner_white_full (NORTH)"; icon_state = "corner_white_full"; dir = 1},/obj/machinery/mineral/equipment_vendor,/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) "bXe" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/outpost/mining_main/refinery) "bXf" = (/obj/effect/floor_decal/corner/brown{tag = "icon-corner_white (EAST)"; icon_state = "corner_white"; dir = 4},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) "bXg" = (/obj/effect/floor_decal/corner/brown/full{tag = "icon-corner_white_full (NORTH)"; icon_state = "corner_white_full"; dir = 1},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) "bXh" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/outpost/mining_main/refinery) -"bXi" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) +"bXi" = (/obj/machinery/camera/network/civilian_west{c_tag = "Bar - Dance Floor"; dir = 8},/obj/machinery/floor_light/dance/alternate,/turf/simulated/floor/light,/area/crew_quarters/bar) "bXj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/library) "bXk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/library) "bXl" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/plating,/area/maintenance/library) @@ -5309,11 +5309,11 @@ "bYe" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) "bYf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) "bYg" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/outpost/mining_main/refinery) -"bYh" = (/obj/item/weapon/wrench,/obj/item/weapon/screwdriver,/obj/item/weapon/crowbar,/obj/structure/table/steel_reinforced,/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTHWEST)"; icon_state = "warning_dust"; dir = 9},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) -"bYi" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTH)"; icon_state = "warning_dust"; dir = 1},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) -"bYj" = (/obj/machinery/mining/drill,/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTHEAST)"; icon_state = "warning_dust"; dir = 5},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) -"bYk" = (/obj/machinery/mining/drill,/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTHWEST)"; icon_state = "warning_dust"; dir = 9},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) -"bYl" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTHEAST)"; icon_state = "warning_dust"; dir = 5},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) +"bYh" = (/obj/effect/floor_decal/corner/brown/full{tag = "icon-corner_white_full (WEST)"; icon_state = "corner_white_full"; dir = 8},/obj/structure/weightlifter,/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) +"bYi" = (/obj/effect/decal/cleanable/blood/tracks/footprints,/turf/simulated/floor/airless,/area/mine/unexplored) +"bYj" = (/obj/structure/girder/reinforced,/turf/simulated/floor/airless,/area/mine/unexplored) +"bYk" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/effect/floor_decal/corner/brown{tag = "icon-corner_white (NORTHWEST)"; icon_state = "corner_white"; dir = 9},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) +"bYl" = (/obj/effect/floor_decal/corner/brown{tag = "icon-corner_white (NORTHEAST)"; icon_state = "corner_white"; dir = 5},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) "bYm" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) "bYn" = (/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) "bYo" = (/obj/machinery/door/window,/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) @@ -5325,9 +5325,9 @@ "bYu" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) "bYv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) "bYw" = (/obj/machinery/conveyor_switch/oneway{id = "mining_internal"; name = "mining conveyor"},/obj/effect/floor_decal/corner/brown{tag = "icon-corner_white (SOUTHEAST)"; icon_state = "corner_white"; dir = 6},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) -"bYx" = (/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/structure/table/steel_reinforced,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (WEST)"; icon_state = "warning_dust"; dir = 8},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) -"bYy" = (/obj/machinery/mining/brace,/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (EAST)"; icon_state = "warning_dust"; dir = 4},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) -"bYz" = (/obj/machinery/mining/brace,/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (WEST)"; icon_state = "warning_dust"; dir = 8},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) +"bYx" = (/obj/effect/decal/cleanable/vomit,/turf/simulated/floor/airless,/area/mine/unexplored) +"bYy" = (/obj/structure/track{tag = "icon-track14"; icon_state = "track14"},/obj/structure/ore_box{icon_state = "orebox1"; name = "minecart ore box"},/turf/simulated/floor/asteroid,/area/mine/unexplored) +"bYz" = (/obj/structure/closet/crate/secure/loot,/obj/random/loot,/obj/random/loot,/turf/simulated/floor/airless,/area/mine/unexplored) "bYA" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (EAST)"; icon_state = "warning_dust"; dir = 4},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) "bYB" = (/obj/random/junk,/turf/simulated/floor/asteroid,/area/mine/unexplored) "bYC" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) @@ -5337,22 +5337,22 @@ "bYG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/cargo) "bYH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/closet,/obj/random/junk,/turf/simulated/floor/plating,/area/maintenance/cargo) "bYI" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/table/rack,/obj/random/loot,/turf/simulated/floor/plating,/area/maintenance/cargo) -"bYJ" = (/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/effect/floor_decal/corner/brown/full{tag = "icon-corner_white_full (WEST)"; icon_state = "corner_white_full"; dir = 8},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) -"bYK" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) +"bYJ" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/airless,/area/mine/unexplored) +"bYK" = (/obj/effect/floor_decal/corner/brown/full,/obj/structure/punching_bag,/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) "bYL" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor{dir = 2},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/outpost/mining_main/refinery) "bYM" = (/obj/machinery/mineral/unloading_machine,/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) -"bYN" = (/obj/machinery/cell_charger,/obj/structure/table/steel_reinforced,/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (SOUTHWEST)"; icon_state = "warning_dust"; dir = 10},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) -"bYO" = (/obj/effect/floor_decal/industrial/warning/dust,/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) -"bYP" = (/obj/machinery/mining/brace,/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (SOUTHEAST)"; icon_state = "warning_dust"; dir = 6},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) -"bYQ" = (/obj/machinery/mining/brace,/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (SOUTHWEST)"; icon_state = "warning_dust"; dir = 10},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) -"bYR" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (SOUTHEAST)"; icon_state = "warning_dust"; dir = 6},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) -"bYS" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTHWEST)"; icon_state = "warning_dust"; dir = 9},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) +"bYN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) +"bYO" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/outpost/mining_main/eva) +"bYP" = (/obj/structure/track{tag = "icon-track14"; icon_state = "track14"},/turf/simulated/floor/asteroid,/area/mine/unexplored) +"bYQ" = (/obj/structure/track{tag = "icon-track10"; icon_state = "track10"},/turf/simulated/floor/asteroid,/area/mine/unexplored) +"bYR" = (/obj/structure/track{tag = "icon-track6"; icon_state = "track6"},/obj/structure/ore_box{icon_state = "orebox1"; name = "minecart ore box"},/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTHEAST)"; icon_state = "warning_dust"; dir = 5},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) +"bYS" = (/obj/machinery/light/small{tag = "icon-bulb-broken (WEST)"; icon_state = "bulb-broken"; dir = 8; base_state = "bulb-broken"},/turf/simulated/floor/airless,/area/mine/unexplored) "bYT" = (/obj/structure/boulder{tag = "icon-boulder3"; icon_state = "boulder3"},/turf/simulated/floor/asteroid,/area/mine/unexplored) "bYU" = (/turf/simulated/floor/asteroid,/turf/simulated/shuttle/wall{tag = "icon-swall_c (EAST)"; icon_state = "swall_c"; dir = 4},/area/mine/unexplored) -"bYV" = (/obj/structure/girder/reinforced,/turf/simulated/floor/plating,/area/mine/unexplored) -"bYW" = (/obj/effect/decal/cleanable/blood/tracks/footprints,/turf/simulated/floor/plating,/area/mine/unexplored) +"bYV" = (/obj/machinery/light/small{base_state = "bulb-broken"; dir = 4; icon_state = "bulb-broken"},/obj/effect/large_stock_marker,/turf/simulated/floor/airless,/area/mine/unexplored) +"bYW" = (/obj/machinery/door/airlock/mining{id_tag = "cargodoor"; name = "Mining Dock"; req_access = list(50)},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) "bYX" = (/turf/simulated/shuttle/wall{tag = "icon-swall_straight (WEST)"; icon_state = "swall_straight"; dir = 8},/area/mine/unexplored) -"bYY" = (/turf/simulated/floor/plating,/area/mine/unexplored) +"bYY" = (/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/camera/network/mining{c_tag = "Mining - Suit Storage"; dir = 4},/obj/structure/table/rack,/obj/item/clothing/head/helmet/space/void/mining,/obj/item/clothing/mask/breath,/obj/item/clothing/suit/space/void/mining,/obj/item/stack/flag/red,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "bYZ" = (/turf/simulated/floor/asteroid,/turf/simulated/shuttle/wall{tag = "icon-swall_c"; icon_state = "swall_c"},/area/mine/unexplored) "bZa" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/cargo) "bZb" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/tiled,/area/maintenance/cargo) @@ -5363,16 +5363,16 @@ "bZg" = (/obj/vehicle/train/cargo/engine,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/maintenance/cargo) "bZh" = (/obj/random/junk,/turf/simulated/floor/plating,/area/maintenance/cargo) "bZi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/cargo) -"bZj" = (/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/effect/floor_decal/corner/brown{tag = "icon-corner_white (NORTHWEST)"; icon_state = "corner_white"; dir = 9},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) -"bZk" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) -"bZl" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) -"bZm" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/floor_decal/corner/brown{tag = "icon-corner_white (EAST)"; icon_state = "corner_white"; dir = 4},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) -"bZn" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/effect/floor_decal/corner/brown{tag = "icon-corner_white (NORTHEAST)"; icon_state = "corner_white"; dir = 5},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) +"bZj" = (/obj/structure/table/rack,/obj/item/clothing/head/helmet/space/void/mining,/obj/item/clothing/mask/breath,/obj/item/clothing/suit/space/void/mining,/obj/item/stack/flag/yellow,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"bZk" = (/obj/structure/table/rack,/obj/item/clothing/head/helmet/space/void/mining,/obj/item/clothing/mask/breath,/obj/item/clothing/suit/space/void/mining,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"bZl" = (/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/airless,/area/mine/unexplored) +"bZm" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/obj/machinery/conveyor{dir = 4; id = "mining_internal"},/turf/simulated/floor/airless,/area/mine/unexplored) +"bZn" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/turf/simulated/floor/airless,/area/mine/unexplored) "bZo" = (/obj/machinery/mineral/input,/obj/effect/floor_decal/corner/brown/full{tag = "icon-corner_white_full (NORTH)"; icon_state = "corner_white_full"; dir = 1},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) -"bZp" = (/obj/effect/floor_decal/industrial/warning/dust/corner{tag = "icon-warningcorner_dust (NORTH)"; icon_state = "warningcorner_dust"; dir = 1},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) -"bZq" = (/obj/effect/decal/cleanable/vomit,/turf/simulated/floor/plating,/area/mine/unexplored) -"bZr" = (/obj/structure/closet/crate/secure/loot,/obj/random/loot,/obj/random/loot,/turf/simulated/floor/plating,/area/mine/unexplored) -"bZs" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/plating,/area/mine/unexplored) +"bZp" = (/obj/structure/closet/secure_closet/miner,/obj/item/weapon/key/minecarts,/obj/effect/floor_decal/corner/brown/full{tag = "icon-corner_white_full (WEST)"; icon_state = "corner_white_full"; dir = 8},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"bZq" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/disposalpipe/segment,/obj/effect/landmark/start{name = "Shaft Miner"},/obj/effect/floor_decal/corner/brown{tag = "icon-corner_white (NORTH)"; icon_state = "corner_white"; dir = 1},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"bZr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/brown{tag = "icon-corner_white (EAST)"; icon_state = "corner_white"; dir = 4},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"bZs" = (/obj/structure/table/rack{dir = 1},/obj/item/weapon/pickaxe{pixel_x = 5},/obj/item/weapon/shovel{pixel_x = -5},/obj/effect/floor_decal/corner/brown/full{tag = "icon-corner_white_full (NORTH)"; icon_state = "corner_white_full"; dir = 1},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "bZt" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall_straight"; dir = 1},/area/mine/unexplored) "bZu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor{dir = 2},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/cargo) "bZv" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate/secure/loot,/turf/simulated/floor/plating,/area/maintenance/cargo) @@ -5380,17 +5380,17 @@ "bZx" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/cargo) "bZy" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/cargo) "bZz" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/maintenance/cargo) -"bZA" = (/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/effect/floor_decal/corner/brown/full,/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) -"bZB" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) +"bZA" = (/obj/effect/large_stock_marker,/turf/simulated/floor/airless,/area/mine/unexplored) +"bZB" = (/obj/random/loot,/turf/simulated/floor/airless,/area/mine/unexplored) "bZC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) "bZD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) -"bZE" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) +"bZE" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/floor/airless,/area/mine/unexplored) "bZF" = (/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/obj/machinery/camera/network/civilian_west{c_tag = "Mining - Mineral Processing"; dir = 8},/obj/effect/floor_decal/corner/brown{tag = "icon-corner_white (SOUTHEAST)"; icon_state = "corner_white"; dir = 6},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) "bZG" = (/turf/simulated/wall,/area/outpost/mining_main/eva) "bZH" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/outpost/mining_main/eva) "bZI" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/outpost/mining_main/eva) -"bZJ" = (/obj/machinery/light/small{tag = "icon-bulb-broken (WEST)"; icon_state = "bulb-broken"; dir = 8; base_state = "bulb-broken"},/turf/simulated/floor/plating,/area/mine/unexplored) -"bZK" = (/obj/machinery/light/small{base_state = "bulb-broken"; dir = 4; icon_state = "bulb-broken"},/obj/effect/large_stock_marker,/turf/simulated/floor/plating,/area/mine/unexplored) +"bZJ" = (/obj/structure/closet/secure_closet/miner,/obj/item/weapon/key/minecarts,/obj/machinery/camera/network/civilian_west{c_tag = "Mining - Expedition Preparation"; dir = 4},/obj/effect/floor_decal/corner/brown{tag = "icon-corner_white (NORTHWEST)"; icon_state = "corner_white"; dir = 9},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"bZK" = (/obj/structure/disposalpipe/segment,/obj/effect/landmark/start{name = "Shaft Miner"},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "bZL" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/firedoor,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/cargo) "bZM" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/cargo) "bZN" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor{dir = 2},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/cargo) @@ -5400,39 +5400,39 @@ "bZR" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/outpost/mining_main/refinery) "bZS" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/outpost/mining_main/refinery) "bZT" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/outpost/mining_main/refinery) -"bZU" = (/obj/machinery/door/airlock/mining{id_tag = "cargodoor"; name = "Mining Dock"; req_access = list(50)},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) -"bZV" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/void/mining,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/void/mining,/obj/item/weapon/mining_scanner,/obj/item/stack/flag/green,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) -"bZW" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/void/mining,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/void/mining,/obj/item/weapon/mining_scanner,/obj/item/stack/flag/red,/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) -"bZX" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/void/mining,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/void/mining,/obj/item/weapon/mining_scanner,/obj/item/stack/flag/yellow,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"bZU" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"bZV" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/void/mining,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/void/mining,/obj/item/stack/flag/green,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"bZW" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"bZX" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/table/standard,/obj/item/device/suit_cooling_unit/improved,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/weapon/storage/belt/utility,/obj/effect/floor_decal/corner/brown{tag = "icon-corner_white (SOUTHEAST)"; icon_state = "corner_white"; dir = 6},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "bZY" = (/obj/machinery/suit_cycler/mining,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) -"bZZ" = (/obj/effect/floor_decal/industrial/warning/dust/corner{tag = "icon-warningcorner_dust (EAST)"; icon_state = "warningcorner_dust"; dir = 4},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) -"caa" = (/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plating,/area/mine/unexplored) -"cab" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/turf/simulated/floor/plating,/area/mine/unexplored) -"cac" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/obj/machinery/conveyor{dir = 4; id = "mining_internal"},/turf/simulated/floor/plating,/area/mine/unexplored) +"bZZ" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTH)"; icon_state = "warning_dust"; dir = 1},/obj/structure/track{tag = "icon-track13"; icon_state = "track13"},/obj/vehicle/train/cargo/trolley/mining,/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) +"caa" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "supply_shuttle"; pixel_x = 25; pixel_y = 0; req_one_access = list(13,31); tag_door = "supply_shuttle_hatch"},/obj/random/loot,/turf/simulated/floor/airless,/area/mine/unexplored) +"cab" = (/obj/structure/closet/secure_closet/miner,/obj/item/weapon/key/minecarts,/obj/effect/floor_decal/corner/brown{tag = "icon-corner_white (NORTHWEST)"; icon_state = "corner_white"; dir = 9},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"cac" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j1"; dir = 4},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "cad" = (/obj/machinery/door/airlock/external,/obj/machinery/conveyor{dir = 4; id = "mining_internal"},/turf/simulated/floor/plating,/area/maintenance/cargo) "cae" = (/obj/machinery/conveyor{dir = 4; id = "mining_internal"},/turf/simulated/floor/plating,/area/maintenance/cargo) "caf" = (/obj/machinery/conveyor{tag = "icon-conveyor-broken (EAST)"; icon_state = "conveyor-broken"; dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/cargo) "cag" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/generic,/obj/random/loot,/turf/simulated/floor/tiled,/area/maintenance/cargo) -"cah" = (/obj/structure/table/rack{dir = 1},/obj/item/weapon/pickaxe{pixel_x = 5},/obj/item/weapon/shovel{pixel_x = -5},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) -"cai" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"cah" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/effect/landmark/start{name = "Shaft Miner"},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"cai" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "caj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "cak" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) -"cal" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"cal" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "cam" = (/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "can" = (/obj/machinery/door/airlock/maintenance,/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/outpost/mining_main/eva) -"cao" = (/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/camera/network/mining{c_tag = "Mining - Suit Storage"; dir = 4},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"cao" = (/obj/machinery/door/airlock/glass_mining{name = "Mining Station EVA"; req_access = list(54)},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "cap" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "caq" = (/obj/machinery/light_switch{pixel_x = 25; pixel_y = -9},/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 10},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) -"car" = (/obj/effect/large_stock_marker,/turf/simulated/floor/plating,/area/mine/unexplored) -"cas" = (/obj/random/loot,/turf/simulated/floor/plating,/area/mine/unexplored) -"cat" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/floor/plating,/area/mine/unexplored) +"car" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/corner/brown{tag = "icon-corner_white (SOUTHEAST)"; icon_state = "corner_white"; dir = 6},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"cas" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"cat" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "cau" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plating,/area/maintenance/cargo) "cav" = (/obj/effect/decal/cleanable/cobweb2{icon_state = "spiderling"; name = "dead spider"; tag = "icon-spiderling"},/obj/random/junk,/turf/simulated/floor/plating,/area/maintenance/cargo) "caw" = (/obj/machinery/door/airlock/maintenance,/obj/effect/decal/cleanable/dirt,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/cargo) -"cax" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/effect/floor_decal/corner/brown{tag = "icon-corner_white (NORTHWEST)"; icon_state = "corner_white"; dir = 9},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) -"cay" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) -"caz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) -"caA" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"cax" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"cay" = (/obj/machinery/door/airlock/glass_mining{name = "Mining Station EVA"; req_access = list(54)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"caz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{tag = "icon-intact-scrubbers (NORTHWEST)"; icon_state = "intact-scrubbers"; dir = 9},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"caA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{tag = "icon-intact-supply (NORTHWEST)"; icon_state = "intact-supply"; dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "caB" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/disposalpipe/segment,/obj/machinery/camera/network/civilian_west{c_tag = "Mining - Camera 1"; dir = 4},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "caC" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "caD" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) @@ -5442,21 +5442,21 @@ "caH" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1379; id_tag = "mining_east_pump"},/obj/structure/sign/vacuum{pixel_y = 32},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "caI" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1379; id_tag = "mining_east_pump"},/obj/structure/closet/walllocker/emerglocker/north,/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "caJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/outpost/mining_main/eva) -"caK" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "supply_shuttle"; pixel_x = 25; pixel_y = 0; req_one_access = list(13,31); tag_door = "supply_shuttle_hatch"},/obj/random/loot,/turf/simulated/floor/plating,/area/mine/unexplored) +"caK" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "caL" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/cargo) -"caM" = (/obj/structure/table/standard,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen,/obj/machinery/camera/network/civilian_west{c_tag = "Mining - Expedition Preparation"; dir = 4},/obj/effect/floor_decal/corner/brown{tag = "icon-corner_white (NORTHWEST)"; icon_state = "corner_white"; dir = 9},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) -"caN" = (/obj/structure/bed/chair/office/dark{dir = 8},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) -"caO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark/start{name = "Shaft Miner"},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) -"caP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark/start{name = "Shaft Miner"},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) -"caQ" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark/start{name = "Shaft Miner"},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) -"caR" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark/start{name = "Shaft Miner"},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) -"caS" = (/obj/machinery/door/airlock/glass_mining{name = "Mining Station EVA"; req_access = list(54)},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) -"caT" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) -"caU" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) -"caV" = (/obj/machinery/door/airlock/glass_mining{name = "Mining Station EVA"; req_access = list(54)},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) -"caW" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) -"caX" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{tag = "icon-intact-supply (NORTHWEST)"; icon_state = "intact-supply"; dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) -"caY" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{tag = "icon-intact-scrubbers (NORTHWEST)"; icon_state = "intact-scrubbers"; dir = 9},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"caM" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (EAST)"; icon_state = "warning_dust"; dir = 4},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "mining_east_airlock"; name = "exterior access button"; pixel_x = -27; pixel_y = -26; req_one_access = newlist()},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) +"caN" = (/obj/structure/closet/secure_closet/miner,/obj/item/weapon/key/minecarts,/obj/effect/floor_decal/corner/brown/full,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"caO" = (/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/corner/brown{tag = "icon-corner_white (WEST)"; icon_state = "corner_white"; dir = 8},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"caP" = (/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/obj/effect/landmark/start{name = "Shaft Miner"},/obj/effect/floor_decal/corner/brown{tag = "icon-corner_white (SOUTHWEST)"; icon_state = "corner_white"; dir = 10},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"caQ" = (/obj/effect/floor_decal/corner/brown,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"caR" = (/obj/machinery/mineral/input,/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) +"caS" = (/obj/structure/bed/chair/office/dark,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"caT" = (/obj/structure/filingcabinet,/obj/effect/floor_decal/corner/brown/full{tag = "icon-corner_white_full (EAST)"; icon_state = "corner_white_full"; dir = 4},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"caU" = (/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/machinery/atmospherics/portables_connector{dir = 1},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"caV" = (/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/light,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"caW" = (/obj/machinery/mech_recharger,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"caX" = (/obj/machinery/conveyor{dir = 4},/turf/simulated/floor/airless,/area/mine/unexplored) +"caY" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/obj/effect/floor_decal/corner/brown/full,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "caZ" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "mining_east_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "cba" = (/obj/machinery/door/firedoor{dir = 2},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_east_inner"; locked = 1; name = "Mining External Access"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "cbb" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) @@ -5464,44 +5464,52 @@ "cbd" = (/obj/machinery/door/firedoor{dir = 2},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_east_outer"; locked = 1; name = "Mining External Access"; req_access = list(10,13)},/turf/simulated/floor/plating,/area/outpost/mining_main/eva) "cbe" = (/obj/item/weapon/key/cargo_train,/turf/simulated/floor/plating,/area/maintenance/cargo) "cbf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/random/junk,/turf/simulated/floor/plating,/area/maintenance/cargo) -"cbg" = (/obj/structure/table/standard,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/effect/floor_decal/corner/brown/full,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) -"cbh" = (/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/obj/effect/floor_decal/corner/brown{tag = "icon-corner_white (SOUTHWEST)"; icon_state = "corner_white"; dir = 10},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) -"cbi" = (/obj/structure/closet/secure_closet/miner,/obj/effect/floor_decal/corner/brown{tag = "icon-corner_white (SOUTHWEST)"; icon_state = "corner_white"; dir = 10},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) -"cbj" = (/obj/structure/closet/secure_closet/miner,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/effect/floor_decal/corner/brown{tag = "icon-corner_white (SOUTHWEST)"; icon_state = "corner_white"; dir = 10},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) -"cbk" = (/obj/structure/closet/secure_closet/miner,/obj/structure/cable/green,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/effect/floor_decal/corner/brown{tag = "icon-corner_white (SOUTHWEST)"; icon_state = "corner_white"; dir = 10},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) -"cbl" = (/obj/structure/closet/secure_closet/miner,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"cbg" = (/obj/structure/table/standard,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen,/obj/effect/floor_decal/corner/brown/full{tag = "icon-corner_white_full (EAST)"; icon_state = "corner_white_full"; dir = 4},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"cbh" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/effect/floor_decal/corner/brown{dir = 10},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"cbi" = (/obj/effect/floor_decal/industrial/warning/dust/corner{tag = "icon-warningcorner_dust (EAST)"; icon_state = "warningcorner_dust"; dir = 4},/obj/structure/track{tag = "icon-track5"; icon_state = "track5"},/obj/vehicle/train/cargo/trolley/mining,/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) +"cbj" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTHEAST)"; icon_state = "warning_dust"; dir = 5},/obj/structure/track{tag = "icon-track13"; icon_state = "track13"},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) +"cbk" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (NORTH)"; icon_state = "warning_dust"; dir = 1},/obj/structure/track{tag = "icon-track13"; icon_state = "track13"},/obj/vehicle/train/cargo/engine/mining,/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) +"cbl" = (/obj/machinery/conveyor{dir = 1; id = "mining_internal"},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) "cbm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "cbn" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) -"cbo" = (/obj/machinery/mech_recharger,/turf/simulated/floor/plating,/area/outpost/mining_main/eva) -"cbp" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) +"cbo" = (/obj/effect/decal/cleanable/generic,/obj/random/loot,/turf/simulated/floor/airless,/area/mine/unexplored) +"cbp" = (/obj/machinery/light/small{tag = "icon-bulb-broken (WEST)"; icon_state = "bulb-broken"; dir = 8; base_state = "bulb-broken"},/obj/random/loot,/turf/simulated/floor/airless,/area/mine/unexplored) "cbq" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "mining_east_pump"; tag_exterior_door = "mining_east_outer"; frequency = 1379; id_tag = "mining_east_airlock"; tag_interior_door = "mining_east_inner"; pixel_x = 0; pixel_y = -25; tag_chamber_sensor = "mining_east_sensor"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "mining_east_pump"},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "cbr" = (/obj/structure/ore_box,/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "mining_east_sensor"; pixel_x = 0; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "mining_east_pump"},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "cbs" = (/obj/machinery/camera/network/civilian_west{c_tag = "Exterior - Mining Airlock"; dir = 4},/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (SOUTHEAST)"; icon_state = "warning_dust"; dir = 6},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) -"cbt" = (/obj/machinery/conveyor{dir = 4},/turf/simulated/floor/plating,/area/mine/unexplored) +"cbt" = (/obj/machinery/light/small{base_state = "bulb-broken"; dir = 4; icon_state = "bulb-broken"},/turf/simulated/floor/airless,/area/mine/unexplored) "cbu" = (/obj/machinery/conveyor{dir = 4; id = "mining_internal"},/turf/simulated/floor/tiled,/area/maintenance/cargo) "cbv" = (/obj/machinery/conveyor{tag = "icon-conveyor-broken (WEST)"; icon_state = "conveyor-broken"; dir = 8},/turf/simulated/floor/plating,/area/maintenance/cargo) "cbw" = (/obj/machinery/conveyor{tag = "icon-conveyor-broken (EAST)"; icon_state = "conveyor-broken"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/cargo) "cbx" = (/obj/machinery/conveyor{dir = 4; id = "mining_internal"},/obj/structure/closet/crate/radiation,/turf/simulated/floor/tiled,/area/maintenance/cargo) "cby" = (/obj/machinery/conveyor{tag = "icon-conveyor-broken (WEST)"; icon_state = "conveyor-broken"; dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/maintenance/cargo) "cbz" = (/obj/machinery/door/airlock/maintenance,/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/turf/simulated/floor/asteroid,/area/outpost/mining_main/eva) -"cbA" = (/obj/effect/floor_decal/industrial/warning/dust/corner,/turf/simulated/wall,/area/outpost/mining_main/eva) -"cbB" = (/obj/machinery/light/small{tag = "icon-bulb-broken (WEST)"; icon_state = "bulb-broken"; dir = 8; base_state = "bulb-broken"},/obj/random/loot,/turf/simulated/floor/plating,/area/mine/unexplored) -"cbC" = (/obj/effect/decal/cleanable/generic,/obj/random/loot,/turf/simulated/floor/plating,/area/mine/unexplored) -"cbD" = (/obj/machinery/light/small{base_state = "bulb-broken"; dir = 4; icon_state = "bulb-broken"},/turf/simulated/floor/plating,/area/mine/unexplored) -"cbE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/random/junk,/turf/simulated/floor/plating,/area/maintenance/cargo) +"cbA" = (/obj/structure/track{tag = "icon-track12"; icon_state = "track12"},/turf/simulated/floor/asteroid,/area/mine/unexplored) +"cbB" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/plating,/area/maintenance/cargo) +"cbC" = (/obj/random/junk,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/plating,/area/maintenance/cargo) +"cbD" = (/obj/item/weapon/wrench,/obj/item/weapon/screwdriver,/obj/item/weapon/crowbar,/obj/structure/table/steel_reinforced,/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (SOUTHWEST)"; icon_state = "warning_dust"; dir = 10},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) +"cbE" = (/obj/machinery/cell_charger,/obj/structure/table/steel_reinforced,/obj/effect/floor_decal/industrial/warning/dust,/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) "cbF" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/plating,/area/maintenance/cargo) -"cbG" = (/obj/structure/closet/crate/secure/loot,/obj/random/loot,/turf/simulated/floor/plating,/area/mine/unexplored) -"cbH" = (/obj/structure/closet,/turf/simulated/floor/plating,/area/maintenance/cargo) -"cbI" = (/obj/machinery/light/small/emergency,/obj/structure/closet/crate,/turf/simulated/floor/plating,/area/maintenance/cargo) -"cbJ" = (/obj/structure/closet/crate,/obj/random/loot,/turf/simulated/floor/plating,/area/maintenance/cargo) +"cbG" = (/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/structure/table/steel_reinforced,/obj/effect/floor_decal/industrial/warning/dust,/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) +"cbH" = (/obj/machinery/mech_recharger,/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (SOUTHEAST)"; icon_state = "warning_dust"; dir = 6},/turf/simulated/floor/tiled/airless{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/mine/unexplored) +"cbI" = (/obj/structure/closet/crate/secure/loot,/obj/random/loot,/turf/simulated/floor/airless,/area/mine/unexplored) +"cbJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/cargo) "cbK" = (/obj/structure/girder/reinforced,/turf/simulated/floor/asteroid,/area/mine/unexplored) "cbL" = (/turf/simulated/shuttle/wall{icon_state = "swall15"; dir = 2},/area/mine/unexplored) -"cbM" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/simulated/floor/plating,/area/mine/unexplored) +"cbM" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/plating,/area/maintenance/cargo) "cbN" = (/turf/simulated/floor/asteroid,/turf/simulated/shuttle/wall{tag = "icon-swall_c (WEST)"; icon_state = "swall_c"; dir = 8},/area/mine/unexplored) -"cbO" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"},/turf/simulated/floor/plating,/area/mine/unexplored) -"cbP" = (/obj/structure/shuttle/engine/propulsion,/turf/simulated/floor/plating,/area/mine/unexplored) -"cbQ" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"},/turf/simulated/floor/plating,/area/mine/unexplored) - +"cbO" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/simulated/floor/airless,/area/mine/unexplored) +"cbP" = (/obj/structure/shuttle/engine/propulsion,/turf/simulated/floor/airless,/area/mine/unexplored) +"cbQ" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"},/turf/simulated/floor/airless,/area/mine/unexplored) +"cbR" = (/obj/machinery/mineral/output,/obj/machinery/conveyor{dir = 1; id = "mining_internal"},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) +"cbS" = (/obj/machinery/mineral/input,/obj/machinery/conveyor{dir = 1; id = "mining_internal"},/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) +"cbT" = (/obj/machinery/conveyor{dir = 1; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) +"cbU" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"},/turf/simulated/floor/airless,/area/mine/unexplored) +"cbW" = (/obj/structure/track,/turf/simulated/floor/asteroid,/area/mine/unexplored) +"cbX" = (/obj/structure/track{tag = "icon-track8"; icon_state = "track8"},/turf/simulated/floor/asteroid,/area/mine/unexplored) +"cbY" = (/obj/structure/track{tag = "icon-track3"; icon_state = "track3"},/turf/simulated/floor/asteroid,/area/mine/unexplored) +"ccc" = (/obj/structure/track{tag = "icon-track1"; icon_state = "track1"},/turf/simulated/floor/asteroid,/area/mine/unexplored) + (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -5541,38 +5549,38 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaabaabaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaabaabaabaabaabaabaabaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaabaabaabaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaabaabaabaabaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaacaadaaeaafaaeaagaacaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaacaahaaiaaiaaiaajaacaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaabaabaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaabaabaabaabaabaabaabaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaabaabaabaabaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaacaadaaeaafaaeaagaacaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaacaahaaiaaiaaiaajaacaaaaaaaaaaabaabaabaabaabayFaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaacaakaaiaaiaaiaalaacaaaaaaaaaaaaaabaabaabaamaanaamaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaacaakaaiaaiaaiaaoaacaaaaaaaaaaaaaabaabaabaapaaqaapaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaacaacaacaacaacaacaaaaaaaaaaaaaaaaacaagaaraaraasaataacaaaaaaaaaaabaabaabaabaauaavaawaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -5608,12 +5616,12 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabaabaabaabaq aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatSaaaatSaabaabaabaabaqAaqAaqAaqAaqAaabaabaabaabaabaabaabaabaabaabaabaabaoKatTatTatTatTatUasMapHatVatWaljaljaljaljatXaljatYatZaoPaoQaoQauaaubaoQaoQaoQaljapRapRapRapRapRapRamkaucaudamkaueaufaugamkamkamkamkamkamkamkamkauhakiakiakiauiaujamlamlatnatnapnaukamlaulaumaumaunauoamlakkakkakkakkakkakkakkaaUaaUaaUaupauqaurausautauuafiaflauvauwauxauyauzauAauzauyauzafiafiafiafiauBauCauDauDauDauDauDauDauDauDaagalBauEacgaacaacaacauFauGauGauGauHaacaacaacaagaacaabaabaabaabauIauJauKauLauMauNauOauPauQauRauSauTauUaabaabaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajRajRajRajRauVaabaabaqAatSaqAatSaqAatSaabaabaabaabaabaabaabaabaabaabaabaabaoKauWauXauYauZavaasMapHavbavcavdaveavfavgavhaviavjavkaoPaoOavgavlavmaoOavnavoaljaljaljavpavpaljaljavqavravsavtavuavvavwavxavyavzavAavBavCarcavDansaiNaiNaiNavEavFamlamlatnatnavGatoamlavHapnavIavJavKamlavLavMavMavNavOavPavQavRavSaaUavTavUavVavVavWavMavMavXaopavMavYavZavYawaavYavZavYavMavMavMavMawbawcauDawdawdawdaweawfawgauDawhawiawhawhaaQaabaabaabaabaabaabaabaabaabaacaagaacaabaabaabawjaqtawkawlasFauMawmawnawoauQasFawpawkaqtawqaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatSajRawrawrawrawsawtaabaabawtawtawtawtawtaabaabaabaabaabaabaabaabaabaabaabawtaoKawuawuawvawwawxarMawyavbawzawAawBawCawDavhaviawEawFawGawHawHawIawHawHawHawJawKawLawHawMawMawNawOavqawPawQawRawSawTawUawVavyavzarcawWarcarcarcansaiNaaaaiNarcavFamlamlamlamlamlawXamlawYapnapnawZaxaamlaxbaxcaxdacdaxeabIabIaxfaxgaaUaxhaxiaaUaxjaxkaxlaxmaxnaxoaxnaxpaxqaxpaxnaxpaxraxpaxnaxsaxsaxtaxuabJauDaxvaxwaxxawfaxyaxzaxAaxBaxCaxDawhaabaabaabaabatSaabatSaabaabaabaacaagaacaabaabaabaabasCaxEaxFasFaxGaxHaxIaxJaxKasFaxLaxMasCaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajRaxNawrawrawsawtawtawtawtawtawtawtawtawtawtawtawtawtawtawtawtawtawtawtawtaxOaxPaxQaxRaxSaxTaxUaxVaxWaxXaxYaxZayaaybaycaydayeayfaygaydaydayhaydayiaydayjaykaylaydaydaydaymaynavqayoaypayqayraysaytayuayvavzavDarcaywarcarcansaiNaaaaiNayxayyayzayAayBayCayDayEamlayFapnapnapnayGamlayHayIayJayKayLayMayNayOabIayPavZayQaxkaxkayRaySayTayUayVaxnayWayXayYaxnayZayXayYaxnazaazbazcaxuabJauDazdazeazfazgazhaziazjazkazlaxDawhaabaabaabazmazmazmazmazmaabaabaacaagaacaabaabaabaabaznazoazpasFazqasGazrasGazsasFaztazuatIaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajRaxNawrawrawsawtawtawtawtawtawtawtawtawtawtawtawtawtawtawtawtawtawtawtawtaxOaxPaxQaxRaxSaxTaxUaxVaxWaxXaxYaxZayaaybaycaydayeayfaygaydaydayhaydayiaydayjaykaylaydaydaydaymaynavqayoaypayqayraysaytayuayvavzavDarcaywarcarcansaiNaaaaiNayxayyayzayAayBayCayDayEamlbjwapnapnapnayGamlayHayIayJayKayLayMayNayOabIayPavZayQaxkaxkayRaySayTayUayVaxnayWayXayYaxnayZayXayYaxnazaazbazcaxuabJauDazdazeazfazgazhaziazjazkazlaxDawhaabaabaabazmazmazmazmazmaabaabaacaagaacaabaabaabaabaznazoazpasFazqasGazrasGazsasFaztazuatIaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatSajRawrawrawrawsawtaabaabaabawtawtawtawtawtaabaabaabaabaabaabaabaabaabaabawtaoKawuawuazvazwazxazyarNavbazzawAawBazAazBaoOazCazDazEazFazGazGazGazGazHazGazIazJazKazLazMazNazOazPavqazQawQazRazSazTazUaytayvazVazWazWazWazWazWansaiNaaaaiNazXazYazZaAaayBapnapnaAbamlaAcapnapnapnaxaamlaAdaAeaAfacdavOaAgaAhaAiabIavOaAjaAkaAlaAmaxkaAnaAoaApaAqaxnaAraAsaAtaxnaAraAsaAuaxnaAvaAwaAxaxuabJauDaAyaAzaAAaABaACaADazjaxDaAEaxDawhaabaabatSazmaAFaAGaAHazmatSaabaacabMaacaabaabaabaabauIaAIaAJaAKaALaAMaANaAOaAPaAQaARaASauUaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajRajRajRajRaATaabaabaabaqAatSaqAatSaqAatSaqAaabaabaabaabaabaabaabaabaabaabaoKauWauXauYaoKaAUaAVapHavbaAWaAXaAYaAZaBaaBbaBcawEavkaBdaoQaoQaBeaoQaoQaoQaoQaoQaoQaoQaoQaBfaBgaBhavqavqaBiaBjaBkaBlazUazUavzazVaBmaBnaBoaBpaBqansaiNaaaaiNaiNaiNaBravFayBaBsaBtaBuamlaBvapnapnapnaxaamlaBwaBxaByaBzaBAaBBajzabIaBCaBAaAjaBDaBEaBFaBGaBHaBIaBJaBKaxnaBLaBMaBLaxnaBLaBNaBLaxnaxnaxnaxnaBOaBPauDaBQaxwaBRaBSawfaBTaBUaxDaBVaBWawhaabaabaBXaBYaAGaAGaBZazmaabaabaCaaCbaCaaCaaCaaCaaCaaCaaCaaCcaCdaqtaqtaCeaqtaqtaCcaCdaqtaqtaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatSaaaatSaaaaaaaaaaabaabaqAaqAaqAaqAaqAaqAaabaabaabaabaabaabaabaabaabaabaoKaCfaCgaCgaChaCiasMapHavbaCjaljaljaljaljaljaljatYaCkaClaoQaCmaCnaCoaCpaCpaCpaCpaCqaCraoQaCsaCtaCuaCvaCwaCxaCyaCtaCzaCAaCBaCCaCDaCEaCFaCGaCHaCIaCJaiNaaaaaaaaaaiNaiNavFayBaCKaCLaCMamlamlaCNaCNaCNamlamlaCOaCPaCQaCQaCRaCQaCQaCQaCQaCSaAjayQaBEaCTaCUaCVaCWaCXaCYaCZaDaaAsaDbaDcaDdaDeaDfaDgaDhaDiaDjaDkabJauDaDlaDmaDnaDoaDpaDqaDraDsaDtaDuawhaabaabatSazmaAFaAGaAHazmatSaabaCaaDvaDwaDxaDyaDzaDAaDBaCaaDCaDDaDEaDFaDGaDHaDIaDJaDDaqtaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaqAaqAaqAaqAaqAaabaabaabaabaabaabaabaabaabaoKaDKapHazyaDLaDMaDNaqCaDOaDPaDQaDRaDSaDTaDUaDVaDWavkaBdaoQaDXaCnaCnaCnaCnaDYaCnaCnaDZaoQaEaaEbaEcaEdaEdaEdaEdaEeaEfaEgazUaEhaEiaEjaEiaEiaEiaEiaEkaEiaElaEiaEiaEiaEiavFaaUaEmaEnaEoaEpaEpaEnaEqaEnaEpaEraEsaEtaEtaEtaEuaEtaEtaEvaEtaEtaEwaExaEyaEzaEAaEBaECaEDaEEaEFaEGaEHaDfaEHaDfaEIaAsaEJaAsaEKaELaEMaENauDaEOaEPaEQaERaESaETauDaEUaxCaxDawhaabaabaabazmazmaBYazmazmaabaabaCaaEVaEWaEWaEXaEYaEZaFaaCaaFbaFcaFdaFeaDGaFeaFfaFcaFgaqtaabaabaabaabaabaabaaaaaaaabaabaabaabaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaqAaqAaqAaabaabaabaabaabaabaabaabaabaabaoKaFhaFiarNaFjaFiarNaFkavbapHaFlaFmaFnaFoaFpaFqaFraFsaFtaoQaFuaCnaCnaCnaCnaFvaCnaCnaFwaFxaFyaFzaFAaFBaFBaFCaFDaFEaFFaFGazUaFHaEiaFIaFJaFKaFLaFMaFNaFOaFPaFQaFRaFSaEiavFabKaFTaFUaFVaFWaFXaFXaFYaFXaFXaFZaGaaGbaGcaGdaGeaGdaGfaGgaGdaGdaGhaGiaBEaGjaGkaGlaGmaGnaGoaAsaGpaGqaGraGsaGtaGuaEHaDgaGvaGwaDjaGxaGyaGzaGAaGAaGBaGCaGDaxyaGEaxDaxCaxDawhaabaabaabaabaGFaGGaGFaabaabaabaCaaGHaGIaGJaGKaEYaGLaGMaCaaGNaGOaGPaGQaDGaGRaGSaDDaGTaqtaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatSaaaatSaaaaaaaaaaabaabaqAaqAaqAaqAaqAaqAaabaabaabaabaabaabaabaabaabaabaoKaCfaCgaCgaChaCiasMapHavbaCjaljaljaljaljaljaljatYaCkaClaoQaCmaCnaCoaCpaCpaCpaCpaCqaCraoQaCsaCtaCuaCvaCwaCxaCyaCtaCzaCAaCBaCCaCDaCEaCFaCGaCHaCIaCJaiNaaaaaaaaaaiNaiNavFayBaCKaCLaCMamlamlaCNaCNaCNamlamlaCOaCPaCQaCQaCRaCQaCQaCQaCQaCSaAjayQaBEaCTaCUaCVaCWaCXaCYaCZaDaaAsaDbaDcaDdaDeaDfaDgaDhaDiaDjaDkabJauDaDlaDmaDnaDoaDpaDqaDraDsaDtaDuawhaabaabatSazmaAFaAGaAHazmatSaabaCaaDvaDwaDxaDyaDzaDAaDBaCaaDCaDDaDEaDFaDGaDHaDIaDJaDDaqtaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaqAaqAaqAaqAaqAaabaabaabaabaabaabaabaabaabaoKaDKapHazyaDLaDMaDNaqCaDOaDPaDQaDRaDSaDTaDUaDVaDWavkaBdaoQaDXaCnaCnaCnaCnaDYaCnaCnaDZaoQaEaaEbaEcaEdaEdaEdaEdaEeaEfaEgazUaEhaEiaEjaEiaEiaEiaEiaEkaEiaElaEiaEiaEiaEiavFaaUaEmaEnaEoaEpaEpaEnaEqaEnaEpaEraEsaEtaEtaEtaEuaEtaEtaEvaEtaEtaEwaExaEyaEzaEAaEBaECaEDaEEaEFaEGaEHaDfaEHaDfaEIaAsaEJaAsaEKaELaEMaENauDaEOaEPaEQaERaESaETauDaEUaxCaxDawhaabaabaabazmazmaBYazmazmaabaabaCaaEVaEWaEWaEXaEYaEZaFaaCaaFbaFcaFdaFeaDGaFeaFfaFcaFgaqtaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaqAaqAaqAaabaabaabaabaabaabaabaabaabaabaoKaFhaFiarNaFjaFiarNaFkavbapHaFlaFmaFnaFoaFpaFqaFraFsaFtaoQaFuaCnaCnaCnaCnaFvaCnaCnaFwaFxaFyaFzaFAaFBaFBaFCaFDaFEaFFaFGazUaFHaEiaFIaFJaFKaFLaFMaFNaFOaFPaFQaFRaFSaEiavFabKaFTaFUaFVaFWaFXaFXaFYaFXaFXaFZaGaaGbaGcaGdaGeaGdaGfaGgaGdaGdaGhaGiaBEaGjaGkaGlaGmaGnaGoaAsaGpaGqaGraGsaGtaGuaEHaDgaGvaGwaDjaGxaGyaGzaGAaGAaGBaGCaGDaxyaGEaxDaxCaxDawhaabaabaabaabaGFaGGaGFaabaabaabaCaaGHaGIaGJaGKaEYaGLaGMaCaaGNaGOaGPaGQaDGaGRaGSaDDaGTaqtaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaqAaqAaabaabaabaabaabaabaabaabaabaabaoKaGUaGVasOasOaGWasOaGXaGYaGZaDQaHaaHbaDTaHcaHdaDWavkaHeaoQaHfaCnaCnaHgaHhaHiaHjaHjaHkaHlaHmaHnaHoaHpaHpaHqaHpaHraEfazUaHsaHtaEiaHuaHvaHwaHxaFPaHyaHzaHAaHBaFRaHCaEiavFaHDaHEaHFaHGaHHaHIaHJaHKaHLaHLaHLaHMaHNaHOaHLakkaHPaHQaHRaHSaHTaHUaaUaBEaHVaHWaHXaHYaHZaIaaIaaIbaIcaIdaIeaGqaIfaIgaxnaxnaxnaxnaIhabJauDauDauDauDauDauDauDauDaIiaIjaIiawhaGFaGFaGFaGFaGFaIkaGFaGFaGFaGFaCaaCaaCaaCaaCaaCaaCaaIlaCaaImaInawkaIoaIpaIqawkaIraIsaItaItaIuaIvaIwaItaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaoKapIaIxaIyaIzaIxaIAaIBaICaDPaDQaDQaDQaDQaDQaDQaIDaIEaIFaoQaIGaIHaIIaIJaIKaILaILaIMaINaoQaIOaIPaIQaHpaHpaIRaHpaISaEfazUaITaIUaEiaEiaEiaEiaIVaFPaHyaHzaIWaIXaFRaIYaEiavFaHDaIZaJaaJaaJbaJcaJdaJeaHLaJfaJgaJhaJiaJjaJkaJlaJmaJnaJoaJpaJqaJqaJraJsaJtaJuaJvaJwaJxaJyaJyaJzaJAaJBaJCaJDaJEaJFaDgaJGaJHaDjaDkabIaJIaJJaJKaxDaxDaJLaxDaJMaxDaxCaxDaxDaJNaxDaIiaxDaJOaJPaJQaxDaJLaJRaxDaJSaJTaJUaJTaJVaJWaJXaJYaJZaJZaKaaKbaKcaKdaKeaKfaKgaKhaKiaKjaKkaKlaItaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaabaabaaaaaaaaaaaaaabaabaabaabaabaabaoKaKmapHaKnaKoaKpaKqapHapHaKraoKaKsaKtaKuaKvaKwaKxaKyaKzaoQaoQaoQaoQaoQaoQaoQaoQaoQaoQaoQaKAaKBaKCaKDaKEaKEaKFaKGaKHaKIaKJaKKaEiaKLaKMaHwaKNaFPaKOaKPaKQaEiaEiaEiaEiaKRaHDaKSaKTaKUaKVaKWaKXaKYaHLaKZaLaaJhaLbaJjaLaaLcaLdaLeaLfaLgabIaLhaaUaBEaBEaBEaBEaBEaBEaxnaxnaLiaLjaLkaAsaAsaIfaAsaLlaAsaEKaLmaEMabJaLnaLoaLpaLqaLqaLqaLraLsaLtaLuaLvaLvaLwaLvaLxaLvaLyaLzaLAaLBaLCaLDaLEaLFaLGaLHaqtaLIaLJaLKaLLaLMaLNaLLaLOaLPaLQaKeaLRaLSaLTaLUaLUaLVaLWaItaLXaLXaLXaLXaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -5629,58 +5637,58 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeLafGaQUaQUaQUaQUaQUaQVagCagCagCagCagCaeLaaaaabaabaKwaKzaYlaKwaabaabaabavzaYmaYnaYoaPAazUazUaYpaYqaYrazUazUaPAaPAaYsaYtaYtaYtaYuaYvaPAaUlaUlaUlaUlaUlaUlaYwaYxaYxaYxaYxaYxaYxaYxaYxaYxaYxaYxaVgaXyaYyaYzaYzaYzaYzaYzaYzaYzaYzaYzaYAaYBaVgaUmawhawhawhaYCaYDaYEaYFaYGaYGaYHaYGaYIaYIaYIaYIaYIaYIaYJaYKaYLaYLaYJaYMaYJaYJaYNaYOaYPaYPaYPaYPaYPaYQaYQaYQaYQaYQaYRaWMaYSaYTaOUaYUaYVaYWaYXaYUaRXaYYaOUaYZaZaaZbaZcaZdaPaaZeaZfaNBaNCaZgaZhaZiaZjaZkaLXaYiaZlaZmaZnaYiaLXaQtaTnaYkaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeLaSgaQUaQUaQUaQUaQUafHagCagCagCagCagCaeLaaaaabaabaKwaKzaXkaKwaabaabaabaabaabaabaabaaQaZoaZoaZoaZpaZoaZoaZoaZoaaQaaQaaQaaQaaQaaQaaQaaQaabaabaabaabaabaZqaZraZsaZtaZuaZvaZwaZxaZyaZzaZAaZBaYxaZCaXyaVgaYzaZDaZEaZEaZFaZEaZEaZGaYzaZHaZIaVgaUmaabaabawhaZJaxDaNsaZKaYGaZLaZMaZNaYIaZOaZPaZQaZRaZSaYJaZTaZUaZUaZVaZWaZXaZYaZZbaababbacbadbaebafaYQbagbahbagaYQbaibajbakbalaOUbambanbaobapaYUaRXbaqaOUbarbasbatbaubavaPabawaPbaQJaQKaVWbaxbaybazaVWaLXbaAbaBbaCbaDbaAaLXaQtaRPaYkaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeLafGaQUaQUaQUaQUaQUaQVagCagCagCagCagCaeLaaaaaaaabaKwaKzaXkaKwaabaabaabaabbaEbaFbaFbaGbaHbaIbaJbaKbaLbaMbaNaZoaZqaZqaZqaZqaZqaZqaZqaZqaZqaZqaZqaZqaZqaZqaZraZsaZtaZwbaObaPaZsbaQbaRbaSbaTbaUaVgbaVbaWaYzbaXbaYbaYbaYbaYbaYbaZaYzaYAaYBaVgaUmaabaabawhbbaaxDbbbbbcaYGbbdbbebbfaYIbbgbbhbbibbjbbkaYJbblbbmbblaYJbbnbbobbpbbqbbrbbsbbtbbubbvbbwaYQbbxbbybbzaYQbbAaWMaWMaWMaOUbbBbbCbbDbbEaYUaRXbbFaOUbbGbbHbbIbbJbbKaPabbLbbMbbNbbOaVWbbPbbQbbRaVWaLXaYibbSbbTbbUaYiaLXaQtaRPaYkaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeLaSgaQUaQUaQUaQUaQUafHagCagCagCagCagCaeLaaaaaaaaaaKwaKzaXkaKwaabaabaabaabbbVbbWbbXbbYbbZbcabcbbccbcdbbZbceaZobcfbcfaKzaKzaMfaKzbcgbchbcibcjbcjbcjbcjbcjbckaZsaZsaZsaZsaZsaZsbaSbclbcmbcnbcoaVgaXyaVgaYzbcpbcqbcqbaYbcqbcqbcraYzaVgaYBbcsbctbctbctbctbctbctbctbctbcuaYGaYGaYGaYIbcvbcwbcxbcxbcyaYJaYJaYJaYJaYJbczbcAbbpbcBbcCbcDbcEbcFbcGbcHaYQbcIbcJbcKbcLbcMbcNbcObcPaOUaOUaOUaOUaOUaOUbcQaOUaOUaPabcRaPaaPaaPaaPaaqtbcSaqtbcTaVWaZkbcUbcVaVWaLXaYiaYibaAaYiaYiaLXaQtaRPaYkaYkaYkaYkaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQafGaQUaQUaQUaQUaQUaQVaSgaQVaSgaQVagCaeLaaaaaaaaaaKwbcWaXkaKwaabaabaabaabbcXbcYbcZbdabbZbbZbdbbbZbdcbbZbddaZobcgbchbdebchbchbchbdfaKzbdgaKzaKzbdhbdibdibdibdjbdjbdjbdjbdjbdkbdlbdmbaSbaSbdnbdoaXybdpaYzbaXbaYbaYbaYbaYbaYbaZaYzbdqbdrbdsbctbdtbdubdvbdwbdubdxbdybdzbdAbdBbdCbdDbdEbdFbdGbdHbdIbdJbdKbdLbdMbdNbdObdPbdQbdRbdSbdTbdUbdVbdWbdXaYQbdYbdZbeaaYQaYQaYQbebbecbecbecbcNbedbeebefbegbehaYkbeiaRPbejaTnbekaRPaqtbelaLHaLHaVWaVWbemaVWaVWaLXaLXaLXaLXaLXaLXaLXaQtbenaQtbeobepaYkaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaSgaQUaQUaQUaQUaQUaQUaQUaQUaQUaQUaQVaeLaaaaaaaabaKwbcWaXkaKwaabaabaabaabbbVbeqberbesbbZbbZbetbbZbeubbZbevaZobewaKwaKwaKwaKwaKwaKwaKwbdgaYxaYxbexaYxaYxaYxaYxaYxaYxaYxaYxaYxbeybezbeybeAaYxaVfbeBaVfaYzbcpbcqbcqbaYbcqbcqbcraYzaVfbeCaVfbeDbeEbeFbeGbeHbeFbeIbeJbeKbeLbeMbeNbeObePbeQbeRbeSbeTbeUbeVbeWbeXbeYbeZbfabfbbfcbfdbfebdUbffbfgbfhaYQbfibfjbfkbflbfmaYQbfnbfnbfnbfnbfnbfoaQtbfpaRPbfqaYkbekaYkaYkaYkaYkaRPaqtbfraqtbfsawkbftbfubfvaQtaQtaQtaQtaQtaQtaQtaQtaQtbenaRQbenaRPaYkaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaQaeLaaQabqaabaaQaeLaeLaeLaeLaeLaaQaaaaaaaabaKwbfwaXkaKwaabaabaabaabbfxbaFbaFbfybfzbfAbfBbfCbfDbfEbfFaZobfGaKwaabaabaabaabbfHaKwbdgaYxbfIbfJbfKbfLbfMbfNbfOaZsbfPaZwbfPbfQbfRbfSbfTbfUaZHbfVaYyaYzbaXbaYbaYbaYbaYbaYbaZaYzaYAaYBaVgbfWbfXbfYbfZbgabfYbgbbgcbgdbgebeMbeNbgfbggbghbdGbeSbgibgjbgkaZWbglbgmbgnbgobgpbgqbgraYPaYPaYPaYPaYPaYQbgsbfjbgtbgubgvaYQbgwbgxbgybgzbfnbgAbgBaVFbgCbgDbgEbeebeebeebeebeebeebgFbgGbgHasGbgIbenbfubenbenbgJbenbenbenbgKbenaRPbenaRPaYkaYkaYkaYkaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeLaSgaQUaQUaQUaQUaQUafHagCagCagCagCagCaeLaaaaaaaaaaKwaKzaXkaKwaabaabaabaabbbVbbWbbXbbYbbZbcabcbbccbcdbbZbceaZobcfbcfaKzaKzaMfaKzbcgbchbcibcjbcjbcjbcjbcjbckaZsaZsaZsaZsaZsaZsbaSbclbcmbcnbcoaVgaXyaVgaYzbcpbcqbcqbaYbcqbcqbcraYzaVgaYBbcsbctbctbctbctbctbctbctbctbcuaYGaYGaYGaYIbcvbcwbcxbcxbcyaYJaYJaYJaYJaYJbczbcAbbpbcBbcCbcDbcEbcFbcGbcHaYQbcIbcJbcKbcLbcMbcNbcObcPaOUaOUaOUaOUaOUaOUbcQaOUaOUaPabcRaPaaPaaPaaPaaqtbcSaqtbcTaVWaZkbcUbcVaVWaLXaYiaYibaAaYiaYiaLXaQtaRPaYkaYkaYkaYkaYkaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQafGaQUaQUaQUaQUaQUaQVaSgaQVaSgaQVagCaeLaaaaaaaaaaKwbcWaXkaKwaabaabaabaabbcXbcYbcZbdabbZbbZbdbbbZbdcbbZbddaZobcgbchbdebchbchbchbdfaKzbdgaKzaKzbdhbdibdibdibdjbdjbdjbdjbdjbdkbdlbdmbaSbaSbdnbdoaXybdpaYzbaXbaYbaYbaYbaYbaYbaZaYzbdqbdrbdsbctbdtbdubdvbdwbdubdxbdybdzbdAbdBbdCbdDbdEbdFbdGbdHbdIbdJbdKbdLbdMbdNbdObdPbdQbdRbdSbdTbdUbdVbdWbdXaYQbdYbdZbeaaYQaYQaYQbebbecbecbecbcNbedbeebefbegbehaYkbeiaRPbejaTnbekaRPaqtbelaLHaLHaVWaVWbemaVWaVWaLXaLXaLXaLXaLXaLXaLXaQtbenaQtaRPbeobepaYkaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaSgaQUaQUaQUaQUaQUaQUaQUaQUaQUaQUaQVaeLaaaaaaaabaKwbcWaXkaKwaabaabaabaabbbVbeqberbesbbZbbZbetbbZbeubbZbevaZobewaKwaKwaKwaKwaKwaKwaKwbdgaYxaYxbexaYxaYxaYxaYxaYxaYxaYxaYxaYxbeybezbeybeAaYxaVfbeBaVfaYzbcpbcqbcqbaYbcqbcqbcraYzaVfbeCaVfbeDbeEbeFbeGbeHbeFbeIbeJbeKbeLbeMbeNbeObePbeQbeRbeSbeTbeUbeVbeWbeXbeYbeZbfabfbbfcbfdbfebdUbffbfgbfhaYQbfibfjbfkbflbfmaYQbfnbfnbfnbfnbfnbfoaQtbfpaRPbfqaYkbekaYkaYkaYkaYkaRPaqtbfraqtbfsawkbftbfubfvaQtaQtaQtaQtaQtaQtaQtaQtaQtbenaRQaRPbenaRPaYkaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaQaeLaaQabqaabaaQaeLaeLaeLaeLaeLaaQaaaaaaaabaKwbfwaXkaKwaabaabaabaabbfxbaFbaFbfybfzbfAbfBbfCbfDbfEbfFaZobfGaKwaabaabaabaabbfHaKwbdgaYxbfIbfJbfKbfLbfMbfNbfOaZsbfPaZwbfPbfQbfRbfSbfTbfUaZHbfVaYyaYzbaXbaYbaYbaYbaYbaYbaZaYzaYAaYBaVgbfWbfXbfYbfZbgabfYbgbbgcbgdbgebeMbeNbgfbggbghbdGbeSbgibgjbgkaZWbglbgmbgnbgobgpbgqbgraYPaYPaYPaYPaYPaYQbgsbfjbgtbgubgvaYQbgwbgxbgybgzbfnbgAbgBaVFbgCbgDbgEbeebeebeebeebeebeebgFbgGbgHasGbgIbenbfubenbenbgJbenbenbenbgKbenaRPbenaRPaYkaYkaYkaYkaYkaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaKwaKxaXkaKwaabaabaabaabaabaabaabbgLbgLbgLbgLbgLbgLbgLbgLbgLbgMaKwaabaabaabaabbfHaKwbgNbgObgPbgQbgRbgSbgRbgRbgTaZsbgUbgVbgUbgWbgXbgYbgZaVgaVgaXyaVgaYzbhabhbbhcbhdbhebhbbhfaYzaVgaYBaVgbctbhgbhhbhibhjbhhbhkbhlbhmbgebhnbhobhpbhqbhrbdGbeSbhsbhtbhuaZWbhvbhvbhvbhvbhvbhwbhxbhybhzbhAbhBbhCaYQbhDbhEbhFbhGbhHbhIbhJbhKbhLbhMbfnbgAbgBbgBaQtaQtaYkaYkaYkaYkaYkaYkaYkaqtbhNbhObhPawkbhQbhQbhQbhQbhQbhRaYkaYkaYkaYkaYkaYkaYkaYkaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaKwaKxaXkaKwaabaabaabaabaabaabaabaabaabaabaabaabaKwbhSbchbdebhTaKwaabaabaYxaYxaYxaYxaYxaYxbhUbhVbhWbhXbhYbhZbiaaZsbfPaZwbfPbibbicbidaYxbieaVgaXyaYyaYzaYzaYzbifbigbifaYzaYzaYzaYAaYBaVgbeDbihbiibfYbfYbiibhkbctbijbikbilbimaYIbinbiobiobipbiqaYJbirbisbhvbitbiubivbhvbiwbixbiybizbiAbiBbiCaYQbiDaYQaYQaYQaYQaYQbiEbiFbiGbiHbiIbgAbiJbiKbiLbiMbiMbgBaaaaabaabaabaabbiNbiObiPbiQbiRbiSbiTbiUbiVbiWbiXaabaabaabaabaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaKwbiYaXkaKwaKwaKwaKwaKwaKwaKwaKwaKwaKwaKwaKwaKwaKwbewbiZbiZbiZaKwaKwaKwaYxbjabjbbjcbjdbjebjfbjgbjhbjibjhbjjbjkbjlbjmbjnbjnbjobjpbjpbjqbjraVgbjsaVgbjtbjubjvaVgbjwaVgbjxbjubjtaVgaYBaVgbfWbjybjzbjAbjBbjCbjDbjEbjFbjGbjHbjIbjJbjKbjLbjLbgebjMbjNbjObjPbhvbhvbhvbjQbjRbjSbjTbjUbjVbjWbjXbjYbjZbkabkbbkcbkdbkebkfbkgbkhbkibkjbfnbkkbklbklbklbklbkmbknaabaabaabaabaabbkoasGbkpasGbkqbkrbksbktbkubkvbkwaabaabaabaabaabaaaaaaaaaaabaabaabaabaabaabaabaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaKwbiYaXkaKwaKwaKwaKwaKwaKwaKwaKwaKwaKwaKwaKwaKwaKwbewbiZbiZbiZaKwaKwaKwaYxbjabjbbjcbjdbjebjfbjgbjhbjibjhbjjbjkbjlbjmbjnbjnbjobjpbjpbjqbjraVgbjsaVgbjtbjubjvaVgbvNaVgbjxbjubjtaVgaYBaVgbfWbjybjzbjAbjBbjCbjDbjEbjFbjGbjHbjIbjJbjKbjLbjLbgebjMbjNbjObjPbhvbhvbhvbjQbjRbjSbjTbjUbjVbjWbjXbjYbjZbkabkbbkcbkdbkebkfbkgbkhbkibkjbfnbkkbklbklbklbklbkmbknaabaabaabaabaabbkoasGbkpasGbkqbkrbksbktbkubkvbkwaabaabaabaabaabaaaaaaaaaaabaabaabaabaabaabaabaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaKwaMhbkxbkybkzbkzbkzbkzbkzbkAbkzbkzbkzbkzbkzbkzbkzbkBbiZbkCbkDbkEbkEbkEbkFbkGbkHbkIbkJbkKbkLbkMbkNbkObkPbkQbkRbkSbkTbkUbkUbkVbgRbgRbkWbjraVgaXyaVgaVfbjuaVfbkXbkYbkZaVfbjuaVfaVgaYBaVgbctblablbblcbldbleblfblgblhblibljblkblhbllblmblnbloblhblhblpblqbhvbitblrbjQbhvblsbltblublvblwblxblybjZblzblAblBblCblDbfnbfnbfnbfnbfnblEblFblFblFblFblFbgAblGaabaabaabaabaabblHblIblJblKblLblMblNblOblPblQblRaabaabaabaabaabaabaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaKwaKwaKwaKwaKwaKwaKwaKwaKwaKwaKwaKwaKwaKwaKwaKwaKzaZrbiZblSblTaKwaKwaKwaYxblUblVblWblXbjeblYblZbmabmbbmbbmcbmdaZsbmebgRbmfbmgbgRbmhaYxbjraVgaXyaVgbmibmibmibmibmibmibmibmibmiaVgaYBaVgbmjbmkbmlbmmbmnbmobmjbmjbmpbmqbmrbmsbmtbmubmvbmwbmxbmybjLbmzbmAbhvbhvbhvbjRbhvbmBbmCbmDbmEbmFbmFbmGbjZbmHbmIbmJbmKbmLbjZbmMbmNbmObmPbmQbmRbmSbmTbmUblFbgAblGaabaabaabaabaabbmVasGbkpasGbmWbkubmXbktbkubmYbmZaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaqAaqAaqAaZqbcWbnabnbbncbndaKwaabaabaYxbnebnebnebnebnfbngbngbnhbnibnjbnkbmdaZsbnlbnlbnmbnnbnobnoaYxbnpbieaXyaVgbmibnqbnrbnsbntbnubnvbnwbmiaVgaYBbnxbnybnzbnAbnBbnCbnDbnEbnFbjLbnGbnHbnIbnIbnIbnJbnKbnLbnIbnMbnNbjLbjLbnObjLbjLbnPbnQbnRbnSbnTbnUbnVbnWbnXbnYbnZboabnYbobbocbodboebofbogbohboibojbokbolblFbgAbomaabaabaabaabaabbonawmbkpboobonbopboqborbkubosbotaabaabaabaabaababqaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaabaabaabaabaabaabaabaqAaqAaZqbfwaZrbouboubouboubouboubouboubouaYxaYxaYxbovaZsbowboxboxboybozaZsaZsaZsaZsaYxaYxaYxaYxaYxboAaXyaVgbmiboBboCboDboEboFboGboHbmiaVgaYBboIboJboKboLboMboNboNboOboPboQbmzboRboSboTboUboVboWboXboYbjFboZbpabpabpabpbbpabpcbpdbpebpfbpdbpdbpdbpgbpcbpdbphbpibpjbpkbplbpmbpnbpobppbpqbprbpsbptbpublFbgAbgBaaaaabaabaabaqtaqtbpvbpwbhPaqtaqtbhRbhRbpxbpybhRaabaabaabaabaabaaaaaaaaaaabaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaqAaqAaZqbpzbpAboubpBbpCbpDbpEbpFbpGbpHboubpIbpJbpJbpJbpJbpJbpJbpJbpKbpLbpMbpNbpObpPbpQbpRbpSbpTbpQbpUaXyaVgbmibpVbpWbpXbpYbpZbqabqbbmiaVgaYBbqcbqdbqebqfbqgbqhbqibqjbqkbqlbqmbqnbqobqpbqqbqrbqsbqtbnIbqubqvbqwbqxbqybqzbqAbnXbqBbqCbqDbqEbqFbnYbqGbqHbqIbqJbqKbqLbqMbqNbqObqPbqQbqRbqSbqTbqUbqVbqWblFbgAbgBaaaaabaabaqtaqtbqXaKbaJXbbObqYaqtaqtaabaabaabaabaabaaaaaaaabaabaabaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaqAaabaabaabaabaqAaqAaZqbiYbqZboubrabrbbrcbrdbrebrfbrgbrhbribrjbrkbrlbrlbrlbrlbrmbrlbrnbrlbrobrlbrpbrqbrrbrrbpJbrsbjraXyaVgbmibmibmibmibrtbrubrvbmibmibrwbrxbrybrzboNbrAbqebqebrBbrCbrDbrEbrFbeNbrGbrHbrIbrJbrKbrLbnIbrMbrNbrMbrObrObrObrObrObrObrObrObrObrObrPbrQbrRbrRbrRbrRbrRbrRbrRbrSbrTbrUbrVbpqbrWbrXbrYbrZblFbgAbgBaaaaaaaaaaqtbsabsbbscbsdaUGbsebsfaqtaabaabaabaabaabaaaaabaabaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaqAaqAaZqaMhbqZboubsgbshbpDbsibsjbskbslboubsmbpJbsnbsobsobsobspbsqbsrbssbsobsobsobstbpQbsubsvbswbpQbsxaXyaVgbsybszbsAbsBbsCbsDbsEbsFbsGaVgaXBbsHbnybsIbrBbsJbsKbsLbsMbsNbsObsPbsObnIbsQbsRbsSbsTbsUbnIbsVbsWbsXbsYbsZbtabtbbtcbtdbtebtfbtgbrObthbtibrRbtjbtjbtjbtjbtjbrRbtkbtlbnYbtmbpqbtnbtobtpbtqblFbtrbgBaaaaaaaaaaqtbtsbttaUGbtuaUGbtvbtwaqtaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaZqaZqaZqaZqbqZbtxbtxbtxbtxbtxbtxbtxbtxbtxbtxbtybtzbpJbtAbtAbtAbtBbtAbtAbtAbtCbtCbtDbtCbtCbtCbtCbtCbjraXyaVgbtEbtFbtGbtHbtIbtIbtJbtKbtLaVgaYBboIbtMbtNbrBbtObtPbtQbtRbtSbtTbtUbtVbnIbtWbnIbnIbnIbnIbnIbtXbtYbtZbuabubbubbucbudbuebufbuebugbrObuhbuibujbtjbtjbtjbtjbtjbrRbukbulbumbunbuobupbuqburbusblFbgAbgBaaaaaaaaaaqtbutbuuaUGbuvbuwbuxbuyaqtaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabbuzbuAbuBaZqbuCaZqaZqbqZbtxbuDbuEbuFbuGbuHbuIbuJbuKbuLbuMbuNbuObuPbuQbuRbuSbuTbuUbuVbtCbuWbuXbuYbuZbvabvbbvcbvdbaVbvebtEbvfbvgbvhbsDbvibvjbvkbtLaVgbdrbvlbqdbqebvmbtObvnbvobrCbvpbvqbvrbvsbnIbvtbvubvvbvwbvxbvwbvybsWbvzbvwbvAbvBbrObvCbtfbvDbtfbvEbrObvFbvGbvHbtjbtjbtjbtjbtjbrRbjZbjZbjZbjZblFblFblFblFblFblFbgAbgBaaaaaaaaaaqtaqtbvIbvJbvKbvLbvMaqtaqtaaaaabaabaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabbvNbvObvPbvQbvRbvSbvTbvUaZrbtxbvVbvWbvXbvYbvZbwabwbbwcbwdbwebtzbuObwfbwgbwhbwibwjbwjbwkbtCbwlbwmbwnbwobwpbwqbjraVgaXyaVgbtEbwrbwsbwtbwubwvbwwbwrbtLaVgaYBbqcbwxbqebqebwybwzbwAbwBbwCbwDbwEbwFbnIbwGbwHbwIbvwbwJbvwbwKbwLbwMbwNbsVbwObwPbwQbtfbtfbtfbwRbrObwSbvGbujbtjbtjbtjbtjbtjbrRbwTbwUbklbklbklbklbwVbklbklbklbwWbgBaaaaaaaaaaaaaqtbwXbwYbwZbxabxbaqtatSatSaabaabaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabbuzbuAbxcaZqaZqaZqaZqbqZbtxbxdbxebxfbxgbxhbxibxjbxkbxlbpJbtzbuObwfbwgbxmbxnbxobxmbxpbtCbxqbxrbxsbxtbxubxvbjraVgaXyaVgbxwbxxbxybxzbxAbxBbxCbsFbxDaVgaYBbxEbxFboKbqebtObxGbxHbxIbsNbxJbxKbxLbvwbvwbvwbvwbvwbxMbvwbxNbsWbsVbxObwMbxPbxQbxRbxSbxTbxUbxVbrObjZbxWbrRbtjbtjbtjbtjbtjbrRbgAbgBbgBbgBbgBbgBbxXbgBbxYbxZbiJbgBaaaaaaaaaaaaaqtbyabybbycbydbyebydbyfaYkaabaabaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaKwaKwaKwaKwaKwaKwaKwaKwaKwaKwaKwaKwaKwaKwaKwaKwaKzaZrbiZblSblTaKwaKwaKwaYxblUblVblWblXbjeblYblZbmabmbbmbbmcbmdaZsbmebgRbmfbmgbgRbmhaYxbjraVgaXyaVgbmibmibmibmibmibmibmibmibmiaVgaYBaVgbmjbmkbmlbmmbmnbmobmjbmjbmpbmqbmrbmsbmtbmubmvbmwbmxbmybjLbmzbmAbhvbhvbhvbjRbhvbmBbmCbmDbmEbmFbmFbmGbjZbmHbmIbmJbmKbmLbjZbmMbmNbmObmPbmQbmRbmSbmTbmUblFbgAblGaabaabaabaabaabbmVasGbkpasGbmWbkubmXbktbkubmYbmZaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaqAaqAaqAaZqbcWbnabnbbncbndaKwaabaabaYxbnebnebnebnebnfbngbngbnhbnibnjbnkbmdaZsbnlbnlbnmbnnbnobnoaYxbnpbieaXyaVgbmibnqbnrbnsbntbnubnvbnwbmiaVgaYBbnxbnybnzbnAbnBbnCbnDbnEbnFbjLbnGbnHbnIbnIbnIbnJbnKbnLbnIbnMbnNbjLbjLbnObjLbjLbnPbnQbnRbnSbnTbnUbnVbnWbnXbnYbnZboabnYbobbocbodboebofbogbohboibojbokbolblFbgAbomaabaabaabaabaabbonawmbkpboobonbopboqborbkubosbotaabaabaabaabaababqaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaabaabaabaabaabaabaabaqAaqAaZqbfwaZrbouboubouboubouboubouboubouaYxaYxaYxbovaZsbowboxboxboybozaZsaZsaZsaZsaYxaYxaYxaYxaYxboAaXyaVgbmiboBboCboDboEboFboGboHbmiaVgaYBboIboJboKboLboMboNboNboOboPboQbmzboRboSboTboUboVboWboXboYbjFboZbpabpabpabpbbpabpcbpdbpebpfbpdbpdbpdbpgbpcbpdbphbpibpjbpkbplbpmbpnbpobppbpqbprbpsbptbpublFbgAbgBaaaaabaabaabaqtaqtbpvbpwbhPaqtaqtbhRbhRbpxbpybhRaabaabaabaabaabaaaaaaaaaaabaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaqAaqAaZqbpzbpAboubpBbpCbpDbpEbpFbpGbpHboubpIbpJbpJbpJbpJbpJbpJbpJbpKbpLbpMbpNbpObpPbpQbpRbpSbpTbpQbpUaXyaVgbmibpVbpWbpXbpYbpZbqabqbbmiaVgaYBbqcbqdbqebqfbqgbqhbqibqjbqkbqlbqmbqnbqobqpbqqbqrbqsbqtbnIbqubqvbqwbqxbqybqzbqAbnXbqBbqCbqDbqEbqFbnYbqGbqHbqIbqJbqKbqLbqMbqNbqObqPbqQbqRbqSbqTbqUbqVbqWblFbgAbgBaaaaabaabaqtaqtbqXaKbaJXbbObqYaqtaqtaabaabaabaabaabaaaaaaaabaabaabaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaqAaabaabaabaabaqAaqAaZqbiYbqZboubrabrbbrcbrdbrebrfbrgbrhbribrjbrkbrlbrlbrlbrlbrmbrlbrnbrlbrobrlbrpbrqbrrbrrbpJbrsbjraXyaVgbmibmibmibmibrtbrubrvbmibmibrwbrxbrybrzboNbrAbqebqebrBbrCbrDbrEbrFbeNbrGbrHbrIbrJbrKbrLbnIbrMbrNbrMbrObrObrObrObrObrObrObrObrObrObrPbrQbrRbrRbrRbrRbrRbrRbrRbrSbrTbrUbrVbpqbrWbrXbrYbrZblFbgAbgBaaaaaaaaaaqtbsabsbbscbsdaUGbsebsfaqtaabaabaabaabaabaaaaabaabaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaqAaqAaZqaMhbqZboubsgbshbpDbsibsjbskbslboubsmbpJbsnbsobsobsobspbsqbsrbssbsobsobsobstbpQbsubsvbswbpQbsxaXyaVgbsybszbsAbsBbsCbsDbsEbsFbsGaVgaXBbsHbnybsIbrBbsJbsKbsLbsMbsNbsObsPbsObnIbsQbsRbsSbsTbsUbnIbsVbsWbsXbsYbsZbtabtbbtcbtdbtebtfbtgbrObthbtibrRbtjbtjbtjbtjbtjbrRbtkbtlbnYbtmbpqbtnbtobtpbtqblFbtrbgBaaaaaaaaaaqtbtsbttaUGbtuaUGbtvbtwaqtaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaZqaZqaZqaZqbqZbtxbtxbtxbtxbtxbtxbtxbtxbtxbtxbtybtzbpJbtAbtAbtAbtBbtAbtAbtAbtCbtCbtDbtCbtCbtCbtCbtCbjraXyaVgbtEbtFbtGbtHbtIbtIbtJbtKbtLaVgaYBboIbtMbtNbrBbtObtPbtQbtRbtSbtTbtUbtVbnIbtWbnIbnIbnIbnIbnIbtXbtYbtZbuabubbubbucbudbuebufbuebugbrObuhbuibujbtjbtjbtjbtjbtjbrRbukbulbumbunbuobupbuqburbusblFbgAbgBaaaaaaaaaaqtbutbuuaUGbuvbuwbuxbuyaqtaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabbuzbuAbuBaZqbuCaZqaZqbqZbtxbuDbuEbuFbuGbuHbuIbuJbuKbuLbuMbuNbuObuPbuQbuRbuSbuTbuUbuVbtCbuWbuXbuYbuZbvabvbbvcbvdbaVbvebtEbvfbvgbvhbsDbvibvjbvkbtLaVgbdrbvlbqdbqebvmbtObvnbvobrCbvpbvqbvrbvsbnIbvtbvubvvbvwbvxbvwbvybsWbvzbvwbvAbvBbrObvCbtfbvDbtfbvEbrObvFbvGbvHbtjbtjbtjbtjbtjbrRbjZbjZbjZbjZblFblFblFblFblFblFbgAbgBaaaaaaaaaaqtaqtbvIbvJbvKbvLbvMaqtaqtaaaaabaabaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabbQfbvObvPbvQbvRbvSbvTbvUaZrbtxbvVbvWbvXbvYbvZbwabwbbwcbwdbwebtzbuObwfbwgbwhbwibwjbwjbwkbtCbwlbwmbwnbwobwpbwqbjraVgaXyaVgbtEbwrbwsbwtbwubwvbwwbwrbtLaVgaYBbqcbwxbqebqebwybwzbwAbwBbwCbwDbwEbwFbnIbwGbwHbwIbvwbwJbvwbwKbwLbwMbwNbsVbwObwPbwQbtfbtfbtfbwRbrObwSbvGbujbtjbtjbtjbtjbtjbrRbwTbwUbklbklbklbklbwVbklbklbklbwWbgBaaaaaaaaaaaaaqtbwXbwYbwZbxabxbaqtatSatSaabaabaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabbuzbuAbxcaZqaZqaZqaZqbqZbtxbxdbxebxfbxgbxhbxibxjbxkbxlbpJbtzbuObwfbwgbxmbxnbxobxmbxpbtCbxqbxrbxsbxtbxubxvbjraVgaXyaVgbxwbxxbxybxzbxAbxBbxCbsFbxDaVgaYBbxEbxFboKbqebtObxGbxHbxIbsNbxJbxKbxLbvwbvwbvwbvwbvwbxMbvwbxNbsWbsVbxObwMbxPbxQbxRbxSbxTbxUbxVbrObjZbxWbrRbtjbtjbtjbtjbtjbrRbgAbgBbgBbgBbgBbgBbxXbgBbxYbxZbiJbgBaaaaaaaaaaaaaqtbyabybbycbydbyebydbyfaYkaabaabaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaZqbygbyhbtxbyibyjbykbylbymbxibynbyobxlbypbyqbyrbwfbwgbxmbysbytbxmbyubtCbyvbywbyxbxtbyybxvbjraZHbfVaVgbyzbyAbyBbyCbwubyDbyEbyFbyzbyGaYBbnxbtMbyHbyIbyJbyKbyLbyMbsNbyNbyObyPbvwbyQbyRbySbyRbyTbyUbyVbyWbyXbyYbyZbzabrObrObrObrObrObrObrObzbbzcbrRbrRbzdbzebzfbrRbrRbgAbgBbzgbxXbxXbgBbxXbgBbgBbgBbgBbgBaabaabaaaaaaaqtbzhbzhbzhbzhbzhaqtbziaYkaabaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaZqaZqbzjbzkbzkbzkbzkbzlaZqaZqbzmaKzbtxbxdbznbxfbzobzpbzqbynbzrbxlbpJbtzbuObwfbwgbxmbzsbztbzubzvbtCbzwbzxbzybzzbzAbxvbvdaVgaXyaVgbyzbzBbzCbzDbzEbzFbyzbzGbyzaVfbzHaVfbsNbsNbsNbsNbsNbsNbsNbsNbzIbijbijbvwbzJbzKbzLbzMbzNbxObxNbsWbzObzPbzQbxPbzRbzSbzTbzUbzVbzWbzXbzYbzZbAabAbbAcbAdbAebAfbAgbgAbgBbxXbAhbAibxXbAjbgBaabaabaabaabaabaaaaaaaaaaqtbzhbzhbzhbzhbzhaqtbziaYkaabaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaZqbAkbcjbcjbcjbcjbcjbcjbAlbcjbAmaKzbtxbAnbAnbxfbAobApbAqbArbAsbAtbpJbAubAvbwfbAwbxmbxmbxmbAxbAybtCbAzbAAbABbACbADbxvaVgaVgaXyaVgbyzbAEbwrbAFbwubAGbyzbAHbyzaVgaYBaVgaVfbAIbAJbAKbALbAMaUmbANbxXbxXbxXbvwbAObAPbAQbARbASbATbyXbAUbwMbxObsVbwObAVbAWbAXbAYbAZbBabzXbBbbBcbBdbjZbBebBfbBgbxXbxXbgAbgBbxXbgBbxXbxXbiMbgBaabaabaabaabaabaaaaaaaaaaqtbzhbzhbzhbzhbzhaqtbziaYkaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaZqaZraZqaKzaZqaZqaZqaZqaZqaZqaZqbBhbtxbBibBjbBkbtxbtxbtxbtxbtxbtxbBlbBmbuObBnbBobBpbBqbxmbzsbzvbtCbBrbBsbBtbBubBvbBwaVgaVgaXyaVgaaQbAEbwrbBxbwubBybBzbBAbyzaVgbBBaWCaWybBCaWCbBDbBEbBFbBGbBHbBIbBJbBKbvwbvwbvwbvwbvwbvwbvwbBLbsWbBMbvwbBNbBObzXbBPbBQbBRbBSbBTbzXbBUbBUbBVbBUbBWbBXbklbklbklbwWbgBbxXbAjbiJbxXbiMbgBaabaaaaabaaaaaaaaaaaaaaaaqtbzhbzhbzhbzhbzhaqtbziaYkaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaZqaZraZqaKzaMfaKzaKzaKzaKzaKzbBYbBhbBZbCabCabCbbCcbCdbCebCfbCgbBhbChbCibCjbtAbCkbClbCmbxmbxmbCnbtCbCobCpbCqbCrbCsbtCbtCaVfbCtaVfbyzbyzbyzbCubCvbCwbyzbyzbyzbCxbCybCzbCAbCzbCzbCBbCCbCDaUmbkkbCEbCFbCGbCGbCGbCFbCFbCFbCHbvwbCIbCJbtZbCKbCLbCMbCNbCObCPbCQbCRbCSbzXbCTbCUbCVbBUbCWbgBbgBbgBbgBbgBbgBbxXbgBbgBbgBbgBbgBaabaabaabaabaabaaaaaaaaaaqtbzhbzhbzhbzhbzhaqtbziaYkaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabaabaZqaZqaZraZqaZqaZqaZqaMfaZqaZqaZqaKzbBhbCXbCYbCZbDabCZbDbbDcbDdbCabBhbDebDfbDgbtAbDhbDibDjbDkbDlbDmbDnbDobDpbDqbDrbDsbDtbDnbDuaXyaVgbDvbfUbDwbDxaVgaVgbDyaVgbDvaVgbDxbDzbDAbDBbDCbDAbDDbDEbDAbDFbDAbDAbDAbDAbDAbDAbDAbDAbCWbvwbsVbDGbsXbDHbDIbDJbDKbDLbDMbDNbDObDPbzXbDQbDRbDSbBUbCWbgBbDTbAibzgbxYbgBbxXbgBaabaabaabaabaabaabaabaabaabaabaabaaaaqtaqtaYkaYkaYkaqtaqtbziaYkaabaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaabaabaabaabaZqbfwaZraZqbBYaMfaKzaKzaZqbBYaZqaZqbBhbDUbDVbCfbDWbCfbCfbDWbDXbDYbBhbDZbtzbEabtAbEbbEcbEbbEdbAwbEebDnbEfbEgbEhbEibEjbEkbDnbElbEmbEnbEnbEobEnbEpbEqbErbEsbErbErbErbEtbcsbDAbEubEvbEwbExbEybEzbEAbEBbECbEDbDAbEEbEFbEGbDAbCWbvwbEHbvwbvwbzXbzXbzXbzXbzXbzXbzXbzXbzXbzXbEIbBUbBUbBUbCWbgBbiJbAibAhbxXbgBbAjbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBaaaaaaaaaaYkbEJbEKbEKbEKbELaYkaabaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaabaabaabaaaaZqbEMaZraZqaKzaZqaZqaKzaKzaKzaZqaKzbBhbENbEObEPbEQbERbESbETbEUbEVbEWbEXbEYbpJbtAbEZbFabFbbFcbFdbFebDnbFfbFgbFhbFibFjbFkbDnaXyaVgaVgaVgbFlaVgaVgbFmaVgaVgaVgaVgaVgaVgaVgbDAbFnbFobFobFpbEybEybEybFqbFrbFsbFtbFubFvbFwbDAbFxbCFbCFbCFbCFbFybFzbCFbCFbCFbCFbCFbCFbCFbCFbFAbFybCFbCFbFBbxXbxXbxXbxXbxXbxXbxXbxXbxXbxXbxXbxXbxXbxXbxXbxXbxXbFCbgBaaaaaaaaaaYkbziaYkaYkaYkaYkaYkaabaabaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaabaabaabaaaaZqbiYaZraZqaKzaKzaZqaKzaZqaKzaMfaKzbBhbFDbFEbFFbFGbFHbFIbFJbCabFKbFLbFMbtzbCjbtAbFNbFNbFNbFNbFNbFNbDnbDnbFObFPbDnbDnbDnbDnbFQbFRbFRbFRbFRbFRaVfbFSaVfaUmaUmaUmaUmaUmaUmbDAbFTbEAbFUbFVbEybEybEybFWbEAbFXbDAbFYbFZbGabDAbCWbgBbgBbGbbgBbgBbgBbgBbGcbgBbgBbgBbiMbGdbiJbGebgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBaaaaaaaaaaYkbziaYkaaaaaaaaaaaaaabaabaabaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaabaabaabaZqaZqaZraZqaZqaZqaZqaZqaZqaZqaZqaKzbBhbGfbFLbFLbGgbGhbGgbFLbFLbGibGibGjbGkbGlbGibFNbGmbGnbGobGpbGqbGrbGsbGtbGubGvbGwbGxbFNaZrbFRbGybGzbGybFRbGAbGBbGAbGCaaaaaaaaaaaaaaabDAbGDbEAbGEbGFbEAbEybEybGGbGHbGIbDAbDAbDAbDAbDAbCWbgBbxXbxXbGJbgBbGKbANbANbGLbGMbgBbgBbgBbgBbGNbgBbANbANbGObANbANbxXbGObGPbxXbxXbGObxXbxXbxXbGObxXbxXbGObxXbxXbxXbgBaaaaaaaaaaYkbziaYkaaaaaaaaaaaaaaaaabaabaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaabaabaabaabaabaZqbGQbGRbcjbcjbGSbcjbcjbcjbcjbcjbcjbGTbFLapRapRapRapRapRbFLbGibGUbGVbGWbGXbGYbFNbGZbHabHbbHbbHcbHdbHebHfbHgbHhbHhbHibFNaZrbFRbHjbHkbHlbFRbHmbHnbHmbGCaaaaaaaaaaaaaaabDAbHobHpbHpbHqbEAbEybEybEAbEAbHrbHsbHtbHubDAbHvbFBbgBbHwbHxbHybgBbHzbANbxXbANbHAbGcbHBbHCbgBbANbHDbGLbANbHEbHFbHGbHHbHHbHHbHHbHHbHHbHHbHHbHHbHHbHHbHHbHHbHHbHHbHEbgBaaaaaaaaaaYkbziaYkaaaaaaaaaaaaaaaaabaabaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaabaabaZqaZqaZqaZqaZqbfwbHIaKzaZqaZqaZqaKzbfGbFLapRapRapRapRapRbFLbGibHJbHKbHLbHMbHNbFNbHObHPbGZbGZbHQbHRbHSbHTbHUbHhbHhbHVbFNaZrbFRbHWbHXbHYbHZbIabIbbIcbGCaaaaaaaaaaaaaaabDAbEAbEAbIdbIebIfbIfbIfbIfbIfbIgbEybIhbFUbDAbIibgBbgBbgBbgBbgBbgBbIjbIkbIlbImbIjbgBbInbxXbIobANbgBbANbxXbIpbIqbIpbIpbIpbIpbIrbIrbIrbIrbIrbIpbIpbIpbIpbIpbIpbIpbIsbgBaaaaaaaaaaYkbziaYkaaaaaaaaaaaaaabaabaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaabaabaaaaaaaabaabaabaabaabaabaZqaZqaZqaKzaZqaqAaZqbItbIubFLapRapRapRapRapRbFLbGibIvbIwbIxbIybIzbFNbIAbHbbIBbICbIDbIEbIFbIGbIHbIIbIIbIJbFNbIKbFRbILbIMbINbFRbIObIPbIObGCaaaaaaaaaaaaaaabDAbEAbIQbIRbISbEybITbEybEybITbITbITbIhbEvbIUbIVbiMbIWaabaaaaaabgBbIXbIYbIZbJabJbbgBbJcbJdbJebJfbgBbJgbJgbJhbIpbIrbIrbJibIrbIrbIrbJibIrbIrbIpbJjbIpbIpbJjbIpbIpbxXbgBaaaaaaaYkaYkbJkaYkaYkaaaaaaaabaabaabaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaZqaKzaZqaZqaZqaZqbewbFLapRapRapRapRapRbFLbGibJlbJmbJnbJobJpbFNbJqbJrbJsbFNbFNbJtbJubJvbJubJtbFNbFNbFNaZrbFRbJwbJxbJwbFRbJybIPbIObGCaaaaaaaaaaaaaaabDAbEAbIQbJzbISbEybEybEybEybEybEybEybIhbGDbJAbJBbiMbJCaabaabaabbgBbJDbIYbJEbJabJFbgBbgBbgBbgBbJGbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBaaaaaaaYkbJHbzibJIaYkaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaqAaqAaabaabaZqaMfaZqbJJbJKaZqbewbFLapRapRapRapRapRbFLbGibJLbJMbJNbJObJPbFNbJQbHhbJRbJSbFNbJTbJubJUbJubJVbFNbJWbcjbAmbFRbJwbJXbJYbFRbJZbIPbKabGCaaaaaaaaaaaaaaabDAbEAbIQbKbbISbEybITbEybEybITbITbITbIhbFUbJAbJBbiJbJCaabaabaaabgBbgBbgBbgBbgBbgBbgBaabaabbKcbKdbKeaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaYkaRPbKfbKgaYkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaqAaqAaabaabaZqaKzaZqbKhbKibKjbfGbFLbFLbFLbFLbFLbFLbFLbGibKkbKlbKmbKnbJPbFNbKobHhbHhbKpbFNbFNbJubKqbJubFNbFNbqZaKzaKzbKrbKrbKrbKrbKrbKsbKtbIObGCaaaaaaaaaaaaaaabDAbEAbFsbKubKvbKwbKwbKwbKwbKwbKwbKwbKxbGEbKybJBbGdbKzaabaabaaaaaaaaaaaaaaaaaaaabaabaabaabbKAbKBbKAaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaYkaYkaYkaYkaYkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqAaabaabaqAaZqaKzaZqbKCaKzaZqbKDbKEbchbchbchbchbKFaKwbGibGibKGbKHbKIbGibFNbKJbHhbKKbKLbFNbKMbKNbKMbKNbKMbFNaZrbKOaKzbKrbKPbKQbKRbKrbKSbKTbIObGCaaaaaaaaaaaaaaabDAbKUbKVbKWbKXbKYbITbKZbLabITbITbITbIhbLbbDAbJBbgBbLcaabaabaabaabaabaabaaaaabaabaabaabaabbLdbLebLdaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaqAaZqaKzaZqaZqaZqaZqaZqaZqaZqaZqaZqaZqbewaKwbGibGibGibGibGibGibFNbLfbFNbFNbFNbFNbKMbKNbKMbKNbKMbFNbLgaZqbLhbKrbLibLjbLjbLkbLlbLmbIObGCaaaaaaaaaaaaaaabDAbDAbDAbDAbDAbDAbDAbDAbDAbDAbDAbDAbLnbDAbDAbJBbLcaabaabaabaabaabaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaabaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaZqaKzaKzaZqbLobLpbLqbLrbLsbLtbvTbLubLvbchbchbchbLwbchbchbchbchbLxbLyaabaabbFNbKMbLzbKMbLAbKMbFNaZrbLBaKzbKrbLCbLDbLEbKrbLFbLGbLHbGCbLIbLIbLIbLIbLIbDAbDAbDAbLJbLJbLKbLLbLLbLMbLNbLObLObLPbLObLObLQbLcaaaaabaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaZqbcWaKzaZqbvTbLRbvTbLSbLTbvUbvTaZqaZqbLUaZqaKzbLVaZqaMfaZqaKzbgMaKwaabaabbFNbKMbKMbLWbKMbKMbFNaZrbLXaKzbKrbKrbKrbKrbKrbHmbHnbHmbLIbLIbLYbLZbMabMbbMcbMdbLIbMebLIbMfbLIbLIbMgbMhbLcbMibLcbLcbLJbLcbLcaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZqbfwaMfaZqbvTaKzbMjbMkbMlbLSbvTaZqaKzaKzaKzaMfaKzaKzaKzaZqbMmbfGaKwaKwaKwbFNbMnbMobMobMobMpbFNbqZbLXaKzaKzaKzaMfaKzbGCbMqbIPbIObMrbLIbMsbMtbMtbMtbMtbMtbLIbMubMvbMwbMxbLIbMybMzbLcbMAbMBbLJbLJbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabaabaaaaabaabaabaabaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZqaZqaKzaZqbLSaZqbMCbvTbMDbMEbMFaZqaKzaZqaZqbLVaZqbLuaZqaZqaKzbMGbKEbKEbKEbMHbMIbcjbcjbcjbcjbMJbyhbMKaKzaMfaKzaKzaKzbMLbKsbKtbIObMMbMNbMtbMObMPbMQbMRbMSbMTbMUbMVbMWbMXbLIbJBbLJbMYbLJbLJbMibLJbLJbLJbMZbLJbLJbLJbLJbLJbLJbNabLJbLcaaaaabaabaababqaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZqaKzaZqbNbbNcbNdbNebLSbLSaKzaZqaKzaZqbNfbNgaKzaKzbLUaZqaZqaZqbLuaZqbNhbNibNjbNjbNjbNkbNjbNjbNjbNjbNjbNjbNjbNjbNjbNjbNlbIPbIObMMbMNbMtbMtbNmbNnbNobNpbLIbNqbNrbNrbNsbLIbJBbMAbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLJbLcaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZqaKzaZqbLSbNdaKzbvTbLTbKibvTaZqaKzaKzbNtaKzaKzaKzaMfaZqbNubLSbNvbLTbNhbNwbNxbNybNzbNAbNBbNCbNDbNEbNFbNFbNFbNFbNGbNHbNIbNJbIObMMbMNbMtbMtbNKbNLbNobNMbLIbNNbNObNrbNPbLIbNQbNRbLcbNSbNSbNTbNUbNUbNSbNSbLcbNVbLJbLJbLJbNWbLcbLJbLcaabaabaabaabaabaabaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZqaKzaZqbNXbNYbNZbvTbOabvTaKzaZqaKzaZqbObaKzaMfaKzaKzaZqbOcbOdbOebOfbNhbOgbNjbOhbOibOjbOkbOlbOmbOnbOobOobOobOobOpbOqbOrbLGbLHbMMbMNbMtbMObOsbOtbNobOubLIbLIbLIbLIbLIbLIbJBbOvbLcbNSbNUbNUbNUbNUbNUbNSbOwbLJbLJbNSbLJbOxbLcbLJbLcaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZqaKzaZqbLuaZqaZqaZqaZqaZqaZqaZqaKzaZqbLUaKzbOyaKzaKzaZqbOzbKibOfbOAbNhbOgbNjbOBbOCbODbOEbNjbOmbOFbOGbOGbOHbOGbOGbOIbOJbIPbIObOKbLIbOLbOMbONbONbOObOPbLIaabaabaabaabbLcbJBbOQbLcbNSbNUbNUbNUbNUbNTbORbLcbOSbOTbNSbOUbOVbLcbLJbLcaabaabaabaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabaZqaKzaKzaKzaKzaKzaKzaKzaKzaKzaKzaKzbLVaKzaKzaKzaKzaKzaZqaZqbOWbOXbOYbNhbOgbNjbOZbPabPbbPcbPdbPebPfbPgbPhbPhbPhbPibNjbHmbHnbHmbLIbLIbPjbPkbPlbPmbPnbPobLIaabaabaabaabbLcbJBbLcbLcbLcbPpbPqbPqbPpbPqbLcbLcbLcbPrbMZbPsbLcbLcbMZbLcaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaabaZqaZqaZqaZqaZqaZqaZqaZqaZqaZqaZqaKzaKzaKzbcfaMfaKzbPtbPuaZqbPvbKibPwbNhbOgbNjbPxbPybPzbPAbNjbOmbOFbOGbOGbPBbOGbPCbPDbIObIPbIObPEbPFbPGbPGbPGbPHbPIbPJbPEbPEbPEbPEbPEbPEbJBbLcbPKbPLbLJbLJbLJbLJbNSbLJbNSbLcbPsbLJbPMbLcbNabLJbLcaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaZqaKzaZqaKzaKzaKzaKzaKzbObaZqbPNbPObPPbNhbOgbNjbPQbPRbPSbPTbPUbOmbPVbPWbPWbPXbPYbOGbPZbIObLGbQabPEbPEbQbbPHbPHbQcbPIbPJbQdbQebQfbQfbQfbPEbJBbLcbQgbLJbNTbQhbQhbQhbNUbLJbLJbLcbPsbNSbQibLcbLJbLcbLcaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaZqaKzaZqaZqbLuaZqaKzaZqaZqaZqbQjbvTbQkbNhbOgbNjbPTbQlbQmbPTbQnbOmbQobQpbQqbQrbQsbOGbPZbIObIPbIObPEbPEbQtbQubQubQubQvbQwbPJbQxbQfbQfbQybPEbJBbLcbNSbLJbNUbQhbQhbQhbNUbLJbLJbLcbQzbNSbQAbLcbLJbLcaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaZqaKzaZqbQBbPtaKzaKzbNtaZqbNhbNhbNhbNhbNhbOgbNjbPQbQCbQDbQEbQFbOmbQGbQHbQIbQJbQsbOGbPZbIObIPbMMbQKbQLbPJbPJbPJbPJbPIbPJbPJbQMbQfbQfbQfbPEbJBbQNbLJbNSbNSbNSbLJbLJbLJbNSbLJbOwbNSbNSbPsbLcbLJbLcaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaZqaMfaZqaKzaKzaKzaKzaKzaZqbQObQPbQPbQPbQPbQQbNjbPTbQRbQSbPTbQTbOmbQUbQVbQVbQVbOpbOGbPZbIObQWbQXbQYbQZbRabRbbRabRabRcbRdbRdbRebPEbPEbPEbPEbJBbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLJbLcaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaZqaKzaZqaKzaMfaKzaKzbLVaZqbOgbRfbRfbRfbRfbRfbRfbRfbRfbRfbRfbRfbRgbRhbOGbOGbRibOGbRjbRkbRlbIPbRmbPEbPEbRnbPIbRobRobRobPJbPJbRpbRqbRrbRsbPEbRtbLObLObLObRubRvbLObRwbLJbLJbLJbLJbLJbLJbLJbLJbLJbLcaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaZqaKzbLuaKzaKzaKzaKzaMfaZqbOgbRfbRxaZFbRyaZFaZEbRzbRfbRAbRBbRfbRfbRfbRfbRfbRfbRfbRfbRfbRCbKtbMMbQKbQLbPJbPIbRDbREbRDbPJbPJbRpbRFbPGbRGbPEbPEbRHbPEbPEbRIbPEbPEbJBbRJbLcbLcbLcbLcbLcbLcbLcbLcbLcaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabaabaZqaZqaZraZqaZqaZqaZqaMfaZqaZqaZqaKzbBhbCXbCYbCZbDabCZbDbbDcbDdbCabBhbDebDfbDgbtAbDhbDibDjbDkbDlbDmbDnbDobDpbDqbDrbDsbDtbDnbDuaXyaVgbDvbfUbDwbDxaVgaVgbDyaVgbDvaVgbDxbDzbDAbDBbDCbDAbDDbDEbDAbDFbDAbDAbDAbDAbDAbDAbDAbDAbCWbvwbsVbDGbsXbDHbDIbDJbDKbDLbDMbDNbDObDPbzXbDQbDRbDSbBUbCWbgBbDTbAibzgbxYbgBbxXbgBaabaabaabaabaabaabaabaabaabaabaabaaaaqtaqtaYkaYkaYkaqtaqtbziaYkaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaabaabaabaabaZqbfwaZraZqbBYaMfaKzaKzaZqbBYaZqaZqbBhbDUbDVbCfbDWbCfbCfbDWbDXbDYbBhbDZbtzbEabtAbEbbEcbEbbEdbAwbEebDnbEfbEgbEhbEibEjbEkbDnbElbEmbEnbEnbEobEnbEpbEqbErbEsbErbErbErbEtbcsbDAbEubEvbEwbExbEybEzbEAbEBbECbEDbDAbEEbEFbEGbDAbCWbvwbEHbvwbvwbzXbzXbzXbzXbzXbzXbzXbzXbzXbzXbEIbBUbBUbBUbCWbgBbiJbAibAhbxXbgBbAjbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBaaaaaaaaaaYkbEJbEKbEKbEKbELaYkaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaabaabaabaaaaZqbEMaZraZqaKzaZqaZqaKzaKzaKzaZqaKzbBhbENbEObEPbEQbERbESbETbEUbEVbEWbEXbEYbpJbtAbEZbFabFbbFcbFdbFebDnbFfbFgbFhbFibFjbFkbDnaXyaVgaVgaVgbFlaVgaVgbFmaVgaVgaVgaVgaVgaVgaVgbDAbFnbFobFobFpbEybEybEybFqbFrbFsbFtbFubFvbFwbDAbFxbCFbCFbCFbCFbFybFzbCFbCFbCFbCFbCFbCFbCFbCFbFAbFybCFbCFbFBbxXbxXbxXbxXbxXbxXbxXbxXbxXbxXbxXbxXbxXbxXbxXbxXbxXbFCbgBaaaaaaaaaaYkbziaYkaYkaYkaYkaYkaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaabaabaabaaaaZqbiYaZraZqaKzaKzaZqaKzaZqaKzaMfaKzbBhbFDbFEbFFbFGbFHbFIbFJbCabFKbFLbFMbtzbCjbtAbFNbFNbFNbFNbFNbFNbDnbDnbFObFPbDnbDnbDnbDnbFQbFRbFRbFRbFRbFRaVfbFSaVfaUmaUmaUmaUmaUmaUmbDAbFTbEAbFUbFVbEybEybEybFWbEAbFXbDAbFYbFZbGabDAbCWbgBbgBbGbbgBbgBbgBbgBbGcbgBbgBbgBbiMbGdbiJbGebgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBaaaaaaaaaaYkbziaYkaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaabaabaabaZqaZqaZraZqaZqaZqaZqaZqaZqaZqaZqaKzbBhbGfbFLbFLbGgbGhbGgbFLbFLbGibGibGjbGkbGlbGibFNbGmbGnbGobGpbGqbGrbGsbGtbGubGvbGwbGxbFNaZrbFRbGybGzbGybFRbGAbGBbGAbGCaaaaaaaaaaaaaaabDAbGDbEAbGEbGFbEAbEybEybGGbGHbGIbDAbDAbDAbDAbDAbCWbgBbxXbxXbGJbgBbGKbANbANbGLbGMbgBbgBbgBbgBbGNbgBbANbANbGObANbANbxXbGObGPbxXbxXbGObxXbxXbxXbGObxXbxXbGObxXbxXbxXbgBaaaaaaaaaaYkbziaYkaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaabaabaabaabaabaZqbGQbGRbcjbcjbGSbcjbcjbcjbcjbcjbcjbGTbFLapRapRapRapRapRbFLbGibGUbGVbGWbGXbGYbFNbGZbHabHbbHbbHcbHdbHebHfbHgbHhbHhbHibFNaZrbFRbHjbHkbHlbFRbHmbHnbHmbGCaaaaaaaaaaaaaaabDAbHobHpbHpbHqbEAbEybEybEAbEAbHrbHsbHtbHubDAbHvbFBbgBbHwbHxbHybgBbHzbANbxXbANbHAbGcbHBbHCbgBbANbHDbGLbANbHEbHFbHGbHHbHHbHHbHHbHHbHHbHHbHHbHHbHHbHHbHHbHHbHHbHHbHEbgBaaaaaaaaaaYkbziaYkaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaabaabaZqaZqaZqaZqaZqbfwbHIaKzaZqaZqaZqaKzbfGbFLapRapRapRapRapRbFLbGibHJbHKbHLbHMbHNbFNbHObHPbGZbGZbHQbHRbHSbHTbHUbHhbHhbHVbFNaZrbFRbHWbHXbHYbHZbIabIbbIcbGCaaaaaaaaaaaaaaabDAbEAbEAbIdbIebIfbIfbIfbIfbIfbIgbEybIhbFUbDAbIibgBbgBbgBbgBbgBbgBbIjbIkbIlbImbIjbgBbInbxXbIobANbgBbANbxXbIpbIqbIpbIpbIpbIpbIrbIrbIrbIrbIrbIpbIpbIpbIpbIpbIpbIpbIsbgBaaaaaaaaaaYkbziaYkaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaabaabaaaaaaaabaabaabaabaabaabaZqaZqaZqaKzaZqaqAaZqbItbIubFLapRapRapRapRapRbFLbGibIvbIwbIxbIybIzbFNbIAbHbbIBbICbIDbIEbIFbIGbIHbIIbIIbIJbFNbIKbFRbILbIMbINbFRbIObIPbIObGCaaaaaaaaaaaaaaabDAbEAbIQbIRbISbEybITbEybEybITbITbITbIhbEvbIUbIVbiMbIWaabaaaaaabgBbIXbIYbIZbJabJbbgBbJcbJdbJebJfbgBbJgbJgbJhbIpbIrbIrbJibIrbIrbIrbJibIrbIrbIpbJjbIpbIpbJjbIpbIpbxXbgBaaaaaaaYkaYkbJkaYkaYkaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaZqaKzaZqaZqaZqaZqbewbFLapRapRapRapRapRbFLbGibJlbJmbJnbJobJpbFNbJqbJrbJsbFNbFNbJtbJubJvbJubJtbFNbFNbFNaZrbFRbJwbJxbJwbFRbJybIPbIObGCaaaaaaaaaaaaaaabDAbEAbIQbJzbISbEybEybEybEybEybEybEybIhbGDbJAbJBbiMbJCaabaabaabbgBbJDbIYbJEbJabJFbgBbgBbgBbgBbJGbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBbgBaaaaaaaYkbJHbzibJIaYkaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaqAaqAaabaabaZqaMfaZqbJJbJKaZqbewbFLapRapRapRapRapRbFLbGibJLbJMbJNbJObJPbFNbJQbHhbJRbJSbFNbJTbJubJUbJubJVbFNbJWbcjbAmbFRbJwbJXbJYbFRbJZbIPbKabGCaaaaaaaaaaaaaaabDAbEAbIQbKbbISbEybITbEybEybITbITbITbIhbFUbJAbJBbiJbJCaabaabaaabgBbgBbgBbgBbgBbgBbgBaabaabbKcbKdbKeaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaYkaRPbKfbKgaYkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaqAaqAaabaabaZqaKzaZqbKhbKibKjbfGbFLbFLbFLbFLbFLbFLbFLbGibKkbKlbKmbKnbJPbFNbKobHhbHhbKpbFNbFNbJubKqbJubFNbFNbqZaKzaKzbKrbKrbKrbKrbKrbKsbKtbIObGCaaaaaaaaaaaaaaabDAbEAbFsbKubKvbKwbKwbKwbKwbKwbKwbKwbKxbGEbKybJBbGdbKzaabaabaaaaaaaaaaaaaaaaaaaabaabaabaabbKAbKBbKAaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaYkaYkaYkaYkaYkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqAaabaabaqAaZqaKzaZqbKCaKzaZqbKDbKEbchbchbchbchbKFaKwbGibGibKGbKHbKIbGibFNbKJbHhbKKbKLbFNbKMbKNbKMbKNbKMbFNaZrbKOaKzbKrbKPbKQbKRbKrbKSbKTbIObGCaaaaaaaaaaaaaaabDAbKUbKVbKWbKXbKYbITbKZbLabITbITbITbIhbLbbDAbJBbgBbLcaabaabaabaabaabaabaaaaabaabaabaabaabbLdbLebLdaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaqAaZqaKzaZqaZqaZqaZqaZqaZqaZqaZqaZqaZqbewaKwbGibGibGibGibGibGibFNbLfbFNbFNbFNbFNbKMbKNbKMbKNbKMbFNbLgaZqbLhbKrbLibLjbLjbLkbLlbLmbIObGCaaaaaaaaaaaaaaabDAbDAbDAbDAbDAbDAbDAbDAbDAbDAbDAbDAbLnbDAbDAbJBbLcaabaabaabaabaabaaaaaaaaaaabaabaabaabaabaabbQyaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaZqaKzaKzaZqbLobLpbLqbLrbLsbLtbvTbLubLvbchbchbchbLwbchbchbchbchbLxbLyaabaabbFNbKMbLzbKMbLAbKMbFNaZrbLBaKzbKrbLCbLDbLEbKrbLFbLGbLHbGCbLIbLIbLIbLIbLIbDAbDAbDAbLJbLJbLKbLLbLLbLMbLNbLObLObLPbLObLObLQbLcaaaaabaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaZqbcWaKzaZqbvTbLRbvTbLSbLTbvUbvTaZqaZqbLUaZqaKzbLVaZqaMfaZqaKzbgMaKwaabaabbFNbKMbKMbLWbKMbKMbFNaZrbLXaKzbKrbKrbKrbKrbKrbHmbHnbHmbLIbLIbLYbLZbMabMbbMcbMdbLIbMebLIbMfbLIbLIbMgbMhbLcbMibLcbLcbLJbLcbLcaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZqbfwaMfaZqbvTaKzbMjbMkbMlbLSbvTaZqaKzaKzaKzaMfaKzaKzaKzaZqbMmbfGaKwaKwaKwbFNbMnbMobMobMobMpbFNbqZbLXaKzaKzaKzaMfaKzbGCbMqbIPbIObMrbLIbMsbMtbMtbMtbMtbMtbLIbMubMvbMwbMxbLIbMybMzbLcbMAbMBbLJbLJbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabaabaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZqaZqaKzaZqbLSaZqbMCbvTbMDbMEbMFaZqaKzaZqaZqbLVaZqbLuaZqaZqaKzbMGbKEbKEbKEbMHbMIbcjbcjbcjbcjbMJbyhbMKaKzaMfaKzaKzaKzbMLbKsbKtbIObMMbMNbMtbMObMPbMQbMRbMSbMTbMUbMVbMWbMXbLIbJBbLJbMYbLJbLJbMibLJbLJbLJbMZbLJbLJbLJbLJbLJbLJbNabLJbLcaaaaabaabaababqaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZqaKzaZqbNbbNcbNdbNebLSbLSaKzaZqaKzaZqbNfbNgaKzaKzbLUaZqaZqaZqbLuaZqbNhbNibNjbNjbNjbNkbNjbNjbNjbNjbNjbNjbNjbNjbNjbNjbNlbIPbIObMMbMNbMtbMtbNmbNnbNobNpbLIbNqbNrbNrbNsbLIbJBbMAbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLJbLcaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZqaKzaZqbLSbNdaKzbvTbLTbKibvTaZqaKzaKzbNtaKzaKzaKzaMfaZqbNubLSbNvbLTbNhbNwbNxbNybNzbNAbNBbNCbNDbNEbNFbNFbNFbNFbNGbNHbNIbNJbIObMMbMNbMtbMtbNKbNLbNobNMbLIbNNbNObNrbNPbLIbNQbNRbLcbNSbNSbNTbNUbNUbNSbNSbLcbNVbLJbLJbLJbNWbLcbLJbLcaabaabaabaabaabaabaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZqaKzaZqbNXbNYbNZbvTbOabvTaKzaZqaKzaZqbObaKzaMfaKzaKzaZqbOcbOdbOebOfbNhbOgbNjbOhbOibOjbOkbOlbOmbOnbOobOobOobOobOpbOqbOrbLGbLHbMMbMNbMtbMObOsbOtbNobOubLIbLIbLIbLIbLIbLIbJBbOvbLcbNSbNUbNUbNUbNUbNUbNSbOwbLJbLJbNSbLJbOxbLcbLJbLcaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZqaKzaZqbLuaZqaZqaZqaZqaZqaZqaZqaKzaZqbLUaKzbOyaKzaKzaZqbOzbKibOfbOAbNhbOgbNjbOBbOCbODbOEbNjbOmbOFbOGbOGbOHbOGbOGbOIbOJbIPbIObOKbLIbOLbOMbONbONbOObOPbLIaabaabaabaabbLcbJBbOQbLcbNSbNUbNUbNUbNUbNTbORbLcbOSbOTbNSbOUbOVbLcbLJbLcaabaabaabaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabaZqaKzaKzaKzaKzaKzaKzaKzaKzaKzaKzaKzbLVaKzaKzaKzaKzaKzaZqaZqbOWbOXbOYbNhbOgbNjbOZbPabPbbPcbPdbPebPfbPgbPhbPhbPhbPibNjbHmbHnbHmbLIbLIbPjbPkbPlbPmbPnbPobLIaabaabaabaabbLcbJBbLcbLcbLcbPpbPqbPqbPpbPqbLcbLcbLcbPrbMZbPsbLcbLcbMZbLcaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaabaZqaZqaZqaZqaZqaZqaZqaZqaZqaZqaZqaKzaKzaKzbcfaMfaKzbPtbPuaZqbPvbKibPwbNhbOgbNjbPxbPybPzbPAbNjbOmbOFbOGbOGbPBbOGbPCbPDbIObIPbIObPEbPFbPGbPGbPGbPHbPIbPJbPEbPEbPEbPEbPEbPEbJBbLcbPKbPLbLJbLJbLJbLJbNSbLJbNSbLcbPsbLJbPMbLcbNabLJbLcaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaZqaKzaZqaKzaKzaKzaKzaKzbObaZqbPNbPObPPbNhbOgbNjbPQbPRbPSbPTbPUbOmbPVbPWbPWbPXbPYbOGbPZbIObLGbQabPEbPEbQbbPHbPHbQcbPIbPJbQdbQebWMbWsbWMbPEbJBbLcbQgbLJbNTbQhbQhbQhbNUbLJbLJbLcbPsbNSbQibLcbLJbLcbLcaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaZqaKzaZqaZqbLuaZqaKzaZqaZqaZqbQjbvTbQkbNhbOgbNjbPTbQlbQmbPTbQnbOmbQobQpbQqbQrbQsbOGbPZbIObIPbIObPEbPEbQtbQubQubQubQvbQwbPJbQxbWsbWMbXibPEbJBbLcbNSbLJbNUbQhbQhbQhbNUbLJbLJbLcbQzbNSbQAbLcbLJbLcaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaZqaKzaZqbQBbPtaKzaKzbNtaZqbNhbNhbNhbNhbNhbOgbNjbPQbQCbQDbQEbQFbOmbQGbQHbQIbQJbQsbOGbPZbIObIPbMMbQKbQLbPJbPJbPJbPJbPIbPJbPJbQMbWMbWsbWMbPEbJBbQNbLJbNSbNSbNSbLJbLJbLJbNSbLJbOwbNSbNSbPsbLcbLJbLcaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaZqaMfaZqaKzaKzaKzaKzaKzaZqbQObQPbQPbQPbQPbQQbNjbPTbQRbQSbPTbQTbOmbQUbQVbQVbQVbOpbOGbPZbIObQWbQXbQYbQZbRabRbbRabRabRcbRdbRdbRebPEbPEbPEbPEbJBbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLcbLJbLcaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaZqaKzaZqaKzaMfaKzaKzbLVaZqbOgbRfbRfbRfbRfbRfbRfbRfbRfbRfbRfbRfbRgbRhbOGbOGbRibOGbRjbRkbRlbIPbRmbPEbPEbRnbPIbRobRobRobPJbPJbRpbRqbRrbRsbPEbRtbLObLObLObRubRvbLObRwbLJbLJbLJbLJbLJbLJbLJbLJbLJbLcaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaZqaKzbLuaKzaKzaKzaKzaMfaZqbOgbRfbRxaZFbRyaZFaZEbRzbRfbRAbRBbRfbRfbRfbRfbRfbRfbRfbRfbRfbRCbKtbMMbQKbQLbPJbPIbRDbREbRDbPJbPJbRpbRFbPGbRGbPEbPEbRHbPEbPEbRIbPEbPEbJBbRJbLcbLcbLcbLcbLcbLcbLcbLcbLcaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaZqaKzaZqbObaKzaKzbLUaKzbRKbOgbRfbRLbaYbRMbaYbaYbaZbRfbRNbRObRPbRQbRRbRfbRSbRTbRUbRVbRWbIObIPbMMbQKbQLbPJbPIbRXbRXbRXbPJbPJbRpbRYbPGbRZbSabPEbSbbScbSdbQxbSebPEbJBbMAbLcaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaZqaKzaZqaZqaZqaZqaZqbLVaKzbOgbRfbRLbaYbaYbaYbaYbSfbSgbShbRObSibRTbSjbSkbSlbRTbSmbSnbSobSpbIPbIObPEbPEbSqbSrbSsbSsbSsbStbSsbSubSvbSwbSxbSybSzbSAbSBbSCbSDbSEbPEbJBbSFbLcaaaaaaaaaaabaabaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaZqaKzaKzaKzaKzaKzbcgbSGbSGbQQbRfbRLbaYbaYbaYbaYbSHbSgbShbRObSibSIbSJbSKbSLbSMbSNbSObSPbSQbSRbIObPEbSSbPJbSTbRobRobRobSUbPJbRpbRYbPGbSVbSWbPEbSXbSYbSZbPJbTabPEbIVbLcbLcaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -5693,39 +5701,39 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaZqbcWaKzaZqbOgbUubVfbVgbVhbVibVjbVkbVlbVmbVkbVnbVobVpbVqbRTbUybSlbVrbRfbVsbVtbVubVvbVwbVxbUlbPEbVybPEbPEbPEbPEbPEbPEbPEbPEbUebUfbUfbUfbUfbVzbLJbLJbVAbLcbJBbLcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaZqbcfaKzaZqbOgbUubVBbVCbVDbVEbVFbVGbUubVHbVIbVJbUubVKbVLbVMbVNbSlbVObRfbUlbUlbUlbUlbVPbUlbUlbVQbLObRvbLObLObLObLObLObVRbLcbUObLcbLcbMYbMibLcbLJbVAbMZbLcbJBbLcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaZqaKxaKzaKzbOgbUubVSbVSbVTbVUbVVbUubUubUubUubUubUubVWbVXbVWbVWbVWbVWbVWbVYbVZbLNbLObWabLObWbbLQbLJbWcbWdbWdbWdbWdbWebJBbLcbWfbLJbMZbLJbLJbLJbMZbMibLJbLcbJBbLcaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaabaabaabaabaabaabaabaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbWgbWhaaaaabaZqaZqaZqaZqbOgbUubWibWjbVEbVSbWkbUubWlbWmbWmbWmbWmbWnbWobWpbWqbWrbWsbVWbWtbWubWvbLLbWwbWwbWxbWwbWwbWybWzbWzbWzbWAbWBbJBbLcbUObLcbWCbLJbSFbLJbLJbLJbWDbLcbJBbLcaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWEaabaaaaabaabaabaaabNhbWFbUubWGbWHbVEbVSbWkbUubWIbVWbVWbVWbVWbVWbWJbWpbWKbWLbWMbVWbWtbWNbMzbWObWPbWQbWRbWSbWTbWUbWVbWVbWWbWAbWXbJBbLcbUObLcbLcbLcbLcbMibMYbLcbLcbMibJBbLcaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbWYaabaabaabaaabNhbOgbUubWjbWZbVEbVSbXabUubWIbVWbXbbXcbXdbXebWJbXfbXgbXhbXibVWbXjbXkbXlbMZbWPbXmbXnbXobXpbXqbWWbWVbWVbXrbWybXsbLObXtbLObLObLObLObLObLObLObXubLObLQbLcaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbWgbWhaaaaabaZqaZqaZqaZqbOgbUubWibWjbVEbVSbWkbUubWlbWmbWmbWmbWmbWnbWobWpbWqbWrcaRbVWbWtbWubWvbLLbWwbWwbWxbWwbWwbWybWzbWzbWzbWAbWBbJBbLcbUObLcbWCbLJbSFbLJbLJbLJbWDbLcbJBbLcaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWEaabaaaaabaabaabaaabNhbWFbUubWGbWHbVEbVSbWkbUubWIbVWbVWbVWbVWbVWbWJbWpbWKbWLcblbVWbWtbWNbMzbWObWPbWQbWRbWSbWTbWUbWVbWVbWWbWAbWXbJBbLcbUObLcbLcbLcbLcbMibMYbLcbLcbMibJBbLcaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbWYaabaabaabaaabNhbOgbUubWjbWZbVEbVSbXabUubWIbVWbXcbXbbXdbXebWJbXfbXgbXhcbRbVWbXjbXkbXlbMZbWPbXmbXnbXobXpbXqbWWbWVbWVbXrbWybXsbLObXtbLObLObLObLObLObLObLObXubLObLQbLcaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbXvbXwaaaaaabNhbNhbOgbUubXxbVSbVEbVSbXxbUubWIbVWbXybXzbWpbXAbWJbXzbWpbXBbXCbVWbXDbXEbXFbXGbWPbXHbXIbXIbXJbXKbWVbWWbWWbWAbWAbLcbLcbLcbLcbLcbLcbLcbLcbMAbMAbUtbXLbLJbLcaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXMbXNbWhaaaaaaaaabNhbXObOgbUubXxbVSbVEbXPbXxbUubWIbVWbXQbXzbWpbXRbXSbXTbXUbXVbWsbVWbJBbLcbLcbLcbWPbXWbWwbWwbWwbWdbWdbWdbWdbWdbWdbWdbXXbWAaaaaaaaaaaaabLcbLcbLcbLcbLcbLcbLcaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbXNbXMaaaaaaaaabNhbXYbOgbUubUubUubXZbUubUubUubYabVWbYbbYcbYdbXebYebYfbWpbYgbWMbVWbJBbLcbYhbYibYjbYkbYlaaQaaaaaaaaaaabaabaabaaabYmbYnbYoaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaabNhbYpbYqbQPbYrbQPbYsbQPbQPbQPbYtbVWbVWbVWbVWbVWbYubYvbYwbXhbXibVWbJBbLcbYxbYnbYybYzbYAaaQaaabYBaabaabaabaaaaaabYCbYDbYEaabaabaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWgbWhbXNaaaaaaaaaaaabNhbNhbNhbNhbNhbNhbNhbNhbNhbNhbYFbYGbYHbYIbVWbYJbYKbYfbWpbYLbYMbVWbJBbLcbYNbYObYPbYQbYRbYSbYlaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaabaabaabaabaabaaaaabaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYTbYUbYVbYWbYXbYXbYYbYZaabaabbZabZbbZcbZdbZebZfbZgbNhbZhbYpbYpbZibVWbZjbZkbZlbZmbZnbZobVWbJBbLcbYSbYibYibYibYibZpbYAaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbYYbYYbZqbYYbZrbZsbZtbWgaabbZubZvbZwbZxbZxbZybZzbNhbNhbNhbYpbZibVWbZAbZBbZCbZDbZEbZFbVWbJBbLcbZGbZGbZHbZIbZGbZGbYAaabaabaabaabaababqaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWEbYVbZJbYWbYYbYYbZKbZtbZLbZMbZNbZxbZxbZxbZObZPbZzbNhaabbNhbZQbZibVWbVWbZRbZSbZTbZUbVWbVWbJBbLcbZGbZVbZWbZXbZYbZGbZZbYibYibYlaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZtbZrbYYcaabYYcabcaccadcaecadcafbZxbZxcagbZzbZzbNhbNhbNhbNhbZibZGcahcaicajcakcalcambZGcanbZGbZGcaocapcamcaqbZGbZGbZGbZGbYAaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZtcarbYYcascasbYYcatcaubYpcaubZxbZxcavbZwbYpbZwcawbZzbZycawbZibZGcaxcaycamcazcaAcambZGcaBcaCbZGcaDcapcaEcaFcaGcaHcaIcaJbYAaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaabWgaabaabaaaaaaaaabZtbYYbYYbYYbYYcaKbZtbZLbZMcaLbZzbZxbZPbYpbYpbZxbNhbNhbNhbNhbZibZGcaMcaNcaOcaPcaQcaRcaScaTcaUcaVcaWcaXcaYcaZcbacbbcbccbdbYAaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaabYVbYYbYYbYYbYYbYYcatcaucbecaubZcbZybZybZxbZzbZwbNhaabaabbNhcbfbZGcbgcbhcbicbjcbkcblbZGcamcbmbZGcbncbocbpcamcaGcbqcbrcaJcbsaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaabYVbYYbYYbYYcarcbtcaccadcaecadcbucbvcbwcbxcbybZwbNhaabaabbNhbZibZGbZGbZGbZGbZGbZGbZGbZGbZGcbzbZGbZGbZGbZGbZGbZGbZGbZGcbAaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabbYTaaabYYcbBcbCbYYbYYcbDbZtbZLbZMcaLbNhbNhbNhbNhbNhbNhbNhaabaabbNhbYFbYGbYGbYGbYGcbEbYGbYGcbEbYGcbFbNhaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaabYYbYVbYYcbGcbGbYVbYVaabaabaabaabaabaabaabaabaabaabaabaaabNhbNhbNhbXObXOcbHcbIcbJbYpbNhbNhbNhbNhaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabcbKcbLcbMcbMcbMcbLcbNaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaaabNhbNhbNhbNhbNhbNhbNhbNhaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaabWEbWgaaaaaaaabbWEcbOcbPcbPcbPcbQaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXMbXNbWhaaaaaaaaabNhbXObOgbUubXxbVSbVEbXPbXxbUubWIbVWbXQbXzbWpbXRbXSbXTbXUbXVcbSbVWbJBbLcbLcbLcbWPbXWbWwbWwbWwbWdbWdbWdbWdbWdbWdbWdbXXbWAaaaaaaaaaaaabLcbLcbLcbLcbLcbLcbLcaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbXNbXMaaaaaaaaabNhbXYbOgbUubUubUubXZbUubUubUubYabVWbYbbYcbYdbXebYebYfbWpbYgcblbVWbJBbLcaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaabYmbYnbYoaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaabNhbYpbYqbQPbYrbQPbYsbQPbQPbQPbYtbVWbVWbVWbVWbVWbYubYvbYwbXhcbTbVWbJBbLcaaaaaaaaaaaaaaaaaaaaabYBaabaabaabaaaaaabYCbYDbYEaabaabaaaaaaaaaaaaaabaabaabaabaabaabaabaabaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWgbWhbXNaaaaaaaaaaaabNhbNhbNhbNhbNhbNhbNhbNhbNhbNhbYFbYGbYHbYIbVWbYhbYebYfbWpbYLbYMbVWbJBbLcaaaaaaaaaaaaaaaaabaabaabaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaabaabaabaabaabaaaaabaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYTbYUbYjbYibYXbYXaaRbYZaabaabbZabZbbZcbZdbZebZfbZgbNhbZhbYpbYpbZibVWbYkbYebYfbXfbYlbZobVWbJBbLcaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaRaaRbYxaaRbYzbYJbZtbWgaabbZubZvbZwbZxbZxbZybZzbNhbNhbNhbYpbZibVWbYKbYebZCbZDbYNbZFbVWbJBbLcbZGbZHbYObYObZIbZGbZGbYRbYybYPbYPbYQaababqaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWEbYjbYSbYiaaRaaRbYVbZtbZLbZMbZNbZxbZxbZxbZObZPbZzbNhaabbNhbZQbZibVWbVWbZRbZSbZTbYWbVWbVWbJBbLcbZGbYYbZVbZjbZkbZYbZGcbibZZcbkcbjcbWcbAcbAcbAcbAcbAcbXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZtbYzaaRbZlaaRbZnbZmcadcaecadcafbZxbZxcagbZzbZzbNhbNhbNhbNhbZibZGbZpbZqcajcakbZrbZsbZGcanbZGbZGcamcapcamcamcaqbZGbZGbZGbZGbYAcbYaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZtbZAaaRbZBbZBaaRbZEcaubYpcaubZxbZxcavbZwbYpbZwcawbZzbZycawbZibZGbZJbZKcambZWbZUbZXbZGcaBcaCbZGcaDcapcaEcamcaFcaGcaHcaIcaJbYAcbYaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaabWgaabaabaaaaaaaaabZtaaRaaRaaRaaRcaabZtbZLbZMcaLbZzbZxbZPbYpbYpbZxbNhbNhbNhbNhbZibZGcabcahcaccalcaicarcaocatcascaycaxcaAcazcaKcaZcbacbbcbccbdcaMcbYaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaabYjaaRaaRaaRaaRaaRbZEcaucbecaubZcbZybZybZxbZzbZwbNhaabaabbNhcbfbZGcaNcaPcaOcaScaQcaTbZGcamcbmbZGcaUcaVcaUcaWcbncaGcbqcbrcaJcbscbYaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaabYjaaRaaRaaRbZAcaXbZmcadcaecadcbucbvcbwcbxcbybZwbNhaabaabbNhbZibZGbZGbZGcaYcbhcbgbZGbZGbZGcbzbZGbZHbYObYObZIbZGbZGbZGbZGbZGaabcbYaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabbYTaaaaaRcbpcboaaRaaRcbtbZtbZLbZMcaLbNhbNhbNhbNhbNhbNhbNhaabaabbNhbYFbYGcbBbNhbNhbNhbNhbNhcbCbYGcbFbNhcbDcbGcbEcbHaabaabaabaabaabaabcbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaRbYjaaRcbIcbIbYjbYjaabaabaabaabaabaabaabaabaabaabaabaaabNhbNhbNhbYFcbJcbJcbJcbJcbJcbMbNhbNhbNhaabaabaabaabaabaabaabaabaabaabcccaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabcbKcbLcbOcbOcbOcbLcbNaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaaabNhbNhbNhbNhbNhbNhbNhbNhbNhaaaaaaaaaaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaabWEbWgaaaaaaaabbWEcbQcbPcbPcbPcbUaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaabaaaaaaaaaaabaabbYTaabaabaabaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabbWgaabaaaaaaaaaaabaabaaaaaaaaaaaaaaaaabaabaabaabaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaabaabaabaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaabaabaabaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaabaabaabaabaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaabaabaabaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaabaabaabaabaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaabaabaabaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -5759,3 +5767,4 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} + diff --git a/maps/Aurora-MapDev/aurora-4.dmm b/maps/Aurora-MapDev/aurora-4.dmm index bf011ff1fb2..67568030fdb 100644 --- a/maps/Aurora-MapDev/aurora-4.dmm +++ b/maps/Aurora-MapDev/aurora-4.dmm @@ -1,4 +1,4 @@ -"a" = (/turf/unsimulated/mask,/area/space) +"a" = (/turf/unsimulated/chasm_mask,/area/space) "b" = (/turf/simulated/floor/asteroid,/area/space) "c" = (/obj/random/junk,/turf/simulated/floor/asteroid,/area/space) "d" = (/turf/simulated/wall/r_wall,/area/space) @@ -30,7 +30,7 @@ "D" = (/obj/machinery/atmospherics/pipe/zpipe/up/scrubbers{tag = "icon-up-scrubbers (EAST)"; icon_state = "up-scrubbers"; dir = 4},/obj/machinery/atmospherics/pipe/zpipe/up/supply{tag = "icon-up-supply (EAST)"; icon_state = "up-supply"; dir = 4},/obj/structure/disposalpipe/up{tag = "icon-pipe-u (EAST)"; icon_state = "pipe-u"; dir = 4},/obj/structure/cable{tag = "icon-12-0"; icon_state = "12-0"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/maintenance/library) "E" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small/emergency,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/library) "F" = (/obj/structure/disposalpipe/down{tag = "icon-pipe-d (WEST)"; icon_state = "pipe-d"; dir = 8},/obj/structure/cable{tag = "icon-11-8"; icon_state = "11-8"},/obj/machinery/atmospherics/pipe/zpipe/down/supply{tag = "icon-down-supply (WEST)"; icon_state = "down-supply"; dir = 8},/obj/machinery/atmospherics/pipe/zpipe/down/scrubbers{tag = "icon-down-scrubbers (WEST)"; icon_state = "down-scrubbers"; dir = 8},/obj/structure/lattice,/turf/simulated/open,/area/maintenance/library) - + (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -288,3 +288,4 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} + diff --git a/maps/Aurora-MapDev/aurora-5.dmm b/maps/Aurora-MapDev/aurora-5.dmm index f510b0b2a7b..e803226782f 100644 --- a/maps/Aurora-MapDev/aurora-5.dmm +++ b/maps/Aurora-MapDev/aurora-5.dmm @@ -1,4 +1,4 @@ -"aa" = (/turf/simulated/floor/asteroid,/area/space) +"aa" = (/turf/unsimulated/chasm_mask,/area/space) "ab" = (/turf/simulated/wall,/area/space) "ac" = (/obj/structure/grille,/turf/simulated/floor/airless,/area/space) "ad" = (/obj/machinery/power/tracker,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/airless,/area/solar/fore) @@ -6,7 +6,7 @@ "af" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/solar/fore) "ag" = (/turf/simulated/mineral/random,/area/space) "ah" = (/obj/structure/cable/yellow,/turf/simulated/floor/airless,/area/solar/fore) -"ai" = (/obj/machinery/camera/network/telecom{c_tag = "Telecomms - Fore Solar Array"},/turf/simulated/floor/asteroid,/area/solar/fore) +"ai" = (/obj/machinery/camera/network/telecom{c_tag = "Telecomms - Fore Solar Array"},/turf/unsimulated/chasm_mask,/area/solar/fore) "aj" = (/obj/machinery/power/solar{id = "auxsolarnorth"; name = "Fore Solar Array"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/fore) "ak" = (/turf/simulated/floor/airless,/area/solar/fore) "al" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/airless,/area/solar/fore) @@ -52,7 +52,7 @@ "aZ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/entry/fore) "ba" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "arrivals_east_outer"; locked = 1; name = "Arrivals Airlock"; req_access = list(13)},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "arrivals_east"; name = "exterior access button"; pixel_x = -30; pixel_y = 4; req_one_access = list(13)},/turf/simulated/floor/plating,/area/hallway/secondary/entry/fore) "bb" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/hallway/secondary/entry/fore) -"bc" = (/turf/simulated/floor/asteroid,/area/mine/explored) +"bc" = (/turf/unsimulated/chasm_mask,/area/mine/explored) "bd" = (/obj/structure/grille,/obj/machinery/door/firedoor,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/entry/fore) "be" = (/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "arrivals_west_sensor"; pixel_x = -30; pixel_y = 0},/turf/simulated/floor/plating,/area/hallway/secondary/entry/fore) "bf" = (/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "arrivals_east_sensor"; pixel_x = 30; pixel_y = 0},/turf/simulated/floor/plating,/area/hallway/secondary/entry/fore) @@ -89,7 +89,7 @@ "bK" = (/turf/simulated/floor/tiled/dark,/area/tcommsat/computer) "bL" = (/obj/machinery/power/port_gen/pacman,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled/dark,/area/tcommsat/computer) "bM" = (/turf/simulated/floor/asteroid,/area/shuttle/administration/station) -"bN" = (/obj/effect/landmark{name = "carpspawn"},/turf/simulated/floor/asteroid,/area/space) +"bN" = (/obj/effect/landmark{name = "carpspawn"},/turf/unsimulated/chasm_mask,/area/space) "bO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/hallway/secondary/entry/fore) "bP" = (/obj/effect/floor_decal/corner/blue/full{dir = 8},/obj/machinery/embedded_controller/radio/docking_port_multi{child_names_txt = "Airlock One;Airlock Two"; child_tags_txt = "arrivals_west;arrivals_east"; frequency = 1380; id_tag = "arrival_dock"; pixel_y = 25},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/fore) "bQ" = (/obj/effect/floor_decal/corner/blue{dir = 5},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/fore) @@ -255,7 +255,7 @@ "eU" = (/obj/structure/bed/chair{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/corner/red/full{tag = "icon-corner_white_full (WEST)"; icon_state = "corner_white_full"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/exit) "eV" = (/obj/machinery/light{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/obj/machinery/camera/network/civilian_east{c_tag = "Surface - Red Dock Fore"},/obj/effect/floor_decal/corner/red{tag = "icon-corner_white (NORTHEAST)"; icon_state = "corner_white"; dir = 5},/turf/simulated/floor/tiled,/area/hallway/secondary/exit) "eW" = (/obj/effect/floor_decal/corner/red/full{tag = "icon-corner_white_full (NORTH)"; icon_state = "corner_white_full"; dir = 1},/obj/machinery/embedded_controller/radio/docking_port_multi{child_names_txt = "Airlock One;Airlock Two"; child_tags_txt = "escape_dock_north_airlock;escape_dock_south_airlock"; frequency = 1380; id_tag = "escape_dock"; pixel_x = 25; pixel_y = 0; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/exit) -"eX" = (/obj/machinery/camera/network/telecom{c_tag = "Telecomms - Port Solar Array"; dir = 4},/turf/simulated/floor/asteroid,/area/solar/port) +"eX" = (/obj/machinery/camera/network/telecom{c_tag = "Telecomms - Port Solar Array"; dir = 4},/turf/unsimulated/chasm_mask,/area/solar/port) "eY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/portsolar) "eZ" = (/turf/simulated/wall/r_wall,/area/maintenance/portsolar) "fa" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) @@ -655,7 +655,7 @@ "mE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/tcommsat/entrance) "mF" = (/obj/machinery/door/airlock/glass{name = "NSS Aurora"},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/fore) "mG" = (/obj/machinery/door/airlock/glass{name = "NSS Aurora"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/fore) -"mH" = (/turf/simulated/floor/asteroid,/area/shuttle/syndicate_elite/station) +"mH" = (/turf/unsimulated/chasm_mask,/area/shuttle/syndicate_elite/station) "mI" = (/obj/item/weapon/cell,/turf/simulated/floor/tiled,/area/tcommsat/entrance) "mJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/tiled,/area/tcommsat/entrance) "mK" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/tcommsat/entrance) @@ -667,7 +667,7 @@ "mQ" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "engineering_surface_inner"; locked = 1; name = "Solar Panel Hub Exterior Access"; req_access = list(13)},/turf/simulated/floor/plating,/area/tcommsat/entrance) "mR" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "engineering_surface_airlock"; pixel_x = 0; pixel_y = 30; req_one_access = list(13); tag_airpump = "engineering_surface_pump"; tag_chamber_sensor = "engineering_surface_sensor"; tag_exterior_door = "engineering_surface_outer"; tag_interior_door = "engineering_surface_inner"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "engineering_surface_sensor"; pixel_x = 0; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "engineering_surface_pump"},/obj/machinery/light/small/emergency,/turf/simulated/floor/plating,/area/tcommsat/entrance) "mS" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "engineering_surface_outer"; locked = 1; name = "Solar Panel Hub Exterior Access"; req_access = list(13)},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/entrance) -"mT" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "engineering_surface_airlock"; name = "exterior access button"; pixel_x = -27; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/asteroid,/area/space) +"mT" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "engineering_surface_airlock"; name = "exterior access button"; pixel_x = -27; pixel_y = -26; req_one_access = list(13)},/turf/unsimulated/chasm_mask,/area/space) "mU" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plating,/area/maintenance/solarmaint) "mV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/plating,/area/maintenance/solarmaint) "mW" = (/obj/machinery/door/airlock/maintenance_hatch,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcommsat/entrance) @@ -675,7 +675,7 @@ "mY" = (/obj/machinery/bluespace_beacon,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/tcommsat/entrance) "mZ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/tcommsat/entrance) "na" = (/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/machinery/atmospherics/portables_connector{dir = 1},/turf/simulated/floor/plating,/area/tcommsat/entrance) -"nb" = (/obj/machinery/light/small/emergency{dir = 8},/turf/simulated/floor/asteroid,/area/tcommsat/entrance) +"nb" = (/obj/machinery/light/small/emergency{dir = 8},/turf/unsimulated/chasm_mask,/area/tcommsat/entrance) "nc" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled,/area/tcommsat/entrance) "nd" = (/turf/simulated/mineral/random,/area/tcommsat/entrance) "ne" = (/turf/simulated/wall/r_wall,/area/space) @@ -812,8 +812,8 @@ "pF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/storage/primary) "pG" = (/obj/structure/disposalpipe/segment,/obj/machinery/camera/network/civilian_east{c_tag = "Surface - Corridor Camera 10"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/fore) "pH" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24; pixel_y = 6},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/fore) -"pI" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "arrivals_surface_airlock"; name = "exterior access button"; pixel_x = 27; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/asteroid,/area/space) -"pJ" = (/obj/machinery/light/small/emergency,/turf/simulated/floor/asteroid,/area/hallway/secondary/entry/fore) +"pI" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "arrivals_surface_airlock"; name = "exterior access button"; pixel_x = 27; pixel_y = -26; req_one_access = list(13)},/turf/unsimulated/chasm_mask,/area/space) +"pJ" = (/obj/machinery/light/small/emergency,/turf/unsimulated/chasm_mask,/area/hallway/secondary/entry/fore) "pK" = (/obj/machinery/power/solar{id = "aftsolar"; name = "Aft Solar Array"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/starboard) "pL" = (/obj/structure/cable/yellow,/turf/simulated/floor/airless,/area/solar/starboard) "pM" = (/obj/structure/table/standard,/obj/random/tech_supply,/obj/random/tech_supply,/obj/machinery/light_switch{pixel_x = -26},/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor/tiled,/area/storage/primary) @@ -967,9 +967,9 @@ "sE" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled,/area/crew_quarters/sleep/cryo) "sF" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/tiled,/area/crew_quarters/sleep/cryo) "sG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/crew_quarters/sleep/cryo) -"sH" = (/obj/machinery/light/spot{tag = "icon-tube1 (WEST)"; icon_state = "tube1"; dir = 8},/turf/simulated/floor/asteroid,/area/crew_quarters/sleep/cryo) +"sH" = (/obj/machinery/light/spot{tag = "icon-tube1 (WEST)"; icon_state = "tube1"; dir = 8},/turf/unsimulated/chasm_mask,/area/crew_quarters/sleep/cryo) "sI" = (/obj/structure/grille,/obj/structure/window/reinforced/polarized{dir = 4; id = "holodeckwin"},/obj/structure/window/reinforced/polarized{dir = 8; id = "holodeckwin"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/crew_quarters/fitness) -"sJ" = (/obj/machinery/camera/network/telecom{c_tag = "Telecomms - Aft Solar Array"; dir = 1},/turf/simulated/floor/asteroid,/area/solar/port) +"sJ" = (/obj/machinery/camera/network/telecom{c_tag = "Telecomms - Aft Solar Array"; dir = 1},/turf/unsimulated/chasm_mask,/area/solar/port) "sK" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/airless,/area/solar/starboard) "sL" = (/obj/structure/closet/wardrobe/xenos,/turf/simulated/floor/tiled,/area/crew_quarters/locker) "sM" = (/turf/simulated/floor/tiled,/area/crew_quarters/locker) @@ -983,7 +983,7 @@ "sU" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/sleep/cryo) "sV" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/crew_quarters/sleep/cryo) "sW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/crew_quarters/sleep/cryo) -"sX" = (/obj/structure/window/reinforced,/turf/simulated/floor/asteroid,/area/space) +"sX" = (/obj/structure/window/reinforced,/turf/unsimulated/chasm_mask,/area/space) "sY" = (/obj/structure/grille,/obj/structure/window/reinforced/polarized{dir = 4; id = "holodeckwin"},/obj/structure/window/reinforced/polarized{dir = 8; id = "holodeckwin"},/obj/structure/window/reinforced/polarized{id = "holodeckwin"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/crew_quarters/fitness) "sZ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/solar/starboard) "ta" = (/obj/structure/cable/green,/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor/plating,/area/maintenance/arrivals) @@ -1035,20 +1035,20 @@ "tU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/hallway/secondary/entry/fore) "tV" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled,/area/crew_quarters/sleep/cryo) "tW" = (/obj/structure/grille,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/door/firedoor,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/crew_quarters/sleep/cryo) -"tX" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/asteroid,/area/space) -"tY" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/asteroid,/area/space) +"tX" = (/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/chasm_mask,/area/space) +"tY" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/chasm_mask,/area/space) "tZ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/dark,/area/crew_quarters/fitness) -"ua" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/asteroid,/area/space) +"ua" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/chasm_mask,/area/space) "ub" = (/obj/structure/grille,/obj/structure/window/reinforced/polarized{dir = 1; id = "holodeckwin"},/obj/structure/window/reinforced/polarized{dir = 4; id = "holodeckwin"},/obj/structure/window/reinforced/polarized{dir = 8; id = "holodeckwin"},/obj/structure/window/reinforced/polarized{id = "holodeckwin"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/crew_quarters/fitness) -"uc" = (/turf/simulated/floor/asteroid,/turf/simulated/shuttle/wall{tag = "icon-swall_c (EAST)"; icon_state = "swall_c"; dir = 4},/area/shuttle/escape_pod1/station) +"uc" = (/turf/unsimulated/chasm_mask,/turf/simulated/shuttle/wall{tag = "icon-swall_c (EAST)"; icon_state = "swall_c"; dir = 4},/area/shuttle/escape_pod1/station) "ud" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape_pod1/station) -"ue" = (/turf/simulated/floor/asteroid,/turf/simulated/shuttle/wall{dir = 3; icon_state = "swall_c"; dir = 2; layer = 2; tag = "icon-swall_f10"},/area/shuttle/escape_pod1/station) -"uf" = (/turf/simulated/floor/asteroid,/turf/simulated/shuttle/wall{tag = "icon-swall_c (EAST)"; icon_state = "swall_c"; dir = 4},/area/shuttle/escape_pod2/station) +"ue" = (/turf/unsimulated/chasm_mask,/turf/simulated/shuttle/wall{dir = 3; icon_state = "swall_c"; dir = 2; layer = 2; tag = "icon-swall_f10"},/area/shuttle/escape_pod1/station) +"uf" = (/turf/unsimulated/chasm_mask,/turf/simulated/shuttle/wall{tag = "icon-swall_c (EAST)"; icon_state = "swall_c"; dir = 4},/area/shuttle/escape_pod2/station) "ug" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape_pod2/station) -"uh" = (/turf/simulated/floor/asteroid,/turf/simulated/shuttle/wall{dir = 3; icon_state = "swall_c"; dir = 2; layer = 2; tag = "icon-swall_f10"},/area/shuttle/escape_pod2/station) -"ui" = (/turf/simulated/floor/asteroid,/turf/simulated/shuttle/wall{tag = "icon-swall_c (EAST)"; icon_state = "swall_c"; dir = 4},/area/shuttle/escape_pod3/station) +"uh" = (/turf/unsimulated/chasm_mask,/turf/simulated/shuttle/wall{dir = 3; icon_state = "swall_c"; dir = 2; layer = 2; tag = "icon-swall_f10"},/area/shuttle/escape_pod2/station) +"ui" = (/turf/unsimulated/chasm_mask,/turf/simulated/shuttle/wall{tag = "icon-swall_c (EAST)"; icon_state = "swall_c"; dir = 4},/area/shuttle/escape_pod3/station) "uj" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape_pod3/station) -"uk" = (/turf/simulated/floor/asteroid,/turf/simulated/shuttle/wall{dir = 3; icon_state = "swall_c"; dir = 2; layer = 2; tag = "icon-swall_f10"},/area/shuttle/escape_pod3/station) +"uk" = (/turf/unsimulated/chasm_mask,/turf/simulated/shuttle/wall{dir = 3; icon_state = "swall_c"; dir = 2; layer = 2; tag = "icon-swall_f10"},/area/shuttle/escape_pod3/station) "ul" = (/obj/machinery/washing_machine,/obj/effect/floor_decal/corner/blue/diagonal,/obj/effect/floor_decal/corner/white/diagonal{tag = "icon-corner_white_diagonal (EAST)"; icon_state = "corner_white_diagonal"; dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/locker) "um" = (/obj/machinery/newscaster{pixel_y = 32},/obj/effect/floor_decal/corner/blue/diagonal,/obj/effect/floor_decal/corner/white/diagonal{tag = "icon-corner_white_diagonal (EAST)"; icon_state = "corner_white_diagonal"; dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/locker) "un" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/table/standard,/obj/effect/floor_decal/corner/blue/diagonal,/obj/effect/floor_decal/corner/white/diagonal{tag = "icon-corner_white_diagonal (EAST)"; icon_state = "corner_white_diagonal"; dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/locker) @@ -1312,7 +1312,7 @@ "zl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/storage/tools) "zm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/storage/tools) "zn" = (/obj/machinery/door/airlock/maintenance,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/crew_quarters/fitness) -"zo" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "command_surface_airlock"; name = "exterior access button"; pixel_x = 27; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/asteroid,/area/space) +"zo" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "command_surface_airlock"; name = "exterior access button"; pixel_x = 27; pixel_y = -26; req_one_access = list(13)},/turf/unsimulated/chasm_mask,/area/space) "zp" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "Command Docking Exterior Access"; locked = 1; name = "Docking Port Airlock"; req_access = list(13)},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/plating,/area/bridge/levela) "zq" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "command_surface_airlock"; pixel_x = 0; pixel_y = 30; req_one_access = list(13); tag_airpump = "command_surface_pump"; tag_chamber_sensor = "command_surface_sensor"; tag_exterior_door = "command_surface_outer"; tag_interior_door = "command_surface_inner"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "command_surface_sensor"; pixel_x = 0; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "command_surface_pump"},/obj/machinery/light/small/emergency,/turf/simulated/floor/plating,/area/bridge/levela) "zr" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "command_surface_inner"; locked = 1; name = "Command Docking Exterior Access"; req_access = list(13)},/turf/simulated/floor/plating,/area/bridge/levela) @@ -1353,7 +1353,7 @@ "Aa" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/hallway/secondary/entry/aft) "Ab" = (/obj/machinery/portable_atmospherics/powered/pump/filled,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/aft) "Ac" = (/obj/machinery/portable_atmospherics/powered/scrubber,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/aft) -"Ad" = (/obj/machinery/camera/network/command{c_tag = "Bridge - Surface Entrance"; dir = 8},/obj/machinery/light/small/emergency{tag = "icon-bulb1 (EAST)"; icon_state = "bulb1"; dir = 4},/turf/simulated/floor/asteroid,/area/bridge/levela) +"Ad" = (/obj/machinery/camera/network/command{c_tag = "Bridge - Surface Entrance"; dir = 8},/obj/machinery/light/small/emergency{tag = "icon-bulb1 (EAST)"; icon_state = "bulb1"; dir = 4},/turf/unsimulated/chasm_mask,/area/bridge/levela) "Ae" = (/obj/machinery/light_switch{pixel_x = -22},/obj/effect/floor_decal/corner/paleblue/full{tag = "icon-corner_white_full (NORTH)"; icon_state = "corner_white_full"; dir = 1},/turf/simulated/floor/tiled,/area/bridge/levela) "Af" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/effect/floor_decal/corner/paleblue/diagonal,/turf/simulated/floor/tiled/white,/area/bridge/levela) "Ag" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/effect/floor_decal/corner/paleblue/diagonal,/turf/simulated/floor/tiled/white,/area/bridge/levela) @@ -1427,11 +1427,11 @@ "Bw" = (/turf/simulated/mineral/random,/area/bridge/levela) "Bx" = (/obj/structure/ladder/up{pixel_y = 16},/turf/simulated/floor/plating,/area/space) "By" = (/obj/machinery/atmospherics/pipe/zpipe/up/supply,/turf/simulated/floor/plating,/area/maintenance/arrivals) -"Bz" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/asteroid,/area/space) +"Bz" = (/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/chasm_mask,/area/space) "BA" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/aft) "BB" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/aft) -"BC" = (/obj/structure/window/reinforced{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/turf/simulated/floor/asteroid,/area/space) -"BD" = (/obj/machinery/light/spot{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/obj/machinery/camera/network/civilian_east{c_tag = "Surface - Corridor Camera 2"; pixel_x = 0},/turf/simulated/floor/asteroid,/area/hallway/secondary/entry/aft) +"BC" = (/obj/structure/window/reinforced{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/turf/unsimulated/chasm_mask,/area/space) +"BD" = (/obj/machinery/light/spot{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/obj/machinery/camera/network/civilian_east{c_tag = "Surface - Corridor Camera 2"; pixel_x = 0},/turf/unsimulated/chasm_mask,/area/hallway/secondary/entry/aft) "BE" = (/turf/simulated/floor/plating,/area/space) "BF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plating,/area/maintenance/arrivals) "BG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/random/junk,/turf/simulated/floor/plating,/area/maintenance/arrivals) @@ -1671,6 +1671,7 @@ "Gg" = (/obj/structure/cable{tag = "icon-11-4"; icon_state = "11-4"},/obj/structure/disposalpipe/down{tag = "icon-pipe-d (EAST)"; icon_state = "pipe-d"; dir = 4},/obj/machinery/atmospherics/pipe/zpipe/down/supply{tag = "icon-down-supply (EAST)"; icon_state = "down-supply"; dir = 4},/obj/machinery/atmospherics/pipe/zpipe/down/scrubbers{tag = "icon-down-scrubbers (EAST)"; icon_state = "down-scrubbers"; dir = 4},/obj/structure/lattice,/turf/simulated/open,/area/maintenance/arrivals) "Gh" = (/obj/machinery/light/small/emergency,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/arrivals) "Gi" = (/obj/structure/cable{tag = "icon-12-0"; icon_state = "12-0"},/obj/structure/cable,/turf/simulated/floor/plating,/area/maintenance/arrivals) +"Gj" = (/turf/simulated/floor/asteroid,/area/supply/station) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -1841,17 +1842,17 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagqXqXqXBHqXagagagagagaaaaaaaaaazWBMBNBOzWBAygBBBCaaaaaaaaaaaaagagagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagqXBPBQBRqXagagagagagagaaaaaaaazWBSBTBUzWBAygBBBCaaaaaaaaaaaaaaagagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBVBVBVBVBWBVBVBVBVBVBVBVBVBVBVBVBVzWzWzWBXzWzWBtBuBvzWaaaaaaaaaaaaaaaaagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBYBZCaCbCcCdCeCfCeCgChCiCjCkClCmBVCnCoyhCpCqCrzXygyhCsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCtCuChChCvChChChCwChChCxCyCzChCABVCByhyhCpCCwTzXzYzZCDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCECFCGCHCICJCKChCLCMCLCLChCxCNCOChCPBVCQCRCSCTCUCVCWCXyhCDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCYCZCYDaDbChDcChChChChDdDeDfDgDhDiDjDkDlDmyhyhyhDnDoyhyhCDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDpDqDpDrChChDsDtDtDtDtDuDvDwDxDyDzDABVDBDCyhyhDDDEDoDFyhDGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCECFDHDIChChChChChChChCxDJCADKCODLDMBVDNDODODPBVBVDQzWzWzWagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDpDqDpDRDSDTDTDTDSChChCxDJDUCjDVDWDXBVDYDZEaEbBVEcEdqXagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEeEfEeEgEgEhEgEgEgEiCIEjEkChElEmEnEoBVEpEqChErBVEsEtEtEtEtagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCECFDHBVBVBVBVBVBVBVBVCxDJEuBVEvEwBVBVExEyEzEABVEBECEDEEEtagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBVEFEFEFEFEFEFBVEGEHEICjEJEKELEMENEOCwEPBVEQEtERESEtagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagBVEFEFEFEFEFEFBVETDJChElEUEVEWEXEYEZEZFaBVFbFcFdFeEtagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGjGjGjGjGjGjGjaaaaBYBZCaCbCcCdCeCfCeCgChCiCjCkClCmBVCnCoyhCpCqCrzXygyhCsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGjGjGjGjGjGjGjaaaaCtCuChChCvChChChCwChChCxCyCzChCABVCByhyhCpCCwTzXzYzZCDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGjGjGjGjGjGjGjCECFCGCHCICJCKChCLCMCLCLChCxCNCOChCPBVCQCRCSCTCUCVCWCXyhCDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGjGjGjGjGjGjGjCYCZCYDaDbChDcChChChChDdDeDfDgDhDiDjDkDlDmyhyhyhDnDoyhyhCDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGjGjGjGjGjGjGjDpDqDpDrChChDsDtDtDtDtDuDvDwDxDyDzDABVDBDCyhyhDDDEDoDFyhDGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGjGjGjGjGjGjGjCECFDHDIChChChChChChChCxDJCADKCODLDMBVDNDODODPBVBVDQzWzWzWagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGjGjGjGjGjGjGjDpDqDpDRDSDTDTDTDSChChCxDJDUCjDVDWDXBVDYDZEaEbBVEcEdqXagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGjGjGjGjGjGjGjEeEfEeEgEgEhEgEgEgEiCIEjEkChElEmEnEoBVEpEqChErBVEsEtEtEtEtagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGjGjGjGjGjGjGjCECFDHBVBVBVBVBVBVBVBVCxDJEuBVEvEwBVBVExEyEzEABVEBECEDEEEtagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGjGjGjGjGjGjGjaaaaaaBVEFEFEFEFEFEFBVEGEHEICjEJEKELEMENEOCwEPBVEQEtERESEtagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGjGjGjGjGjGjGjaaaaagBVEFEFEFEFEFEFBVETDJChElEUEVEWEXEYEZEZFaBVFbFcFdFeEtagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagBVEFEFEFEFEFEFFfFgDJChBVBVBVBVBVFhFiFjFkBVFlEtEtEtEtagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNaaaaagagBVEFEFEFEFEFEFFfFgDJFmBVFnFoFpBVBVBVBVBVBVFqqXagagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagBVEFEFEFEFEFEFBVFrDsDwFsFtFuEIFvFwFxFyFzFAFBqXagagagagagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -1929,3 +1930,4 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} + diff --git a/maps/Aurora-MapDev/aurora-6.dmm b/maps/Aurora-MapDev/aurora-6.dmm index 2c355e748e7..1e3b9b7d285 100644 --- a/maps/Aurora-MapDev/aurora-6.dmm +++ b/maps/Aurora-MapDev/aurora-6.dmm @@ -65,7 +65,7 @@ "bm" = (/obj/structure/bed,/obj/item/weapon/bedsheet/green,/obj/structure/curtain/open/bed,/turf/simulated/floor/carpet,/area/tcommsat/lounge) "bn" = (/turf/simulated/floor/carpet,/area/tcommsat/lounge) "bo" = (/obj/structure/bed,/obj/item/weapon/bedsheet/blue,/obj/structure/curtain/open/bed,/turf/simulated/floor/carpet,/area/tcommsat/lounge) -"bp" = (/obj/machinery/light/small{brightness_color = "#DA0205"; brightness_power = 1; brightness_range = 5},/turf/simulated/floor/tiled/freezer,/area/tcommsat/lounge) +"bp" = (/obj/machinery/light/small,/turf/simulated/floor/tiled/freezer,/area/tcommsat/lounge) "bq" = (/turf/simulated/floor/tiled/freezer,/area/tcommsat/lounge) "br" = (/obj/machinery/door/airlock/hatch{name = "Telecoms Lounge"; req_access = list(61)},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/freezer,/area/tcommsat/lounge) "bs" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/tcommsat/lounge) @@ -501,3 +501,4 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa eKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} + diff --git a/maps/Aurora-MapDev/aurora-8.dmm b/maps/Aurora-MapDev/aurora-8.dmm index 293c2639880..c36f5329f62 100644 --- a/maps/Aurora-MapDev/aurora-8.dmm +++ b/maps/Aurora-MapDev/aurora-8.dmm @@ -257,3 +257,4 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} + diff --git a/sound/effects/spring.ogg b/sound/effects/spring.ogg new file mode 100644 index 00000000000..472a75e304b Binary files /dev/null and b/sound/effects/spring.ogg differ diff --git a/sound/weapons/Kenetic_accel.ogg b/sound/weapons/Kenetic_accel.ogg new file mode 100644 index 00000000000..ab525baf9af Binary files /dev/null and b/sound/weapons/Kenetic_accel.ogg differ diff --git a/sound/weapons/chisel1.ogg b/sound/weapons/chisel1.ogg new file mode 100644 index 00000000000..43f19710c5f Binary files /dev/null and b/sound/weapons/chisel1.ogg differ diff --git a/sound/weapons/chisel2.ogg b/sound/weapons/chisel2.ogg new file mode 100644 index 00000000000..d58e4e906cb Binary files /dev/null and b/sound/weapons/chisel2.ogg differ diff --git a/sound/weapons/kenetic_reload.ogg b/sound/weapons/kenetic_reload.ogg new file mode 100644 index 00000000000..7f2c779fa62 Binary files /dev/null and b/sound/weapons/kenetic_reload.ogg differ diff --git a/sound/weapons/plasma_cutter.ogg b/sound/weapons/plasma_cutter.ogg new file mode 100644 index 00000000000..ba95317cc1e Binary files /dev/null and b/sound/weapons/plasma_cutter.ogg differ diff --git a/sound/weapons/resonator_blast.ogg b/sound/weapons/resonator_blast.ogg new file mode 100644 index 00000000000..7110a716b1c Binary files /dev/null and b/sound/weapons/resonator_blast.ogg differ diff --git a/sound/weapons/resonator_fire.ogg b/sound/weapons/resonator_fire.ogg new file mode 100644 index 00000000000..20665e5dd08 Binary files /dev/null and b/sound/weapons/resonator_fire.ogg differ